资源预览内容
第1页 / 共264页
第2页 / 共264页
第3页 / 共264页
第4页 / 共264页
第5页 / 共264页
第6页 / 共264页
第7页 / 共264页
第8页 / 共264页
第9页 / 共264页
第10页 / 共264页
亲,该文档总共264页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第4章流水线计算机设计技术第4章流水线计算机设计技术第第4章 流水线计算机设计技术章 流水线计算机设计技术4.1 重叠解释方式和相关处理重叠解释方式和相关处理4.2 流水线的工作原理流水线的工作原理4.3 流水线的特点流水线的特点4.4 流水线的分类流水线的分类4.5 线性流水线性能分析线性流水线性能分析4.6 线性流水线性能分析举例线性流水线性能分析举例4.7 非线性流水线的基本概念非线性流水线的基本概念第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章流水线计算机设计技术第4章流水线计算机设计技术第4章流水线计算机设计技术取指令指的是按指令计数器的内容访问主存,取出该指令送到指令寄存器。指令的分析指的是对指令的操作码进行译码,按寻址方式和地址字段形成操作数的有效地址,并用此有效地址去取操作数(可能访主存,也可能访寄存器),还要为准备取下一条指令提前形成下一条指令的地址等。指令的执行则指的是对操作数进行运算、处理,或存储运算结果(可能要访主存)。第4章流水线计算机设计技术第4章流水线计算机设计技术第4章流水线计算机设计技术第4章流水线计算机设计技术指令的解释方式可以有顺序解释方式和重叠解释方式。指令的顺序解释方式是指各条机器指令之间顺序串行地执行,执行完一条指令后才取出下一条指令来执行,而且每条机器指令内部的各条微指令也是顺 序串行地执行,如图4.2所示。顺序执行的优点是控制简单。由于下一条指令的地址是在指令解释过程的末 尾形成的,因此无论是由指令计数器加1,还是由转移指令把转移地址送到指令地址计数器,形成下一条指令的地址,由本条指令转入下一条指令的时间关系都 是一样的。第4章流水线计算机设计技术第4章流水线计算机设计技术但由于是顺序执行的,上一步操作未完成,下一步操作就不能开始。因此,带来的主要缺点是速度慢,机器各部件的利用率很低。例如,在取指令和取操作数期间,主存储器是忙碌的,但是运算器处于空闲状态。在对操作数执行运算期间,运算器是忙碌的,而主存却是空闲的。第4章流水线计算机设计技术第4章流水线计算机设计技术指令的另一种解释方式是重叠解释方式,在解释第k条 指令的操作完成之前,就可开始解释第k+1条指令。显然,重叠解释并不能加快一条指令的实现,但能加快相邻 两条以至一段程序的解释。图4.3给出了指令的重叠解释的方式。至于中央处理机、存储器和输入输出设备之间的 重叠操作,也是一种重叠方式,是实现I/O指令与其它指令的重叠。在一般的机器上,操作数和指令是混合存贮于 同一主存内的,而且主存同时只能访问一个存贮单元。从 图4.3可以看出,重叠解释方式需要“取指k+1”与“分析k”在时间上重叠,显然,对于一般机器,取指需要访问主存, 分析中取操作数也可能访问主存。如果不在硬件上花费一 定的代价解决好访主存的冲突,就无法实现“取指k+1”与 “分析k”的重叠。第4章流水线计算机设计技术第4章流水线计算机设计技术第4章流水线计算机设计技术第4章流水线计算机设计技术为实现“取指k+1”与“分析k”的重叠对计算机组成有如下要求:(1)让操作数和指令分别存放于两个独立编址且可同时访问的存储器中;这还有利于实现指令的保护,但这增加了主存总线控制的复杂性及软件设计的麻烦。(2)仍然维持指令和操作数混存,但采用多体交叉主存结构;只要第k条指令的操作数与第k+1条指令不在同一个存储体内,仍可在一个主存周期(或稍许多一些 时间)内取得这两者,从而实现“分析k”与“取指k+1”重叠。当然,若这两者正好共存于一个体时就无法重叠。第4章流水线计算机设计技术第4章流水线计算机设计技术(3)增设指令缓冲寄存器。设置指令缓冲寄存器就可以乘主存有空时,预先把下一条或下几条指令取出来存放在指令缓冲寄存器中。最多可预取多少条指令 取决于指令缓冲寄存器的容量。这样,“分析k”就能与“取指k+1”重叠,因为只是前者需访主存取操作数,而后者是从指缓取第k+1条指令。只要每次取指都可从指缓中得到,则“取指k+1”的时间很短,完全可以把这个微操作合并到“分析k+1”内,从而由原来的取指、分析、执行重叠演变成只需“执行k”与“分析k+1”的一次重叠,如图4.4所示。第4章流水线计算机设计技术第4章流水线计算机设计技术第4章流水线计算机设计技术第4章流水线计算机设计技术4.1.2 一次重叠工作方式从图4.4可以看出,为了实现“执行k”与“分析k+1”重叠还必须在硬件上保证有独立的指令分析部件和指令 执行部件。在实际应用中,“分析”和“执行”所需的时间常常不完全一样,在设计时,应解决好控制上的同 步,保证任何时候都只是“执行k”与“分析k+1”一次重叠。即任何时候,指令分析部件和指令执行部件都只有相 邻两条指令的解释。第4章流水线计算机设计技术第4章流水线计算机设计技术“一次重叠”解释方式的优点为省硬件,机器内只需要一套指令分析部件和指令执行部件,也有助于简化 控制。但缺点是,在实际情况中,“分析”和“执行”所需的时间常常不完全一样,设计时应适当安排好每条指 令的微操作,使“分析”和“执行”所需的时间尽可能等长,才能使重叠方式有较高的效率。如果采用多次重叠,不仅要设置多套指令分析和指令执行部件,控制还相当复杂。所以,重叠方式的机器大多数都采用一次重叠,若仍达不到速度要求时,宁可采用后面要介绍的流水方式。第4章流水线计算机设计技术第4章流水线计算机设计技术在实际设计中,为了实现“分析k+1”和“执行k”的一次重叠,还需要在硬件控制上解决许多问题。先看转移指令的处理问题。例如:第k条指令是按其执行结果进行转移的条件转移指令,当条件转移不成功时,重叠操作是有效的;但当遇到条件转移,并 且成功转移到第m条指令时,这时与“执行k”重叠的“分析k+1”的操作是无效的,重叠方式实际上变成了顺序方式,因为在“执行k”的末尾才形成下一条要执行指令的地址,显然,下一条指令应该执行第m条指令,第4章流水线计算机设计技术第4章流水线计算机设计技术即当第m条指令在指缓内时,应该执行的是“分析m”,若不在,应该执行的是“取指m”,并且应该是在“执行k”结果出来之后。而“分析k+1” (包含了取指k+1)取的是第k+1条指令的内容,这就会出错。图4.5给出了执行条件转移时指令重叠的情况。第4章流水线计算机设计技术第4章流水线计算机设计技术第4章流水线计算机设计技术第4章流水线计算机设计技术为了避免出错,第k条和第k+1条指令就不能同时解释,因此采用重叠方式的机器中应尽量减少程序中条件转移指令的使用,否则将会使重叠效率显著下降。如果出现条件转移指令,可以采用其它技术,如延迟转移技术,使重叠效率不下降。第4章流水线计算机设计技术第4章流水线计算机设计技术控制上还要解决好邻近指令之间有可能出现的某种关联。当一段程序的邻近指令之间出现某种关联后,为了避免出错而使它们不能同时被解释的现象称 之为“相关”。相关可以是指令相关,也可以是操作数相关。指令相关是指第k条指令执行的结果会影响第k+1条指令内容而产生的关联,造成第k条指令和第k+1条指令不能同时解释。例如,在采用Von Neumann型机器上,可通过执行第k条指令的办法来形成第k+1条指令:k:存,通用寄存器号,k+1 功能:(通用寄存器) k+1k+1: 第4章流水线计算机设计技术第4章流水线计算机设计技术由于在“执行k”的末尾才形成第k+1条指令,按照一次重叠的时间关系,“分析k+1”所分析的是早已取进指缓的第k+1条指令的旧内容,这就会出错,这种情况就是我们所说的指令相关。特别是当指令缓冲器可缓冲 存放n条指令情况下,执行到第k条指令时,与已预取进指缓的第k+1到第k+n条指令都有可能发生指令相关。指令缓冲寄存器的容量愈大,或者说指令预处理能力愈强的机器发生指令相关的概率就愈高。第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条指令的运算结果,这必然会出错。操作数相关不只是会发生在主存空间,还会发生在通用寄存器空间。第4章流水线计算机设计技术第4章流水线计算机设计技术4.1.3 相关处理1. 指令相关的处理对于有指令缓冲器的机器,由于指令是提前由主存取进指缓的,为了判定是否发生了指令相关,需要进行相当复杂的对多条指令地址与多条指令的运算结果地址比较,看是否有相同的。如果发现有指令相关,还要让已预取进指缓中的相关指令作废,并重取、更换指缓中的内容,这样做不仅操作控制复杂,而且增加了辅助操作时间,特别是要花一个主存周期去访存重新取指,必然会带来时间损失。第4章流水线计算机设计技术第4章流水线计算机设计技术因为可能被修改的指令是以“执行”指令的操作数形式出现,并存于第k+1条指令的物理地址,而下一条指令又是从该地址取出来的,而指令代码本身就是数据,因此指令相关实际上就转化成了操作数相关,统一用处理操作数相关的方法来解决,从而在程序中就不会发生指令相关了。第4章流水线计算机设计技术第4章流水线计算机设计技术实际上操作数可能存放于主存,也可能存放于通用寄存器中,因此就有主存空间数相关和通用寄存器组数相关。一般的机器中,通用寄存器还可以存放变 址值,而变址值是在“分析”的前半时间为形成操作数地址时所要用到的,它必须在分析时间段的一开始就 要访问变址寄存器。这样,若在第k条指令“执行”的末尾形成的结果正好是第k+1条指令“分析”时所要用的变址值时,还会发生通用寄存器组的变址值相关。第4章流水线计算机设计技术第4章流水线计算机设计技术2. 主存空间数相关的处理主存空间数相关是指相邻两条指令之间出现要求对主存同一单元先写入而后再读出的关联。如果让“执行k”与“分析k+1”在时间上重叠,就会使 “分析k+1”读出的 操作数不是程序要求的第k条指令执行完后应当写入的结果,而造成错误。如图4.6所示。主存空间数相关的处理方法通常采用推后第k+1条指令的读操作数。第4章流水线计算机设计技术第4章流水线计算机设计技术第4章流水线计算机设计技术第4章流水线计算机设计技术具体方法是由存控通过给读数、写数申请安排不同的访存优先级来解决。通常很多机器都将访存优先级依次定为通道申请、写数、读数、取指令。这样,当 第k条和k+1条指令出现主存空间数相关时,“执行k”与“分析k+1”同时对主存同一个单元发出访存申请,但因“写数”级别高于“读数”,存控先处理“执行k”的写数,“分析k+1”的读数申请必然只能推迟到下一个主存周期才有可能被处理,从而就自动实现了推后“分析k+1”的读,不用处理机另外采取措施。如图4.7所示。第4章流水线计算机设计技术第4章流水线计算机设计技术第4章流水线计算机设计技术第4章流水线计算机设计技术3. 通用寄存器组相关的处理通用寄存器既可存放操作数、运算结果,也可以存放变址值,但是在指令解释过程中,使用通用寄存器作为不同用途所需的有关微操作时间要求是不相同的。存放于通用寄存器中的基址
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号