《浮点乘法逻辑运算精选PPT.ppt》由会员分享,可在线阅读,更多相关《浮点乘法逻辑运算精选PPT.ppt(99页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、浮点乘法逻辑运算第1页,此课件共99页哦标量处理机具有标量数据表示和标量指令系统的处理机称为具有标量数据表示和标量指令系统的处理机称为标量处理机标量处理机提高指令执行速度的主要途径提高指令执行速度的主要途径提高处理机的工作主频提高处理机的工作主频采用更好的算法和设计更好的功能部件采用更好的算法和设计更好的功能部件采用指令级并行技术采用指令级并行技术 三种指令级并行处理机三种指令级并行处理机流水线(流水线(pipelining)处理机超流水线()处理机超流水线(Superpipelining)处理机)处理机超标量(超标量(Superscalar)处理机)处理机超长指令字超长指令字(VLIW:Ve
2、ry Long Instruction Word)处理机处理机 四个基本技术四个基本技术先行控制技术先行控制技术 流水线技术流水线技术相关性分析技术相关性分析技术 动态调度技术动态调度技术第2页,此课件共99页哦本章主要内容5.1 先行控制技术先行控制技术5.2 流水线技术流水线技术5.3超标量与超流水线处理机超标量与超流水线处理机5.3.1超标量处理机超标量处理机5.3.2 超流水线处理机超流水线处理机5.3.3 超标量超流水线处理机超标量超流水线处理机整理发布第3页,此课件共99页哦 5.1先行控制技术先行控制先行控制(Lookahead)技术技术最早在最早在IBM公司的公司的STRETC
3、H机器中采用。目前,许多处理机中都已经机器中采用。目前,许多处理机中都已经采用了先行控制技术采用了先行控制技术先行控制技术的关键是先行控制技术的关键是缓冲技术缓冲技术和和预处理技术预处理技术本节主要内容本节主要内容指令的重叠执行方式指令的重叠执行方式先行控制方式的原理和结构先行控制方式的原理和结构先行控制方式的处理机结构先行控制方式的处理机结构先行控制方式的指令执行序列先行控制方式的指令执行序列先行缓冲栈先行缓冲栈缓冲深度的设计方法缓冲深度的设计方法数据相关数据相关控制相关控制相关第4页,此课件共99页哦指令的重叠执行方式1、顺序执行方式。、顺序执行方式。执行执行n条指令所用的时间为:条指令所
4、用的时间为:如果每段时间都为如果每段时间都为t,则执行,则执行n条指令所用的时条指令所用的时间为:间为:T3 n t主要优点主要优点:控制简单,节省设备。:控制简单,节省设备。主要缺点主要缺点:执行指令的速度慢,功能部件的利:执行指令的速度慢,功能部件的利用率很低用率很低第5页,此课件共99页哦指令的重叠执行方式2、一次重叠执行方式、一次重叠执行方式一种最简单的流水线方式一种最简单的流水线方式如果两个过程的时间相等,则执行如果两个过程的时间相等,则执行n条指令的时间为:条指令的时间为:T(12n)t主要优点:主要优点:指令的执行时间缩短指令的执行时间缩短功能部件的利用率明显提高功能部件的利用率
5、明显提高主要缺点:主要缺点:需要增加一些硬件需要增加一些硬件控制过程稍复杂控制过程稍复杂第6页,此课件共99页哦指令的重叠执行方式3、二次重叠执行方式、二次重叠执行方式如果三过程的时间相等,执行如果三过程的时间相等,执行n条指令的时间为:条指令的时间为:T(2n)t在理想情况下,处理机中同时有三条指令在执行在理想情况下,处理机中同时有三条指令在执行处理机的结构要作比较大的改变,需要采用先行控制技术来处理机的结构要作比较大的改变,需要采用先行控制技术来实现实现 第7页,此课件共99页哦先行控制方式的原理1、采用二次重叠执行方式,必须解决两个问题:、采用二次重叠执行方式,必须解决两个问题:有独立的
6、取指令部件、指令分析部件和指令执行部件有独立的取指令部件、指令分析部件和指令执行部件把一个集中的指令控制器,分解成三个独立的控制器:存储控制把一个集中的指令控制器,分解成三个独立的控制器:存储控制器、指令控制器、运算控制器器、指令控制器、运算控制器要解决访问主存储器的冲突问题要解决访问主存储器的冲突问题取指令、分析指令、执行指令都可能要访问存储器取指令、分析指令、执行指令都可能要访问存储器2、解决访存冲突的方法:、解决访存冲突的方法:(1)指令和数据混合存放在同一个主存储器中,采用低位)指令和数据混合存放在同一个主存储器中,采用低位交叉存取方式交叉存取方式只有取指令、读操作数、写结果所访问的不
7、是同一个存储体时,才可能实现只有取指令、读操作数、写结果所访问的不是同一个存储体时,才可能实现指令重叠指令重叠这种方法不能根本解决冲突问题这种方法不能根本解决冲突问题第8页,此课件共99页哦(2)两个独立的存储器两个独立的存储器独立的指令存储器和数据存储器独立的指令存储器和数据存储器解决取指令和读操作数的冲突解决取指令和读操作数的冲突如果再规定,执行指令所需要的操作数和执行结果只如果再规定,执行指令所需要的操作数和执行结果只写写到通用寄到通用寄存器,而不是主存。则取指令、分析指令和执行指令就可以同存器,而不是主存。则取指令、分析指令和执行指令就可以同时进行时进行在许多高性能处理机中,有独立的指
8、令在许多高性能处理机中,有独立的指令Cache和数据和数据Cache。这种结构被称为这种结构被称为哈佛结构哈佛结构指令存储器和数据存储器分开的明显缺点:对程序员不透明指令存储器和数据存储器分开的明显缺点:对程序员不透明(3)采用先行控制技术采用先行控制技术先行控制技术的关键是缓冲技术和预处理技术先行控制技术的关键是缓冲技术和预处理技术缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲栈,缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲栈,用以平滑它们的工作用以平滑它们的工作在采用了缓冲技术和预处理技术之后,运算器能够专心于在采用了缓冲技术和预处理技术之后,运算器能够专心于数据的运算,从而
9、大幅度提高程序的执行速度数据的运算,从而大幅度提高程序的执行速度第9页,此课件共99页哦先行控制方式的处理机结构1、三个独立的控制器:、三个独立的控制器:存储控制器、指令控制器、运算控制器存储控制器、指令控制器、运算控制器2、四个缓冲栈:、四个缓冲栈:先行指令缓冲栈、先行读数缓冲栈、先行操作栈、后行写数栈先行指令缓冲栈、先行读数缓冲栈、先行操作栈、后行写数栈四个缓冲栈合在一起称为先行缓冲栈四个缓冲栈合在一起称为先行缓冲栈第10页,此课件共99页哦3、先行指令缓冲栈的组成、先行指令缓冲栈的组成只要指令缓冲栈没有充满,就自动发出取指令的请求。只要指令缓冲栈没有充满,就自动发出取指令的请求。设置两个
10、程序计数器:设置两个程序计数器:先行程序计数器先行程序计数器PC1,用来指示取指令,用来指示取指令,现行程序计数器现行程序计数器PC,记录指令分析器正在分析的指令地址,记录指令分析器正在分析的指令地址第11页,此课件共99页哦4、存在的主要问题、存在的主要问题各类指令各类指令“分析分析”和和“执行执行”所需的时间相差所需的时间相差很大很大存在数据相关存在数据相关转移指令或转子程序指令转移指令或转子程序指令在本章的以下各节中,将分别介绍这三个在本章的以下各节中,将分别介绍这三个问题的解决方法问题的解决方法第12页,此课件共99页哦先行控制方式的指令执行时序设置了指令缓冲栈,取指令的时间就可以设置
11、了指令缓冲栈,取指令的时间就可以忽略不计忽略不计1、分析指令和执行指令时间不相等时的情况、分析指令和执行指令时间不相等时的情况第13页,此课件共99页哦2、采用先行缓冲栈的指令执行过程、采用先行缓冲栈的指令执行过程先行读数栈先行读数栈先行操作栈先行操作栈后行写数栈后行写数栈第14页,此课件共99页哦3、指令执行过程的、指令执行过程的时空图时空图表示方法表示方法理想情况下,指令理想情况下,指令执行部件执行部件应该一直忙碌应该一直忙碌连续执行连续执行n条指令的时间为:条指令的时间为:第15页,此课件共99页哦先行缓冲栈设置先行缓冲栈的目的:设置先行缓冲栈的目的:使指令分析器和指令执行部使指令分析器
12、和指令执行部件能够独立工作件能够独立工作。分为。分为4个栈:个栈:1、先行指令缓冲栈:、先行指令缓冲栈:位置:主存储器与指令分析器之间位置:主存储器与指令分析器之间作用:作用:用它来平滑主存储器取指令和指令分析器的工作用它来平滑主存储器取指令和指令分析器的工作RR型指令:不必处理,直接送先行操作栈型指令:不必处理,直接送先行操作栈RS和和RX型指令:主存有效地址送先行读数栈,用该先行读型指令:主存有效地址送先行读数栈,用该先行读数栈的寄存器编号替换指令中的主存地址码部分,形成数栈的寄存器编号替换指令中的主存地址码部分,形成RR*指令送先行操作栈指令送先行操作栈RI型指令:指令中的立即数送先行读
13、数栈,用该先行读数栈的型指令:指令中的立即数送先行读数栈,用该先行读数栈的寄存器编号替换指令中的立即数部分,形成寄存器编号替换指令中的立即数部分,形成RR*指令送先行操指令送先行操作栈作栈转移指令:一般在指令分析器中直接执行转移指令:一般在指令分析器中直接执行第16页,此课件共99页哦2、先行操作栈、先行操作栈位置:指令分析器和运算控制器之间位置:指令分析器和运算控制器之间作用:作用:使指令分析器和运算器能够各自独立工作使指令分析器和运算器能够各自独立工作采用先进先出方式工作,由指令寄存器堆和控制逻辑组成采用先进先出方式工作,由指令寄存器堆和控制逻辑组成3、先行读数栈、先行读数栈位置:主存储器
14、与运算器之间位置:主存储器与运算器之间作用:作用:平滑运算器与主存储器的工作平滑运算器与主存储器的工作每个缓冲寄存器由地址寄存器、操作数寄存器和标志三部每个缓冲寄存器由地址寄存器、操作数寄存器和标志三部分组成。也可以把地址寄存器和操作数寄存器合为一个分组成。也可以把地址寄存器和操作数寄存器合为一个当收到从指令分析器中送来的有效地址时,就向主存申请读操当收到从指令分析器中送来的有效地址时,就向主存申请读操作数作数读出的操作数存放在操作数寄存器中或覆盖掉地址寄存器中的读出的操作数存放在操作数寄存器中或覆盖掉地址寄存器中的地址地址第17页,此课件共99页哦4、后行写数栈、后行写数栈每个后行缓冲寄存器
15、由地址寄存器、数据寄存每个后行缓冲寄存器由地址寄存器、数据寄存器和标志三部分组成。器和标志三部分组成。指令分析器遇到向主存写结果的指令,把形成指令分析器遇到向主存写结果的指令,把形成的有效地址送入后行写数栈的地址寄存器中,的有效地址送入后行写数栈的地址寄存器中,并用该地址寄存器的编号替换指令的目的地址并用该地址寄存器的编号替换指令的目的地址部分,形成部分,形成RR*指令送入先行操作栈。指令送入先行操作栈。当运算器执行这条当运算器执行这条RR*型写数指令时,型写数指令时,只要把只要把写到主存的数据送到后行写数栈的数据寄存器写到主存的数据送到后行写数栈的数据寄存器中即可中即可第18页,此课件共99
16、页哦5 5、采用先行控制方式时,一个程序的执行情况:、采用先行控制方式时,一个程序的执行情况:第19页,此课件共99页哦6 6、先行缓冲栈访问主存的优先级:先行缓冲栈访问主存的优先级:后行写数栈 先行读数栈 先行指令缓冲栈7 7、其余缓冲栈的设计原则、其余缓冲栈的设计原则 各个缓冲栈的缓冲深度一般有如下关系:各个缓冲栈的缓冲深度一般有如下关系:DIDCDRDW 其中:其中:DI是先行指令缓冲栈的缓冲深度是先行指令缓冲栈的缓冲深度 DC是先行操作栈的缓冲深度是先行操作栈的缓冲深度 DR是先行读数栈的缓冲深度是先行读数栈的缓冲深度 DW是后行写数栈的缓冲深度是后行写数栈的缓冲深度例如:例如:IBM
17、370/165IBM370/165机:机:DI4 4,DC3 3,DR2 2,DW1 1 我国研制的两台大型计算机:我国研制的两台大型计算机:DI8 8,DCDR4 4,DW2 2 DI1212,DCDR6 6,DW2 2第20页,此课件共99页哦相关性定义定义:指一段程序的相近指令之间存在某种指一段程序的相近指令之间存在某种 关系,这种关系可能影响指令的重叠执行。关系,这种关系可能影响指令的重叠执行。分类:数据相关、控制相关。分类:数据相关、控制相关。数据相关:程序在执行一条指令时指令所数据相关:程序在执行一条指令时指令所 要用到的指要用到的指令、操作数、变址偏移量等正好是前面的指令的执行结
18、令、操作数、变址偏移量等正好是前面的指令的执行结果则必须等待前面指令写结果后才能进行。果则必须等待前面指令写结果后才能进行。控制相关:由于程序的执行方向可能被改变而引起的控制相关:由于程序的执行方向可能被改变而引起的相关。相关。第21页,此课件共99页哦数据相关性数据相关分为:数据相关分为:指令相关指令相关主存操作数相关主存操作数相关通用寄存器相关通用寄存器相关变址相关变址相关第22页,此课件共99页哦指令相关定义:定义:k:store R1,k+1 k+1:其中:结果地址(其中:结果地址(k)=指令地址(指令地址(k+1),故称指令相),故称指令相关关测试:把每条指令的结果地址与先行操作栈、
19、指令分析测试:把每条指令的结果地址与先行操作栈、指令分析器、先行指令缓冲栈中的所有指令地址比较,相等则有。器、先行指令缓冲栈中的所有指令地址比较,相等则有。办法:不允许指令修改;通过设置专门的执行指令办法:不允许指令修改;通过设置专门的执行指令把指令相关变成数据相关把指令相关变成数据相关例:例:IBM370的执行指令:的执行指令:EXE(执行)R1X2B2D2第23页,此课件共99页哦主存操作数相关定义:定义:k:op A1,A2,A3 ;A1=(A2)op(A3)k+1:op A4,A5,A1 ;A4=(A5)op(A1)存在:结果地址(存在:结果地址(K)=主存操作数地址(主存操作数地址(
20、K+1)则发生主存操作数相关。则发生主存操作数相关。办法:推后处理办法:推后处理分析k分析k+1执行k分析k+1(推后)执行k+1 结果写主存A1读主存A1请求时间t第24页,此课件共99页哦通用寄存器相关定义:定义:k:op R1,A2 ;R1=(R1)op(A2)k+1:op R1,R2 ;R1=(R1)op(R2)有:有:R1(k)=R1(k+1),称为称为R1数据相关;数据相关;R1(k)=R2(k+1),称为称为R2数据相关。数据相关。办法:办法:1、通用寄存器是、通用寄存器是D触发器且不设缓冲寄存器或锁触发器且不设缓冲寄存器或锁 存器则无相关存器则无相关2、指令分析推后一个周期、指
21、令分析推后一个周期3、指令分析推后一个节拍、指令分析推后一个节拍4、采用专用的数据通道、采用专用的数据通道第1拍第2拍第3拍第4拍写R1读R1读R2执行k分析k+1执行k分析k+1写R1读R2读R1第25页,此课件共99页哦通用寄存器相关(续)通用寄存器堆锁存器锁存器运算器专用通道设置专用数据通道解决寄存器数据相关第26页,此课件共99页哦变址相关定义:定义:k:op R1,R2 R1=(R1)op(R2)k+1:op R1,A2(X2)R1=(R1)op(A2)+(X2)k+2:op R1,A2(X2)R1=(R1)op(A2)+(X2)若若R1(k)=X2(k+1),称一次变址相关;若称一
22、次变址相关;若R1(k)=X2(k+2),称二次变址相关称二次变址相关原因:发生二次变址相关的原因是写结果要一段稳定时间原因:发生二次变址相关的原因是写结果要一段稳定时间分析k执行k分析k+1执行k+1分析k+2执行k+2t1t2t2办法:推后处理和设置专用通道第27页,此课件共99页哦数据相关数据相关的三种解决办法:数据相关的三种解决办法:1、避免数据相关(调整指令流);、避免数据相关(调整指令流);2、推后处理;、推后处理;3、设置专用的数据通路。、设置专用的数据通路。第28页,此课件共99页哦控制相关引起控制相关的原因有:引起控制相关的原因有:无条件转移、一般条件转移、复合条件转移、无条
23、件转移、一般条件转移、复合条件转移、子程序调用、中断等。子程序调用、中断等。吸收型指令:在指令分析器中就执行完的吸收型指令:在指令分析器中就执行完的指令。指令。无条件转移、一般条件转移是吸收型指令。无条件转移、一般条件转移是吸收型指令。本节讨论几种转移指令引起的相关。本节讨论几种转移指令引起的相关。第29页,此课件共99页哦无条件转移引起的相关程序:程序:k:JMP L :L:分析:无条件转移是吸收型指令;分析:无条件转移是吸收型指令;指令指令L分在先行指令缓冲栈和不在两种情况。分在先行指令缓冲栈和不在两种情况。指令执行时序:指令执行时序:分析k-1执行k-1分析k取指令L分析L分析L分析L+
24、1执行L执行L执行L+1指令L不在指令缓冲栈:指令L在指令缓冲栈:方法:在先行指令缓冲栈入口设置指令分析器方法:在先行指令缓冲栈入口设置指令分析器第30页,此课件共99页哦一般条件转移引起的相关程序:程序:k:k+1:JMP(CC)L :L:分析:一般条件转移指令是吸收型指令;分析:一般条件转移指令是吸收型指令;分三种情况:分三种情况:分析k执行k分析k+1取指令L分析L分析L分析L+1执行L执行L执行L+1执行k+2分析k+2分析k+1分析k+1成功,指令L不在指令缓冲栈:成功,指令L在指令缓冲栈:转移不成功方法:降低转移成功的概率;减少转移成功的对先行控制 器的影响第31页,此课件共99页
25、哦复合条件转移引起的相关程序:程序:k:op L k+1:L:分析:非吸收型指令分析:非吸收型指令执行时序:执行时序:分析k执行k分析k+1取指令L分析L分析L分析L+1执行L执行L执行L+1执行k+1成功,指令L不在指令缓冲栈:成功,指令L在指令缓冲栈:转移不成功方法:1、转移预测;2、对于短循环程序设置开门指令和关门指令。第32页,此课件共99页哦转移预测技术1、延时转移、延时转移2、指令取消、指令取消3、软件猜测:编译时是进行,如图:、软件猜测:编译时是进行,如图:4、硬件猜测:在先行指令缓冲栈入口、硬件猜测:在先行指令缓冲栈入口设置指令分析器,检测转移指令,设置指令分析器,检测转移指令
26、,有,有,则按目标地址预取则按目标地址预取5、设置两个先行指令缓冲栈:一个预取转移、设置两个先行指令缓冲栈:一个预取转移指令下面的程序;一个预取目标程序。指令下面的程序;一个预取目标程序。6、设置专门的短循环程序的开门和关门指令、设置专门的短循环程序的开门和关门指令in循环体ii-1i0in循环体ii-1i=0in循环体ii-1i0YNNNYY一般条件转移复合条件转移原来程序第33页,此课件共99页哦5.2 流水线技术开发处理机内部的并行性方法开发处理机内部的并行性方法空间并行性空间并行性:设置多个独立的操作部件:设置多个独立的操作部件如多操作部件处理机、超标量处理机如多操作部件处理机、超标量
27、处理机时间并行性时间并行性:采用:采用流水线技术流水线技术不增加或只增加少量硬件就能使运算速度提高几倍不增加或只增加少量硬件就能使运算速度提高几倍如流水线处理机、超流水线处理机如流水线处理机、超流水线处理机本节主要内容:本节主要内容:5.2.1 流水线工作原理流水线工作原理5.2.2 流水线的分类流水线的分类5.2.3 线性流水线的性能分析线性流水线的性能分析5.2.4 非线性流水线的调度技术非线性流水线的调度技术第34页,此课件共99页哦 洗衣店的例子洗衣店的例子甩干要用甩干要用 30 分钟分钟叠衣物也需要叠衣物也需要 30 分钟分钟清洗要花清洗要花 30 分钟分钟A,B,C,D均有一些衣物
28、要均有一些衣物要清洗,甩干,折叠清洗,甩干,折叠ABCD还要花费还要花费 30 分钟的时间分钟的时间将衣物放在衣柜里将衣物放在衣柜里流水线是很自然的!第35页,此课件共99页哦 洗洗4 个人的衣物,顺序操作需要个人的衣物,顺序操作需要 8 个小时个小时 如果使用流水线作业如果使用流水线作业,将需要多少时间呢将需要多少时间呢?顺序操作任任务务顺顺序序303030BCDA时间30 3030303030303030303030306 下午下午 78910111212 上午上午第36页,此课件共99页哦流水线作业30 30任务顺序122 上午上午6 下午下午78910111时间BCDA3030 303
29、030 流水线作业洗流水线作业洗4个人的衣物只需要个人的衣物只需要 3.5 个小时个小时!第37页,此课件共99页哦30 30任任务务顺顺序序6 下午下午789时间时间BCDA3030 303030有关流水线的问题流水线无法帮助解决流水线无法帮助解决单个任务单个任务的的时间时间,有利于减少有利于减少整个工作整个工作全部时全部时间间吞吐量吞吐量多个任务同时操作需要多个任务同时操作需要不同的资不同的资源源可能的加速比可能的加速比=流水线的段数流水线的段数流水线的速率受速度流水线的速率受速度最慢的最慢的流水段流水段的限制的限制流水线各段流水线各段长度不均长度不均会降低加速会降低加速比比充满充满流水线
30、所需的时间和流水线所需的时间和排空排空流水流水线所需的时间影响加速比线所需的时间影响加速比会由于会由于任务的相关任务的相关而造成阻塞而造成阻塞第38页,此课件共99页哦流水线工作原理1、简单流水线、简单流水线流水线的每一个阶段称为流水步、流水步骤、流水段、流水流水线的每一个阶段称为流水步、流水步骤、流水段、流水线阶段、流水功能段、功能段、流水级、流水节拍等线阶段、流水功能段、功能段、流水级、流水节拍等在每一个流水段的末尾或开头必须设置一个寄存器,称为流水寄在每一个流水段的末尾或开头必须设置一个寄存器,称为流水寄存器、流水锁存器、流水闸门寄存器等流水锁存器会增加每条指存器、流水锁存器、流水闸门寄
31、存器等流水锁存器会增加每条指令的执行时间,但采用流水线之后整个程序的执行时间会缩短令的执行时间,但采用流水线之后整个程序的执行时间会缩短为了简化,在一般流水线中不画出流水锁存器。为了简化,在一般流水线中不画出流水锁存器。第39页,此课件共99页哦流水线工作原理2、流水线的表示方法、流水线的表示方法流水线的连接图表示方法流水线的连接图表示方法表示流水线的逻辑关系表示流水线的逻辑关系 流水线的时空图表示方法流水线的时空图表示方法 表示流水线的时间关系表示流水线的时间关系 流水线的预约表表示方法流水线的预约表表示方法 将在将在非线性流水线非线性流水线中介绍中介绍 一般处理机的指令流水线为一般处理机的
32、指令流水线为 4 4 至至 12 12 个级个级 指令流水线等于和大于指令流水线等于和大于8 8级的称为级的称为超流水线处理机超流水线处理机第40页,此课件共99页哦一个浮点加法器流水线的时空图一个浮点加法器流水线的时空图由由求阶差、对阶、尾数加和规格化求阶差、对阶、尾数加和规格化4 4个流水段组成个流水段组成3 3、流水线时空图、流水线时空图一条一条简单流水线的时空图简单流水线的时空图第41页,此课件共99页哦4、流水线的主要特点、流水线的主要特点只有连续提供同类任务才能充分发挥流水线的效率只有连续提供同类任务才能充分发挥流水线的效率对于指令流水线:要尽量减少因条件分支造成的对于指令流水线:
33、要尽量减少因条件分支造成的“断流断流”对于操作部件:主要通过编译技术,尽量提供连续的相同类型的操作。对于操作部件:主要通过编译技术,尽量提供连续的相同类型的操作。在流水线的每一个流水线段中都要设置一个流水锁存器。在流水线的每一个流水线段中都要设置一个流水锁存器。时间开销:流水线的执行时间加长,时间开销:流水线的执行时间加长,是流水线中需要增加的主要硬件之一。是流水线中需要增加的主要硬件之一。各流水段的时间应尽量相等各流水段的时间应尽量相等流水线处理机的基本时钟周期等于时间最长的流水段的时间长度流水线处理机的基本时钟周期等于时间最长的流水段的时间长度流水线需要有流水线需要有“装入时间装入时间”和
34、和“排空时间排空时间”Latency&throughput?第42页,此课件共99页哦流水线技术在流水线技术在50年代后期被应用于处理器年代后期被应用于处理器IBM Stretch-first general-purpose pipelined computerCDC 6600 use load/store design to achieve efficient pipelining.第43页,此课件共99页哦流水线的分类1、线性流水线与非线性流水线、线性流水线与非线性流水线流水线的各个流水段之间是否有反馈信号流水线的各个流水段之间是否有反馈信号线性流水线(线性流水线(Linear Pipel
35、ining)每一个流水段都流过一次,而且仅流过一次每一个流水段都流过一次,而且仅流过一次线性流水线能够用流水线连接图唯一表示线性流水线能够用流水线连接图唯一表示非线性流水线(非线性流水线(Nonlinear Pipelining)在流水线的某些流水段之间有反馈回路或前馈回路。在流水线的某些流水段之间有反馈回路或前馈回路。非线性流水线必须用流水线连接图流水线预约表等共同表示非线性流水线必须用流水线连接图流水线预约表等共同表示第44页,此课件共99页哦2、按照流水线的级别来分、按照流水线的级别来分处理机级流水线,又称为处理机级流水线,又称为指令流水线指令流水线例如:在采用先行控制器的处理机中,各功
36、能部件之间的流水线例如:在采用先行控制器的处理机中,各功能部件之间的流水线 部件级流水线,即部件级流水线,即操作流水线操作流水线。如浮点加法器流水线。如浮点加法器流水线第45页,此课件共99页哦处理机之间的流水线称为处理机之间的流水线称为宏流水线宏流水线(Macro Pipelining)每个处理机对同一个数据流的不同部分分别进行处理每个处理机对同一个数据流的不同部分分别进行处理第46页,此课件共99页哦3、单功能流水线与多功能流水线、单功能流水线与多功能流水线单功能流水线:只能完成一种固定功能的流水单功能流水线:只能完成一种固定功能的流水线线Cray-1计算机种有计算机种有12条条YH-1计
37、算机有计算机有18条条Pentium有一条有一条5段的定点和一条段的定点和一条8段的浮点流水线段的浮点流水线Pentium有两条定点指令流水线,一条浮点指令有两条定点指令流水线,一条浮点指令流水线。流水线。多功能流水线:流水线的各段通过不同的连接多功能流水线:流水线的各段通过不同的连接实现不同的功能实现不同的功能Texas公司的公司的ASC计算机中的计算机中的8段流水线,能够实现:段流水线,能够实现:定点加减法、定点乘法定点加减法、定点乘法浮点加法、浮点乘法浮点加法、浮点乘法逻辑运算、移位操作逻辑运算、移位操作数据转换、向量运算等数据转换、向量运算等第47页,此课件共99页哦第48页,此课件共
38、99页哦4、静态流水线与动态流水线、静态流水线与动态流水线静态流水线静态流水线:同一段时间内,多功能流水线中的各个功能段:同一段时间内,多功能流水线中的各个功能段只能按照一种固定的方式连接,实现一种固定的功能只能按照一种固定的方式连接,实现一种固定的功能只有连续出现同一种运算时,流水线的效率才能得到充分的发挥只有连续出现同一种运算时,流水线的效率才能得到充分的发挥第49页,此课件共99页哦动态流水线动态流水线:在同一段时间内,多功能流水线:在同一段时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行中的各段可以按照不同的方式连接,同时执行多种功能多种功能第50页,此课件共99页哦5、流
39、水线的其他分类方法、流水线的其他分类方法按照数据表示方式:标量流水线和向量流水线按照数据表示方式:标量流水线和向量流水线按照控制方式:同步流水线和异步流水线按照控制方式:同步流水线和异步流水线顺序流水线与乱序流水线顺序流水线与乱序流水线乱序流水线又称为无序流水线、错序流水线或异步流水线等乱序流水线又称为无序流水线、错序流水线或异步流水线等第51页,此课件共99页哦 线性流水线的性能分析 衡量流水线性能的主要指标有:衡量流水线性能的主要指标有:吞吐率、加速比和效率。1、吞吐率(Though PutThough Put)计算流水线吞吐率的最基本公式:其中:其中:n n为任务数,为任务数,k k为完
40、成为完成n n个任务所用的时间。个任务所用的时间。各段执行时间相等,输入连续任务情况下:各段执行时间相等,输入连续任务情况下:完成完成n n个连续任务需要的总时间为:个连续任务需要的总时间为:Tk(kn1)t 其中:其中:k 为流水线的段数,为流水线的段数,t t为时钟周期。为时钟周期。第52页,此课件共99页哦 吞吐率为:最大吞吐率为:各段执行时间不相等,输入连续任务情况下:吞吐率为:最大吞吐率为:流水线各段执行时间不相等的解决办法第53页,此课件共99页哦(1)将流水线的“瓶颈”部分再细分(如果可分的话)。第54页,此课件共99页哦第55页,此课件共99页哦2、加速比(SpeedupSpe
41、edup)计算流水线加速比的基本公式:各段执行时间相等,输入连续任务情况下:各段执行时间相等,输入连续任务情况下:加速比为:加速比为:最大加速比为:最大加速比为:各段执行时间不相等,输入连续任务情况下各段执行时间不相等,输入连续任务情况下,实际加速比为:实际加速比为:第56页,此课件共99页哦 当流水线段数增加时,需要连续输入的任务数也必须增加当流水线段数增加时,需要连续输入的任务数也必须增加第57页,此课件共99页哦第58页,此课件共99页哦第59页,此课件共99页哦4、流水线最佳段数的选择 采用顺序执行方式完成一个任务的时间为采用顺序执行方式完成一个任务的时间为t t 在同等速度的在同等速
42、度的k段流水线上执行一个任务的时间为:段流水线上执行一个任务的时间为:tkd 其中:其中:d为流水锁存器的延迟时间为流水锁存器的延迟时间 流水线的最大吞吐率为:流水线的最大吞吐率为:流水线的总价格估计为:流水线的总价格估计为:Cab k,其中:其中:a为所有功能段本身的总价格,为所有功能段本身的总价格,b为每个锁存器的价格为每个锁存器的价格 A.G.Larson把流水线的性把流水线的性 能价格比能价格比PCR定义为:定义为:求得到求得到PCR的最大值为:的最大值为:第60页,此课件共99页哦5、流水线性能分析举例 对于单功能线性流水线,输入连续任务的情况,通过上面给出的公式很容易计算对于单功能
43、线性流水线,输入连续任务的情况,通过上面给出的公式很容易计算出流水线的吞吐率、加速比和效率。出流水线的吞吐率、加速比和效率。例:用一条用一条4 4段浮点加法器流水线求段浮点加法器流水线求8 8个浮点数的和:个浮点数的和:Z ZA AB BC CD DE EF FG GH H解:Z Z(A AB B)()(C CD D)(E EF F)()(G GH H)第61页,此课件共99页哦第62页,此课件共99页哦流水线工作原理流水线的分类线性流水线的性能分析非线性流水线的调度技术 标量处理机标量处理机流水线技术流水线技术第63页,此课件共99页哦非线性流水线的调度技术 非线性流水线调度的任务是要找出一
44、个最小的循环周期,按照这周期向流水线输入新任务,流水线的各个功能段都不会发生冲突,而且流水线的吞吐率和效率最高。1、非线性流水线的表示 线性流水线能够用流水线连接图唯一表示线性流水线能够用流水线连接图唯一表示 连接图不能用唯一表示非线性流水线的工作流程,因此,引入流水线预约表连接图不能用唯一表示非线性流水线的工作流程,因此,引入流水线预约表第64页,此课件共99页哦 与流水线预约表对应的流水线连接图与流水线预约表对应的流水线连接图第65页,此课件共99页哦 一张预约表可能与多个流水线连接图相对应一张预约表可能与多个流水线连接图相对应第66页,此课件共99页哦 一个流水线连接图对应与多张预约表一
45、个流水线连接图对应与多张预约表第67页,此课件共99页哦2、非线性流水线的冲突 流水线的启动距离:连续输入两个任务之间的时间间隔 流水线的冲突:几个任务争用同一个流水段几个任务争用同一个流水段第68页,此课件共99页哦第69页,此课件共99页哦3、无冲突调度方法,由由E.S.DavidsonE.S.Davidson及其学生于及其学生于19711971年提出年提出 非线性流水线的禁止启动向量(集合):预约表中每一行任意两个预约表中每一行任意两个“”之之间的距离都计算出来,去掉重复的。上例中为间的距离都计算出来,去掉重复的。上例中为(3,4,6)由禁止向量得到冲突向量:C(CmCm-1C2C1)其
46、中:其中:m是是禁止向量中的最大值。如果禁止向量中的最大值。如果i在禁止向量中,在禁止向量中,则则Ci1,否则,否则Ci0。上。上例中例中 C(101100)。由冲突向量构造状态图:把冲突向量送入一个m位逻辑右移移位器;如果移位器移出0,用移位器中的值与初始冲突向量作“按位或”运算,得到一个新的冲突向量;否则不作任何处理;如此重复m次。对于中间形成的每一个新的冲突向量,也要按照这一方法进行处理。在初始冲突向量和所有的新形成的冲突向量之间用带箭头的线连接,当新形成的冲突向量出现重复时可以合并到一起。第70页,此课件共99页哦例5.3:一条有一条有4 4个功能段的非线性流水线,每个功能段的延迟个功
47、能段的非线性流水线,每个功能段的延迟 时间都相等,它的预约表如下:时间都相等,它的预约表如下:(1)(1)写出流水线的禁止向量和初始冲突向量。写出流水线的禁止向量和初始冲突向量。(2)(2)画出调度流水线的状态图。画出调度流水线的状态图。(3)(3)求流水线的最小启动循环和最小平均启动距离。求流水线的最小启动循环和最小平均启动距离。(4)(4)求平均启动距离最小的恒定循环。求平均启动距离最小的恒定循环。解:(1)(1)禁止向量为:(禁止向量为:(2 2,4 4,6 6)初始冲突向量:101010 (2)(2)初始冲突向量逻辑右移初始冲突向量逻辑右移2 2、4 4、6 6位时,不作任何处理,位时
48、,不作任何处理,逻辑右移逻辑右移1 1、3 3、5 5和大于等于和大于等于7 7时,要进行处理。时,要进行处理。第71页,此课件共99页哦初始冲突向量右移初始冲突向量右移1 1位之后:位之后:010101101010010101101010111111111111,初始冲突向量右移初始冲突向量右移3 3位之后:位之后:000101101010000101101010101111101111,初始冲突向量右移初始冲突向量右移5 5位之后:位之后:000001101010000001101010101011101011,初始冲突向量右移初始冲突向量右移7 7位或大于位或大于7 7位后:还原到它本身
49、。位后:还原到它本身。中间冲突向量中间冲突向量101111101111右移右移5 5位之后:位之后:000001101010000001101010101011101011,中间冲突向量中间冲突向量101011101011右移右移3 3位之后:位之后:000101101010000101101010101111101111,中间冲突向量中间冲突向量101011101011右移右移5 5位之后:位之后:000001101010000001101010101011101011。第72页,此课件共99页哦 预约表与状态图是唯一对应,但不同的预约表也可能有相同的状态图。简单循环:状态图中各种冲突向量只
50、经过一次的启动循环。状态图中各种冲突向量只经过一次的启动循环。简单循环的个数是有限的简单循环的个数是有限的,由简单循环计算平均启动距离。由简单循环计算平均启动距离。(3)(3)最小的启动循环为(最小的启动循环为(1 1,7 7)和()和(3 3,5 5),平均启动距离为 4。(4)(4)启动距离最小的恒定循环是(5)。第73页,此课件共99页哦简单循环中所包含的每一个等待时间都简单循环中所包含的每一个等待时间都来自此循环某一个状态的最小等待时间来自此循环某一个状态的最小等待时间(输出弧)。(输出弧)。第74页,此课件共99页哦第75页,此课件共99页哦第76页,此课件共99页哦4、优化调度方法