目录

Armv8-A 架构

对工程师来说Armv8-A有什么新东西?

Armv7-A体系结构


Armv8-A 架构

Armv8-A架构是针对应用程序('A')设计的最新一代Arm架构。

它引入了可用的64位和32位执行状态(Execution state ),分别称为AArch64和AArch32。 AArch64执行状态支持A64指令集,可以在64位寄存器中保存地址,并允许基本指令集中的指令使用64位寄存器进行处理。 AArch32执行状态是一个32位执行状态,它保留了与Armv7-A体系结构的向后兼容性,并增强了该体系结构,可以支持AArch64状态中包含的某些功能。 它支持T32和A32指令集。

Armv8-A是唯一支持AArch64的profile ,其中AArch64和AArch32之间的关系被称为interprocessing。 另外,Armv8-A架构允许支持不同等级的AArch64和AArch32,例如:

  • 只有AArch64的设计。
  • AArch64可支持AArch32操作系统/虚拟机的设计。
  • AArch64只支持在应用层级(非特权)使用AArch32。

对工程师来说Armv8-A有什么新东西?

Armv8-A架构引入了许多变化,可以设计出可实现的性能更高的处理器。

  • 大的物理地址
    这使处理器能够访问超过4GB的物理内存。
  • 64位虚拟寻址
    这使虚拟内存越过4GB限制的。 这对使用内存映射文件I / O或稀疏寻址的现代桌面和服务器软件很重要。
  • 自动信号事件
    这使得高效,高性能的自旋锁成为可能。
  • 更大的寄存器文件
    有31个64位通用寄存器,这提高了性能并减少了堆栈的使用。
  • 高效的64位立即生成
    文字池的需求较少。
  • 较大的PC相对寻址范围
    在共享库和位置无关的可执行程序中的有效的数据寻址范围是+/- 4GB。
  • 额外的16KB和64KB转换粒度
    这降低了转换后备缓冲区(TLB)不命中率和页面访问的深度。
  • 新的异常模型
    这降低了OS和hypervisor 程序的复杂度
  • 高效的缓存管理
    用户空间缓存操作提高了动态代码生成效率。 快速数据缓存clear 操作使用数据缓存清零指令清除。
  • 硬件加速密码技术
    提供比软件加密更好的3倍到10倍速度性能。 这对于由于太小而不能有效转载到硬件加速器的细粒度解密和加密很有用,例如https。
  • 加载-获取,存储-释放的指令
    专为C ++ 11,C11,Java内存模型而设计。 它们通过消除显式的内存屏障指令来提高线程安全代码的性能。
  • NEON双精度浮点高级SIMD
    这使得SIMD矢量化可以应用于更广泛的算法集合,例如科学计算,高性能计算(HPC)和超级计算机。

Armv7-A体系结构

Armv7-A体系结构引入了architecture profiles的概念,并且继续被引入Armv8架构。 它实现了具有多种模式的传统Arm架构,支持基于内存管理单元(MMU)的虚拟内存系统架构(VMSA),并支持Arm(A32)和Thumb(T32)指令集。

架构扩展

这个架构也支持多个扩展。 包括:

  • 安全扩展。 这是一组可选的扩展,这些扩展提供了一组安全功能,利用这些安全功能可以协助安全应用程序的开发。
  • 多重处理扩展。 这些是一组可选的扩展,提供了一组增强多重处理功能的特性。
  • 大的物理地址扩展。 这是一个可选的扩展,它提供了一个地址转换系统,支持高达40位的物理地址,并且具有良好的转换性能。 它需要实现多重处理扩展。
  • 虚拟化扩展。 这些是一组可选的扩展,为虚拟机监视器(称为Hypervisor)提供硬件支持,以在各个Guest 操作系统之间进行切换。 它需要实现安全扩展和大的物理地址扩展。
  • 通用计时器扩展。 这是一个可选的扩展,它提供了一个系统定时器和一个低延迟寄存器接口。 它是作为大的物理地址扩展或虚拟化扩展的一部分,但也可以使用Armv7-A架构的早期版本来实现。
  • 性能监视器扩展。 该扩展定义了一个推荐的性能监视器实现方式,并为性能监视器保留了寄存器空间。

原文

https://developer.arm.com/products/architecture/a-profile

官方指导手册:

https://developer.arm.com/products/architecture/cpu-architecture/r-profile/docs/ddi0487/a

