计算机系统结构 第五章 标量处理机

上传人:mg****85 文档编号:49696136 上传时间:2018-08-01 格式:PPT 页数:216 大小:3.90MB
返回 下载 相关 举报
计算机系统结构 第五章 标量处理机_第1页
第1页 / 共216页
计算机系统结构 第五章 标量处理机_第2页
第2页 / 共216页
计算机系统结构 第五章 标量处理机_第3页
第3页 / 共216页
计算机系统结构 第五章 标量处理机_第4页
第4页 / 共216页
计算机系统结构 第五章 标量处理机_第5页
第5页 / 共216页
点击查看更多>>
资源描述

《计算机系统结构 第五章 标量处理机》由会员分享,可在线阅读,更多相关《计算机系统结构 第五章 标量处理机(216页珍藏版)》请在金锄头文库上搜索。

1、第五章 标量处理机*本章主要内容5.1 先行控制技术5.2 流水线技术5.3 相关性分析技术5.4 超标量处理机5.5 超流水线处理机5.6 超标量超流水线处理机标量处理机只有标量数据表示和标量指令系统的处理机称为标量处 理机,是最常用最普通的处理机。设计处理机的主要任务就是缩短解释指令的时间,提高 处理机指令的执行速度: 提高处理机的工作主频。5、60年代主要采用这种技术,每3、 4年处理机的速度要提高一个数量级。 采用更好的算法和设计更好的功能部件,如采用RISC等。 多条指令并行执行。指令级的并行技术。 流水线技术。 处理机中设置多个独立的功能部件,如浮点运算器,定点运算器, 访存部件等

2、。 超长指令技术。5.1 先行控制技术先行控制技术的关键是采用缓冲技术和预处理技术,以及两者都采用,通过对指令流和数据流的预处理和缓冲,能够尽量使指令分析器和指令执行部件独立工作并始终处于忙碌状态。 5.1.1 指令的重叠执行方式 5.1.2 先行控制方式的原理 5.1.3 处理机结构 5.1.4 指令执行序列 5.1.5 先行缓冲栈 5.1.6 缓冲深度的设计方法指令的重叠执行方式一条指令的执行可以分为多个阶段,具体分法视处理机而定,一般 可以分为三个阶段: 取指令是指按照指令计数器的内容访问主存,取出一条指令送到指令寄 存器。 分析指令是指对指令的操作码进行译码,按照给定的寻址方式和地址字

3、 段内容形成操作数地址,并用这个地址读出操作数,操作数可以在主存 也可以在寄存器。 执行指令是根据操作码的要求,完成指令规定的功能,把结果写到主存 或者寄存器。 指令分析或者指令执行阶段还得修改指令计数器的更新,为下一条指令 作准备。指令的重叠执行方式1.顺序执行方式执行n条指令所用的时间为:如果每段时间都为t,则执行n条指令所用的时间为:T3 n t主要优点:控制简单,节省设备。主要缺点:速度慢,功能部件的利用率低。2.一次重叠执行方式如果两个过程的时间相等,则执行n条指令的时间为:T(1+2n)t主要优点: 指令的执行时间缩短, 功能部件的利用率明显提高。主要缺点: 需要增加一些硬件, 控

4、制过程稍复杂。指令的重叠执行方式(续) 3.二次重叠执行方式如果三个过程的时间相等,执行n条指令的时间为:T(2n)t在理想情况下,处理机中同时有三条指令在执行。处理机的结构要作比较大的改变,需要采用先行控制技术。 指令的重叠执行方式(续) 先行控制方式的原理1.采用二次重叠执行方式必须解决两个问题:(1)有独立的取指令部件、指令分析部件和指令执行部件把一个集中的指令控制器,分解成三个独立的控制器:存储控制器、指令控制器、运算控制器。(2)要解决访问主存储器的冲突问题取指令、分析指令、执行指令都可能要访问存储器。2.解决访存冲突的方法:(1)采用低位交叉存取方式: 这种方法不能根本解决冲突问题

5、。 取指令、读操作数、写结果。(2)主存分为两个独立的存储器:独立的指令存储器和数据存储器。 如果再规定,执行指令所需要的操作数和执行结果只写到通用寄存器,则取指令、分析指令和执行指令就可以同时进行。 在许多高性能处理机中,有独立的指令Cache和数据Cache。这种结构被称为哈佛结构。先行控制方式的原理(续)(3)采用先行控制技术采用先行控制技术的关键是缓冲技术和预处理技术。缓冲技术通常用在工作速度不固定的两个功能部件之间。设置缓冲栈的目的是用来以平滑功能部件之间的工作速度。在采用了缓冲技术和预处理技术之后,运算器能够专心于数据的运算,从而大幅度提高程序的执行速度。先行控制方式的原理(续)处

