从鲲鹏920聊聊自研核

如题所述

第1个回答  2022-07-22
华为自研处理器已经有很多年了,但是直到鲲鹏920面世才广为人知。鲲鹏920处理器采用ARM指令集架构,自主研发处理器微架构(类似Apple A15处理器和ARM架构的关系)。

包含自研核的处理器——鲲鹏920,其性能可以对标intel高性能服务器(xeon-8180),虽然单核性能还是略低于skylake,但是得益于更优秀的能效比和更多的核心,服务器整机性能比intel对标产品要好。

鲲鹏920的处理器核 是超标量乱序多发射处理器,其发射带宽、执行单元数量、乱序深度这些硬指标都是业界第一梯队的(不得不提依然落后于Apple,但是远超ARM公版)。

参考:鲲鹏开发重点4--ARM 性能优化
参考:华为鲲鹏920与英特尔至强8180对比

鲲鹏920 SoC框图

这里可以简单讲讲 乱序超标量处理器的核心性能衡量方法:

提升(或者说限制)性能的地方有很多,这里只是略微讲讲。(如 发射带宽可能受制于取指带宽、执行带宽、提交带宽;乱序深度受制于寄存器数量、执行队列深度、Cache的MSHR数量等)

对于以上描述一头雾水但是又感兴趣的朋友,可以找找大话处理器或者超标量处理器设计之类的书籍学习学习。

Apple A14 微架构框图

要提升性能首先要选择目标,就是要提升什么程序的性能。可以像DSP一样就是提升某种数据处理场景的性能,但是CPU的性能提升一般选择有代表性的BenchMark,如 GeekBench 和 SPEC2000 这样的测试基准程序。

然后,就是分析这些程序的指令模式,找出处理器的短板,并进行改良。例如,处理器在运行SPEC程序时,发现大部分时间都没法做到每cycle执行6条指令,原因是SPEC程序cache命中率低,处理器等待数据从RAM送过来,所以我们可以加大Cache容量来保存更多的数据以提升性能,或者提高cache利用率(将更有用的数据保存在cache),或者想办法提前把要用的数据搬运到cache中去,等等。

提升性能就是反复的分析现状、找到问题、给出改善方法,如此一步步、一点点提升处理器的性能。这里讲的都很简单笼统,真实情况往往要复杂的多。(此外,提升性能的一个重要方法就是提升频率,这又是另一个故事了)

如上所示的过程中,提升性能需要用到很多工具,其中一个重要工具就是处理器的模型。

因为现实中不可能做到等CPU都生产出来了,再去分析程序行为找出短板,然后再生产一个处理器,然后分析短板。这种代价没有哪个公司能够承受得了。(设计生产一个处理器需要至少一年的时间和至少几亿元的金钱,当然量产之后会摊平这个成本)

于是能够在处理器设计生产之前就进行性能分析改善非常有必要,但是这时候没有产品怎么进行分析呢?于是就做一个处理器的模型,这个模型要能够足够精确的反映最终产品的性能,然后分析程序行为、处理器短板的过程就在这个模型上进行。等到这个模型所反映的性能达到目标了,就按照这个模型来设计处理器,并最终生产出性能达标的产品。

学术界常用的处理器性能模型有Gem5,是开源的,感兴趣的朋友可以找来玩一玩,探索探索现代处理器的性能。
这种模型不光有反映性能的模型,也有反映功耗的,反映成本的,等等。

不过也别忘了:“All models are wrong, but some are useful.”

这里从鲲鹏920开始,聊到自研处理器,聊到处理器性能,又聊了聊怎么提升处理器的性能,以及提升性能用到的重要工具。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网