华为(海思)麒麟9020架构+性能解析
2023年8月29日,华为突然发售mate60系列旗舰手机,打得一众西方国家措手不及,更是在其后续的网速测试中被网友们与“轰6改,歼10改,95改”并称为“4G改”,其中时隔1041天再一次归来的麒麟9000S更是巅峰之作,芯片丝印上清楚地刻着“CN”的字样,而非“TW”,足以证明其是一枚纯血国产芯片。 
 
再一次经过了几百天,2024年11月26日,华为海思新一代处理器,搭载国产工艺麒麟9020的华为mate70系列登场,在4号上午紧急去线下店提了两台mate70pro+,才得以进行测试工作。 
 
我们先从芯片架构方面,一窥麒麟的“真容”,CPU方面依旧是1+3+4的核心规模,一颗2.5Ghz泰山超大核,三颗2.15Ghz泰山大核,四颗1.6Ghz泰山小核。GPU方面是最新的马良920,1024组ALUs,4CU设计,840Mhz。 
 
一眼就看得出来,麒麟9020的小核部分从公版Arm的A510变成了自研的泰山小核,虽然在CPU规模上看起来改动不大,但是这颗自研的小核会给我们带来惊喜,这点我们在小核分析上再说。 
 
我们先从超大核入手,通过软件来对微架构进行深入了解,四颗超大核与上代麒麟9010差不多,在延续基本设计的同时对细节部分进行了优化。 
 
麒麟9020的超大核继承了上代麒麟9010的8-wide(宽)解码以及6组整数,4组浮点执行单元。相比麒麟9010,增加了访存调度器①的深度,由上代麒麟9010的28entry(进入)增加到了68entry,理论上讲可以提升访存性能,这颗超大核接近以前的Cortex-X系列,而且麒麟9020这颗超大核将频率提升到了2.5Ghz,应该是制程工艺有所进步,这可以给单核性能带来很直观的性能提升。 
 
再来看看大核,麒麟9020的大核也延续了前代麒麟9010的设计,6-wide解码器,6组整数以及2组浮点单元,但是相比麒麟9010,麒麟9020加大了浮点调度器的深度,从上代48entry增加到了64entry,并且大幅增加了ROB(Reorder Buffer)‌②队列深度,从上代312enter增加到了506enter,大核的改进明显比超大核来的多。 
 
最后就是提升最明显的,微架构改进最大的,泰山小核。先从一个概念入手吧,Arm公版架构的小核,也就是A5xx系列的核心,有一个被诟病多年的设计,叫做“顺序执行”③。 
 
而这次的麒麟9020自研的泰山小核,使用了“乱序执行”④,不同于高通和联发科,华为走了另一条路,高通和联发科为了性能,砍掉了小核,改用全大核,而华为则是自研了新的小核,Arm的小核烂,那自己做个更好的不就解决了吗? 
 
麒麟9020就是这个思路的产物,这颗全新的自研小核,与A510最根本的不同在于它是一颗乱序执行的小核,从架构上,就比A510这种顺序执行的处理器上限更高,具体到微架构上,这颗泰山小核拥有2-wide的解码单元,后端的执行单元则是使用了2组整数单元,1组浮点单元的设计,这是一颗规模非常精简的乱序执行小核,可是哪怕规模这么小的核心,我们也居然测出来241的ROB深度!作为对比AMD的Zen3架构的ROB深度才256深,足以见得华为的芯片设计能力有多强。 
 
再来看看GPU,这次马良920的GPU几乎与上代相同,仅仅只是超频而已,不过有意思的是,它目前似乎在Vulkan的支持上相较上代有所进步,至少可以跑最新的Steel Nomad Light测试了。 
 
除了CPU和GPU以外,麒麟9020还配备了达芬奇5.0的NPU,还有麒麟ISP8.0以及新的Modem,以及L3缓存从上代的8MB提升到了10MB,SLC也从4MB翻倍到了8MB,另外,CPU核心与缓存间的互联架构也做了重新设计,基本上把整颗芯片里最重要的部分都做了一遍升级。 
 
以上这些就是对麒麟9020架构的解析,可以说麒麟9020才是9000S的完整续作,是华为真正的下一代平台。 
 
