计组笔记:第五章 中央处理器

发布时间 2023-04-22 17:46:31作者: 枫让泽戌

第五章 中央处理器

在这里插入图片描述

【复习提示】

中央处理器是计算机的中心,也是本书的难点。其中,数据通路的分析、指令执行阶段的节拍与控制信号的安排、流水线技术与性能分析易出综合题。而关于各种寄存器的特点、指令执行的各种周期与特点、控制器的相关概念、流水线的相关概念也极易出选择题。

在学习本章时,请读者思考以下问题

  • 1)CPU分为哪几部分?分别实现什么功能?
  • 2)指令和数据均存放在内存中,计算机如何从时间和空间上区分它们是指令还是数据?
  • 3)什么是指令周期、机器周期和时钟周期?它们之间有何关系?
  • 4)指令周期是否有一个固定值?为什么?
  • 5)什么是微指令?它和第4章谈到的指令有什么关系?
  • 6)什么是指令流水线?指令流水线相对于传统计算机体系结构的优势是什么?如何计算指令流水线的加速比?

请读者在本章的学习过程中寻找答案,本章末尾会给出参考答案。
在这里插入图片描述
【复习提示】
中央处理器是计算机的中心,也是本书的难点。其中,数据通路的分析、指令执行阶段的节拍与控制信号的安排、流水线技术与性能分析易出综合题。而关于各种寄存器的特点、指令执行的各种周期与特点、控制器的相关概念、流水线的相关概念也极易出选择题。

在学习本章时,请读者思考以下问题:

  • 1)CPU分为哪几部分?分别实现什么功能?
  • 2)指令和数据均存放在内存中,计算机如何从时间和空间上区分它们是指令还是数据?
  • 3)什么是指令周期、机器周期和时钟周期?它们之间有何关系?
  • 4)指令周期是否有一个固定值?为什么?
  • 5)什么是微指令?它和第4章谈到的指令有什么关系?
  • 6)什么是指令流水线?指令流水线相对于传统计算机体系结构的优势是什么?如何计算指令流水线的加速比?

请读者在本章的学习过程中寻找答案,本章末尾会给出参考答案。

5.1 CPU的功能和基本构造

5.1.1 CPU的基本功能

在这里插入图片描述
CPU的功能:

  1. 指令控制:完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
  2. 操作控制:一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
  3. 时间控制:对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
  4. 数据加工:对数据进行算术和逻辑运算。
  5. 中断处理:对计算机运行过程中出现的异常情况和特殊请求进行处理。

在这里插入图片描述

在这里插入图片描述

5.1.2 CPU的基本结构

1.运算器

  • 算术逻辑单元ALU
  • 累加寄存器ACC
  • 程序字状态寄存器PSW
  • 计数器CT
  • 暂存寄存器
  • 通用寄存器组
  • 移位器

通用寄存器供用户自由编程,可以存放数据和地址。而指令寄存器是专门用于存放指令的专用寄存器,不能由通用寄存器代替。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.控制器

  • 程序计数器PC:存放下一条指令在主存中的地址,具有自增功能。
  • 指令寄存器IR:存放当前正在执行的指令。
  • 指令译码器
  • 存储器地址寄存器MAR
  • 存储器数据寄存器MDR
  • 时序系统
  • 微操作信号发生器

条件转移指令执行时,需要对标志寄存器的内容进行测试,判断是否满足转移条件。
转移指令时,需要判断转移是否成功,若成功则PC修改为转移指令的目标地址,否则下一条指令的地址仍然为PC自增后的地址。

指令包括操作码字段和地址码字段,但指令译码器仅对操作码字段进行译码,借以确定指令的操作功能。

在这里插入图片描述

注意:CPU内部寄存器大致可分为两类:一类是用户可见的寄存器,可对这类寄存器编程,如通用寄存器组、程序状态字寄存器;另一类是用户不可见的寄存器,对用户是透明的,不可对这类寄存器编程,如存储器地址寄存器MAR、存储器数据寄存器MDR、指令寄存器IR。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2 指令执行过程

在这里插入图片描述

5.2.1 指令周期

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2.2 指令周期的数据流

取指周期

在这里插入图片描述

间址周期

在这里插入图片描述

间址周期的作用是取操作数的有效地址,因此间址周期结束后,MDR的内容为操作数地址。

执行周期

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

