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

news2024/9/27 23:34:48

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.coloradmin.cn/o/731025.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ModaHub魔搭社区:ChatGLM-RLHF:无需微调 教程

目录 使用方法 效果展示 对ChatGLM直接使用RLHF进行调整参数,无需传统的finetune|Modify ChatGLM params with only RLHF。 大部分的RLHF代码都是在分布式框架,不适合学习和使用,本代码的RLHF代码不需要Megatron或者deepspeed框架&#xff…

Maven高级(三)--聚合

1.解决的问题: 此时tlias-web-management模块的父工程是tlias-parent,该模块又依赖了tlias-pojo,tlias-utils模块。那么此时,我们要将tlias-web-management模块打包,是比较繁琐的。因为进行项目打包,maven会从本地仓库来查找tlias…

Jupyter notebook 安装代码提示和补全

打开Anaconda Prompt 终端 依次输入 pip install jupyter_contrib_nbextensions jupyter contrib nbextension install --user pip install jupyter_nbextensions_configurator jupyter nbextensions_configurator enable --user 打开Jupyter notebook

Linux的用户管理精简全总结

(该图由AI绘制 关注我 学习AI画图) 目录 Linux操作系统用户和组的概念 1、为什么需要了解用户和组 2、用户和组的关系 3、用户组操作 ☆☆☆☆☆☆☆☆☆☆☆ /etc/group文件解析 ☆ 用户组的修改 ☆ 用户组的删除 4、用户操作 ☆ 用户信息查…

VSCode 提示 1.16.15 版本的Go,不支持 gopls v.0.13.0

Go1.16.15无法使用 goplsv.0.13.0 问题详情解决办法 问题详情 Gopls was built with Go version 1.16, which will be unsupported by gopls v0.13.0. Please upgrade to Go 1.18 or later and reinstall gopls. If you cant upgrade and want this message to go away, pleas…

FPGA实现二进制转BCD码

1、简介 bcd码:以4bit二进制码表示一个十进制码 例如,432(d) 0100-0011-0010(bcd) 这里具体的判断方法为:(满5)加3法 二进制位宽为W,则BCD位宽只需要&…

JS 实现CSV文件转换SQL文件小工具

一. 需求 最近在项目中遇到一个问题,客户提供的数据是CSV格式的, 需要将CSV文件中的数据转换为SQL语句文件。 😅由于本人不会Excel的vba编程,因此决定使用JS来实现。 二. 实现思路 提供一个文件上传框,支持多文件上…

微信小程序全局配置详解

通过全局配置实现的效果 开发者 微信公众平台 登录网址 https://mp.weixin.qq.com/ 注册网址 https://mp.weixin.qq.com/cgi-bin/wx?token&langzh_CN 微信小程序开发者工具 下载地址 https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 小…

WPF grid控件定义行和列

在此已经学习了wpf Grid控件&#xff0c; WPF布局控件Grid的基本使用 - 使用kaxaml_bcbobo21cn的博客-CSDN博客 下面继续学习&#xff1b; 定义3行3列的基本代码如下&#xff1b;为了看清效果&#xff0c;设置 ShowGridLines"True"&#xff1b; <Grid ShowGrid…

Tkinter_鼠标选中样式

前言 使用tkinter库创建窗口应用程序示例&#xff0c;包含不同鼠标样式标签。 一、方法 import tkinter as tkclass Mouse_Style:def __init__(self):self.root tk.Tk()self.root.title(样式)self.root.geometry("200x5201100150")self.interface()def interface(…

【G431】多路ADC+DMA采集

文章目录 前言1.CubeMx的配置步骤3.测试代码4.演示效果 总结 前言 之前蓝桥杯程序中使用的是查询方式的ADC&#xff0c;缺点是当采集通道多的时候会导致CPU速率变低从而导致查询ADC代码之后的程序会被阻塞。而DMA就不会&#xff0c;DMA会绕开CPU直接传输。 1.CubeMx的配置步骤…

