计算机解疑补漏之理解流水线的几点要义

流水线的几点注意

关于流水线的时钟频率、时钟周期

流水线的整体效率取决于最耽误事的那个结点,即流水线级数中最长延迟那个。(因为流水线是前后顺序传递的)

  • 时钟周期:就是刚才说的那个最慢的那个级,即:最长延迟。
  • 时钟频率;时钟周期的倒数,即:单位时间内的周期数。主频的计算就来源于此。

超级流水线与超标量流水线

之所以会有超级流水线,就是因为有多级流水线中最耽误事的结点存在,所以将这个结点细分。因为这是这是影响全局的关键因素,但并不是说越细分就越越好,细分是有成本的,增加流水线寄存器也是要有延迟的。所以当增加的流水线延迟大于细分分开的延迟,那就得不偿失了。

  • 超级流水线:增加流水线的级数(深度),目的是降低时钟周期,从而提升时钟频率。(有好处才这么做)
  • 超标量流水线:这是相对于标量而言的,标量流水线:就是正常的一条,而超标量可以是两条以上。即利用空间并行性来节省时间。

补充:现代的多核处理器的每个核通常都是超标量处理器,但是超标量处理器不等于多核处理器(CPU)。

区分流水线的三种冒险

一共三种冒险,分别是数据冒险、结构冒险、控制冒险,可以直接从其名字加以区分,但是理解不到位,容易混淆。

  • 数据冒险:与数据有关,数据的产生与ALU有关,所以,这里的冒险是指,ALU计算出数据还没有回写时就要被用到,那正常情况一定是用不到的。(不过有解决方法:数据前递,但也不是完全解决,比如正在进行ALU计算时就要这个数据,那也是得不到的)

  • 结构冒险:与结构有关,比如指令和数据放在了同一个存储器,因为一次允许一个指令读,所以要冒险;还有读寄存器和写寄存器同时发生,又是发生争抢,要冒险。

  • 控制冒险:控制去哪呗,比如一个分支指令,还不清楚下一步要去哪的时候,执行紧随它之后的指令是很悬的,所以又要冒险了。

posted @ 2019-05-20 18:58  ZealYoung  阅读(782)  评论(0编辑  收藏  举报