2023年Arm最新处理器架构分析——X4、A720和A520

1、引言

上一篇文章我们介绍了Arm的Cortex-X1至Cortex-X3系列处理器,2023年的5月底,Arm如期发布了新一年的处理器架构,分别为超级大核心Cortex-X4,大核心A720和小核心A520。在智能手机行业,Arm始终保持每年一迭代的处理器架构升级节奏,让用户可以不断体验到最先进的产品设计。本文主要介绍了2023年的新处理器架构的变化,重点分析变化较大的Cortex-X4核心,并探讨今年核心处理器架构有哪些值得关注的改变。

2、整体介绍

从Arm的宣传数据可以看出,今年的三款处理机架构侧重点有所不同,Cortex-X4主打性能提升,相比上一代Cortex-X3提升15%的性能,A720和A520则偏重能效改善,相比上一代A715和A520分别改善20%和22%的能效。值得注意的是今年的处理器没有升级工艺,这些数据应该是基于相同工艺计算而来的(例如TSMC 4nm)。

除了新的处理机架构,Arm在今年还带来了全新的Armv9.2指令集,包括新的QARMA3 PAC算法、浮点能力增加和PMU增强等,最关键的变化是今年Arm计划完全抛弃32bit应用的支持,三个新的核心均不兼容32bit应用。

今年Arm还更新了DSU120模块,用来更好管理处理器核心之间的数据,并支持最多达14核心和最多32MB的L3缓存设计。从下面这张图可以看出来,今年的处理器设计也有明显变化,去年高通8Gen2处理器采用了1+4+3架构,今年我们会看到更少小核心的1+5+2架构(参考链接3,高通8Gen3处理器),多核心性能有大幅度提升。

3、Cortex-X4微架构分析

Cortex-X4的代号是Hunter-ELP,下图是X4的微架构图,第一感觉是变“大”了,X4的核心变得越来越大,如果大家看过前几篇文章,应该可以感觉到这个微架构设计越来越像另外一款行业领先处理器,殊途同归,最优秀的设计往往只有一个选择,下面我们会详分析今年的核心改变。

在前端设计上,X4取消了L0级别的MOP Cache,注意这个变化从大核心A715就开始了,这是一个大的改变,也侧面说明MOP Cache的成本可能真的很高,在先进工艺中不经济。为了弥补取消MOP Cache的影响,X4这次将Decoder的数量从6个增加到了10个。上一代X3,如果从MOP Cache取数据是8-wide,从L1取数据是6-wide,这次的X4则统一是10-wide。在流水线长度上,X3如果从L1取数据是11级,从MOP取数据是9级,这次由于取消了MOP,X4特意优化了流水线,从L1取数据从11级降到了10级。

在后端设计上这次X4同样变化不少,特别是运算单元,增加了1个新的Branch单元,2个新的ALU单元,并且提供了第二个完整的 MAC ALU单元,这些对于整体性能的提升都有显著帮助。

为了支撑新增的10个decoder和运算单元,X4的重排序缓冲(ROB)的尺寸也从320提升到384,提升了20%。

在存储模块方面,Arm重新调整了Load和Store单元的数量,X3有个LS AGU和1个LD AGU,X4则调整为1个 LS AGU,2个LD AGU和1个ST AGU。从3个AGU提升到4个AGU,但是功能稍有差异。此外,像L1的d-TLB,也从48提升到了96,增强了数据的处理能力。

这次X4核心还有一个特点是支持更大的L2缓存,从X3的最大支持1MB提升到X4最大支持2MB,根据Arm给出的数据显示,2MB的L2缓存可以有效降低每千条指令的重填充和写回率,不过由于增加缓存会增加成本,不一定所有厂商都愿意增加到最大的缓存尺寸。

从X4的整体性能数据看,Sepcint2K7提升达到了2位数,Geekbench系列的提升在6-8%之间,只有个位数的提升,推测Geekbench对于L2不是很敏感,而对于L2缓存依赖的Sppdometer2这个benchmark提升比较明显,注意这里面的测试数据使用2MB的L2测试得出的。

此外Arm资料显示X4的典型CPU频率可以跑到3.4G左右,虽然厂商实际处理器频率还没有确认,但是从上一代天玑9200+运行在3.35G推测,3.4G应该是4nm能达到的一个比较高的频率水平。

总结下Cortex-X4的关键改变:

1、取消了MOP Cache;

2、Decoder数量从6个提升到10个;

3、流水线统一为10级;