GDB 查看、修改变量

1、info args : 查看函数的入参内容 2、set print null-stop :遇到无效的字符就不显示出来了 3、set print pretty :让结构体以定义的形式展示出来&#xff0c;一个字段一行 4、 set print arry on :让数组中的元素每个占一行显示 5、 p sizeof(xxx) : 查看xxx的大小&#xff…

STM32 DSP库CUBEMX配置+FFT频率计算

文章目录 前言一、DSP库添加1.1 加一个define1.2 添加文件路径1.3 主函数 二、FFT运算求频率2.1 初始版本版本2 总结 前言 使用DSP中的函数加快计算。 本文首先讲述如何通过添加dsp库。 再讲述使用DSP库进行实数FFT运算。&#xff08;FFT运算用到了前面讲述的STM32CubeMX-ADC …

mysql 安装

常用存储引擎功能对比&#xff1a; mysql 安装流程&#xff1a; 如果直接本地安装&#xff0c;就只需要安装好然后配置环境变量就行了&#xff0c;my.ini文件会自动帮你写好&#xff0c;如果是zip压缩包安装就需要自己写my.ini文件&#xff0c;下面详细介绍zip压缩包安装 下载…

提示工程的前世今生

原文链接&#xff1a;芝士AI吃鱼 通过提示进行情境学习 在生物学中&#xff0c;涌现是一种令人难以置信的特性&#xff0c;由于相互作用的结果&#xff0c;各个部分聚集在一起&#xff0c;表现出新的行为&#xff08;称为涌现&#xff09;&#xff0c;这是你在较小的尺度上看不…

分别基于红黑树、timefd、多级时间轮实现定时器

文章目录 一、定时器的应用二、定时器的触发方式2.1 网络事件和定时事件在一个线程中处理2.2 二、定时器的设计2.1 接口设计2.2 数据结构设计2.2.1 红黑树2.2.3 最小堆2.2.4 时间轮 三、利用红黑树实现定时器3.1 数据结构3.2 接口实现3.2.1 初始化定时器3.2.2 添加定时器3.2.3 …

【CPU】关于x86、x86_64/x64、amd64和arm64/aarch64

为什么叫x86和x86_64和AMD64? 为什么大家叫x86为32位系统&#xff1f; 为什么软件版本会注明 for amd64版本&#xff0c;不是intel64呢&#xff1f; x86是指intel的开发的一种32位指令集&#xff0c;从386开始时代开始的&#xff0c;一直沿用至今&#xff0c;是一种cisc指令…

Github 标星68.5K,不愧是阿里P8架构师整理的 Java 面试复盘笔记

Java 面试 2021 已经过半&#xff0c;不知道大家在今年的金三银四是否拿到了自己理想的 Offer&#xff1f;大家的技术面一共面了多少轮&#xff1f;作为一名程序员&#xff0c;技术面试是不可避免的一个环节&#xff0c;一般技术面试官都会通过自己的方式去考察程序员的技术功…

Java性能诊断利器:arthas详细教程

目录 1.概述 2.使用 2.1.安装使用 2.2.启动 2.3.全局监控 2.4.方法级别的监控 2.4.1.插件 2.4.2.watch 2.3.3.trace 2.3.4.stack 2.4.线上问题定位 2.4.1.反编译 2.4.2.CPU占用率 2.4.3.死锁 1.概述 arthas是Alibaba推出的一款JVM性能诊断调优工具&#xff0c;主…

C++之代理模式

目录 模式思想 简介 组成 优点 代码实现 情景 如果不使用代理的话&#xff1a; 加代理的话&#xff1a; 结果 模式思想 简介 代理模式&#xff1a; 通过代理类&#xff0c;来控制实际对象的访问权限。 在某些情况下&#xff0c;一个对象不适合或者不能直接引用另…