当前位置:文档之家› 6计算机组成原理第6章流水线原理

6计算机组成原理第6章流水线原理

1)对存储器的频繁访问 ① 有哪些访问:取指令、取操作 数、存放执行结果, I/O通道访问. ② 希望存储器为多体结构,以适 应多种访问源的需要。 ③ 当存储器为单体结构时,需要 将访问源排队,先后顺序为: 取指令、取数据、I/O通道访问、存
结果
6.1 先行控制技术
• 先行控制(look-ahead)技术最早在IBM公司研制的 STRETCH机器中采用。目前,许多处理机中都已经采 用了这种技术,包括超流水处理机和超标量处理机等。
6.4 线性流水线性能分析
衡量流水线的主要指标有吞吐率,加速比和效率。
6.4.1 吞吐率TP
吞吐率(TP ── ThroughPut)指流水线在单位时间内执行的任务数, 可以用输入任务数或输出任务数表示。
TP n Tk
其中k表示流水线划分的段数。
当满足 ti 条t 件时,有 Tk (n k 1) t。
第6章 流水线原理及其 §1 重叠方式
通常提高指令执行速度的途径有如下三种: 1. 提高处理机的工作主频。 2. 采用更好的算法和设计更好的功能部件。 3. 多条指令并行执行,称为指令级并行技术。
• 可以从两个方面来开发处理机内部的并行性:
– 空间并行性:即在一个处理机内设置多个独 立的操作部件,并让这些操作部件并行工作, 这种处理机称为多操作部件处理机或超标量 处理机;
• 超长指令字技术VLIW:指让一条指令包含多个独立的操 作字段,并且分别控制多个功能部件并行工作的技术。
一.重叠解释方式
1.一条指令的几个过程段
1)取指令:根据PC(指令计数器)从M(存储器)取 出指令送到IR(指令寄存器)
2)译码分析:译出指令的操作性质,准备好所需数 据
3)执行:将准备好的数按译出性质进行处理,主要 涉及ALU(算术逻辑运算部件)
2. 在流水线中处理的必须是连续任务,只有不断的提供 任务才能充分发挥流水线的效率。
3. 把一个任务分解为几个有联系的子任务,每个子任务 由一个专门的功能部件来实现。
4. 在流水线的每一个功能部件的后面都要有一个缓冲器 ,用于保存本段的执行结果。
5. 各个功能段所需时间应尽量相等,否则时间长的功能 段将成为流水线的“瓶颈”,会造成流水线的“堵塞 ”和“断流”。这个时间一般为一个时钟周期(节拍 )。
S k
上式指出,S=E×k,就是说当效率达到100%时,流水方 式(一个任务/Δt)吞吐率为顺序方式(一个任务 /(k×Δt))的k倍。
实际效率:
E k n t n k (k n 1)t k n 1
最大效率:EmaxFra bibliotekLim
n
k
n n
1
1
瓶颈问题用两种方法改进后的效率 和吞吐率
• P295
6.3 流水技术的分类
1)按各过程段用时是否全等划分 ① 均匀流水线:各过程段用时全等 ② 非均匀流水线:各过程段用时不全等(如 上图)
Ⅰ)时间匹配的均匀流水线。 Ⅱ)时间不匹配的非均匀流水线。
Δt
Δt
2Δt
Δt
1
2
3
4
2)按处理的数据类型
①标量流水线:用于对标量数据进行流水处 理。
②向量流水线:用于对向量数据进行流水处 理。(向量很适合流水处理)
TP
n
(k n 1)t
最大吞吐率:
TPmax
Lim n (k
n n 1)t
1 t
最大吞吐率与实际吞吐率的关系:
TP
(k
n n
1)
TPmax
(2) 流水线各段的执行时间不等
实际吞吐率:
n
TP k
ti (n 1) max(t1, t2 ,
i 1
最大吞吐率:
, tk )
1
TPmax max(t1, t2 , , tk )
假设:各个功能段时间相同,公式见教材P285
各个功能段时间不相同,公式见 顺序执行 k*(t取+t译+t执) 两条重叠 t取+ k* t译+(k-1) *( t取,t执)max+ t执 三条重叠 t取+( t译, t取)max+(k-2) *(t取,t译,t
执)max+( t执, t译)max+ t执
2. 对指令执行的几种方式
1)顺序执行 (传统机采用)
只有在前一条指令的各过程段全部完成后,才 从存储器取出下一条指令






