计组学习笔记之中央处理器


1 CPU 的功能及结构

1.1 CPU 功能
  • 指令控制:完成取指令、分析指令和执行指令的操作,即程序的顺序控制
  • 操作控制:一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作
  • 时间控制:对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号
  • 数据加工:对数据进行算术和逻辑运算
  • 中断处理:对计算机运行过程中出现的异常情况和特殊请求进行处理
1.2 运算器
1 运算器结构
  • 算术逻辑单元:主要功能是进行算术 / 逻辑运算
  • 通用寄存器组:如 AX、BX、CX、DX、SP 等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等(SP是堆栈指针,用于指示栈顶的地址)
  • 暂存寄存器:用于暂存从主存读取来的数据,该数据不能直接存放在通用寄存器中,否则会破坏原有数据内容
  • 累加寄存器:它是一个通用寄存器,用于暂时存放 ALU 运算的结果信息,用于实现加法运算
  • 程序状态字寄存器:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成
  • 移位器:对运算结果进行移位运算
  • 计数器:控制乘除运算的操作步数
2 运算器与 CPU 连接方式
  • 专用数据通路连接方式

    • 接法:根据指令执行过程中的数据和地址的流动方向安排线路

      专用数据通路

    • 缺点:若直接使用导线进行连接,则会出现指令同时流向 ALU 的情况,会导致无法确定要执行的具体指令,解决方式有以下两种:

      • 使用多路选择其根据信号选择一路输出

        多路选择器

      • 使用三态门控制每一路是否输出

        三态门

    • 特点:性能较高、基本不存在数据冲突现象,但是结构复杂,硬件量大,不易实现

  • CPU 内部总线方式

    • 将所有的寄存器的输入端和输出端都连接到一条公共的通路上,ALU 也与总线相连,其中一条通路设计一个暂存寄存器,方式两端同时接收到同一个数据

      内部总线方式

    • 特点:结构简单,容易实现,但是数据传输存在较多的冲突现象,性能较低

1.3 控制器
1 控制器结构
  • 程序计数器:用于指出下一条指令在主存中的存放地址。CPU就是根据PC的内容去主存中取指令的。因程序中指令(通常)是顺序执行的,所以PC有自增功能
  • 指令寄存器:用于保存当前正在执行的那条指令
  • 指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号
  • 微操作信号发生器:根据R的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种
  • 时序系统:用于产生各种时序信号,它们都是由统一时钟( CLOCK)分频得到
  • 存储器地址寄存器:用于存放所要访问的主存单元的地址
  • 存储器数据寄存器:用于存放向主存写入的信思或从主存中读出的信息
2 控制器与 CPU 连接

控制器连接CPU

1.4 CPU 结构

CPU结构

2 指令执行过程

2.1 指令周期
  • 指令周期:CPU 从主存中每取出并执行一条指令所需的全部时间

  • 指令周期常常用若干机器周期来表示,机器周期又叫CPU周期

  • 一个机器周期又包含若干时钟周期(也称为节拍、T 周期或 CPU 时钟周期,它是 CPU 操作的最基本单位)

    指令周期

  • 每个指令周期内机器周期数可以不等,每个机器周期内的 CPU 时钟周期也可以不等

    指令类型

2.2 指令周期流程
  • 指令周期流程图

    指令周期流程图

问:那么,怎么知道目前处于哪一个指令周期呢?

答:设置一个触发器来控制当前处于哪一个周期

触发器

2.3 取指周期

取指周期步骤

  • 当前指令地址送至存储器地址寄存器记做:\((PC)→MAR\)
  • CU 发出控制信号,经控制总线传到主存,这里是读信号,记做:\(1→R\)
  • 将 MAR 所指主存中的内容经数据总线送入 MDR,记做:\(M(MAR)→MDR\)
  • 将 MDR 中的内容(此时是指令)送入 IR,记做:\((MDR)→IR\)
  • CU 发出控制信号,形成下一条指令地址,记做:\((PC)+1→PC\)
2.4 间址周期

间址周期步骤

  • 将指令的地址码送入 MAR,记做:\(Ad(IR)→MAR\)\(Ad(MDR)→MAR\)
  • CU 发出控制信号,启动主存做读操作,记做:\(1→R\)
  • 将 MAR 所指主存中的内容经数据总线送入 MDR, 记做:\(M(MAR)→MDR\)
  • 将有效地址送至指令的地址码字段,记做: \(MDR→Ad(R)\)
