美文网首页
【计算机体系结构】相关

【计算机体系结构】相关

作者: 南方者 | 来源:发表于2020-04-21 01:24 被阅读0次

    1.相关是​导致流水线冲突的主要原因。

    2.相关

            ① 两条指令之间存在某种依赖关系。

            ② 如果两条指令相关,则他们就有可能不能在流水线中重叠执行或者只能部分重叠执行。

    3.三类相关有:数据相关(真数据相关)、名相关、控制相关

    数据相关

    对于两条指令i (前一条指令)和 j (后一条指令),如果在以下条件之一成立,则称指令j和指令i数据相关。

        1. 指令j 使用指令i 产生的结果

        2. 指令j 与指令k 数据相关,指令k 又与指令i数据相关。

    数据相关特点

        1. 具有传递性

        2. 反映了数据的流动关系,即如何从其产生者流动到其消费者

    实例1:

    实例1

    存在数据相关的指令:

        1. L.D与ADD.D的数据相关(L.D指令将访存结果写入F0,而ADD.D需要使用L.D的访存结果)

        2. ADD.D与S.D的数据相关(ADD.D将计算结果写入F4,而S.D需要使用ADD.D的计算结果写入存储器)

        3. S.D与DADDIU的数据相关(前者修改R1的值,后者使用R1的值作为分支条件)

    数据相关检测

        1. 当数据的流动是经过寄存器时,相关的检测比较直观和容易。

        2.当数据的流动是经过存储器时,检测比较复杂。

        (原因:1. 相同形式的地址其有效地址未必相同。2. 形式不同的地址其有效地址可能相同)

    名相关

    名:

        · 指令访问的寄存器或存储器单元的名称(例:R5,0x00001000等)

    名相关:

         ·  如果两条指令使用相同的名,但是它们之间并没有数据流动,则称这两条指令存在名相关。

    细分:

        1. 反相关

        如果指令j 写的名与指令i 读的名相同,则称指令i 和j 发生了反相关。

        实例2:

        2. 输出相关如果指令j 和指令i 写相同的名,则称指令i 和j 发生了输出相关

        实例3: 

    实例2 实例3

    名相关的特点

        1. 名相关的两条指令之间没有数据的传递。

        2. 如果一条指令中的名改变了,并不影响另外一条指令的执行。

    消除名相关的方法:换名技术(通过改变指令中操作数的名来消除名相关)

    例:对于寄存器操作数进行换名称为寄存器换名。

        · 既可以用编译器静态实现,也可以用硬件动态完成。

        实例4:

    实例4

    控制相关

    ①控制相关是指由分支指令引起的相关

    ②为了保证程序应有的执行顺序,必须严格按控制相关确定的顺序执行

    控制相关实例5:( 这里不能把s 移到if 语句的then 之后 )

    实例5

    相关文章

      网友评论

          本文标题:【计算机体系结构】相关

          本文链接:https://www.haomeiwen.com/subject/erkxvhtx.html