首页资讯科技 未来可期中科院计算所“香山”高性能处理器架构浅析

未来可期中科院计算所“香山”高性能处理器架构浅析

张平国内的处理器开发一直是一个值得讨论的话题。近年来,随着外部环境变化和自身产业发展需求,国内处理器自主研发、自主可控的呼声越来越高。中科院作为国内水平最高、产业最为齐全的研发机构,在自主处理器尤其是处理器架构方面做出了很多贡献。2021年…

未来可期中科院计算所“香山”高性能处理器架构浅析

张平

国产处理器的发展一直是一个值得探讨的话题。近年来,随着外部环境的变化和自身行业发展的需求,国产处理器自主研发、自主可控的呼声越来越高。中科院作为国内最高级别、最完整的RD机构,在自主处理器尤其是处理器架构方面做出了很多贡献。2021年,中科院计算所鲍云刚研究员发布了全新的“香山”高性能处理器架构,采用RISC-V指令集。那么,“香山”高性能处理器的架构是怎样的呢?它的性能和设计大概相当于国际上什么水平的产品?

2021年6月22日,中国科学院计算技术研究所鲍云刚、唐丹、徐一楠三位研究员公布了象山(以下简称象山)高性能架构的相关内容。《香山》出版后,引起业内高度关注。从行业角度来看,“香山”是目前国内少有的基于RISC-V的高性能架构,仅用了一年时间就完成了整体架构设计。

“香山”高性能处理器体系结构的一些背景信息

香山的开发始于2020年6月11日。其实在相关工作开始之前,研究人员就在讨论为什么CPU行业没有像Linux这样开放共享的开源线程。经过多次讨论和深入思考,中国科学院计算技术研究所的研究人员选择RISC-V作为基本指令集,并在此基础上开发了全新的开源CPU架构。

对于RISC-V的相关内容,本刊2018年6月发表《处理器领域的Linux》?走进开源免费架构RISC-V”——本文已有详细解读。虽然这篇文章是三年前的,但是对RISC-V的一些基本概念和知识的解读在1号依然成立。简单来说,RISC-V是一个标准、免费、开放的指令级架构,由RISC-V基金会和SiFive共同维护。RISC-V研讨会用于展示和交流RISC-V的发展和创造力,在技术方面,RISC-V定义了一个基本的整数ISA和一系列标准扩展,还标准化和定义了大量的处理器设计。任何用户都可以利用RISC-V的相关架构内容对其进行二次开发或扩展,从而设计出符合自己需求的CPU架构。在不购买私有IP的前提下,不需要向RISC-V的相关机构付费,由于RISC-V的开放、免费特性,吸引了业界大量厂商的加入,包括Intel、AMD、Nvidia等大家熟悉的企业。自然也吸引了中科院计算所基于RISC-V的特点开发全新的CPU架构产品。

选择RISC-V后,香山的RD团队希望其架构能够得到业界的广泛支持,同时能够支持学术实验的创新思路。所以整个香山架构都是开源的,大家都可以用。象山的RD团队希望这种架构能像Linux一样,通过不断的使用、扩展、重用、再扩展,存活30年以上。

现在象山的整个核心代码库都以开源的方式存储在GitHub上。您可以通过以下网址访问和查看相关资料:https://github.com/openxiangshan.此外,鲍云刚研究员详细讲解了香山建筑的发展过程。除了采用RISC-V和开源的香山架构,他描述了参与香山架构研发的具体人数和研发的工作量。比如香山架构的研发,一年之内吸引了中科院计算所25名师生,主分支代码合并821次,代码提交3296次,代码5万多行,文档400多份。所有这些代码、文档和流程都发布在上面的GitHub链接中。开源方面,香山建筑采用的是“木兰松许可”(MulanPSLv2),这是国内的开源许可。整体的许可内容和法律内容非常适合香山建筑未来的发展。现在,一切准备就绪。香山建筑有哪些秘密?

“香山”高性能处理器体系结构的演变与细节

中科院计算所希望香山建筑能发展30年,所以这30年需要一些规划。香山建筑作为高性能建筑产品,需要为今天高性能建筑的未来发展打好基础。

香山建筑的演变

建筑香山目前开发的核心建筑叫“雁栖湖”。这个建筑于2020年6月建立,由RTL于2021年4月完成。目前SPEC CPU 2006的预估性能为每GHz 7分钟,目前版本暂采用TSMC 28nm工艺制造,1.3GHz频率。

