📒
考研计算机组成原理笔记
  • 408机组考察范围
  • 第一章 计算机系统概述
    • 1.1 计算机发展历程
    • 1.2 计算机系统层次结构
    • 1.3 计算机的性能指标
  • 第二章 数据的表示和运算
    • 2.1 数制与编码
    • 2.2 定点数的表示与运算
    • 2.3 浮点数的表示和运算
    • 2.4 算数逻辑单元(ALU)
  • 第三章 存储系统
    • 3.1 存储器概述
    • 3.3 半导体随机存储器
    • 3.4 主存储器与CPU的连接
    • 3.5 双端口RAM和多模块存储器
    • 3.6 高速缓冲存储器
    • 3.7 虚拟存储器
  • 第四章 指令系统
    • 4.1 指令格式
    • 4.2 指令的寻址方式
    • 4.3 CISC和RISC
    • 4.4 程序的机器级代码
  • 第五章 中央处理器
    • 5.1 CPU的基本功能和结构
    • 5.2 指令执行过程
    • 5.3 数据通路的功能和基本结构
    • 5.4 控制器的工作原理和功能
    • 5.5 指令流水线
    • 5.6 多处理器
  • 第六章 总线
    • 6.1 总线概述
    • 6.2 总线仲裁
    • 6.3 总线操作和定时
    • 6.4 总线标准
  • 第七章 I/O系统
    • 7.1 I/O系统的基本概述
    • 7.2 外部设备
    • 7.3 I/O接口
    • 7.4 I/O方式
由 GitBook 提供支持
在本页
  • 5.2.1 指令周期
  • 5.2.2 指令周期的数据流
  • 1、寻址周期
  • 2、间址周期
  • 3、执行周期
  • 4、中断周期
  • 5.2.3 指令执行方案
  • 1、单指令周期
  • 2、多指令周期
  • 3、流水线方案

这有帮助吗?

  1. 第五章 中央处理器

5.2 指令执行过程

上一页5.1 CPU的基本功能和结构下一页5.3 数据通路的功能和基本结构

最后更新于2年前

这有帮助吗?

5.2.1 指令周期

指令周期:CPU从主存中取出并执行一条指令的全部时间。

一个指令周期由若干机器周期表示,机器周期也叫CUP周期。

一个机器周期包含若干时钟周期(节拍),时钟周期是CPU操作的最基本单位。

  • 每个指令周期内机器周期可以不相等

  • 每个机器周期内节拍数也可以不相等

完整的指令周期如下图所示:

运行时,通过触发器来判断当前处于指令周期内的哪一个阶段。

5.2.2 指令周期的数据流

1、寻址周期

根据PC的内容从主存中取出指令并存入IR

  1. 将当前指令地址送到存储地址寄存器

    1. (PC)→MAR\text{(PC)} \to \text{MAR}(PC)→MAR

  2. CU发出控制信号,由控制总线传到主存,标明是读信号

    1. 1→R1 \to \text{R}1→R

  3. 将MAR指向的主存中的内容经数据总线传至MDR

    1. M(MAR)→MDR\text{M(MAR)} \to \text{MDR}M(MAR)→MDR

  4. 将MDR中的数据送入指令寄存器IR

    1. (MDR)→IR\text{(MDR)} \to \text{IR}(MDR)→IR

  5. CU发出控制信号,形成下一条指令的地址

    1. (PC)+1→PC\text{(PC)}+1 \to \text{PC}(PC)+1→PC

2、间址周期

取操作数的有效地址

  1. 将指令的地址码送入MAR

    1. Ad(IR)→MAR\text{Ad(IR)} \to \text{MAR}Ad(IR)→MAR

  2. CU发出控制信号,表示读操作

    1. 1→R1 \to \text{R}1→R

  3. 将MAR所指主存中的内容传入MDR

    1. M(MAR)→MDR\text{M(MAR)} \to \text{MDR}M(MAR)→MDR

  4. 将得到的有效地址送入IR

    1. (MDR)→Ad(IR)\text{(MDR)} \to \text{Ad(IR)}(MDR)→Ad(IR)

3、执行周期

取操作数,根据IR中的操作码进行相关运算

执行周期的数据流向视不同指令而定,没有统一的数据流向。

4、中断周期

中断执行前需要保存当前程序的断点。

断点一般采用堆栈保存,SP为栈顶指针,进栈的操作顺序为先修改指针,再存入数据。

  1. CU控制SP减一,并将修改后的栈顶地址存入MAR

    1. (SP)-1→SP\text{(SP)-1}\to \text{SP}(SP)-1→SP

    2. (SP)→MAR\text{(SP)}\to \text{MAR}(SP)→MAR

  2. CU发出控制信号,表明当前为写操作

    1. 1→W1 \to \text{W}1→W

  3. 将断点内容(PC内容)存入MDR

    1. (PC)→MDR\text{(PC)} \to \text{MDR}(PC)→MDR

  4. CU将中断程序的入口地址存入PC

    1. 向量地址→PC向量地址 \to \text{PC}向量地址→PC

5.2.3 指令执行方案

1、单指令周期

对所有指令都选用相同的执行时间来完成。 指令之间串行执行,指令周期取决于执行时间最长的指令的执行时间。

会降低整个系统的运行速度。

2、多指令周期

对不同类型的指令选用不同的执行步骤来完成。 指令之间串行执行,可选用不同个数的时钟周期来完成不同指令的执行过程。

需要更复杂的硬件设计。

3、流水线方案

在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。 指令之间并行执行。