9. 虚拟 ISA 与 AS¶
9.1 范围与规范术语¶
本章定义 PTO 虚拟 ISA 语义与 PTO AS/降层链路之间的契约。
MUST、MUST NOT、SHOULD、MAY 为规范术语。
9.2 分层模型¶
PTO 采用三层契约:
- 虚拟 ISA 层:架构可见语义。
- AS 层:用于验证与变换的结构化强类型表示。
- 后端降层层:目标相关合法化与代码生成。
后端特化 MUST 保持虚拟 ISA 可观察行为。
9.3 AS 对象模型¶
一致性 PTO AS 模型 SHOULD 定义:
- 模块与符号契约
- 函数/基本块结构及顺序
- SSA 值拓扑
- 操作 schema(名称、操作数、结果、属性、副作用)
- 显式同步与内存副作用
9.4 验证边界¶
验证分两层:
- 结构验证器(IR 层)
- MUST 验证操作 schema、元数、类型类别与必需属性。
-
MUST 与目标无关。
-
目标合法性验证器(后端层)
- MUST 验证选定后端画像下的 dtype/layout/location/shape 组合。
- MUST 对不支持组合输出确定性诊断。
9.5 降层不变量¶
降层 MUST 保持:
- 有效区域语义
- 显式顺序依赖(
event、TSYNC、内存顺序点) - 架构定义域内的操作语义
降层 MUST NOT 将实现定义行为静默改写为架构定义行为。
9.6 源同步规则¶
AS 契约 MUST 与以下来源同步:
docs/isa/*_zh.md(语义意图)include/pto/common/pto_instr.hpp(API 形态)docs/assembly/PTO-AS_zh.md(文本汇编形态)
9.7 兼容策略¶
- SHOULD 优先采用增量 AS 演进。
- 破坏性 AS 契约变更 MUST 包含版本与迁移说明。
- 未知必需字段 MUST 验证失败。
- 已弃用结构 SHOULD 至少在一个兼容窗口内可解析。
9.8 诊断要求¶
AS/验证诊断 MUST 包含:
- 操作标识与定位上下文
- 期望与实际契约维度差异
- 适于 CI 回归的确定性错误类别
9.9 最小一致性场景¶
一致性验证 SHOULD 包含:
- 结构验证器合法/非法样例测试
- 按后端画像划分的合法性通过/失败矩阵
- PTO-AS 与字节码往返检查
- 与逐条指令语义对齐的差分检查