ARMv8-A编程指导之Armv8-A架构和处理器(2)
1 ARMv8-A
ARMv8-A架构是最新一代以应用profile为目标的ARM架构。名字ARMv8-A用于描述整个架构,现在包括32位和64位执行。它引入了用64位宽寄存器执行,但也保留了与ARMv7软件兼容的能力。
ARMv8-A架构引入了一些修改,它使能了设计的更高性能的处理器实现。
Large Physical Address: 它使能处理器超过4G物理内存的访问
64bit virtual Address: 它使能了超过4GB限制的虚拟内存。这对现代桌面和服务器软件使用内存映射的文件IO或解析地址非常重要。
Automatic Event signaling: 这使能了电源有效和高性能的spinlock。
Larger Register Files: 31个64位通用寄存器用于提升性能和减少栈的使用。
Efficient 64bit immediate generation:需要更少的文字池。
Large PC-relative addressing range:对共享库和位置无关的执行文件中有效数据的 A+/-4GB地址范围。
Additional 16KB和4KB转换粒度:这减少了TLB miss率和页walk的深度。
New execption level: 这减少了OS和hypervisor的软件复杂度。
Effient cache management: 用户空间的CACHE操作可以改善动态代码产生效率。使用Data Cache Zero指令快速的清除数据CACHE。
Hardware-accelerated cryptography: 提供3倍或10倍的软件加密性能。这对小粒度的解密和加密太小不能有效的进行硬件加速特别有用,比如https。
Load-Acquire, Stronore-Release instructions: 为C++11,C11,和Java内存模型设计。它们通过减少明显的内存barrier指令来改善线程安全的代码。
NEON double-precision floating-point advanced SIMD: 这使能SMID来应用于更宽的一组算法,如科学计算,HPC和超算。
2 ARMv8-A处理器属性
下表比较了ARMv8-A架构实现的处理器属性:
processor | ||
Cortex-A53 | Cortex-A57 | |
Release data | July 2014 | January 2015 |
典型时钟速率 | 2GHZ 28nm | 1.5~2.5GHZ 20nm |
执行顺序 | 有序 | 无序,预测发出,超级标量 |
core核数 | 1~4 | 1~4 |
集成最大吞吐量 | 2.3MIPS/MHZ | 4.1~4.76MIPS/MHZ |
浮点单元 | Yes | Yes |
半精度 | Yes | Yes |
硬件除法 | Yes | Yes |
融合乘法积累 | Yes | Yes |
流水线级数 | 8 | 15+ |
返回栈的数目 | 4 | 8 |
GIC | 外部 | 外部 |
AMBA 接口 | 64位I/F AMBA 4 | 128位I/F AMBA 4 |
L1 CACHE大小(指令) | 8KB~64KB | 48KB |
L1 CACHE结构(指令) | 2路组相连 | 2路组相连 |
L1 CACHE大小(数据) | 128KB~2MB | 32KB |
L1 CACHE结构(数据) | 4路组相连 | 2路组相连 |
L2 CACHE | 可选 | 集成 |
L2 CACHE SIZE | 128KB~2MB | 512KB~2MB |
L2 CACHE 结构体 | 16路组相连 | 16路组相连 |
主TLB项 | 512 | 1024 |
uTLB项 | 10 |
48 指令 32 数据 |
2.1 ARMv8处理器
本节描述了实现ARMv8-A架构的每个处理器。它仅给出了每种情况的通用描述。对于每个处理器的更多特殊情况,看上表。
Cortex-A53处理器
Cortex-A53处理器是中等范围,在一个cluster中包含1~4个core的低功耗处理器,每个core带L1 CACHE子系统,可选的集成GICv3/4接口,和可选的L2 cache控制器。
Cortex-A53处理器是一个极度电源效率的处理器,它支持32位和64位代码的能力。它传递明显的性能高于Cortex-A7处理器。它具有部署为一个独立的应用处理器的能力,或与Cortex-A57处理器一起组成大小核配置来优化性能,规模和电源效率。
Corext-A53具有如下特性:
(1)顺序执行,8级流水线。
(2)通过使用层级时钟门限,电源域,和更先进的保留模式实现低功耗。
(3)增加了双端能力,如执行资源的复制,双指令的解码。
(4)电源优化的L2 cache设计,它具有更低的时延,让性能与效率的平衡。
Cortex-A57处理器
Cortex-A57的目标为移动电话和企业计算应用包括计算型64位应用如高端计算机,桌面和服务器产品。可以用它与Cortex-A53处理器一起组成大小核配置来实现大规模性能和有效的能源应用。
Cortex-A57处理器提供与其他处理器的cache一致性的互操作性,包括用于GPU计算的ARM Mali家族的GPU和为高性能企业应用提供可选的可靠性和规模性的特征。它提供了明显更高于ARMv7 Cortex-A15更高的性能,且更高的电源效率级别。包含扩展的加密特性,提供了10倍于之前代处理器的加密算法。
Cortex-A57处理器完全实现了ARMv8-A架构。它在一个cluster中实现了1~4个处理器的多核操作。多个一致性SMP cluste通过AMBA5 CHI或AMBA 4 ACE技术实现。可通过CoreSight技术让debug和trace有效。
Cortex-A57处理器具有如下特征:
(1)乱序执行,15+流水线。
(2)节能技术包括路预测,tag减少,和cache查找。
(3)通过执行资源的复制来增加最大的指令吞吐量。本地解码,3-wide解码带宽来实现电源优化指令。
(4)L2 cache设计的性能使能在一个cluster中超过1个core来同时访问L2。
ARMv8-A编程指导之Armv8-A架构和处理器(2)相关推荐
- ARMv8体系结构基础01:ARMv8体系结构简介
目录 1 ARMv8体系结构特性 2 ARMv8体系结构基本概念 2.1 处理机(Processing Element, PE) 2.2 异常等级(Exception Level) 2.2.1 异常等 ...
- qt android 网络编程实例,QT网络编程Tcp下C/S架构的即时通信实例
先写一个客户端,实现简单的,能加入聊天,以及加入服务器的界面. #ifndef TCPCLIENT_H #define TCPCLIENT_H #include #include #include # ...
- arm汇编和c语言混合编程实验报告,实验三C语言和ARM汇编混合编程指导书.doc
实验三C语言和ARM汇编混合编程指导书 实验三 1. 实验目的 掌握C语言和ARM汇编混合编程方法. 2. 实验设备 硬件:PC 机 一台 软件:Windows98/XP/2000 系统,ADS 1. ...
- 增量式编码器c语言,关于增量式编码器编程指导及使用方法的介绍
关于增量式编码器编程指导及使用方法的介绍 文章来源:http://www.kindele.com/ 发布时间:2016/05/13 点击数: 在目前的编码器市场,增量式编码器主要被分为三种类型 ...
- CUDA C 编程指导(一):CUDA介绍
虽然高清实时的3D图像/视频要求日益不能满足市场需求,但是可编程的图像处理单元(GPU)已经演变成具有巨大计算能力和超高存储带宽的高度并行.多线程的多核处理器,如下图, CPU和GPU之间的浮点性能差 ...
- c语言程序设计 李俊,深入浅出C语言程序设计(第2版)习题集和编程指导
本书是与清华大学出版社出版的<深入浅出C语言程序设计(第2版)>(书号: 9787302391791)一书相配套的辅助教材.书中对主教材各章的重点和难点进行总结,并对各章课后习题进行精讲, ...
- ARM架构手机处理器全面大汇总
转 http://www.eeboard.com/news/arm%E6%9E%B6%E6%9E%84%E6%89%8B%E6%9C%BA%E5%A4%84%E7%90%86%E5%99%A8%E5% ...
- 指令集架构、微架构、处理器架构、CPU架构、内核
前两天看书碰到了"CPU架构"这个词,脑子里感觉有点模糊不懂.查阅相关资料后又陆续碰到了"指令集架构"."微架构"."处理器架构& ...
- 指令集架构、微架构、处理器架构、CPU架构
前两天看书碰到了"CPU架构"这个词,脑子里感觉有点模糊不懂.查阅相关资料后又陆续碰到了"指令集架构"."微架构"."处理器架构& ...
- 英特尔小心!AMD发ARM架构Opteron处理器
据外媒报道,AMD今日正式推出了首个基于ARM架构的处理器Opteron A1100,希望在数据中心服务器市场挑战英特尔的霸主地位.早在2012年10月,AMD就宣布将采纳ARM架构自主设计相关处理器 ...
最新文章
- 分析B站10万条弹幕后,发现了歪嘴战神的终极奥义!
- VS2010中重命名项目
- Ubuntu 安装简单samba
- 综合LSTM、transformer优势,DeepMind强化学习智能体提高数据效率
- 属性值动态调整_【VBA】Range对象的常用方法属性(三)
- spring的bean注释_Spring @Bean注释
- Xshell连接不上虚拟机,或许该这样做!
- 计算机的内存时序参数,装机用户须知:电脑内存时序基础知识
- 新元宇宙每周连载《地球人奇游天球记》第十六回天王拜皇
- Linux下查看网络流量常用方法
- canvas教程17-合成
- Android Platform 3.0 SDK和Eclipse ADT安装记录三
- 微信pc端window10多开应用
- php输出503,php中的503是什么意思
- ACP知识域四---团队绩效
- 汇顶科技(笔试加面试)
- uva - 123 - Searching Quickly
- ~4.2 ccf 2021-12-1 序列查询
- 探索一下进制转换 (Python 实现源码)
- 微信无法拖拽文件解决办法