2.5 执行周期

执行周期的任务是根据 IR 中的指令字的操作码和操作数通过 AU 操作产生执行结果,同指令的执行周期操作不同,因此没有统一的数据流向

具体细节见后续章节

2.6 中断周期
  • 中断:暂停当前任务去完成其他任务
    • 为了能够恢复当前任务,需要保存断点
    • 一般使用堆栈来保存断点,这里用 SP 表示栈顶地址,假设 SP 指向栈顶元素,进栈操作是先修改指针,后存入数据

中断周期

  • CU 控制将 SP 减 1,修改后的地址送入 MAR,记做:\((SP)-1→SP,(SP)→MAR\)
    • 本质上是将断点存入某个存储单元,假设其地址为 a,故可记做:\(a→MAR\)
  • CU 发出控制信号,启动主存做写操作,记做:\(1→W\)
  • 将断点 (PC内容) 送入 MDR,记做:\((PC)→MDR\)
  • CU 控制将中断服务程序的入口地址送入 PC,记做:\(向量地址→PC\)
2.7 指令执行方案
  • 单指令周期
    • 对所有指令都选用相同的执行时间来完成
    • 指令之间串行执行
    • 指令周期取决于执行时间最长的指令的执行时间
    • 对于那些本来可以在更短时间内完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度
  • 多指令周期
    • 对不同类型的指令选用不同的执行步骤来完成
    • 指令之间串行执行
    • 可选用不同个数的时钟周期来完成不同指令的执行过程
    • 需要更复杂的硬件设计
  • 流水线方案
    • 在每个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中
    • 指令之间并行执行

3 CPU 内部单总线

  • 内部总线:是指同一部件,如CPU内部连接各寄存器及运算部件之间的总线
  • 系统总线:是指同一台计算机系统的各部件接口间互相连接的总线
3.1 寄存器之间的数据传输

例如:将 PC 中的内容送至 MAR

  • 实现传送的流程及控制信号为
    • Pcout 有效,PC 内容送至总线,即 \((PC)→Bus\)
    • MARin有效,总线内容送至 MAR,即 \(Bus→MAR\)

寄存器之间数据传输

3.2 主存与 CPU 之间的数据传送

例如:CPU 从主存中取指令

  • 实现传送的流程及控制信号为
    • Pcout 和 MRAin有效,现行指令地址 → MAR,即 \((PC)→Bus→MAR\)
    • CU 发出读命令(通过控制总线发出,图中未画出),即 \(1→R\)
    • MDRin 有效,即 \(M(MAR)→MDR\)
    • MDRout 和 Rin 有效,现行指令 → IR,即 \(MDR→Bus→IR\)

CPU与主存数据传输

3.3 执行算术或逻辑运算

例如:执行一条加法指令

  • 微操作序列及控制信号为
    • MDRout 和 MARin 有效,即 \(Ad(IR)→Bus→MAR\)
    • CU 发出读命令,即 \(1→R\)
    • MDRin 有效,即 \(M(MAR)→数据线→MDR\)
    • MDRout 和 Yin 有效,操作数→Y,即 \((MDR)→Bus→Y\)
    • ACCout 和 ALUin 有效,CU 向 ALU 发送加命令,即 \((ACC)+(Y)→Z\)
    • Zout 和 ACCin 有效,最终结果 → ACC,即 \(Z→ACC\)

算术运算

3.4 例题

设有如图所示的单总线结构,分析指令 ADD、(R0)、R1 的指令流程好人控制信号

image-20220121163720369

  • 分析指令功能和指令周期
    • 功能:\(((R0))+(R1)→(R0)\)
    • 指令周期:取指周期、间址周期、执行周期
  • 取指周期:公共操作
时序 微操作 有效控制信号
1 \((PC)→MAR\) PCout / MARin
2 \(M(MER)→MDR\\(PC)+1→PC\) MemR / MARout / MDRinE
3 \((MDR)→IR\) MDRout / IRin
4 指令译码 /
  • 间址周期:完成取数操作,被加数在主存中,加数已经放在寄存器 R1 中