中断周期

在这里插入图片描述

5.2.3 指令执行方案

在这里插入图片描述
在这里插入图片描述

5.3 数据通路的功能和基本结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实际考试中,建议把间址周期合并到执行周期,因为每个人对间址周期的理解是不一样的
在这里插入图片描述
在这里插入图片描述

专用数据通路方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意ALU不是通用寄存器?
在这里插入图片描述

5.4 控制器的功能和工作原理

5.4.1 控制器的结构和功能

在这里插入图片描述
控制器是计算机系统的指挥中心,控制器的主要功能有:

  • 1)从主存中取出一条指令,并指出下一条指令在主存中的位置。
  • 2)对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。
  • 3)指挥并控制CPU、主存、输入和输出设备之间的数据流动方向。

在这里插入图片描述

5.4.2 硬布线控制器

1. 硬布线控制单元图

在这里插入图片描述

2.硬布线控制器的时序及微操作

3.CPU控制方式

在这里插入图片描述
在这里插入图片描述

4.硬布线控制单元设计步骤

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.4.3 微程序控制器

在这里插入图片描述

在这里插入图片描述

1.微程序控制的基本概念

在这里插入图片描述

2.微程序控制组成和工作过程

在这里插入图片描述
在这里插入图片描述

5.微指令的格式

在这里插入图片描述

3.微指令的编码方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.微指令的地址形成方式

在这里插入图片描述
在这里插入图片描述

6.微程序控制单元的设计

设计步骤:

  1. 分析每个阶段的微操作序列
  2. 写出对应机器指令的微操作命令及节拍安排
  3. 确定微指令格式
  4. 编写微指令码点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7. 动态微程序设计和毫微程序设计

在这里插入图片描述

8.硬布线和微程序控制器的特点

在这里插入图片描述
在这里插入图片描述

5.5 指令流水线

在这里插入图片描述

5.5.1 指令流水的基本概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.5.3 影响流水线的因素

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.5.2 流水线的分类

1.部件功能级、处理机级和处理机间级流水线

  • 根据流水线使用的级别的不同,流水线可分为部件功能级流水线、处理机级流水线和处理机间流水线。
  • 部件功能级流水就是将复杂的算术逻辑运算组成流水线工作方式。例如,可将浮点加法操作分成求阶差、对阶、尾数相加以及结果规格化等4个子过程。
  • 处理机级流水是把一条指令解释过程分成多个子过程,如前面提到的取指、译码、执行、访存及写回5个子过程。
  • 处理机间流水是一种宏流水,其中每一个处理机完成某一专门任务,各个处理机所得到的结果需存放在与下一个处理机所共享的存储器中。

2.单功能流水线和多功能流水线

  • 按流水线可以完成的功能,流水线可分为单功能流水线和多功能流水线。
  • 单功能流水线指只能实现一种固定的专门功能的流水线;
  • 多功能流水线指通过各段间的不同连接方式可以同时或不同时地实现多种功能的流水线。

3.动态流水线和静态流水线

  • 按同一时间内各段之问的连接方式,流水线可分为静态流水线和动态流水线。
  • 静态流水线指在同一时间内,流水线的各段只能按同一种功能的连接方式工作。
  • 动态流水线指在同一时间内,当某些段正在实现某种运算时,另一些段却正在进行另一种运算。这样对提高流水线的效率很有好处,但会使流水线控制变得很复杂。
    4.线性流水线和非线性流水线
  • 按流水线的各个功能段之间是否有反馈信号,流水线可分为线性流水线与非线性流水线。
  • 线性流水线中,从输入到输出,每个功能段只允许经过一次,不存在反馈回路。
  • 作线性流水线存在反馈回路,从输入到输出过程中,某些功能段将数次通过流水线,这种流水线适合进行线性递归的运算。

5.5.5 超标量流水线的基本概念

1.超标量流水技术

在这里插入图片描述

2.超流水技术

在这里插入图片描述

3.超长指令集

在这里插入图片描述
在这里插入图片描述

5.6本章开头提出的问题回答

1)CPU分为哪几部分?分别实现什么功能?

  • 1)CPU分为哪几部分?分别实现什么功能?

    CPU分为运算器和控制器。其中运算器主要负责数据的加工,即对数据进行算术和逻辑运算控制器是整个系统的指挥中枢,对整个计算机系统进行有效的控制,包括指令控制、操作控制、时间控制和中断处理。

