- 1、本文档共88页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 流水线技术
计算机系统结构研究、分析的目的就是为了提高计算机性能,为此,我们采用了许多提高性能的设计思想和技术。流水线技术就是其中最重要的设计思想之一。流水线技术在现代的计算机系统结构中是最普遍的一种技术。
流水线技术的基本思想在冯·诺依曼(Von Neu mann)归纳的第一台存储程序计算机中已经提出。1946年Burks等人提出的运算与输入/输出重叠操作是当今计算机中广泛使用的流水线技术的原始雏形。尽管冯·诺依曼没有在他设计的第一台计算机中实现输入/输出功能,但当磁芯存储器第一次出现,并作为主要存储介质后,流水线设计思想迅速发展。磁芯存储器速度要比寄存器和控制单元中的晶体管器件慢10倍以上。为解决主存与CPU执行速度之间的瓶颈问题,设计者们研究了很多种方法,使CPU执行指令的同时,进行一个或多个并发存储器访问。INTEL8086的两级流水就是为了提高存储器及总线的使用效率而设计的。
60年代,硬件的价格相对较高。流水线技术都用于巨型计算机。IBM的STRETCH和CDC6600是早期大量应用流水线技术的计算机,它们对后来的计算机系统结构设计有深刻的影响。随着半导体技术的发展,到80年代硬件价格大幅度下降,流水线技术在计算机设计中广泛应用,即使在微处理芯片中也是很基本的性能提高措施。INTEL80i86系列的发展是很好的一个例子。这里要注意的是流水线技术在RISC设计思想产生前已有广泛使用,只是在RISC设计思想中流水线技术采用更广泛而已。
流水线处理的基本原理
流水线的作用是提高硬件功能部件的使用率,减少指令的平均执行时间。
流水线的基本概念
4.1.1.1什么是流水线技术
流水线(pipelining)是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。今天,流水线是制造高性能CPU的关键技术。这种技术和并行处理有所区别,流水线是在顺序指令流计算机中实现处理时间重叠的技术,因此流水线的并行处理是指完成一条指令的各个部件在时间上是可以同时重叠工作。因此,各部件同时处理是针对不同指令而言的,各部件分别同时为多条指令的不同部分(step、stage)进行工作,以提高各部件的利用率来提高指令的平均执行速度。
计算机流水线概念就象工厂里的装配生产线,每一个工位完成一个部件的装配,前一个工位装配完,传送带将对象带到下一个工位装配,此过程重复进行直到所有工位都流过,产品就被装配完了。指令流水执行是将指令执行分成几个子过程,每一个子过程对应一个工位,我们称为流水级或流水节拍(pipe stage或pipe segment),这个工位在计算机里就是可以重叠工作的功能部件,称为流水部件。这些不同的功能部件同时重叠处理不同指令的不同子过程。流水级一个连着一个形成一个流水线,一条指令流过所有的流水级,就完成了它的任务。流水线提高执行指令的能力可以用吞吐率(throughput)来表示。计算机流水线的吞吐率是指单位时间内进出流水线的指令数。流水可以提高吞吐率。由于流水级是相互连接在一起,每一级完成都进入下一级,因此,所有的流水级必须在相同的时间内完成各自的子过程,在流水线中指令流动一步是一个机器周期(machine cycle)。因为要保证所有流水级在同一时间内处理完自己的工作,机器周期的长度必须由最慢的流水级部件处理子过程所需的时间决定。RISC技术要求一个机器周期等于一个时钟周期,那么这个时钟周期必须是多相的或多拍的。由时钟的一相或一拍控制一个流水级的移动。
流水线设计最难的任务是确定每个流水级功能部件处理的时间长度,平衡每一流水各处理部件的处理时间。在理想条件下,流水线计算机每条指令的平均执行时间是:
每条指令平均执行时间=
其中流水线深度是指流水线中总的流水级的数目。在这种条件下,流水线计算机的加速比(Speedup)就等于流水级的深度。实际情况中,流水线中的各级功能部件处理子过程的时间之间是很难平衡的。此外,流水线还包含一些其它的开销。因此,流水线上每条指令的平均执行时间并不是理想情况下的最小值,只是一个接近值。
流水线只能减少每条指令的平均执行时间,一条指令的实际执行时间要经过所有流水级,其实际执行时间有可能比未流水时还要长。今后如无特殊说明,在流水线机器上说指令的执行时间,都是指指令的平均执行时间。流水线减少指令平均执行时间可以看作是减少了每条指令的时钟数(CPI),也可以看作是减少了时钟周期时间,这主要取决于我们的着眼点:如果某机器每条指令化费的是一个长时钟的周期,那么流水线减少了时钟的周期时间。
4.1.1.2流水线的描述
流水线处理器的基本结构形式如图4-1所示。其中Si(Stage)为各流水部件,Li
文档评论(0)