接下来就是大家最喜欢的,赛博斗蛐蛐环节,跑分啦,由于华为手机无法进行root,所以只能使用性能模式已经省电模式进行测试。 
先使用SPEC2017对麒麟9020的泰山超大核进行对比: 
麒麟9020泰山超大核 
性能模式整数5.08分,功耗4.42w 
性能模式浮点7.97分,功耗6.16w 
省电模式整数3.42分,功耗1.49w 
省电模式浮点5.42分,功耗2.18w 
麒麟9010泰山超大核 
性能模式整数4.34分,功耗3.65w 
性能模式浮点6.69分,功耗4.42w 
省电模式整数3.21分,功耗1.52w 
省电模式浮点5.01分,功耗2.29w 
麒麟9000S泰山超大核 
性能模式整数3.94分,功耗3.95w 
性能模式浮点6.07分,功耗4.21w 
省电模式整数2.72分,功耗1.38w 
省电模式浮点4.89分,功耗2.18w 
骁龙8+Gen1 X2超大核 
整数5.52分,功耗3.35w 
浮点9.33分,功耗4.44w 
整数定值功耗1.5w,3.76分 
浮点定值功耗2.2w,6.18分 
 
从测试来看,麒麟9020的整数性能比麒麟9010提升17%,浮点性能提升19%,相比9000S,更是有着30%的提升,性能提升还是很显著的,虽然更高的频率会带来更高的功耗,但是从能效来看,尤其是低频,麒麟9020的超大核确实有所进步,并不只是超频,也算是有制程工艺上的改善。 
 
再来看看大核的SPEC2017性能: 
麒麟9020泰山大核 
性能模式整数3.45分,功耗1.46w 
性能模式浮点4.86分,功耗1.89w 
省电模式整数2.71分,功耗0.92w 
省电模式浮点3.97分 功耗1.21w 
麒麟9010泰山大核 
性能模式整数3.25分,功耗1.74w 
性能模式浮点4.87分,功耗2.38w 
省电模式整数1.97分,功耗0.94w 
省电模式浮点3.89分,功耗1.23w 
骁龙8+Gen1 A710大核(无法通过root测出高低频功耗) 
整数3.96分,功耗1.54w 
浮点6.23分,功耗2.21w 
 
看得出来,这个泰山大核的能效提升还是挺明显的,并且峰值功耗还低了不少。 
 
最后是小核部分,拿出SPEC2017来看看: 
(由于小核功耗极低,难以排除主板功耗带来的影响,所以功耗仅供参考) 
麒麟9020泰山小核 
整数1.13分,0.4w 
浮点1.37分,0.44w 
麒麟9010 A510小核 
整数0.82分,0.34w 
浮点0.93分,0.39w 
 
整数部分比上代麒麟9010提升38%,而浮点部分则是提升47%,这大概是用114%的功耗跑出了143%的性能,总的来看,麒麟9020上的小核还是真小核,哪怕性能比A510更强,他依然还是A510的替代品而已,并不是苹果,高通和联发科那种大核替代小核的方案。 
 
斗胆猜测一下,华为不直接替换大核的原因在于,华为不止是做手机芯片。路由器,耳机,音响一类的设备也需要小核心芯片,单独设计一款小核,还能给其他设备用,在商业逻辑上更合理。 
 
接下来就是大家比较熟悉的Geekbench6,来供大家直接参考,先来进行单核测试: 
麒麟9020 
1616分 
麒麟9010 
1458分 
麒麟9000S 
1299分 
骁龙8+Gen1 
1852分 
骁龙8Gen1 
1706分 
骁龙888 
1514分 
 
麒麟9020相比麒麟9010,单核性能提升11%,单核峰值性能介于骁龙888至8Gen1之间。 
 
再来看看Geekbench6多核性能: 
麒麟9020 
性能模式5314分,功耗11.2w 
省电模式3701分,功耗4.3w 
麒麟9010 
性能模式4699分,功耗10.5w 
省电模式3468分,功耗4.2w 
麒麟9000S 
性能模式4121分,功耗9.9w 
省电模式3012分,功耗4w 
骁龙8+Gen1 
峰值性能4710分,功耗6.8w 
定值功耗4w,3786分 
骁龙888,峰值性能4010分,功耗8.4w 
定值功耗4w,3204分 
 
从一年的迭代周期来看,进步幅度还是不小的,麒麟9000S的CPU能效和骁龙888差不多,而麒麟9020的能效却已经达到麒麟9000了,高频方面甚至接近骁龙8+Gen1的能效了,以至于,峰值性能已经超越了骁龙8+Gen1,总体来看,CPU在过去一年的提升还是蛮大的。 
 
