计算机体系结构之流水线技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
动画演示
动态流水线 VS 静态流水线
优点:能提高流水线的效率 缺点:会使流水线的控制变得复杂
流水线的分类(3)
按照流水线的级别来分 部件级流水线(运算操作流水线):
把处理机的算术逻辑部件分段,使得各种数据类 型的操作能够进行流水。
处理机级流水线(指令流水线):
把指令的解释执行过程按照流水方式进行处理。
处理机间流水线(宏流水线):
它是指由两个以上的处理机串行地对同一数据流 进行处理,每个处理机完成一项任务。动画解析
流水线的分类(4)
按流水线是否有反馈回路分类 线性流水线:流水线的各段逐个串接,输入数 据从流水线一端输入从另一端输出;每个段都 只流过一次。 非线性流水线:流水线的各段除有串接外,还 有反馈回路;在一次流水过程中,有的段要被 多次使用。(举例)
2 流水线分类
流水线的分类(1)
按流水线所完成的功能分类 单功能流水线:只能完成一种固定功能的流水线 多功能流水线:流水线的各段可以进行不同的连 接,使流水线在不同的时间,或者在同一时间完 成不同的功能
例如: TI ASC的多功能流水线
流水线的分类(2)
按流水线在同一时间内各段的连接方式分类
流水线的分类(5)
按照数据表示来分 标量处理机:
不具有向量指令和向量数据表示,仅对标量进 行流水处理的处理机。
例如:IBM360/91, Amdahl 470V/6 等 向量处理机:
具有向量指令和向量数据表示的处理机。 例如:TI ASC, CRAY-I 等
流水线的分类(6)
按照流动是否可以乱序来分 顺序流动流水线:
静态流水线:
在同一时间内,多功能流水线各段只能按同一种功能连 接。只有当按这种方式工作的所有任务都流出流水线之 后,才能重新连接以实现其他功能。
在静态流水线中,只有当输入是一串相同的运算操作时 ,流水的效率才能得到发挥。
动画演示
动态流水线:
在同一时间内,多功能流水线各段可以按不同方式连接 ,同时执行多种功能
ALU
MUX MUX
Inst
Adder Memory
Address
Reg百度文库File
Imm
Sign Extend
WB Data
MUX
MUX
Data Memory
Memory Write Access Back
L M D
2. 一条MIPS指令最多需要以下5个时钟周期:
取指令周期(IF)
操作
IR←Mem[PC]
描述流水线的工作,最常用的方法是时间-空 间图(时空图)
横坐标:表示时间,即各个任务在流水线中所经过 的时间
纵坐标:表示空间,即流水线的各个子过程,也称 为级、段、流水线深度(Stage)
流水线的时空图
流水线的特点
流水线实际上是把一个功能部件分解成多个独立的子 功能部件(一个任务也就分成了几个子任务,每个子 任务由一个子功能部件完成),并依靠多个子功能部 件并行工作来缩短所有任务的执行时间
4. 存储器访问周期MEM(Memory Access) 5. 写回周期WB(Write Back)
MIPS的简单实现
Instruction Fetch
Instr. Decode Reg. Fetch
Next PC
Next SEQ PC
4
RS1
RS2
Execute Addr. Calc
Zero?
RD
执行/有效地址计算周期(EX)
不同指令所进行的操作不同:
存储器访问指令 ALUo←A + Imm
操作
寄存器-寄存器ALU指令 ALUo←A func B
操作
寄存器-立即值ALU指令 ALUo←A op Imm
操作
分支指令
操作
ALUo←NPC+(Imm<<2);
cond←(A = = 0)
将有效地址计算周期和执行周期合并为一个时钟周期,这
MIPS的基本流水线
MIPS指令集结构用5个功能段实现,每个功 能段用一个时钟周期
1. 取指令周期IF(Instruction Fetch) 2. 指令译码/读寄存器周期ID(Instruction
Decode) 3. 执行/地址计算周期EX(Execute)
❖ 存储器访问(计算有效地址) ❖ 寄存器-寄存器ALU操作 ❖ 寄存器-立即数ALU操作
流水线有助于提高整个程序(所有任务)的吞吐率, 但并没有减少每个指令(任务)的执行时间
流水线各个功能段所需时间应尽量相等。否则,时间 长的功能段将成为流水线的“瓶颈”,会造成流水线 的“阻塞”(Stall)
流水线开始需要“通过时间” (Fill)和最后需要“排空 时间”(Drain)。流水线只有处理连续不断的任务才能 发挥其效率
NPC←PC+4
指令译码/读寄存器周期(ID) 操作 A ← Regs[rs] B ← Regs[rt] Imm ← ((IR16)16##IR16..31)
指令的译码操作和读寄存器操作是并行进行的。
原因:在MIPS指令格式中,操作码字段以及rs、rt
字段都是在固定的位置。
这种技术称为固定字段译码技术。
四人衣物一共要花 4*(30+40+20)=360分钟
流水线的基本概念
6 PM 7
8
9
Time
T a
30 40 40 40 40 20
s k
A
O
r
B
d
e r
C
D
四人衣物一共要花 30+40*4+20=210分钟
流水线的基本概念
流水线技术:把一个重复的过程分解为若干个 子过程,每个子程序可以与其他子过程同时进 行
流水线输出端任务流出的顺序与输入端任务流 入的顺序相同。
异步流动流水线(乱序流水线):
流水线输出端任务流出的顺序与输入端任务流 入的顺序不同。
3 MIPS五级流水线
DLX(Dancing Links)
DLX 是一种简单的指令集(教学、简单芯片) 在不流水的情况下,如何实现DLX。
实现DLX指令的一种简单数据通路
计算机体系结构之流水线技术
路漫漫其悠远
少壮不努力,老大徒悲伤
大纲
1 概念定义 2 流水线分类 3 MIPS五级流水线 4 性能分析 5 流水线相关 6 高级流水线技术
1 概念定义
洗衣店的例子
A, B, C, D 均有一些衣物要 清洗,甩干,折叠
清洗要花30 分钟 甩干要用40 分钟 叠衣物也需要20 分钟
动态流水线 VS 静态流水线
优点:能提高流水线的效率 缺点:会使流水线的控制变得复杂
流水线的分类(3)
按照流水线的级别来分 部件级流水线(运算操作流水线):
把处理机的算术逻辑部件分段,使得各种数据类 型的操作能够进行流水。
处理机级流水线(指令流水线):
把指令的解释执行过程按照流水方式进行处理。
处理机间流水线(宏流水线):
它是指由两个以上的处理机串行地对同一数据流 进行处理,每个处理机完成一项任务。动画解析
流水线的分类(4)
按流水线是否有反馈回路分类 线性流水线:流水线的各段逐个串接,输入数 据从流水线一端输入从另一端输出;每个段都 只流过一次。 非线性流水线:流水线的各段除有串接外,还 有反馈回路;在一次流水过程中,有的段要被 多次使用。(举例)
2 流水线分类
流水线的分类(1)
按流水线所完成的功能分类 单功能流水线:只能完成一种固定功能的流水线 多功能流水线:流水线的各段可以进行不同的连 接,使流水线在不同的时间,或者在同一时间完 成不同的功能
例如: TI ASC的多功能流水线
流水线的分类(2)
按流水线在同一时间内各段的连接方式分类
流水线的分类(5)
按照数据表示来分 标量处理机:
不具有向量指令和向量数据表示,仅对标量进 行流水处理的处理机。
例如:IBM360/91, Amdahl 470V/6 等 向量处理机:
具有向量指令和向量数据表示的处理机。 例如:TI ASC, CRAY-I 等
流水线的分类(6)
按照流动是否可以乱序来分 顺序流动流水线:
静态流水线:
在同一时间内,多功能流水线各段只能按同一种功能连 接。只有当按这种方式工作的所有任务都流出流水线之 后,才能重新连接以实现其他功能。
在静态流水线中,只有当输入是一串相同的运算操作时 ,流水的效率才能得到发挥。
动画演示
动态流水线:
在同一时间内,多功能流水线各段可以按不同方式连接 ,同时执行多种功能
ALU
MUX MUX
Inst
Adder Memory
Address
Reg百度文库File
Imm
Sign Extend
WB Data
MUX
MUX
Data Memory
Memory Write Access Back
L M D
2. 一条MIPS指令最多需要以下5个时钟周期:
取指令周期(IF)
操作
IR←Mem[PC]
描述流水线的工作,最常用的方法是时间-空 间图(时空图)
横坐标:表示时间,即各个任务在流水线中所经过 的时间
纵坐标:表示空间,即流水线的各个子过程,也称 为级、段、流水线深度(Stage)
流水线的时空图
流水线的特点
流水线实际上是把一个功能部件分解成多个独立的子 功能部件(一个任务也就分成了几个子任务,每个子 任务由一个子功能部件完成),并依靠多个子功能部 件并行工作来缩短所有任务的执行时间
4. 存储器访问周期MEM(Memory Access) 5. 写回周期WB(Write Back)
MIPS的简单实现
Instruction Fetch
Instr. Decode Reg. Fetch
Next PC
Next SEQ PC
4
RS1
RS2
Execute Addr. Calc
Zero?
RD
执行/有效地址计算周期(EX)
不同指令所进行的操作不同:
存储器访问指令 ALUo←A + Imm
操作
寄存器-寄存器ALU指令 ALUo←A func B
操作
寄存器-立即值ALU指令 ALUo←A op Imm
操作
分支指令
操作
ALUo←NPC+(Imm<<2);
cond←(A = = 0)
将有效地址计算周期和执行周期合并为一个时钟周期,这
MIPS的基本流水线
MIPS指令集结构用5个功能段实现,每个功 能段用一个时钟周期
1. 取指令周期IF(Instruction Fetch) 2. 指令译码/读寄存器周期ID(Instruction
Decode) 3. 执行/地址计算周期EX(Execute)
❖ 存储器访问(计算有效地址) ❖ 寄存器-寄存器ALU操作 ❖ 寄存器-立即数ALU操作
流水线有助于提高整个程序(所有任务)的吞吐率, 但并没有减少每个指令(任务)的执行时间
流水线各个功能段所需时间应尽量相等。否则,时间 长的功能段将成为流水线的“瓶颈”,会造成流水线 的“阻塞”(Stall)
流水线开始需要“通过时间” (Fill)和最后需要“排空 时间”(Drain)。流水线只有处理连续不断的任务才能 发挥其效率
NPC←PC+4
指令译码/读寄存器周期(ID) 操作 A ← Regs[rs] B ← Regs[rt] Imm ← ((IR16)16##IR16..31)
指令的译码操作和读寄存器操作是并行进行的。
原因:在MIPS指令格式中,操作码字段以及rs、rt
字段都是在固定的位置。
这种技术称为固定字段译码技术。
四人衣物一共要花 4*(30+40+20)=360分钟
流水线的基本概念
6 PM 7
8
9
Time
T a
30 40 40 40 40 20
s k
A
O
r
B
d
e r
C
D
四人衣物一共要花 30+40*4+20=210分钟
流水线的基本概念
流水线技术:把一个重复的过程分解为若干个 子过程,每个子程序可以与其他子过程同时进 行
流水线输出端任务流出的顺序与输入端任务流 入的顺序相同。
异步流动流水线(乱序流水线):
流水线输出端任务流出的顺序与输入端任务流 入的顺序不同。
3 MIPS五级流水线
DLX(Dancing Links)
DLX 是一种简单的指令集(教学、简单芯片) 在不流水的情况下,如何实现DLX。
实现DLX指令的一种简单数据通路
计算机体系结构之流水线技术
路漫漫其悠远
少壮不努力,老大徒悲伤
大纲
1 概念定义 2 流水线分类 3 MIPS五级流水线 4 性能分析 5 流水线相关 6 高级流水线技术
1 概念定义
洗衣店的例子
A, B, C, D 均有一些衣物要 清洗,甩干,折叠
清洗要花30 分钟 甩干要用40 分钟 叠衣物也需要20 分钟