计算机体系结构--流水线

253 阅读4分钟

一、流水线

1.1.基本概念

  • 流水线技术是指在程序执行时,多条指令重叠进行操作的一种任务分解技术。把一个任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构来负责执行,而这些执行机构可以同时并行工作

1.2.计算执行时间

  • 假定有某种类型的任务,可以分成N个子任务,每个子任务需要时间t,则完成该任务所需的时间为N x t

    • 若以传统的方式,完成k个任务所需的时间时kNt
    • 使用流水线技术,花费的时间是Nt+(k-1)t
  • 注意:如果每个子任务所需的时间不同,其时间取决于执行顺序中最慢的那一个

1.3.流水线的吞吐率

  • 指在单位时间内流水线所完成任务数量或输出的结果数量TP=n/Tk
  • n为任务数,Tk是处理完成n个任务所用的时间

1.4.加速比

  • 指不采用流水线的执行时间/采用流水线的执行时间。用来衡量并行系统或程序并行化的性能和效果

1.5.影响流水线的主要因素

  • 转移指令:因为前面的转移指令还没有完成,流水线无法确定下一条指令的地址,因此也就无法向流水线中添加这条指令
  • 共享资源访问的冲突:后一条指令需要使用的数据,与前一条指令发生冲突,或者相邻的指令使用了相同的寄存器
  • 响应中断:当有中断请求时,流水线也会停止。对于这种情况有两种响应方式:
    • 精确断点法:立即停止,这种方法能够立即响应中断
    • 不精确断点法:流水线中的指令继续执行,不再新增指令到流水线

二、指令系统

2.1.基本概念

  • 指计算机所能执行的全部指令的集合,它描述了计算机内全部的控制信息和“逻辑判断”能力

  • 一条指令包括:

    • 操作码
    • 地址码
  • 根据地址码代表的地址类型,指令系统可以分为:

    • 立即寻址
    • 直接寻址
    • 间接寻址
    • 寄存器寻址
    • 寄存器间接寻址

三、RISC与CISC

3.1.基本概念

  • 为提高操作系统的效率,人们最初选择向指令系统中添加更多、更复杂的指令来实现,导致指令集越来越大。这种类型的计算机称为复杂指令集计算机(CISC)
  • 对指令数据和寻址方式做精简,指令的指令周期相同,采用流水线技术,指令并行执行程度更好,这类是精简指令集计算机(RISC)

3.2.复杂指令系统计算机(RISC)的主要特点

  • 指令数量多:指令系统拥有大量的指令,有100-250条
  • 指令使用频率相差悬殊:最常使用的是一些比较简单的指令,80%的时候使用的是20%的指令
  • 支持很多种寻址方式:通常为5-20种
  • 变长的指令:指令长度不是固定的,变长的指令增加指令译码电路的复杂性
  • 指令可以对存储器单元中数据直接进行处理:典型的CISC处理器通常都有指令能够直接对内存单元中的数据进行处理,其执行速度较慢

3.3.精简指令系统计算机(RISC)的主要特点

  • 指令数量少:优先选取使用频率最高的一些简单指令以及一些常用指令,避免使用复杂指令

  • 指令的寻址方式少:通常只支持寄存器寻址方式、立即数寻址方式以及相对寻址方式

  • 指令长度固定,指令格式种类少:因为RISC指令数量少,格式相对简单,其指令长度固定,指令之间各字段的划分比较一致,译码相对容易

  • 只提供了Load/Store指令访问存储器:只提供了从存储器读数Load和把数据写入存储器Store两条指令,其余所有的操作都在CPU的寄存器间进行

  • 以硬布线逻辑控制为主:为了提高操作的执行速度,通常采用硬布线逻辑来构建控制器

  • 单周期指令执行:因为简化了指令系统,很容易利用流水线技术使得大部分指令在一个机器周期内完成

  • 优化的编译器:RISC精简指令集使编译工作简单化

3.4.CISC和RISC的简单对比