流水线与超标量.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
流水线与超标量

流水线 提高单个模块速度指标的一个重要方法是在模块内部采用流水线机制。 流水线是什么? 是针对串行操作机制提出来的一种改进体系结构,目的在于提高模块的速度指标。 原理: 把模块的原子操作分为多个步骤(阶段),每个步骤分别由一个子模块来完成。 各个子模块同时运行,从而使多个原子操作在时间上形成交错重叠,提高模块的速度指标。 本质: 同时执行的各个原子操作在同一时刻处于不同步骤,由不同子模块处理。 多个原子操作的执行在时间上是交错重叠的,在空间上是分步骤隔离的,各子模块是被原子操作分时复用的。 产生流水线这种体系结构的原因: (1)相对于串行操作机制,提高模块内部操作的并行程度,从而提高模块的速度指标。 (2)不改变模块间的关联,根据加速比的计算公式可知,这样的改进同时能够提升整个系统的速度指标。 在系统的核心模块内采用流水线机制对系统速度的提高起着重要的作用。 以CPU为例说明流水线机制的原理。 提高单机性能(速度)的一个重要方法是流水线,即同一时刻中处理机内同时运行多条指令,同时运行的多条指令处于不同的处理步骤,分别位于不同的指令处理部件(CPU子模块)。 超标量 提高模块速度指标,且不改变模块外部关联的另一种方法为成倍增加执行原子操作所需的各种子模块,从而成倍提高模块内部的并行操作程度、速度。 这种体系结构经常出现在现代的标量处理机中,是对传统标量处理机的改进,所以常成为超标量体系结构。 这种体系结构也是针对串行机制提出的改进结构,与流水线不同,理想的超标量结构同时执行的多个原子操作处于相同的步骤,在时间上完全重叠,在空间上完全隔离,没有复用关系。 在实际的系统设计中,流水线与超标量两种体系结构经常结合使用,目的在于把模块的内部处理速度推至极限,同时保持良好的性能价格比。 如果连续执行一段程序,计算机对前后相邻指令的执行过程可以有两种不同的选择。 ? 最简单的是采用顺序执行方式,即等前一条指令执行完毕,紧接着执行下一条指令,如图2-2(a)所示。 ? 另一种方式是让前后连续的指令在处理机内以重叠的方式执行,图2-2的(b)和(c)分别表示了两种不同程度的重叠。 如果三个阶段所需时间t相等,N条指令顺序执行的时间为 T=3Nt. 一次重叠执行的时间 T=(3+2(N-1))t=(1+2N)t. 二次重叠执行的时间为 T=(3+(N-1))t=(2+N)t. 指令重叠执行的效果:成倍提高CPI指标(t看作时钟周期) 2.1.2 先行控制原理 引入流水线结构,目的在于消除CPU内部人为的顺序(串行)操作瓶颈,提高速度指标。 但是引入流水线之后,产生了一些新的瓶颈,这些瓶颈在顺序结构中是没有的。 为了避免“得不偿失”,引入先行控制技术,将这些新瓶颈的一部分缓解或消除。 1.实现指令重叠执行必须解决的问题 (1)存储器访问冲突 前提:顺序执行时,CPU中所有部件的操作都由当前正执行的唯一的一条指令决定,各部件被当前指令按顺序使用。 当前指令未执行完毕之前,没有任何后续指令使用CPU中任何部件。 结论:任何时刻CPU中至多只有一个部件访问总线或存储器,不会因部件争用总线而形成暂时瓶颈。 前提:采用重叠方式执行指令时,需要将统一的指令控制器分解成三个控制器,即存储控制器、指令控制器(指控)和运算控制器,分别控制存储器存取、指令分析和指令执行三个不同的步骤。 三个部件完全同时独立地运行,并且保证每个部件只运行进入本部件的指令中所规定的操作。 取指令时:读下一条指令; 分析指令时:可能需要从存储器中读取源操作数; 执行指令时:可能要求将运算结果写回存储器。 结论:处理机中三个独立的部件正在执行的是三条不同的指令,它们可能同时提出对存储器读写的请求,从而发生存储器访问冲突,形成暂时瓶颈。 (2)部件间速度差异 实际的CPU中,各个部件的操作速度不可能完全一致,如果部件之间存在速度差异,则存在部件之间的等待,也就产生了暂时瓶颈。 图2-3形象地表示了这种情况所造成的影响。 上述两个问题:总线争用(或存储器争用)、部件间的速度差异,它们有着共同的特征。 总线争用:总线成为系统运转的瓶颈。 部件间速度差异:慢速部件成为快速部件的瓶颈。 解决问题的关键:使用某种技术从一定程度上减缓或消除CPU内外的瓶颈,从而进一步提高流水线的速度。(先行控制技术产生的原因) 当缓冲栈尚未满时,前置部件可以不管后置部件的工作进展,不断地自主运行将结果注入缓冲栈中。 而后置部件则每次都向栈中取数,只要栈中不空,后置部件就不会发生等待的现象。 缓冲栈好象弹簧一样,可以拉紧,也可以放松,从而达到前后两个部件能以自已最佳的速度运行,所以缓冲栈有时也称作弹性寄存器。 使用

文档评论(0)

zhuwenmeijiale + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档