6、理机结构1.三个独立的控制器: 存储控制器、指令控制器、运算控制器。2.四个缓冲栈: 先行指令缓冲栈、先行读数缓冲栈、先行操作栈、后行写数栈。3.处理机组成4.先行指令缓冲栈的组成作用:只要指令缓冲栈没有充满,就自动发出取指令的请求。指令分析器每分析完一条指令,自动向指令缓冲栈发出取下一条指 令的请求,指令取出后就把先行指令缓冲栈中的指令作废。分析指令速度和从主存取指令的速度是随机的,指令缓冲栈的指令 数目是动态的。设置两个程序计数器: 先行程序计数器PC1,用来指示取指令, 现行程序计数器PC,记录指令分析器正在分析的指令地址。处理机结构(续)处理机结构(续)先行缓冲站的组成指令缓冲存储器堆

7、,采用先进先出的方式,保证指令的执行顺序不致混乱 。处理机结构(续)先行控制方式中的一次重叠执行重叠部分,无论谁先结束,都不能提前执行下一条指令,需要等待。无论任何时刻,在指令分析部件和指令执行部件内都只有相邻的两条指令重叠执行,处理机只需要设置一套指令分析部件,指令控制器;一套指令执行部件,运算控制器和运算器。控制方式简单。所需要时间为T=(1+n)t处理机结构(续)5.存在的主要问题:计算机指令系统复杂,各类指令“分析”和“执行”的时间相差很大,分析指令和执行指令常常相互等待,造成部件的浪费。分析k+1操作所需要的操作数正好是执行k的结果,不能重叠执行,发生数据相关,还有控制相关,变址相关

8、。转移或转子程序指令时,程序的执行过程不是顺序的,先行指令缓冲栈中预取指令和分析的下一条指令都可能要作废。指令执行时序设置了指令缓冲栈,取指令的时间就可以忽略不计。一条指令的执行可分为2个过程。1.分析指令和执行指令时间不相等时的情况。指令执行时序2.采用先行缓冲栈的指令执行过程先行读数栈,先行操作栈,后行写数栈。理想情况下,指令执行部件应该一直忙碌。连续执行n条指令的时间为:先行缓冲栈设置先行缓冲栈的目的:使指令分析器和指令执行部件能够独立工作。1.先行指令缓冲栈:处于主存储器与指令分析器之间。用它来平滑主存储器取指令和指令分析器使用指令之间的速度差异。 RR型指令,不必处理,直接送先行缓冲

9、栈。 RS型指令,主存有效地址送先行读数栈,用该先行读数栈的寄存器编号替换指令中的主存地址码部分,形成RR*指令送先行缓冲栈。 RI型指令,指令中的立即数送先行读数栈,用该先行读数栈的寄存器编号替换指令中的立即数部分,形成RR*指令送先行缓冲栈。 转移指令,一般在指令分析器中直接执行。2.先行操作栈处于指令分析器和运算控制器之间。使指令分析器和运算器能够各自独立工作。采用先进先出方式工作,由指令寄存器堆和控制逻辑组成。先行缓冲栈(续)3.先行读数栈处于主存储器与运算器之间。平滑运算器与主存储器的工作。每个缓冲寄存器由地址寄存器、操作数寄存器和标志三部分组成。也可以把地址寄存器和操作数寄存器合为

10、一个。当收到从指令分析器中送来的有效地址时,就向主存申请读操作数。读出的操作数存放在操作数寄存器中或覆盖掉地址寄存器中的地址。先行缓冲栈(续)4.后行写数栈每个后行缓冲寄存器由地址寄存器、数据寄存器和标志三部分组成。指令分析器遇到向主存写结果的指令时,把形成的有效地址送入后行写数栈的地址寄存器中,并用该地址寄存器的编号替换指令的目的地址部分,形成RR*指令送入先行操作栈。当运算器执行这条RR*型写数指令时,只要把写到主存的数据送到后行写数栈的数据寄存器中即可。先行缓冲栈(续)先行缓冲栈(续)5.采用先行控制方式时一个程序的执行情况:缓冲深度的设计方法以静态分析为主,通过模拟来确定缓冲深度。1.

