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架构实现的处理器属性:

Comparison of ARMv8-A processors
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)相关推荐

  1. ARMv8体系结构基础01:ARMv8体系结构简介

    目录 1 ARMv8体系结构特性 2 ARMv8体系结构基本概念 2.1 处理机(Processing Element, PE) 2.2 异常等级(Exception Level) 2.2.1 异常等 ...

  2. qt android 网络编程实例,QT网络编程Tcp下C/S架构的即时通信实例

    先写一个客户端,实现简单的,能加入聊天,以及加入服务器的界面. #ifndef TCPCLIENT_H #define TCPCLIENT_H #include #include #include # ...

  3. arm汇编和c语言混合编程实验报告,实验三C语言和ARM汇编混合编程指导书.doc

    实验三C语言和ARM汇编混合编程指导书 实验三 1. 实验目的 掌握C语言和ARM汇编混合编程方法. 2. 实验设备 硬件:PC 机 一台 软件:Windows98/XP/2000 系统,ADS 1. ...

  4. 增量式编码器c语言,关于增量式编码器编程指导及使用方法的介绍

    关于增量式编码器编程指导及使用方法的介绍 文章来源:http://www.kindele.com/  发布时间:2016/05/13    点击数: 在目前的编码器市场,增量式编码器主要被分为三种类型 ...

  5. CUDA C 编程指导(一):CUDA介绍

    虽然高清实时的3D图像/视频要求日益不能满足市场需求,但是可编程的图像处理单元(GPU)已经演变成具有巨大计算能力和超高存储带宽的高度并行.多线程的多核处理器,如下图, CPU和GPU之间的浮点性能差 ...

  6. c语言程序设计 李俊,深入浅出C语言程序设计(第2版)习题集和编程指导

    本书是与清华大学出版社出版的<深入浅出C语言程序设计(第2版)>(书号: 9787302391791)一书相配套的辅助教材.书中对主教材各章的重点和难点进行总结,并对各章课后习题进行精讲, ...

  7. 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% ...

  8. 指令集架构、微架构、处理器架构、CPU架构、内核

    前两天看书碰到了"CPU架构"这个词,脑子里感觉有点模糊不懂.查阅相关资料后又陆续碰到了"指令集架构"."微架构"."处理器架构& ...

  9. 指令集架构、微架构、处理器架构、CPU架构

    前两天看书碰到了"CPU架构"这个词,脑子里感觉有点模糊不懂.查阅相关资料后又陆续碰到了"指令集架构"."微架构"."处理器架构& ...

  10. 英特尔小心!AMD发ARM架构Opteron处理器

    据外媒报道,AMD今日正式推出了首个基于ARM架构的处理器Opteron A1100,希望在数据中心服务器市场挑战英特尔的霸主地位.早在2012年10月,AMD就宣布将采纳ARM架构自主设计相关处理器 ...

最新文章

  1. 分析B站10万条弹幕后,发现了歪嘴战神的终极奥义!
  2. VS2010中重命名项目
  3. Ubuntu 安装简单samba
  4. 综合LSTM、transformer优势,DeepMind强化学习智能体提高数据效率
  5. 属性值动态调整_【VBA】Range对象的常用方法属性(三)
  6. spring的bean注释_Spring @Bean注释
  7. Xshell连接不上虚拟机,或许该这样做!
  8. 计算机的内存时序参数,装机用户须知:电脑内存时序基础知识
  9. 新元宇宙每周连载《地球人奇游天球记》第十六回天王拜皇
  10. Linux下查看网络流量常用方法
  11. canvas教程17-合成
  12. Android Platform 3.0 SDK和Eclipse ADT安装记录三
  13. 微信pc端window10多开应用
  14. php输出503,php中的503是什么意思
  15. ACP知识域四---团队绩效
  16. 汇顶科技(笔试加面试)
  17. uva - 123 - Searching Quickly
  18. ~4.2 ccf 2021-12-1 序列查询
  19. 探索一下进制转换 (Python 实现源码)
  20. 微信无法拖拽文件解决办法

热门文章

  1. pip install execjs报错
  2. 论文尾注改为参考文献格式方法
  3. Linux下:文件与路径、用户管理、常用命令、vim
  4. 隧道未来如何发展?路网全息感知,颠覆公路交通安全史
  5. iproute2和流量控制(ip和tc工具)---iproute2/ip/tc/qdisc实现Linux下的QoS控制
  6. 二叉树后序遍历(非递归)
  7. word2vec常见考点
  8. 第一章 白色的拉布拉多猎狗
  9. Windows下的用户配置文件管理(二)
  10. 电脑开机失败提示用户配置文件服务登录失败的三种解决办法