ImageVerifierCode 换一换
格式:PPTX , 页数:263 ,大小:1.12MB ,
资源ID:953421      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/953421.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(计算机系统结构--陈智勇-第4章--流水线计算机设计技术.pptx)为本站上传会员【可****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

计算机系统结构--陈智勇-第4章--流水线计算机设计技术.pptx

1、第第4 4章章 流水线计算机设计技术流水线计算机设计技术 4.8 相关处理和控制机构相关处理和控制机构 4.9 先进的流水技术先进的流水技术动态调度动态调度4.10 超标量处理机和超标量处理机和VLIW体系结构体系结构4.11 超流水处理机超流水处理机 4.12 超标量超流水处理机超标量超流水处理机 习题习题4 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 4.1 重叠解释方式和相关处理重叠解释方式和相关处理4.1.1重叠解释方式的提出解释一条机器指令的那些微操作可分解成取指令、分析指令与执行指令,从时间上看如图4.1所示。第第4 4章章 流水线计算机设计技术流水线计算机设计技术

2、第第4 4章章 流水线计算机设计技术流水线计算机设计技术 取指令指的是按指令计数器的内容访问主存,取出该指令送到指令寄存器。指令的分析指的是对指令的操作码进行译码,按寻址方式和地址字段形成操作数的有效地址,并用此有效地址去取操作数(可能访主存,也可能访寄存器),还要为准备取下一条指令提前形成下一条指令的地址等。指令的执行则指的是对操作数进行运算、处理,或存储运算结果(可能要访主存)。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 指令的解释方式可以有顺序解释方式和重叠解释方式。指令的顺序解释方式是指各条机器指令之间顺序串行地执

3、行,执行完一条指令后才取出下一条指令来执行,而且每条机器指令内部的各条微指令也是顺序串行地执行,如图4.2所示。顺序执行的优点是控制简单。由于下一条指令的地址是在指令解释过程的末尾形成的,因此无论是由指令计数器加1,还是由转移指令把转移地址送到指令地址计数器,形成下一条指令的地址,由本条指令转入下一条指令的时间关系都是一样的。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 但由于是顺序执行的,上一步操作未完成,下一步操作就不能开始。因此,带来的主要缺点是速度慢,机器各部件的利用率很低。例如,在取指令和取操作数期间,主存储器是忙碌的,但是运算器处于空闲状态。在对操作数执行运算期间,运算

4、器是忙碌的,而主存却是空闲的。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 指令的另一种解释方式是重叠解释方式,在解释第k条指令的操作完成之前,就可开始解释第k+1条指令。显然,重叠解释并不能加快一条指令的实现,但能加快相邻两条以至一段程序的解释。图4.3给出了指令的重叠解释的方式。至于中央处理机、存储器和输入输出设备之间的重叠操作,也是一种重叠方式,是实现I/O指令与其它指令的重叠。在一般的机器上,操作数和指令是混合存贮于同一主存内的,而且主存同时只能访问一个存贮单元。从图4.3可以看出,重叠解释方式需要“取指k+1”与“分析k”在时间上重叠,显然,对于一般机器,取指需要访问主存

5、分析中取操作数也可能访问主存。如果不在硬件上花费一定的代价解决好访主存的冲突,就无法实现“取指k+1”与“分析k”的重叠。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 为实现“取指k+1”与“分析k”的重叠对计算机组成有如下要求:(1)让操作数和指令分别存放于两个独立编址且可同时访问的存储器中;这还有利于实现指令的保护,但这增加了主存总线控制的复杂性及软件设计的麻烦。(2)仍然维持指令和操作数混存,但采用多体交叉主存结构;只要第k条指令的操作数与第k+1条指令不在同一个存储体内,仍可在一个主存周期(或稍许多一些时间)内取得

6、这两者,从而实现“分析k”与“取指k+1”重叠。当然,若这两者正好共存于一个体时就无法重叠。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 (3)增设指令缓冲寄存器。设置指令缓冲寄存器就可以乘主存有空时,预先把下一条或下几条指令取出来存放在指令缓冲寄存器中。最多可预取多少条指令取决于指令缓冲寄存器的容量。这样,“分析k”就能与“取指k+1”重叠,因为只是前者需访主存取操作数,而后者是从指缓取第k+1条指令。只要每次取指都可从指缓中得到,则“取指k+1”的时间很短,完全可以把这个微操作合并到“分析k+1”内,从而由原来的取指、分析、执行重叠演变成只需“执行k”与“分析k+1”的一次重叠

