跳转至

LinxISA v0.58 架构合约

LinxISA v0.58 是当前稳定的硬切换版本。机器可读的唯一权威来源是 isa/v0.58/linxisa-v0.58.json 以及 isa/v0.58/ 下的状态和发布文件。

公共的标量、块和 Tile 指令必须与 PTO ISA 0.58 保持一致;LinxISA 额外保留两级向量架构。PTO 会保留这些 Linx-only 编码空间,但不会定义 其语义。当前工具链不得接受已经删除的旧助记符,也不得从历史 profile 推导当前编码。

公共子集包含 466 条 scalar form、74 条 command form 和 109 条 Tile 操作;PTO ISA 0.58.3 另外发布 40 个 extension encoding reservation。

109 条 Tile 操作的执行单元严格分为 31 VEC / 56 SFU / 10 TLSU / 12 CUBE。VEC 只执行逐元素运算;复杂函数、归约/展开、重排和不规则 运算由 SFU 执行。TEPL 不是执行单元,而是 VEC/SFU 保持不变的 Mode/Function 编码载体。BSTART.TEPL 是唯一编译后的译码身份,汇编器 接受 BSTART.VECBSTART.SFU 别名,规范反汇编按目录中的执行单元 选择别名。这些别名不占用新编码空间。

七个规范语义类别的数量为:25 elementwise-tile-tile、15 tile-scalar-and-immediate、28 reduce-and-expand、9 memory-and-data-movement、12 matrix-and-matrix-vector、7 layout-and-rearrangement、13 irregular-and-complex。

Shared Tile 寄存器是每个 core 私有的 S0S255 绝对索引寄存器组, 由该 core 的四个 PE 共享。Local 和 Shared 使用四位 SizeCode;三位 PEMode 通过固定表译码为四 PE mask,零 mode 是所有后续检查之前的 严格无副作用路径。B.IOT 的目的容量代码 1..10 表示 128 B..64 KiB, B.IOS 的目的容量代码 1..12 表示 128 B..256 KiB(均按参与 PE 计)。

TLOAD/TSTORE 使用 B.IOR.RegSrc0 表达 GM base,使用 B.IOR.RegSrc1 表达按字节计数的 row stride。每个参与 PE 从自己的 GPR 文件解析相同的绝对寄存器选择器。

英文 docs/architecture/v0.58-architecture-contract.md 是本页的规范叙述 来源;本中文页为辅助说明。