指令集优化:清零已确认/作废项(U1/U2/U3/U11/U15/U16 标记闭合,A3 修正为 fb 表拆条,K 清单补 K24..K26)
- U1 作废(fmt 位段取消);U2/U3 被前缀编码取代;U11 已定案(010 101 分区) - U15 被 func=0 取代;U16 随 K7 确认 - §4 A3 行修正:计数宽度 = fb 表拆条(U5 待最终确认) - §9.1 补 K24 前缀分区 / K25 fmt 取消 / K26 MOVE 语义
This commit is contained in:
+10
-7
@@ -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)**编码形式 = CAL 的 type 位段给计数宽度**(B3,说明中待确认) |
|
||||
| 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 语义不变 |
|
||||
@@ -287,14 +287,17 @@ V2 的 op 位段仅 6 位(64 个),FB 占 8 个不划算,且 machine.toml
|
||||
| K21 | B1 fb_id 16 位 | 「16位」 |
|
||||
| K22 | B2 1 CAL + fb_id(查 [[fb]] 表) | 「cal + fb_id」 |
|
||||
| K23 | B4 领域指令不进指令集(运动/通信走 FB 库) | 「不进指令集」 |
|
||||
| K24 | 前缀分区形态:`011`=RRR、`010`=其他 | 「那就011前缀的是RRR类型指令,010前缀的是其他指令」 |
|
||||
| K25 | fmt 位段取消,形态全前缀分区(零查表) | 「010区也换成前缀编码,这样所有指令都统一了」 |
|
||||
| K26 | MOVE 只搬宽度,不管符号/浮点;类型不匹配编译期报错 | 「move指令只管宽度和搬运...类型不匹配,编译时就报错」 |
|
||||
|
||||
### 9.2 待确认(用户未明确回答)
|
||||
|
||||
| # | 事项 | 当前文档写法 | 待表态 |
|
||||
|---|---|---|---|
|
||||
| U1 | **格式合并 9→7**(CALL→IMM、CAL→SLOT,fmt 4→3 位) | §2.1 已写定案 | 接受 / 改 |
|
||||
| U2 | **长度组映射 4/8/16/32B**(32B 预留) | §2.1 已写 | 接受 / 改 |
|
||||
| U3 | **字节布局** `[len:2\|op:6] + [type:5\|fmt:3]` 两字节头 | §2.1 已写 | 接受 / 改 |
|
||||
| ~~U1~~ | ~~格式合并 9→7~~ | **作废**:fmt 位段已取消,形态由前缀分区表达,无合并问题 |
|
||||
| ~~U2~~ | ~~长度组映射~~ | **已被前缀编码取代**(11/10/011/010xxx/0010/0011/0001,见指令编码.md §3) |
|
||||
| ~~U3~~ | ~~字节布局~~ | **已被取代**:`[前缀+形态分区\|op] + [func:4\|空:4]`(指令编码.md §2) |
|
||||
| U4 | **结构体 v1 只留编码不实现语法**(原问题 5,未答) | §2.6 已写"不实现" | 预留 / 实现 |
|
||||
| U5 | **B3 最新方案**:fb 表拆条 CTU/DCTU/CTD/DCTD/CTUD/DCTUD(6 计数 + TON/TOF/TP/R_TRIG/F_TRIG = 11 条) | 用户提出,未最终确认 | 定案 / 改 |
|
||||
| U6 | **B5 op 预算**:基础 23 + 余 41,op:6 不扩 | 讨论过,未写文档 | 接受 / 改 |
|
||||
@@ -302,12 +305,12 @@ V2 的 op 位段仅 6 位(64 个),FB 占 8 个不划算,且 machine.toml
|
||||
| U8 | **槽表条目 {addr:u32, 预留:u32} 8B** | §2.3 已写 | 确认 / 改 |
|
||||
| U9 | **值段对齐 1/2/4/8B 编译器保证** | §2.3 已写 | 确认 / 改 |
|
||||
| U10 | **寄存器值 int64(8B)不变 + 调用约定 r0..r7 不变** | §2.2 已写 | 确认 / 改 |
|
||||
| U11 | **CAL 编码布局**(头2 + fb_id:16 + slot32 = 8B) | 讨论过未成文 | 确认 / 改 |
|
||||
| ~~U11~~ | ~~CAL 编码布局~~ | **已定案**:010 101 分区,操作数区 fb_id16=31..16 + slot32=63..32 |
|
||||
| U12 | **C1 元数据段**:v1 定 0 长度占位、schema 延后 | §4 建议 | 确认 / 改 |
|
||||
| U13 | **DATE/TOD/DT 表示**(uint32 天 / uint32 当日ms / uint64) | §2.4 已写 | 确认 / 改 |
|
||||
| U14 | **CALL/CAL 的 rd 恒 0 约定**成文 | 讨论过未成文 | 确认 / 改 |
|
||||
| U15 | **无类型指令 type=NONE**(MOVE/跳转/CALL/RET 等) | §2.1 已写 | 确认 / 改 |
|
||||
| U16 | **off32 相对下一条公式**(目标=当前+off,字节单位) | §2.1 已写 | 确认 / 改 |
|
||||
| ~~U15~~ | ~~无类型指令 type=NONE~~ | **已被 func=0 取代**(func 位段,无类型指令编码 0 不使用) |
|
||||
| ~~U16~~ | ~~off32 相对下一条公式~~ | **已确认**(随 K7 跳转字节化接受) |
|
||||
|
||||
|
||||
## 10. 全功能指令集清单
|
||||
|
||||
Reference in New Issue
Block a user