看完CPU,我们再来跑一下GPU,拿出GFXBenchu5.0: 
麒麟9020 
性能模式37帧,功耗8.8w 
省电模式13帧,功耗1.6w 
麒麟9010 
性能模式30帧,功耗6.7w 
省电模式12帧,功耗1.7w 
麒麟9000S,性能模式31帧,功耗7.8w 
省电模式12帧,功耗2w 
骁龙8+Gen1 
峰值性能52帧,功耗8.4w 
定值功耗2w,19帧 
骁龙888 
峰值性能30帧,功耗7.9w 
定值功耗2w,14帧 
 
马良920的性能提升还是很明显的,在这个测试,中性能提升超过25%,能效上总算打过麒麟9000了,我们认为,它应该是跟今年的Arm一,样,在GPU的驱动方面做了某些优化,不过GPU作为高通的优势项目,麒麟9020和骁龙8+Gen1的差距就比较大了。 
 
再来看看最新支持的3D Mark SNL吧: 
麒麟9020 
性能模式551分,功耗5.4w 
省电模式189分,功耗1w 
骁龙8Gen1 
峰值性能814分,功耗7.1w 
定值功耗1.5w,254分 
晓龙888 
峰值性能523分,功耗5.6W 
定值功耗1.5w,263分 
 
看得出来,能效略微强于骁龙888,不过至少是支持这个最新的PC级测试了。麒麟9020这一代是华为首次做到芯片主要部分的全自研,属于是非常有里程碑意义的芯片了,哪怕白后架构以及制程双制裁,我们也能依靠麒麟芯片里那全自研的架构打个翻身仗。 
 
我们依然坚信且推进全球化,但是以我们自前的实力来说,这是远远不够的,只有核心技术在自己手上,才能真正的打出一片天,不用看他人脸色的活看,这也是我们科技独立的意义,30年前“银河号”的悲剧如今不再上演,我们终究会胜利,就像我们如今强盛的国家一样,不再畏惧任何挑战。 
 
①访存调度:访存调度是指在计算机系统中,对内存访问请求进行管理和调度的过程。其主要目的是优化内存访问的效率和减少内存访问的冲突,从而提高系统的整体性能。 
 
②在计算机体系结构中,特别是在乱序执行处理器中,是一个重要的概念。ROB是一种重排序缓冲区,用于存储推测值。在乱序执行中,指令的执行顺序与程序的原始顺序可能不同,ROB用于存储这些被重新排序的指令结果,直到它们被验证为正确后才能被使用。  
 
③此概念较为抽象,我们用比喻来还原一下:假设CPU现在要执行多个操作,操作①需要进入整数单元,操作②需要进入浮点单元,对于顺序执行的CPU来说,这些操作的执行顺序就是固定的,必须先将①送入整数单元才能将②送入浮点单元。那么问题来了,目前CPU需要,处理一个大任务,①②③均需要进入整数单元,④以后需要进人浮点单元,可是CPU处理,整数①需要一段时间,此时②③整数指令堆积在前端,阻碍着④以后的操作进入浮点单元,可是后端的整数单元无法空出来,就只能堵着整个前端队列。这个效率就对我们目前的CPU来说就太低了,现代CPU具有超标量特性,高并行度设计,有许多执行单元,如果死板地按顺序执行,很多单元就会被闲置。 
 
④在90年代,为了提高效率,人类设计出了“乱序执行”处理器,在前端与后端之间多了一步重排序,按上个词条的假设来看,既然①②③是整数单元,而④以后是浮点,与其等着整数处理完,还不如提前进入浮点单元,④可以直接插队到①后面,不需要等看①②③处理完,这样,后端的各个执行单元就可以更高效的利用起来,避免处理器摸鱼。 
 
补充:由于乱序执行处理器需要增加不少排序单元同时工作,所以性能更强的同时,代价就是更复杂,更高成本,更高功耗。这也就是为什么A5xx系列核心会选择顺序执行,毕竞从手机和PC的使用场景来看,都算是高性能的,但是很多日常生活用到的电子产品以及工业用的机器人,它们根本不需要多少CPU性能,顺序执行CPU绝对的低功耗以及低成本才是他们对芯片,的诉求,Arm公司还是没法放弃这部分市场,所以A5x系列的核心才很难有性能提升。但是哪怕优点那么多,对于手机处理器来说,它还是太弱了,所以高通和联发科自然是用不下去的,双双放弃Arm小核,他们的方案就是直接砍掉小核,使用大核替代小核,全大核的能效是更好的。 
 
说在最后:由于mate70pro+的芯片涉及敏感供应商信息,所以这次就不放出芯片简图。
 
2024-12-06
浏览2180
登录后评论
3
1