指令编码格式¶
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 | 灰色 | 保留/零 |