从A76到A78——在变化中学习ARM微架构

这篇具有很好参考价值的文章主要介绍了从A76到A78——在变化中学习ARM微架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、引言

伴随智能手机的高速发展,移动处理器架构设计厂商ARM公司几乎每年都更新CPU的核心架构。从2018至2020年,ARM公司基于ARMv8架构推出了三代Cortex-A76、Cortex-A77、Cortex-A78经典CPU核心架构。基于这几代CPU架构,芯片设计厂商也设计了多款性能优秀的处理器产品。本文从A76微架构开始学习,通过对比每一代的变化,让读者了解处理器微架构关键知识。下表给出了一些基于这三代ARM处理器架构的典型处理器产品。

从A76到A78——在变化中学习ARM微架构

二、从A76开始了解ARM微架构

从ARM的A76开始,网络上可以查询到较多资料,例如我们可以从wikichip网站(en.wikichip.org)获取到A76的完整微架构框图。

从A76到A78——在变化中学习ARM微架构

1. DSU(DynamIQ Shared Unit)

从A75开始,ARM提出了一个新的多核心管理系统单元,叫做DSU。通过DSU模块,CPU设计者可以随意摆放不同架构的核心并共享L3缓存,减少不同架构核心直接传递数据损耗。在DSU架构之前,每个Cluster需要摆放同架构CPU,如将4个A73处理器放在一个Cluster中,将4个A53放在另外一个Cluster中,这两个Cluster的数据相互访问会有一定的连接损耗。

从A76到A78——在变化中学习ARM微架构

利用DSU模块,开发者可以随意设计CPU的组合,例如图中1大+7小,2大+6小,4大+4小,1大+2小,1大+3小,1大+4小等等组合。

从A76到A78——在变化中学习ARM微架构

2. 性能功耗优化

从A76到A78——在变化中学习ARM微架构

架构和工艺具有一定的关联性,如A76架构设计可采用7nm工艺,根据ARM数据,基于7nm的A76比基于10nm工艺的A75,性能可提升40%,或同性能下能耗降低50%。可见A76相比上一代的A75的提升较大,后面我们会详细了解架构上差异点。

3. 三级缓存设计

A76采用三级缓存机制,其中:

L1是核心独有缓存,具有独立的64KB指令Cache(ICache)和64KB数据Cache(DCache);

L2是核心独有缓存,可以配置成256KB或者512KB(加钱);

L3是核间共享缓存,在DSU内部,可以配置成2MB或者4MB。

4. 分支预测单元(BPU)

从A76到A78——在变化中学习ARM微架构

多级流水线系统中,在执行分支判断指令时,系统如果不知道下面走哪一条分支,需要等到分支执行出结果才可以再获取正确的指令。为了提升流水线性能,现代处理器中提供了一个分支预测单元(BPU),用来预测常用路径,并提前进行指令预取,确保流水线被填充完整。

A76的BPU和指令Fetch单元独立,BPU可以同时和Fetch单元工作,提前推测并获取分支后指令,降低分支预测的延迟。

5. 前端设计(Front-end)

从A76到A78——在变化中学习ARM微架构

指令预取后进入一个解码队列,A76提供了4路decoder,相比A75增加了一路decoder单元,这是性能提升的一个要素。

6. ROB模块设计

从A76到A78——在变化中学习ARM微架构

经过译码的指令叫做MOP(Macro-Operation),MOP不是实际执行的指令,最终送到执行单元的指令叫做uOP(Micro-Operation)。MOP比uOP稍微复杂一些,可能是多条uOP的组合指令,通过后端单元的拆解,可以把MOP分解成处理器可以执行的最基础指令uOP,uOP的指令数量约比MOP多20%。

ROB(ReOrder-Buffer)模块提供了128个entry,用来将指令进行重新排序,尽可能填充流水线,这里可以看到A76设计的输入是4路MOP,输出是8路uOP。

7. 执行单元 (Execution Engine)

从A76到A78——在变化中学习ARM微架构

Dispatch单元将uOP指令发射到执行单元(Issue),执行单元提供了120个entry,分成三类:整型、浮点和读写,整型部分包括了1个分支单元,2个基础ALU单元,1个复合ALU单元;浮点部分提供了2个128bit的高级SIMD指令单元;读写部分则提供了2个AGU(Adress Generation Unit)地址单元。

8. LSU(Load Store Unit)设计

从A76到A78——在变化中学习ARM微架构

