跳转至

LinxISA v0.58 架构合约

本分支承载 PTO ISA 0.58.6 的仅评审硬切换集成。机器可读的唯一权威来源是 isa/v0.58/linxisa-v0.58.json 以及 isa/v0.58/ 下的状态和发布文件。

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

公共子集包含 466 条 scalar form、95 条 command form 和 117 条 Tile 操作;PTO ISA 0.58.6 另外发布 46 个 extension encoding reservation。

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

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

TLSU 新增 GM exchange、min/max、add、increment/decrement、bitwise 和 population-count 变体。BSTART.TIMG2COL 使用 TLSU Function 28;旧的直接 TIMG2COL Tile 操作保持退役。TCONCAT、TEXTRACT、TINSERT、 THISTOGRAM、TQUANT、TDEQUANT、TSORT 和 TMRGSORT 不提供兼容别名。

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

TLOAD/TSTORE 使用 B.IOR.RegSrc0 表达 GM base,使用 B.IOR.RegSrc1 表达按字节计数的 row stride。每个参与 PE 从自己的 GPR 文件解析相同的绝对寄存器选择器。 索引 TLSU 操作则把 B.IOR.RegSrc1 解释为按元素计数的 GM row stride, 不会改变仅供 Linx vector body 使用的 repeated B.IOR 规则。

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