From a91528a228b6dde37fae78323de90f231d224f98 Mon Sep 17 00:00:00 2001 From: chentianya Date: Mon, 24 Aug 2026 13:48:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=87=E4=BB=A4=E9=9B=86=E4=BC=98=E5=8C=96?= =?UTF-8?q?=EF=BC=9A=E6=96=B0=E5=A2=9E=20=C2=A79=20=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E6=A0=B8=E9=AA=8C=E6=B8=85=E5=8D=95=EF=BC=88K1..K23=20?= =?UTF-8?q?=E5=B7=B2=E7=A1=AE=E8=AE=A4=20/=20U1..U16=20=E5=BE=85=E7=A1=AE?= =?UTF-8?q?=E8=AE=A4=EF=BC=8C=E6=9C=AA=E5=9B=9E=E7=AD=94=E2=89=A0=E5=90=8C?= =?UTF-8?q?=E6=84=8F=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Doc/isa/指令集优化.md | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/Doc/isa/指令集优化.md b/Doc/isa/指令集优化.md index bbd34d6..18b9bd6 100644 --- a/Doc/isa/指令集优化.md +++ b/Doc/isa/指令集优化.md @@ -255,3 +255,58 @@ V2 的 op 位段仅 6 位(64 个),FB 占 8 个不划算,且 machine.toml - B4 定案:领域指令(运动控制/通信)不进指令集,一律 FB 库;无 EXT 服务指令 - B3/B5 说明中待确认:单/双字计数编码(CAL type 位段)、op 位段预算 - 未定项记录:C1 元数据段 / C2 头终稿 / C3 fb 表 schema / C4 rd 约定成文 / C5 line1 推演 / C6 计数器字段表 + +## 9. 确认核验清单(2026-08-24 核对) + +> 原则:**未明确回答 ≠ 同意**。本清单逐项记录「用户明确回答」与「待确认」, +> 待确认项由用户逐项表态后闭合。 + +### 9.1 已确认(用户明确回答) + +| # | 项 | 用户回答 | +|---|---|---| +| K1 | 变长指令(长度编码在 opcode) | 「变长指令,指令长度编码再opcode里面」 | +| K2 | 寄存器 8 位编号 256/帧(容量恒定式) | 「寄存器大小不变,8bit*256 == 16bit*128 == ...」 | +| K3 | 宽度编码进 opcode(非槽表带类型) | question 选「宽度编码进 opcode」 | +| K4 | 初值整合 .stb 内分段(ELF 式) | question 选「整合在 .stb 内分段」 | +| K5 | 全 32 位寻址(槽号 u32 + 地址 u32) | question 选「全 32 位寻址」 | +| K6 | type:5(32 种,含 DATE/TOD/DT 19 基础类型) | 「B」 | +| K7 | 跳转偏移字节化 | 「接受」 | +| K8 | I/Q/M 六条合并为 LOAD/STORE 两条 | 「合并」 | +| K9 | LOADF 取消(LOAD/STORE 16B 变体=字段访问) | 「LOADF和普通的LOAD应该没有区别吧」 | +| K10 | ST 层类型全量(19 类型名进关键字) | 「全量」 | +| K11 | 禁止隐式变量转换(编译期检查) | 「禁止隐式变换,只需要编译阶段检查」 | +| K12 | 进制前缀(2#/8#/16#) | 「进制前缀」 | +| K13 | A2 常量表(LOADK type 解释、条目 8B 无 tag、IMM64 预留) | 「使用常量表吧」+ 讨论 | +| K14 | A3 计数单字/双字两种都要 | 「需要两种,单字的和双字的计数指令都要有」 | +| K15 | A4 DATE/TOD/DT 字面量 v1 不支持 | 「先不支持」 | +| K16 | A5 算术语义(饱和模板/TIME±/浮点 IEEE/DATE 不运算) | 「先做吧」 | +| K17 | A6 sidecar 绑定粒度一致(slot=槽号) | 「应该可以保持一致」 | +| K18 | A7 disasm 类型后缀(LOAD.I16 r5, s3) | 「类型后缀」 | +| K19 | A8 type 表=基元别名(REAL→float32、LREAL→float64) | 「类型:编译器内建基元...float32-float,float64-double」 | +| K20 | A9 字面量按上下文适配、默认 DINT 兜底 | 「就这么做」 | +| K21 | B1 fb_id 16 位 | 「16位」 | +| K22 | B2 1 CAL + fb_id(查 [[fb]] 表) | 「cal + fb_id」 | +| K23 | B4 领域指令不进指令集(运动/通信走 FB 库) | 「不进指令集」 | + +### 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 已写 | 接受 / 改 | +| 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 不扩 | 讨论过,未写文档 | 接受 / 改 | +| U7 | **头 128 字节布局**(64/68 改义、n_slots/n_values、型号@72、112..127 预留) | §2.5 已写 | 未细审,确认 / 改 | +| 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) | 讨论过未成文 | 确认 / 改 | +| 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 已写 | 确认 / 改 | +