数据流图与关键路径
数据流图
程序执行过程中,指令间的数据依赖关系构成了数据流图(Data Flow Graph)。这是一个有向图:
- 节点:操作(指令)
- 边:数据依赖关系
四类寄存器
| 类型 | 说明 | 特点 |
|---|---|---|
| 只读(Read-only) | 只作为源操作数 | 不形成依赖链 |
| 只写(Write-only) | 只作为目标操作数 | 不形成依赖链 |
| 局部(Local) | 循环内定义和使用 | 每次迭代独立 |
| 循环(Loop) | 循环的跨迭代依赖 | 形成关键路径 |
关键路径
关键路径(Critical Path)是数据流图中最长的一条路径,它:
- 包含所有循环寄存器形成的依赖链
- 决定了程序性能的下界
- 对应
优化意义
- 关键路径限制了并行度
- 通过和可以打破关键路径限制
- 目标是让程序接近
相关笔记:
链接到
- 上一个知识点:5.10 功能单元性能
- 下一个知识点:5.12 延迟界限与吞吐量界限