3.1 指令级并行:概念与挑战

您所在的位置:网站首页 名词解释指令性计划的概念 3.1 指令级并行:概念与挑战

3.1 指令级并行:概念与挑战

2024-05-22 23:05| 来源: 网络整理| 查看: 265

3.1 指令级并行:概念与挑战 指令集并行ILP的定义

处理器使用流水线来重叠指令的执行并提高性能,指令之间的这种潜在重叠被称为指令级并行,因为指令可以并行计算。

利用ILP有两种主流方法

1.依靠硬件来帮助动态地发现和利用并行性的方法(桌面端CPU常用,例如酷睿系列);

2. 依靠软件技术在编译时静态地发现并行性的方法(移动端追求能效,设计师利用较低水平的ILP,不过未来如Cortex-A9正在使用动态方法)。

数据依赖

数据依赖性会限制我们可以利用的指令级并行性的数量,本章的主要重点是克服这些限制。可以通过两种不同的方式克服依赖关系:(1)维护依赖关系,但避免危险;(2)通过转换代码消除依赖关系。对代码进行调度是在不改变依赖关系的情况下避免危险的主要方法,这种调度可以由编译器和硬件完成。

数据依赖:指令i产生的结果被指令j使用(真数据依赖)

名字依赖:当两个指令使用相同的寄存器或内存位置时必须保证顺序。(1)指令 i 读后指令 j 写(反依赖)(2)指令 i 和 j 先后写(输出依赖)

数据危险

只要指令之间存在依赖关系且足够接近,就会导致执行期间重叠改变访问顺序,就会存在危险。

写后读RAW:真数据依赖

写后写WAW:输出依赖

读后写WAR:反依赖

控制依赖

决定指令 i 相对分支指令的顺序,以便正确执行。通常施加两条约束:

受分支影响的指令不能放在控制指令之前,否则无法对其进行控制;

不受分支影响的指令不能放在控制指令之后,否则它的执行会受到控制;

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3