浅析流水线冲突及解决方案(精品课件)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据流动,则称它们名相关。
9
4、指令相关
(3)控制相关 控制相关是指由分支指令引起的相关。它需
要根据分支指令的执行结果来确定后续指 令是否执行。一般说来,为确保程序应有 的执行顺序,必须严格按控制相关确定的 顺序执行
10
5、流水线冲突及解决方案
流水线冲突:指对于具体的流水线来说,由 于相关的存在,使得指令流中的下一条指 令不能在特定的时钟周期执行。
3
2、流水线的分类
(1)按照流水线完成的功能来分类 ①单功能流水线 ②多功能流水线 (2)按照流水线中是否有反馈回路分类 ①线性流水线 ②非线性流水线
4
2、流水线的分类
(3)按照任务流入流出的顺序是否相同分类 ①顺序流水线 ②乱序流水线 (4)按照流水线级别分类 ①部件级流水线 ②处理机级流水线 ③处理机
浅析流水线冲突及解决方案
1
目录
1、流水线的概念 2、流水线的分类 3、经典的5段流水线 4、指令相关 5、流水线冲突与解决方案
2
1、流水线的概念
流水线:把一个重复的过程分解为若干子过 程,每个子过程由专门的功能部件来实现。 将多个处理过程在时间错开,依次通过各 功能段,每个子过程就可以与其他子过程 并行进行。
•
15、一个人炫耀什么,说明他内心缺 少什么 。。202 0年10 月下午4 时15分 20.10.6 16:15October 6, 2020
•
16、业余生活要有意义,不要越轨。2 020年1 0月6日 星期二 4时15 分48秒1 6:15:48 6 October 2020
•
17、一个人即使已登上顶峰,也仍要 自强不 息。下 午4时15 分48秒 下午4 时15分1 6:15:48 20.10.6
流水线冲突有三种类型:结构冲突、数据冲 突、控制冲突。
11
5、流水线冲突及解决方案
(1)结构冲突 定义:因硬件资源满足不了指令重叠执行的
要求而发生的冲突。 解决方案: a、可以在前一个指令访问存储器时,将流水
线停顿一个时钟,推迟后面取指令的操作。 停顿周期称为“流水线气泡”。 b、在流水线处理机中设置相互独立的指令。 存储器和数据存储器
12
5、流水线冲突及解决方案
指令编
时钟周期
号
123 4
5
6
7
8
9
Байду номын сангаас
10
指令i IF ID EX MEM WB
指令i+1
IF ID EX MEM WB
指令i+2
IF ID EX MEM WB
指令i+3
stall IF ID EX MEM WB
指令i+4
IF ID EX MEM
指令i+5
IF ID EX MEM
•
12、人乱于心,不宽余请。16:15:4816 :15:481 6:15Tuesday, October 06, 2020
•
13、生气是拿别人做错的事来惩罚自 己。20. 10.620. 10.616: 15:4816 :15:48 October 6, 2020
•
14、抱最大的希望,作最大的努力。2 020年1 0月6日 星期二 下午4 时15分4 8秒16: 15:4820 .10.6
15
5、流水线冲突及解决方案
(3)控制冲突 定义:流水线遇到分支指令和其他会改变PC
值的指令所引起的冲突。 解决方案:最简单的方法是“冻结”或者
“排空”。就是一旦在流水线的译码段ID检 测到分支指令,就暂停执行后的所有指令, 直到分支指令达到MEM段、确定是否成功 并计算出新的pc值为止。
16
谢谢大家
会把结果数据写入通用寄存器。
7
4、指令相关
相关:指两条指令之间存在某种依赖关系。 3种类型:数据相关、名相关、控制相关 (1)数据相关 依次存在两条指令i(在前)和j(在后),若
指令j使用指令i产生的结果或指令j与k数据 相关,而k又与指令i数据相关,则称j与i数 据相关。
8
4、指令相关
(2)名相关 名:指指令所访问的寄存器或存储单元名称。 名相关:指两条指令使用的名相同,但没有
17
•
9、 人的价值,在招收诱惑的一瞬间被决定 。20.10. 620.10. 6Tuesday, October 06, 2020
•
10、低头要有勇气,抬头要有低气。1 6:15:48 16:15:4 816:15 10/6/20 20 4:15:48 PM
•
11、人总是珍惜为得到。20.10.616:15: 4816:1 5Oct-20 6-Oct-2 0
指令停顿表
13
5、流水线冲突及解决方案
(2)数据冲突 定义:当指令在流水线重叠执行时,因需要
用到前面的执行结果而发生的冲突。 分类:写后读冲突、写后写冲突、读后写冲
突。 解决方案: ①通过定向技术减少数据冲突引起的停顿。 ②设置流水线互锁机制。
14
5、流水线冲突及解决方案
③依靠编译器解决数据冲突
谢谢大家
18
间流水线
5
3、经典5段流水线
IF段
ID段
EX段
MEM段
WB段
IM
Reg
DM
Reg
ALU
流水寄存器
(1)取指令周期(IF):根据PC指示的地址从存储器
中取出指令并放入指令寄存器IR,同时PC值加4,指
向顺序的下一条指令。
(2)指令译码/读寄存器周期(ID):对指令进行译
码,并用IR中的寄存器编号去访问通用寄存器组。
(3)执行/有效地址计算周期(EX):AUL对在上一
周期准备好的操作数进行运算或处理。
6
3、经典5段流水线
(4)存储器访问/分支完成周期(MEM) ①load和store指令 Load指令:用上一周期计算出的有效地址从存储器中读取相
应数据。 Store指令:把指定数据写入此有效地址所指出的存储单元。 ②分支指令 若前一周期判定该分支成功,就把转移目标地址送入PC。 (5)写回周期(WB):ALU运算指令和load指令在这个周期
9
4、指令相关
(3)控制相关 控制相关是指由分支指令引起的相关。它需
要根据分支指令的执行结果来确定后续指 令是否执行。一般说来,为确保程序应有 的执行顺序,必须严格按控制相关确定的 顺序执行
10
5、流水线冲突及解决方案
流水线冲突:指对于具体的流水线来说,由 于相关的存在,使得指令流中的下一条指 令不能在特定的时钟周期执行。
3
2、流水线的分类
(1)按照流水线完成的功能来分类 ①单功能流水线 ②多功能流水线 (2)按照流水线中是否有反馈回路分类 ①线性流水线 ②非线性流水线
4
2、流水线的分类
(3)按照任务流入流出的顺序是否相同分类 ①顺序流水线 ②乱序流水线 (4)按照流水线级别分类 ①部件级流水线 ②处理机级流水线 ③处理机
浅析流水线冲突及解决方案
1
目录
1、流水线的概念 2、流水线的分类 3、经典的5段流水线 4、指令相关 5、流水线冲突与解决方案
2
1、流水线的概念
流水线:把一个重复的过程分解为若干子过 程,每个子过程由专门的功能部件来实现。 将多个处理过程在时间错开,依次通过各 功能段,每个子过程就可以与其他子过程 并行进行。
•
15、一个人炫耀什么,说明他内心缺 少什么 。。202 0年10 月下午4 时15分 20.10.6 16:15October 6, 2020
•
16、业余生活要有意义,不要越轨。2 020年1 0月6日 星期二 4时15 分48秒1 6:15:48 6 October 2020
•
17、一个人即使已登上顶峰,也仍要 自强不 息。下 午4时15 分48秒 下午4 时15分1 6:15:48 20.10.6
流水线冲突有三种类型:结构冲突、数据冲 突、控制冲突。
11
5、流水线冲突及解决方案
(1)结构冲突 定义:因硬件资源满足不了指令重叠执行的
要求而发生的冲突。 解决方案: a、可以在前一个指令访问存储器时,将流水
线停顿一个时钟,推迟后面取指令的操作。 停顿周期称为“流水线气泡”。 b、在流水线处理机中设置相互独立的指令。 存储器和数据存储器
12
5、流水线冲突及解决方案
指令编
时钟周期
号
123 4
5
6
7
8
9
Байду номын сангаас
10
指令i IF ID EX MEM WB
指令i+1
IF ID EX MEM WB
指令i+2
IF ID EX MEM WB
指令i+3
stall IF ID EX MEM WB
指令i+4
IF ID EX MEM
指令i+5
IF ID EX MEM
•
12、人乱于心,不宽余请。16:15:4816 :15:481 6:15Tuesday, October 06, 2020
•
13、生气是拿别人做错的事来惩罚自 己。20. 10.620. 10.616: 15:4816 :15:48 October 6, 2020
•
14、抱最大的希望,作最大的努力。2 020年1 0月6日 星期二 下午4 时15分4 8秒16: 15:4820 .10.6
15
5、流水线冲突及解决方案
(3)控制冲突 定义:流水线遇到分支指令和其他会改变PC
值的指令所引起的冲突。 解决方案:最简单的方法是“冻结”或者
“排空”。就是一旦在流水线的译码段ID检 测到分支指令,就暂停执行后的所有指令, 直到分支指令达到MEM段、确定是否成功 并计算出新的pc值为止。
16
谢谢大家
会把结果数据写入通用寄存器。
7
4、指令相关
相关:指两条指令之间存在某种依赖关系。 3种类型:数据相关、名相关、控制相关 (1)数据相关 依次存在两条指令i(在前)和j(在后),若
指令j使用指令i产生的结果或指令j与k数据 相关,而k又与指令i数据相关,则称j与i数 据相关。
8
4、指令相关
(2)名相关 名:指指令所访问的寄存器或存储单元名称。 名相关:指两条指令使用的名相同,但没有
17
•
9、 人的价值,在招收诱惑的一瞬间被决定 。20.10. 620.10. 6Tuesday, October 06, 2020
•
10、低头要有勇气,抬头要有低气。1 6:15:48 16:15:4 816:15 10/6/20 20 4:15:48 PM
•
11、人总是珍惜为得到。20.10.616:15: 4816:1 5Oct-20 6-Oct-2 0
指令停顿表
13
5、流水线冲突及解决方案
(2)数据冲突 定义:当指令在流水线重叠执行时,因需要
用到前面的执行结果而发生的冲突。 分类:写后读冲突、写后写冲突、读后写冲
突。 解决方案: ①通过定向技术减少数据冲突引起的停顿。 ②设置流水线互锁机制。
14
5、流水线冲突及解决方案
③依靠编译器解决数据冲突
谢谢大家
18
间流水线
5
3、经典5段流水线
IF段
ID段
EX段
MEM段
WB段
IM
Reg
DM
Reg
ALU
流水寄存器
(1)取指令周期(IF):根据PC指示的地址从存储器
中取出指令并放入指令寄存器IR,同时PC值加4,指
向顺序的下一条指令。
(2)指令译码/读寄存器周期(ID):对指令进行译
码,并用IR中的寄存器编号去访问通用寄存器组。
(3)执行/有效地址计算周期(EX):AUL对在上一
周期准备好的操作数进行运算或处理。
6
3、经典5段流水线
(4)存储器访问/分支完成周期(MEM) ①load和store指令 Load指令:用上一周期计算出的有效地址从存储器中读取相
应数据。 Store指令:把指定数据写入此有效地址所指出的存储单元。 ②分支指令 若前一周期判定该分支成功,就把转移目标地址送入PC。 (5)写回周期(WB):ALU运算指令和load指令在这个周期