2)指令和数据均存放在内存中,计算机如何从时间和空间上区分它们是指令还是数据?

  • 2)指令和数据均存放在内存中,计算机如何从时间和空间上区分它们是指令还是数据?

    从时间上讲,取指令事件发生在“取指周期”,取数据事件发生在“执行周期”。从空间上讲,从内存读出的指令流流向控制器(指令寄存器),从内存读出的数据流流向运算器(通用寄存器)。

3)什么是指令周期、机器周期和时钟周期?它们之间有何关系?

  • 3)什么是指令周期、机器周期和时钟周期?它们之间有何关系?

    CPU每取出并执行一条指令所需的全部时间称为指令周期;机器周期是在同步控制的机器中,执行指令周期中一步相对完整的操作(指令步)所需的时间,通常安排机器周期长度=主存周期;时钟周期是指计算机主时钟的周期时间,它是计算机运行时最基本的时序单位,对应完成一个微操作所需的时间,通常时钟周期=计算机主频的倒数

4)指令周期是否有一个固定值?为什么?

  • 4)指令周期是否有一个固定值?为什么?

    由于计算机中各种指令执行所需的时间差异很大,因此为了提高CPU的运行效率,即使在同步控制的机器中,不同指令的指令周期长度都是不一致的,即指令周期对不同的指令来说不是个固定值。

5)什么是微指令?它和第4章谈到的指令有什么关系?

  • 5)什么是微指令?它和第4章谈到的指令有什么关系?

    控制部件通过控制线向执行部件发出各种控制命令,通常把这种控制命令称为微命令,而一组实现一定操作功能的微命令的组合,构成一条微指令。许多条微指令组成的序列构成微程序,微程序完成对指令的解释执行。指令,即指机器指令。每条指令可以完成一个独立的算术运算或逻辑运算操作。在采用微程序控制器的CPU中,一条指令对应一个微程序,一个微程序由许多微指令构成,一条微指令会发出很多不同的微命令。

6)什么是指令流水线?指令流水线相对于传统计算机体系结构的优势是什么?如何计算指令流水线的加速比?

  • 6)什么是指令流水线?指令流水线相对于传统计算机体系结构的优势是什么?如何计算指令流水线的加速比?

    指令流水线是把指令分解为若干子过程,通过将每个子过程与其他子过程并行执行,来提高计算机的吞吐率的技术。采用流水线技术只需增加少量硬件就能把计算机的运算速度提高几倍,因此成为计算机中普遍使用的一种并行处理技术,通过在同一个时间段使用各功能部件,使得利用率明显提高。
    流水线的加速比指的是完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比。一条k段流水线理论上的最大加速比为Smax=k。因此,在现代计算机中提高流水线段数有利于提高计算机的吞吐量。具体的加速比要使用时空图来计算。

5.7 常见问题

1.流水线越多,并行度就越高。是否流水段越多,指令执行越快?

  • 1.流水线越多,并行度就越高。是否流水段越多,指令执行越快?

    错误,因为如下:
    1)流水段缓冲之间的额外开销增大。每个流水段有一些额外开销用于缓冲间传送数据、进行各种准备和发送等功能,这些开销加长了一条指令的整个执行时间,当指令间逻辑上相互依赖时,开销更大。
    2)流水段间控制逻辑变多、变复杂。用于流水线优化和存储器(或寄存器)冲突处理的控制逻辑将随流水段的增加而大增,这可能导致用于流水段之间控制的逻辑比段本身的控制逻辑更复杂。

2.有关指令相关、数据相关的几个概念

  • 2.有关指令相关、数据相关的几个概念

    1)两条连续的指令读取相同的寄存器时,会产生读后读( Read After Read,RAR)相关,这种相关不会影响流水线。
    2)某条指令要读取上一条指令所写入的寄存器时,会产生写后读( Read After Write,RAW)相关,它称数据相关或真相关,影响流水线。按序流动的流水线只可能出现RAW相关。
    3)某条指令的上条指令要读/写该指令的输出寄存器时,会产生读后写( Write After Read,WAR)和写后写( Write After Write,WAW)相关。在非按序流动的流水线中,既可能发生RAW相关,又可能发生WAR相关和WAW相关。
    对流水线影响最严重的指令相关是数据相关。