跳转至

典型配置

典型配置

以下是昆明湖 V2 核心的典型配置:

参数
流水级数 13
译码宽度 6
重命名宽度 6
提交宽度 8
ROB 160
RAB 256
物理寄存器宽度(整数) 224
物理寄存器宽度(浮点) 192
物理寄存器宽度(向量) 128
Load 队列 72
Store 队列 56
发射队列(整数) 24 entries x 4
发射队列(浮点) 18 entries x 3
发射队列(内存) 16 entries
L1 ICache 64KB/128KB (configurable)
L1 DCache 64KB/128KB (configurable)
L2 Cache 512KB~1MB, 8-way, inclusive
L3 Cache 2MB~16MB, 8-way, non inclusive
物理寄存器堆大小(整数) 224x64 bits
物理寄存器堆大小(浮点) 192x64 bits
分支预测错误惩罚 13 cycles
ECC支持 Y
虚拟内存支持 Y (Sv39/Sv48)
物理内存保护 Y
虚拟化 Y
向量 Y

指令延迟

绝大部分算术指令都是单周期指令(延迟为 1)。多周期指令在下表中列出:

整数操作

指令/操作 延迟 描述
LD 4 取数操作(load-to-use)
MUL 3 整数乘法
DIV (32-bit) 4~11 整数除法(SRT16)
DIV (64-bit) 4~19 整数除法(SRT16)

浮点操作

指令/操作 延迟 描述
FMUL 4 浮点乘法运算
FMA 4 浮点乘法加法指令
FDIV (32-bit) 3~9 浮点除法运算
FDIV (64-bit) 3~14 浮点除法运算
FSQRT (32-bit) 3~10 浮点平方根运算
FSQRT (64-bit) 3~16 浮点平方根运算
FCVT (F2I, F2F) 3 浮点转换运算
FCVT (I2F) 3 整数转浮点运算
FMV (I2F) 1 整数到浮点移动操作
FMV (F2I) 3 浮点到整数移动操作
FCMP, FMIN/MAX, FCLASS, FSGNJ 2 浮点比较/最小最大/分类/符号注入操作

位操作

指令/操作 延迟 描述
CLZ(W), CTZ(W), CPOP(W) 3 前导零/尾零计数,位计数
CLMUL(H/R) 3 无进位乘法
XPERM 3 交叉排列
AES64*, SHA256*, SHA512*, SM3*, SM4* 3 标量加密操作

存储操作

指令/操作 延迟 描述
ST 4 存储操作

执行单元配置

昆明湖 V2 具有以下执行单元:

整数执行单元 (4 发射队列, 每个队列 24 项):

  • ALU0: ALU + MUL + BKU
  • ALU1: ALU + MUL + BKU
  • ALU2: ALU
  • ALU3: ALU
  • BJU0: BRU + JMP
  • BJU1: BRU + JMP
  • BJU2: BRU + JMP + I2F + I2V + VSet
  • BJU3: CSR + Fence + DIV

浮点执行单元 (3 发射队列, 每个队列 18 项):

  • FEX0: FALU + FMA + FCVT + F2V
  • FEX1: FDIV
  • FEX2: FALU + FMA
  • FEX3: FDIV
  • FEX4: FALU + FMA

访存单元:

  • 3 Load Units (LDU)
  • 2 Store Address Units (STA)
  • 2 Store Data Units (STD)

向量执行单元:

  • VFEX0: VFMA + VIALU + VIMAC + VPPU
  • VFEX1: VFALU + VFCVT + VIPU + VSet
  • VFEX2: VFMA + VIALU
  • VFEX3: VFALU
  • VFEX4: VFDIV + VIDIV