计算机系统结构第六讲

上传人:tia****nde 文档编号:68634702 上传时间:2019-01-11 格式:PPT 页数:101 大小:620.82KB
返回 下载 相关 举报
计算机系统结构第六讲_第1页
第1页 / 共101页
计算机系统结构第六讲_第2页
第2页 / 共101页
计算机系统结构第六讲_第3页
第3页 / 共101页
计算机系统结构第六讲_第4页
第4页 / 共101页
计算机系统结构第六讲_第5页
第5页 / 共101页
点击查看更多>>
资源描述

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

1、计算机系统结构 (第六讲),厦门大学计算机科学系 陆达 2004年11月20日,第五章 标量处理机,什么是标量处理机? 只有标量数据表示和标量指令系统的处理机称为标量处理机 提高处理机指令执行速度的途径有三种: (1)、提高处理机的工作主频 (2)、采用更好的算法和设计更好的功能部件 (3)、多条指令并行执行,称为指令级并行技术 a、流水线处理机、超流水线处理机 (superpipelining) b、多操作部件处理机、超标量处理机 (superscalar) 超标量超流水线处理机( a+b) c、超长指令字(VLIW),本章主要内容: (1)、流水线技术(先行控制技术、流水线原理、流水线性能

2、分析、非线性流水线的调度方法、局部数据相关和全局数据相关的处理方法) (2)、超标量处理机 (3)、超流水线处理机,5.1 先行控制技术,先行控制(look-ahead)技术 超流水线处理机、超标量处理机 缓冲技术、预处理技术 指令分析器、指令执行部件,5.1.1 指令的重叠执行方式,图5.1:一条指令的执行过程 三个阶段都可能访问存储器,指令的执行方式: (1)、顺序执行方式 图5.2(a) T=3nt,(2)、一次重叠执行方式 图5.2(b) T=(1+2n)t,(3)、二次重叠执行方式 图5.2(c) T=(2+n)t,5.1.2 先行控制方式的原理和结构,要解决两个问题: (1)、要有

3、独立的取指令部件、指令分析部件和指令执行部件 存储控制器(存控)、指令控制器(指控)、运算控制器(运控),(2)、要解决访问主存储器的冲突问题 a、把主存储器分成两个独立编制的存储器 指令存储器(指存)、数据存储器(数存) 指令Cache、数据Cache(哈佛结构) b、指令和数据仍然混合存放在同一个主存储器内 低位交叉存取方式,3、先行控制技术 缓冲技术:在工作速度不固定的两个功能部件之间设置缓冲栈,用以平滑它们的工作(设置四个缓冲栈) 预处理技术:把进入运算器的指令都处理成寄存器-寄存器型(R-R型)指令,它与缓冲技术相结合,为进入运算器的指令准备好所需要的全部操作数,5.1.2.1 处理

4、机结构,图5.3:采用先行控制方式的处理机结构,图5.4:指令缓冲栈(先行指令缓冲栈)的组成 指令缓冲寄存器(存储器)堆、先行程序计数器PC1、现行程序计数器PC,图5.5:先行控制方式的一次重叠执行 这里的“分析”=前面的“取指令+分析” T重叠=(1+n)t,有三个问题需要解决: (1)、指令分析部件和指令执行部件经常要相互等待,从而造成功能部件的浪费 (2)、数据相关,控制相关,变址相关 (3)、当出现转移或转子程序指令时,程序的执行过程就不是顺序的,5.1.2.2 指令执行时序,图5.6:分析指令和执行指令时间不相等时的一次重叠执行方式,图5.7:采用先行缓冲栈的指令执行过程 先行缓冲

5、栈:先行指令缓冲栈、先行读数栈、先行操作栈、后行写数栈,图5.8:采用先行缓冲栈时指令执行过程的一种表示方法(图5.7的另一种表示方法),5.1.2.3 先行缓冲栈,先行指令缓冲栈(指令缓冲栈):用于平滑主存储器和指令分析器的工作 先行操作栈:指令分析器对已经存放在先行指令缓冲栈里的指令进行预处理,把处理之后的指令送入先行操作栈;先行操作栈是指令分析器和运算控制器之间的一个缓冲存储器;先行操作栈采用先进先出(FIFO)的方式工作,它由一个先行指令寄存器堆和有关控制逻辑等组成 预处理技术(RR型、RX型、RS型、RI型 - RR*型),先行读数栈:是主存储器与运算器之间的一种缓冲存储器,用来平滑