7、如图4.4所示。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 4.1.2一次重叠工作方式从图4.4可以看出,为了实现“执行k”与“分析k+1”重叠还必须在硬件上保证有独立的指令分析部件和指令执行部件。在实际应用中,“分析”和“执行”所需的时间常常不完全一样,在设计时,应解决好控制上的同步,保证任何时候都只是“执行k”与“分析k+1”一次重叠。即任何时候,指令分析部件和指令执行部件都只有相邻两条指令的解释。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 “一次重叠”解释方式的优点为省硬件,机器内只需要一套指令分析部

8、件和指令执行部件,也有助于简化控制。但缺点是,在实际情况中,“分析”和“执行”所需的时间常常不完全一样,设计时应适当安排好每条指令的微操作,使“分析”和“执行”所需的时间尽可能等长,才能使重叠方式有较高的效率。如果采用多次重叠,不仅要设置多套指令分析和指令执行部件,控制还相当复杂。所以,重叠方式的机器大多数都采用一次重叠,若仍达不到速度要求时,宁可采用后面要介绍的流水方式。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 在实际设计中,为了实现“分析k+1”和“执行k”的一次重叠,还需要在硬件控制上解决许多问题。先看转移指令的处理问题。例如:第k条指令是按其执行结果进行转移的条件转移指

9、令,当条件转移不成功时,重叠操作是有效的;但当遇到条件转移,并且成功转移到第m条指令时,这时与“执行k”重叠的“分析k+1”的操作是无效的,重叠方式实际上变成了顺序方式,因为在“执行k”的末尾才形成下一条要执行指令的地址,显然,下一条指令应该执行第m条指令,第第4 4章章 流水线计算机设计技术流水线计算机设计技术 即当第m条指令在指缓内时,应该执行的是“分析m”,若不在,应该执行的是“取指m”,并且应该是在“执行k”结果出来之后。而“分析k+1”(包含了取指k+1)取的是第k+1条指令的内容,这就会出错。图4.5给出了执行条件转移时指令重叠的情况。第第4 4章章 流水线计算机设计技术流水线计算

10、机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 为了避免出错,第k条和第k+1条指令就不能同时解释,因此采用重叠方式的机器中应尽量减少程序中条件转移指令的使用,否则将会使重叠效率显著下降。如果出现条件转移指令,可以采用其它技术,如延迟转移技术,使重叠效率不下降。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 控制上还要解决好邻近指令之间有可能出现的某种关联。当一段程序的邻近指令之间出现某种关联后,为了避免出错而使它们不能同时被解释的现象称之为“相关”。相关可以是指令相关,也可以是操作数相关。指令相关是指第k条指令执行的结果会影响第k+1条指令内容而产生的关联,造

11、成第k条指令和第k+1条指令不能同时解释。例如,在采用VonNeumann型机器上,可通过执行第k条指令的办法来形成第k+1条指令:k:存,通用寄存器号,k+1功能:(通用寄存器)k+1k+1:第第4 4章章 流水线计算机设计技术流水线计算机设计技术 由于在“执行k”的末尾才形成第k+1条指令,按照一次重叠的时间关系,“分析k+1”所分析的是早已取进指缓的第k+1条指令的旧内容,这就会出错,这种情况就是我们所说的指令相关。特别是当指令缓冲器可缓冲存放n条指令情况下,执行到第k条指令时,与已预取进指缓的第k+1到第k+n条指令都有可能发生指令相关。指令缓冲寄存器的容量愈大,或者说指令预处理能力愈

12、强的机器发生指令相关的概率就愈高。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 操作数相关是指在第k条指令和第k+1条指令的数据地址之间发生关联,而造成第k条指令和第k+1条指令不能同时解释的现象。例如:第k+1条指令的源操作数地址i正好是第k条指令存放运算结果的地址。在顺序解释时,由于先由第k条指令把运算结果存入主存i单元,而后再由第k+1条指令从i单元取出,当然不会出错。但在“分析k+1”与“执行k”重叠解释时,“分析k+1”从i单元取出的源操作数内容成了“执行k”存入运算结果前的原始内容,而不是第k条指令的运算结果,这必然会出错。操作数相关不只是会发生在主存空间,还会发生在通

