《《浮点乘法逻辑运算》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《浮点乘法逻辑运算》PPT课件.ppt(99页珍藏版)》请在三一办公上搜索。
1、第一章 基本概念第二章 指令系统第三章 存储系统第四章 输入输出系统第五章 标量处理机第六章 向量处理机第七章 互连网络第八章 并行处理机第九章 多处理机,计算机系统结构,标量处理机,具有标量数据表示和标量指令系统的处理机称为标量处理机提高指令执行速度的主要途径提高处理机的工作主频采用更好的算法和设计更好的功能部件采用指令级并行技术 三种指令级并行处理机流水线(pipelining)处理机超流水线(Superpipelining)处理机超标量(Superscalar)处理机超长指令字(VLIW:Very Long Instruction Word)处理机 四个基本技术先行控制技术 流水线技术相
2、关性分析技术 动态调度技术,本章主要内容,5.1 先行控制技术5.2 流水线技术5.3超标量与超流水线处理机5.3.1超标量处理机5.3.2 超流水线处理机5.3.3 超标量超流水线处理机,整理发布,5.1先行控制技术,先行控制(Lookahead)技术最早在IBM公司的STRETCH机器中采用。目前,许多处理机中都已经采用了先行控制技术先行控制技术的关键是缓冲技术和预处理技术本节主要内容指令的重叠执行方式先行控制方式的原理和结构先行控制方式的处理机结构先行控制方式的指令执行序列先行缓冲栈缓冲深度的设计方法数据相关控制相关,指令的重叠执行方式,1、顺序执行方式。执行n条指令所用的时间为:如果每
3、段时间都为t,则执行n条指令所用的时间为:T3 n t主要优点:控制简单,节省设备。主要缺点:执行指令的速度慢,功能部件的利用率很低,指令的重叠执行方式,2、一次重叠执行方式一种最简单的流水线方式如果两个过程的时间相等,则执行n条指令的时间为:T(12n)t主要优点:指令的执行时间缩短功能部件的利用率明显提高主要缺点:需要增加一些硬件控制过程稍复杂,指令的重叠执行方式,3、二次重叠执行方式如果三过程的时间相等,执行n条指令的时间为:T(2n)t在理想情况下,处理机中同时有三条指令在执行处理机的结构要作比较大的改变,需要采用先行控制技术来实现,先行控制方式的原理,1、采用二次重叠执行方式,必须解
4、决两个问题:有独立的取指令部件、指令分析部件和指令执行部件把一个集中的指令控制器,分解成三个独立的控制器:存储控制器、指令控制器、运算控制器要解决访问主存储器的冲突问题取指令、分析指令、执行指令都可能要访问存储器2、解决访存冲突的方法:(1)指令和数据混合存放在同一个主存储器中,采用低位交叉存取方式只有取指令、读操作数、写结果所访问的不是同一个存储体时,才可能实现指令重叠这种方法不能根本解决冲突问题,(2)两个独立的存储器独立的指令存储器和数据存储器解决取指令和读操作数的冲突如果再规定,执行指令所需要的操作数和执行结果只写到通用寄存器,而不是主存。则取指令、分析指令和执行指令就可以同时进行在许
5、多高性能处理机中,有独立的指令Cache和数据Cache。这种结构被称为哈佛结构指令存储器和数据存储器分开的明显缺点:对程序员不透明(3)采用先行控制技术先行控制技术的关键是缓冲技术和预处理技术缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲栈,用以平滑它们的工作在采用了缓冲技术和预处理技术之后,运算器能够专心于数据的运算,从而大幅度提高程序的执行速度,先行控制方式的处理机结构,1、三个独立的控制器:存储控制器、指令控制器、运算控制器2、四个缓冲栈:先行指令缓冲栈、先行读数缓冲栈、先行操作栈、后行写数栈四个缓冲栈合在一起称为先行缓冲栈,3、先行指令缓冲栈的组成只要指令缓冲栈没有充满,就自动
6、发出取指令的请求。设置两个程序计数器:先行程序计数器PC1,用来指示取指令,现行程序计数器PC,记录指令分析器正在分析的指令地址,4、存在的主要问题各类指令“分析”和“执行”所需的时间相差很大存在数据相关转移指令或转子程序指令在本章的以下各节中,将分别介绍这三个问题的解决方法,先行控制方式的指令执行时序,设置了指令缓冲栈,取指令的时间就可以忽略不计1、分析指令和执行指令时间不相等时的情况,2、采用先行缓冲栈的指令执行过程先行读数栈先行操作栈后行写数栈,3、指令执行过程的时空图表示方法理想情况下,指令执行部件应该一直忙碌连续执行n条指令的时间为:,先行缓冲栈,设置先行缓冲栈的目的:使指令分析器和
7、指令执行部件能够独立工作。分为4个栈:1、先行指令缓冲栈:位置:主存储器与指令分析器之间作用:用它来平滑主存储器取指令和指令分析器的工作RR型指令:不必处理,直接送先行操作栈RS和RX型指令:主存有效地址送先行读数栈,用该先行读数栈的寄存器编号替换指令中的主存地址码部分,形成RR*指令送先行操作栈RI型指令:指令中的立即数送先行读数栈,用该先行读数栈的寄存器编号替换指令中的立即数部分,形成RR*指令送先行操作栈转移指令:一般在指令分析器中直接执行,2、先行操作栈位置:指令分析器和运算控制器之间作用:使指令分析器和运算器能够各自独立工作采用先进先出方式工作,由指令寄存器堆和控制逻辑组成3、先行读
8、数栈位置:主存储器与运算器之间作用:平滑运算器与主存储器的工作每个缓冲寄存器由地址寄存器、操作数寄存器和标志三部分组成。也可以把地址寄存器和操作数寄存器合为一个当收到从指令分析器中送来的有效地址时,就向主存申请读操作数读出的操作数存放在操作数寄存器中或覆盖掉地址寄存器中的地址,4、后行写数栈每个后行缓冲寄存器由地址寄存器、数据寄存器和标志三部分组成。指令分析器遇到向主存写结果的指令,把形成的有效地址送入后行写数栈的地址寄存器中,并用该地址寄存器的编号替换指令的目的地址部分,形成RR*指令送入先行操作栈。当运算器执行这条RR*型写数指令时,只要把写到主存的数据送到后行写数栈的数据寄存器中即可,5
9、、采用先行控制方式时,一个程序的执行情况:,6、先行缓冲栈访问主存的优先级:后行写数栈 先行读数栈 先行指令缓冲栈7、其余缓冲栈的设计原则 各个缓冲栈的缓冲深度一般有如下关系:DIDCDRDW 其中:DI是先行指令缓冲栈的缓冲深度 DC是先行操作栈的缓冲深度 DR是先行读数栈的缓冲深度 DW是后行写数栈的缓冲深度例如:IBM370/165机:DI4,DC3,DR2,DW1 我国研制的两台大型计算机:DI8,DCDR4,DW2 DI12,DCDR6,DW2,相关性,定义:指一段程序的相近指令之间存在某种 关系,这种关系可能影响指令的重叠执行。分类:数据相关、控制相关。数据相关:程序在执行一条指令
10、时指令所 要用到的指令、操作数、变址偏移量等正好是前面的指令的执行结果则必须等待前面指令写结果后才能进行。控制相关:由于程序的执行方向可能被改变而引起的相关。,数据相关性,数据相关分为:指令相关主存操作数相关通用寄存器相关变址相关,指令相关,定义:k:store R1,k+1 k+1:其中:结果地址(k)=指令地址(k+1),故称指令相关测试:把每条指令的结果地址与先行操作栈、指令分析器、先行指令缓冲栈中的所有指令地址比较,相等则有。办法:不允许指令修改;通过设置专门的执行指令把指令相关变成数据相关例:IBM370的执行指令:,EXE(执行),R1,X2,B2,D2,主存操作数相关,定义:k:
11、op A1,A2,A3;A1=(A2)op(A3)k+1:op A4,A5,A1;A4=(A5)op(A1)存在:结果地址(K)=主存操作数地址(K+1)则发生主存操作数相关。办法:推后处理,分析k,分析k+1,执行k,分析k+1(推后),执行k+1,结果写主存A1,读主存A1请求,时间t,通用寄存器相关,定义: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、指令分析推后一个周期3
12、、指令分析推后一个节拍4、采用专用的数据通道,第1拍,第2拍,第3拍,第4拍,写R1,读R1,读R2,执行k,分析k+1,执行k,分析k+1,写R1,读R2,读R1,通用寄存器相关(续),通用寄存器堆,锁存器,锁存器,运算器,专用通道,设置专用数据通道解决寄存器数据相关,变址相关,定义: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),称一次变址相关;若R1(k)=X2(k+2),称二次变址相关原因:发生二次变址相关的原因是写结果要
13、一段稳定时间,分析k,执行k,分析k+1,执行k+1,分析k+2,执行k+2,t1,t2,t2,办法:推后处理和设置专用通道,数据相关,数据相关的三种解决办法:1、避免数据相关(调整指令流);2、推后处理;3、设置专用的数据通路。,控制相关,引起控制相关的原因有:无条件转移、一般条件转移、复合条件转移、子程序调用、中断等。吸收型指令:在指令分析器中就执行完的指令。无条件转移、一般条件转移是吸收型指令。本节讨论几种转移指令引起的相关。,无条件转移引起的相关,程序:k:JMP L:L:分析:无条件转移是吸收型指令;指令L分在先行指令缓冲栈和不在两种情况。指令执行时序:,分析k-1,执行k-1,分析
14、k,取指令L,分析L,分析L,分析L+1,执行L,执行L,执行L+1,指令L不在指令缓冲栈:,指令L在指令缓冲栈:,方法:在先行指令缓冲栈入口设置指令分析器,一般条件转移引起的相关,程序: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在指令缓冲栈:,转移不成功,方法:降低转移成功的概率;减少转移成功的对先行控制 器的影响,复合条件转移引起的相关,程序:k:op L k+1:L
15、:分析:非吸收型指令执行时序:,分析k,执行k,分析k+1,取指令L,分析L,分析L,分析L+1,执行L,执行L,执行L+1,执行k+1,成功,指令L不在指令缓冲栈:,成功,指令L在指令缓冲栈:,转移不成功,方法:1、转移预测;2、对于短循环程序设置开门指令和关门指令。,转移预测技术,1、延时转移2、指令取消3、软件猜测:编译时是进行,如图:4、硬件猜测:在先行指令缓冲栈入口设置指令分析器,检测转移指令,有,则按目标地址预取5、设置两个先行指令缓冲栈:一个预取转移指令下面的程序;一个预取目标程序。6、设置专门的短循环程序的开门和关门指令,in,循环体,ii-1,i0,in,循环体,ii-1,i
16、=0,in,循环体,ii-1,i0,Y,N,N,N,Y,Y,一般条件转移,复合条件转移,原来程序,5.2 流水线技术,开发处理机内部的并行性方法空间并行性:设置多个独立的操作部件如多操作部件处理机、超标量处理机时间并行性:采用流水线技术不增加或只增加少量硬件就能使运算速度提高几倍如流水线处理机、超流水线处理机本节主要内容:,5.2.1 流水线工作原理5.2.2 流水线的分类5.2.3 线性流水线的性能分析5.2.4 非线性流水线的调度技术,洗衣店的例子,流水线是很自然的!,洗4 个人的衣物,顺序操作需要 8 个小时,如果使用流水线作业,将需要多少时间呢?,顺序操作,流水线作业,流水线作业洗4个
17、人的衣物只需要 3.5 个小时!,有关流水线的问题,流水线无法帮助解决单个任务的时间,有利于减少整个工作全部时间吞吐量多个任务同时操作需要不同的资源可能的加速比=流水线的段数流水线的速率受速度最慢的流水段的限制流水线各段长度不均会降低加速比充满流水线所需的时间和排空流水线所需的时间影响加速比会由于任务的相关而造成阻塞,流水线工作原理,1、简单流水线流水线的每一个阶段称为流水步、流水步骤、流水段、流水线阶段、流水功能段、功能段、流水级、流水节拍等在每一个流水段的末尾或开头必须设置一个寄存器,称为流水寄存器、流水锁存器、流水闸门寄存器等流水锁存器会增加每条指令的执行时间,但采用流水线之后整个程序的
18、执行时间会缩短为了简化,在一般流水线中不画出流水锁存器。,流水线工作原理,2、流水线的表示方法流水线的连接图表示方法表示流水线的逻辑关系,流水线的时空图表示方法 表示流水线的时间关系 流水线的预约表表示方法 将在非线性流水线中介绍 一般处理机的指令流水线为 4 至 12 个级 指令流水线等于和大于8级的称为超流水线处理机,一个浮点加法器流水线的时空图由求阶差、对阶、尾数加和规格化4个流水段组成,3、流水线时空图一条简单流水线的时空图,4、流水线的主要特点只有连续提供同类任务才能充分发挥流水线的效率对于指令流水线:要尽量减少因条件分支造成的“断流”对于操作部件:主要通过编译技术,尽量提供连续的相
19、同类型的操作。在流水线的每一个流水线段中都要设置一个流水锁存器。时间开销:流水线的执行时间加长,是流水线中需要增加的主要硬件之一。各流水段的时间应尽量相等流水线处理机的基本时钟周期等于时间最长的流水段的时间长度流水线需要有“装入时间”和“排空时间”Latency&throughput?,流水线技术在50年代后期被应用于处理器IBM Stretch-first general-purpose pipelined computerCDC 6600 use load/store design to achieve efficient pipelining.,流水线的分类,1、线性流水线与非线性流水线
20、流水线的各个流水段之间是否有反馈信号线性流水线(Linear Pipelining)每一个流水段都流过一次,而且仅流过一次线性流水线能够用流水线连接图唯一表示非线性流水线(Nonlinear Pipelining)在流水线的某些流水段之间有反馈回路或前馈回路。非线性流水线必须用流水线连接图流水线预约表等共同表示,2、按照流水线的级别来分处理机级流水线,又称为指令流水线例如:在采用先行控制器的处理机中,各功能部件之间的流水线,部件级流水线,即操作流水线。如浮点加法器流水线,处理机之间的流水线称为宏流水线(Macro Pipelining)每个处理机对同一个数据流的不同部分分别进行处理,3、单功能
21、流水线与多功能流水线单功能流水线:只能完成一种固定功能的流水线Cray-1计算机种有12条YH-1计算机有18条Pentium有一条5段的定点和一条8段的浮点流水线Pentium有两条定点指令流水线,一条浮点指令流水线。多功能流水线:流水线的各段通过不同的连接实现不同的功能Texas公司的ASC计算机中的8段流水线,能够实现:定点加减法、定点乘法浮点加法、浮点乘法逻辑运算、移位操作数据转换、向量运算等,4、静态流水线与动态流水线静态流水线:同一段时间内,多功能流水线中的各个功能段只能按照一种固定的方式连接,实现一种固定的功能只有连续出现同一种运算时,流水线的效率才能得到充分的发挥,动态流水线:
22、在同一段时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能,5、流水线的其他分类方法按照数据表示方式:标量流水线和向量流水线按照控制方式:同步流水线和异步流水线,顺序流水线与乱序流水线乱序流水线又称为无序流水线、错序流水线或异步流水线等,线性流水线的性能分析 衡量流水线性能的主要指标有:吞吐率、加速比和效率。1、吞吐率(Though Put)计算流水线吞吐率的最基本公式:其中:n为任务数,k为完成n个任务所用的时间。各段执行时间相等,输入连续任务情况下:完成n个连续任务需要的总时间为:Tk(kn1)t 其中:k 为流水线的段数,t为时钟周期。,吞吐率为:最大吞吐率为:各段执行
23、时间不相等,输入连续任务情况下:吞吐率为:最大吞吐率为:流水线各段执行时间不相等的解决办法,(1)将流水线的“瓶颈”部分再细分(如果可分的话)。,2、加速比(Speedup)计算流水线加速比的基本公式:各段执行时间相等,输入连续任务情况下:加速比为:最大加速比为:各段执行时间不相等,输入连续任务情况下,实际加速比为:,当流水线段数增加时,需要连续输入的任务数也必须增加,4、流水线最佳段数的选择 采用顺序执行方式完成一个任务的时间为t 在同等速度的k段流水线上执行一个任务的时间为:tkd 其中:d为流水锁存器的延迟时间 流水线的最大吞吐率为:流水线的总价格估计为:Cab k,其中:a为所有功能段
24、本身的总价格,b为每个锁存器的价格 把流水线的性 能价格比PCR定义为:求得到PCR的最大值为:,5、流水线性能分析举例 对于单功能线性流水线,输入连续任务的情况,通过上面给出的公式很容易计算出流水线的吞吐率、加速比和效率。例:用一条4段浮点加法器流水线求8个浮点数的和:ZABCDEFGH解:Z(AB)(CD)(EF)(GH),流水线工作原理流水线的分类线性流水线的性能分析非线性流水线的调度技术,标量处理机流水线技术,非线性流水线的调度技术 非线性流水线调度的任务是要找出一个最小的循环周期,按照这周期向流水线输入新任务,流水线的各个功能段都不会发生冲突,而且流水线的吞吐率和效率最高。1、非线性
25、流水线的表示 线性流水线能够用流水线连接图唯一表示 连接图不能用唯一表示非线性流水线的工作流程,因此,引入流水线预约表,与流水线预约表对应的流水线连接图,一张预约表可能与多个流水线连接图相对应,一个流水线连接图对应与多张预约表,2、非线性流水线的冲突 流水线的启动距离:连续输入两个任务之间的时间间隔 流水线的冲突:几个任务争用同一个流水段,3、无冲突调度方法,由及其学生于1971年提出 非线性流水线的禁止启动向量(集合):预约表中每一行任意两个“”之间的距离都计算出来,去掉重复的。上例中为(3,4,6)由禁止向量得到冲突向量:C(CmCm-1C2C1)其中:m是禁止向量中的最大值。如果i在禁止
26、向量中,则Ci1,否则Ci0。上例中 C(101100)。由冲突向量构造状态图:把冲突向量送入一个m位逻辑右移移位器;如果移位器移出0,用移位器中的值与初始冲突向量作“按位或”运算,得到一个新的冲突向量;否则不作任何处理;如此重复m次。对于中间形成的每一个新的冲突向量,也要按照这一方法进行处理。在初始冲突向量和所有的新形成的冲突向量之间用带箭头的线连接,当新形成的冲突向量出现重复时可以合并到一起。,例5.3:一条有4个功能段的非线性流水线,每个功能段的延迟 时间都相等,它的预约表如下:(1)写出流水线的禁止向量和初始冲突向量。(2)画出调度流水线的状态图。(3)求流水线的最小启动循环和最小平均
27、启动距离。(4)求平均启动距离最小的恒定循环。解:(1)禁止向量为:(2,4,6)初始冲突向量:101010(2)初始冲突向量逻辑右移2、4、6位时,不作任何处理,逻辑右移1、3、5和大于等于7时,要进行处理。,初始冲突向量右移1位之后:010101101010111111,初始冲突向量右移3位之后:000101101010101111,初始冲突向量右移5位之后:000001101010101011,初始冲突向量右移7位或大于7位后:还原到它本身。中间冲突向量101111右移5位之后:000001101010101011,中间冲突向量101011右移3位之后:00010110101010111
28、1,中间冲突向量101011右移5位之后:000001101010101011。,预约表与状态图是唯一对应,但不同的预约表也可能有相同的状态图。简单循环:状态图中各种冲突向量只经过一次的启动循环。简单循环的个数是有限的,由简单循环计算平均启动距离。(3)最小的启动循环为(1,7)和(3,5),平均启动距离为 4。(4)启动距离最小的恒定循环是(5)。,简单循环中所包含的每一个等待时间都来自此循环某一个状态的最小等待时间(输出弧)。,4、优化调度方法 于1972年提出流水线最小平均启动距离的限制范围(1)下限是预约表中任意一行里“”的最多个数。(2)小于或等于状态图中任意一个简单循环的平均启动距
29、离。(3)最小平均启动距离的上限是冲突向量中1的个数再加上1。1992年,又证明了上述限制范围。最有用的是第1条。预约表中“”最多的行一定是瓶颈流水段 采用预留算法来调度非线性流水线,可以达到最优调度:(1)确定最小平均启动距离(MAL)。预约表任一行中“”的最多个数(2)确定最小启动循环。一般恒定循环作为最小启动循环。(3)通过插入非计算延迟段-修改预约表实现最小启动循环。对于上面的例5.3:最小平均启动距离为2。最小启动循环为恒定循环(2)。任一行中与第1个“”的距离为2的倍数的周期都要预留出来。,每一行中与第1个“”的距离为2的倍数的位置都要预留出来。S3行的第2个“”从周期5延迟到周期
30、6。为此,S2行的第2个“”要向后延迟一个周期,从周期6延迟到周期7;S1行的第2个“”要向后延迟一个周期,从周期7延迟到周期8。实际上,只要在流水段S4的输出端到流水段S3的输入端中间插入一个非计算延迟D1。,在非线性流水线中,“”最多的流水段一定是“瓶颈“流水段。实现最优调度的目标是使“瓶颈”流水段处于忙碌状态,没有空闲周期。最优调度方法能够使非线性流水线的吞吐率、加速比和效率达到最优。,流水线的相关性,流水线的发生相关的可能性更大影响更严重分为:局部相关和全局相关局部相关:块内;全局相关:块间局部相关有:WR、RW、WW,B0,B1,B2,局部相关的原因及对策,1、顺序流动与乱序流动程序
31、:k:R0(R1)k+1:k+2:R2(R0)+(R3)k+3:k+4:k+5:顺序流动:任务在流水线中的流入顺序与流出顺序完全相同乱序流动:允许无数据相关的后续指令进入相关指令占有的功能段执行,并越过相关指令继续向前流动,局部相关的原因及对策,S1,S2,S3,S4,S5,S6,寄存器R0,读,写,专用路径,t,s,t,s,局部相关的原因及对策,程序:k:R0=R1R4 k+1:R6=R5+1 k+2:R2=R0R3 k+3:R3=R4-1 k+4:R2=R5 在乱序流动中存在三种相关:WR、RW、WW。,局部相关的原因及对策,数据相关的对策:1、延迟执行 2、建立专用的路径,分两类:(1)
32、Tomasulo算法:分散控制的公共数据总线;(2)CDC记分牌法:集中控制。数据重定向(专用路径):(1)先写后读数据相关(2)写-写数据相关,A,B,C,A,B,C,A,B,C,A,B,C,t,t+t,t,t,t+t,t+t,t+t,全局相关及其对策,转移的影响:(1)逻辑错误:第i+1条指令(R1)+(R2)R1)执行完,则寄存器内容写完,程序结果错.办法:形成条件码前不执行;执行但不写结果.(2)性能影响:TK-IF=(n+k-1)t+npq(k-1)t,i-1,i+1,i+2,i+k-3,i,i+k-2,p,p+1,p+k-4,p+k-3,形成条件码,转移指令,转移不成功,转移成功,
33、形成条件转移,全局相关及其对策,对策:1.延迟转移和指令取消技术 2.静态转移预测技术 3.动态转移预测技术 4.提前形成条件码中断的影响:分精确断点和不精确断点1.不精确断点硬件简单,但可能有逻辑错误,响应时间长.2.精确断点响应及时,但硬件复杂.,S1,S2,S3,S4,S5,S6,S7,S8,i+5,i+4,i+3,i+2,i+1,i,i-1,i-2,中断申请,不精确断点,不精确断点,5.3 超标量处理机和超流水线处理机,流水线处理机只有一条流水线、一个多功能操作部件 指令级并行度 ILP1本节主要内容:5.3.1 超标量处理机5.3.2 超流水线处理机5.3.3 超标量超流水线处理机,
34、超标量处理机,基本结构:多个操作部件.如:一个或多个通用寄存器堆;两个Cache;三种处理部件:定点处理单元,浮点处理单元,图形处理单元.例:Motorola公司的MC88110.,整数部件,整数部件,位操作部件,浮点加部件,乘法部件,图形部件,除法部件,图形部件,读数/存数部件,通用寄存器堆,扩展寄存器堆,目标指令Cache,指令分配/转移部件,数据Cache(8KB),指令Cache(8KB),32位地址总线,64位数据总线,系统总线,内部总线,单发射与多发射,单发射与多发射的时空图如下:,时间,时间,指令,指令,单发射与多发射处理机的流水线如下:,单发射与多发射,IF,ID,FA1,FA
35、2,FA3,MD1,MD2,MD3,AL,LS,WR,IF,ID,FA1,FA2,FA3,MD1,MD2,MD3,AL,LS,WR,IF,ID,WR,单发射与多发射,一个时钟周期内同时发射多条指令的处理机称为超标量处理机指令级并行度为:1ILPm为减少数据相关、控制相关或功能部件冲突设置先行控制窗口有先行控制窗口的结构如下图:,IF,ID,FA1,FA2,FA3,MD1,MD2,MD3,AL,LS,WR,IF,ID,WR,IF,ID,先行控制窗口,多流水线的调度,多流水线的调度必须软件和硬件结合多流水线的发射有顺序和乱序发射多流水线的完成有顺序和乱序完成三种组合:顺序发射顺序完成、顺序发射乱序
36、完成、乱序发射乱序完成。无先行控制窗口的多流水线只能实现顺序发射,有先行控制窗口的多流水线既能实现顺序发射,又能实现顺乱发射调度要注意相关和功能部件冲突程序:,I1:LOAD R1,A;R1(A)I2:FADD R2,R1;R2(R2)+(R1)I3:FMUL R3,R4;R3(R3)(R4)I4:FADD R4,R5;R4(R4)+(R5)I5:DEC R6;R6(R6)-1I6 FMUL R6,R7;R6(R6)(R7),多流水线的调度,顺序发射顺序完成,IF1,IF2,IF1,IF2,IF1,IF2,ID2,ID1,ID2,ID1,ID1,ID2,LS,WR1,FA1,MD1,AL,FA
37、2,FA1,MD2,MD1,FA3,FA2,MD3,MD2,WR2,FA3,MD3,WR2,WR1,WR1,WR2,IF1,IF2,IF1,IF2,IF1,IF2,ID2,ID1,ID2,ID1,ID1,ID2,LS,WR1,FA1,MD1,AL,FA2,FA1,MD2,MD1,FA3,FA2,MD3,MD2,WR2,FA3,MD3,WR2,WR1,WR1,WR2,I1I2I3I4I5I6,I1I2I3I4I5I6,顺序发射乱序完成,多流水线的调度,乱序发射乱序完成,IF1,IF2,IF3,IF1,IF2,IF1,ID2,ID1,ID1,ID3,ID2,ID1,LS,MD1,WR1,MD2,F
38、A2,AL,MD3,FA1,FA3,MD1,FA2,FA1,MD2,WR2,FA3,MD3,WR2,WR1,WR1,WR2,I1I2I3I4I5I6,超标量处理机的多功能部件可采用流水线,也可不采用流水线不采用流水线时功能冲突更大,超流水线处理机,指令执行时序,IF,WR,EX,ID,IF,WR,EX,ID,IF,WR,EX,ID,IF,WR,EX,ID,IF,WR,EX,ID,IF,WR,EX,ID,IF,WR,EX,ID,I1I2I3I4I5I6I7,超流水线处理机:一个周期内分时发射多条指令典型的结构:MIPS系列1ILPn,MIPS 4000处理机的流水线操作,指令译码,寄存器堆,指令
39、Cache,ALU,数据Cache,寄存器堆,标志检验,IF,IS,EX,RF,DF,DS,TC,WB,IF:取第一条指令;IS:取第二条指令;RF:读寄存器堆,指令译码;EX:执行指令;DF:取第一数据;DS:取第二数据;TC数据标志检验;WB:写回结果。,超标量超流水线处理机,指令时序:,时间,指令,定义:一个周期内分时发射多次,每次发射多条指令指令级并行度:1ILPm*n典型结构:DEC公司的Alpha21064,性能比较,1、性能从高到低依次是:超标量处理机、超标量超流水线处理机、超流水线处理机。因为:(1)超标量处理机一开始同时发射多条指令,超流水线处理机分时发射多条指令,超标量超流水线处理机介于两者之间。(2)条件转移造成的损失,超流水线处理机比超标量处理机大。(3)超标量处理机重复设置多套相同的指令执行部件,执行部件的冲突小。2、ILP较小时,性能随之增大变化较快,ILP较大时变化缓慢。3、对于特定的程序,由于数据和控制相关的存在,指令级并行度是确定的。,