继“雁栖湖”之后,2021年3月,香山建筑启动新一代“南湖”核心建筑研发,计划于2021年底完工。其SPEC CPU 2006可以达到10分钟每GHz,比雁栖湖核心架构提升了43%左右。技术改为SMIC的14nm,目标频率2GHz。

接下来,香山架构将被编码为“X湖”,实现不断迭代优化,最终达到ARM Cortex-A76的水平。

解读岐狐湖的微建筑

在这一部分,本文将简单解读象山高性能处理器架构的首款微架构——雁栖湖微架构,并与ARM Cortex-A76进行对比,看看两者的区别。

从宏观上看,雁栖湖微架构是一个11级流水线6发射微架构。值得注意的是,雁栖湖微建筑前端发射部分的宽度很宽。相比之下,Cortex-A76的前端传输宽度为4,采用13级流水线设计。雁栖湖的架构与Cortex-A76相比,在整体设计上有显著差异。

继续看前端设计,雁栖湖建筑前端部分侧重于分支预测设计。其分支预测部分主要用于与取指单元紧密耦合并与流水线同步。在设计上,雁栖建筑的分支预测采用三级覆盖预测和分支历史管理的方法。第一级采用uBTB方案,第二级采用BTB+BIM方案,第三级采用TAGE-SC-L结合RAS和预解码的方案。值得一提的是第三级采用的TAGE-SC-L分支预测方案,其中TAGE的全称是Tagged Geometric History Length Branch Predictor,即标记几何历史长度的分支预测周期。这个分支预测器在2006年的分支预测大赛中获得了冠军,并且表现出了出色的面积性能比,因此可以称得上是目前最强的分支预测器之一。AMD Zen 2架构引入了TAGE分支预测器,英特尔可能更早就选择了TAGE作为其分支预测器的一部分。从公布的资料来看,雁栖湖建筑非常重视分支预测器的设计。三级架构和最先进的TAGE分支预测器的配合,基本可以解决取指令的空气泡问题,有效提高整个CPU架构的效率。据中科院计算所内部评测,基于雁栖湖架构的分支预测器平均MPKI,即每个指令集的误预测率比其他设计降低了3%左右。

在指令缓存的设计上,雁栖湖架构的L1指令缓存采用128KB通道设计,ITLB采用32通道。此外,还有一个专用的指令缓存,规格为16KB,4通道。另外,取指目标队列是48队列深度,指令缓存也是48队列深度,前端解码器采用6宽度设计。相比之下,Cortex-A76的L1指令缓存容量为64KB,其他类似设计并未公布详细参数。

在重命名和指令调度阶段,雁栖湖架构设计了浮点重命名模块、整数重命名模块和192队列深度的重排序缓存。浮点物理寄存器文件的队列深度是160,整数物理寄存器文件的队列深度也是160。物理寄存器的这一部分对应于执行阶段单元。

在实施阶段,雁栖湖结构规模较大。整数部分包括四个alu、两个DMU和一个FMISC,而浮点部分包括四个FMAC和两个F misc。两个AGULD和两个Agusts设置用于地址解码和数据回写。炎虎架构特别优化了浮点除法和平方根。与Cortex-A76相比,Cortex-A76在整数部分只有两个ALU,一个ALU/MAC/DIV单元和一个独立的分支单元,在浮点部分只有一个可以执行FMUL/FADD/FDIV/IMAC的复杂浮点单元和一个执行FMUL/FADD/ALU的单元。

这样看来,雁栖湖架构在后端执行上比Cortex-A76更大,使用了大量简单的功能单元,而Cortex-A76规模相对较小,却使用了大量复杂的功能单元。由此可见两者不同的设计取向。相应的,雁栖湖架构的前端也是为这个大规模执行单元设计的,比如发射宽度是6,而Cortex-A76的发射宽度是4。当然这部分设计不能说明孰优孰劣。目前雁栖湖架构只是初期版本,在设计体验和性能上还有很大的提升空。相比ARM这种设计CPU微架构的“千年老妖”,雁栖湖架构现阶段最重要的任务是完成架构设计,通过架构迭代提升性能。