13、用寄存器空间。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 4.1.3相关处理1.指令相关的处理对于有指令缓冲器的机器,由于指令是提前由主存取进指缓的,为了判定是否发生了指令相关,需要进行相当复杂的对多条指令地址与多条指令的运算结果地址比较,看是否有相同的。如果发现有指令相关,还要让已预取进指缓中的相关指令作废,并重取、更换指缓中的内容,这样做不仅操作控制复杂,而且增加了辅助操作时间,特别是要花一个主存周期去访存重新取指,必然会带来时间损失。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 因为可能被修改的指令是以“执行”指令的操作数形式出现,并存于第k+1条指令的物理地址

14、而下一条指令又是从该地址取出来的,而指令代码本身就是数据,因此指令相关实际上就转化成了操作数相关,统一用处理操作数相关的方法来解决,从而在程序中就不会发生指令相关了。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 实际上操作数可能存放于主存,也可能存放于通用寄存器中,因此就有主存空间数相关和通用寄存器组数相关。一般的机器中,通用寄存器还可以存放变址值,而变址值是在“分析”的前半时间为形成操作数地址时所要用到的,它必须在分析时间段的一开始就要访问变址寄存器。这样,若在第k条指令“执行”的末尾形成的结果正好是第k+1条指令“分析”时所要用的变址值时,还会发生通用寄存器组的变址值相关。第

15、第4 4章章 流水线计算机设计技术流水线计算机设计技术 2.主存空间数相关的处理主存空间数相关是指相邻两条指令之间出现要求对主存同一单元先写入而后再读出的关联。如果让“执行k”与“分析k+1”在时间上重叠,就会使“分析k+1”读出的操作数不是程序要求的第k条指令执行完后应当写入的结果,而造成错误。如图4.6所示。主存空间数相关的处理方法通常采用推后第k+1条指令的读操作数。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 具体方法是由存控通过给读数、写数申请安排不同的访存优先级来解决。通常很多机器都将访存优先级依次定为通道申请、

16、写数、读数、取指令。这样,当第k条和k+1条指令出现主存空间数相关时,“执行k”与“分析k+1”同时对主存同一个单元发出访存申请,但因“写数”级别高于“读数”,存控先处理“执行k”的写数,“分析k+1”的读数申请必然只能推迟到下一个主存周期才有可能被处理,从而就自动实现了推后“分析k+1”的读,不用处理机另外采取措施。如图4.7所示。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 3.通用寄存器组相关的处理通用寄存器既可存放操作数、运算结果,也可以存放变址值,但是在指令解释过程中,使用通用寄存器作为不同用途所需的有关微操作时间

17、要求是不相同的。存放于通用寄存器中的基址或变址值一般总是在“分析”周期的前半段就要取出来用;而操作数则是在“分析”周期的后半段取出,到“执行”周期的前半段才用得上;运算结果却是在“执行”周期的末尾才形成,并送入通用寄存器中。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 图4.8给出了它们之间的时间关系。正是因为它们的时间要求不同,所以通用寄存器数相关和通用寄存器变址值相关的情况及其处理方法不相同。设机器的基本指令格式如图4.9所示。L1、L3分别指示存放第一操作数和运算结果的通用寄存器号,B2为形成第二操作数地址的基址值所在通用寄存器号,d2为相对位移量。第第4 4章章 流水线计算

18、机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 设机器的基本指令格式如图4.9所示。L1、L3分别指示存放第一操作数和运算结果的通用寄存器号,B2为形成第二操作数地址的基址值所在通用寄存器号,d2为相对位移量。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 (1)通用寄存器组数相关的情况和处理办法假设某台机器正常情况下,“分析”和“执行”的周期与主存周期一样都是4拍。有些指令需要从通用寄存器组中取两个操作数(L1)和(L2),若通用寄存器组做在一个片子上,每次只能读出一个数,则在“分析k+1”期间,操作数(L1)和(L2)就需要在不同拍时取得

