现在的位置: 首页 > 综合 > 正文

《大话处理器》连载——微架构(6) 流水线上的冒险——免不了磕磕绊绊

2018年05月07日 ⁄ 综合 ⁄ 共 392字 ⁄ 字号 评论关闭
文章目录

 

       人生路上总是磕磕绊绊,流水线也一样。流水线中每个节拍硬件被充分利用,这只存在于理想的乌托邦中,现实总会出现这样或那样的问题,让原本顺畅的流水线出现停顿,断断续续。这些导致流水线出现停顿的因素称为流水线冒险(Hazard)。下面我们就来看看哪些情况会导致流水线停顿,以及怎样解决这些问题。

(1) 结构冒险

        因为处理器资源冲突,而无法实现某些指令的组合,就称该处理器有结构冒险。

        我们以MIPS流水线为例,指令和数据都存储在存储器中,IF阶段需要访问存储器,MEM阶段也需要访问存储器,在早期的处理器中,程序和数据存储器没有分开,下图在第4个cycle,IF和MEM同时访问存储器导致其中一个操作要等待。现在的处理器,程序存储在L1P cache中,数据存储在L1D cache中(关于Cache在下一章介绍),单独访问,因此不存在这个问题。

结构冒险示例

抱歉!评论已关闭.