作者:赵国开
链接:https://www.jianshu.com/p/8119986a39c5
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Armv8-A 架构概述相关推荐

  1. ARMv8架构概述、相关技术文档以及ARMv8处理器简介

    ARMv8架构 文章目录 ARMv8架构 参考文档 ARMv8架构的概述 从32位到64位的变化The changes from 32 bits to 64 bits 1,Larger registe ...

  2. 1小时学会:最简单的iOS直播推流(二)代码架构概述

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

  3. NR 5G 安全架构概述

    安全架构概述 安全域 安全体系结构概述 该图说明了以下安全域: 网络接入安全性(I):一组安全功能,使UE能够安全地通过网络进行身份验证和接入服务,包括3GPP接入和非3GPP 接入,特别是防止对(无 ...

  4. netty系列之:netty架构概述

    文章目录 简介 netty架构图 丰富的Buffer数据机构 零拷贝 统一的API 事件驱动 其他优秀的特性 总结 简介 Netty为什么这么优秀,它在JDK本身的NIO基础上又做了什么改进呢?它的架 ...

  5. Java生鲜电商平台-微服务架构概述

    Java生鲜电商平台-微服务架构概述 单体架构存在的问题 在传统的软件技术架构系统中,基本上将业务功能集中在单一应用内,或者是单一进程中.尽管现代化的软件架构理论以及设计原则已推广多年,但实际技术衍化 ...

  6. Nvidia CUDA初级教程4 GPU体系架构概述

    Nvidia CUDA初级教程4 GPU体系架构概述 视频:https://www.bilibili.com/video/BV1kx411m7Fk?p=5 讲师:周斌 本节内容: 为什么需要GPU 三 ...

  7. LAMP+LNMP(一) LAMP架构概述

    一.LAMP架构概述 LAMP就是 Linux.Apache(httpd).MySQL.PHP四个东东的统称,我们常见的大部分网站都是由这个体系提供的,比如google.Taobao.51CTO等等. ...

  8. Kafka概念和基本架构概述

    Kafka概念和基本架构概述 一.Kafka介绍 Kafka是最初由 Linkedin 公司开发,是一个 分布式.分区的.多副本的.多生产者.多订阅者,基于zookeeper协调的分布式日志系统(也可 ...

  9. NVIDIA CUDA初级教程(P2-P3)CPU体系架构概述、并行程序设计概述

    文章目录 1.CPU体系架构概述 2.并行程序设计概述 1.CPU体系架构概述 现代CPU架构 CPU的定义 (1)执行指令.处理数据的器件:完成基本的逻辑和算术指令 (2)内存接口.外部设备接口 ( ...

  10. 【TA-霜狼_may-《百人计划》】图形2.7.2 GPU硬件架构概述

    [TA-霜狼_may-<百人计划>]图形2.7.2 GPU硬件架构概述 @[TOC]([TA-霜狼_may-<百人计划>]图形2.7.2 GPU硬件架构概述 GPU是什么 GP ...

最新文章

  1. 定制开发软件所有权_职业所有权软件开发人员指南
  2. 北京理工大学计算机学院张教授,北京理工大学嵩天教授做客信息学院
  3. CentOS-6.4安装配置Nginx
  4. java 测量程序运行时间
  5. 线程同步之经典生产者-消费者模型
  6. 如何判断PeopleEditor的值为空
  7. 学习笔记之-java8的新特性-函数式接口,lambda表达式,方法引用,Stream API,Optional类
  8. 两种获取Stream流的方式
  9. 新手学linux之-----------memroy.c
  10. 图书ISBN号码检验(洛谷P1055题题解,Java语言描述)
  11. MySQL5.6 部署MHA
  12. mysql重启,全网独家首发!
  13. 软件测试之软件配置项测试
  14. 动手刷LeetCode-转换罗马字符
  15. 3D打印机将用于太空食物 未来或可打印披萨
  16. 综合案例—Spark实时交易数据统计
  17. c语言指针学多久,C语言指针难学吗?
  18. 微信小程序:三元表达式设置样式
  19. 简单方便的图片处理,让你颠倒的图片恢复正常
  20. 如何开发一个企业级的 Go 应用?

热门文章

  1. Programming Computer Vision with Python (学习笔记八)
  2. 十个免费的WEB压力测试工具
  3. Java书籍Top 10
  4. Hadoop学习笔记—4.初识MapReduce
  5. 在Ubuntu中安装HBase
  6. Coursera课程Python for everyone:chapter3
  7. matlab恢复默认界面布局
  8. 2015年奇虎360服务器开发C++电话面试问题
  9. 第 10 章 容器监控 - 078 - Docker 最常用的监控方案
  10. 10.02 T3 打表找递推式+十进制快速幂 九校联考凉心模拟DAY1T1