i条
i +1 条
2) 仅两条指令重叠:第i条指令的执行与第i+1条的取指
重叠。
i条 取 译 执
i+1条
取译执
3) 三条指令重叠:第i条指令的执行与第i+1条的译码及
第i+2条的取指重叠。
3) 例子 当k=200,t取=3Δt,t译=4Δt,t执=5Δt, 时,分别计算上述三种执行方式的时间。
顺序执行:200×(3+4+5)=2400Δt
两条重叠:3+200×4+(200-1)×5+5=1803Δt
三条重叠:3+4+(200-2)×5+5+5=1007Δt
4 重叠方式需要解决的问题
• 先行控制技术的关键是缓冲技术和预处理技术,以及两 者的结合。
• 缓冲技术是在工作速度不固定的两个功能部件之间设置 缓冲栈,用以平滑它们的工作。
• 预处理技术是把进入运算器的指令都处理成寄存器-寄 存器(RR型)指令,为进入运算器的指令准备好所需要 的全部操作数。
采用先行控制方式的处理机结构
2)应具有先行控制部件 ① 先行:在重叠操作中,当前一条指令在执行过程中 就需要提前取出后面的指令进行相应处理,这种提 前取出后继指令进行相应处理,称为先行。 ② 先行控制部件的主要包括 Ⅰ)先行地址站,包括先行指令地址站和先行操作数 地址站; Ⅱ)先行指令站,用来存放多条指令; Ⅲ)先行操作数站,用来存放多个操作数; Ⅳ)先行地址形成部件,用来形成先行指令地址 以及先行操作数地址; Ⅴ)先行操作码译码站,用来完成对多条指令的 译码并保留译码输出状态。
S4
1 2 3 4 … … N-1 N
S3
1 2 3 4 … … N-1 N
S2 1 2 3 4 … … N-1 N
S1 1 2 3 4 … … N-1 N
时间
K×T
(N-1)×T
N×T
(K-1)×T
Tk
(1)流水线各段的执行时间相等
流水线产生n个结果所需要的时间:
Tk (k n 1)t
实际吞吐率:
空间(段号)

1
2
Ⅰ1
2
3
空间(段号)
3
4
4
10 (b) 重叠方式

1234

1234

1234
Ⅰ1 2 3 4
7
Δt
(c) 流水方式
图 3.2 CPU 工作时空图
时间(拍) 时间(拍)
6.2.4 流水线的特点
1. 流水过程由多个相联系的子过程组成,每个子过程称 为流水线的级或段,段的数目称为流水线的深度。
标量计算机指只能直接进行标量运算的计算机,与能 够直接进行向量运算的向量计算机相对应。
流水处理方式的特征,是让多个依次启动的任务,尽 量同时使用系统的不同部件,通过时间重叠来提高处理速 率。这种技术理论上不增加成本。
标量计算机上使用的流水加速技术属于指令级并行技 术。
每条指令的处理过程,可以划分为取指、译码 、取数、运算、送结果5个子过程,也可以分得更 细或更粗一些。划分的原则是各部分时间长度大 致相等、并使用CPU中不同的部件,这样才有利于 多任务重叠处理。
5.4.5 “瓶颈”问题及其解决方法
• 瓶颈:瓶颈就是Δti最大的段,它使流水线“流 速”减慢。

S1 S2 S3 S4

Δt 3Δt Δt Δt
• 方法1:再细分 ── 将瓶颈设备再细分为下一级 流水线

S1 S2a S2b S2c S3 S4

Δt Δt Δt Δt Δt Δt
• 方法2:并行设置 ── 将瓶颈设备重复设置多套。
• 顺序方式是解释完一条指令再开始解释下一条;
• 流水方式是把一个重复的过程分解为若干个子过程 ,每个子过程可以与其它子过程同时进行,以此提 高单位时间内解释指令的数目;
• 重叠方式是一种简单的流水方式,它把指令分成2 个子过程 每条指令只与下一条指令相重叠。
重叠方式流水线
• 当分析部件完成上一条指令的“分析”后,就立即将之送入 执行部件,同时分析部件可以开始处理下一条指令。
6.5 流水线中的相关
• 相关的定义:
流水线中的相关是指相邻或相近的指令因存在某种关联, 后面的指令不能在原指定的时钟周期开始执行。
• 一般来说,流水线中的相关主要分为如下三种类型:
1. 结构相关:当硬件资源满足不了指令重叠执行的要求, 而发生资源冲突时,就发生了结构相关。
2. 数据相关:当一条指令需要用到前面指令的执行结果, 而这些指令均在流水线中重叠执行时,就可能引起数据 相关。
• 也应具有后行部件 后行部件:对指令执行后的结果进行处理的器件,称 后行部件。包括:
①后行数地址站,提供后行数存放地址。 ②后行数站,存放运行的结果,并且,这些结果需送存
储器。
6.2 流水处理的概念
6.2.1 基本思想
6.2.2 流水技术
• 流水技术:将一个重复的时序过程分解成为若干个子
3)按流水线的规模
①操作流水线:如将一条指令划分为多个过 程段进行流水处理。规模最小
②指令流水线:以指令为单位进行处理,用 于多进程、多任务。规模较大
相关主题