- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 由指令译码部件检测顺序取出的几条指令之间是否存在数据相关和功能部件争用,将可以并行的相邻指令送完流水线。 * * * 当出现数据相关时,本次没有能够发出去的指令必须保存下来,以便在下一个时钟周期再发射。先行指令窗口用来保存暂时还不能送到操作部件中去执行的指令。 * 和当出现数据相关时,本次没有能够发出去的指令必须保存下来,以便在下一个时钟周期再发射。先行指令窗口用来保存暂时还不能送到操作部件中去执行的指令。 有了先行指令窗口,就可以从指令Cache中读取更多的指令,通过硬件判断哪些指令可以先发射到操作部件中去执行。没有冲突的指令可以超越其前面的指令先进入操作部件,从而提高操作部件的利用率。如果在加上编译器的支持,根据先行指令窗口的大小,将没有数据相关、控制相关和功能部件冲突的指令或者该情况少的指令调度到同一个先行指令窗口中,进一步提高性能。 * NP完全问题? * 第一项是m条指令同时流过m条指令流水线所需要的执行时间,第二项是执行其余的N-m条指令所需要的时间,此时每一个时钟周期有m条指令分别通过m条指令流水线 * 这里的k为流水线的段数,或者时钟周期数,并不是流水线的级数。在一般的超流水线处理机中,流水线的级数世纪应为kn。 第一项是第一条指令通过流水线执行完成所需要的时间,第二项是执行其余N-1条指令所需要的时间。此时,每一个时钟周期有n条指令在流水线中执行完成。即每一个流水周期执行完一条指令。 * K为时钟周期数,并不是流水线的级数。 第一项:执行开始的m条指令所需要的时间,第二项使执行剩余N-m条指令所需要的时间。此时每一个时钟周期完成mn条指令。每一个流水周期完成m条指令。 此时:流水周期和时钟周期必须区分开。n个流水周期为1个时钟周期。 * yangruioot@ 计算机科学与技术 5.7 多指令流水线技术 5.5.1 超标量处理机 5.5.2 超流水处理机 5.5.3 超标量超流水处理机 每个周期只取一条指令、只译码一条指令,只执行一条指令,只写回一个运算结果。 取指令部件和指令译码部件各设置一套; 只设置一个多功能操作部件或设置多个独立的操作部件; 操作部件中可以采用流水线结构,也可以不采用流水线结构。 目标是每个时钟周期平均执行一条指令,ILP的期望值为1。 1 单发射指令流水线 IF ID FA1 FA2 FA3 MD1 MD2 MD3 AL LS 浮点加法部件 乘除法部件 定点ALU部件 取数存数部件 WR 来自指令Cache 通用寄存器 后行写数栈 由4个操作部件组成的单发射处理机 图: 单发射指令流水线的时空图 多条无数据相关和控制相关的指令在单发射处理机中的时空图如图 度为1 2 多发射指令流水线 每个周期同时取多条指令、同时译码多条指令,同时执行多条指令,同时写回多个运算结果。 需要设置多个取指令部件,多个指令译码部件和多个写结果部件。 设置多个指令执行部件,有些指令执行部件采用流水线结构。 当多个结果同时产生时,在不发生数据相关的前提下,可以同时写多个结果。 目标是每个时钟周期平均执行多条指令,ILP的期望值大于1。 多发射指令流水线 在前图中执行指令的时空图如下图所示 多发射指令流水线的时空图 指令并行度为m 返回公式页 一个时钟周期内能够同时发射多条指令的处理机称为超标量处理机 目前的超标量处理机每个时钟周期发射2-4条指令 Intel公司的i860、i960、Pentium处理机,Motolora公司的MC88110处理机,IBM公司的Power 6000处理机等每个周期都发射两条指令 TI公司生产的SuperSPARC处理机以及Intel的Pentium III处理机等每个周期发射三条指令 操作部件的个数多于每个周期发射的指令条数。4个至16个操作部件 超标量处理机的指令级并行度:1<ILP<m;m为每个周期发射的指令条数。 5.5.1 超标量处理机 超标量处理机的结构 超标量处理机至少具有两套或者两条以上完整的指令执行部件。 高性能的超标量处理机通常还设置一个先行指令窗口: 能够从指令Cache中预取多条指令 能够对窗口内的指令进行数据相关性分析和功能部件冲突的检测 窗口的大小:一般为2至8条指令 IF ID FA1 FA2 FA3 MD1 MD2 MD3 AL LS 浮点加法部件 乘除法部件 定点ALU部件 取数存数部件 WR IF ID WR IF ID 先行指令窗口 具有先行指令窗口的超标量处理机 在超标量处理机中,有多条指令流水线在同时工作,设置有多个能独立工作的操作部件,为了达到最大并行度m,必须解决: 多流水线的调度问题(教材:5.4.3) 顺序发射顺序完成 顺序发射乱序完成 乱序发射乱序完成 资源冲突问题(教
文档评论(0)