孙彩霞 郑 重 邓 全 隋兵才 王永文 倪晓强
(国防科技大学计算机学院 长沙 410073)
(cxsun@nudt.edu.cn)
DMR是由国防科技大学计算机学院自研的一款兼容RISC-V架构的乱序超标量通用处理器核,主要面向高性能计算领域.
DMR支持用户态(user-mode)、特权态(supervisor-mode)和机器态(machine-mode)三种特权级模式,兼容RV64G指令集规范[1],并进行了自定义向量扩展,虚存系统支持Sv39和Sv48[2],物理地址为44 b.
DMR的微架构如图1所示.取指宽度为256 b,即8条32 b指令;译码宽度、寄存器重命名宽度和指令分派宽度都是4;寄存器重命名采用统一的物理寄存器文件方式,如果没有足够的空闲物理寄存器,重命名过程将会发生阻塞;分派后的指令根据指令类型进入相应的指令调度队列,同时也会进入重定序缓冲(reorder buffer,ROB);采用分布式调度队列,根据指令类型设置了整数调度队列、访存调度队列和浮点调度队列;调度队列中的指令就绪后,就会被乱序调度执行,每拍最多可以调度9条指令,其中3条整数指令、1条分支指令、2条load指令、1条store指令和2条浮点指令;指令被调度执行时读取寄存器文件获取源操作数,源操作数也可能来自旁路的数据;指令提交按序进行;指令Cache和数据Cache均为64 KB,4路组相联,Cache行大小均为64 B.

Fig.1 DMR microarchitecture图1 DMR的微体系结构
DMR的流水线如图2所示.单周期整数流水线共有12级,取指4拍,然后是2拍的译码.第1拍进行预译码并处理指令拆分和指令融合,第2拍译码出指令中的操作数信息,以供寄存器重命名时使用;REN为重命名站,DS为指令分派站,根据指令类型,将指令顺序分……