学习体系结构的过程中对于各种相关的概念有点模糊,读了一个解释相关概念的阅读量比较高的帖子(感觉写得不太对),更加迷惑了,于是重新翻阅课本,搞清楚了相关这部分的知识。梳理一下,以供参考。
数据相关
让我们先来看一下数据相关的定义
如果以下任一条件成立,则说指令j数据相关于数据i:
①指令i生成的结果可能会被指令j用到
②指令j数据相关于指令k,指令k数据相关于指令i
如果两条指令是数据相关的,那它们必须按顺序执行,不能同时执行或不能完全重叠执行。
名称相关
当两条指令使用相同的寄存器或存储器位置时(称为名称),但与该名称相关的指令之间并没有数据流动时,就会发生名称相关。在指令i和指令j(按照程序顺序,指令i位于指令j之前)之间存在两种类型的名称相关。
①当指令j对指令i读取的寄存器或存储器位置执行写操作时就会在指令i和j之间发生反相关。为了确保i能读取到正确取值,必须保持原来的顺序。
②当指令i和指令j对同一个寄存器或存储器位置执行写操作时,发生输出相关。为了确保最后写入的值与指令j相对应ÿ