19、分别送入运算器的B和C寄存器,以便在“执行k+1”时供运算用。这样“执行k”与“分析k+1”间通用寄存器组的时间关系如图4.10所示。当程序执行过程中出 现 L1(k+1)=L3(k)时 就 发 生 了 L1相 关;而 当L2(k+1)=L3(k)时就发生了L2相关。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 当程序执行过程中出现要解决通用寄存器组数相关的情况,主要有以下两种方法:与前述处理主存空间数相关的一样,推后“分析k+1”的读(寄存器的内容)。具体有两种不同的方法:可以把“分析k+1”推后到“执行k”结束时开始,也可以只要推后到“执行k”把结果送入L3,然后再由“分析k

20、1”在取(L1)或(L2)时能取到就可以了。采用前一种推后的办法,只要发生数相关就使一次重叠变成了完全的顺序串行,速度明显下降;后一种推后的方法则是发生数相关时,相邻两条指令的解释仍有部分重叠,可以减少速度损失,但控制要稍微复杂一些。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 这两种方法都是靠推后读,牺牲速度来避免相关时出错。那么能否在不降低速度的情况下仍然能保证数相关时的正确处理呢?在运算器的输出到B、C输入之间增设一条“相关专用通路”,如图4.11所示,则在发生L1或L2相关时,让相关专用通路接通,就可以在“执行k”

21、时将运算结果送入通用寄存器以在完成其应有的功能的同时,直接将运算结果回送到B或C寄存器,从而大大缩短了其间的传送时间,并能保证当“执行k+1”需要用此操作数时,它已在B或C寄存器中准备好了。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 也就是说,尽管原先将通用寄存器的旧内容经数据总线分别在“分析k+1”的第3拍或第4拍末送入了操作数寄存器B或C中,但之后经相关专用通路在“执行k+1”真正用它之前,操作数寄存器B或C重新获得第k条指令送来的新结果。这样,既保证了相关时不用推后“分析k+1”,重叠效率不下降,又可以保证指令重叠解释时数据不出错。第第4 4章章 流水线计算机设计技术流水线

22、计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 推后“分析k+1”和设置“相关专用通路”是解决重叠方式相关处理的两种基本方法。两者的主要区别为前者是以降低速度为代价,使设备基本上不增加,后者是以增加设备为代价,使重叠效率不下降。“相关专用通路”法照样可用于解决前述的主存空间数相关,但由于主存空间数相关的出现概率比通用寄存器组数相关的出现概率低得多,所以,主存数相关不采用“相关专用通路”法,而只采用推后读来解决。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 (2)通用寄存器组基址值或变址值相关的情况及其处理办法在采用基址寻址时,操作数的有效地址为:(Xd)+

23、B2)(B20000)+d2,由分析器内的地址加法器形成。由于通常情况下,“分析”周期等于主存周期,所以,从时间关系上要求在“分析”周期的前半段,就能由通用寄存器输出总线取得(B2),送入地址加法器。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 由于运算结果是在“分析”周期的末尾才送入通用寄存器组的,它当然不能立即出现在通用寄存器输出总线上。也就是说,在“执行k”得到的、送入通用寄存器的运算结果来不及作为“分析k+2”的基址值用,更不用说作为“执行k+1”的基址值用。因此,虽然是一次重叠,但基址值相关(B相关)就不止会出现一次相关,还会出现二次相关。即当出现B(k+1)=L3(k

24、)时,称为发生了B一次相关;而当出现B(k+2)=L3(k)时,称为发生了B二次相关。这里所谓的一次和二次指的是相关指令相隔的指令条数。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 对于基址值相关,其解决办法同数相关的一样,也可有推后分析(读基址寄存器的内容)和设置相关专用通路两种。变址值相关与基址值相关类似,处理方法也一样。推后分析的方法。由图4.12可看出,对于B二次相关,只需推后“分析k+2”的始点,使“执行k”送入通用寄存器的运算结果,在“分析k+2”开始时已出现于通用寄存器的输出总线上,如图4.13(a)所示。而对

25、B一次相关,则除此之外,还需要推后一个“执行”周期,如图4.13(b)所示。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 设置相关专用通路的方法。由于B一次、二次相关的概率并不很低,增设B相关专用通路还是值得的,其办法如图4.14所示。这样,在B二次相关时,就可把“执行k”得到的运算结果,在送入通用寄存器组的同时,经“B相关专用通路”直接送到“访存操作数地址”形成机构,由于缩短了其间的传送延迟,使得不必推后“分析k+2”,就能保证使用正确的基址值。同理,在B一次相关时,只需使“分析k+1”推后到接着“执行k”进行就可以了。第

