5.1 CPU 的结构、指令执行过程与数据通路

CPU 的功能与基本结构,用户可见与透明的寄存器;指令周期、机器周期与时钟周期,取指、间址、执行、中断四个周期的数据流;数据通路的三种结构与单总线下的微操作序列。

考查要求 ★★★ 重点掌握 运算器与控制器的组成用户可见寄存器指令周期的四个阶段单周期/多周期 CPU单总线数据通路与微操作

CPU 的功能与基本结构

CPU 由运算器和控制器组成,承担五项基本功能:

  1. 指令控制:完成取指令、分析指令和执行指令的操作,即程序的顺序控制;
  2. 操作控制:产生完成每条指令所需的操作信号,送往相应部件;
  3. 时间控制:严格控制各种操作信号的出现时间、持续时间和出现的时间顺序;
  4. 数据加工:对数据进行算术和逻辑运算;
  5. 中断处理:处理运行过程中出现的异常情况和中断请求。
部件主要组成作用
运算器算术逻辑单元 ALU、暂存寄存器、累加寄存器 ACC、通用寄存器组、程序状态字寄存器 PSW、移位器、计数器对数据进行加工
控制器程序计数器 PC、指令寄存器 IR、指令译码器、存储器地址寄存器 MAR、存储器数据寄存器 MDR、时序系统、微操作信号发生器协调并控制计算机各部件执行程序的指令序列
  • PSW(程序状态字寄存器)保存由算术/逻辑运算产生的状态信息,如溢出标志 OF、符号标志 SF、零标志 ZF、进位标志 CF,以及中断允许标志 IF 等。条件转移指令就是根据 PSW 中的标志决定是否转移。
  • 暂存寄存器用于暂存从主存读来的数据,它对应用程序员是透明的。
  • 控制器的工作原理:根据指令操作码、指令的执行步骤(微命令序列)和条件信号来形成当前计算机各部件要用到的控制信号。

指令执行过程

指令周期、机器周期与时钟周期

  • 指令周期:CPU 从主存取出并执行完一条指令所需的全部时间。
  • 指令周期常用若干机器周期(又称 CPU 周期)表示,一个机器周期通常是完成一次访存(或一个基本操作)所需的时间;
  • 一个机器周期又包含若干时钟周期(又称节拍、T 周期),时钟周期是 CPU 操作的最基本单位。

不同指令的指令周期可以不同:无条件转移指令 JMP X 执行时不需要访问主存,只有取指和执行两个阶段;间接寻址的指令要多一个间址周期;如果 CPU 在一条指令执行结束时发现有中断请求,还要进入中断周期。各机器周期所含的时钟周期数可以相同(定长机器周期),也可以不同(不定长机器周期)。

CPU 内部设置 4 个标志触发器 FE、IND、EX、INT,分别表示当前处于取指、间址、执行、中断周期,同一时刻只有一个为 1:

是否是否取指周期FE = 1间址?间址周期IND = 1执行周期EX = 1中断?中断周期INT = 1
指令周期流程:取指 →(间址)→ 执行 →(中断)→ 下一条指令

四个机器周期的数据流

机器周期数据流访存
取指周期① (PC) → MAR → 地址总线 → 主存;② CU 发出读命令 → 控制总线 → 主存;③ 主存 → 数据总线 → MDR;④ (MDR) → IR;⑤ CU 发出控制信号,(PC) + 1 → PC1 次(取指令)
间址周期① Ad(IR)(或 MDR 中的地址字段)→ MAR → 地址总线 → 主存;② CU 发出读命令;③ 主存 → 数据总线 → MDR,得到操作数的有效地址,可再送回 Ad(IR)1 次(取有效地址)
执行周期根据 IR 中的操作码完成相应操作,不同指令差别很大视指令而定
中断周期① (SP) − 1 → SP,修改后的地址送入 MAR;② CU 发出写命令,(PC)(断点)→ MDR → 主存;③ 中断服务程序的入口地址 → PC1 次(保存断点)

指令执行方案

