ZHCUAQ1F july 2015 – april 2023
在上一个示例中指示特定存储器依赖关系的指令如下:
.mdep ld1, st1
这意味着每当 ld1 在位置 X 访问存储器时,在稍后的代码执行时间,st1 也可能访问位置 X。这相当于在这两条指令之间添加了依赖关系。就软件流水线而言,这两条指令必须保持相同的顺序。ld1 引用必须始终出现在 st1 引用之前;甚至不能并行调度指令。
请务必注意指令从 ld1 到 st1 的方向感应。相反,从 st1 到 ld1,并不暗示。就软件流水线而言,虽然每个 ld1 必须在每个 st1 之前发生,但从迭代 n+1 到迭代 n 中的 st1 调度 ld1 仍然是合法的
Example5-14 是软件流水线的图片,其中包含不同列中两个不同迭代的指令。在实际指令序列中,同一水平线上的指令是并行的。