时序 微操作 有效控制信号
1 \((R0)→MAR\) R0out / MARin
2 \(M(MAR)→MDR\) MemR / MARout / MDRinE
3 \((MDR)→Y\) MRDout / Yin
  • 执行周期:完成取数操作,被加数在主存中,加数已经放在寄存器 R1 中
时序 微操作 有效控制信号
1 \((R1)+(Y)→Z\) R1out / ALUin / CU 向 ALU 发出 ADD 控制信号
2 \((Z)→MDR\) Zout / MDRin
3 \((MDR)→M(MAR)\) MemW / MDRoutE / MARout

4 专用数据通路

4.1 取指周期

专用数据通路取指周期

  • \((PC)→MAR\)\(C_0\) 有效
  • \((MAR)→\) 主存 ,\(C_1\) 有效
  • \(1→R\) ,控制单元向主存发出读命令
  • \(M(MAR)→MDR\)\(C_2\) 有效
  • \((MDR)→IR\)\(C_3\) 有效
  • \((PC)+1→PC\) ,程序计数器加一
  • \(Op(IR)→CU\)\(C_4\) 有效

5 控制器的功能的原理

5.1 控制器的结构

image-20220122144924776

5.2 控制器的功能
  • 从主存中取出一条指令,并指出下一条指令在主存中的位置
  • 对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作
  • 指挥并控制 CPU、主存、输入和输出设备之间的数据流动方向
5.3 控制单元的输入输出
  • 输入
    • 指令寄存器 \(OP(IR)→CU\) 控制信号的产生与操作码有关
    • 时钟:一个时钟脉冲发一个操作命令或一组需要同时执行的操作命令
    • 标志:根据相应的标志位决定下一步的操作
    • 外来信号:如中断请求信号、总线请求信号
  • 输出
    • CPU 内部的控制信号
      • 寄存器之间的数据传输
      • PC 的修改
      • 控制 ALU 进行相应的运算
    • 到控制总线的信号
      • 到存储器
        • 访存控制信号 \(\overline{MREQ}\)
        • 读命令 \(\overline{RD}\)
        • 写命令 \(\overline{WR}\)
      • 到 I/O 设备:访问 I/O 设备的控制信号 \(\overline{IO}\)
      • 中断响应信号 \(INTA\)
      • 总线响应信号 \(HLDA\)

控制单元输入输出

5.4 硬布线控制器

设计步骤:

  1. 选择 CPU 的控制方式
  2. 安排微操作时序
  3. 电路设计

假设采用同步控制方式,一个机器周期安排在 3 个节拍

1 CPU 控制方式
  • 同步控制方式
    • 整个系统所有的控制信号均来自一个统一的时钟信号
    • 优点:控制电路简单
    • 缺点:运行速度慢
  • 异步控制方式
    • 异步控制方式不存在基准时标信号
    • 各部件按自身固有的速度工作,通过应答方式进行联络
    • 优点:运行速度快
    • 缺点:控制电路比较复杂
  • 联合控制方式
    • 对各种不同的指令的微操作实行大部分采用同步控制、小部分采用异步控制的办法