方案做法特点
单周期处理器每条指令都在一个时钟周期内完成,CPI = 1时钟周期取决于执行时间最长的指令;指令之间串行执行;一条指令执行过程中每个部件只能使用一次(如需两个加法器、指令和数据存储器分开)
多周期处理器把指令的执行分成多个阶段,每个阶段一个时钟周期不同指令的 CPI 不同;同一部件可在不同周期重复使用;指令之间仍串行执行
流水线处理器把每条指令分成多个阶段,不同指令的不同阶段重叠执行理想情况下每个时钟周期完成一条指令,见第 3 节

数据通路

数据通路是数据在指令执行过程中所经过的路径,包括路径上的部件(ALU、通用寄存器、PSW、异常和中断处理逻辑等)。它由控制部件控制:控制部件根据每条指令功能的不同生成对数据通路的控制信号。

组成数据通路的元件分为两类:

  • 组合逻辑元件(操作元件):输出只取决于当前输入,无存储功能,如加法器、ALU、译码器、多路选择器、三态门;
  • 时序逻辑元件(状态元件):具有存储功能,在时钟控制下写入,如各类寄存器、PC。

数据通路的三种基本结构

结构特点
CPU 内部单总线所有寄存器的输入端和输出端都连到一条公共通路上;结构简单,但同一时刻只能传送一个数据,冲突多、性能低
CPU 内部多总线寄存器的输入/输出端连到多条公共通路上,同一时刻可在多条总线上并行传送数据
专用数据通路按指令执行过程中数据和地址的流动方向安排连接线路,用多路选择器和三态门控制;避免共享总线带来的冲突,性能高但硬件量大

内部总线指 CPU 内部连接各寄存器及运算部件的总线;系统总线指连接 CPU、存储器和外设的总线(见第 6 章)。

单总线结构下的基本操作

在单总线结构中,每个寄存器 X 有两个控制信号:Xout 把 X 的内容送上总线(三态门打开),Xin 把总线上的内容打入 X。数据通路中的三类基本操作:

  1. 寄存器之间的数据传送:如 (PC) → MAR,只需一个节拍,控制信号为 PCout, MARin;
  2. 主存与 CPU 之间的数据传送:如取指令时,(PC) → MAR;CU 发出读命令 MemR,M(MAR) → MDR;(MDR) → IR;
  3. 执行算术或逻辑运算:ALU 本身是没有内部存储功能的组合电路。单总线一次只能送出一个操作数,所以 ALU 的一个输入端要先接一个暂存寄存器 Y;运算结果也不能直接送回总线(此时总线正被另一个操作数占用),要先存到暂存寄存器 Z。
动画演示单总线数据通路:一条指令的微操作序列
内部总线地址数据主存M[100]:指令M[208]:15PC100MARMDRIRCU(控制单元)R027R1208YALUZCU 根据指令和节拍发出控制信号(Xout / Xin / MemR …)
向总线输出(Xout)从总线输入(Xin)访问主存
1/9单总线结构:所有寄存器的输入端和输出端都连接到同一条内部总线上。同一时刻总线上只能有一个部件输出(Xout),可以有一个或多个部件输入(Xin)
例题:写出微操作序列

采用上面的单总线结构,写出指令 ADD R2, R0, R1(功能:(R0) + (R1) → R2)执行阶段的微操作及有效控制信号。

查看解答

取指阶段与动画相同(C1~C3)。执行阶段:

节拍微操作有效控制信号
C4(R0) → YR0out, Yin
C5(R1) + (Y) → ZR1out, ADD, Zin
C6(Z) → R2Zout, R2in

两个操作数都在寄存器中,不需要访存,执行阶段共 3 个节拍。

即时练习

即时练习5 题
点击选项即可作答
  1. 1
    下列寄存器中,汇编语言程序员可见的是( )。
  2. 2
    假定不采用 Cache 和指令预取技术,且机器处于「开中断」状态,则在下列有关指令执行的叙述中,错误的是( )。
  3. 3
    下列关于单周期 CPU 的叙述中,错误的是( )。
  4. 4
    在单总线结构的 CPU 中,ALU 的输入端连接暂存寄存器 Y 的原因是( )。
  5. 5
    指令周期中,由硬件自动完成「关中断、保存断点、送中断服务程序入口地址到 PC」的是( )。
学完了吗?

标记完成后,侧栏会显示进度。进度仅保存在本浏览器中。