当前位置: 第十二章 流水线技术 >> 第五十讲
讲选: 48/49/50/51/52

本章主要内容

流水线的基本概念
  ■概念、表示方法、特点和分类
流水线的性能指标
  ■吞吐率、加速比和效率
流水线的实现原理
  ■DLX流水线实例
流水线的“相关”问题
  ■结构相关、数据相关和控制相关
指令级并行技术简介

流水线的实现原理

DLX指令集结构
  ■DLX(读做Deluxe)是一种Load-Store型指令集结构。所谓Load-Store型又称为寄存器-寄存器型,是指对通用寄存器型指令集而言,其所有的ALU指令都不包含存储器操作数。
  ■DLX强调:简单的Load-Store指令集;设计上重视流水线效率,包括固定长度指令编码;使编译器更容易产生高效的目标代码。总之,DLX是一种适合于学习和研究的系统结构模型。
DLX指令格式

DLX的一种简单实现
  ■每一条DLX指令的实现至多需要5个时钟周期。这5个时钟周期如下:
    ◆取指令周期(IF)
    ◆指令译码/读寄存器周期(ID)
    ◆执行/有效地址计算周期(EX)
    ◆存储器访问/分支完成周期(MEM)
    ◆写回周期(WB)
  ■不同类型的指令在以上5个时钟周期中进行的操作各不相同。
  ■在这种实现方案中,分支指令需要4个时钟周期,而其他指令需要5个时钟周期。

简单的DLX基本流水线

  ■每一个时钟周期启动一条新的指令,就可以使DLX数据通路成功流水,每一个时钟周期就是流水线的一个流水段。每一条指令经过5个时钟周期执行完成,而在每一个时钟周期内,硬件将启动一条新的指令并执行5条不同指令的某个部分。

实际的流水线就这么简单吗?——NO!
  ■必须保证在指令重叠执行时不会存在任何流水线资源冲突问题,即要保证流水线的各段在同一个时钟周期内不会使用相同的数据通路资源。
简化的DLX流水线数据通路
  ■下图从使用流水线资源的角度描述上述流水线的流水过程,这张图显示了不同数据通路的重叠,其中周期5表示稳定状态。
  ■在包围每个流水段的线框中,如果实线在右侧,说明是读操作;如果实线在左侧,说明是写操作;其他部分用虚线。
  ■主要的功能部件都在不同的时钟周期内使用,因而多条指令重叠执行时引入的冲突很少
    ◆分开的指令存储器(IM)和数据存储器(DM)。对存储器性能要求?
    ◆在两个流水线段都使用了寄存器:ID段读,WB段写。这两个流水段使用的寄存器一般是不同的。如果读写相同的寄存器呢?
    ◆没有考虑PC的问题,流水要求IF段要形成新的PC值。如何处理分支指令呢?

简化的DLX流水线数据通路

DLX流水线数据通路

讲选: 48/49/50/51/52