基于RISC-V的指令退休单元与缓存一致性总线系统研究(一)

1.1 课题背景与研究意义

大数据、人工智能、数字基建、超大规模计算、工业互联网等新一代信息技术行业的高速发展,离不开各类处理器。其核心的处理器芯片经过几十年的发展,x86,ARM指令集已经在高性能处理器行业确立了自身的垄断地位。服务器处理器行业,得益于x86指令集在相关市场的长期耕耘,以及固有编译器的根深蒂固,AMD与Intel以成为服务器芯片的垄断公司。与此同时,原本面向嵌入式市场的ARM指令集也开始先后应用于个人主机电脑与服务器,如苹果Mac产品线全面使用ARM指令集,从2020年大约3.4%的市场占比增长到2021年的9.5%。

x86指令集属于CISC指令集,相对于RISC指令集,CISC通过复杂化CPU的设计,而减小编译器的开发难度,这样的设计特点,虽然能够对一些特殊运算或操作有所帮助,但对指令的整体利用率是相对低下的,因此作为RISC指令集的一员ARM开始蚕食x86的固有市场。曾经被x86指令集垄断领域之一的服务器市场,在RISC展示出自身的优势后,以ARM为首的RISC指令也悄然进军服务器相关的芯片设计领域。

RISC-V的许多设计思想是延续于同为伯克利分校诞生的MIPS指令集。比较早期的MIPS指令集是在20世纪80年代的一种经典指令集。2010年,由加州大学伯克利分校的Yunsup Lee,Krste Asanovic和Andrew Waterman等人,首次提出了要创建一个新的指令集,这个指令集即为后来的RISC-V指令集,在2015年成立非营利组织RISC-V基金会以及RISC-V公司SiFive,最初的RISC-V基金会只有30多个成员,发展到如今上百名成员以及组织,这些成员与组织都有影响RISC-V指令集未来走向的能力。

如今RISC-V也逐渐开始布局高性能处理,如针对于服务器等虚拟机的使用场景,提出了H扩展以加速Hypervisor的硬件底层实现;针对机器学习等应用场景的向量运算,提出了V指令集扩展以加速向量在硬件上的运算过程。这些扩展指令集都助力RISC-V指令集芯片更好的应用于服务器,个人电脑,手机中的高性能处理器核心。

在架构上,需要对RISC-V指令集在超标量处理器上的应用做出相应改进,如提高处理器的IPC(Instruction Per Clock)性能,要求提高流水线级数,于此矛盾的是级数的提升会导致发生指令跳转时,正在执行过程的大量指令被冲刷,所以需要用分支预测来解决,让跳转指令能够被提前预判执行。针对多指令乱序发射的数据冲突问题,采用重命名与旁路电路来优化数据相关性所带来的性能损失难题。

RISC-V现阶段,在超高性能处理器市场上的应用仍然几乎空白,但由于其开放性的指令集架构,国产指令集替代的迫在眉睫,其在高性能处理器应用上有着巨大的发展潜力。同时电子产品的大量普及,智能设备的更新换代都造成了对高性能处理器的大幅度需求扩充。因此,对RISC-V高性能处理器的研究,既可以推动处理器的设计思想,又可以满足当前环境下的“卡脖子”问题与市场需求。

1.2 超标量处理器国内外研究现状

典型的超标量处理器是Intel在1995年发布的Pentium处理器,这一代处理器首次引用了超标量指令流水结构,同时支持分支预测与乱序执行,这种设计思想,一直延续到如今处理器的单核心设计。现代处理器已经由既往的单核心,逐渐扩展到多核心,再由多核心做成簇与GPU,NPU等共同集成到同一个NoC当中。超标量处理器是指一个周期内,可以执行多条指令的处理器,通常常见的超标量处理器也同时支持多进程,乱序执行,如今超标量处理器的市场由x86为代表的CISC指令集正在逐渐被以ARM,RISC-V为代表的RISC指令集替代。本节将介绍几种典型的超标量处理器。

1.2.1 ARM

Cortex系列处理器,是在ARM11之后对产品线名称的一次修改,将整个产品线分为A,R,M三个系列分别服务于不同的市场,R系列主要面对需要实时相应的嵌入式市场,M系列主要面对一些功耗敏感的MCU和AIOT终端芯片市场,A系列主要面对手机,电脑,服务器等应用场景。

以应用在2022年联发科的天玑8000等处理器上的Cortex A78为例,Cortex A78是兼具高性能与低功耗平衡的一款A系列处理器内核,采用了ARM V8架构,是一个由四个处理器核心以及一个DynamIQ架构专属的一致性处理器单元DSU(DynamIQ Shared Unit)组合构成的一个簇(Cluster),在天玑8000上的Cortex A78最高工作频率可达2.75GHz。另一款ARM A系列的典型处理器A715,对面积规划更为精小,只不过采用了ARM V9的架构,对分支预测和数据预期做了更具能效的优化,并且采用了新的DynamIQ架构,一致性单元DSU-110,充当其L3cache以及Snoop控制的完整互联结构,与此同时还添加了一组用于低功耗的专用PPUs(Power Policy Units)。

