首页 > 其他分享 >计算机组成与设计 硬件软件接口 第五版 流水线部分笔记

计算机组成与设计 硬件软件接口 第五版 流水线部分笔记

时间:2023-03-21 17:14:29浏览次数:36  
标签:笔记 阻塞 hazard 指令 接口 流水线 第五版 冒险

TODO1:为什么果壳不在 IDU 阶段读出寄存器?而要在后端?是跟超标量、乱序有关系吗?

TODO2: 修改PC难道比修改其它寄存器更快吗?

TODO3: 长流水线有什么缺点? 

TODO4: 需要两个存储器吗?优缺点?

TODO5: 气泡指令是什么?为什么可以起到阻塞的作用?比起直接阻塞有什么优缺点?

很重要的一点:并不是所有指令都需要访问内存

----------------------------- 笔记开始 ----------------------------------

4.5 中的关键部分

冒险:流水线有这样一种情况,在下一个时钟周期中下一条指令不能执行。这种情况称为冒险(hazard)

1. 结构冒险:因缺乏硬件支持而导致的冒险。比如指令和数据在同一个存储器里,无法同时取指和读数据。(可以用 I-cache 来解决)

2. 数据冒险:也称为流水线数据冒险(pipeline data hazard),因无法提供指令执行所需的数据而导致的冒险

  对于数据冒险来说,可以使用 前递(forwarding) 和 旁路(bypassing) 来解决

  但即便使用了前递和旁路,在 取数-使用 型数据冒险(load-use data hazard) 中,依然得阻塞一个阶段 (4.7 会讲讲怎么处理这种复杂阶段)

3. 控制冒险(control hazard/ branch hazard): 由于jmp和branch指令的存在,指令地址的变化有时并不是流水线所预期的,如果取到了错误的指令,就会导致冒险

 

 

 

 

 

标签:笔记,阻塞,hazard,指令,接口,流水线,第五版,冒险
From: https://www.cnblogs.com/yinhuachen/p/17240321.html

相关文章