计算机系统结构-第五章-标量处理机课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《计算机系统结构-第五章-标量处理机课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 结构 第五 标量 处理机 课件
- 资源描述:
-
1、第五章 标量处理机2本章主要内容本章主要内容5.1 5.1 先行控制技术先行控制技术5.2 5.2 流水线技术流水线技术5.3 5.3 相关性分析技术相关性分析技术5.4 5.4 超标量处理机超标量处理机5.5 5.5 超流水线处理机超流水线处理机5.6 5.6 超标量超流水线处理机超标量超流水线处理机3标量处理机标量处理机只有只有标量数据表示标量数据表示和和标量指令系统标量指令系统的处理机称为标量处的处理机称为标量处理机,是理机,是最常用最普通最常用最普通的处理机。的处理机。设计处理机的主要任务就是缩短解释指令的时间,提高设计处理机的主要任务就是缩短解释指令的时间,提高处理机指令的执行速度:
2、处理机指令的执行速度:1.提高处理机的工作主频提高处理机的工作主频。5、60年代主要采用这种技术,每年代主要采用这种技术,每3、4年处理机的速度要提高一个数量级。年处理机的速度要提高一个数量级。2.采用更好的算法和设计更好的功能部件采用更好的算法和设计更好的功能部件,如采用,如采用RISC等。等。3.多条指令并行执行多条指令并行执行。指令级的并行技术。指令级的并行技术。流水线技术。流水线技术。处理机中设置多个独立的功能部件,如浮点运算器,定点运算器,处理机中设置多个独立的功能部件,如浮点运算器,定点运算器,访存部件等。访存部件等。超长指令技术。超长指令技术。45.1 5.1 先行控制技术先行控
3、制技术先行控制技术的关键是采用缓冲技术和预处理技术,以及两者都采用,先行控制技术的关键是采用缓冲技术和预处理技术,以及两者都采用,通过对通过对指令流指令流和和数据流数据流的预处理和缓冲,能够尽量使指令分析器和指的预处理和缓冲,能够尽量使指令分析器和指令执行部件令执行部件独立工作独立工作并并始终处于忙碌状态始终处于忙碌状态。5.1.1 5.1.1 指令的重叠执行方式指令的重叠执行方式5.1.2 5.1.2 先行控制方式的原理先行控制方式的原理5.1.3 5.1.3 处理机结构处理机结构5.1.4 5.1.4 指令执行序列指令执行序列5.1.5 5.1.5 先行缓冲栈先行缓冲栈5.1.6 5.1.
4、6 缓冲深度的设计方法缓冲深度的设计方法5指令的重叠执行方式指令的重叠执行方式一条指令的执行可以分为多个阶段,具体分法视处理机而定,一般可一条指令的执行可以分为多个阶段,具体分法视处理机而定,一般可以分为三个阶段:以分为三个阶段:取指令取指令是指按照指令计数器的内容访问主存,取出一条指令送到指令寄是指按照指令计数器的内容访问主存,取出一条指令送到指令寄存器。存器。分析指令分析指令是指对指令的操作码进行译码,按照给定的寻址方式和地址字是指对指令的操作码进行译码,按照给定的寻址方式和地址字段内容形成操作数地址,并用这个地址读出操作数,操作数可以在主存段内容形成操作数地址,并用这个地址读出操作数,操
5、作数可以在主存也可以在寄存器。也可以在寄存器。执行指令执行指令是根据操作码的要求,完成指令规定的功能,把结果写到主存是根据操作码的要求,完成指令规定的功能,把结果写到主存或者寄存器。或者寄存器。指令分析或者指令执行阶段还得修改指令计数器的更新,为下一条指令指令分析或者指令执行阶段还得修改指令计数器的更新,为下一条指令作准备。作准备。6指令的重叠执行方式指令的重叠执行方式1.1.顺序执行方式顺序执行方式执行执行n n条指令所用的时间为:条指令所用的时间为:如果每段时间都为如果每段时间都为t t,则执行,则执行n n条指令所用的时间为:条指令所用的时间为:T T3 n t3 n t主要优点:主要优
6、点:控制简单,节省设备。控制简单,节省设备。主要缺点:主要缺点:速度慢,功能部件的利用率低。速度慢,功能部件的利用率低。Ttttiiiin(取指令分析执行)172.2.一次重叠执行方式一次重叠执行方式如果两个过程的时间相等,则执行如果两个过程的时间相等,则执行n n条指令的时间为:条指令的时间为:T T(1+2n)t1+2n)t主要优点:主要优点:指令的执行时间缩短,指令的执行时间缩短,功能部件的利用率明显提高。功能部件的利用率明显提高。主要缺点:主要缺点:需要增加一些硬件,需要增加一些硬件,控制过程稍复杂。控制过程稍复杂。指令的重叠执行方式指令的重叠执行方式(续续)83.3.二次重叠执行方式
7、二次重叠执行方式如果三个过程的时间相等,执行如果三个过程的时间相等,执行n n条指令的时间为:条指令的时间为:T T(2 2n n)t t在理想情况下,处理机中同时有三条指令在执行。在理想情况下,处理机中同时有三条指令在执行。处理机的结构要作比较大的改变,需要采用先行控制技术。处理机的结构要作比较大的改变,需要采用先行控制技术。指令的重叠执行方式指令的重叠执行方式(续续)9先行控制方式的原理先行控制方式的原理1.1.采用二次重叠执行方式必须解决两个问题:采用二次重叠执行方式必须解决两个问题:(1)(1)有独立的取指令部件、指令分析部件和指令执行部件有独立的取指令部件、指令分析部件和指令执行部件
8、 把一个集中的指令控制器,分解成三个独立的控制器:把一个集中的指令控制器,分解成三个独立的控制器:存储控制器、指令控制器、运算控制器。存储控制器、指令控制器、运算控制器。(2)(2)要解决访问主存储器的冲突问题要解决访问主存储器的冲突问题 取指令、分析指令、执行指令都可能要访问存储器。取指令、分析指令、执行指令都可能要访问存储器。102.2.解决访存冲突的方法:解决访存冲突的方法:(1)(1)采用低位交叉存取方式:采用低位交叉存取方式:这种方法不能根本解决冲突问题。这种方法不能根本解决冲突问题。取指令、读操作数、写结果。取指令、读操作数、写结果。(2)(2)主存分为两个独立的存储器:主存分为两
9、个独立的存储器:独立的指令存储器和数据存储器。独立的指令存储器和数据存储器。如果再规定,执行指令所需要的操作数和执行结果只写到通用寄存器,如果再规定,执行指令所需要的操作数和执行结果只写到通用寄存器,则取指令、分析指令和执行指令就可以同时进行。则取指令、分析指令和执行指令就可以同时进行。在许多高性能处理机中,有独立的指令在许多高性能处理机中,有独立的指令CacheCache和数据和数据CacheCache。这种结构被。这种结构被称为哈佛结构。称为哈佛结构。先行控制方式的原理先行控制方式的原理(续)(续)11(3)(3)采用先行控制技术采用先行控制技术采用先行控制技术的关键是缓冲技术和预处理技术
10、。采用先行控制技术的关键是缓冲技术和预处理技术。缓冲技术通常用在工作速度不固定的两个功能部件之间。设置缓冲缓冲技术通常用在工作速度不固定的两个功能部件之间。设置缓冲栈的目的是用来以栈的目的是用来以平滑平滑功能部件之间的工作速度。功能部件之间的工作速度。在采用了缓冲技术和预处理技术之后,运算器能够专心于数据的运在采用了缓冲技术和预处理技术之后,运算器能够专心于数据的运算,从而大幅度提高程序的执行速度。算,从而大幅度提高程序的执行速度。先行控制方式的原理先行控制方式的原理(续)(续)12处理机结构处理机结构1.1.三个独立的控制器:三个独立的控制器:存储控制器、指令控制器、运算控制器。存储控制器、
11、指令控制器、运算控制器。2.2.四个缓冲栈:四个缓冲栈:先行指令缓冲栈、先行读数缓冲栈、先行操作栈、后行写数栈。先行指令缓冲栈、先行读数缓冲栈、先行操作栈、后行写数栈。3.3.处理机组成处理机组成134.4.先行指令缓冲栈的组成先行指令缓冲栈的组成作用:作用:只要指令缓冲栈没有充满,就自动发出取指令的请求。只要指令缓冲栈没有充满,就自动发出取指令的请求。指令分析器每分析完一条指令,自动向指令缓冲栈发出取下一条指令指令分析器每分析完一条指令,自动向指令缓冲栈发出取下一条指令的请求,指令取出后就把先行指令缓冲栈中的指令作废。的请求,指令取出后就把先行指令缓冲栈中的指令作废。分析指令速度和从主存取指
12、令的速度是随机的,指令缓冲栈的指令数分析指令速度和从主存取指令的速度是随机的,指令缓冲栈的指令数目是动态的。目是动态的。设置两个程序计数器:设置两个程序计数器:先行程序计数器先行程序计数器PCPC1 1,用来指示取指令,用来指示取指令,现行程序计数器现行程序计数器PCPC,记录指令分析器正在分析的指令地址。,记录指令分析器正在分析的指令地址。处理机结构处理机结构(续)(续)14处理机结构处理机结构(续)(续)先行缓冲站的组成先行缓冲站的组成指令缓冲存储器堆,采用先进先出的方式,保证指令的执行顺序不致混乱。指令缓冲存储器堆,采用先进先出的方式,保证指令的执行顺序不致混乱。15处理机结构处理机结构
13、(续)(续)先行控制方式中的一次重叠执行先行控制方式中的一次重叠执行重叠部分,无论谁先结束,都不能提前执行下一条指令,需要等待。重叠部分,无论谁先结束,都不能提前执行下一条指令,需要等待。无论任何时刻,在指令分析部件和指令执行部件内都只有相邻的两条指令重叠无论任何时刻,在指令分析部件和指令执行部件内都只有相邻的两条指令重叠执行,处理机只需要设置执行,处理机只需要设置一套指令分析部件一套指令分析部件,指令控制器;指令控制器;一套指令执行部一套指令执行部件件,运算控制器和运算器。控制方式简单。运算控制器和运算器。控制方式简单。所需要时间为所需要时间为T=(1+n)t16处理机结构处理机结构(续)(
14、续)5.5.存在的主要问题:存在的主要问题:计算机指令系统复杂,各类指令计算机指令系统复杂,各类指令“分析分析”和和“执行执行”的时间相差的时间相差很大,分析指令和执行指令常常相互等待,造成部件的浪费。很大,分析指令和执行指令常常相互等待,造成部件的浪费。分析分析k+1k+1操作所需要的操作数正好是执行操作所需要的操作数正好是执行k k的结果,不能重叠执行,的结果,不能重叠执行,发生发生数据相关数据相关,还有,还有控制相关控制相关,变址相关变址相关。转移或转子程序指令时,程序的执行过程不是顺序的,先行指令转移或转子程序指令时,程序的执行过程不是顺序的,先行指令缓冲栈中预取指令和分析的下一条指令
15、都可能要作废。缓冲栈中预取指令和分析的下一条指令都可能要作废。17指令执行时序指令执行时序设置了指令缓冲栈,取指令的时间就可以忽略不计。设置了指令缓冲栈,取指令的时间就可以忽略不计。一条指令的执行可分为一条指令的执行可分为2 2个过程。个过程。1.1.分析指令和执行指令时间不相等时的情况。分析指令和执行指令时间不相等时的情况。18指令执行时序指令执行时序2.2.采用先行缓冲栈的指令执行过程采用先行缓冲栈的指令执行过程先行读数栈先行读数栈,先行操作栈先行操作栈,后行写数栈。后行写数栈。理想情况下,指令执行部件应该一直忙碌。理想情况下,指令执行部件应该一直忙碌。连续执行连续执行n n条指令的时间为
16、:条指令的时间为:niiniitttT111执行执行分析先行19先行缓冲栈先行缓冲栈设置先行缓冲栈的目的:设置先行缓冲栈的目的:使指令分析器和指令执行部件能使指令分析器和指令执行部件能够独立工作。够独立工作。1.1.先行指令缓冲栈:先行指令缓冲栈:处于主存储器与指令分析器之间。处于主存储器与指令分析器之间。用它来平滑用它来平滑主存储器取指令主存储器取指令和和指令分析器指令分析器使用指令之间的速度差异。使用指令之间的速度差异。RRRR型指令型指令,不必处理,直接送先行缓冲栈。,不必处理,直接送先行缓冲栈。RSRS型指令型指令,主存有效地址送先行读数栈,用该先行读数栈的寄存器编号,主存有效地址送先
17、行读数栈,用该先行读数栈的寄存器编号替换指令中的主存地址码部分,形成替换指令中的主存地址码部分,形成RRRR*指令送先行缓冲栈。指令送先行缓冲栈。20RIRI型指令型指令,指令中的立即数送先行读数栈,用该先行读数栈的寄存器编,指令中的立即数送先行读数栈,用该先行读数栈的寄存器编号替换指令中的立即数部分,形成号替换指令中的立即数部分,形成RRRR*指令送先行缓冲栈。指令送先行缓冲栈。转移指令转移指令,一般在指令分析器中直接执行。,一般在指令分析器中直接执行。2.2.先行操作栈先行操作栈处于指令分析器和运算控制器之间。处于指令分析器和运算控制器之间。使指令分析器和运算器能够各自独立工作。使指令分析
18、器和运算器能够各自独立工作。采用先进先出方式工作,由指令寄存器堆和控制逻辑组成。采用先进先出方式工作,由指令寄存器堆和控制逻辑组成。先行缓冲栈先行缓冲栈(续)(续)213.3.先行读数栈先行读数栈处于主存储器与运算器之间。处于主存储器与运算器之间。平滑运算器与主存储器的工作。平滑运算器与主存储器的工作。每个缓冲寄存器由地址寄存器、操作数寄存器和标志三部分组成。每个缓冲寄存器由地址寄存器、操作数寄存器和标志三部分组成。也可以把地址寄存器和操作数寄存器合为一个。也可以把地址寄存器和操作数寄存器合为一个。当收到从指令分析器中送来的有效地址时,就向主存申请读操作数。当收到从指令分析器中送来的有效地址时
19、,就向主存申请读操作数。读出的操作数存放在操作数寄存器中或覆盖掉地址寄存器中的地址。读出的操作数存放在操作数寄存器中或覆盖掉地址寄存器中的地址。先行缓冲栈先行缓冲栈(续)(续)224.4.后行写数栈后行写数栈每个后行缓冲寄存器由地址寄存器、数据寄存器和标志三部分组成。每个后行缓冲寄存器由地址寄存器、数据寄存器和标志三部分组成。指令分析器遇到向主存写结果的指令时,把形成的有效地址送入后行指令分析器遇到向主存写结果的指令时,把形成的有效地址送入后行写数栈的地址寄存器中,并用该地址寄存器的编号替换指令的目的地写数栈的地址寄存器中,并用该地址寄存器的编号替换指令的目的地址部分,形成址部分,形成RRRR
20、*指令送入先行操作栈。指令送入先行操作栈。当运算器执行这条当运算器执行这条RRRR*型写数指令时,型写数指令时,只要把写到主存的数据送到后行写数栈的数据寄存器中即可。只要把写到主存的数据送到后行写数栈的数据寄存器中即可。先行缓冲栈先行缓冲栈(续)(续)23先行缓冲栈先行缓冲栈(续)(续)5.5.采用先行控制方式时一个程序的执行情况:采用先行控制方式时一个程序的执行情况:24缓冲深度的设计方法缓冲深度的设计方法以静态分析为主,通过模拟来确定缓冲深度。以静态分析为主,通过模拟来确定缓冲深度。1.1.先行指令缓冲栈的设计先行指令缓冲栈的设计考虑两种极端情况:假设缓冲深度为考虑两种极端情况:假设缓冲深
21、度为D DI I(1)(1)先行指令缓冲栈已经充满先行指令缓冲栈已经充满指令流出指令流出的速度最快,例如连续分析的速度最快,例如连续分析RRRR型指令,设这种指令序列的最大型指令,设这种指令序列的最大长度为长度为L L1 1,平均分析一条这种指令的时间为,平均分析一条这种指令的时间为t t1 1。指令流入指令流入的速度最慢,设平均取一条指令的时间为的速度最慢,设平均取一条指令的时间为t t2 2。从主存储器中取。从主存储器中取到先行指令缓冲栈中的指令条数是到先行指令缓冲栈中的指令条数是L L1 1D DI I条。条。25应该满足如下关系:应该满足如下关系:L L1 1 t t1 1(L(LI
22、ID DI I)t)t2 2计算出缓冲深度为:计算出缓冲深度为:如果这种指令流的连续长度超过如果这种指令流的连续长度超过L L1 1,则先行指令缓冲栈,则先行指令缓冲栈被取空被取空,指令分析,指令分析器没有指令可分析,被迫处于等待状态。缓冲栈失去作用。器没有指令可分析,被迫处于等待状态。缓冲栈失去作用。(2)(2)先行指令缓冲栈原来为空先行指令缓冲栈原来为空输入端指令流入的速度最快,每次取指令的时间最短;设这种指令序列的输入端指令流入的速度最快,每次取指令的时间最短;设这种指令序列的最大长度为最大长度为 L L2 2,平均取一条这种指令的时间为,平均取一条这种指令的时间为 t t2 2;DLt
23、ttI1212()缓冲深度的设计方法缓冲深度的设计方法(续)(续)26输出端指令流出的速度最慢输出端指令流出的速度最慢,指令分析器连续分析最难分析的指令;设平,指令分析器连续分析最难分析的指令;设平均分析一条指令的时间为均分析一条指令的时间为 t t1 1。分析的指令条数是。分析的指令条数是L L2 2D DI I条。条。应该满足如下关系:应该满足如下关系:(L(L2 2D DI I)t)t1 1L LI I t t2 2计算出缓冲深度为:计算出缓冲深度为:如果这种指令流的连续长度超过如果这种指令流的连续长度超过L L2 2,先行指令缓冲栈,先行指令缓冲栈被完全充满被完全充满,失去缓,失去缓冲
24、作用。冲作用。DLtttI2121()缓冲深度的设计方法缓冲深度的设计方法(续)(续)272.2.设计举例设计举例在一般处理机中连续执行短指令的概率大。在一般处理机中连续执行短指令的概率大。例:一个采用先行控制方式的处理机,指令分析器分析一条指令用例:一个采用先行控制方式的处理机,指令分析器分析一条指令用一个周期,到主存储器中取一条指令装入先行指令缓冲栈平均用一个周期,到主存储器中取一条指令装入先行指令缓冲栈平均用4 4个个周期,如果这种指令的平均长度为周期,如果这种指令的平均长度为9 9,即,即9090的指令是执行时间短的的指令是执行时间短的指令。指令。解:计算先行指令缓冲栈的缓冲深度为:解
25、:计算先行指令缓冲栈的缓冲深度为:DLtttI121294147()()缓冲深度的设计方法缓冲深度的设计方法(续)(续)283.3.先行指令缓冲栈的工作时间关系先行指令缓冲栈的工作时间关系第第1 1个周期,取走指令个周期,取走指令k+1k+1,请求取指令。,请求取指令。第第4 4个周期末尾,指令个周期末尾,指令k+8k+8取到先行指令缓冲栈。取到先行指令缓冲栈。第第8 8个周期末尾,指令个周期末尾,指令k+9k+9取到先行指令缓冲栈。取到先行指令缓冲栈。第第9 9个周期,分析指令个周期,分析指令k+9k+9,先行指令缓冲栈空。,先行指令缓冲栈空。第第1010个周期,指令分析器等待。个周期,指令
展开阅读全文