计算机系统结构标量处理机PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第13页/共215页
处理机结构(续)
• 5.存在的主要问题: ① 计算机指令系统复杂,各类指令“分析”和“执行”的时间相差很大,分析指令和执行指令常常相互 等待,造成部件的浪费。
② 分析k+1操作所需要的操作数正好是执行k的结果,不能重叠执行,发生数据相关,还有控制相关, 变址相关。
③ 转移或转子程序指令时,程序的执行过程不是顺序的,先行指令缓冲栈中预取指令和分析的下一条指 令都可能要作废。
n
执行i
执行i
i 1
i 1
第16页/共215页
先行缓冲栈
• 设置先行缓冲栈的目的:使指令分析器和指令执行部件能够独立工作。 • 1.先行指令缓冲栈:
• 处于主存储器与指令分析器之间。 • 用它来平滑主存储器取指令和指令分析器使用指令之间的速度差异。
• RR型指令,不必处理,直接送先行缓冲栈。 • RS型指令,主存有效地址送先行读数栈,用该先行读数栈的寄存器编号
•重叠部分,无论谁先结束,都不能提前执行下一条指令,需要等待。 •无论任何时刻,在指令分析部件和指令执行部件内都只有相邻的两条指令重叠执 行,处理机只需要设置一套指令分析部件,——指令控制器;一套指令执行部 件,——运算控制器和运算器。控制方式简单。 •所需要时间为T=(1+n)t
2021/6/20
• 流水线技术。 • 处理机中设置多个独立的功能部件,如浮点运算器,定点运算器,访存部件等。 • 超长指令技术。
2021/6/20
第1页/共215页
5.1 先行控制技术
• 先行控制技术的关键是采用缓冲技术和预处理技术,以及两者都采用,通过对指令流和 数据流的预处理和缓冲,能够尽量使指令分析器和指令执行部件独立工作并始终处于忙 碌状态。
已经执行完成的指令
在后行写数栈中等待把结果写到主存储器中的指令
正在指令执行部件中执行的指令 已经由指令分析器预处理完成,存放在先行操作栈中的 RR*型指令,指令所需要的操作数已经读到先行读数栈中
k+j+1 …… k+j+n
k+j+n+1 k+j+n+2 … k+…j+n+m k+j+n+m+1 ……
• 应该满足如下关系:(L2-DI) t1’=LI t2’
2021/6/20

计算出缓冲深度为:
DI
L2 (t1't2' ) t1'
• 如果这种指令流的连续长度超过L2,先行指令缓冲栈被完全充满,失 去缓冲作用。
第24页/共215页
缓冲深度的设计方法(续)
• 2.设计举例 • 在一般处理机中连续执行短指令的概率大。 • 例:一个采用先行控制方式的处理机,指令分析器分析一条指令用一个周期, 到主存储器中取一条指令装入先行指令缓冲栈平均用4个周期,如果这种指令 的平均长度为9,即90%的指令是执行时间短的指令。 • 解:计算先行指令缓冲栈的缓冲深度为:
2021/6/20
取指令 k
分析 k 取指令 k+1
执行 k 分析 k+1 取指令 k+2
执行 k+1 分析 k+2
二次重叠执行方式
执行 k+2
第6页/共215页
先行控制方式的原理
• 1.采用二次重叠执行方式必须解决两个问题: • (1)有独立的取指令部件、指令分析部件和指令执行部件 把一个集中的指令控制器,分解成三个独立的控制器: 存储控制器、指令控制器、运算控制器。
已经由指令分析器预处理完成,存放在先行操作栈中,指 令所需要的操作数还没有读到先行读数栈中 正在指令分析器中进行分析和预处理的指令 已经从主存储器中预取到先行指令缓冲栈中的指令
还没有进入处理机的指令
第21页/共215页
缓冲深度的设计方法
• 以静态分析为主,通过模拟来确定缓冲深度。 • 1.先行指令缓冲栈的设计
第3页/共215页
指令的重叠执行方式
• 1.顺序执行方式 • 执行n条指令所用的时间为:
n
T t( 取指令i t分析i t执行i)
• 如果每段时i 间1都为t,则执行n条指令所用的时间为:T=3 n t
• 主取要指优令点:k 控制分简析单,k 节省设执备行。k 取指令 k+1 分析 k+1 执行 k+1
• 当运算器执行这条RR*型写数指令时,
2021/6/20
• 只要把写到主存的数据送到后行写数栈的数据寄存器中即可。 第20页/共215页
先行缓冲栈(续)
2021/6/20
• 5.采用先行控制方式时一个程序的执行情况:
Hale Waihona Puke 指令地址 指令执行情况…… k-i-1
k-i …… k-1 k
k+1 …… k+j
第11页/共215页
处理机结构(续)
• 先行缓冲站的组成