4、Branch单元从2个提升到3个;

5、ALU单元从6个提升到8个;

6、AGU单元增加了一个且功能有调整;

7、ROB尺寸从320提升到384;

8、L1的d-TLB从48提升到96;

9、最大支持的L2缓存从1MB提升到2MB;

10、不支持32bit。

整体性能上Sepcint2K7参数有13%-14%的提升。

 资料直通车:Linux内核源码技术学习路线+视频教程内核源码

学习直通车:Linux内核源码内存调优文件系统进程管理设备驱动/网络协议栈

4、A720微架构分析

上一节我们列举了10条X4内核的微架构变化,相比X4的大动作,A720和A520的变化则没有那么大,但也有些值得我们研究和探讨。

首先我们来看下A720,A720的代号叫做Hunter,A720的设计目标是比A715提升20%的能效,在同样的功耗下,A720可以提供更强的性能。

A720的的微架构整体和A715差异不大,Arm并没有增加fetch-decode宽度,也没有增加诸如ROB尺寸之类的优化,而是进一步深入到微架构的细节调整以优化能效。

在前端设计上,A720持续优化分支预测能力,通俗的说就是走一步看两步的能力。A720的分支预测错误的恢复周期从12降低到11周期,这个优化对于实际用户场景中无法准确预测的案例很有帮助。在分支预测能力上,A710的大核心每周期可以预测2个unconditional分支,A715额外支持了conditional分支,A720则进一步进行了优化了功耗,Arm宣称可以在不影响性能的情况下降低功耗。

在后端设计上,A720通过管线化排序FDIV\FSQRT单元(除法和开方),提升指令执行能效。同时,A720优化了数据在整型和浮点单元的传输效率,降低数据传输的延迟和存储数据的延迟。A720还改进了发射队列和执行单元,简化网点到AGU的数据传输等。

A720在存储模块上有一个较为明显的优化是降低了L2访问的延迟,从10个周期降低为9个周期,对于访存多的场景会比较有帮助。另外A720支持的最大L2缓存数量还是512KB。

最后介绍一个A720在今年最大的变化,今年Arm的A720不是一个人,是一对双胞胎,Arm提供了另外一个A720min(暂时这样叫)的核心。这个核心和A720不同,在面积上做了一定的削减,整体核心面积大小和A78接近,性能上也弱于A720,但是比A78强10%左右。总结,A720min的面积和A78接近(耗电也应该接近),性能比A78强10%,属于A720的一个分支。

最后简单总结下A720的关键改变:

1、分支预测错误的恢复周期从12降低到11周期;

2、L2访问延迟从10个周期降低为9个周期;

3、提供了一个A720min的选择,面积和A78接近,性能比A78强10%。

5、A520微架构分析

我们来看一下小核心A520,A520小核心的代号叫做Hayes,依然不支持乱序执行,设计相对简单,主打能效改善。A520依然继承了A510的2个小核心拼接在一起共享SIMD单元的设计,这次的A520也是仅支持64bit,不再支持32bit。A520提供了新的QARMA3 PAC算法,旨在将PAC的影响降低到1%以内。

相比A510,A520为了提升能效还做了减法,主要的变化是减少了一个执行单元的ALU。A510有3个ALU,A520只有2个。当然,Arm说通过全局的优化有将性能的损失弥补回来,从Arm提供的数据上看,A520在相同的性能下,功耗可以降低22%;在相同的功耗下,性能可以提升约8%,我们也会实际测试看看。

可惜,8%的性能提升相比旗舰处理器的需求还是有一定差距,我们看到在今年的旗舰处理器设计上,芯片厂商在继续减少使用A520小核心,甚至有的厂商完全没有使用A520小核心。

6、DSU120分析

最后我们来看一下用于协调处理器核心和缓存的DSU模块,Arm升级了最新的DSU120模块,可以在一个Cluster内支持最多14个核心,并且支持最多32MB的L3缓存管理。

DSU120提供了一个有价值的功能,随着L3缓存越来越大,静态漏电也成为一个需要考虑的影响因素,会影响手机的待机耗电场景。DSU120提供了一个L3部分关闭的功能,在一些不需要使用那么大缓存的场景,关闭部分L3缓存,可以减少静态漏电。

7、总结

本文主要分析了Arm公司于2023年最新发布的Cortex-X4、A720和A520等处理器架构。今年是Arm公司发布的第四代X系列处理器,通过前面的分析,我们可以看到Arm在不断提升其核心处理器的计算性能,挑战业内最先进的架构设计。同时,Arm也通过优化A720、A520的能效,给用户提供在芯片能效上更有竞争力的产品组合。