11、先行指令缓冲栈的设计考虑两种极端情况:假设缓冲深度为DI(1)先行指令缓冲栈已经充满 指令流出的速度最快,例如连续分析RR型指令,设这种指令序列的最大长度为L1,平均分析一条这种指令的时间为t1。 指令流入的速度最慢,设平均取一条指令的时间为t2。从主存储器中取到先行指令缓冲栈中的指令条数是L1DI条。 应该满足如下关系:L1 t1(LIDI) t2 计算出缓冲深度为: 如果这种指令流的连续长度超过L1,则先行指令缓冲栈被取空,指令分析器没有指令可分析,被迫处于等待状态。缓冲栈失去作用。(2)先行指令缓冲栈原来为空 输入端指令流入的速度最快,每次取指令的时间最短;设这种指令序列的最大长度为 L

12、2,平均取一条这种指令的时间为 t2;缓冲深度的设计方法(续) 输出端指令流出的速度最慢,指令分析器连续分析最难分析的指令;设平均分析一条指令的时间为 t1。分析的指令条数是L2DI条。 应该满足如下关系:(L2DI) t1LI t2 计算出缓冲深度为: 如果这种指令流的连续长度超过L2,先行指令缓冲栈被完全充满,失去缓冲作用。缓冲深度的设计方法(续)2.设计举例在一般处理机中连续执行短指令的概率大。例:一个采用先行控制方式的处理机,指令分析器分析一条指令用一个周期,到主存储器中取一条指令装入先行指令缓冲栈平均用4个周期,如果这种指令的平均长度为9,即90的指令是执行时间短的指令。解:计算先行

13、指令缓冲栈的缓冲深度为:缓冲深度的设计方法(续)3.先行指令缓冲栈的工作时间关系第1个周期,取走指令k+1,请求取指令。 第4个周期末尾,指令k+8取到先行指令缓冲栈。 第8个周期末尾,指令k+9取到先行指令缓冲栈。 第9个周期,分析指令k+9,先行指令缓冲栈空。 第10个周期,指令分析器等待。缓冲深度的设计方法(续)4.其余缓冲栈的设计原则一般有关系:DIDCDRDW其中:DI是先行指令缓冲栈的缓冲深度,DC是先行操作栈的缓冲深度,DR是先行读数栈的缓冲深度,DW是后行写数栈的缓冲深度。例如:IBM370/165机:DI4,DC3,DR2,DW1。我国研制的两台大型计算机:DI8,DCDR4

14、,DW2。DI12,DCDR6,DW2。缓冲深度的设计方法(续)数据相关数据相关: 在执行本条指令的过程中,如果用到的指令、操作数、变址量等是前面指令的执行结果,这种相关称为数据相关。控制相关: 由条件分支指令、转子程序指令、中断等引起的相关。解决数据相关的方法有两种: 推后分析法,遇到相关数据,推后本条指令的分析,直至所需要的数据写入到相关的存储单元。 设置专用路径。不必等到所需要的数据写入到相关存储单元,而是经专门设置的数据通路读取所需要的数据。1.指令相关发生指令相关的情况:n: STORE R1, n+1n+1: 满足关系: 结果地址(n)指令地址(n+1)当第n条指令还没有把执行结果

15、写到主存之前,取出的第n+1条指令显然是错误的。在k个流水段的流水线处理机中,第n条指令要修改从第n+1到第n+ k 指令中的任意一条指令,都可能造成程序执行结果发生错误。数据相关(续)在采用先行控制方式的处理机中,如果执行部件正在执行 第n条指令,与下述情况之一发生相关,都可能造成程序执 行结果发生错误。存放在先行操作栈中的指令正在指令分析器中分析的指令已经预取到先行指令缓冲栈中的指令指令执行结果还在后行缓冲栈中的指令更严重的是:有些分支指令,可能已经在指令分析器中执行完成。 数据相关(续)解决指令相关的根本办法是:在程序执行过程中不允许修改指令。现代程序设计方法要求程序具有再入性,可以被递归调用等,也要求不修改指令。在IBM370系列机中,用“执行指令”来解决:在程序执行过程中既能够修改指令,程序又具有再入性。“执行指令”执行由第二地址(X2)+(B2)+D2)决定的主存数据区中的指令。数据相关(续)2.主存操作数相关发生主存操作数相关的指令序列:n:OP A1,A2,A3 ;A1(A2) OP (A3)n+1:OP A4,A1,A5 ;A4(A1) OP (A5)出现下列情况之一,A1、A2、A3是主存地址,就发生主存操作数相关:A1(n) A2(n1)A1(n) A3(n1)解决办法: 运算结果写到通用寄存

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号