先行程序计数器 PC1


指令缓冲
存储器堆

器 控制逻辑
现行程序计数器 PC 指令分析器
指令寄存器 IR
2021/6/20
指令缓冲存储器堆,采用先进先出的方式,保证指令的执行顺序不致混乱。
第12页/共215页
处理机结构(续)
先行控制方式中的一次重叠执行 取指令 k 分析 k 执行 k 取指令 k+1 分析 k+1 执行 k+1 取指令 分析 k+2 执行 k+2 k+2
替换指令中的主存地址码部分,形成RR*指令送先行缓冲栈。
2021/6/20
第17页/共215页
先行缓冲栈(续)
• RI型指令,指令中的立即数送先行读数栈,用该先行读数栈的寄存器编号 替换指令中的立即数部分,形成RR*指令送先行缓冲栈。
• 转移指令,一般在指令分析器中直接执行。 • 2.先行操作栈
• 处于指令分析器和运算控制器之间。 • 使指令分析器和运算器能够各自独立工作。 • 采用先进先出方式工作,由指令寄存器堆和控制逻辑组成。
• 缓冲技术通常用在工作速度不固定的两个功能部件之间。设置缓冲栈的目的是 用来以平滑功能部件之间的工作速度。
• 在采用了缓冲技术和预处理技术之后,运算器能够专心于数据的运算,从而大 幅度提高程序的执行速度。
2021/6/20
第9页/共215页
处理机结构
• 1.三个独立的控制器: • 存储控制器、指令控制器、运算控制器。
• 2.四个缓冲栈: • 先行指令缓冲栈、先行读数缓冲栈、先行操作栈、后行写数栈。
• 3.处理机组成









先行指令缓冲栈 先行读数栈 后行写数栈
指令分析器
先行操作栈


运算控制器


运算器

2021/6/20
第10页/共215页
处理机结构(续)
• 4.先行指令缓冲栈的组成 • 作用:只要指令缓冲栈没有充满,就自动发出取指令的请求。
第22页/共215页
缓冲深度的设计方法(续)
• 应该满足如下关系:L1 t1=(LI-DI) t2

