系统结构第五章-标量处理机

2021/03/02

普通流水线方式:

程序线性的运行。取指令,分析指令,执行指令,是三个部件。

有一条指令就重复一次,N条重复N次。

graph LR
	取指令-->分析指令-->执行指令

使用重叠的流水线方式:

上图中三个部件,每次运行时都会浪费了一些性能。

如:执行指令时,分析指令和取指令的部件都不会运行,就空闲了

让它们不空闲,同时运行,就是重叠的方式。需要额外的硬件实现。

下图是一次重叠。二次重叠就是执行指令时也在分析指令。

下图就是分析指令的同时取第二次的指令。分析完指令后取指令的部件也把指令取完了,但是由于是一次重叠所以没有不在执行指令时重叠分析指令。

       
取指令k      
  分析指令k    
  取指令k+1 执行指令k  
    分析指令k+1  
      执行指令k+1

流水线概念

流水线就是把一个重复的过程拆分成不同的子过程。

每个子过程执行的时间尽可能相同。

然后每个子过程都使用不同的部件执行,使得这些部件重叠执行,

时空图

  • 描述方法一:横坐标为时间,某个时间程序执行的任务。纵坐标为空间,程序执行的子过程。
  • 描述方法二:横坐标为空间,某个时间程序执行的任务。纵坐标为时间,程序执行的子过程。

五级流水线工作时序图

下图中,每个时序就是一个锁存器,总共六个时序。

每个时序之间都有处理部件。

一个脉冲的时候,所有时序就会更新,如:一个脉冲就会进行一次译码,一次脉冲就会一次执行

sequenceDiagram
	participant 取指
	participant 译码
	participant 执行
	participant 存储器
	participant 写回
	取指-->>译码: 取出指令并发出
	译码-->>执行: 把指令进行解码并发出
	执行-->>存储器: 执行指令:与或非
	存储器-->>写回: 若是有存取的情况,存取数据。
	Note right of 写回: 若是需要把数据写入寄存器则写回

流水线的分类

按处理级别分类

指令流水线:流水线以完成指令为目标

操作流水线:流水线以完成操作为目标,如:乘法操作是指令的一环

宏流水线:流水线以完成任务为目标,如:我需要发消息给B。我发出消息是流水线一环,B接收消息又是一环。

按功能

单功能流水线:流水线只能处理一种操作,如只能加或乘

多功能流水线:流水线可以处理多种操作,既能加也能乘

静态操作流水线:多功能流水线子集。若指令A是处理加法,指令B是处理乘法,只能处理完A后才能开始B的操作。

动态操作流水线:多功能流水线子集。如:指令A是处理加法,指令B是处理乘法,处理A同时准备处理B的数据。

按流水线结构

线性流水线:任务是一条线执行。一级级的过去,没法跳过任何一级。也不会发生下一级返回到上一级的情况。

非线性流水线:任务非线性,1绕过2直接就3。3也可以返回数据到1。

按控制方式

同步流水线:

异步流水线:

按执行顺序

顺序流水线:按顺序执行指令,一条条指令执行。只有一条指令执行完才能执行下一条指令。

乱序流水线:程序在指令时,可能会因为某些数据需要进入等待,等待时就现执行下一条指令。服务器一般都是用乱序

目 录