26、第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 综上所述,实现在时间上的重叠,(1)需要付出空间代价;如增设数据总线和控制总线、指令缓冲器、地址加法器、相关专用通路等,需将指令分析部件和指令执行部件分开、单独设置,需将主存采用多体交叉存取等等。(2)要处理好这二条指令之间可能存在的关联。如转移的处理以及指令相关、主存空间数相关、通用寄存器组的数相关和在址/变址值相关等的处理。相关处理的办法无非是“推后读”和设置相关专用通路两种,应当根据Huffman概念在成本和效率上加以权衡选用。(3)还应合理安排调配好机器每条指令的微操作,使

27、分析”和“执行”所需的时间尽可能匹配,以提高重叠的效率。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 4.2 流水线的工作原理流水线的工作原理 如果CPU用一次重叠方式解释指令仍达不到所要求的速度性能时,可以考虑同时解释多条指令。其中最常用的是流水方式,它是通过并行硬件来改善性能的最普通的手段。在60年代,硬件的价格相对较高,流水线计算机都是巨型机。IBM的STRETCH和CDC的6600就是60年代早期大量应用流水线的两种机器,它们对后来巨型机的结构产生了深刻的影响。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 到了80年代,技术的进步使硬件价格大幅度下降,使流水线

28、技术能在各种类型的计算机上得到应用。例如,Intel8086微处理机虽然价格十分低廉,也能在芯片执行运算的同时应用流水线技术访问存储器。而发展到Pentium系列CPU产品的时候,更是一个高级的超标量处理器。可以说,计算机发展到现在,流水技术已经成为各类机器普遍采用的、用来改善性能的基本手段。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 计算机的流水技术是如何工作的呢?流水技术的基本思想在冯诺依曼的第一台存储程序计算机中已经提出。流水技术早已应用于社会生产与活动的各个方面,并不是计算机所特有的。其主要特点是在一个任务完成以前就可以开始一个新的任务。先看一次重叠的情况,“执行k”与“

29、分析k+1”的一次重叠是把一条指令的解释过程分解成“分析”与“执行”两个子过程,分别在独立的分析部件和执行部件上进行。因此,不必等一条指令的“分析”、“执行”子过程都完成才送入下条指令,而是分析部件在完成一条指令的“分析”子过程时,就可开始下一条指令的“分析”子过程。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 若“分析”与“执行”子过程都需要t的时间,如图4.15所示,就一条指令的解释来看,需要2t才能完成,但从机器的输出来看,每隔t就能完成一条指令的解释。也就意味着,一次重叠解释比起指令的串行解释,可使机器的最大吞吐率提

30、高一倍。这里的最大吞吐率是指当流水线正常满负荷工作时,单位时间内机器所能处理的最多指令条数或机器能输出的最多结果数。若将指令的分析和执行部分进一步细分成一些子过程,并改进相应硬件的结构,使得子过程分别由独立的子部件实现,形成流水处理的方式,其最大吞吐率可进一步提高,如图4.16的流水处理过程和相应的时-空图。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 如图4.16(a)所示,把“分析”子过程再细分成“取指令”、“指令译码”和“取操作数”3个子过程,并改进运算器的结构以加快其“执行”子过程,这4个子过程分别由独立的子部件实现,让经过各子部件的时间都相同,用t1表示,则指令解释的时间

31、空间关系如图4.16(b)所示。一条指令从进入流水线到结果流出需经历“取指令”、“指令译码”、“取操作数”和“执行”4个子过程,每个子过程需要t1的时间,一条指令的解释需要4t1的时间完成。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 当第1条指令完成“取指令”子过程时,就可以开始第2条指令的“取指令”子过程;当第1条指令完成“指令译码”子过程而进入“取操作数”子过程时,可以开始第2条指令的“指令译码”子过程,同时,第2条指令的“取指令”子过程结束,可以开始第3条指令的“取指令”子过程;依此类推,当第1条指令进入“执行”子过程时,第2条指令可进入“取操作数”子过程,第3条指令可进

