文档:阶段4-执行侧V2 待办清单(isa 重构/vm 同步/executor/全链路/文档收尾)

This commit is contained in:
2026-08-26 09:33:23 +08:00
parent 8ded7090c8
commit 316b252afc
2 changed files with 46 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
# 阶段 4/5:执行侧 V2 与全链路(待办清单)
> 状态:**待办**。阶段 3(编译器语言层 V2)已完成;本文记录阶段 4(isa+vm 执行侧 V2
> 与阶段 5(全链路收尾)的待办项,供后续执行。
## 阶段 4:isa 重构 + vm 同步(执行侧 V2)
### 4.1 isa 重构(4 文件 + isa_test
| 文件 | 内容 |
|---|---|
| `isa/include/isa/Types.h` | func 宽度/符号表(`kFuncWidth[16]`/`kFuncSigned[16]`)+ 饱和模板(各宽度 + 除法 A:除零返回被除数、MIN/-1 夹界、截断)+ 浮点工具;**删 TypeTag** |
| `isa/include/isa/Op.h` | 前缀分区(11/10/011/010xxx/0010/0011/0001+ 指令表(prefix/op/fmt/func_mode,与 machine.toml 72 条对应)+ **uses_rd/ra/rb 前缀直推**(编译期表) |
| `isa/include/isa/Instr.h` | 变长 `instr_len`(前缀定长)+ 位号 get/set**注意 JC off@55..24**+ enc_* 发射器 |
| `isa/src/Encode.cpp` | encode/decode/disasm(类型后缀;CAL 显示 fb 名) |
| `tests/isa_test.cpp` | V2 重写:饱和边界/前缀定长/位号往返(含 JC off/disasm/uses_* |
### 4.2 vm 同步(Image + Machine + vm_test
| 文件 | 内容 |
|---|---|
| `vm/include/vm/Image.h` + `vm/src/Image.cpp` | 头 128B 解析(version=2/型号 STATOR2/n_slots/values_size/offset_meta/max_stack)、6 段校验(含 meta=0 空段)、槽表访问器(slot_addr)、常量表 8B 无 tag |
| `vm/include/vm/Machine.h` + `vm/src/Machine.cpp` | **变长取指**(instr_len 前缀定长搬字节);译码(前缀分区+func+uses_* 直推);**槽表两级访问**slot→addr→值区按 func 读宽/扩展、写宽);指令语义(MOVE 按 func 宽度搬运高位清 0、LOADK 按 func、算术**各宽度饱和模板+无符号+浮点 IEEE**、CMP 按 func 符号、跳转 off 字节相对下一条、CALL/RET 帧 r0..r7 全宽+ret_pc 字节);**CAL 15 条 fb_id 分派**(含 SR/RS/PWM/RTCRTC 虚拟时钟=周期×dt_ms);**栈方案 C**(预分配 max_stack、帧头 12B、字节+深度 64 双检查、MAIN 帧常驻);LOAD_OFF/STORE_OFF 字段访问;边沿检测 edge_prev_ |
| `tests/vm_test.cpp` | V2 重写:手拼 V2 映像 + **compiler V2 产物执行**13 正例 run_cycle 断言)+ TON/CTU + 确定性 |
### 4.3 executor 适配
- `executor/src/main.cpp`Image 新接口(max_stack 显示等)、I/Q 采样按槽、链 vm+isa(isa 变 V2 后适配)
### 4.4 验证
- `vm_cycles` 恢复绿;`bytecode_executor_version` 恢复
- 端到端:`STCompiler 20_line1 → BytecodeExecutor` 跑周期,Q 符合真值表
## 阶段 5:全链路 + 文档收尾
| # | 待办 |
|---|---|
| 1 | `cases_all` 恢复(20 用例 V2 产物 + V2 vm 执行)——阶段 4 完成后预期自动恢复 |
| 2 | **C5line1 推演重算**V2 产物逐指令推演,补 `stb文件格式.md` 真实拆解) |
| 3 | line1 端到端验证(编译 + 执行 + 回放,Q 对照 EXPECTED.md |
| 4 | **文档收尾**:指令执行.md(V2 指令表/帧栈/CAL 15 条)、扫描周期.md、初步计划.md、README、编译器优化.md 同步 V2 状态 |
| 5 | 新类型语法用例固化(19 类型/进制/浮点/日期字面量用例进 tests/cases |
| 6 | 分支合并(dev_optimize → dev)——用户决定时机 |
+2
View File
@@ -13,6 +13,7 @@ doc/
isa/指令集清单.md
isa/指令编码.md
isa/阶段1规格总览.md
isa/阶段4-执行侧V2.md
compiler/编译管线.md
compiler/STCompiler使用说明.md
compiler/词法.md
@@ -37,6 +38,7 @@ doc/
| [`isa/指令集清单.md`](isa/指令集清单.md) | **V2 草案**:全功能指令清单(10 类 ~55 条,核心/扩展/预留) |
| [`isa/指令编码.md`](isa/指令编码.md) | **V2 定案**RISC-V 式 op + func 编码(前缀长度组 / func 10 组合 / 19 类型映射) |
| [`isa/阶段1规格总览.md`](isa/阶段1规格总览.md) | **V2 阶段 1 主参考**:全部定案速览 + 三份规范文档重写任务 + N5 schema 方向 |
| [`isa/阶段4-执行侧V2.md`](isa/阶段4-执行侧V2.md) | **阶段 4/5 待办**:isa 重构 + vm 同步 + 全链路收尾清单 |
| [`compiler/编译管线.md`](compiler/编译管线.md) | 编译器边界与管线 |
| [`compiler/STCompiler使用说明.md`](compiler/STCompiler使用说明.md) | 构建、用法、工程文件、ST 子集、错误类别 |
| [`compiler/词法.md`](compiler/词法.md) | 12.4 词法:关键字表、token、大小写、TIME 字面量 |