第5章 标量处理机.ppt
《第5章 标量处理机.ppt》由会员分享,可在线阅读,更多相关《第5章 标量处理机.ppt(180页珍藏版)》请在麦多课文档分享上搜索。
1、第5章 标量处理机,5.1 先行控制技术 5.2 流水线技术 5.3 相关性分析技术 5.4 超标量处理机 5.5 超流水线处理机 5.6 超标量超流水线处理机,5.1 先行控制技术,5.1.1 指令的重叠执行方式 5.1.2 先行控制方式的原理 5.1.3 处理机结构 5.1.4 指令执行序列 5.1.5 先行缓冲栈 5.1.6 缓冲深度的设计方法,5.1.1 指令的重叠执行方式,1.顺序执行方式 执行n条指令所用的时间为:如果每段时间都为t,则执行n条指令所用的时间为:T3 n t主要优点:控制简单,节省设备 主要缺点:速度慢,功能部件的利用率低,2.一次重叠执行方式 如果两个过程的时间相
2、等,则执行n条指令的时间为:T(1+2n)t主要优点:指令的执行时间缩短,功能部件的利用率明显提高。 主要缺点:需要增加一些硬件,控制过程稍复杂。,3.二次重叠执行方式 如果三个过程的时间相等,执行n条指令的时间为:T(2n)t 在理想情况下,处理机中同时有三条指令在执行。 处理机的结构要作比较大的改变,需要采用先行控制技术。,5.1.2 先行控制方式的原理,1.采用二次重叠执行方式必须解决两个问题: (1)有独立的取指令部件、指令分析部件和指令执行部件把一个集中的指令控制器,分解成三个独立的控制器:存储控制器、指令控制器、运算控制器 (2)要解决访问主存储器的冲突问题取指令、分析指令、执行指
3、令都可能要访问存储器,2.解决访存冲突的方法: (1)采用低位交叉存取方式:这种方法不能根本解决冲突问题。指令、读操作数、写结果。 (2)两个独立的存储器:独立的指令存储器和数据存储器。 如果再规定,执行指令所需要的操作数和执行结果只写到通用寄存器,则取指令、分析指令和执行指令就可以同时进行。 在许多高性能处理机中,有独立的指令Cache和数据Cache。这种结构被称为哈佛结构。,(3)采用先行控制技术采用先行控制技术的关键是缓冲技术和预处理技术。 缓冲技术通常用在工作速度不固定的两个功能部件之间。设置缓冲栈的目的是用来以平滑功能部件之间的工作速度。 在采用了缓冲技术和预处理技术之后,运算器能
4、够专心于数据的运算,从而大幅度提高程序的执行速度。,5.1.3 处理机结构,1.三个独立的控制器: 存储控制器、指令控制器、运算控制器。 2.四个缓冲栈: 先行指令缓冲栈、先行读数缓冲栈、先行操作栈、后行写数栈。 3.处理机组成,4.先行指令缓冲栈的组成 作用:只要指令缓冲栈没有充满,就自动发出取指令的请求。设置两个程序计数器: 先行程序计数器PC1,用来指示取指令, 现行程序计数器PC,记录指令分析器正在分析的指令地址。 5.存在的主要问题: 各类指令“分析”和“执行”的时间相差很大 数据相关 转移或转子程序指令,先行缓冲站的组成,5.1.4 指令执行时序,设置了指令缓冲栈,取指令的时间就可
5、以忽略不计。 一条指令的执行可分为2个过程 1.分析指令和执行指令时间不相等时的情况,2.采用先行缓冲栈的指令执行过程先行读数栈,先行操作栈,后行写数栈。理想情况下,指令执行部件应该一直忙碌。连续执行n条指令的时间为:,5.1.5 先行缓冲栈,设置先行缓冲栈的目的:使指令分析器和指令执行部件能够独立工作。 1.先行指令缓冲栈: 处于主存储器与指令分析器之间 用它来平滑主存储器取指令和指令分析器使用指令之间的速度差异 RR型指令,不必处理,直接送先行缓冲栈 RS型指令,主存有效地址送先行读数栈,用该先行读数栈的寄存器编号替换指令中的主存地址码部分,形成RR*指令送先行缓冲栈,RI型指令,指令中的
6、立即数送先行读数栈,用该先行读数栈的寄存器编号替换指令中的立即数部分,形成RR*指令送先行缓冲栈 转移指令,一般在指令分析器中直接执行。 2.先行操作栈 处于指令分析器和运算控制器之间 使指令分析器和运算器能够各自独立工作。 采用先进先出方式工作,由指令寄存器堆和控制逻辑组成。,3.先行读数栈 处于主存储器与运算器之间 滑运算器与主存储器的工作 每个缓冲寄存器由地址寄存器、操作数寄存器和标志三部分组成。也可以把地址寄存器和操作数寄存器合为一个。 当收到从指令分析器中送来的有效地址时,就向主存申请读操作数。 读出的操作数存放在操作数寄存器中或覆盖掉地址寄存器中的地址。,4.后行写数栈 每个后行缓
7、冲寄存器由地址寄存器、数据寄存器和标志三部分组成。 指令分析器遇到向主存写结果的指令时,把形成的有效地址送入后行写数栈的地址寄存器中,并用该地址寄存器的编号替换指令的目的地址部分,形成RR*指令送入先行操作栈。 当运算器执行这条RR*型写数指令时, 只要把写到主存的数据送到后行写数栈的数据寄存器中即可。,5.采用先行控制方式时一个程序的执行情况:,5.1.6 缓冲深度的设计方法,以静态分析为主,通过模拟来确定缓冲深度。 1.先行指令缓冲栈的设计考虑两种极端情况:假设缓冲深度为DI (1)先行指令缓冲栈已经充满 指令流出的速度最快,例如连续分析RR型指令,设这种指令序列的最大长度为L1,平均分析
8、一条这种指令的时间为t1; 指令流入的速度最慢,设平均取一条指令的时间为t2。从主存储器中取到先行指令缓冲栈中的指令条数是L1DI条。,应该满足如下关系:L1 t1(LIDI) t2计算出缓冲深度为:如果这种指令流的连续长度超过L1,则先行指令缓冲栈失去作用。 (2)先行指令缓冲栈原来为空 输入端指令流入的速度最快,每次取指令的时间最短;设这种指令序列的最大长度为 L2,平均取一条这种指令的时间为 t2;,输出端指令流出的速度最慢,指令分析器连续分析最难分析的指令;设平均分析一条指令的时间为 t1。分析的指令条数是L2DI条。 应该满足如下关系:(L2DI) t1LI t2计算出缓冲深度为:如
9、果这种指令流的连续长度超过L2,先行指令缓冲栈失去缓冲作用。,2.设计举例 在一般处理机中连续执行短指令的概率大。 例5.1:一个采用先行控制方式的处理机,指令分析器分析一条指令用一个周期,到主存储器中取一条指令装入先行指令缓冲栈平均用4个周期,如果这种指令的平均长度为9,即90的指令是执行时间短的指令。 解:计算先行指令缓冲栈的缓冲深度为:,3.先行指令缓冲栈的工作时间关系第1个周期,取走指令k+1,请求取指令 第4个周期末尾,指令k+8取到先行指令缓冲栈 第8个周期末尾,指令k+9取到先行指令缓冲栈 第9个周期,分析指令k+9,先行指令缓冲栈空 第10个周期,指令分析器等待,4.其余缓冲栈
10、的设计原则 一般有关系:DIDCDRDW其中:DI是先行指令缓冲栈的缓冲深度,DC是先行操作栈的缓冲深度,DR是先行读数栈的缓冲深度,DW是后行写数栈的缓冲深度。 例如:IBM370/165机:DI4,DC3,DR2,DW1。我国研制的两台大型计算机:DI8,DCDR4,DW2。DI12,DCDR6,DW2。,空间并行性:设置多个独立的操作部件时间并行性:分时使用同一个部件的不同部分5.2.1 流水线工作原理5.2.2 流水线的分类5.2.3 线性流水线的性能分析5.2.4 非线性流水线的调度,5.2 流水线技术,5.2.1 流水线工作原理,1. 流水寄存器 流水线的每一个阶段称为流水步、流水
11、步骤、流水段、流水线阶段、流水功能段、功能段、流水级、流水节拍等。 在每一个流水段的末尾或开头必须设置一个寄存器,称为流水寄存器、流水锁存器、流水闸门寄存器等。 加入流水寄存器,会增加指令的执行时间。 在一般流水线时空图中不画出流水寄存器。,2.一种指令流水线 一般4至12个流水段,8个流水段的称为超流水线处理机3.流水线时空图,一个浮点加法器流水线的时空图,4.流水线的主要特点 只有连续提供同类任务才能发挥流水线效率 尽量减少因条件分支造成的“断流” 通过编译技术提供连续的相同类型操作 每个流水线段都要设置一个流水寄存器 时间开销:流水线的执行时间加长 是流水线中需要增加的主要硬件 各流水段
12、的时间应尽量相等流水线处理机的基本时钟周期等于时间最长的流水段的时间长度。 流水线需要有“装入时间”和“排空时间”,5.2.2 流水线的分类,1.线性流水线与非线性流水线流水线的各个流水段之间是否有反馈信号 线性流水线(Linear Pipelining):每一个流水段都流过一次,而且仅流过一次 非线性流水线(Nonlinear Pipelining):某些流水段之间有反馈回路或前馈回路。 线性流水线能够用流水线连接图唯一表示 非线性流水线必须用流水线连接图和流水线预约表共同表示,2.按照流水线的级别来分处理机级流水线,又称为指令流水线。例如:在采用先行控制器的处理机中,各功能部件之间的流水线
13、,部件级流水线(操作流水线)如浮点加法器流水线宏流水线(Macro Pipelining)处理机之间的流水线称,每个处理机对同一个数据流的不同部分分别进行处理。,3. 单功能流水线与多功能流水线单功能流水线:只能完成一种固定功能的流水线。Cray-1计算机种有12条,YH-1计算机有18条Pentium有一条5段定点和一条8段浮点流水线。Pentium有两条定点和一条浮点指令流水线。多功能流水线:流水线的各段通过不同连接实现不同功能Texas公司的ASC机,8段流水线,能够实现:定点加减法、定点乘法、浮点加法、浮点乘法、逻辑运算、移位操作、数据转换、向量运算等。,4.静态流水线与动态流水线 静
14、态流水线:同一段时间内,各个功能段只能按照一种方式连接,实现一种固定的功能。,动态流水线:在同一段时间内,各段可以按照不同的方式连接,同时执行多种功能。,5.流水线的其他分类方法 按照数据表示方式:标量流水线和向量流水线 按照控制方式:同步流水线和异步流水线顺序流水线与乱序流水线,乱序流水线又称为无序流水线、错序流水线或异步流水线等。,5.2.3 线性流水线的性能分析,主要指标:吞吐率、加速比和效率 1.吞吐率(Though Put) 流水线吞吐率的最基本公式:其中:n为任务数,k为完成n个任务所用的时间。 各段执行时间相等,输入连续任务情况下,完成n个任务需要的总时间为:Tk(kn1)t其中
15、:k 为流水线的段数,t为时钟周期。,Tk= k t + (n-1) t = (k+n-1)t,吞吐率为:最大吞吐率为:,各段时间不等,完成n个连续任务:吞吐率:最大吞吐率:流水线各段执行时间不相等的解决办法,(1)将“瓶颈”部分再细分(如果可分的话),2.加速比(Speedup)计算加速比的基本公式:各段执行时间相等,输入连续任务情况下,加速比:最大加速比:各段时间不等,输入连续任务情况下, 实际加速比为:,当流水线段数增加时,需要连续输入的任务数也必须增加,3.效率(Efficiency) 计算流水线效率的一般公式:各流水段时间相等,输入n个连续任务,流水线的效率为:最高效率为: 各流水段
16、时间不等,输入n个连续任务,流水线效率为:,各段设备量或价格不等时,流水线的效率为:即:其中,aik,且k。 流水线的吞吐率、加速比与效率的关系:因为:因此:ETPt,SkE,4. 流水线最佳段数的选择 采用顺序执行方式完成一个任务的时间为t 在同等速度的 k 段流水线上执行一个任务的时间为:tkd (d为流水锁存器的延迟时间) 流水线的最大吞吐率为:P=1(tkd) 流水线的总价格估计为:Cab k,其中:a为功能段身的总价格,b为每个锁存器的价格A.G.Larson把流水线的性能价格比PCR定义为:,求PCR的最大值为:,5. 流水线性能分析举例 对于单功能线性流水线,输入连续任务的情况,
17、通过上面给出的公式很容易计算出流水线的吞吐率、加速比和效率。 对于输入不连续任务,或多功能流水线,通常采用基本公式计算。 例5.2:用一条4段浮点加法器流水线求8个浮点数的和:ZABCDEFGH,解:Z(AB)(CD)(EF)(GH),解:,5.2.4 非线性流水线的调度,非线性流水线调度的任务是要找出一个最小的循环周期,按照这周期向流水线输入新任务,流水线的各个功能段都不会发生冲突,而且流水线的吞吐率和效率最高。 1.非线性流水线的表示 线性流水线能够用流水线连接图唯一表示 对于非线形流水线,连接图不能唯一表示工作流程,因此,引入流水线预约表 例如:,非线形流水线的连接图和预约表,一张预约表
18、可能与多个流水线连接图相对应,一个流水线连接图对应与多张预约表,2.非线性流水线的冲突启动距离:连续输入两个任务之间的时间间隔流水线冲突:几个任务争用同一个流水段,3.无冲突调度方法 由E.S.Davidson及其学生于1971年提出 禁止向量:预约表中每一行任意两个“”之间距离的集合。上例中为(3,4,6) 冲突向量:C(CmCm-1C2C1)其中:m是禁止向量中的最大值。如果i在禁止向量中,则Ci1,否则Ci0。上例中C(101100),例5.3:一条4功能段的非线性流水线,每个功能段的延迟时间都相等,它的预约表如下:(1)写出流水线的禁止向量和初始冲突向量。(2)画出调度流水线的状态图。
19、(3)求最小启动循环和最小平均启动距离。(4)求平均启动距离最小的恒定循环。,解: (1)禁止向量为:(2,4,6)初始冲突向量:S = 101010 (2)构造状态图S逻辑右移2、4、6位时,不作任何处理,逻辑右移1、3、5和大于等于7时:S右移1位之后:010101101010111111,S右移3位之后:000101101010101111,S右移5位之后:000001101010101011,S右移7位或大于7位后:还原到它本身。,101111右移5位之后:000001101010101011, 101011右移3位之后:000101101010101111, 101011右移5位之后
20、:000001101010101011。,简单循环:状态图中各种冲突向量只经过一次的启动循环。 (3)最小的启动循环为(1,7)和(3,5),平均启动距离为 4。 (4)启动距离最小的恒定循环为(5),4.优化调度方法 L.E.Shar于1972年提出流水线最小平均启动距离的限制范围:(1)最小平均启动距离的下限是预约表中任意一行里“”的最多个数。(2)最小平均启动距离小于等于状态图中任意一个简单循环的平均启动距离。(3)最小平均启动距离的上限是冲突向量中1的个数再加上1。 1992年,L.E.Shar又证明了上述限制范围。 最有用的是第1条。预约表中“”最多的行一定是瓶颈流水段,对于例5.3
21、的预约表,在同一行中“”最多的为2个,因此,最小平均距离可以达到2。 最小启动循环可以是(2)、(1,3)、(1,1,4)、(1,2,3)、。现取恒定循环(2)。 每一行中与第1个“”的距离为2的倍数的位置都要预留出来。S3行的第2个“”从周期5延迟到周期6。为此,S2行的第2个“”从周期6延迟到周期7;S1行的第2个“”从周期7延迟到周期8。 实际上,只要在流水段S4的输出端到流水段S3的输入端中间插入一个非计算延迟D1。,在非线性流水线中,“”最多的流水段一定是“瓶颈“流水段。 实现最优调度的目标是使“瓶颈”流水段处于忙碌状态,没有空闲周期。 最优调度方法能够使非线性流水线的吞吐率、加速比
22、和效率达到最优。,5.3 相关性分析技术,5.3.1 数据相关 5.3.2 控制相关 5.3.3 条件分支对流水线的影响 5.3.4 静态分支预测技术 5.3.5 动态分支预测技术 5.3.6 提前形成条件码 5.3.7 精确断点与不精确断点,5.3.1 数据相关,数据相关:在执行本条指令的过程中,如果用到的指令、操作数、变址量等是前面指令的执行结果,这种相关称为数据相关。 控制相关:由条件分支指令、转子程序指令、中断等引起的相关。 解决数据相关的方法有两种: 推后处理 设置专用路径。,1.指令相关 发生指令相关的情况:n: STORE R1, n+1n+1: 满足关系: 结果地址(n)指令地
23、址(n+1) 当第n条指令还没有把执行结果写到主存之前,取出的第n+1条指令显然是错误的。 在k个流水段的流水线处理机中,第n条指令要修改从第n+1到第n+ k 指令中的任意一条指令,都可能造成程序执行结果发生错误。,在采用先行控制方式的处理机中,如果执行部件正在执行第n条指令,与下述情况之一发生相关,都可能造成程序执行结果发生错误。 存放在先行操作栈中的指令 正在指令分析器中分析的指令 已经预取到先行指令缓冲栈中的指令 指令执行结果还在后行缓冲栈中的指令 更严重的是:有些分支指令,可能已经在指令分析器中执行完成。,解决指令相关的根本办法是:在程序执行过程中不允许修改指令。 现代程序设计方法要
24、求程序具有再入性,可以被递归调用等,也要求不修改指令。 在IBM370系列机中,用“执行指令”来解决:在程序执行过程中既能够修改指令,程序又具有再入性。“执行指令”执行由第二地址(X2)+(B2)+D2)决定的主存数据区中的指令。,2.主存操作数相关 发生主存操作数相关的指令序列:n:OP A1,A2,A3 ;A1(A2) OP (A3)n+1:OP A1,A2,A3 ;A1(A2) OP (A3) 出现下列情况之一,就发生主存操作数相关:A1(n) A2(n1)A1(n) A3(n1) 解决办法: 运算结果写到通用寄存器,而不写到主存 对于访问主存储器的请求,写结果的优先级高于读操作数。,3
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 标量 处理机 PPT
