当前位置: 代码迷 >> 综合 >> 【计算机组成原理-chapter5】中央处理器
  详细解决方案

【计算机组成原理-chapter5】中央处理器

热度:51   发布时间:2024-02-27 17:43:59.0

文章目录

  • 1. CPU的功能和基本结构
    • 1.1 CPU的功能
    • 1.2 CPU的组成
      • 1.2.1 运算器的基本组成
      • 1.2.2 控制器的基本组成
      • 1.2.3 CPU的总图
      • 1.2.4 小结
  • 2. 指令执行过程
    • 2.1 指令周期
    • 2.2 指令的执行流程
      • 2.2.1 取指周期
      • 2.2.2 间址周期(取操作数的有效地址)
      • 2.2.3 执行周期
      • 2.2.4 中断周期
    • 2.3 指令执行方案
    • 2.4 小结
  • 3. 数据通路
    • 3.1 基于CPU内部总线的数据通路(单总线/多总线)
    • 3.2 基于专用数据通路的数据通道
    • 3.3 小结
  • 4. 控制器的功能和原理
    • 4.1 控制器的结构和功能
    • 4.2 控制器的设计
      • 4.2.1 硬布线控制器(采用纯硬件的方式,即组合逻辑电路)
        • 4.2.1.1 硬布线控制器的组成
        • 4.2.1.2 硬布线控制器的控制单元的设计
          • 第一步:分析每个阶段的微操作序列
          • 第二步:选择CPU的控制方式
          • 第三步:安排微操作时序
          • 第四步:电路设计
      • 4.2.2 微程序控制器(采用软件和硬件结合的方式,即微程序)
        • 4.2.2.1 微程序控制器结构与工作原理
        • 4.2.2.2 小结
        • 4.2.2.3 微指令的设计
          • 4.2.2.3.1 微指令格式与编码方式
          • 4.2.2.3.2 小结
        • 4.2.2.4 微程序控制器的控制单元的设计
          • 第一步:分析每个阶段的微操作序列
          • 第二步:写出对应机器指令的微操作命令及节拍安排
          • 第三步:确定微指令格式
          • 第四步:编写微指令码点
          • 小结
      • 4.2.3 硬布线控制器 vs 微程序控制器
  • 5. 指令流水线
    • 5.1 指令流水线的基本概念
      • 5.1.1 指令流水的定义
      • 5.1.2 指令流水的2种表示方式
      • 5.1.3 流水线的性能指标
      • 5.1.4 机器周期的设置
    • 5.2 指令流水线影响因素
      • 5.2.1 影响流水线的因素
      • 5.2.2 小结
    • 5.3 流水线的分类
    • 5.4 流水线的多发技术
    • 5.5 小结
  • 6. 几个常考指令
    • 6.1 运算类指令
    • 6.2 LOAD指令
    • 6.3 STORE指令
    • 6.4 条件转移类指令
    • 6.5 无条件转移类指令
    • 6.6 例题
  • 7. 补充

1. CPU的功能和基本结构

1.1 CPU的功能

在这里插入图片描述

1.2 CPU的组成

CPU由运算器和控制器组成。

1.2.1 运算器的基本组成

  1. 算术逻辑单元(ALU):主要功能是进行算术/逻辑运算
  2. 通用寄存器组:如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP是堆栈指针,用于指示栈顶的地址。
    通用寄存器与ALU的连接有两种:
    在这里插入图片描述

注意:

  1. 总线有内部总线和系统总线之分。内部总线指在CPU内部的总线,系统总线指在CPU外的总线。
  2. 采用内部总线则ALU的端口要设置暂存寄存器,若采用专用数据通道的方式则ALU端口要设置多路选择器或者三态门。
  1. 累加寄存器:它是一个通用寄存器,用于暂时存放ALU运算的结果信息,用于实现加法运算。
  2. 程序状态字寄存器(PSW):保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成
  3. 移位器:对运算结果进行移位运算。
  4. 计数器:控制乘除运算的操作步数。

1.2.2 控制器的基本组成

在这里插入图片描述

1.2.3 CPU的总图

在这里插入图片描述

1.2.4 小结

在这里插入图片描述

2. 指令执行过程

2.1 指令周期

在这里插入图片描述

注意:

  1. 时钟周期组成机器周期,而机器周期组成指令周期。
  2. 每个指令周期包含的机器周期数可以不同,而每个机器周期包含的时钟周期数也可以不同。
  3. 时钟周期是CPU操作最基本的单位。

2.2 指令的执行流程

* 指令的执行流程有4步:1. 取指周期2. 间址周期(取操作数的有效地址)3. 执行指令(取操作数)4. 中断周期

在这里插入图片描述

2.2.1 取指周期

在这里插入图片描述

注意:进行访存操作时,是MAR先通过地址总线将地址给存储器。然后, CU再通过控制总线发出读写信号,最后将数据放入MAR.

2.2.2 间址周期(取操作数的有效地址)

在这里插入图片描述

2.2.3 执行周期

不同的指令,执行情况肯定不同,因此执行周期没有统一的流向。

2.2.4 中断周期

在这里插入图片描述

2.3 指令执行方案

在这里插入图片描述

2.4 小结

在这里插入图片描述

3. 数据通路

3.1 基于CPU内部总线的数据通路(单总线/多总线)

在这里插入图片描述

注意:每条总线,在某一时刻总线只能传送一个数据。

例题:
在这里插入图片描述

3.2 基于专用数据通路的数据通道

在这里插入图片描述
练习:
在这里插入图片描述

3.3 小结

在这里插入图片描述

4. 控制器的功能和原理

4.1 控制器的结构和功能

4.2 控制器的设计

