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

流水线的几点注意

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

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

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

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

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

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

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

区分流水线的三种冒险

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

  • 数据冒险:与数据有关,数据的产生与ALU有关,因此,这里的冒险是指,ALU计算出数据尚未回写时就要被用到,那正常状况必定是用不到的。(不过有解决方法:数据前递,但也不是彻底解决,好比正在进行ALU计算时就要这个数据,那也是得不到的)cpu

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

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