标量处理机

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

第29 页
2020/10/6
第五章 标量处理机
第30 页
5.2 流水线处理机
5. 标量/向量流水----数据表示不同 6. 同步/异步流水——对流水线的控制方式不同 7 顺序/乱序流水——输出与输入任务的顺序是否
相同
三、流水线的性能分析 1. 吞吐率--单位时间内产生的结果数。
tp
n Tk
2020/10/6
2.主存操作数相关 例如:k: add [0001],ax k+1: mov bx, [0001]
2020/10/6
第五章 标量处理机
第8 页
5.1 先行控制技术
在现代计算机中,中间结果一般写入寄存器,所以该类 相关发生不多。 解决方法:推后分析法。
2020/10/6
第五章 标量处理机
第9 页
5.1 先行控制技术
2020/10/6
第五章 标量处理机
第15 页
5.1 先行控制技术
对于条件转移,相关最严重的情况发生在条件码是 由上一条指令产生的。
下面是条件转移对程序执行速度影响的分析:
① 如果转移不成功——运算器等待一个时钟周期 ② 如果转移成功
如果L在先行指令缓冲栈中,则条件转移对程序执行的 影响是:
a.作废k+2到L-1之间的所有指令; b.运算器等待一个时钟周期。
第五章 标量处理机
1.标量处理机:只有标量数据表示和标量指令系统的处
理机称为标量处理机。标量处理机是一种最通用,也是 使用最普遍的处理机。
2.标量处理机中提高指令执行速度的主要途径有:
①提高主频;②缩短CPI——设计更好的算法和功 能部件;③指令级并行——主要方法,又可分为:
a.流水线技术和超流水线技术;
b.超标量技术 ;
c.VLIW;
5.1 先行控制技术 5.2 流水线处理机 5.3 超标量与超流水处理机
2020/10/6
第五章 标量处理机
第1 页
5.1 先行控制技术
一、指令的重叠执行 设一条指令的执行分成三个阶段:取指、分析和执
行,且每个阶段的执行时间都为n。则,可有下面的三 种执行方式: 1.顺序执行 2.一次重叠 3.二次重叠 (如图5.2所示,p.254)
部作废,指令分析器要等待一个“取指令L”周期之后

