arch-3

来源:互联网 发布:改革开放纪录片 知乎 编辑:程序博客网 时间:2024/05/21 20:22



指令级并行


相关:

    1. 数据相关:指令i、j。i写寄存器,j用到i产生的值。

    2. 名字相关:指令i和j之间没有数据依赖,但是用到相同的寄存器。

               反相关:i -> j,指令i读reg,j写reg。

               输出相关:i -> j,指令i和j都写reg。

               由于没有数据依赖,通过寄存器重命名,可以消除名字相关。

    

    相关性会导致数据冲突。为了指令的正确执行,CPU在调度指令时,要避免数据冲突。

    数据冲突:

        数据相关 导致read after write冲突

        输出相关 导致write after write冲突

        反相关     导致write after read冲突


    3. 控制相关


编译技术:

    循环展开

    软件流水

    全局指令调度

    断言执行(变控制依赖为数据依赖)