diff --git a/Doc/isa/指令集优化.md b/Doc/isa/指令集优化.md index 80404ea..b798ace 100644 --- a/Doc/isa/指令集优化.md +++ b/Doc/isa/指令集优化.md @@ -168,7 +168,7 @@ |---|---|---| | A1 | 元数据段格式 | 结构体/字符串的表 schema——v1 预留但格式未定(待定) | | ~~A2~~ | ~~常量内嵌 vs 常量表~~ | **已定案**:常量表(8B LOADK 查表);LOADK 用 type 位段解释;条目 8B 无 tag;IMM64 预留不发射 | -| A3 | 内建 FB 字段类型化 | **已定案**:字段类型化(TON: in/pt/q/et = BOOL/TIME/BOOL/TIME;R_TRIG: clk/q = BOOL/BOOL);计数器单/双字(INT/DINT)**编码形式 = fb 表拆条**(CTU/DCTU/CTD/DCTD/CTUD/DCTUD 6 条,名字即宽度)——U5 待最终确认 | +| A3 | 内建 FB 字段类型化 | **已定案**:字段类型化(TON: in/pt/q/et = BOOL/TIME/BOOL/TIME;R_TRIG: clk/q = BOOL/BOOL);计数器单/双字(INT/DINT)**编码形式 = fb 表拆条**(CTU/DCTU/CTD/DCTD/CTUD/DCTUD 6 条,名字即宽度)——U5 已定案 | | A4 | DATE/TOD/DT 字面量 | **已定案**:v1 **不支持**(类型存在,仅声明/存取/比较,无 `D#/TOD#/DT#` 字面量语法) | | A5 | 算术语义细化 | **已定案**:饱和模板化到各宽度(SINT/DINT/LINT);TIME+TIME / TIME-TIME / TIME 比较;浮点 IEEE 常规(溢出→±inf、0 除→±inf、NaN 传播,无特判);DATE/TOD/DT **不做运算**(仅存取/比较) | | A6 | sidecar/I/O 绑定 | **已定案**:与现状一致——绑定粒度仍 `slot = 槽号`(指向槽表条目),channel/bit 语义不变 | @@ -250,6 +250,7 @@ V2 的 op 位段仅 6 位(64 个),FB 占 8 个不划算,且 machine.toml - A2 定案:LOADK 用 type 位段解释常量值(与 LOAD 语义统一);常量表条目 8B 无 tag;IMM64 预留不发射 - A3..A8 定案(2026-08-24):计数器单/双字两种;DATE 字面量不支持;TIME/浮点运算按推荐;sidecar 一致;disasm 类型后缀;type 表=基元别名(REAL→float32、LREAL→float64) - A9 定案:按上下文适配、默认 DINT 兜底(用户确认) +- U5 定案:内建 FB 14 条全部 v1 实现(6 计数拆条 + TON/TOF/TP/R/F_TRIG + SR/RS、PWM、RTC) - A10 定案(B1/B2):1 CAL + fb_id 16 位(查 [[fb]] 表);V1 的 8 个 CAL_* opcode 作废 - B4 定案:领域指令(运动控制/通信)不进指令集,一律 FB 库;无 EXT 服务指令 - B3/B5 说明中待确认:单/双字计数编码(CAL type 位段)、op 位段预算 @@ -299,7 +300,7 @@ V2 的 op 位段仅 6 位(64 个),FB 占 8 个不划算,且 machine.toml | ~~U2~~ | ~~长度组映射~~ | **已被前缀编码取代**(11/10/011/010xxx/0010/0011/0001,见指令编码.md §3) | | ~~U3~~ | ~~字节布局~~ | **已被取代**:`[前缀+形态分区\|op] + [func:4\|空:4]`(指令编码.md §2) | | ~~U4~~ | ~~结构体 v1 只留编码不实现语法~~ | **已定案(预留)**:只留编码路径(LOAD/STORE 16B 变体 + 元数据段),语法 v1 不实现 | -| U5 | **B3 最新方案**:fb 表拆条 CTU/DCTU/CTD/DCTD/CTUD/DCTUD(6 计数 + TON/TOF/TP/R_TRIG/F_TRIG = 11 条) | 用户提出,未最终确认 | 定案 / 改 | +| ~~U5~~ | ~~B3 计数拆条~~ | **已定案**:fb 表拆条 11 条(CTU/DCTU/CTD/DCTD/CTUD/DCTUD 6 计数 + TON/TOF/TP/R_TRIG/F_TRIG),名字即宽度;**清单内建 FB 全部 14 条(含 SR/RS、PWM、RTC)v1 实现** | | U6 | **B5 op 预算**:基础 23 + 余 41,op:6 不扩 | 讨论过,未写文档 | 接受 / 改 | | U7 | **头 128 字节布局**(64/68 改义、n_slots/n_values、型号@72、112..127 预留) | §2.5 已写 | 未细审,确认 / 改 | | U8 | **槽表条目 {addr:u32, 预留:u32} 8B** | §2.3 已写 | 确认 / 改 | diff --git a/Doc/isa/指令集清单.md b/Doc/isa/指令集清单.md index 3edc753..91e8ead 100644 --- a/Doc/isa/指令集清单.md +++ b/Doc/isa/指令集清单.md @@ -2,7 +2,7 @@ > 状态:**已编码**。全功能指令清单,全部指令已按 [`指令编码.md`](指令编码.md) 的 > RISC-V 式格式(前缀长度组 + op + func + fmt)分配编码。 -> 状态列:`核心` = v1 实现;`扩展` = v1 后实现;`预留` = 仅留编码/未来。 +> 状态列:`核心` = v1 实现(含内建 FB 全部 14 条);`扩展` = v1 后实现;`预留` = 仅留编码/未来。 ## 编码规则摘要(详见指令编码.md) @@ -209,9 +209,9 @@ bit127 88 bit87 24 bit23 16 bit15 12 bit11 8 bit7 0 | 8 | DCTUD | cu/cd/r/lu/pv(DINT)/qu/qd/cv(DINT) | 核心 | | 9 | R_TRIG | clk/q = BOOL/BOOL | 核心 | | 10 | F_TRIG | clk/q = BOOL/BOOL | 核心 | -| 11 | SR / RS | s1/r/s/q… | 扩展 | -| 12 | PWM | in/pt/q… | 扩展 | -| 13 | RTC | 日期时钟字段 | 扩展 | +| 11 | SR / RS | s1/r/s/q… | 核心 | +| 12 | PWM | in/pt/q… | 核心 | +| 13 | RTC | 日期时钟字段 | 核心 | ## 9. 字符串(未来,元数据段 + 16/32B)