XS-GEM5:香山处理器的微架构模拟器

Image credit: GEM5

引言

本文的目的是帮助有一定CPU微架构基础但是不了解XS-GEM5项目的朋友初步认识XS-GEM5。针对各部分微架构设计的介绍还在持续更新中。

本文会对比说明XS-GEM5与上游GEM5的区别、XS-GEM5的架构与昆明湖RTL的区别。本文会对比以下几点:

  • 模拟/仿真的功能支持
  • ISA支持
  • CPU流水线前端架构
  • CPU流水线后端架构
  • 访存子系统架构

XS-GEM5简介

XS-GEM5与香山处理器的昆明湖架构同时开始开发,其目的是提高香山处理器的架构探索效率,帮助昆明湖架构达到SPECint2k6 15/GHz的性能。

理论上,1)在进行架构探索之前,需要精准地将架构模拟器与RTL进行对齐;2)架构模拟器的微架构设计应该领先于RTL。实际上,出于项目进展的考虑,目前XS-GEM5与RTL主要对齐了流水线前端架构(包括分支预测器、取指流水线),后端指令调度执行引擎的延迟和计算带宽,缓存访问延迟和带宽,缓存预取和替换算法。

下图展示了截至现阶段(2024年1月),XS-GEM5与RTL的模块对齐程度,其中对齐程度较高的模块用绿色标注,未对齐或差异较大的模块用灰色标注。整体上,XS-GEM5对流水线前端和缓存子系统的对齐程度较高。而在2024年,我们会加强流水线后端的对齐。 XS-GEM5与香山V3架构的对齐进度

性能对比

上游GEM5XS-GEM5香山昆明湖RTL
SPECint2k6/GHz<1015.514.9
SPECfp2k6/GHz<916.514.5

XS-GEM5相对于上游GEM5,在性能方面有较大优势,性能提升主要来自访存子系统的大量改进,解耦流水线前端和分支预测器bug 修复。

模拟/仿真的功能支持

上游GEM5XS-GEM5香山昆明湖RTL
DifftestYY
RVGCptYY
FastforwardYY
Functional warmupYYExperimental
M5 checkpointY
SimPoint profilingY
SimPoint take cptY
SystemCall EmulationYPartial
Topdown analysisYY
Accelerate simulation with PGOY

ISA支持

上游GEM5XS-GEM5香山昆明湖RTL
Non-RISCV ISAsY
RISCV VectorPartialRVV 1.0RVV 1.0 partial
RISCV GCBPartialYY
RISCV H?YY
CSR instruction implementation50分?60分?70分?
RISCV zcond?Y
RISCV zbt?Y

CPU流水线前端架构

上游GEM5XS-GEM5香山昆明湖RTL
Decoupled frontendYY
Fetch directed prefetchingYY
Fetch target bufferYY
Performance of TAGE Broken SCL branch predictorBrokenYY
Performance of return addr stack+++++

CPU流水线后端架构

上游GEM5XS-GEM5香山昆明湖RTL
指令调度、执行延迟与RTL对齐
集中式保留站YY
分布式保留站OngoingY
发射后读寄存器堆YYY
发射前读寄存器堆Y
真-推测执行OngoingY
访存依赖预测算法Basic storeset with perf bugStoreset supporting multi producerStoreset supporting multi producer
FMA拆分执行YY
ROB压缩Y
Move eliminationYY
Recover policyRollback onlyRollback or replayRollback or replay
Renaming Vector misc registerYY

访存子系统架构

虚存系统(TLB、PTW)

上游GEM5XS-GEM5香山昆明湖RTL
Parallel PTWYY
PTW request coalescingYY
L2 TLBYY
TLB prefetchingYY

缓存

上游GEM5XS-GEM5香山昆明湖RTL
L1 composite prefetcherBrokenManually composited prefetcherManually composited prefetcher
L2 composite prefetcherBrokenManually composited prefetcherManually composited prefetcher
Prefetching request offloadingY; Active & passiveY; Active only
VA-prefetchingYYY
Stream prefetcherNot tunedYY
Stride prefetcherNot tunedYY
Berti prefetcherBetter than stride
BOP prefetcherBrokenY; with VA supportY
SMS prefetcherYY
Temporal prefetcherYY
Complex stride prefetcherY
Content-directed prefetcherY
Zhou, Yaoyang
Zhou, Yaoyang
Architect of LLM DSA; Maintainer of u-arch simulator for Xiangshan; PhD of Computer Architecture

I specialize in LLM DSA and CPU micro-architecture.

Related