1.2.2 x86

x86指令集是一种CISC指令集,其单指令能够执行极为复杂的操作,一条指令即可涵盖千级bit信息,Intel作为最早研发超标量处理器的公司,伴随公司而生的x86指令集在处理器诞生以来也有着悠久但繁杂的历史,最早的x86指令是对已经具有革命意义的8位处理器Intel 8080的汇编语言进行了一次兼容的扩展,由此构建了第一个16位的处理器,而随着后续Pentium引入了超标量处理器的相关概念,AMD又对x86指令集由32位地址空间增加到64位有了现代PC端处理器的雏形。

相对于RISC不同的是,在底层硬件上的实现,x86需要对指令进行预译码,即每一条指令转换成单独的x86指令,之后再对每一条指令转译成微操作,虽然在RISC的处理器设计上也有部分设计借鉴了微操作的理念,但x86指令更长转译微操作更为频繁,因此往往需要在添加相应的微操作序列以及微操作循环流检测。

以2020年4月推出的CORE I7 10700为例,其采用14nm工艺流片,8核心16线程,默认模式下以2.9Ghz运行,最高主频可以达到4.8Ghz,其带有Socket1200的Comet Lake架构,并使用了16MB的L3-Cache,同时提供了硬件虚拟化大幅加速了虚拟机在硬件上的实现,并且同时支持高级矢量扩展。AMD Zen2平台是AMD推出的一种新一代处理器平台[34],基于7nm工艺。其采用了全新的CCD(Core Chiplet Die)和IOD(Input/Output Die)架构,其中CCD代表芯片芯片组,IOD代表输入/输出芯片组,两者之间通过Infinity Fabric总线连接。这种架构可以将多个芯片组组合在一起,从而实现更高的处理器核心数和更大的缓存容量。Zen2平台还支持AMD的Simultaneous Multi-threading(SMT)技术,即每个核心拆分为两个线程,从而提高多线程性能。由此得出无论ARM还是x86都在现有的超标量处理器设计上不断向前,RISC-V亦然如此。

1.3 RISC-V高性能处理器国内外研究现状

国内外采用RISC-V指令集的高性能处理器芯片各有特点,学术机构与企业龙头都有参与RISC-V指令集的研究与开发。

1.3.1 SiFive P550

P550是SiFive公司的RISC-V超标量处理器定制化IP。SiFive成立于2015年,是由最早创建RISC-V指令集的加州大学伯克利分校团队成立的全世界首家RISC-V定制化的半导体公司,如今SiFive与Intel,高通,西部数据等公司都有深度合作关系。P550是SiFive支持RISC-V RV64GBC指令集的一款13级流水线,三发射,乱射执行处理器,单个Cluster支持最多支持4核心,以7nm工艺制程技术的处理器主频可达2.4Ghz,面积小于0.25mm,同时可支持sv39或者sv48的虚拟地址与物理地转换标准,以及完整的RISC-V V指令扩展。由于SiFive的所有处理器是基于Chisel设计为主,所以其提供了用户大量可定制的单元。

1.3.2 XuanTie C910

XuanTie C910是国内平头哥开发的一款三发射乱序64位多核心12级流水线处理器,支持RISC-V GC指令集,SV39地址转换标准,同时支持每个独立的Cluster以及单核下电,非开源版本支持RISC-V V扩展,对向量运算提供硬件上的加速。是目前全世界开源性能最强的RISC-V处理器,其和香山系列处理器以及SiFive处理器不同的地方在于其硬件开发仍然使用Verilog最为开发语言,相对于Chisel等基于Scala的开发语言,Verilog有着更成熟的生态验证环境以及开发试错成本,所以其仍然是商用RISC-V处理器开发的优先选择。

1.3.3 香山处理器

香山处理器,是在2019年由中科院计算机技术研究所带头发起的一款高性能开源基于Chisel开发的RISC-V处理器,第一代架构发布时是目前单核性能最高的开源RISC-V处理器项目,和C910一样其第一版雁栖湖架构支持RISC-V GC指令集,第一次在28nm工艺节点下达到1.3Ghz的频率。第二版香山处理器的南湖架构在2022年3月Code Freezing,其支持RV64GCBK 扩展,仍然采用乱序六发射结构设计(整型三发射,浮点三发射),在14nm的工艺节点下频率预计可以达到2Ghz。

1.4 论文的主要工作与结构安排

本文的主要工作是对玄铁C910做出硬件底层上的结构优化与设计。首先,对C910的单周期三发射优化为单周期指令四发射,实现了C910的单周期指令发射通道扩展,对取指单元,译码单元,指令退休单元等模块做出了相应的改动,并且对特定操作的底层逻辑也做出了优化设计,本文重点对其中的指令退休单元包括ROB等模块做出了相应的优化设计。其次,对特定单元与模块进行了一些改进与设计优化,这其中包括了以ACE协议为标准的总线接口系统(实际为访存单元等模块中的事务发生类缓冲器电路结构)优化方法,类缓冲器电路结构的表项深度,以及一致性与嗅探事务发生的交互逻辑等做出优化设计。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值