2 安排微操作时序
  • 原则

    • 微操作的先后顺序不得随意更改
    • 被控制对象的微操作,尽量安排在一个节拍内完成
    • 占用间断时间的微操作,尽量安排在一个节拍内完成,并允许有先后顺序
  • 取指周期

    • \(T_0:PC → MAR\)
    • \(T_0:1 → R\) ,存储器空闲即可
    • \(T_1:M(MDR) → MDR\) ,在 \(PC → MAR\) 之后
    • \(T_1:MDR → IR\) ,在 \(PC → MAR\) 之后
    • \(T_2:OP(IR) → ID\) ,在 \(M(MDR) → MDR\) 之后
    • \(T_2:(PC)+1→ PC\) ,在 \(MDR → IR\) 之后
  • 间址周期

    • \(T_0:Ad(IR) → MAR\)
    • \(T_0:1 → R\)
    • \(T_1:M(MAR) → MDR\)
    • \(T_2:MDR → Ad(IR)\)
  • 执行周期

    • 非访存指令

      • ACC 清零:CLA
        • \(T_0\)
        • \(T_1\)
        • \(T_2:0 → AC\)
      • ACC 取反:COM
        • \(T_0\)
        • \(T_1\)
        • \(T_2:\overline{AC} → AC\)
      • 算术右移:SHR
        • \(T_0\)
        • \(T_1\)
        • \(T_2:L(AC) → R(AC)\)
        • \(T_2:AC_0 → AC_0\)
      • 循环左移:CSL
        • \(T_0\)
        • \(T_1\)
        • \(T_2:R(AC) → L(AC),AC_0 → AC_n\)
      • 停机:STP
        • \(T_0\)
        • \(T_1\)
        • \(T_2:0 → G\)
    • 访存指令

      • 加法指令:ADD X
        • \(T_0:Ad(IR) → MAR,1 → R\)
        • \(T_1:M(MAR) → MDR\)
        • \(T_2:(AC)+(MDR) → AC\)
      • 存数指令:STA X
        • \(T_0:Ad(IR) → MAR,1 → W\)
        • \(T_1:AC → MDR\)
        • \(T_2:MDR → M(MAR)\)
      • 取数指令:LDA X
        • \(T_0:Ad(IR) → MAR,1 → R\)
        • \(T_1:M(MAR) → MDR\)
        • \(T_2:MDR → AC\)
    • 转移指令

      • 无条件转移:JMP X
        • \(T_0\)
        • \(T_1\)
        • \(T_2:Ad(IR) → PC\)
      • 条件转移:BAN X
        • \(T_0\)
        • \(T_1\)
        • \(T_2:A_0·Ad(IR)+\overline{A_0}·PC → PC\)
  • 中断周期

    • \(T_0:a → MAR\)
    • \(T_0:1 → W\) ,存储器空闲即可
    • \(T_0:0 → EINT\) ,硬件关中断
    • \(T_1:(PC) → MDR\) ,内部数据通路空闲即可
    • \(T_2:MDR → M(MAR)\) ,在 \((PC) → MDR\) 之后
    • \(T_2:向量地址 → PC\) ,在 \((PC) → MDR\) 之后
3 电路设计
  • 组合逻辑设计

    • 原则

      • 列出操作时间表
      • 写出微操作命令的最简表达式
      • 画出逻辑图
    • 操作时间表

      • 取指阶段

        取指阶段时间表

      • 间址阶段

        间址阶段时间表

      • 执行阶段

        执行阶段时间表

    • 微操作最简表达式

      \(M(MAR) → MDR\) 为例,微操作最简表达式如下:

      \[FE·T_1+IND·T_1(ADD+STA+LDA+JMP+BAN)+EX·T_1(ADD+LDA)\\ =T_1\{FE+IND(ADD+STA+LDA+JMP+BAN)+EX(ADD+LDA)\} \]

    • 画出逻辑图

      逻辑图

5.5控制器的设计思路
  • 硬布线工作原理:微操作控制信号由组合逻辑电路根据当前的指令码、状态和时序,即时产生
  • 微程序工作原理:事先把微操作控制信号存储在一个专门的存储器(控制存储器)中,将每一条机器指令编写成一个做程序,这些微程序可以存到一个控制存储器中,用寻址用户程序机器指令的办法来寻址每个微程序中的微指令

微程序控制器的结构

  • 微地址形成部件:产生初始微地址和后继微地址,以保证微指令的连续执行
  • 微地址寄存器:接收微地址形成部件送来的微地址,为在 CM 中读取微指令作准备
  • 地址译码器:将地址码转化为存储单元控制信号
  • 控制存储器(CM):用于存放各指令对应的微程序,控制存储器可用只读存储器 ROM 构成
  • CMDR:用于存放从CM 中取出的微指令,它的位数同做指令字长相等

微程序控制器结构

6 微指令

6.1 微指令的格式
  • 水平型微指令

    • 一次能定义并执行多个并行操作

    • 优点:微程序短,执行速度快

    • 缺点:微指令长,编写程序实现比较麻烦

      水平型微指令

  • 垂直型微指令

    • 类似于机器指令操作码的方式,由未操作码字段规定微指令的功能

    • 优点:微指令短、简单、规整,便于编写程序

    • 缺点:微程序长、执行速度慢、工作效率低

      垂直型微指令

  • 混合型微指令

    • 在垂直型的基础上增加一些不太复杂的操作
    • 微指令较短,便于编写
    • 微程序也不长,执行速度加快