6、运算器与主存储器的工作;由一组缓冲寄存器和有关控制逻辑等组成;每一个缓冲寄存器由先行地址缓冲寄存器、先行操作数缓冲寄存器和标志字段等三部分组成 后行写数栈:是主存储器和运算器之间的一个缓冲存储器;由一组缓冲寄存器和有关控制逻辑等组成;每一个缓冲寄存器由后行地址缓冲寄存器、后行数据缓冲寄存器和标志字段等三部分组成,图5.9:采用先行控制方式时一个程序的执行过程,指令控制部件:先行控制器(先行指令缓冲栈、先行读数栈、先行操作栈、后行写数栈)+指令分析器 指令执行部件:运算器+运算控制器,5.1.2.4 缓冲深度的设计,缓冲深度问题:各个缓冲栈中的缓冲寄存器个数设置多少个? 缓冲深度的静态分析方法:

7、 (1)、先行指令缓冲栈已经完全充满 L1*t1=(L1-DI)*t2 DI=L1*(t2-t1)/t2 (2)、先行指令缓冲栈原来是空的 (L2-DI)*t1=L2*t2 DI=L2*(t1-t2)/t1 吸收型指令(如转移指令等):在指令分析器中就直接执行完成,不需要送到运算器中执行,例:L1=9,t1=1,t2=4 DI=7 图5.10:先行指令缓冲栈的工作时间关系图,提高主存储器的访问速度,对减少缓冲深度很有效(t2减少 - DI减少) DI(先行指令缓冲栈)DC(先行操纵栈) DR(先行读数栈)DW(先行写数栈),5.1.3 数据相关,什么是相关(correlation)? 是指在一

8、段程序的相近指令之间有某种关系,这种关系可能影响指令的重叠执行 相关分为两大类: (1)、数据相关 (2)、控制相关 数据相关:包括指令相关、主存操作数相关、通用寄存器相关、变址相关 解决数据相关的方法: (1)、推后分析法 (2)、设置专用路径,5.1.3.1 指令相关,例:结果地址(k)=指令地址(k+1) 由于第k+1条指令本身的内容取决于第k条指令的执行结果,从而产生指令相关 判断是否发生了指令相关:把每一条指令的结果地址与先行操作栈中、指令分析器中、先行指令缓冲栈中的所有指令地址进行比较 解决指令相关的根本方法:在程序设计中不允许修改指令 IBM370,有一条“执行”指令能够解决指令

9、相关,又允许在程序执行过程中修改指令,5.1.3.2 主存操作数相关,例:结果地址(k)=主存操作数地址(k+1) 当指令的执行结果写到主存储器,所读取的操作数也取自主存储器时,就有可能发生主存操作数相关 A1(k)=A2(k+1) A1(k)=A3(k+1) 解决主存操作数相关的方法:推后处理法,图5.11:主存操作数相关及其处理方法,对设置有先行操作栈的处理机,解决操作数相关的办法: 对于刚进入先行操作栈中的指令在向主存读操作数之前,首先要把访问主存的地址与后行写数栈中的所有主存地址进行比较,如果发现有相等的,则先行操作栈的读操作数要暂缓进行,等到发生操作数相关的指令执行完成,并把结果写回

10、到主存之后再开始读操作数,5.1.3.3 通用寄存器数据相关,在RR型指令和RS型指令的执行过程中,可能发生通用寄存器数据相关 R1(k)=R1(k+1),称为R1数据相关 R1(k)=R2(k+1),称为R2数据相关,解决通用寄存器数据相关的方法(共有四种): (1)、通用寄存器是用D型触发器构成的,而且在通用寄存器到运算器之间建立有直接数据通路,即不设置缓冲寄存器或锁存器,则不会发生通用寄存器数据相关 图5.12:一种典型的运算器结构,(2)、分析指令推后一个周期执行 图5.13:IBM 370机的指令分析与执行的时间关系,(3)、分析指令仅推后一个节拍 图5.14:分析指令仅推后一个节拍

11、的时间关系,(4)、设置专用数据通路 图5.15:设置专用数据通路解决通用寄存器数据相关 设置专用数据通路是通过增加硬件为代价来解决寄存器数据相关,5.1.3.4 变址相关,把通用寄存器兼作变址寄存器使用,由于在变址寄存器中存放的变址量在指令分析过程中要用它来计算有效地址,有可能发生变址相关 R1(k)=X2(k+1),称为一次变址相关 R1(k)=X2(k+2),称为二次变址相关,图5.16:一次变址相关和二次变址相关的时间关系(当t1t2时,将发生二次变址相关),解决变址相关的方法: (1)、推后分析 (2)、设置专用通路 图5.17:用变址相关专用通路解决变址相关,解决各种数据相关的方法

