3.1 指令级并行:概念与挑战 |
您所在的位置:网站首页 › 名词解释指令性计划的概念 › 3.1 指令级并行:概念与挑战 |
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 |