32、入“指令译码”子过程,第4条指令可进入“取指令”子过程。显然,图4.16(b)中的流水线可同时解释4条指令。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 如果完成一条指令的时间为T,则对于分解为“分析”和“执行”两个子过程的,其T=2t,而对于分解为“取指令”、“指令译码”、“取操作数”和“执行”4个子过程的,其T=4t1。这样,虽然完成一条指令所需时间仍是T,对于顺序解释方式,每隔T由处理机“流出”一个结果;但对图4.15的重叠方式是每隔T/2(即每隔t)就可由处理机“流出”一个结果,吞吐率提高了一倍;而对图4.16的流水

33、方式是每隔T/4(即每隔t1)“流出”一个结果,即吞吐率比顺序方式提高了三倍。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 流水处理带来的好处是显而易见的,以图4.16为例,若进入流水线的指令数为6,则其从第1条指令流入流水线,到最后一条指令的结果流出,使用的时间是9t1,即9T/4的时间;如果是顺序执行,则需要6T的时间,从一组指令序列的执行速度来看,采用流水解释方式的机器的速度要比顺序解释方式的机器快得多。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 “流水”在概念上与“重叠”没有什么差别,可以看成是“重叠”的进一步引伸。两者的差别只在于“一次重叠”只是把一条指令的

34、解释分解为两个子过程,而“流水”则是分解成更多个子过程。前者同时解释两条指令,后者可同时解释多条指令。例如图4.16的流水处理过程可同时解释4条指令。如果能把一条指令的解释分解成时间相等的N个子过程,则每隔t=T/N就可以处理一条指令。如图4.17所示,这意味着,流水线的最大吞吐率是取决于子过程所经过的时间t,t越小,流水线的最大吞吐率就越高。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 如果流入流水线的指令数为6,则从第1条指令流入,到第6条指令的结果流出,所需要的时间为(Nt+5t)。如果流入流水线的指令数是X,则从第1

35、个指令流入,到第X条指令的结果流出,所需要的时间为(Nt+(X-1)t)。设流水线对一条指令的解释可以细分为n个子过程,每个子过程处理的时间均为t,若有m条指令进入该流水线,则从第1条指令流入,到第m条指令的结果流出所需要的时间定义为Tm,则有:第第4 4章章 流水线计算机设计技术流水线计算机设计技术 从第1条指令流入流水线开始,到最后一个结果流出的这一段时间内,每隔t流出一个结果。应该注意的是,只有当流水线正常满负荷流动时,才会每隔t流出一个结果。流水线从开始启动工作到流出第一个结果,需要经过一段流水线的建立时间,在这段时间里流水线并没流出任何结果。第第4 4章章 流水线计算机设计技术流水线

36、计算机设计技术 在计算机实际的流水线中,各子部件经过的时间会有差异。为解决这些子部件处理速度的差异,一般在子部件之间需设置高速接口锁存器。所有锁存器都受同一时钟信号控制来实现各子部件信息流的同步推进。时钟信号周期不得低于速度最慢子部件的经过时间与锁存器的存取时间之和,还要考虑时钟信号到各锁存器可能存在时延差。所以,子过程的细分,会因锁存器数增多而增大指令或指令流过流水线的时间,这在一定程度上会抵消子过程细分而使流水线吞吐率得到提高的好处。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 4.3 流水线的特点流水线的特点在流水技术中,一般有如下特点:一条流水线通常由多个流水段组成;各个流

37、水段分别承担不同的工作,也可以把这些流水段看作功能部件。如在图4.16(a)中,流水段由四部分组成,依次是“取指令”、“指令译码”、“取操作数”和“执行”4个功能段。在实际机器中,一条流水线的功能部件按完成的任务及采用的设计思想不同,其数目也各不相同。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 例如,80486、Pentium的流水线设计为5段,PentiumIII的流水线设计为10段,AMDAthlon的流水线有11段,PentiumIV的流水线达到了20段,MIPS的R4000有8个流水段,DEC的Alpha21064处理机共有三条指令流水线,整数操作流水线和访问存储器流水线

