计组 第五章

中央处理器

CPU的功能和组成

CPU的功能

image-20210313170054923

指令控制(程序的顺序控制)

操作控制(一条指令有若干操作信号实现)

时间控制(指令各个操作实施时间的定时)

数据加工(算术运算和逻辑运算)

CPU的基本组成

http://markdown-1303167219.cos.ap-shanghai.myqcloud.com/图片1.png

中央处理器 CPU = 运算器 + cache + 控制器

运算器

  • ALU
  • 通用寄存器:R0~R3
  • 暂存器:DR
  • 状态字寄存器:PSW

cache

  • 指令 cache:PC,IBUS

  • 数据 cache:AR,DBUS

控制器

  • 程序计数器、指令寄存器、数据缓冲器、地址寄存器、时序发生器、指令译码器、总线(数据通路)
    • 程序计数器 PC (Programming Counter)
      • 用来存放正在执行的指令的地址或接着将要执行的下一条指令的地址。
      • 顺序执行时,每执行一条指令,PC 的值应加 1
      • 要改变程序执行顺序的情况时,一般由转移类指令将转移目标地址送往 PC ,可实现程序的转移
    • 指令寄存器 IR (Instruction Register)
      • 指令寄存器用来存放从存储器中取出的待执行的指令。
      • 在执行该指令的过程中,指令寄存器的内容不允许发生变化,以保证实现指令的全部功能。

CPU 中的主要寄存器

数据缓冲寄存器(DR)

  • 中转站

  • 补偿速度差别

  • 指令寄存器 (IR)

  • 程序计数器 (PC)

  • 数据地址寄存器 (AR)

  • 通用寄存器 (R0~R3)

  • 状态字寄存器 (PSW)

指令周期

指令周期的基本概念

指令周期:取出一条指令并执行这条指令的时间

CPU 周期:又称机器周期,用从内存中读取一个指令字的最短时间来规定 CPU 周期

​ 换句话说,就是以主存的工作周期 (存取周期) 为基础来规定 CPU 周期

​ 通常把一条指令周期划分为若干个机器周期,每个机器周期完成一个基本操作

​ 一个 CPU 周期中,包含若干个节拍脉冲(T 周期)

​ CPU 周期通常定义为机器主频的倒数

image-20210313173359110

MOV 指令的指令周期

两个 CPU 周期

image-20210313173851190

取指周期

程序计数器 PC 中装入第一条指令地址 101(八进制);

PC 的内容被放到指令地址总线 ABUS(I)上,对指存进行译码,并启动读命令;

从 101 号地址读出的 MOV 指令通过指令总线 IBUS 装入指令寄存器 IR;

程序计数器内容加 1,变成 102,为取下一条指令做好准备;

指令寄存器中的操作码(OP)被译码;

CPU 识别出是 MOV 指令,至此,取指周期即告结束

image-20210313174137437

执行周期

操作控制器(OC)送出控制信号到通用寄存器,选择 R1(10)作源寄存器,选择 R0 作目标寄存器;

OC 送出控制信号到 ALU,指定 ALU 做传送操作;

OC 送出控制信号,打开 ALU 输出三态门,将 ALU 输出送到数据总线 DBUS 上。注意,任何时候 DBUS 上只能有一个数据。

OC 送出控制信号,将 DBUS 上的数据打入到数据缓冲寄存器 DR(10);

OC 送出控制信号,将 DR 中的数据 10 打入到目标寄存器 R0,R0 的内容由 00 变为 10。至此,MOV 指令执行结束。

image-20210313174237168

LAD 指令的指令周期

三个 CPU 周期

image-20210313174621752

取指周期

与 MOV 指令一样,以下皆同

执行周期

操作控制器 OC 发出控制命令打开 IR 输出三态门,将指令中的直接地址码 6 放到数据总线 DBUS 上;

OC 发出操作命令,将地址码 6 装入数存地址寄存器 AR;

OC 发出读命令,将数存 6 号单元中的数 100 读出到 DBUS 上;

OC 发出命令,将 DBUS 上的数据 100 装入缓冲寄存器 DR;

OC 发出命令,将 DR 中的数 100 装入通用寄存器 R1,原来 R1 中的数 10 被冲掉。至此,LAD 指令执行周期结束。

http://markdown-1303167219.cos.ap-shanghai.myqcloud.com/image-20210313174907814.png

ADD 指令的指令周期

两个 CPU 周期

执行周期

操作控制器 OC 送出控制命令到通用寄存器,选择 R1 做源寄存器,R2 做目标寄存器;

OC 送出控制命令到 ALU,指定 ALU 做 R1(100)和 R2(20)的加法操作;