LSU模块和执行单元的2个AGU相连接,同时连接64KB的L1数据缓存(DCache),并提供2个16B/cycle的load端口和1个32B/cycle的store端口。

9. 小结

至此,我们从取指、译码、指令分派、指令发射、指令执行到数据读写,简略了解了A76处理器的微架构,下一节我们通过对比A77和A76架构的差异,进一步了解ARM微架构设计的步伐。

三、A77微架构和A76对比

A77微架构图,大家且看且珍惜,因为自A77之后的产品在网络上很难找到完整的微架构图了。

从A76到A78——在变化中学习ARM微架构

1. 性能提升

从A76到A78——在变化中学习ARM微架构

ARM资料显示同样是7nm工艺3GHz的条件下,A77的性能可以比A76提升20%,注意这里面标注是单线程性能提升,后面我们可以从架构升级中推测性能提升的原因。

2. L0缓存(MOP Cache)

从A76到A78——在变化中学习ARM微架构

A77新引入了MOP Cache模块,这个模块并不是ARM的创新设计,在PC处理器上已经有了,例如Intel在早期的酷睿Sandy Bridge处理器中就加入了uOP Cache模块。

从A76到A78——在变化中学习ARM微架构

此外AMD的Zen架构也有MOP缓存模块。

从A76到A78——在变化中学习ARM微架构

MOP Cache主要用做L0级别缓存,存储译码过的MOP指令。MOP Cache的好处是如果在里面找到需要的指令,前面的电路模块都可以暂时由MOP Cache来替代,可以节省功耗提升性能。ARM数据显示这个MOP Cache的命中率有85%,可见是A77的一个非常大的改进。

继续看下MOP Cache的尺寸,ARM给的尺寸数据是1.5K而不是1.5KB,单位不是Byte而是条,考虑到ARM常规decoded出的机器码是32位宽(Aarch64也是32位宽,当然也有个别64位宽指令),推测这个L0 Cache的大小应该是6KB左右(和Intel的sandy bridge时一样)。

移动处理器领域引入L0,ARM并不是首家,早在高通的Snapdragon S4时代就在Krait核心中引入了L0 cache。根据数据显示1.5K的Cache就可以达到80-85%的命中率,再增加Cache,提升命中率的边际效应会越来越明显。

3. 前端设计(Front-End)

从A76到A78——在变化中学习ARM微架构

A77相对于A76的另一个重要变化是产生MOP指令的能力从原来的每周期4个提升到最多6个,但是decode的能力还是保持4个没有变化。可以对比下整体上fetch和decode的基本架构和A76没有太大变化,MOP提升的主要原因是新加入的MOP Cache提供的。如果MOP Cache命中,可以绕过decode模块最多一次取6条MOP指令,如果不命中回到decode模块还是一次4条,L0 Cache和Decode进行了很好的补充,让一周期可以提供更多的MOP指令。

4. ROB模块设计

从A76到A78——在变化中学习ARM微架构

A77相对A76在执行单元上提升了重排序缓冲的大小(ReOrder-Buffer),还记得A76是128-entry,A77提升了25%到160-entry。

另外可以看到输入是6条MOP,输出提升到了10条uOP,对比A76则是8条。据说其他厂商基于ARM定制内核时会修改这个部分,随着ARM内核逐步吸收这些优秀的设计,定制ARM内核的空间和收益会越来越小 。

5. 执行单元

从A76到A78——在变化中学习ARM微架构

A77相比A76在执行单元也有比较大的改变:新增加了一路分支单元,将分支预测的带宽提升了一倍;新增了第四个基础整型ALU单元,这个单元可以用一个周期执行简单的算术运算或二个周期执行更复杂运算。A77一共4个整型ALU,其中3个是基础整型ALU单元,还有一个是复杂整型ALU单元,可以执行更复杂的计算(例如MAC乘加,DIV除法),A76也有这个复杂ALU单元。在整型执行单元上,A77相对A76提升是比较大的,从4个提升到6个,有50%的提升。

此外,还A76的每个执行单元都有独立的发射列队,A77则进行了一定程度的优化,将发射列队(issue queue)统一成三个,整型、浮点和读写发射列队,由于A77的执行单元多,将发射列队统一进行管理和分配,可以进一步提升执行效率。

6. LSU设计

从A76到A78——在变化中学习ARM微架构

A77在Load\Store单元上有两个独立的地址生成单元AGU,这和A76是一样的。不同的地方是A77额外增加了两路Store端口,等于将Store的带宽增加了一倍。同时这四路LSU单元也共享一个发射队列,ARM宣称这样可以提升25%的内存并发读写性能。