38、分为7个流水段,而浮点操作流水线分为10个流水段。每个流水段有专门的功能部件对指令进行某种加工;例如,80486的流水线分为5段,分别为“取指令”、“译码段1”、“译码段2”、“执行”和“写回”。在译码段1完成所有的操作码和寻址方式的译码工作。而在译码段2则将每个操作码扩展成对ALU的控制信号。在执行段则要完成ALU运算、Cache访问和寄存器修改。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 各流水段所需的时间是一样的;在设计流水线的控制线路及计算流水线的性能时会带来方便,简化了设计。但在实际机器中,各流水段所需的时间很难保证一致。流水线工作阶段可分为建立、满载和排空三个阶段。从

39、第一个任务进入流水线到流水线所有的部件都处于工作状态的这一个时期,称为流水线的建立阶段。当所有部件都处于工作状态时,称为流水线的满载阶段。从最后一条指令流入流水线到结果流出,称为流水线的排空阶段。在理想情况下,当流水线充满后,每隔t时间将会有一个结果流出流水线。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 4.4 流水线的分类流水线的分类从不同的角度,可对流水线进行不同的分类。4.4.1根据向下扩展和向上扩展的思想分类依据向下扩展和向上扩展的思想,可分类出在计算机系统不同等级上使用的流水线。向下扩展是指把子过程进一步向下细分,让每个子过程经过的时间都同等程度地减少,吞吐率就会进一步

40、提高。如把图4.15中的“分析”子过程细分为“取指令”、“指令译码”和“取操作数”3个子过程。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 在机器中“执行”子过程会因指令不同,执行时间不同,而使细分的情形不同。如浮点加法可进一步细分成为“求阶差”、“对阶”、“尾数相加”和“规格化”4个子过程,如图4.18所示。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 子过程的进一步细分是以增加设备为代价的。例如,“求阶差”和“尾数相加”都要用到加法器,为此需要分别设置阶码加法器和尾数加法器。“对阶”和“规格化”都要用到移位也

41、就需要分别设置两套移位器。设备的增加不仅会使成本增加,也使控制变得复杂。但它比起完全靠重复设置多套分析部件和执行部件来提高指令并行性,其设备量的增加毕竟要少得多。子过程细分并不是无止境的,因为级间缓冲器数的增多,使成本提高,辅助延时增大,控制复杂,电路设计和实现困难等,抵消了子过程细分带来的好处。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 PentiumIII的流水线设计为10段,AMDAthlon的流水线有11段,PentiumIV的流水线达到了20段,PentiumIV的Willamette版本在运行一些测试程序时,其性能比相同时钟频率PentiumIII及AMDAthlon

42、要低10%20%。但是子过程的细分可以在相同设计条件和生产工艺下提高芯片的时钟频率,PentiumIII处理器拥有10级的流水线设计,其频率很难超过1GHz;而PentiumIV处理器采用了20级的流水线,其频率已经突破3GHz。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 流水的向上扩展可理解为在多个处理机之间进行流水。如图4.19所示。多个处理机串行地对数据集进行处理,某个处理机专门完成其中的一个任务。因为各个处理机都在同时工作,所以能对多个不同的数据集流水地处理,使计算机系统处理能力有较大的提高。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线

43、计算机设计技术流水线计算机设计技术 综上所述,按流水处理的级别不同,可以把流水线分为部件级、处理机级和系统级的流水。部件级流水是指构成部件内的各个子部件之间的流水,如运算器内浮点加法流水线及Cache和多体交叉主存的流水。处理机级流水是指构成处理机的各个部件的流水,如“取指”、“分析”、“执行”间的流水。系统级流水是指构成计算机系统的多个处理机之间的流水,也称为宏流水。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 4.4.2按流水线功能的多少分类按流水线具有功能的多少来划分,可以分为单功能流水线和多功能流水线。单功能流水线是指只能完成一种固定功能的流水线。Cray-1计算机中有12

44、条单功能流水线,分别为:地址加、地址乘、标量加、标量移位、标量逻辑运算、标量加1计数、向量加、向量移位、向量逻辑运算、浮点加、浮点乘、浮点迭代求倒数;Pentium有一条5段的定点和一条8段的浮点流水线;Pentium有三条指令流水线,其中两条定点指令流水线,一条浮点指令流水线,其流水线的功能段为10个。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 多功能流水线是指同一流水线的各个段之间可以有多种不同的联接方式以实现多种不同的运算或功能。例如美国Texas公司的ASC计算机运算器的流水线就是多功能的,它有8个可并行工作的独立功能段,能够实现:定点加减法、定点乘法、浮点加减法、浮点乘