OC 送出控制命令,打开 ALU 输出三态门,运算结果 120 放到 DBUS 上;

OC 送出控制命令,将 DBUS 上数据打入缓冲寄存器 DR;ALU 产生的进位信号保存状态字寄存器在 PSW 中。

OC 送出控制命令,将 DR(120)装入 R2,R2 中原来的内容 20 被冲掉。至此 ADD 指令执行周期结束

image-20210313190818882

STO 指令的指令周期

三个 CPU 周期

image-20210313191407824

执行周期

注意:DBUS 为单总线结构,先送地址,后送数据

操作控制器 OC 送出操作命令到通用寄存器,选择(R3)=30 做数据存储器的地址单元;

OC 发出操作命令,打开通用寄存器输出三态门(不经 ALU 以节省时间),将地址 30 放到 DBUS 上;

OC 发出操作命令,将地址 30 打入 AR,并进行数存地址译码;

OC 发出操作命令到通用寄存器,选择(R2)=120),作为数存的写入数据;

OC 发出操作命令,打开通用寄存器输出三态门,将数据 120 放到 DBUS 上。

OC 发出操作命令,将数据 120 写入数存 30 号单元,它原先的数据 40 被冲掉。至此,STO 指令执行周期结束

image-20210313191508145

JMP 指令的指令周期

两个 CPU 周期

image-20210313191651516

执行周期

OC 发生操作控制命令,打开指令寄存器 IR 的输出三态门,将 IR 中的地址码 101 发送到 DBUS 上;

OC 发出操作控制命令,将 DBUS 上的地址码 101 打入到程序计数器 PC 中,PC 中的原先内容 106 被更换。于是下一条指令不是从 106 号单元取出,而是转移到 101 号单元取出。至此 JMP 指令执行周期结束

http://markdown-1303167219.cos.ap-shanghai.myqcloud.com/image-20210313192020243.png

用方框图语言表示指令周期

方法

  • 指令系统设计(模型机的五指令系统)

  • 方框——按 CPU 周期

  • 方框内内容——数据通路操作或控制操作

  • 菱形符号——判别或测试

  • ~——公操作

  • 前边所讲述的 5 种操作的框图描述

http://markdown-1303167219.cos.ap-shanghai.myqcloud.com/image-20210313192845282.png

时序产生器和控制方式

  • 同步控制方式(指令的机器周期和时钟周期数不变)

    • 完全统一的机器周期执行各种不同的指令
    • 或采用不定长机器周期
    • 中央控制于局部控制的结合
  • 异步控制方式

    • 每条指令需要多长时间就占多长时间
  • 联合控制方式

    • 大部分指令在固定的周期内完成,少数难以确定的操作采用异步方式
    • 或,机器周期的节拍脉冲固定,但是各指令的机器周期数不固定(微程序控制器采用)

微程序控制器

微命令->微指令->微程序

一条机器指令对应着一个微程序

分清控制器,运算器,存储器,总线之间的边界

概念

微命令:控制部件向执行部件发出的各种控制命令叫作微命令,它是构成控制序列的最小单位

微操作:执行器接受微命令后所进行的操作

微指令:把在同一 CPU 周期内并行执行的微操作控制信息,存储在控制存储器里,称为一条微指令

  • 操作控制字段,又称微操作码字段,用以产生某一步操作所需的各个微操作控制信号。
    • 某位为 1,表明发微指令
    • 微指令发出的控制信号都是节拍电位信号,持续时间为一个 CPU 周期
    • 微命令信号还要引入时间控制
  • 顺序控制字段,又称微地址码字段,用以控制产生下一条要执行的微指令地址。

微程序:一系列微指令的有序集合就是微程序

  • 一段微程序对应一条机器指令。
  • 微地址 :存放微指令的控制存储器的单元地址
image-20210313202842553

微程序控制原理

http://markdown-1303167219.cos.ap-shanghai.myqcloud.com/image-20210313203405485.png

控制存储器 (μCM)

这是微程序控制器的核心部件,用来存放微程序。其性能 (包括容量、速度、可靠性等) 与计算机的性能密切相关

机器运行时只读不写,工作时,读取一条微指令并运行,以此往复

微指令寄存器 (μIR)

用来存放从 μCM 取出的正在执行的微指令

地址转移逻辑

用来产生初始微地址和后继微地址,以保证微指令的连续执行

微地址寄存器 (μMAR)

它接受微地址形成部件送来的微地址,为下一步从μCM 中读取微指令作准备。

微指令格式

  • 水平型微指令:一次能定义并执行多个并行操作微命令的微指令
  • 垂直型微指令:微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能