2023年,芯片厂商也不满足传统的核心搭配,开始了减少小核心,增加大核心的架构升级。我们今年可以看到更多的多大核心SOC设计,在多核心性能上有了进一步的提升。无疑,2023年的处理器竞争会更加激烈,多大核心的引入也需要警惕功耗和发热增加的风险,作为芯片和智能设备终端的开发者,需要充分了解处理器架构,通过合理的软硬件调度设计,将芯片的能效优化到最佳,给用户提供最佳且可持续的性能表现。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/19871.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GCD+MST】ABC210 E

这道题告诉我们,一道题一定要去手摸样例,多造几个数据,然后找思路 很多时候,题目看错了,码完发现思路错了,调半天调不出来,思路一直在旧框架打转,这些情况都是不去考察实际情况导致…

超速Python编程:利用缓存加速你的应用程序

引言 在软件开发中,缓存是一种常用的技术,用于提高系统性能和响应速度。Python提供了多种缓存技术和库,使我们能够轻松地实现缓存功能。本文将带您从入门到精通,逐步介绍Python中的缓存使用方法,并提供实例演示。 1.…

《MySQL》复合查询和连接

文章目录 查询单行子查询多行子查询合并查询 连接内连接外连接 点睛之笔:无论是多表还是单表,我们都可以认为只有一张表。 只要是表,就可以查询和连接成新表,所以select出来的结果都可以认为成一张表,既然是一张表&…

WAIC2023会后记

听了3天WAIC的会, 大开眼界,算是上了堂大课。 本次参会的目的是听听AI企业信息化的想法、理论和实践。以进一步探索可能的业务场景。三天的会结束后,留下深刻印象的有如下几点。 大模型当道 2023这次大会的主题成了大模型,谈的…

ElasticSearch学习笔记一——下载及安装

最近发现ES是个很重要的内容啊,各种大厂都会使用ES来做一些大范围的搜索之类的功能,所以今天我们也来学习一下。 首先我们要准备Java的环境,推荐版本8、11、14 ES官方的JDK兼容性列表(有些慢,需要耐心等待一下哈) 在我写文章时&…

iview-admin使用小结

首先在使用一个框架之前一定要完整的看一下相关文档,因为框架中会封装常用的功能,也会更加符合大众要求。在ui设计图上,可能实现某个功能设计图中给出的交互并不是很好,而在框架中有更好的组件可以实现,但因为没有看文…

Python中的迭代器

一、介绍 在Python中,迭代器是一种访问集合元素的方式,可以用于遍历数据集中的元素,而不需要事先知道集合的大小。迭代器可以被用于循环语句中,例如for循环,来遍历集合中的每个元素。 Python中的迭代器是一个实现了迭…

Wholebody 3D keypoint估计:从H3WB开始

目录 前言一、H3WB1.下载2.标注格式3.任务分析验证评估 总结 前言 这份工作是首次尝试去检测3D全人体姿态的工作.我们使用的数据集是基于Human3.6M的3D全人体关键点数据集&#xff…

HTML元素中有中文、英文、符号、数字。第一行没排满就自动换行的解决办法:word-break:break-all的使用

word-break: break-all 是一个CSS属性,用于控制文本在容器中的换行方式。它的作用是强制在任意字符之间进行换行,即使这样可能会导致单词被分割。 具体来说,word-break 属性有以下几个取值: normal(默认值&#xff09…

Ubuntu 包管理的 20 个“apt-get”命令

动动发财的小手,点个赞吧! 在引入 apt 命令之前,apt-get 命令是基于 Debian 的 Linux 发行版中使用的主要包管理命令。 使用 apt-get 命令,您可以在系统上安装、删除、升级、搜索和管理软件包。然而,从 Ubuntu 16.04 和…

请求响应-简单参数的接受

请求响应 请求(HttpServletRequest):获取请求数据响应(HttpServletResponse):设置响应数据BS架构:Browser/Server,浏览器/服务器架构。客户端只需要浏览器,应用程序的逻…

前端 - 接口请求抓包 Status Canceled 分析

问题描述 上图是来自于百度的抓包请求分析状态,一般常见的有 status 200,500,404,504,403,302……但这次遇到一个 status canceled(第一次遇见还真一脸懵~) 原因分析 那响应statu…