ARM 发布 Corte-X4/A720/520 CPU 架构,其中有哪些设计亮点?

一年一度的techday上arm如约而至发布了全新的一代Cortex阵容,我们不谈性能、功耗数据,毕竟实机实测以前这些数据可操作空间太大,Arm在这方面的传统也不好。我们聚焦微结构的变动,只列出但不复述ppt,而是分析、猜测其改动的意图和实现方式。Cortex X4作为首款10发射消费级处理器,X4的宣称性能提升实在不令人满意,可能Arm的非定制设计限制了流水线效率的进一步提升。不过换一个角度,每年能够稳定提升~10%的性能还是不错的。但是这里的“每年”得打上一个大大的问号,除非将Cortex X2剔除233333,实测如下:回到Cortex X4,即便是提升15%仍然会与8发射的苹果家族有一定的差距。前端实际上CPU面积增长小于10%也是有水分的,虽然L2 Cache capacity控制了变量,但是架不住X4和去年的A715一样去掉了macro op cache呀23333。先前的Cortex家族的前端表现是可圈可点的,这一代进一步优化了相关机制,不禁让人期待起实测表现了。其中突出提到了any instruction footprint size,是不是可以理解为BTB容量大升级呢。分支预测方面各家其实已经表现很近似了,不过能有所精进也是好事:后端为了配合10取指的前端,后端单元也增加了,多到令人恐惧:8 ALU、3 BRU。这样的配置是否有必要我们暂且搁置,但是Arm总能在这里做出许多令人百思不得其解的操作。例如去年的X3配备了6个ALU,但是经过我的测试dispatch级并不能每周期分派6条简单ALU指令,而是4条!也就是说多出的ALU仅仅提供了burst性能而不是sustained throughput。Damn Arm,what are you doing? 恐怕是出于重命名部分的限制?能不能改改你们那万年不动的rename逻辑,再下去快赶不上新时代本科毕业水准了。因此X4的实际表现如何还得看实测,不能只看纸面数据。可能很多人会吐槽MCQ(ROB)的容量增长幅度太小,但是Arm的ROB并不是一个完全传统的ROB,直接将容量和Intel、AMD之流对比不甚科学。它能在某些情况下容纳两条指令,而且还要考虑Arm的“early deallocation”方面的优化,因此实际等效容量会大一些。访存Cortex系列的前作一直较为重视访存,这次访存部分继续增强到了4AGU,大震撼。恐怕是第一个做到能同时进行4个load的消费级微架构?看错了,原来是和苹果一样的设计,还是3个load,散了。有一种暴力的美。这一代的访存改进非常多:更大的规格、队列规模是势在必行的,不清楚Arm如何解决时序问题。TLB更大。DCache分bank看起来也改进了,祖传的实在不够优秀。直至X3,Arm的dcache仍然不支持行内数据广播;分bank也不够阔绰,因此读取冲突会很多。改进的数据预取器。Arm的数据预取器十分豪华,用了诸如history预取器的激进而科幻的设计,这里的进一步改进让人十分期待。不过我个人更希望它们能更加鲁棒而非更加激进,先前的Austin家族处理器的预取器在复杂工况下相互串扰很严重,远没有苹果干净整洁。新的cache替换策略,用以应对大code footprint。我们之前的测试中发现公版的L2 Cache只有一半能被用于存储Instruction侧的内容,可能更改以后ICache侧能用到更多的L2空间?2MB L2支持,且不增加延迟。但是实际上Arm公版的L2 Cache延迟是偏高的,这次加量不加价也只能算是将功补过了。Arm贫穷而朴素的Dcache设计得好好改改了,能不能再加点block,再多点bank?能不能把行内广播加上?不然很限制这么大的一个core,这么多AGU的发挥啊,看看苹果,多一倍block呢。Arm Cortex DCache (Diagramed by JamesAslan)Apple M DCache (Diagramed by JamesAslan)Cortex A720自从X系列接过Arm 性能大旗后X系列总是能用上最好的技术而非最新的技术,那么最新的技术在哪里呢?没错,在A系列,从去年的A715开始这一趋势显露无疑。X3和还是X2、A710的技术演进,而A715已然踏上了全新的征途,众多设计上出现了“革命性”的变化。今年的X4则是对A715的延续,A720则再度先行出发,肩负起了技术探路先锋的角色。大眼看上去A720的变化不大,但是细节上的改动实则不小。前端方面最重要的改进是语焉不详的“2-taken”改进。至少从A78开始,Austin家族的Cortex就是只能在L0 BTB的容量范围内实现2 taken。传统的实现方式需要在同一个BTB表项内额外存储2nd branch的信息,在BTB较小时这一开销较小。A78到X3,L0 BTB的容量只有64-96;但是大改后的BTB层级的L0已经接近了~1024,再用传统实现方式就太占面积了,推测改进的就是这方面。执行单元方面除法器可能抛弃了传统的radix-n的思路,转而拥抱苹果已经实现的快速除法器了。AGU的前递网络进行了精简,这里的潜在解读非常多,需要等待实测:可以是正面的推测,比如:之前保留了复杂ALU到AGU的结果前递,但是现在删除了。也可以是负面的推测,比如:删掉了pointer chasing机制。这里Arm还提及了访存mops的提前释放,不清楚Arm做到了何种程度,如果是真正意义上的early deallocation,那还是十分激进而先进的。访存部分改动一样很大。我一直觉得arm的L2虽然configurable但是latency特别大,现在终于降下来了一些。这里的memset 0相关的提升不清楚是不是文字游戏,arm的扩展指令里是有添加专门用于memset 0的指令的,不清楚性能是不是来自于这里。假设是纯硬件提升,那么也很合理而有趣,因为arm的Cache tag里是有支持标0的,理论上清0只要tag ram直接标0就可以不访问data ram了,多给tag ram分bank这个带宽真的要多大有多大,很有趣的优化。Arm还给出了prefetch优化后的表现:很高兴看到464和471的dram reads数量下降了,说明Arm还是切实优化了预取accuracy的,而非只是越来越激进。而Dram访问增加最多且性能提升的483则预示着Arm可能进行了流控更改,因为该子项访存中存在大量的短流,容易造成过度预取降低性能。这里不展开了。Cortex A520A520就比较搞笑了,仍然保持in-order设计,都2023年了。。。其缩减了一组alu pipeline,解释是为了简化前递、发射逻辑,减少面积和功耗。经过了多代演进,这设计终于和我三年前搞出来的东西差不多一样了。这波啊,我上我确实行23333,遥遥领先!实在不想说什么。DSU-120DSU120支持了苹果-like的partially ram power down,片上的L3 slice可以部分、成片关闭,这对于移动设备十分重要,如果算法足够智能的话,功耗表现会大幅改观。最大容量支持也来到了32MB,终于可以期待下WOA了?今年的woa市场真是精彩纷呈啊,nuvia、mtk、samsung。。。。
ARM是智能手机芯片的设计者,每年都会推出新的核心,为高通、联发科等芯片厂商提供基础。2023年5月29日,ARM发布了三款新的CPU核心:旗舰级的Cortex-X4,中端的Cortex-A720,和低端的Cortex-A520。这些核心都是基于最新的ARMv9.2架构,支持64位计算,不再兼容32位应用。这些核心的主要特点是提高了IPC和效率,为未来的智能手机和其他设备带来更强的性能和更长的续航。64位计算:任务完成这次ARM发布的三款核心都只支持64位应用,不再支持32位应用。这意味着未来的高端智能手机芯片和其他领域的ARM芯片都将只能运行64位应用。这是一个巨大的软件变化,也是ARM多年来努力推动的结果。32位应用在Android上已经逐渐被淘汰,特别是自从谷歌在2019年要求所有更新的应用都上传64位版本后。ARM认为,64位计算的转型已经“任务完成”。之所以能够达到这个目标,主要是因为中国市场的进步。中国市场曾经是制约整个行业转型的因素,因为不同的应用商店对开发者有不同的标准。但是随着ARM与各个应用商店的合作,以及反复警告转型即将到来,这些应用商店也开始鼓励开发者转向64位应用。现在看来,转型的时机已经成熟,而且我们还有几个月的时间才能看到这些ARM核心出现在新的芯片中。Cortex-X4:更强的性能和更好的效率Cortex-X4是ARM最强大的核心之一,专为最高性能而设计,比如运行AAA级游戏。它是去年发布的Cortex-X3的后继者,这还在同一制程下,单线程性能提升了平均14%,更令人印象深刻的是,在相同性能下,功耗降低了40%。这还没有考虑到即将到来的台积电3nm制程的优势。当然,如果把性能推到极限,功耗还是会超过上一代模型。Cortex-X4采用了超标量、乱序、双发射、八阶流水线、乱序执行引擎等技术,增加了指令缓存、数据缓存和微操作缓存等容量,优化了分支预测器和内存管理单元等部件。它还支持动态频率和电压调节(DVFS),可以根据负载和温度自动调节运行状态。Cortex-X4还支持SVE2向量扩展指令集,可以提高机器学习、图像处理、音频处理等领域的性能。Cortex-A720:平衡性能和功耗Cortex-A720是中端核心,适合多核心持续运行的场景,比如多任务处理、视频编解码、网络浏览等。它是去年发布的Cortex-A715的后继者,在同一制程下,单线程性能提升了平均10%。同时,在相同性能下,功耗降低了20%。Cortex-A720采用了超标量、乱序、双发射、六阶流水线、乱序执行引擎等技术,增加了指令缓存、数据缓存和微操作缓存等容量,优化了分支预测器和内存管理单元等部件。它也支持DVFS和SVE2指令集。Cortex-A520:提升效率Cortex-A520是低端核心,适合基本和后台任务,比如语音识别、传感器处理、音乐播放等。它是去年发布的Cortex-A510R1(R代表修订版)的后继者,在同一制程下,单线程性能提升了平均8%。同时,在相同性能下,功耗降低了22%。Cortex-A520采用了双发射、四阶流水线、乱序执行引擎等技术,增加了指令缓存和数据缓存等容量,优化了分支预测器和内存管理单元等部件。它也支持DVFS和SVE2指令集。ARM发布了三款新的CPU核心:Cortex-X4、A720、A520。这些核心都只支持64位计算,不再兼容32位应用。这些核心都提高了IPC和效率,在相同制程下都有显著的性能提升和功耗降低。这些核心将为未来的智能手机和其他设备带来更好的用户体验。
一年一度的techday上arm如约而至发布了全新的一代Cortex阵容,我们不谈性能、功耗数据,毕竟实机实测以前这些数据可操作空间太大,Arm在这方面的传统也不好。我们聚焦微结构的变动,只列出但不复述ppt,而是分析、猜测其改动的意图和实现方式。Cortex X4作为首款10发射消费级处理器,X4的宣称性能提升实在不令人满意,可能Arm的非定制设计限制了流水线效率的进一步提升。不过换一个角度,每年能够稳定提升~10%的性能还是不错的。但是这里的“每年”得打上一个大大的问号,除非将Cortex X2剔除233333,实测如下:回到Cortex X4,即便是提升15%仍然会与8发射的苹果家族有一定的差距。前端实际上CPU面积增长小于10%也是有水分的,虽然L2 Cache capacity控制了变量,但是架不住X4和去年的A715一样去掉了macro op cache呀23333。先前的Cortex家族的前端表现是可圈可点的,这一代进一步优化了相关机制,不禁让人期待起实测表现了。其中突出提到了any instruction footprint size,是不是可以理解为BTB容量大升级呢。分支预测方面各家其实已经表现很近似了,不过能有所精进也是好事:后端为了配合10取指的前端,后端单元也增加了,多到令人恐惧:8 ALU、3 BRU。这样的配置是否有必要我们暂且搁置,但是Arm总能在这里做出许多令人百思不得其解的操作。例如去年的X3配备了6个ALU,但是经过我的测试dispatch级并不能每周期分派6条简单ALU指令,而是4条!也就是说多出的ALU仅仅提供了burst性能而不是sustained throughput。Damn Arm,what are you doing? 恐怕是出于重命名部分的限制?能不能改改你们那万年不动的rename逻辑,再下去快赶不上新时代本科毕业水准了。因此X4的实际表现如何还得看实测,不能只看纸面数据。可能很多人会吐槽MCQ(ROB)的容量增长幅度太小,但是Arm的ROB并不是一个完全传统的ROB,直接将容量和Intel、AMD之流对比不甚科学。它能在某些情况下容纳两条指令,而且还要考虑Arm的“early deallocation”方面的优化,因此实际等效容量会大一些。访存Cortex系列的前作一直较为重视访存,这次访存部分继续增强到了4AGU,大震撼。恐怕是第一个做到能同时进行4个load的消费级微架构?看错了,原来是和苹果一样的设计,还是3个load,散了。有一种暴力的美。这一代的访存改进非常多:更大的规格、队列规模是势在必行的,不清楚Arm如何解决时序问题。TLB更大。DCache分bank看起来也改进了,祖传的实在不够优秀。直至X3,Arm的dcache仍然不支持行内数据广播;分bank也不够阔绰,因此读取冲突会很多。改进的数据预取器。Arm的数据预取器十分豪华,用了诸如history预取器的激进而科幻的设计,这里的进一步改进让人十分期待。不过我个人更希望它们能更加鲁棒而非更加激进,先前的Austin家族处理器的预取器在复杂工况下相互串扰很严重,远没有苹果干净整洁。新的cache替换策略,用以应对大code footprint。我们之前的测试中发现公版的L2 Cache只有一半能被用于存储Instruction侧的内容,可能更改以后ICache侧能用到更多的L2空间?2MB L2支持,且不增加延迟。但是实际上Arm公版的L2 Cache延迟是偏高的,这次加量不加价也只能算是将功补过了。Arm贫穷而朴素的Dcache设计得好好改改了,能不能再加点block,再多点bank?能不能把行内广播加上?不然很限制这么大的一个core,这么多AGU的发挥啊,看看苹果,多一倍block呢。Arm Cortex DCache (Diagramed by JamesAslan)Apple M DCache (Diagramed by JamesAslan)Cortex A720自从X系列接过Arm 性能大旗后X系列总是能用上最好的技术而非最新的技术,那么最新的技术在哪里呢?没错,在A系列,从去年的A715开始这一趋势显露无疑。X3和还是X2、A710的技术演进,而A715已然踏上了全新的征途,众多设计上出现了“革命性”的变化。今年的X4则是对A715的延续,A720则再度先行出发,肩负起了技术探路先锋的角色。大眼看上去A720的变化不大,但是细节上的改动实则不小。前端方面最重要的改进是语焉不详的“2-taken”改进。至少从A78开始,Austin家族的Cortex就是只能在L0 BTB的容量范围内实现2 taken。传统的实现方式需要在同一个BTB表项内额外存储2nd branch的信息,在BTB较小时这一开销较小。A78到X3,L0 BTB的容量只有64-96;但是大改后的BTB层级的L0已经接近了~1024,再用传统实现方式就太占面积了,推测改进的就是这方面。执行单元方面除法器可能抛弃了传统的radix-n的思路,转而拥抱苹果已经实现的快速除法器了。AGU的前递网络进行了精简,这里的潜在解读非常多,需要等待实测:可以是正面的推测,比如:之前保留了复杂ALU到AGU的结果前递,但是现在删除了。也可以是负面的推测,比如:删掉了pointer chasing机制。这里Arm还提及了访存mops的提前释放,不清楚Arm做到了何种程度,如果是真正意义上的early deallocation,那还是十分激进而先进的。访存部分改动一样很大。我一直觉得arm的L2虽然configurable但是latency特别大,现在终于降下来了一些。这里的memset 0相关的提升不清楚是不是文字游戏,arm的扩展指令里是有添加专门用于memset 0的指令的,不清楚性能是不是来自于这里。假设是纯硬件提升,那么也很合理而有趣,因为arm的Cache tag里是有支持标0的,理论上清0只要tag ram直接标0就可以不访问data ram了,多给tag ram分bank这个带宽真的要多大有多大,很有趣的优化。Arm还给出了prefetch优化后的表现:很高兴看到464和471的dram reads数量下降了,说明Arm还是切实优化了预取accuracy的,而非只是越来越激进。而Dram访问增加最多且性能提升的483则预示着Arm可能进行了流控更改,因为该子项访存中存在大量的短流,容易造成过度预取降低性能。这里不展开了。Cortex A520A520就比较搞笑了,仍然保持in-order设计,都2023年了。。。其缩减了一组alu pipeline,解释是为了简化前递、发射逻辑,减少面积和功耗。经过了多代演进,这设计终于和我三年前搞出来的东西差不多一样了。这波啊,我上我确实行23333,遥遥领先!实在不想说什么。DSU-120DSU120支持了苹果-like的partially ram power down,片上的L3 slice可以部分、成片关闭,这对于移动设备十分重要,如果算法足够智能的话,功耗表现会大幅改观。最大容量支持也来到了32MB,终于可以期待下WOA了?今年的woa市场真是精彩纷呈啊,nuvia、mtk、samsung。。。。

我要回帖

更多关于 arm a510 的文章