第5章计算机流水线技术.ppt

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章 流水线处理技术
5.1 流水处理概述 5.2 流水线工作方式 5.3 流水线性能分析 5.4 超标量超流水计算机 5.5 向量处理机器
5.1 流水线处理概述
一、CPU主要工作方式: ➢ 顺序 ➢ 重叠 ➢ 流水
和铺地板的原理相似…
5.1 流水线处理概述
设指令工作方式分成取指令、分析、执行指令
分析k
执行k 分析k+1
执行k+1 分析k+2
执行k+2
✓多操作部件并行:采用有多个功能部件的处理机,把ALU的 多种功能分散到几个具有专门功能的部件中,这些功能部件可 以并行工作,使指令流出速度大大提高。
取指令 分析 执行
n
T (t取i t分i t执i) i1 3n t
T0=m △ t0 n △ t0
(n-1) △ t0
(m-1) △ t0
T
流水时空图
时间
建立时间:在流水线开始时有一段流水线填入时间,使得流 水线填满。
正常流动时间:流水线正常工作,各功能段源源不断满载工 作。
排空时间:在流水线第一条指令结束时,其他指令还需要一 段释放时间。
2、流水线特点: 1)流水一定重叠,比重叠更苛刻。 2)一条流水线通常有多个流水段组成。 3)每段有专用功能部件,各部件顺序连接,不断流。 4)流水线有建立时间、满载时间、排空时间, 5)各段时间尽量短、一致;不一致时最慢子过程为瓶颈。 6)给出指标如最大吞吐率,为满负载最佳指标。
4
1 2 3 4 5 ... ... ... n-1 n
3
1 2 3 4 5 ... ... ... n-1 n
2 1 2 3 4 5 ... ... ... n-1 n 1 1 2 3 4 5 ... ... ... n-1 n
一 二三四五六七
动态多功能流水线时-空图
时间
区别:如果从软硬功能分配的观点上来看,静态流水线其实 是把功能负担较多地加到软件上,以简化硬件,动态流水线 则是把功能负担较多地加在硬件上,以提高流水的效能。
分段部件 存储管理部件 分页部件
取指令1 取指令2 取指令3 取指令4 存结果1 取指令5 取指令6
指令译码器1 指令译码2 指令译码3 指令译码4 指令译码5
执行1
执行2
执行3
执行4
地址变换和MMU
80386的指令流水处理
地址变换和MMU
相关处理
定义 :相近指令出现某种关联使不能同时执行。
➢资源相关 ➢数据相关 ➢控制相关
执行k 分析k+1
执行k+1 分析k+2
功能部件浪费 执行k+2
分析指令和执行指令时间不等时的一次重叠方式
分析k
分析k+1 执行k
分析k +2 执行k+1
分析k+3 执行k +2
采用先行缓冲栈时指令执行过程的一种表示方法
执行k+3
先行控制:
一般采用先行缓冲栈的方式实现:
一般设置四种缓冲栈:
➢先行指令缓冲栈 当主存比较忙时,指令分析器能够从先行指令缓冲栈中得到所需指令。
SBI
I/O子系统
I部件 存储器数 M部件 适配器总线 据总线
F部件
写总线
操作数总线
数组总线 主存
选件SBI
适配器
SBI
I/O子系统
VAX8600的CPU结构图
取指 N-1 令
N-2
N-1
N-2
N+1
N+2
指令 译码
N+1
N+2
形成操作
数地址
N-1
N+1
取操 N-1 作数
实框:表示CPU在执行一
条典型的指令时的动作顺
若各段时间不等时,有
实际执行时间:
n
T t分1 max t分i , t执i1 t执n
i2
✓先行控制:分析部件和执行部件能分别连续不断地分析和执 行指令,预取和缓冲相结合的技术 ,通过对指令流和数据流的 先行控制,使指令分析器和执行部件能尽量连续并行工作。 执行时间:
包括一次重叠、先行控制技术和多操作部件并行。
✓将 相 邻 两 条 指 令 的 重 叠 时 间 再 往 前 提 前 一 个 阶 段 ; T=3×t+(n-1)×t=(n+2)×t
✓ 一次重叠:把取指令操作隐含在分析、执行指令过程
中,则在任何时候只允许上条指令“执行”与下条指令
“分析”相重叠。
T=(n+1)×t
另一种分类: ➢局部相关 ➢全局相关
1. 资源相关
资源相关是指当有多条指令进入流水线后在同一机器周期内 争用同一功能部件所发生的冲突
例1:
X 6 X 1 X 2 两条指令同时要用一个加法器 X5 X3 X4
指令 流水段
IF
ALU 取指
LOAD/STORE 取指
ID
译码、读寄存器堆
译码、读寄存器堆
MEM WB EX MEM
使i+3指令停顿一拍进入流水线,以解决访存相关 或重复设置一个存储器
2. 数据相关
例:有i 和j两条指令,i指令在前,j指令在后,则三种不同类
型的数据相关的含义为:
顺序
流动
✓RAW读写(先写后读) - 指令 j 试图在指令 i 写入寄存器前就
读出该寄存器内容,这样,指令j就会错误地读出该寄存器旧
则此时有:
L1t1 = (L1-D1)t2
可以计算深度:
D1


