跳转至

GGPR

说明

第一层架构状态中的通用寄存器称为GGPR(Global General Purpose Register),是用于跨块指令数据传递的全局寄存器集合。这些寄存器在块指令之间共享,是全局数据存取和通信的媒介。

第一层的通用寄存器命名为R[n],n取值0, 1, 2, 3, 4, ..., 23。这组寄存器的位宽统一为64bit。

通用寄存器组的主要用途包括:

  • 跨块传递数据:每个块指令可以直接读取或写入全局寄存器,用于在不同块指令之间传递数据,避免了频繁的内存访问。
  • 数据存储优化:长生命周期的数据(如全局变量、函数参数)可以通过全局寄存器保持有效性,编译器会优先将这些数据分配到GGPR中,以减少不必要的内存读写开销。
  • 输入输出操作:块指令的输入和输出可以通过GGPR传递,支持指令的并行化执行,提升硬件执行效率。

其中,通用寄存器采用标准的ABI接口进行命名和使用,包含零寄存器、栈指针寄存器、函数参数寄存器、子函数寄存器以及父函数保存寄存器等。各寄存器的具体用途如下:

寄存器名 别名 解释 寄存器名 别名 解释
R0 Zero 零寄存器,始终为0 R12 S1 子函数寄存器1
R1 SP 栈指针寄存器 R13 S2 子函数寄存器2
R2 A0 函数参数0 R14 S3 子函数寄存器3
R3 A1 函数参数1 R15 S4 子函数寄存器4
R4 A2 函数参数2 R16 S5 子函数寄存器5
R5 A3 函数参数3 R17 S6 子函数寄存器6
R6 A4 函数参数4 R18 S7 子函数寄存器7
R7 A5 函数参数5 R19 S8 子函数寄存器8
R8 A6 函数参数6 R20 X0 父函数保存寄存器0
R9 A7 函数参数7 R21 X1 父函数保存寄存器1
R10 RA 返回地址寄存器 R22 X2 父函数保存寄存器2
R11 FP(S0) 栈帧寄存器/子函数寄存器0 R23 X3 父函数保存寄存器3

这些寄存器的功能类似于传统架构中的寄存器组,但在灵犀指令集中,它们被优化用于块指令的跨块数据传递,确保在块之间的跳转和函数调用中高效管理数据。

访问属性

这组寄存器都是可读可写的(RW)。