再来看一下LSU单元,更宽的执行单元需要有更宽的LSU支持,A77增大了LSU的load和store buffer,同时可以支持85级深度load 操作和90级深度store操作,总共支持同时175个内存操作,稍高于指令操作的宽度160,相比A76的LSU深度140,提升了25%。

7. 小结

最后整理了一个更详细的表格来对比A77和A76,A77是ARMv8系列中非常成功的一代,基于A77,产生了如麒麟9000、骁龙865这样经典的产品。

从A76到A78——在变化中学习ARM微架构

从A76到A78——在变化中学习ARM微架构

四、A78微架构和A77对比

1. 性能功耗优化

从A76到A78——在变化中学习ARM微架构

从A76到A78——在变化中学习ARM微架构

2020年,ARM更新了代号Hercules的A78新架构,也是ARMv8体系中最后一代中核架构。ARM宣传这一代是“持续的性能功耗领先”,图中看到性能提升了20%,工艺从7nm提升到5nm,注意性能提升包含了频率的15%提升,架构的性能提升ARM估计在7%左右。得益于工艺进化到5nm,同样性能,功耗可以比A77降低50%(2.1GHz相当于A77的2.3GHz)。从第二张图可以看出,A78这一代的主要设计目标是小幅度提升性能,提升能效并减少芯片面积。

2. A78微架构的一些特点

从A76到A78——在变化中学习ARM微架构

从A76到A78——在变化中学习ARM微架构

从A76到A78——在变化中学习ARM微架构

从A76到A78——在变化中学习ARM微架构

1、L1缓存:ARM提供了32KB缓存的选择,让一些注重成本和芯片面积的厂商可以选择更低的数据和指令缓存,默认是64KB。

2、分支预测:分支预测的带宽相对A77提升了1倍。

3、执行单元:增加了一个MUL单元,允许一个周期进行2个整型的乘法运算(A77是一周期1个)。增加了一个用于Store的AGU单元,Store的能力从16B/cycle提升到32B/cycle。

A78是ARMv8架构最后一代产品,主要是对前面几代微架构的优化,可谓ARMv8架构的守门员了。

五、总结

从A76到A78——在变化中学习ARM微架构

A78是ARMv8架构的最后一代产品,智能手机依然在高速发展并快速更新产品,ARM处理器的架构也在持续迭代和更新。2020年,ARM公司提出了对厂商定制高性能核心的计划,并推出了面积更大性能更强的Cortex-X系列核心。2021年,ARM公司推出了全新的ARMv9架构,目前已经有A710、A715等产品接替A78的路线。限于篇幅限制,后续我会和大家一起继续学习X系列和ARMv9架构的相关内容。

摘要

1、DSU介绍 https://www.androidauthority.com/arm-dynamiq-need-to-know-770349/

2、A76 wikichip https://en.wikichip.org/wiki/arm_holdings/microarchitectures/cortex-a76

3、A77 wikichip https://en.wikichip.org/wiki/arm_holdings/microarchitectures/cortex-a77

4、A77介绍 https://www.anandtech.com/show/14384/arm-announces-cortexa77-cpu-ip

5、Intel's Sandy Bridge Architecture Exposed https://www.anandtech.com/show/3922/intels-sandy-bridge-architecture-exposed/2

6、AMD Zen Microarchitecture https://www.anandtech.com/show/10578/amd-zen-microarchitecture-dual-schedulers-micro-op-cache-memory-hierarchy-revealed

7、A78介绍 https://www.anandtech.com/show/15813/arm-cortex-a78-cortex-x1-cpu-ip-diverging

8、A78 wikichip https://en.wikichip.org/wiki/arm_holdings/microarchitectures/cortex-a78

9、A78介绍 https://fuse.wikichip.org/news/3536/arm-unveils-the-cortex-a78-when-less-is-more/

10、ARMv9介绍 https://www.anandtech.com/show/16584/arm-announces-armv9-architecture

长按关注

内核工匠微信

Linux 内核黑科技 | 技术文章 | 精选教程文章来源地址https://www.toymoban.com/news/detail-458036.html