2020/10/6
第五章 标量处理机
第13 页
5.1 先行控制技术
能开始“分析L”。如果转移的距离比较近,有可能指令 L已经被取到了指令缓冲践中。这时,只要作废先行指 令缓冲栈中的部分指令,即作废从k+2到L-1之间的所有 指令。指令分析器在完成“分析k+1”之后,可以接着进 行“分析L”,即指令分析器仍然可以不停顿地连续工作。
无条件转移指令和一般条件转移指令可以在指令分 析器就执行完成,不需要送入先行操作栈和指令执行部 件。因此,通常把这种指令称为“吸收型”指令。
1. 无条件转移——为简单起见,只讨论向后转移。
2020/10/6
第五章 标量处理机
第12 页
5.1 先行控制技术
无条件转移指令在程序中的使用情况一般如下:
k:
例如将M型指令(如MOV AX,[0001])转换为R型指 令,具体过程如下:
a)将主存地址0001通知先行读数栈,同时用先行读数栈 的寄存器编号代替0001主存地址,预处理后的指令进 入先行操作栈。
b)对于R型指令,不需任何处理,直接进入先行操作栈。 因此,先行操作栈在指令分析器和运算器之间提供缓 冲。
2020/10/6
第五章 标量处理机
第2 页
5.1 先行控制技术
2020/10/6
第五章 标量处理机
第3 页
5.1 先行控制技术
二、先行控制技术 上面的处理存在两个问题: 问题一: 在上面的讨论中有一个重要假设:每个阶段的执行 时间都为n。如果不等,则有些阶段会出现空闲。 问题二: 主存访问冲突。例如,取指令k+1时,正在分析指 令k,而分析指令k时可能也需要取操作数! 要解决上述问题,必须采用先行控制技术。 先行控制技术的关键是缓冲技术和预处理技术。
同功能。 P283 图5.32 4.静态流水线与动态流水线——对多功能流水线而言 静态:一段时间内一种固定方式连接,实现一种固定功能; 动态:一段时间内,各段按不同方式连接,同时执行多种
功能。 P284 图5.33, 5.34
2020/10/6
第五章 标量处理机
第28 页
2020/10/6
第五章 标量处理机
控制相关:控制相关是指由条件分支指令、转子程序指 令、中断等引起的相关。
2020/10/6
第五章 标量处理机
第7 页
5.1 先行控制技术
解决数据相关的一般方法: ①推后分析法 ②设置专用路径
1.指令相关 例如: k: STORE R1, k+1 k+1: … 在流水线或采用先行控制技术的处理机中,指令相关严 重影响效率。 解决方法:运行中不能修改指令。
第五章 标量处理机
第31 页
5.2 流水线处理机
一般由编译器完成--尽量降低条件转移成功的概率。
2020/10/6
第五章 标量处理机
第18 页
5.1 先行控制技术
(2) 硬件"猜测法"
在先行指令缓冲栈的入口处设一个简单的 分析器:当检测到转移指令时,将转移地址送 入PC1,指令分析器不停止工作。
A.如果转移成功,即猜测正确--转移对程序执行的无影 响;
二、流水线的分类 1.线性流水线与非线性流水线
非线性流水线的“预约表”: p.280图 5.29
2020/10/6
第五章 标量处理机
第27 页
5.2 流水线处理机
2.流水线的级别——三种级别 功能部件级:运算操作流水线 处理机级:指令流水线 处理机间级:宏流水线
3.单功能流水线与多功能流水线 ➢ 单功能流水线:只能完成一种固定功能。 ➢ 多功能流水线:流水线各段可以进行不同连接,实现不
k+1: JMP L
……
L: …
无条件转移指令一般能够在指令分析器中就执行完
成,形成转移地址L同时送入先行程序计数器PC1;和 现行程序计数器PC中,指令缓冲栈按照PC1的指示重新 开始向存储控制器申请取指令。
如下图所示,如果转移距离比较远,指令L不在先行
指令缓冲栈中,则要将先行指令缓冲栈中的所有指令全
水线的效率。
2.把一个任务(一条指令或一个操作)分解为几个有联系 的子任务,每个子任务由一个专门的功能部件来实现。因 此,流水线实际上是把一个大的功能部件分解为多个
2020/10/6
第五章 标量处理机
第25 页
5.2 流水线处理机
独立的功能部件,并依靠多个功能部件并行工作来缩短
程序的执行时间。在流水线中,一个子任务通常称为一 个子过程,或流水线中的一个功能段。
1.采用先行控制技术的处理机结构
2020/10/6
第五章 标量处理机
第4 页
5.1 先行控制技术
2.四个先行缓冲栈 (1) 先行指令缓冲栈——缓冲主存和指令分析器 (2) 先行操作栈——存放经过指令分析器预处理后的指
令。这种预处理内容很多。
2020/10/6
第五章 标量处理机
第5 页
5.1 先行控制技术
2020/10/6
第五章 标量处理机
第23 页
5.2 流水线处理机
2020/10/6
第五章 标量处理机
第24 页
5.2 流水线处理机
3.流水线的特点
1.在流水线中处理的必须是连续任务,只有连续不断地提 供任务才能充分发挥流水线的效率。例如,要使浮点加法 器流水线充分发挥作用,需要连续提供浮点加法运算。然 而,由于程序本身的原因和程序设计过程中人为造成的原 因,如数据相关等,不可能连续为浮点加法器提供同一种 操作。因此,在采用流水线方式工作的处理机中,特别是 当流水线的级数较多时,要在软件和硬件设计等多方面尽 量为流水线提供连续的任务,以提高流
如果L不在先行指令缓冲栈中,则条件转移对程序执行 的影响是:
c.作废先行指令缓冲栈中的所有指令; d.运算器至少等待取指周期(取L)和一个时钟周期。
2020/10/6
第五章 标量处理机
第16 页
5.1 先行控制技术
2020/10/6
第五章 标量处理机
第17 页
5.1 先行控制技术
3.转移预测技术 (1) 软件"猜测法"
3.在流水线的每一个功能部件的后面都要有一个缓冲寄 存器,或称为锁存器、闸门寄存器等,用于保存本段的 执行结果。这是因为流水线中每一段的延迟时间一般不 可能都相等,因此,在段与段之间传送子任务时,必须 通过缓冲寄存器。当某一个功能段的执行时间变化范围 比较大时,要设置多个缓冲寄存器。
4.流水线中各段的时间应尽量相等,否则将引起“堵塞”、
可以从两个方面来开发处理机内部的并行性。
1)空间并行性: 即在一个处理机内设置多个独立的操作部件,并让
这些操作部件并行工作,这种处理机称为多操作部件处 理机和超标量处理机
2)时间并行性: 就是采用流水线技术。流水线技术是一种非常经
济、对提高处理机的运算速度非常有效的技术。采用流 水线技术可以不增加硬件或只需要增加少量硬件就能够 把处理机的运算速度提高几倍,它是目前使用非常普遍 的一种并行处理方式。
(3)先行读数栈 (4)后行写数栈——如果指令有要写回主存的数据,先
写到后行写数栈,指令继续执行。后行写数栈能在主 存有空闲时,再写入主存。
2020/10/6
第五章 标量处理机
第6 页
5.1 先行控制技术
先行控制技术和和指令的重叠执行方式有不同:在 指令分析器和运算器执行的两条指令可能不相邻!
三、数据相关
B.如果转移不成功,即猜测错误--作废先行指令缓冲栈 和先行操作栈中的所有指令,重新开始取指令L。
(3) 两个先行指令缓冲栈
分析到条件转移指令时, 按成功转移的方向预取指令
到先行目标缓冲栈中。先行指令缓冲栈仍然按照转移不
成功的方向继续预取指令。
2020/10/6
第五章 标量处理机
第19 页
5.2 流水线处理机
2020/10/6
第五章 标量处理机
第20 页
5.2 流水线处理机
一、流水线工作原理 1.流水线 下面一条简单的流水线及其可能的进一步细分。
2020/10/6
第五章 标量处理机
第2Βιβλιοθήκη Baidu 页
5.2 流水线处理机
细分
例:
2020/10/6
第五章 标量处理机
第22 页
5.2 流水线处理机
2.时空图 描述流水线的工作,最常用的方法是采用“时空图”
3.通用寄存器数据相关 例如:k: add ax ,bx
k+1: mov cx, ax 在现代计算机中,该类相关发生很多。 解决方法:①推后分析法——降低运算速度为代价解决
寄存器相关 ②设置专用数据通路(如图5.15所示)。 4.变址相关 例如: k: ADD BX,AX k+1: MOV CX,[BX] 解决方法:推后分析法和设置专用数据通路
相关:所谓相关(correlation)是指在一段程序的相近 指令之间有某种关系,这种关系可能影响指令的重叠执 行。通常,把相关分为两大类。
数据相关:在执行本条指令的过程中,如果用到的指 令、操作数、变址偏移量等正好是前面指令的执行结果, 则必须等待前面的指令执行完成,并把结果写到生存或 通用寄存器中之后,本条指令才能开始执行,这种相关 称为数据相关。
2020/10/6
第五章 标量处理机
第10 页
5.1 先行控制技术
2020/10/6
第五章 标量处理机
第11 页
5.1 先行控制技术
四、控制相关
控制相关是指因为程序的执行方向可能被改变而引 起的相关。可能改变程序执行方向的指令通常有无条件 转移、一般条件转移、复合条件转移、子程序调用、中 断等。 有些资料上把上一节中介绍的数据相关称为局 部相关,而把本节将要介绍的控制相关称为全局相关。 这是因为数据相关影响到的仅仅是本条指令附近的少数 几条指令,而控制相关影响的范围要大得多,它可能引 起程序执行方向的改变。
“断流”等。执行时间长的一段将成为整个流水线的
“瓶颈”,这时,流水线中的各个功能部件将不能充分
发挥作用。因此,在流水线设计中,当遇到“瓶颈”时,
必须
2020/10/6
第五章 标量处理机
第26 页
5.2 流水线处理机
采取办法解决。 5.流水线需要有“装入时间”和“排空时间”。只有流水 线完全充满时,整个流水线的效率才能得到充分发挥。
2020/10/6
第五章 标量处理机
第14 页
5.1 先行控制技术
2.条件转移 在采用先行控制方式的处理机中,条件转移对程序
执行速度造成的影响很大。先行控制部件的缓冲深度越 深,造成的速度损失也可能越大。
先看下面的例子:
k: add ax,bx
k+1: jz L k+2: mov dx,
┋ L: mov cx, 指令分析器在分析到条件转移语句时,必须停下来 等待条件码的形成。
相关文档
最新文档