* 设计控制器中CU的2种方案1. 硬布线控制器(采用纯硬件的方式)* 缺点:1. 指令越多,设计和实现就越复杂,因此一般用于RISC(精简指令集系统)2. 如果扩充一条新的指令,则控制器的设计就需要大改,因此扩充指令较困难。* 优点:1. 由于使用纯硬件实现控制,因此执行速度很快。微操作控制信号由组合逻辑电路即时产生。2. 微程序控制器(采用软件和硬件结合的方式)* 缺点:1. 速度慢* 优点:1. 容易扩充指令,较容易实现,适用于SISC系统(复杂指令集系统)

4.2.1 硬布线控制器(采用纯硬件的方式,即组合逻辑电路)

4.2.1.1 硬布线控制器的组成

在这里插入图片描述

硬布线控制器的组成如下图所示:
在这里插入图片描述

4.2.1.2 硬布线控制器的控制单元的设计

控制器的控制单元(CU)的设计步骤:
在这里插入图片描述

第一步:分析每个阶段的微操作序列

在这里插入图片描述

第二步:选择CPU的控制方式

采用定长指令周期或不定长指令周期。这里采用定长指令周期。

第三步:安排微操作时序

这里每个周期都安排三个节拍。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第四步:电路设计

在这里插入图片描述
会根据操作时间表写出微操作的逻辑表达式就行,比如下面:
在这里插入图片描述

4.2.2 微程序控制器(采用软件和硬件结合的方式,即微程序)

4.2.2.1 微程序控制器结构与工作原理

在这里插入图片描述

注意:

  1. 微程序控制器中,每条指令对于一个微程序,而一个微程序由若干个微指令组成,每个微指令表明一个节拍/时钟周期内做什么事情。
  2. 微命令就是微操作,一个节拍内包含若干个微操作。
  3. 微程序的分类:
    在这里插入图片描述

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

注意:一个高频考点:
在这里插入图片描述

4.2.2.2 小结

在这里插入图片描述

4.2.2.3 微指令的设计

4.2.2.3.1 微指令格式与编码方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例题:
在这里插入图片描述

4.2.2.3.2 小结

在这里插入图片描述

4.2.2.4 微程序控制器的控制单元的设计

在这里插入图片描述

第一步:分析每个阶段的微操作序列

在这里插入图片描述

第二步:写出对应机器指令的微操作命令及节拍安排

在这里插入图片描述

第三步:确定微指令格式

根据微操作个数决定采用何种编码方式,以确定微指令的操作控制字段的位数。
根据CM中存储的微指令总数,确定微指令的顺序控制字段的位数。
最后按操作控制字段位数和顺序控制字段位数就可确定微指令字长。

第四步:编写微指令码点

在这里插入图片描述

小结

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

4.2.3 硬布线控制器 vs 微程序控制器

在这里插入图片描述

5. 指令流水线

5.1 指令流水线的基本概念

注意:CISC可以采用指令流水线技术和非流水线技术,但是,RISC都采用流水线技术。所以,下面的指令流水线的学习中默认都是CISC指令系统。

5.1.1 指令流水的定义

指令流水指的是指令连续执行。而指令连续执行的方式主要有如下3种:
在这里插入图片描述

5.1.2 指令流水的2种表示方式

在这里插入图片描述

5.1.3 流水线的性能指标

* 流水线的性能指标1. 吞吐率2. 加速比3. 效率

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

5.1.4 机器周期的设置

在这里插入图片描述

5.2 指令流水线影响因素

5.2.1 影响流水线的因素

* 影响流水线的因素1. 结构相关(资源冲突)2. 数据相关(数据冲突)3. 控制相关(控制冲突)

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

5.2.2 小结

在这里插入图片描述

5.3 流水线的分类

在这里插入图片描述

5.4 流水线的多发技术

* 流水线的多发技术1. 超标量技术2. 超流水线技术3. 超长指令字

在这里插入图片描述

5.5 小结

在这里插入图片描述

6. 几个常考指令

6.1 运算类指令

在这里插入图片描述

6.2 LOAD指令

在这里插入图片描述

6.3 STORE指令

在这里插入图片描述

6.4 条件转移类指令

在这里插入图片描述

6.5 无条件转移类指令

在这里插入图片描述

6.6 例题

在这里插入图片描述

7. 补充

1. 程序员可见的寄存器:1. PSW2. 通用寄存器3. PC
2. 程序员不可见的寄存器:1. IR2. MAR3. MDR4. 暂存寄存器3. 控制器里面:1. CU2. MAR3. MDR4. IR5. PC6. 指令译码电路  (只对操作码进行译码,而不是整个指令)7. 微程序信号发生器8. 时序电路4. 运算器里面:1. ALU2. ACC3. MQ4. 通用寄存器5. PSW6. 移位器:对运算结果进行移位运算。7. 计数器:控制乘除运算的操作步数。5. 条件转移指令:1. 执行时所依据的条件来自:标志寄存器2. 实现跳转来自:程序计算器PC6. n位CPU指__(地址总线/数据总线/控制总线)位数。答:数据总线。表示CPU一次处理数据的位数。7. 判断:转移指令时,PC的值总是修改为转移指令的目标地址。错。因为需要判断跳转是否成功,即条件是否成立。若不成功则顺序执行。8. PC的位数 = MAR的位数 ->取决于存储器的容量9. 通用寄存器的位数取决于___(指令长度/机器字长/存储器的容量)答:机器字长。因为通用寄存器可以存放数据和地址,所以其位数尽可能的大。10. 判断:通用寄存器可以替代指令寄存器。错误。指令寄存器是专门存放指令的寄存器。11. 指令译码是对___(整条指令/操作码/地址码)进行译码答:操作码