最后看下雁栖湖建筑的记忆部分。这部分包括一个64队列深度读取队列单元、一个64队列深度存储队列单元和一个16x 64位存储缓存。在岐狐架构中设计了32KB、8通道数据高速缓存来缓冲所有存储器数据。此缓存到DTLB的速度是每个周期2x8Bit,到读取队列单元的速度是每个周期64Bit,到存储缓存的速度是每个周期64Bit。相比之下,Cortex-A76的数据缓存容量为64KB,并非设计为存储缓存。炎虎架构的L2缓存为1MB,8通道。这个缓存容量在高性能设计的架构中并不大,可能与整体架构的设计目标有关。

总的来说,整个雁栖湖微架构的设计都有独特的思路和想法,尤其是前端的6-launch,改进的分支预测器,后端执行单元的方案选择等。,这些都让人看到了国内微架构RD团队的实力,值得期待。

基于香山架构的雁栖湖微架构性能与比较

如前所述,雁栖湖架构在SPEC CPU 2006中的性能是每GHz 7分左右,未来南湖架构可以达到10分。相比目前主流的ARM处理器架构,这个成绩是什么水平?

雁栖湖微架构RD团队在文章中并未说明测试的数据是SPEC CPU 2006的整数部分还是浮点部分,但业界通常将其与整数部分进行比较。这里本文默认雁栖湖微架构也是SPECint 2006运行的测试。需要注意的是,此处不考虑雁栖湖微架构具有这样性能的每瓦性能、每晶体管性能和最终每平方毫米性能,这些具体参数会影响整个架构的商业化和实际可及性性能。本文只关注这里的性能,不考虑任何其他变量。

用于对比的数据来自海外测试团队GoldenReviewer,该团队测试了SPECint2006在不同架构和不同处理器下的性能,如Cortex-A76、Cortex-A77、Cortex-A78和Cortex-X1。根据他们的测试数据,SPECint 2006中Cortex-A76架构的每GHz性能在10分左右,一般在10.02-10.2之间,最低积8.6分,但属于中等核,可能会有缓存降低。Cortex-A77的分数大概是12.2-11.2,Cortex-A78是1.275-13.15,Cortex-X1可以达到13.65-15.13。

目前雁栖湖微架构在同等条件下得分7分,比Cortex-A76低43%左右。下一代南湖微架构基本能赶上Cortex-A76,都在10分左右。不过目前ARM Cortex-X1最高能达到15分,最新的Cortex-X2应该能提升到17-19分左右。和他们相比,在南湖10分的水平上,差距还是蛮大的。且不说苹果Firestrom微架构的整体水平明显超越Cortex-X2,香山架构还需要加大力度追赶国际先进水平。香山架构团队自己也认为现在的架构性能还是不如多年前的Cortex-A73。要知道Cortex-A73只是一个2发射微架构。所以在整体核心建筑设计上,香山建筑现有的雁栖湖微建筑只是一个开始。

除了性能,雁栖湖的微观架构在技术上也有制约。目前雁栖湖微架构和后来的南湖微架构获得的最先进技术只有SIMC的14nm,与目前国际主流的5nm甚至3nm相差甚远。但RD团队解释说,在28nm工艺下只能运行在1.3GHz,并不是因为TSMC的工艺问题,而是架构设计的问题,可能与香山架构的流水线数量少,工艺实现时没有相应的高频设置有关。

未来香山建筑

至此,本文对香山微建筑的肤浅解读告一段落。实际上,鲍云刚研究员的文章中也介绍了很多关于快速开发和测试的内容。由于与本文关注的架构和性能无关,暂且省略,有兴趣的读者可以阅读原文。从本文的介绍以及香山建筑和RD团队的现有表现来看,香山建筑的整体设计还是比较独特的。它的首次亮相反映了一个自主开发的高性能微处理器架构的各个方面,它具有强劲的增长。可以肯定的是,在未来,随着香山架构内部设计的不断进化,其性能会不断增长,也有可能有一天突然来到我们身边,成为RISC-V世界的主流高性能架构,应用在我们的手机、平板、智能电视上。想想还是挺刺激的。

本文来自网络,不代表管理窝立场。转载请注明出处: https://www.guanliwo.com/a/zx/61446.html
上一篇更新显卡会提高游戏帧数吗
下一篇 赛睿鼠标加速度设置
管理窝

作者: 管理窝

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部