9. 虚拟 ISA 与 AS

9.1 范围与规范术语

本章定义 PTO 虚拟 ISA 语义与 PTO AS/降层链路之间的契约。 MUSTMUST NOTSHOULDMAY 为规范术语。

9.2 分层模型

PTO 采用三层契约:

  1. 虚拟 ISA 层:架构可见语义。
  2. AS 层:用于验证与变换的结构化强类型表示。
  3. 后端降层层:目标相关合法化与代码生成。

后端特化 MUST 保持虚拟 ISA 可观察行为。

9.3 AS 对象模型

一致性 PTO AS 模型 SHOULD 定义:

  • 模块与符号契约
  • 函数/基本块结构及顺序
  • SSA 值拓扑
  • 操作 schema(名称、操作数、结果、属性、副作用)
  • 显式同步与内存副作用

9.4 验证边界

验证分两层:

  1. 结构验证器(IR 层)
  2. MUST 验证操作 schema、元数、类型类别与必需属性。
  3. MUST 与目标无关。

  4. 目标合法性验证器(后端层)

  5. MUST 验证选定后端画像下的 dtype/layout/location/shape 组合。
  6. MUST 对不支持组合输出确定性诊断。

9.5 降层不变量

降层 MUST 保持:

  • 有效区域语义
  • 显式顺序依赖(eventTSYNC、内存顺序点)
  • 架构定义域内的操作语义

降层 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 与字节码往返检查
  • 与逐条指令语义对齐的差分检查