12、: (1)、采用硬件或软件的办法尽量避免数据相关发生 (2)、在确保指令正确执行的前提下,推后指令分析(推后分析法) (3)、设置相关专用通路来解决数据相关(设置专用路径),5.1.4 控制相关,什么是控制相关? 因为程序的执行方向可能改变而引起的相关称为控制相关 无条件转移指令、一般条件转移指令、复合条件转移指令、子程序调用指令、中断指令 数据相关:称为局部相关 控制相关:称为全局相关 “吸收型”指令(无条件转移指令、一般条件转移指令):在指令分析器就执行完成,不需要送入先行操作栈和指令执行部件,5.1.4.1 无条件转移,无条件转移指令一般能够在指令分析器中就执行完成 图5.18:无条件转

13、移指令的执行时序 (无条件转移指令对程序执行速度的影响很小),5.1.4.2 一般条件转移,条件转移指令: (1)、一般条件转移指令 (2)、复合条件转移指令 图5.19:一般条件转移指令的执行时序,一般条件转移指令称为“吸收型”指令 转移不成功对先行控制器的影响不大,而当转移成功时,不仅指令执行过程变成了完全串行,而且要作废已经取到先行指令缓冲栈中的大量指令,从而白白地增加了处理机与主存之间的通信量,5.1.4.3 复合条件转移,复合型条件转移指令不是“吸收型”指令 图5.20:复合型条件转移指令的执行时序 (如果转移成功,对先行控制器造成的影响比一般条件转移指令还要大得多),5.1.4.4

14、 转移预测技术,RISC关键技术: (1)、延迟转移技术(p118) (2)、指令取消技术(p119) 在采用先行控制方式的处理机中,采用的技术: (1)、软件“猜测法” (2)、硬件“猜测法” (3)、两个先行指令缓冲栈,1、软件“猜测法”,要尽量降低转移成功出现的概率 图5.21:用编译器支持条件转移指令的执行,2、硬件“猜测法”,在先行指令缓冲栈的入口处再增设一个简单的指令分析器,当这个指令分析器检测到转移指令时,就把转移目标地址L送入先行程序计数器PC1中,同时保留当前PC1中的内容到另一个寄存器中,以备猜错时恢复原来的程序执行方向 软件“猜测法”和硬件“猜测法”共同配合,软件和硬件都

15、往同一个方向去猜测,3、两个先行指令缓冲栈,对于普通条件转移指令(如IF语句),转移成功与不成功的概率一般各为50% 在先行指令缓冲栈中增加一个先行目标缓冲栈,当指令分析器分析到条件转移指令时,按照转移成功的方向预取指令到这个先行目标缓冲栈中,原来的先行指令缓冲栈仍然按照转移不成功的方向继续预取指令 AIB:新增加的先行目标缓冲栈 IB:原来的指令缓冲栈 TR1、TR2:暂存寄存器,图5.22:两个先行指令缓冲栈的条件转移指令执行流程,5.1.4.5 短循环程序的处理,对于短循环程序,一般先行指令缓冲栈的效率很低 短循环程序满足的三个条件: (1)、循环体的长度小于等于先行指令缓冲栈的深度 (

16、2)、循环次数的控制采用计数转移指令实现 (3)、控制循环的条件转移指令一般是向后转移的指令,必须解决好三个问题: (1)、指令分析器如何发现短循环程序 (2)、如何控制短循环程序在先行指令缓冲栈中不被清除 (3)、如何控制循环体的执行次数,即处理好循环程序的出口 两种方法: (1)、在指令系统中设置专门的短循环程序的开门指令和关门指令 短循环标志触发器TL (2)、用专门的硬件来识别短循环程序,目的是使短循环程序的处理对程序员透明 一级Cache:一级指令Cache、一级数据Cache 可以有效地提高循序程序的执行速度,5.2 流水线处理机,空间并行性: 在一个处理机内设置多个独立的操作部件,并让这些操作部件并行工作 多操作部件处理机和超标量处理机 时间并行性: 采用流水线技术 流水线的基本原理、特点、分类、性能分析;非线性流水线的调度问题;流水线中的局部相关和全局相关的处理方法,5.2.1 流水线工作原理,什么是流水线工作方式? 把一个重复的过程分解为若干个子过程,每个子过程可以与其他子过程同时进行 指令流水线 操作部件流水线

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

当前位置:首页 > 高等教育 > 大学课件

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