计算机体系结构-第二讲 流水线基础

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

In s tru c tio n
8 ns
ຫໍສະໝຸດ Baidu
fe tc h
R eg
ALU
D a ta ac c e ss
R eg
lw $ 3 , 3 0 0 ( $ 0 )
In s tru c t io n
8 ns
fe tc h
...
8 ns
P r o g r am e x e c u tio n o rd er 2 T im e 4 6 8 10 12 14
Load
Ifetch Reg /Dec
Exec
Mem
Wr
Ifetch : 获取指令 ° • 从指令存储器中获取指令 Reg /Dec: 获取寄存器,指令译码 获取寄存器, ° Exec: 计算内存地址 ° Mem : 从数据存储器中读数据 ° Wr ° : 向寄存器文件写回数据
Computer Architecture, Autumn 2010
PC
A dd re s s
In s tr u c t io n m e m o ry
W r ite r e g is t e r
R ea d d a ta
1 M u x
Computer Architecture, Autumn 2010
流水线技术
流水线是一种实现技术 空间并行性:设置多个独立的操作部件 空间并行性: 多操作部件处理机、 如:多操作部件处理机、超标量处理机 时间并行性: 时间并行性:采用流水线技术 不增加或只增加少量硬件就能使运算速度提高几倍, 不增加或只增加少量硬件就能使运算速度提高几倍, 流水线处理机、 如:流水线处理机、超流水线处理机
理想的流水线机器 °
• 10 /cycle x (1 CPI x 100 ns inst + 4 cycle drain) = 1040 ns
Computer Architecture, Autumn 2010
Load指令的五个阶段 指令的五个阶段 指令的五个
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5
流水线工作原理 流水线的分类 线性流水线的性能分析 非线性流水线的调度技术
Computer Architecture, Autumn 2010
流水线工作原理
1、流水线锁存器 、
流水步、 流水线的每一个阶段称为流水步 流水步骤、流水段、 流水线的每一个阶段称为流水步、流水步骤、流水段、 流水 线阶段、流水功能段、功能段、流水级、流水节拍等。 线阶段、流水功能段、功能段、流水级、流水节拍等。 在每一个流水段的末尾或开头必须设置一个(多个)寄存器, 在每一个流水段的末尾或开头必须设置一个(多个)寄存器, 称为 流水寄存器、流水锁存器、流水闸门寄存器等。 流水寄存器、流水锁存器、流水闸门寄存器等。 流水锁存器会增加每条指令的执行时间, 流水锁存器会增加每条指令的执行时间,但采用流水线之 后整个程序的执行时间会缩短。 后整个程序的执行时间会缩短。 为了简化,在一般流水线中不画出流水锁存器。 为了简化,在一般流水线中不画出流水锁存器。
E X : E x e c u te / a d d r e s s c a lc u l a ti o n
M E M : M e m o ry a c c e s s
W B : W ri te b a c k
Ad d Add re s ult
4 S h if t l ef t 2
A dd
PC
A d d r e ss
Pipelining
通过增加指令的执行阶段增强性能
°
程序 执行 顺序
2 T im e
4
6
8
10
12
14
16
18
lw $ 1 , 1 0 0 ( $ 0 )
In s tru c t io n fe tc h
R eg
ALU
D a ta a c ce ss
R eg
lw $ 2 , 2 0 0 ( $ 0 )
0 1 2 3 4
Im
Reg
Dm
Reg
ALU ALU
Im
Reg
Dm
Reg
ALU
Im
Reg
Dm
Reg
ALU
Im
Reg
Dm
Reg
ALU
Im
Reg
Dm
Reg
Computer Architecture, Autumn 2010
单时钟周期, 多时钟周期,同流水线比较 同流水线比较. 单时钟周期 多时钟周期 同流水线比较
Computer Architecture, Autumn 2010
基本思想
IF : I n s t r u c tio n fe t c h I D : I n s tr u c tio n d e c o d e / r e g is t e r f il e r e a d
0 M u x 1
R eg
ALU
D a ta acce s s
R eg
lw $ 3 , 3 0 0 ( $ 0 )
In s tru c tio n
2 ns
fe tc h
Reg
ALU
D a ta a cc es s
R eg
2 ns
2 ns
2 ns
2 ns
2 ns
理想的加速比是流水线的段数. 我们能够获得这个加速比吗? 理想的加速比是流水线的段数. 我们能够获得这个加速比吗?
3、流水线时空图
Z e ro A LU 0 M u x 1 W r ite dat a ALU re s u lt A d d re ss D a ta m e m o ry R e ad d a ta 1 M u x 0
16 Si g n e x te n d
32
° 我们要将数据通路分割成不同的阶段,需要增加些什么?
流水线技术
Computer Architecture, Autumn 2010
流水线是很自然的! 流水线是很自然的
洗衣店的例子 ° A, ° B, C, D 均有一些衣务要清洗,甩干, 均有一些衣务要清洗,甩干,折叠 清洗要花 30 分钟 ° A B C D
甩干要用 30 分钟 °
叠衣物也需要 30 分钟 °
° °
个人的衣物, 洗4 个人的衣物,顺序操作需要 8 个小时 如果使用流水线作业, 将需要多少时间呢? 如果使用流水线作业 将需要多少时间呢
Computer Architecture, Autumn 2010
流水线作业
6 下午 7 8 9 10 11 12 1 2 上午
任 务 顺 序
A B C D
任 务 顺 序
B C D A
时间
30 30 30 30 30 30 30
Computer Architecture, Autumn 2010
传统的流水线执行表示
时间轴 IFetch Dcd Exec Mem Exec WB Mem Exec WB Mem Exec WB Mem Exec WB Mem Exec WB Mem WB
Computer Architecture, Autumn 2010
流水线数据通路
0 M u x 1
IF /I D
ID / E X
E X/M E M
M E M /W B
Add
A dd 4 Add re s u lt
S hift le f t 2
I n s t r u c t io n
R ead r e g is t e r 1 Re ad d ata 1 R ead r e g is t e r 2 R e g i s te r s Re ad d ata 2 A LU 0 M u W r ite d a ta x 1 0 W r i te da ta 16 S ig n e x te n d 32 D a ta m e m o ry Z e ro ALU r e s u lt A d d re s s
指令分析器 分析 k+1
△t1
输入
流水 锁存器
指令执行部件 执行 k △t2
流水 锁存器
输出
Computer Architecture, Autumn 2010
2、流水线的表示方法 、 流水线的连接图 连接图表示方法 流水线的连接图表示方法 表示流水线的逻辑关系
输入
取指令 1
译码 2
形成操作 数地址 3
( in in s tr u c tio n s ) lw $ 1 , 1 0 0 ( $ 0 )
In s tru c tio n fe tc h Reg ALU D a ta a ccess R eg
lw $ 2 , 2 0 0 ( $ 0 )
In s t ru c tio n
2 ns
fe tc h
In s tr u c tio n In stru c tion m e m o ry
R e ad d a ta 1 R ea d re gis te r 2 R eg iste rs R e ad W rite d a ta 2 re gis te r W rite d a ta
R ea d re gis te r 1
Store Ifetch Reg Exec Mem
R-type Ifetch
流水线的实现: 流水线的实现 Load Ifetch Store Reg Ifetch R-type Exec Reg Ifetch Mem Exec Reg Wr Mem Exec Wr Mem Wr
Computer Architecture, Autumn 2010
IFetch Dcd
IFetch Dcd
IFetch Dcd
IFetch Dcd 程序流
IFetch Dcd
Computer Architecture, Autumn 2010
为什么采用流水线呢? 因为有资源空闲! 为什么采用流水线呢 因为有资源空闲
时间 (时钟周期)
指 令 顺 序
ALU
Inst Inst Inst Inst Inst
Cycle 1 Clk 单时钟周期的实现: 单时钟周期的实现 Load Store Waste Cycle 2
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9 Cycle 10 Clk 多时钟周期的实现: 多时钟周期的实现 Load Ifetch Reg Exec Mem Wr
Computer Architecture, Autumn 2010
流水线基础
(Pipelining Basic) 王春露(Prof. Chunlu Wang)
wangcl@bupt.edu.cn
北京邮电大学 计算机系科学与技术系 http://scs.bupt.edu.cn/cs_web/
流水线技术 相关性分析技术 超标量处理机 超流水线处理机 超标量超流水线处理机
为什么使用流水线? 为什么使用流水线
设想我们要执行 100 条指令 ° 单周期的机器 °
• 45 /cycle x 1 CPI x 100 ns inst = 4500 ns
多周期的机器 °
• 10 ns/cycle x 4.2 CPI (due to inst mix) x 100 inst = 4200 ns
取操作数 4
执行 5
保存结果 6
输出
流水线的时空图表示方法 流水线的时空图表示方法 时空图 表示流水线的时间关系 流水线的预约表 预约表表示方法 流水线的预约表表示方法 将在非线性流水线中介绍 一般处理机的指令流水线为 4 至 12 个级 Computer Architecture, Autumn 2010 指令流水线等于和大于8 指令流水线等于和大于8级的称为超流水线处理
30 30 30 30 30 30 30
时间
° 流水线作业洗4个人的衣物只需要 个小时! 流水线作业洗 个人的衣物只需要 3.5 个小时
Computer Architecture, Autumn 2010
流水线
6 下午 7 8 9
流水线无法帮助解决单个任务 ° 的延迟, 有利于减少整个工作 延迟 全部时间 多个任务同时操作需要不同 多个任务同时操作需要不同 ° 的资源 可能的加速比 = ° 流水线的段数 流水线的速率受速度最慢 流水线的速率受速度最慢 ° 的流水段的限制 流水线各段长度不均会降低 ° 加速比 充满流水线所需的时间和 充满流水线所需的时间和 ° 排空流水线所需的时间影响 排空流水线所需的时间影响 加速比 会由于依赖而造成阻塞 °
°还要花费 30 分钟的时间
将衣物放在衣柜里
Computer Architecture, Autumn 2010
顺序操作
6 下午 30 30 7 30 30 8 30 30 9 30 30 10 30 30 11 30 30 12 30 30 1 2 上午
30 30
任 务 顺 序
时间
A B C D
相关文档
最新文档