5. 同步

5.1 范围

本章定义 PTO 虚拟 ISA 程序的架构可见同步与顺序语义。

5.2 同步原语

PTO 同步机制包括:

  • 基于事件的依赖链接
  • 通过 TSYNC 建立生产者/消费者顺序点
  • 由架构语义抽象的后端低层同步原语

在 Auto 模式下可使用工具链自动同步;在所有模式下显式同步都保持架构合法。

5.3 TSYNC 契约

TSYNC 用于在操作集合之间建立顺序关系。 一致性实现 MUST 保证:

  • 顺序点之前的操作结果按照内存模型对顺序点之后消费者可见
  • 优化与降层过程保持同步语义
  • 不支持的同步形式以确定性诊断拒绝

5.4 冒险类别

同步需求通常来自:

  • 读后写(RAW)依赖
  • 资源复用时的写后读(WAR)交互
  • 写后写(WAW)顺序约束
  • 跨流水线交接冒险(内存/向量/矩阵域)

后端 MAY 在内部优化冒险处理,但 MUST 保持架构可观察顺序。

5.5 事件与依赖模型

事件模型 MUST 提供确定性依赖关系,以支持:

  • 生产者与消费者指令组之间的流水线交接
  • Tile 与内存资源的安全复用
  • 在等价程序顺序与依赖描述下可复现执行

5.6 Auto 与 Manual 同步职责

  • Auto 模式中,编译器/运行时 SHOULD 自动插入合法同步。
  • Manual 模式中,当依赖无法自然保证时,程序员 MUST 提供显式同步。
  • 工具链 MUST NOT 删除必要的用户显式同步,除非证明存在等价顺序保持。

5.7 诊断要求

同步诊断 SHOULD 包含:

  • 缺失或无效依赖上下文
  • 冲突的顺序假设
  • 请求同步形式超出后端能力
  • 可复现的错误类别与消息文本