6.2 微指令的编码方式
  • 直接编码(直接控制)方式

    • 在微指令的操作控制字段中,每一位代表一个微操作命令

    • 优点:简单、直观、执行速度快、操作并行性号

    • 缺点:微指令字长过长,n 个微命令就要求微指令的操作字段由 n 位,造成控存容量极大

      直接编码

  • 字段直接编码方式

    • 将微指令的控制字段分成若干“段”,每段经译码后发出控制信号

      • 互斥性微命令分在同一段内,相容性微命令分在不同段内
      • 每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间
      • 一般每个小段还要留出一个状态,表示本字段不发出任何微命令
      • 通常用 000 表示不操作

      字段直接编码

  • 字段间接编码方式

    • 一个字段的某些微命令需由另一个字段中的某些微命令来解释由于不是靠字段直接译码发出的微命令,故称为字段间接编码,又称隐式编码

    • 优点:可以进一步缩短微指令字长

    • 缺点:削弱了微指令的并行控制能力,通常作为字段直接编码方式的一种辅助手段

      字段间接编码方式

6.3 微指令的地址形成方式
  • 微指令的下地址字段:微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称为断定方式
  • 根据机器指令的操作码形成:当机器指令取至指令寄存器后,微指令的地址由操作码经
    微地址形成部件形成
  • 増量计数器法 \((CMAR)+1→CMAR\)
  • 分支转移转移方式:指明判别条件;转移地址:指明转移成功后的去向
  • 通过测试网络
  • 由硬件产生微程序入口地址
    • 第一条微指令地址由专门硬件产生
    • 中断周期由硬件产生中断周期微程序首地址
6.4 硬布线与微程序的比较
类别 / 对比项目 微程序控制器 硬布线控制器
工作原理 微操作控制信号以微程序的形式存放在控制存储器中,执行指令时读出即可 微操作控制信号由组合逻辑电路 根据当前的指令码、状态和时序,即时产生
执行速度
规整性 较规整 繁琐、不规整
应用场合 CISC / CPU RISC / CPU
易扩充性 易扩充修改 困难

7 指令流水线

7.1 流水线定义
  • 指令流水线分为取指、分析、执行阶段
  • 取指:根据 PC 内容访问主存储器,取出一条指令送到 IR 中
  • 分析:对指令操作码进行译码,按照指定的寻址方式和地址字段中的内容形成操作数的有效地址 EA,并从有效地址 EA 中取出操作数
  • 执行:根据操作码字段,完成指令规定的功能,即把运算结果写到通用寄存器或者主存中

假设取指、分析、执行三个阶段的时间都相等,用 t 表示,按照以下几种执行方式分析 n 条指令执行的时间

1 顺序执行方式
  • 传统的冯诺依曼机采用顺序执行方式,又称串行执行方式

  • 优点:控制简单,硬件代价小

  • 缺点:执行指令的速度较慢,在任何时刻,处理机中只有一条指令在执行,各部件利用率很低

  • 总耗时:\(T=3nt\)

    顺序执行方式

2 一次重叠执行方式
  • 优点:程序的执行时间缩短了近 1/3,各部件利用率明显提高

  • 缺点:硬件需要较大开销,控制过程也比顺序执行复杂度高

  • 总耗时:\(T=(1+2n)t\)

    一次重叠执行方式

3 二次重叠执行方式
  • 优点:与顺序相比,执行时间缩短了近 2/3,是一种理想的执行方式

  • 一般将指令执行分成 5 个阶段

    二次重叠执行方式

7.2 流水线表示
1 指令执行过程图

过程图

2 指令执行时空图

时空图

7.3 流水线的性能指标
1 吞吐率
  • 吞吐率:在单位时间内流水线所完成的任务数量,或是输出结果的数量

  • 假设任务数为 n,处理完 n 个任务所用时间为 \(T_k\) ,则流水线的吞吐率为 \(TP=\frac{n}{(k+n-1)△t}\) ,当任务量 n 趋于无穷大时,得最大吞吐率为 \(TP_{max}=\frac{1}{△t}\) (理想情况下)

  • 第一个(最后一个)指令从开始到结束的时间称为装入(排空)时间

  • 一条指令的执行分为 k 个阶段,每个阶段耗时\(△t\) ,一般取 \(△t=\) 一个时钟周期

    吞吐率