计算出缓冲深度为:
DI
L1
(t2 t2
t1)
• 如果这种指令流的连续长度超过L1,则先行指令缓冲栈被取空,指令
分析器没有指令可分析,被迫处于等待状态。缓冲栈失去作用。
• (2)先行指令缓冲栈原来为空
指令执行时序
• 2.采用先行缓冲栈的指令执行过程
• 先行读数栈,先行操作栈,后行写数栈。
分析 k
执行 k
分析 k+1
执行 k+1
分析 k+2
执行 k+2
• 理想情况下,指令执行部件应该一直忙碌。
分析 k+3
执行 k+3
• 连续执行n条指令的时间为:
2021/6/20
t t t n
T先行 分析1
• 如果再规定,执行指令所需要的操作数和执行结果只写到通用寄存器,则 取指令、分析指令和执行指令就可以同时进行。
2021/6/20
• 在许多高性能处理机中,有独立的指令Cache和数据Cache。这种结构 被称为哈佛结构。
第8页/共215页
先行控制方式的原理(续)
• (3)采用先行控制技术 • 采用先行控制技术的关键是缓冲技术和预处理技术。
• 指令的重叠执行方式
• 先行控制方式的原理
• 处理机结构
• 指令执行序列
• 先行缓冲栈
202•1/6缓/20冲 深 度 的 设 计 方法
第2页/共215页
指令的重叠执行方式
• 一条指令的执行可以分为多个阶段,具体分法视处理机而定,一般可以分为三个阶段:
• 取指令是指按照指令计数器的内容访问主存,取出一条指令送到指令寄存器。
• 分析指令是指对指令的操作码进行译码,按照给定的寻址方式和地址字段内容形成操作数地 址,并用这个地址读出操作数,操作数可以在主存也可以在寄存器。
• 执行指令是根据操作码的要求,完成指令规定的功能,把结果写到主存或者寄存器。
• 指令分析或者指令执行阶段还得修改指令计数器的更新,为下一条指令作准备。
2021/6/20
• (2)要解决访问主存储器的冲突问题 取指令、分析指令、执行指令都可能要访问存储器。
2021/6/20
第7页/共215页
先行控制方式的原理(续)
• 2.解决访存冲突的方法: • (1)采用低位交叉存取方式: • 这种方法不能根本解决冲突问题。 • 取指令、读操作数、写结果。 • (2)主存分为两个独立的存储器:独立的指令存储器和数据存储器。
• 主要缺点:速度慢,功能部件的利用率低。
2021/6/20
第4页/共215页
指令的重叠执行方式(续)
• 2.一次重叠执行方式 • 如果两个过程的时间相等,则执行n条指令的时间为:T=(1+2n)t
2021/6/20
取指令 k 分析 k 执行 k
取指令 k+1 分析 k+1 执行 k+1
• 主要优点: • 指令的执行时间缩短,
取指令 分析 k+2 执行 k+2 k+2
• 功能部件的利用率明显提高。
• 主要缺点:
• 需要增加一些硬件,
• 控制过程稍复杂。
第5页/共215页
指令的重叠执行方式(续)
• 3.二次重叠执行方式 • 如果三个过程的时间相等,执行n条指令的时间为:T=(2+n)t • 在理想情况下,处理机中同时有三条指令在执行。 • 处理机的结构要作比较大的改变,需要采用先行控制技术。
2021/6/20
• 输入端指令流入的速度最快,每次取指令的时间最短;设这种指令序 列的最大长度为 L2,平均取一条这种指令的时间为 t2’;
第23页/共215页
缓冲深度的设计方法(续)
• 输出端指令流出的速度最慢,指令分析器连续分析最难分析的指令; 设平均分析一条指令的时间为 t1’。分析的指令条数是L2-DI条。
标量处理机
• 只有标量数据表示和标量指令系统的处理机称为标量处理机,是最常用最普通的处理机。 • 设计处理机的主要任务就是缩短解释指令的时间,提高处理机指令的执行速度:
1. 提高处理机的工作主频。5、60年代主要采用这种技术,每3、4年处理机的速度要提高一个数量级。 2. 采用更好的算法和设计更好的功能部件,如采用RISC等。 3. 多条指令并行执行。指令级的并行技术。
2021/6/20
第14页/共215页
指令执行时序
• 设置了指令缓冲栈,取指令的时间就可以忽略不计。 • 一条指令的执行可分为2个过程。 • 1.分析指令和执行指令时间不相等时的情况。
分析 k
执行 k 分析 k+1
执行 k+1 分析 k+2
执行 k+2 分析 k+3
执行 k+3
2021/6/20
第15页/共215页
2021/6/20
第18页/共215页
先行缓冲栈(续)
• 3.先行读数栈 • 处于主存储器与运算器之间。
• 平滑运算器与主存储器的工作。
• 每个缓冲寄存器由地址寄存器、操作数寄存器和标志三部分组成。也可以把地 址寄存器和操作数寄存器合为一个。
• 当收到从指令分析器中送来的有效地址时,就向主存申请读操作数。
2021/6/20
• 读出的操作数存放在操作数寄存器中或覆盖掉地址寄存器中的地址。 第19页/共215页
先行缓冲栈(续)
• 4.后行写数栈 • 每个后行缓冲寄存器由地址寄存器、数据寄存器和标志三部分组成。
• 指令分析器遇到向主存写结果的指令时,把形成的有效地址送入后行写数栈的 地址寄存器中,并用该地址寄存器的编号替换指令的目的地址部分,形成RR* 指令送入先行操作栈。
• 考虑两种极端情况:假设缓冲深度为DI • (1)先行指令缓冲栈已经充满
• 指令流出的速度最快,例如连续分析RR型指令,设这种指令序列的最大 长度为L1,平均分析一条这种指令的时间为t1。
2021/6/20
• 指令流入的速度最慢,设平均取一条指令的时间为t2。从主存储器中取到 先行指令缓冲栈中的指令条数是L1-DI条。
• 指令分析器每分析完一条指令,自动向指令缓冲栈发出取下一条指令的请求, 指令取出后就把先行指令缓冲栈中的指令作废。
• 分析指令速度和从主存取指令的速度是随机的,指令缓冲栈的指令数目是动态 的。
2021/6/20
• 设置两个程序计数器: • 先行程序计数器PC1,用来指示取指令, • 现行程序计数器PC,记录指令分析器正在分析的指令地址。
相关文档
最新文档