L2
(t2 t2
t1
)


5.2、流水工作方式
1、流水的概念特点
流水:把一个重复时序过程分成若干个子过程,每个子过程 都可有效的在其专用功能段上和其它子过程同时执行 的一种技术。
流水线的基本结构中主要包括三大部分:锁存器、时钟、功 能站。
入该寄存器,这样,两次写的先后次序被颠倒,就会错误地
使由指令i写入的值成为该寄存器内容。
(改改相关) i: R1*R2->R3 j: R4+R5->R3
通过一种极端情况计算举例:
假设先行指令缓冲栈已经完全充满,缓冲深度是D1。 此时指令缓冲栈输出端,指令流出速度最快,而输入端,流 入最慢
假设指令序列的最大长度是L1,平均分析一条指令的时间是t1 而此时更坏的是取指令很慢,平均取一条指令的时间是t2 假设先行控制栈充满到被取空的过程中指令分析条数是L1
分析k 执行k
分析k+1
执行k+1
分析k+2
执行k+2
n
T t分1 max t分i , t执i1 t执n
i2
n t
先行控制:
现代计算机指令系统是复杂的,“分析”和“执行”所需要的时间往往相差 很大,从而造成功能部件的浪费,因此,需要采用先行控制技术。
分析k
5 WB MEM
EX ID IF
6
WB MEM EX
ID
7
WB MEM EX
8
WB MEM
两条指令同时访存造成资源相关
冲突
解决方法:
时12 3 4
5
6
7
8
9

指令
Load I ID EX MEM WB 指令 F
指令 i+1
指令 i+2
指令 i+3
指令 i+4
IF ID EX MEM WB IF ID EX MEM WB 停顿 IF ID EX IF ID
N-1
序。
虚线:表示6个动作是各自 分开进行的,可以同其它 指令的动作并行进行。
N+2
N+1 执行 指令
N-1
周期 操作
N+1
存储
结果
N+1
VAX8600指令流水线的工作顺序
(2)长城386指令流水线 内部有六个部件 总线接口部件:同外部的接口 取指令、读写数据。
I部件: 指令预取部件:取指令放在 16个字节指令预取队列。 指令译码部件:形成指令微码,指令队列中可放3条指令 E部件: 执行部件:控制、数据部件、保护测试部件
的内容。 (改用相关) i: R1+R2->R3
不按顺
j: R3*R4->R5 序流动
✓WAR写读(先读后写) - 指令 j 试图在指令 i读出寄存器之前
就写入该寄存器,这样,指令i就错误地读得该寄存器新的内
容。
不按顺
(用改相关)i: R3*R4->R5 j: R1+R2->R3 序流动
✓WAW写写(先写后写) - 指令j试图在指令i写寄存器之前就写
EX
执行
计算访存有效地址
MEM
-
访存(读或写)
WB
结果写回寄存器堆
将读出的数据写入寄
存器堆
不同类型指令中各流水段进行的操作
例2: 取指 译码 执行 访存 写回
时钟 1 2 3 4
指令
Load 指令
指令 i+1
指令 i+2
指令 i+3
指令 i+4
IF ID EX MEM IF ID EX IF ID IF
➢先行操作栈
对于条件转移等使用。
➢先行读书栈
主存储器和运算器之间的缓冲存储器,用来平缓运算器和主存储器之间的工作。
➢后行写数栈 当前没有完全写道主存的数据可以暂存到写数栈
先行控制的处理机结构:

先行指令缓冲栈






先行读数栈


后行写书栈
指令分析器




运算器

