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 包含:
- 缺失或无效依赖上下文
- 冲突的顺序假设
- 请求同步形式超出后端能力
- 可复现的错误类别与消息文本