我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 指令流水线 >

请详细的易懂的讲一下什么是流水线冒险

归档日期:07-05       文本归类:指令流水线      文章编辑:爱尚语录

  流水线处理中,由于各个阶段的依赖关系、硬件资源的竞争等原因,会出现操作无法执行的情况。造成流水线故障的原因称为冒险,冒险分为构造、数据冒险和控制冒险3 种类型。构造冒险是指由于硬件资源的竞争,操作无法同时执行的情况。图1-85 所示的流水线结构中,内存访问会造成构造冒险。IF 阶段和MEM 阶段都要涉及内存访问。由于访问内存使用的总线是共享资源,无法同时进行操作。因此,如果发生IF 阶段和MEM 阶段同时访问内存的情况,一方需要等待另一方访问完成。这种指令和数据使用同一通道的构造称为诺依曼架构。如果导致冒险产生的硬件资源数量足够多,也可以避免冒险问题的发生。因此,指令用的内存和数据用的内存分别设置,即可解决构造冒险的问题。这种物理上将指令用和数据用的内存与访问通道分开的构造称为哈佛架构。图1-87 分别展示了诺依曼架构和哈佛架构数据冒险是指,由于指令执行所需要的数据还未准备好所引起的冒险情况。当即将执行的指令依赖于还未处理完成的数据时,会导致指令无法立刻开始执行,引发数据冒险。为了回避数据冒险,我们使用一种称为直通(Forwarding)的方法。原本回写运算结果是在WB 阶段,但实际上决定运算结果是在EX 阶段。因此直通是指在运算结果确定的EX 阶段,将数据直接传递给下一个指令。直通的示例如图1-89 所示。示例中使用流水线 条有数据依赖关系的指令, 以此说明直通的动作原理。第二条指令要使用第一条指令的结果。第一条指令在EX 阶段可以确定运算结果后,直接将结果发送到处于ID 阶段的第二条指令。第三条指令同时依赖于第一和第二条指令。因此,可以直接从处于MEM 阶段的第一条指令和处于EX 阶段的第二条指令获取数据。以这种将运算结果直通的方式,可以消除原本需要等待WB 阶段完成的依赖关系

  这个概念是《计算机组成原理》中的,当cpu按流水线(流水线你懂吧)的方式执行指令时,指令执行大致分为五个步骤,可能存在3种冒险:1结构冒险 2数据冒险 3控制冒险。

  以数据相关为例写个数学的例子:初始条件 , x=1, y=2,z下面进行两步计算 ①y = x + 5,②z = y + 5,我们定义流水线赋予左值流水线显然在第二个算式中使用了错误的y值,因为它在y值还没有更新时就取了y值。我觉得我说的这些不一定比你看书懂得更快。本回答被网友采纳

  展开全部详细来说,造成流水线阻塞的原因可以分为三类,结构相关、数据相关和控制相关。

  要易懂的话,其实“冒险”这个词容易让人不懂。说白了就是,流水线因为结构相关的原因而产生了阻塞就叫结构冒险,因为控制相关的原因而产生了阻塞就叫控制冒险。所以,流水线冒险的意思就是流水线发生了阻塞。所谓流水线,就是CPU里的各种功能部件,不断的,重复的一直做自己唯一能做的那件事。就像老师批改试卷的时候,会找几个学生,每个学生只批改一道题,这样一个人就能迅速的把一千份试卷里的这一题改完。所以最后应该很快就能把上千份的试卷批改完了。再详细的解释流水线就是,批改试卷的这几个人,如果能做到A改完第17题立刻把试卷传给B去改第18题,B改完再立刻传给C去改第19题,然后不断地往下传……那么不断的把试卷给A,批改试卷这件事就在A,B,C这些批改试卷的人的手里流动起来了。如果其中有一个人掉链子,导致某一题迟迟没有改好,改试卷这件事就停下来了,也就是流水线阻塞了,也可以叫流水线数据冒险。

本文链接:http://egao-p.com/zhilingliushuixian/263.html