1、香山开源处理器昆明湖架构的设计演进唐浩晋唐浩晋1王凯帆1胡轩1张林隽2裴晓坤1徐泽凡4李昕12李衍君31中国科学院计算技术研究所2北京开源芯片研究院3中国科学院大学4中国科学技术大学2024年8月22日2 2 迄今性能最高的开源处理器系列 开源的 RTL 设计和文档 开源的开发工具和平台 旨在解决开源处理器芯片生态的两大挑战托管在 GitHub 上 4.5K stars 630 forks香山:开源高性能处理器“处理器界的 Linux”高性能 算力需求正在快速增长 由于较高的微架构设计、优化和设计难度,很少有开源处理器芯片能够做到较高的性能高可配置性 工业界需要定制化需求和快速开发迭代 高可配
2、置性让领域特定架构的快速生成和海量的定制化需求成为可能3 3香山:开源高性能处理器 第一代架构:雁栖湖 2020/6:RTL 设计的第一个提交 2021/7:28nm 流片,1.3GHz 性能:SPEC CPU2006 7.011GHz,DDR4-1600 第二代架构:南湖 2021/5:开始设计探索和架构设计 2023/4:GDSII 交付 14-nm 流片,SPEC CPU2006 202GHz 第三代架构:昆明湖 新的指令集扩展(虚拟化、向量等)优化设计的流水线部件 CHI-CoupledL2 缓存 性能:SPEC CPU2006 453GHz4.2K stars,500 forks o
3、n GitHub北京香山4 4昆明湖架构总览 6 宽度重命名 多级覆盖分支预测 224 INT+192 FP+128 VEC 物理寄存器 160 ROB+256 RAB(RenAme Buffer)64 KB ICache/DCache 1 MB L2 Cache FDIP 指令预取 stream/sms/stride/bop/tp 预取器 48-entry ITLB/DTLB+2048-entry L2TLB5 5 13 级流水深度 3-cycle load-to-use(L1 Cache 命中)每周期最多预测两个分支昆明湖流水线概览4 ALU2 MUL1 DIV2 BKU3 BRU3 LD
4、U2 STA2 STD4 FALU4 FMAC2 FDIV2 VIALU2 VFALU1 VIMAC2 VFMA1 VIDIV1 VFDIV6 6昆明湖微架构改进 新支持指令集扩展 发射后读寄存器堆的新后端 更低功耗的 ICache 时序更优的 LoadQueue 和 LSU 设计 支持 CHI 总线的 Coupled L2 缓存7 7RISC-V 虚拟化 H 扩展 CPU虚拟化 特权级拓展 CSR拓展 指令拓展 Trap拓展 内存虚拟化 两阶段地址翻译:客户机的地址翻译、主机的地址翻译客户机虚拟地址客户机物理地址主机物理地址客户机地址翻译主机地址翻译8 8昆明湖虚拟化扩展设计CPU虚拟化 特
5、权级 新增V位,区分VS和HS、VU和UHypervisor CSRhstatus、hedeleg、hideleg、hvip、hip、hie、hgatp等Virtual Supervisor CSRvsstatus、vsip、vsie、vstvec、vsepc、vsatp等Machine CSRmstatus、mideleg、mip、mie、mtval2(新增)、mtinst(新增)Hypervisor指令访存指令HLV.width、HLVX.HU/WU、HSV.widthFence指令HFENCE.VVMA/GVMA Trap 增加VS级陷入陷出的处理 CSR寄存器MSUMHSVSUVU新增
6、中断VS software interrupt、VS timer interrupt、VS external interrupt、Supervisor guest external interrupt新增异常Environment call from VS-mode、Instruction guest-page fault、Load guest-page fault、Virtual instruction、Store/AMO guest-page fault9 9昆明湖虚拟化扩展设计内存虚拟化 地址翻译模式 Sv39-Sv39+Sv39x4 内存页表查询 访存维度 访存次数1010RISC-V