45、法、逻辑运算、移位操作、数据转换、向量运算等。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 如图4.20所示,TI-ASC机器要进行浮点加、减法时,其流水线功能段的联接如图4.20(b)所示;而要进行定点乘法运算时,其流水线功能段的联接如图4.20(c)所示。除此之外,它还可以根据运算的要求来实现多种不同的联接。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 4.4.3按流水线的工作方式分类按多功能流水线的各段能否允许同时用于多种不同功能联接流水,可把流水线分为静态流水线和动态流水线。静态流水线是指在同一时间内,多

46、功能流水线中的各个功能段只能按一种功能的联接方式工作。就指令级流水而言,仅当流入的是一串相同运算的指令时,才能发挥出静态流水线的效能。若进入的是浮加、定乘、浮加、定乘这样一串不同指令相间时,静态流水线的效能会降低到比顺序方式的还要差。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 因此,在静态流水线机器中,要求程序员编制出(或是编译程序生成)的程序应尽可能调整成有更多相同运算的指令串,以提高其流水的效能。以TI-ASC机器的流水线为例,如果先执行n条浮点加法指令,再执行m条定点乘法指令,其时-空图如图4.21所示。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章

47、章 流水线计算机设计技术流水线计算机设计技术 而动态流水线是指在同一时间内,多功能流水线中的各个功能段可按不同运算或功能的联接方式工作。如图4.22所示,在同一时间段内,某些段按浮点加法联接,而另一些段按定点乘法联接。这样做的好处在于,不要求流入流水线的指令串有相同的功能也能提高流水的吞吐率和设备的利用率。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 第第4 4章章 流水线计算机设计技术流水线计算机设计技术 从图4.21和图4.22比较,静态流水线与动态流水线的差别在于:对于相同的一串运算功能不同的指令而言,动态流水线的吞吐率和设备利用率比静态流水线的高;由于在同一时间内,可以通过

48、不同的联接实现不同的运算,故动态流水线的控制比静态流水线要复杂,需增加相应硬件,故成本比静态流水线的高;从软、硬件功能分配的观点上看,静态流水线把功能负担较多地加到软件上,以简化硬件控制,而动态流水线则把功能负担较多地加在硬件控制上,以提高流水的效能。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 4.4.4按流水线的连接方式分类根据流水线中各功能段之间是否有反馈回路,可把流水线分为线性流水线和非线性流水线。若流水线各段串行联接,没有反馈回路,各个段只经过一次的,称为线性流水线。而如果流水线中除有串行联接的通路外,有某种反馈回路,使一个任务流经流水线时,需多次经过某个段或越过某些段,

49、则称之为非线性流水线。在非线性流水线中,一个重要的问题是确定什么时候向流水线送入新的任务,使此任务流经流水线各段时不会与先进入的任务争用流水段。这个问题将在本章4.7节中讨论。第第4 4章章 流水线计算机设计技术流水线计算机设计技术 4.5 线性流水线性能分析线性流水线性能分析衡量流水线处理机性能的指标主要是吞吐率和效率,本节将以线性流水线为例讨论流水线处理机的性能。4.5.1吞吐率和加速比1.吞吐率(throughputrate)吞吐率指单位时间内流水线能处理的指令条数或能输出的数据量。吞吐率越高,计算机系统的处理能力就越强。对流水线而言,吞吐率就是单位时间内能流出的任务数或能流出的结果数。

50、第第4 4章章 流水线计算机设计技术流水线计算机设计技术 (1)最大吞吐率最大吞吐率是指在流水线正常满负荷工作时,单位时间内机器所能处理的最多指令条数或机器能输出的最多结果数。由于指令的取指和执行过程中的各个子过程所需的时间不同,为了避免各段之间经过时间不匹配,也为了保证各段之间数据通路宽度上能匹配,通常都要在各子过程之间插入一个锁存器,这些锁存器都受同一个时钟脉冲的控制,从而达到同步。如果指令的解释细分为n个子过程,且各个子过程所需的时间分别为t1、t2、t3、tn,时钟周期应当为maxt1、t2、t3、tn,对应于流水线的最大吞吐率为:第第4 4章章 流水线计算机设计技术流水线计算机设计技

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服