到了这里,关于从A76到A78——在变化中学习ARM微架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ARM A64架构TrustZone学习

    本文翻译自文档 Learn the architecture - TrustZone for AArch64 原文链接:https://developer.arm.com/documentation/102418/0101/?lang=en 在本指南中,我们介绍了 TrustZone。TrustZone 通过内置于 CPU 中的硬件强制隔离提供了一种高效的、系统范围的安全方法。 我们涵盖了 TrustZone 添加到处理器架构中

    2024年02月06日
    浏览(45)
  • 一、深度学习引言

    数据的集合称为 数据集 ,每个数据集由一个个的 样本(sample,example) (或称为 数据点(data point) / 数据实例(data instance) )组成,每个样本由一组 特征(features,或协变量(covariates)) 属性组成.需要预测的属性称为 标签(label 或目标(target) 。 在深度学习中,模型是一种数学

    2024年02月08日
    浏览(35)
  • 01.机器学习引言

    1. 数据搜集 其中数据划分,是将数据集分为训练集、验证集和测试集(通常不考虑时间) 2. 数据清洗 3. 特征工程 提取对象:原始数据(特征提取一般在特征选择之前) 提取目的:自动地构建新的特征,将原始数据转换为一组具有明显物理意义(例如,几何特征、纹理特征

    2024年02月12日
    浏览(48)
  • 用于物体识别和跟踪的下游任务自监督学习-1-引言

    一:引言: 图像和视频理解是计算机视觉应用中的基本问题,旨在使机器能够像人类一样解释和理解视觉数据。这些问题涉及识别图像和视频中的对象、人物、动作、事件和场景。如图1.1-(a)所示的图像识别任务包括对象检测[1]、实例[7]、语义[8]或全景分割[9],以定位对象

    2024年02月07日
    浏览(46)
  • 电路学习(3)——稳压电路(78L05)

    前言:本次学习的电路是利用78L05设计的一个24V转5V的稳压电路。 目录 78L05简介 稳压电路 稳压电路中的电阻、电容和二极管的作用         78L05属于78系列的一款集成的线性稳压器,L代表着输出电流Io最大为100mA,05代表该稳压器输出电压为5V,其原理图如下所示。        

    2024年02月04日
    浏览(42)
  • LLaMA 模型中的Transformer架构变化

    目录 1. 前置层归一化(Pre-normalization) 2. RMSNorm 归一化函数 3. SwiGLU 激活函数 4. 旋转位置嵌入(RoPE) 5. 注意力机制优化 6. Group Query Attention 7. 模型规模和训练超参数 8. 分布式模型训练 前置归一化与后置归一化的区别 前置归一化(Pre-normalization) 后置归一化(Post-normalizatio

    2024年03月21日
    浏览(80)
  • [架构之路-245/创业之路-76]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 企业资源管理计划ERP

    目录 前言: 一、企业信息化的结果:常见企业信息化软件 1.1 企业资源管理计划 1.1.1 什么是ERP:企业最常用的信息管理系统 1.1.2 ERP的演进过程 1.1.3 EPR模块 1.1.4 EPR五个层级 1.1.5 企业EPR业务总体流程图 1.1.6 什么类型的企业需要ERP 1.1.7 创业公司什么情况需要ERP 1.1.8 ERP与人工管

    2024年02月07日
    浏览(56)
  • 【机器学习300问】78、都有哪些神经网络的初始化参数方法?

            在训练神经网络时,权重初始化是确保良好收敛的关键步骤之一。不合适的初始化方法可能会导致梯度消失或爆炸,特别是在深层网络中。那么都有哪些神经网络的初始化参数方法呢?选择它这些方法的原则是什么?         关于随机初始化神经网络参数的方法

    2024年04月23日
    浏览(49)
  • 0基础学习VR全景平台篇 第78篇:全景相机-拍摄VR全景

    新手入门 圆周率科技,成立于2012年,是中国最早投身嵌入式全景算法研发的团队之一,亦是全球市场占有率最大的全景算法供应商。相继推出一体化智能屏、支持一键高清全景直播的智慧全景相机--Pilot Era和Pilot One,为用户带来实时畅享8K的高清沉浸式直播体验。 这里以Pi

    2024年02月14日
    浏览(40)
  • 0基础学习VR全景平台篇 第76篇:全景相机-圆周率全景相机如何直播推流

    圆周率科技,成立于2012年,是中国最早投身嵌入式全景算法研发的团队之一,亦是全球市场占有率最大的全景算法供应商。相继推出一体化智能屏、支持一键高清全景直播的智慧全景相机--Pilot Era 和Pilot One ,为用户带来实时畅享8K的高清沉浸式直播体验。 一、相机端 1、相机

    2024年02月14日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包