3. 状态与类型

3.1 范围

本章定义 PTO 虚拟 ISA 操作可见的架构状态模型以及类型契约。

3.2 架构状态模型

架构层抽象以下概念状态:

  • Tile 值及其元数据(包含有效区域元数据)
  • 标量值与立即数属性
  • 全局内存视图与地址
  • 同步/事件相关的可见顺序状态

后端内部临时状态不在本章范围内,除非其影响架构可观察行为。

3.3 类型类别

PTO 虚拟 ISA 的类型类别包括:

  • Tile 类值(!pto.tile<...>
  • 内存/全局视图(!pto.memref<...> 或等价类)
  • 标量整型/浮点/index 类
  • 用于同步依赖的事件/token 类

每个指令族 MUST 定义每个操作数/结果位置可接受的类型类别。

3.4 Tile 合法性维度

Tile 合法性受以下维度约束:

  • 元素类型(dtype
  • 形状与有效区域兼容性
  • 位置-意图角色(Mat/Left/Right/Acc/Bias/Scale 等)
  • 布局与对齐约束(后端支持子集)

虚拟 ISA 定义合法性接口,具体支持集合由后端画像定义。

3.5 有效区域语义

有效区域是架构一等语义:

  • 语义定义仅作用于声明的有效域索引
  • 有效域之外值在未明确说明时为未指定
  • 多输入操作 MUST 定义域兼容规则

标准记号使用 RvCv 表示有效行/有效列。

3.6 属性契约

指令属性(例如比较模式、舍入模式、变换模式)MUST 定义:

  • 类型与取值域约束
  • 默认行为(如存在)
  • 对语义与合法性检查的影响
  • 无效取值的诊断要求

3.7 诊断要求

类型/状态验证诊断 SHOULD 包含:

  • 操作数位置
  • 期望类型类别与实际类型类别
  • 相关合法性维度(dtype/layout/location/shape)
  • 面向 CI 稳定性的确定性错误标识