跳转至

指令编码格式

ISA 版本: v0.58.3 |  ISA 手册第 03 章

灵犀指令集 v0.58.3 支持小端字节序的四种指令长度 面向半字的模型。位位置显示为 [msb:0] (MSB 最左边,LSB 最右边),匹配 ARM 和 RISC-V 约定。

v0.58.3 的标量、block command 和 Tile 编码以 PTO ISA 0.58.3 为共同基线。TLSU 使用 BSTART.TLOAD、BSTART.TSTORE、BSTART.TMOV、 BSTART.MGATHER.MASK、BSTART.MGATHER.CAS 等命名块头;Linx 的额外 编码仅用于 V.* 与 VPAR/VSEQ 向量扩展,并避开 PTO 保留区间。

指令长度

命名空间 格式 比特 成分 示例
C. C16 C16 16 16单个 16 位部分 C.ADD、C.LD、C.BSTART.FP
(基础) LX32 32 32单个 32 位部分 ADD、LD、BSTART.CALL
HL. HL48 48 48 16位前缀+32位主 HL.LDI、HL.CASB、HL.SETRET
五. V64 64 64 32位前缀+32位主 V.ADD、V.FMADD、V.DIV

注意: 48 位 (HL.*) 和 64 位 (V.*) 形式是 前缀 + 主 组合。 前缀增强了以下指令,并且没有独立的语义。

解码格式标签

每条指令都带有一个解码 Type 标签,描述其操作数字段布局:

16 位 (C.) 解码类型

标签 典型操作数
C.Type A SrcL、SrcR — 两个寄存器
C.Type B SrcL、uimm5 — 寄存器 + 小立即数
C.Type C SrcL、Func—寄存器+功能码
C.Type D SrcL、RegDst — 寄存器移动
C.Type E RegDst、uimm5 — 立即移动/设置
C.Type F Func、uimm5 — 函数+小立即数
C.Type G 仅立即(块标记)
C.Type H imm10 — 更大的立即
C.Type I imm12 — PC 相关形式

32 位解码类型

标签 典型操作数
Type A RegDst、SrcL、SrcR [、SrcD] — 3 源
Type B RegDst、SrcL、SrcR + 小 imm
Type C SrcL、SrcR + 2 个立即数
Type D RegDst、SrcL + simm — 比较/分支
Type F RegDst、SrcL + simm — 加载/存储
Type G RegDst + simm — 立即加载
Type H SrcL、SrcR + simm — ALU-立即

编码空间

编码 主要操作码位 老虎机 用途
C16 C16 [15:13] 8 压缩 16 位形式
LX32 [31:26] 64 64基本 32 位形式
HL48 [47:40] 256 256高级前缀
V64 [63:58] 64 64矢量前缀

完整内容请参见编码空间分析无冲突分配表。

PTO ISA 编码工作簿 encoding/PTO-ISA-Encoding.xlsx 仅作为非规范评审材料提供; 规范来源是检入的 v0.58 JSON/opcode 源和生成检查。

字段颜色键

编码图例

颜色 领域 颜色 领域
绿色 路/RegDst 紫色 函数/操作码
青色 Rs1 / SrcL 粉色 沙姆特
青色 卢比/SrcR 琥珀 imm / 偏移
橙色 3卢比/SrcD 灰色 保留/零

示例图

32 位:添加

添加编码

16 位:C.ADD

C.ADD编码

48 位:HL.LDI

HL.LDI编码

64 位:V.ADD

V.ADD编码

另请参阅