当前位置:
文档之家› 计算机体系结构-第二讲 流水线基础
计算机体系结构-第二讲 流水线基础
任 务 顺 序
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
°还要花费 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
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
° 我们要将数据通路分割成不同的阶段,需要增加些什么?
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
理想的加速比是流水线的段数. 我们能够获得这个加速比吗? 理想的加速比是流水线的段数. 我们能够获得这个加速比吗?
Computer Architecture, Autumn 2010
流水线基础
(Pipelining Basic) 王春露(Prof. Chunlu Wang)
wangcl@
北京邮电大学 计算机系科学与技术系 /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
流水线工作原理 流水线的分类 线性流水线的性能分析 非线性流水线的调度技术
Computer Architecture, Autumn 2010
流水线工作原理
1、流水线锁存器 、
流水步、 流水线的每一个阶段称为流水步 流水步骤、流水段、 流水线的每一个阶段称为流水步、流水步骤、流水段、 流水 线阶段、流水功能段、功能段、流水级、流水节拍等。 线阶段、流水功能段、功能段、流水级、流水节拍等。 在每一个流水段的末尾或开头必须设置一个(多个)寄存器, 在每一个流水段的末尾或开头必须设置一个(多个)寄存器, 称为 流水寄存器、流水锁存器、流水闸门寄存器等。 流水寄存器、流水锁存器、流水闸门寄存器等。 流水锁存器会增加每条指令的执行时间, 流水锁存器会增加每条指令的执行时间,但采用流水线之 后整个程序的执行时间会缩短。 后整个程序的执行时间会缩短。 为了简化,在一般流水线中不画出流水锁存器。 为了简化,在一般流水线中不画出流水锁存器。
3、流水线时空图
IFetch Dcd
IFetch Dcd
IFetch Dcd
IFetch Dcd 程序流
IFetch Dcd
Computer Architecture, Autumn 2010
为什么采用流水线呢? 因为有资源空闲! 为什么采用流水线呢 因为有资源空闲
时间 (时钟周期)
指 令 顺 序
ALU
Inst Inst Inst Inst Inst
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
流水线技术
流水线是一种实现技术 空间并行性:设置多个独立的操作部件 空间并行性: 多操作部件处理机、 如:多操作部件处理机、超标量处理机 时间并行性: 时间并行性:采用流水线技术 不增加或只增加少量硬件就能使运算速度提高几倍, 不增加或只增加少量硬件就能使运算速度提高几倍, 流水线处理机、 如:流水线处理机、超流水线处理机
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
30 30 30 30 30 30 30
时间
° 流水线作业洗4个人的衣物只需要 个小时! 流水线作业洗 个人的衣物只需要 3.5 个小时
Computer Architecture, Autumn 2010
流水线
6 下午 7 8 9
流水线无法帮助解决单个任务 ° 的延迟, 有利于减少整个工作 延迟 全部时间 多个任务同时操作需要不同 多个任务同时操作需要不同 ° 的资源 可能的加速比 = ° 流水线的段数 流水线的速率受速度最慢 流水线的速率受速度最慢 ° 的流水段的限制 流水线各段长度不均会降低 ° 加速比 充满流水线所需的时间和 充满流水线所需的时间和 ° 排空流水线所需的时间影响 排空流水线所需的时间影响 加速比 会由于依赖而造成阻塞 °
取操作数 4
执行 5
保存结果 6
输出
流水线的时空图表示方法 流水线的时空图表示方法 时空图 表示流水线的时间关系 流水线的预约表 预约表表示方法 流水线的预约表表示方法 将在非线性流水线中介绍 一般处理机的指令流水线为 4 至 12 个级 Computer Architecture, Autumn 2010 指令流水线等于和大于8 指令流水线等于和大于8级的称为超流水线处理
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
指令分析器 分析 k+1
△t1
输入
流水 锁存器
指令执行部件 执行 k △t2
流水 锁存器
输出
Computer Architecture, Autumn 2010
2、流水线的表示方法 、 流水线的连接图 连接图表示方法 流水线的连接图表示方法 表示流水线的逻辑关系
输入
取指令 1
译码 2
形成操作 数地址 3
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
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
流水线是很自然的! 流水线是很自然的
洗衣店的例子 ° A, ° B, C, D 均有一些衣务要清洗,甩干, 均有一些衣务要清洗,甩干,折叠 清洗要花 30 分钟 ° A B C D
甩干要用 30 分钟 °
叠衣物也需要 30 分钟 °
In s tru c tio n
8 ns
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
E X : E x e c u te / a d d r e s s c a lc u l a ti o n