指令级并行及其动态开发

指令级并行及其动态开发

ID:30152297

大小:1.22 MB

页数:99页

时间:2018-12-27

指令级并行及其动态开发_第1页
指令级并行及其动态开发_第2页
指令级并行及其动态开发_第3页
指令级并行及其动态开发_第4页
指令级并行及其动态开发_第5页
资源描述:

《指令级并行及其动态开发》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第三章指令级并行及其动态开发“谁第一?”“美国。”“谁第二?”“没有第二,先生”对话发生于观看帆船竞赛的两个人之间,这个后来叫做“美国杯”的帆船竞赛每几年就要举行一次。灵感来自JohnCocke命名的,由IBM公司研制的称为“美国”的处理器,这个处理机就是第一个采用超标量结构的RS/6000系列微处理器。3.1指令级并行:概念及挑战1985年以来,包括那些嵌入式处理器在内的所有处理器,都使用流水线方式使指令的执行可以重叠进行以提高效率。这种潜在的重叠被称为指令级并行(ILP),因为在这里指令可以并行处理。在本章和下一章中,

2、我们将深入探讨扩展并行思想的一系列技术,这些技术主要表现在增加指令之间的并行度。本章的内容比附录A的内容更加深入,如果你们对附录A中的内容还不够熟悉的话,请先复习其中的内容。在本章的开始部分,先介绍由数据冒险和控制冒险所带来的一些限制,然后进入我们的主题,学习如何才能通过提高处理器的并行性以最终提高处理器的运算能力。这一小节将介绍很多这两章要用到的基本概念,本章也有一些基础知识并不建立在这一小节上,但这些概念对本章的其他小节和第四章来说也是十分重要的。提高指令级并行度有两种不同的方法,本章主要介绍动态的和以硬件为主的技术,

3、而静态的和更依赖于软件的一些技术将在下一章中介绍。实际上,这种动态和静态,以硬件为主和以软件为主的划分并不是绝对的,其中的一种技术常常对另一种技术也有用。不过,为了清楚起见,我们还是把他们分开来研究,并在适当的地方会指出那些方法是可以借鉴过来的。以硬件为主的动态技术被用在以桌面电脑和服务器为主的许多处理器中,包括PentiumⅢ和Pentium4,Athlon,MIPSR10000/12000,SunUltraSPARCⅢ,PowerPC603、G3、G4和Alpha21264等等。而我们下一章所关注的静态的以软件为主的相

4、关技术则被更多地用在嵌入式处理器中,虽然一些桌面和服务器产品,如IA-64体系和Intel的Itanium也使用了很多这种静态技术。本章我们将分别从程序和处理器两个方面来讨论它们对指令级并行性的限制。我们还将研究程序结构和硬件结构之间的一些相当重要的映射关系,这对我们理解和掌握某些问题是至关重要的,这些问题包括一个程序实体是否会影响,和在什么情况下会影响处理器的性能。4-99我们知道,流水线机器的CPI(执行每条指令所用的时钟周期数)等于基本CPI加上各种暂停所使用周期数的和:流水线CPI=理想流水线CPI+结构暂停+写读

5、暂停+读写暂停+写写暂停+控制暂停其中,理想流水线CPI是指可实现的最大指令流量。减少等式右边的每一项,可以减少总的流水线CPI,从而增加IPC(每个时钟周期的指令流量)。在本章中将看到,我们要介绍的增加IPC的技术使得处理结构、数据和控制方面的问题如何显得更为重要。上面的等式描述了本章中将要讨论的用以减少流水线实际CPI的各种技术。图3.1表示一些将要讨论的技术及它们对CPI的影响。技术减少等式右边的某项章节继续执行和绕行潜在的数据暂停A.2延迟分支和简单分支调度控制暂停A.2基本动态调度(记分板)由真相关性产生的数据暂

6、停A.8重命名的动态调度数据暂停、反依相关和输出相关产生的暂停3.2动态分支预测控制暂停3.4每个周期发射多条指令理想CPI3.6预测所有数据暂停和控制暂停3.7动态内存非二义化涉及内存的写读暂停3.2,3.7循环展开控制暂停4.1基本编译器流水线调度写读暂停A.2,4.1编译器进行相关性分析理想CPI和数据暂停4.4软件流水和路径调度理想CPI和数据暂停4.3编译器预测理想CPI和数据暂停4.4图3.1附录A、第三章和第四章将要讨论的主要技术及影响到的上面CPI等式中的相关项目。其中,数据暂停是指各种各样的数据冒险造成的

7、暂停,就是写读(先写后读)暂停、读写(先读后写)暂停或写写(写后再写)暂停。在详细讨论上述技术以前,需对这些技术所涉及到的概念加以解释说明,它们决定了指令级并行性可以被开发的程度。3.1.1指令级并行性在本章和下一章中讨论的所有技术都是用于开发指令序列中的并行性的。从上面可以看出,这种类型的并行性就叫做指令级并行性或ILP(instruction-levelparallelism)。在一个基本块(除了入口和出口之外没有其它分支的线性指令序列)中可开发的并行性是很小的。例如,在第三章中看到的定点程序中平均动态转移频率在15%

8、到20%之间,即每4条到7条指令中间将执行一条分支指令。由于这些指令很可能是相互关联的,所以我们在一个基本块中可以开发的指令重叠数将会远小于7。为了能够取得更大性能的提高,就必须开发多个基本块之间的指令级并行性。4-99提高指令级并行性的最简单也最常用的方法,是一个循环中的不同循环体并行执行。这类并行即

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。