2 加速比
  • 加速比:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比

  • \(T\) 表示不使用流水线时的执行时间,\(T_k\) 表示使用流水线时的执行时间,则计算流水线加速比的公式为 \(S={T_0 \over T_k}\) (理想情况下)

  • 单独完成一个任务耗时为 \(k\Delta t\) ,则顺序完成 n 个任务总耗时 \(T_0=nk\Delta t,\ T_k=(k+n-1)t\) ,则加速比为 \(S={kn\Delta t \over (k+n-1)\Delta t}={kn \over k+n-1}\) ,当任务量 n 趋于无穷大时,最大加速比为 \(S_{max}=k\)

    加速比

3 效率
  • 效率:流水线的设备利用率称为流水线的效率

  • 在时空图上,流水线效率定义为 n 个任务占用的时空区域的有效面积与 n 个任务所用的时间与 k 个流水段所围成的时空区域的总面积之比(理想情况下)

  • 流水线效率公式为 \(E={n 个任务占用的时空区域的有效面积 \over n 个任务所用的时间与 k 个流水段所围成的时空区域的总面积}={T_0 \over kt_k}=(下图中{S_红 \over S_蓝})\)

  • 当任务量 n 趋于无穷时,最高效率 \(E_{max}=1\)

    效率

7.4 流水线的影响因素
1 结构相关(资源冲突)
  • 由于多条指令在同一时刻争用同一资源而形成的冲突称为结构相关

    资源冲突

  • 解决方法

    • 后一相关指令暂停一周期
    • 资源重复配置:数据存储器 + 指令存储器
2 数据相关(数据冲突)
  • 在一个程序中,存在必须等前一条指令执行结束后一才能执行的指令的情况称为数据相关

    数据冲突

  • 解决方法

    • 将相关指令暂停几个周期,直至数据相关问题消失后再执行

      • 硬件阻塞(stall)

        硬件阻塞

      • 软件插入(NOP)

        软件插入

    • 数据旁路技术

      数据旁路技术

    • 编译优化:通过调整指令顺序来解决数据相关问题

  • 数据基本操作:读(R)、写(W)

  • 冲突的基本类型

    • 写后读(RAW):“按序发射、按序完成”只可能出现该冲突
    • 读后写(WAR):乱序发射导致
    • 写后写(WRW):乱序完成导致
3 控制相关(控制冲突)
  • 流水线遇到转移指令和其他改变 PC 值的指令而造成的断流时,会引起控制相关

    控制冲突

  • 解决方法

    • 尽早判别转移是否发生,尽早生成转移目标地址
    • 预取转移成功和不成功两个控制方向上的目标指令
    • 加快和提前形成条件码
    • 提高转移方向的猜准率
7.5 流水线的分类
1 根据级别分类
  • 部件功能级流水线:将复杂的算术逻辑运算组成流水线工作方式
  • 处理机级流水线:把一条指令解释过程分成多个子过程,如取指、译码、执行、访存及写回 5 个子过程
  • 处理机间流水线:是一种宏流水,其中每一个处理机完成某一专门任务,各个处理机所得到的结果需存放在与下一个处理机所共享的存储器中
2 根据功能分类
  • 单功能流水线:只能实现一种固定的专门功能的流水线
  • 多功能流水线:通过各段间的不同连接方式可以同时或不同时地实现多种功能的流水线
3 根据连接方式分类
  • 静态流水线:在同一时间内,流水线的各段只能按同一种功能的连接方式工作
  • 动态流水线:在同一时间内,当某些段正在实现某种运算时,另一些段却正在进行另一种运算
4 根据反馈信号分类
  • 线性流水线:从输入到输出,每个功能段只允许经过一次,不存在反馈回路
  • 非线性流水线:存在反馈回路,从输入到输出过程中,某些功能段将数次通过流水线,这种流水线适合进行线性递归的运算
7.6 流水线的多发技术
1 超标量技术
  • 每个时钟周期内可以并发多条独立指令

  • 要配置多个功能部件

  • 不能调整指令的执行顺序,只能编译优化,将可并行的指令搭配起来

    超标量技术

2 超流水技术
  • 在一个时钟周期内再分段

  • 在一个时钟周期内一个功能部件使用多次

  • 不能调整指令的执行顺序,只能通过编译优化

    超流水技术

3 超长指令字
  • 由编译程序挖掘出指令间潜在的并行性

  • 将多条能并发执行的指令组合成一条

  • 具有多个操作码字段的超长指令字

    超长指令字

8 本章总结


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM