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

来源 :微型计算机 | 被引量 : 0次 | 上传用户:qiaotongqiao
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  国内的处理器开发一直是一个值得讨论的话题。近年来,随着外部环境变化和自身产业发展需求,国内处理器自主研发、自主可控的呼声越来越高。中科院作为国内水平最高、产业最为齐全的研发机构,在自主处理器尤其是处理器架构方面做出了很多贡献。2021年,中科院计算所包云岗研究员又发布了全新的、采用RISC-V指令集的“香山”高性能处理器架构。那么,“香山”高性能处理器架构究竟怎么样?它的性能和设计大概相当于国际什么水平的产品呢?
  2021年6月22日,中科院计算所包云岗、唐丹和徐易难三位研究人员公布了有关“香山”高性能架构(下简称“香山”)的相关内容。在“香山”公布之后,引发了业内高度关注。从行业角度来看,“香山”是目前国内少有的以RISC-V为主的高性能架构,并且它仅用了1年时间,就完成了整体架构设计。
  “香山”高性能处理器架构的一些背景资料
  香山的开发从2020年6月11日开始。实际上,在相关工作开始之前,研究人员就在探讨为什么CPU产业界没有出现一个像Linux那样开放和共享的开源主线,在经过多番讨论和深入的思考后,中科院计算所的研究人员选择了RISC-V作为基础指令集,并基于它开发全新的开源CPU架构。
  有关RISC-V的相关内容,本刊在2018年6月的《处理器领域的“Linux”?一起走进开源免费架构RISC-V》 -文中有过比较详细的解读,虽然这篇文章已经是3年之前的了,但是对RISC-V的一些基本概念和知识的解读到现在也依1日有效。简单来说,RISC-V是一个标准、免费、开放的指令级架构,RISC-V基金会和企业SiFive对其进行维护,RISC-V研讨会用于展示和沟通有关RISC-V的发展和创意。在技术方面,RISC-V定义了一个基本的整数ISA和一系列標准扩展,还对处理器设计的大量内容进行了规范和定义。任何用户都可以使用RISC-V的相关架构内容,对其进行二次开发或者扩展,从而设计出符合自己需要的CPU架构。在没有购买私有IP的前提下,也不需要付费给RISC-V的相关组织。由于RISC-V的开放和免费特性,吸引了业内一大批厂商加入,包括英特尔、AMD、英伟达等我们耳熟能详的企业,自然也吸引了中科院计算所,基于RISC-V的特性开发一款全新的CPU架构产品。
  在选择了RISC-V之后,香山的研发团队希望自己的架构能够被工业界广泛支持,同时也能够支持学术界实验创新想法,因此才将整个香山架构开源出来供大家使用。香山研发团队希望这个架构不断通过使用、扩展、再使用、再扩展,就像Linux那样,存活30年以上。
  现在,香山整个核心代码库均以开源的方式存放在GitHub上,大家可以通过以下网址进行访问并查看相关资料:https://github.com/OpenXiangShan。另外,包云岗研究员针对香山架构的开发过程进行了详细解读。除了采用RISC-V和开源香山架构的内容外,他描述了有关香山架构研发的具体人数和研发的工作量。比如在一年时间内,香山架构的研发吸引了25位中科院计算所的同学和老师加入,发生了821次主分支代码合并,3296次代码提交( commit),5万余行代码,400多个文档,所有这些代码和文档、流程都公布在前文的GitHub链接中。在开源方面,香山架构采用了“木兰宽松许可”( MulanPSLv2),这是一个国内的开源许可证,整体许可内容和法律内容非常适合香山架构未来发展所需。现在,万事俱备,香山架构究竟有哪些秘密呢?
  “香山”高性能处理器架构的演进和细节
  中科院计算所希望香山架构能发展30年,那么就需要对这30年进行一些规划,并且作为高性能架构产品,香山架构还需要针对高性能架构未来的发展在如今就打好基础。
  香山架构的演进
  香山架构目前研发的核心架构被称为“雁栖湖”,这个架构是2020年6月开始建立,2021年4月RTL完成。目前预估的性能SPEC CPU 2006为每GHz 7分,现在的版本暂时采用台积电的28nm工艺,1.3GHz频率制造。
  在“雁栖湖”之后,2021年3月香山架构启动了新一代“南湖”核心架构的研发,计划在2021年底完成。它的SPEC CPU 2006能够达到每GHz10分,相比雁栖湖核心架构提升大约43%左右,工艺则改用中芯国际的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,8通路的设计,而ITLB则采用32通路,另外还有专用的指令缓存,规格为16KB、4通路。另外拾取目标队列为48个队列深度、指令缓存也是48队列深度,前端解码器采用了6宽度的设计。相比之下,Cortex-A76的L1指令缓存容量为64KB,其余的类似设计并未公布详细参数。
  在重命名和指令派遣阶段,雁栖湖架构设计了浮点重命名模块、整数重命名模块和拥有192个队列深度的重新排序缓存,浮点物理寄存器文件的队列深度为160,整数物理寄存器文件的队列深度也同样是160。这部分物理寄存器是对应到执行阶段单元的。
  在执行阶段,雁栖湖架构的规模是比较大的。整数部分包括4个ALU、2个DMU和一个MISC,浮点部分则包括4个FMAC和2个FMISC,地址解码和数据写回方面设置了2个AGULD和2个AGU ST。雁栖湖架构特别对浮点除法和开方器进行了优化。和Cortex-A76对比来看,Cortex-A76整数部分只有2个ALU和1个ALU/MAC/DIV单元,以及1个独立的分支单元,浮点部分只有1个可以执行FMUL/FADD/FDIV/IMAC的复杂浮点单元和1个执行FMUL/FADD/ALU的单元。
  这样看来,雁栖湖架构在后端执行方面要比Cortex-A76的规模大一些,并且大量采用简单功能单元,而Cortex-A76则相对规模较小,但是大量采用复杂功能单元。这显示了两者不同的设计取向。相对应的,雁栖湖架构的前端也是为这种较大规模的执行单元设计的,比如发射宽度为6,而Cortex-A76的发射宽度为4。当然,这部分设计并不能说明两者孰优孰劣,目前来看雁栖湖架构还只是初代版本,在设计经验和性能方面还有很大的上升空間。相对ARM这种在CPU微架构设计的“千年老妖”来说,雁栖湖架构在现阶段最重要的任务是完成架构设计,并通过架构不断迭代提高性能。
  最后再来看—下雁栖湖架构的内存部分。这部分包括1个64队列深度的读取排队单元和同样为64队列深度的存储排队单元,以及16x64Bit的存储缓存。雁栖湖架构设计了1个32KB、8通路的数据缓存用于缓冲所有的内存数据,这个缓存到DTLB的速率是2x8Bit每周期、到读取队列单元的速度是每周期64Bit,到存储缓存的速度也是每周期64Bit。相比之下,Cortex-A76的数据缓存容量为64KB,没有采用存储缓存设计。雁栖湖架构的L2缓存为1MB、8通路,这个缓存容量在面向高性能设计的架构中并不算大,这可能和整体架构的设计目标有关。
  总的来看,整个雁栖湖微架构的设计具有独特的创意和思想,尤其是前端6发射、改进的分支预测器、后端执行单元的方案选择等,都让人看到了国内微架构研发团队的实力,非常值得期待。
  香山架构的雁栖湖微架构性能和对比
  前文提到,目前雁栖湖架构的性能大概在SPEC CPU 2006中每GHz达到了7分,未来的南湖架构可以达到10分。相比目前主流的ARM处理器架构,这个成绩算是什么水平呢?
  在文章中,雁栖湖微架构的研发团队没有说明测试的数据是SPEC CPU 2006的整数还是浮点部分,不过业内通常以整数部分的测试来进行对比,这里本文就默认雁栖湖微架构也是运行的SPECint 2006的测试。需要注意的是,这里没有考虑实现这样性能的雁栖湖微架构的每瓦特性能、每晶体管性能和最终的每平方毫米性能,而这些具体的参数会影响到整个架构的商业化和实际可达性能,本文在这里仅仅单纯对性能,不考虑其他任何变量。
  用于对比的数据来自GoldenReviewer,这是一家海外的测试团队,测试了Cortex-A76、Cortex-A77、Cortex-A78和Cortex-X1等不同架构、不同处理器的SPECint2006性能。从他们的测试数据来看,Cortex-A76架构在SPECint 2006的每GHz性能大约是10分左右,普遍在10.0 2-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差距很大。不过研发团队解释道,自己在28nm工艺下只能运行在1.3GHz,并不是由于台积电的工艺问题,而是和架构设计有关,这个可能和香山架构流水线级数较少、工艺实现上缺乏相对应的高频率设置有关。
  未来可期的香山架构
  到这里,本文对香山微架构的粗浅解读就告一段落。实际上在包云岗研究员的文章中还介绍了大量有关快速开发和测试的内容,由于和本文关心的架构、性能不是很相关,就暂且略去,有兴趣的读者可以去阅读原文。从本文的介绍以及香山架构、研发团队现有的表现来看,香山架构整体设计还是颇为独特的,初次亮相就体现了一个自主研发的高性能微处理器架构所应有的方方面面,并且具有非常强的成长性。可以确定的是,未来随着香山架构内部设计的不断演进,其性能还会持续增长,也有可能某天就突然来到我们身边,成为RISC-V世界的主流高性能架构,被使用在我们的手机、平板、智能电视机中,想想还是颇令人期待的。
其他文献
微星Bravo17在整体上给人一种内敛、沉稳的风格,这台机器采用经典的黑色配色,金属材质的A面还经过拉丝工艺处理,呈现出细腻的线条,颇有金属的质感和硬朗的风范。微星Bravo17采用17.3英寸1920×1080分辨率的IPS雾面屏,刷新率达到120Hz,同时其还支持AMDFreeSync技术,该技术可以防止游戏画面撕裂,带来更流畅、稳定的体验。我们通过DatacolorSpyder5Pro校色仪
我到达了现场,和冲突地近在咫尺。但是,我却要从网络上去获取信息并对走向做出判断。    第一次看到石首发生警民大规模冲突的网络视频时,我对其激烈程度感到惊讶。这一幕之前只在cctv《新闻联播》的国际新闻里头出现过,它似乎更应该发生在巴勒斯坦、尼泊尔和伊朗,而不是瓮安、南康和石首。  为什么是石首?石首发生了什么?  一具躺在永隆大酒店门前的尸体,究竟如何发酵和点燃了猜测、愤怒和暴力呢?   如果不
在经济危机和互联网泡沫下,诺埃尔·比德曼创建的偷情网站却越来越红火,目前已经有360万会员。很多人指责网站“人生苦短,趁早偷情”的口号是在明目张胆地破坏家庭。但比德曼一直认为:偷情不过是生命的真相罢了,在我们的DNA里从来就不存在一夫一妻制。    在经济衰退的大环境下依然有良好业绩的行业并不多见,婚外情行业便是其中之一。  阿什利·麦迪逊(Ashley Madison)就是偷情公司的代表之一。在
尽享云的力量  一块屏幕,将身边的世界挡在外面,人们陶醉其中。  数一数,你每天要面对多少块屏幕?  在地铁拥挤的空间里、在咖啡厅的橱窗下、在朋友聚会的餐桌上……我们总会忍不住拿出智能手机、平板、电子书,抓紧每分每秒紧盯着各种屏幕—阅读、回复、“切水果”、发微博……  当我们手持方向盘,收听着智能手机播报的前方实时路况信息时,你可曾知道在远方有“一群忠诚的”服务器正在紧张有序地工作着。  当我们在
英国利物浦雪地狂欢    12月20日,来自英国利物浦的坎内尔姐妹穿着圣诞装比基尼在冰天雪地里狂欢。近日,特大风雪持续吹袭欧洲,在这一年当中最为繁忙的运输季,欧洲航空交通陷于瘫痪,数以万计赶着圣诞回家过节的旅客,因为航班和列车的延误而滞留。    巴基斯坦伊斯兰堡风雨同舟    12月19日,国务院总理温家宝在巴基斯坦议会发表题为《风雨同舟 共创未来》的演讲。15日至19日,温家宝对印度、巴基斯坦
一切都是幻觉,这吓不倒我  南都周刊:《我执》为什么要取用佛教概念?   梁文道:《我执》由五个月的散文体日记构成,写的是一个人陷入深深的“执”的状态,沉迷于爱恋和爱欲不可自拔。任何人对爱情太多沉沦都是我执甚深的表现,他好像是在迷恋一个对象,其实这个对象都是他虚构创造出来的,与其说迷恋一个人,不如说是沉迷一种状态。相信而且紧紧不放,那是我执的极致状态了。这不是勇敢,而是沉沦。在我看来最大的勇敢是洞
小巧圆润的外观  我们体验过的Mini-ITX机箱不少,迎广B1在Mini-ITX机箱中算是体积较小的一款。它甚至比我家里的智能扫地机还要小,其尺寸大小为108mm(H)×302mm(W)×238mm(D),同时外观设计得比较圆润,放在家中如果不凑近看可能很难发现这是一款机箱。迎广B1除了小,还很轻,它的重量仅为1.9kg,这还是包含了所有配件和电源的重量。  材质方面,迎广B1主要采用的是ABS
极简而精致的外观设计  初次见到HUAWEI MateView时,我就被它的外观设计惊艳到了。与普通商用办公显示器所采用的非黑即白的外观不同的是,它采用了银色外观,看上去很有档次感,同时也应用了极简的设计风格。它在底座支架上的设计也非常别致,扁平化的支架,让显示器支持升降操作。同时,支架下部是它的扬声器部分,设计得非常巧妙。此外,或许是为了确保显示屏的整体美观性,HUAWEIMateView将接口
当一个人出于某种原因不能对施压源头还击时,往往会找一个替罪羊发泄一通,用来证明自己的能耐。而这时候,那些没有抵抗能力的花花草草还有弱小的动物,便成了最方便的发泄对象。    从前几年的清华质优生的泼熊虐猫到最近发生的少女虐兔事件,几乎每隔一段时间就会传出一个虐待动物的新闻。据说仅某个网站就能搜出多达279段虐待动物的视频,而这些动物小到昆虫、金鱼,大到藏獒、马匹,都成了人们手中卑微的玩物。这些施虐
在Windows 7下,绝大部分基于Windows 95、Windows 98或DOS系统的老游戏都无法运行。    但是在Windows 95、98或DOS系统下,这些游戏可以正常运行。  《炎龙骑士团2》、《凯兰迪亚传奇》、《福尔摩斯之玫瑰纹身》、《中关村启示录》……当你费尽九牛二虎之力,通过各种渠道得到了这些宝贵的经典老游戏时,却非常悲哀地发现,在Windows 7下,这些游戏没有一个能正常