先行控制中的缓冲深度设计:
一二 三 四
静态多功能流水线时-空图
时间
静态流水线:只有当进入的是一串相同运算的指令时,流水的 效能才得以发挥,才能使各个功能段并行地对多条指令的数据 进行流水处理。
浮加
定乘
8
1 2 3 4 5 ... ... ... n-1 n 一 二 三 四
7
一 二三四五
6
一 二三四五六
5
1 2 3 4 5 ... ... ... n-1 n
3、流水的分级、分类
静态流水线:(功能负担软件多,便宜)。 同一时间内各功能段只能按一种方式联接工作,只有当进入 的是一串相同运算指令时,流水线中各功能段才能高效满负 荷工作。
动态流水线:(功能负担硬件多,高效) 。 同一时间内各功能段可按不同运算或功能的联接方式工作, 对吞吐率和设备利用率都有好处,但控制复杂,成本明显增 加。
S2
….. .….
输出 Sk
时钟
流水线的基本结构
空间
填入
正常
排空
4 1 2 3 4 5 ... ... ... n-1 n
3
1 2 3 4 5 ... ... ... n-1 n
2 1 2 3 4 5 ... ... ... n-1 n
1 1 2 3 4 5 ... ... ... n-1 n
△t0 △ t0 △ t0 △ t0
3、流水的分级、分类
线性流水线:

1
2
3
非线性流水线 非线性流水线:
入 1
2
3
非线性流水线
4

4 出
4、流水线举例 (1)ASC算术运算流水线(多功能) 加
1 输入
1
输入
Fra Baidu bibliotek
1
2 减阶
2
减阶
3 对阶移位
3 对阶移位
4 相加
4
相加
5 规格化
5 规格化
6 相乘
6
7 累加
7
8 输出
8
输出
8
浮点加
乘 输入
尾数相 乘 累加 输出
取指令
分析
执行
每阶段时间为t,共n条指令 。。。
n
顺序串行(sequence): T (t取i t分i t执i) i 1
若各阶段执行时间相等,则共需3 n t
优点:控制简单; 缺点:速度慢,机器各部件的利用率很低。
重叠(Overlap):在两条相近指令的解释过程中,某些不同解释 阶段在时间上存在重叠部分。
2.VAX8600和长城386计算机的指令流水线
指令流水线:一条指令的取指令、译码、取操作数和执 行等几个过程能同它前后的指令在时间上重叠,用这种 指令重叠的方法构成的流水线就是指令流水线,又叫指 令先行控制。
(1)VAX8600的流水结构 a. I部件:预取指令,操作码译码,预取操作数,并存放运算结
果。 b. E部件:执行指令。 c. F部件;浮点加速器。 d. M部件:控制CPU和输入输出设备对主存的访问,有16k字节
的cache和把虚存地址转换成实存地址的地址转换表(快表) e. 操作台:提供同操作员,引导设备和远程诊断的界面。
C总线 诊断总线
操作台
E部件
虚拟地址
标准SBI 适配器
定点乘
空间 (段号)
浮加
定乘
8
1 2 3 4 ... ... ... n-1 n

7
一二
6
一二三
5
1 2 3 4 ... ... ... n-1 n
4
1 2 3 4 ... ... ... n-1 n
3
1 2 3 4 ... ... ... n-1 n
2 1 2 3 4 ... ... ... n-1 n 1 1 2 3 4 ... ... ... n-1 n
3、流水的分级、分类
分级:(处理的级别分类) ❖ 部件级:将复杂的算逻运算组成流水工作方式; ❖ 指令级:把一条指令解释过程分成多个子过程 ; ❖ 处理机级:每个处理机完成某一专门任务,各个处理机所 得到的结果需存放在与下一个处理机所共享的存储器中
其他分类: ➢ 功能:单功能流水线(如CRAY-1)、多功能流水线 (如TI-ASC) ➢ 工作方式:静态流水线、动态流水线 ➢ 连接方式:线性、非线性 ➢ 处理数据:标量流水、向量流水
流水线中每个站都是由一些执行算术和逻辑功能的组合逻辑 线路组成的,它们可以互相独立地对流过的信息进行某种操作, 相邻两站由高速锁存器(latch)隔开,信息在各站间的流动 靠同时送到各站的时钟信号来控制。
输入
IF 取指
S1
ID 译码
EX 执行
MEM 访存
S2
S3
S4
指令的流水处理
WB 写回
S5
输出
输入 S1
相关文档
最新文档