第5章 中央处理器
总览
- 中央处理器在(CPU)的功能和基本结构
- 指令执行过程
- 数据通路的功能和基本结构
- 控制器的功能和工作原理
- 硬布线控制器
- 微程序控制器
微程序、微指令和微命令,微指令格式,微命令的编码方式,微地址的形成方式
- 指令流水线
- 指令流水线的基本概念
- 指令流水线的基本实现
- 超标量和动态流水线的基本概念
- 中断系统
- CPU的功能和基本结构
- CPU的功能
- 指令控制
- 操作控制
- 时间控制
- 数据加工
- 中断处理
- CPU的基本结构
指令控制、操作控制、时间控制由控制单元(CU)完成;数据加工由ALU完成;中断处理由中断系统完成,最后加上一些寄存器,CPU就被制作出来了。
- CPU中的主要寄存器
- 运算器中的寄存器
- 暂存寄存器
- 累加寄存器(ACC)
为ALU提供一个工作区,暂时存放ALU的运算结果。
- 通用寄存器组
用于存放操作数和地址信息等,常见AX/BX/CX/DX以及堆栈指针SP
- 状态条件寄存器(PSW)
也称程序状态字寄存器,保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,如运算结果进位标志(C)、运算结果溢出标志(V)、运算结果为零标志(Z)、运算结果为负标志(N)等。这些标志位通常分别由一位触发器保存。
此外,还可保存中断和系统工作状态等。
- 控制器中的寄存器
- 程序计数器(PC)
在程序开始执行前,必须将他的起始地址,即程序的第一条指令所在的内存单元地址送入PC。由于大多数指令都是按顺序来执行的,因此所谓修改通常只是简单地对PC加1.当遇到转移指令时,后继指令的地址必须从指令的地址段取得。程序计数器具有寄存信息和计数两种功能。
- 指令寄存器(IR)
用来保存当前正在执行的指令。当执行一条指令时,先把它从内存渠道数据缓冲寄存器中,然后传送至指令寄存器。为了准确无误地执行指令,必须对操作码进行测试,以便是被所要求的的操作。指令译码器就是做这项工作的。操作码一经译码,即可向操作控制器发出具体操作的特定信号。
- 存储器数据寄存器(MDR)
也叫数据缓冲寄存器,用来暂时存放由主存读出的一条指令或一个数据字;反之,当主存存入一条指令或一个数据字时,也暂时将他们存放在MDR中。
- 存储器地址寄存器(MAR)
存储器地址寄存器用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,因此必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。
CPU和内存进行信息交换时,或者CPU从内存中读出指令时,都要使用MAR和MDR。
补充:用户可见和不可见寄存器
用户可见寄存器指用户可以通过程序去访问的寄存器(如通用寄存器组、程序计数器等)。IR、MAR、MDR是CPU的内部工作寄存器,在程序执行的过程中是自动赋值的,程序猿无法对其操作,称为用户不可见寄存器。儿程序计数器中存放的是下一条需要执行的指令,因此程序猿可以通过转移指令、调动子程序等指令改变其内容,故可见。
- 指令的执行过程
- 指令周期
指令周期:CPU每取出并执行一条指令所需的全部时间,即CPU完成一条指令的时间。
机器周期(CPU周期):指令周期被换分成几个不同的阶段,每个阶段所需的时间称为机器周期,通常等于取指时间(或访存时间)。
时钟周期:时钟频率的倒数,也可称为节拍脉冲或T周期,是处理操作的基本单位。
三者之间的关系:一个指令周期由若干个机器周期组成,每个机器周期又由若干个时钟周期组成。
- 指令执行方案
- 单指令周期
对所有指令都选用相同的执行时间来完成,称为单指令周期方案。此类方案中指令周期的大小取决于执行时间最长的指令的执行时间。
指令之间串行执行。
- 多指令周期
对不同类型的指令选用不同的执行步骤来完成,称为多指令周期方案。
多指令周期方案的指令之间串行执行。但可以选用不同个数的时钟周期来完成不同指令的执行过程。
- 流水线方案
指令之间可以并行执行的方案,称为流水线方案。通过在一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤。
- 指令的执行过程和信息流
- 取指周期
(PC) à MAR
1 à R
M(MAR) à IR
OP(IR) à CU
(PC) + 1 à PC
- 间址周期
AD(IR) à MAR
1 à R
M(MAR) à MDR
- 执行周期
- 中断周期
- 数据通路的功能和基本结构
- 数据通路的功能
实现CPU内部的运算器和寄存器,以及寄存器之间的数据交换。
- 数据通路的基本结构
- 内部总线方式
- 专用数据通路方式
- 常见数据通路的数据传送
- 寄存器之间的数据传送
PC à Bus
Bus à MAR
- 主存与CPU之间的数据传送
PC à Bus à MAR
1 à R
MEM(MAR) à MDR
MDR à Bus à IR
- 执行算术或逻辑运算
Ad(IR) à Bus à MAR
1 à R
MEM à 数据线 à MDR
MDR à Bus à Y
(ACC) + (y) à Z
Z à ACC
- 控制器的功能和工作原理
- 控制单元的功能
- 微指令命令的分析
- 执行周期
- 加法指令
Ad(IR) à MAR
I à R
M(MAR) à MDR
(ACC) + (MDR) à ACC
- 存数指令
Ad(IR) à MAR
1 à W
(ACC) à MDR
(MDR) à M(MAR)
- 中断周期
0 à MAR
1 à W
(PC) à MDR
(MDR) à M(MAR)
向量地址 à PC
0 à EINT
- 控制单元的功能
- 指令寄存器。将指令的操作码送入CU进行译码。
- 标志。
- 时钟。
- 来自系统控制总线的控制信号。中断请求、DMA请求等信号的输入。
- 多级时序系统
- 控制方式
- 同步控制方式:任何一条指令或指令中任何一个未操作的执行,都由实现确定且有统一基准时标的时序信号所控制的方式叫做同步控制方式。
- 采用完全统一节拍的机器周期。
- 采用不同节拍的机器周期。
- 采用中央控制和局部控制相结合的方法。
- 异步控制方式:不存在基准时标信号,没有固定的周期节拍和严格的时钟同步,执行命令和每个操作需要多少时间就占用多少时间。由专门的应答线路控制。
- 一般用于主机与I/O设备间的传送控制,使告诉的主机与慢速的I/O设备可以按照各自的需要设置时序系统。
- 联合控制方式
介于同步控制方式和异步控制方式之间的一种折中方案,大部分采用同步控制方式,小部分使用异步控制的方式。
- 控制单元的设计
- 组合逻辑设计
- 硬布线控制器单元
- 硬布线控制器的微操作
- 取指周期的微操作命令
PC à MAR
1 à R
M(MAR) à MDR
MDR à IR
OP(IR) à CU
(PC) + 1 à PC
- 间址周期的微操作命令
AD(IR) à MAR
1 à R
M(MAR) à MDR
- 执行周期的微操作命令
- 非访存指令
CLA 清ACC 0 à ACC
COM 取反
SHR 算术右移
CSL 循环左移
STP 停机指令
- 访存指令
ADD X 加法指令
AD(IR) à MAR
1 àR
M(MAR) à MDR
(ACC) + (MDR) à ACC
STA X 存数指令
AD(IR) à MAR
1 à W
ACC à MDR
MDR à M(MAR)
LDA X 取数指令
AD(IR) à MAR
1 à R
M(MAR) à MDR
MDR à ACC
- 转移指令
JMP X 无条件转移
BAN X 条件转移
- 硬布线控制单元的设计步骤
- 有些微操作的次序是不容改变的,故安排微操作节拍时必须注意为操作的先后顺序。
- 凡是被控制对象不同的微操作,若能在一个节拍内完成,则尽可能安排在同一个节拍内,以节省时间。
- 如果有些微操作所占的时间不长,则应该将他们安排在一个节拍内完成,并且允许这些微操作有先后次序。
- 微程序设计
- 微程序设计的概念
将一条及其指令编写成一个微程序,每一个微程序包含若干个微指令,每一条微指令对应一个或几个微操作命令。然后把这些微程序存到一个控制存储器中,用寻找用户程序的方法来寻找每个微程序中的微指令。所以逐条执行每一条微指令,也就相应的完成了一条机器指令的全部操作。
- 微程序控制的相关概念
- 微命令与微操作
- 微指令与微周期
- 操作控制字段 ,又称微操作码字段,用于产生某一步操作所需的各种操作控制信号。
- 顺序控制字段,又称微地址字段,用于控制产生下一条要执行的微指令地址。
微周期指从控制存储器中读取一条微指令并执行相应的微指令操作所需要的时间。
- 主存储器与控制存储器
主存储器用于存放程序和数据,在CPU外部,用RAM实现;控制存储器(CM,简称控存)用于存放微程序,在CPU内部,用ROM实现。
- 程序与微程序
程序是指令的有序集合,用于完成特定的功能;微程序是指令的有序结合,一条指令的功能由一段微程序来实现。
- 微程序控制单元的基本组成
- 微指令的基本格式
- 微指令的编码方式
- 直接编码方式
- 字段直接编码方式
- 字段间接编码方式
- 混合编码方式
- 微指令序列地址的形成
- 微指令的格式
- 微操作的节拍和安排设计步骤
- 指令流水线
- 指令流水线的基本概念
- 指令流水线的基本实现
- 资源相关
- 数据相关
- RAW
- WAR
- WAW
- 控制相关
- 超标量和动态流水线的基本概念
- 超标量技术
- 超级流水线
- 超长指令字
- 动态流水线
- 中断系统