目录
CPU的功能和基本结构
组成
- 控制器:对数据进行加工
- 运算器:协调并控制计算机各部件执行程序的指令序列,基本功能包括取指令、分析指令、执行指令,中断处理。
- 取指令:自动形成指令地址;自动发出取指令的命令。
- 分析指令:操作码译码(分析本条指令要完成什么操作);产生操作数的有效地址。
- 执行指令:根据分析指令得到的“操作命令”和“操作数地址”,形成操作信号控制序列,控制运算器、存储器以及I/O设备完成相应的操作。
- 中断处理:管理总线及输入输出;处理异常情况(如掉电)和特殊请求(如打印机请求打印一行字符)。
功能
- 指令控制:完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
- 操作控制:一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
- 时间控制:对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
- 数据加工:对数据进行算术和逻辑运算。
- 中断处理:对计算机运行过程中出现的异常情况和特殊请求进行处理。
运算器的基本结构
- 算术逻辑单元:主要功能是进行算术/逻辑运算。
- 通用寄存器组:如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP是堆栈指针,用于指示栈顶的地址。AX、BX、CX、DX通常被称为R0,R1…
专用数据通路方式
根据指令执行过程中的数据和地址的流动方向安排连接线路。
特点:性能较高,基本不存在数据冲突现象,但结构复杂,硬件量大,不易实现。
下图为逻辑图,mux为多路选择器,也可换为三态门
CPU内部单总线方式
将所有寄存器的输入端和输出端都连接到一条公共的通路上。
结构简单,容易实现,但数据传输存在较多冲突的现象,性能较低。
1.暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有内容。
如:两个操作数分别来自主存和R0,最后结果存回R0,那么从主存中取来的操作数直接放入暂存器,就不会破坏运算前R0的内容。
2.累加寄存器:它是一个通用寄存器,用于暂时存放ALU运算的结果信息,用于实现加法运算。
3.程序状态字寄存器:保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、位标志(CF)等。PSW中的这些位参与并决定微操作的形成。
4.移位器:对运算结果进行移位运算。
5.计数器:控制乘除运算的操作步数。
移位寄存器的位置有时也放暂存寄存器,累加寄存器。
绿色数据线是从总线传输到寄存器用
蓝色数据线是从寄存器传输到总线
in信号:控制寄存器的输入。
out信号:控制寄存器数据的输出
控制器的基本结构
- 程序计数器(PC):用于指出下一条指令在主存中的存放地址。CPU就是根据PC的内容去主存中取指令的。因程序中指令(通常)是顺序执行的,所以PC有自增功能。
- 指令寄存器(IR):用于保存当前正在执行的那条指令。
- 指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号。
- 微操作信号发生器:根据IR的内容(指令)、Psw的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种。
- 时序系统:用于产生各种时序信号,它们都是由统一时钟(CLOCK)分频得到。
- 存储器地址寄存器:用于存放所要访问的主存单元的地址。
- 存储器数据寄存器:用于存放向主存写入的信息或从主存中读出的信息。
CPU结构图
用户可见寄存器:可以通过指令对这些寄存器进行编程。
用户不可见寄存器:硬件之间交流会自动控制的寄存器。
指令执行过程
指令周期
指令周期:CPU从主存中每取出并执行一条指令所需的全部时间。
三种周期之间的关系
指令周期常常用若干机器周期来表示,机器周期又叫CPU周期。
一个机器周期又包含若干时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)。
每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。
指令周期流程图
取指周期
1.当前指令地址送至存储器地址寄存器,记做:(PC)→ MAR
2.CU发出控制信号,经控制总线传到主存,这里是读信号,记做:1→>R
3.将MAR所指主存中的内容经数据总线送入MDR,记做: M(MAR)→>MDR
4.将MDR中的内容(此时是指令)送入IR,记做:(MDR)→IR
5.CU发出控制信号,形成下一条指令地址,记做:(PC)+1 >PC
间指周期
1.将指令的地址码送入MAR,记做:Ad(IR)→ MAR或Ad(MDR)→ MAR
2.CU发出控制信号,启动主存做读操作,记做:1→R
3.将MAR所指主存中的内容经数据总线送入MDR,记做: M(MAR)→>MDR
4.将有效地址送至指令的地址码字段,记做:MDR→Ad(IR)
中断周期
1.CU控制将SP减1,修改后的地址送入MAR记做:(SP)-1 →SP,(SP)→> MAR
本质上是将断点存入某个存储单元,假设其地址为a,故可记做: a →MAR
2.cU发出控制信号,启动主存做写操作,记做:1→w
3.将断点(PC内容)送入MDR,记做:(PC)→ MDR
4.CU控制将中断服务程序的入口地址(由向量地址形成部件产生)送入PC,记做:向量地址→PC
指令执行方案
一个指今周期通常要包括几个时间段(执行步骤),每个步骤完成指令的一部分功能,几个依次执行的步骤完成这条指令的全部功能。
方案1.单指令周期
对所有指令都选用相同的执行时间来完成。
指令之间串行执行;指令周期取决于执行时间最长的指令的执行时间。
对于那些本来可以在更短时间内完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度。
方案2.多指令周期
对不同类型的指令选用不同的执行步骤来完成。指令之间串行执行;可选用不同个数的时钟周期来完成不同指令的执行过程。
需要更复杂的硬件设计。
方案3.流水线方案
在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。指令之间并行执行。
数据通路的功能和基本结构
两种总线
内部总线是指同一部件,如CPU内部连接各寄存器及运算部件之间的总线;
系统总线是指同一台计算机系统的各部件,如CPU、内存、通道和各类l/o接口间互相连接的总线。
采用CPU内部总线的数据通路的特点:结构简单,容易实现,性能较低,存在较多的冲突现象。
单总线方式
专用数据通路方式
取指周期
(PC)-→MAR co有效
(MAR)→主存 c1有效
1→>R 控制单元向主存发送读命令
M(MAR)>MDR c2有效
(MDR)→>IR c3有效
(PC)+1>PC
Op(IR)→CU c4有效
控制器的功能和工作原理
控制器是计算机系统的指挥中心,控制器的主要功能有:
1)从主存中取出一条指令,并指出下一条指令在主存中的位置。
2)对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。
3)指挥并控制CPU、主存、输入和输出设备之间的数据流动方向
控制单元的输入输出
输入
- 指令寄存器OP(IR)->CU控制信号的产生与操作码有关
- 时钟:一个时钟脉冲发一个操作命令或一组需要同时执行的操作命令
- 标志:如条件转移指令,根据相应的标志位决定下一步操作
- 外来信号:如,中断请求信号INTR,总线请求信号HRQ
输出
- CPU内部的控制信号
寄存器之间的数据传输、PC的修改、控制ALU进行相应的运算 - 到控制总线的控制信号
到存储器:访存控制信号MREQ、读命令RD、写命令WR到/o设备:访问/o设备的控制信号Io
中断响应信号INTA、总线响应信号HLDA
CPU的控制方式
CPU的控制方式:产生不同微操作命令序列所用的时序控制方式。
-
同步控制方式
整个系统所有的控制信号均来自一个统一的时钟信号。
通常以最长的微操作序列和最烦琐的微操作作为标准,采取完全统一的、具有相问时间间隔和相同数目的节拍作为机器周期来运行不同的指令。
同步控制方式的优点是控制电路简单
缺点是运行速度慢。 -
异步控制方式
异步控制方式不存在基准时标信号。
各部件按自身固有的速度工作,通过应答方式进行联络。
异步控制方式的优点是运行速度快
缺点是控制电路比较复杂。 -
联合控制方式
对各种不同的指令的微操作实行大部分采用同步控制、小部分采用异步控制的办法。
安排微操作时序的原则
原则一微操作的先后顺序不得随意更改
原则二被控对象不同的微操作
尽量安排在一个节拍内完成
原则三占用时间较短的微操作
尽量安排在一个节拍内完成并允许有先后顺序
微指令
程序和微程序
程序是指令的有序集合,用于完成特定的功能;
微程序是微指令的有序集合,一条指令的功能由一段微程序来实现。
微程序工作原理:事先把微操作控制信号存储在一个专门的存储器(控制存储器)中,将每一条机器指令编写成一个微程序,这些微程序可以存到一个控制存储器中,用寻址用户程序机器指令的办法来寻址每个微程序中的微指令。
微操作是微指令的执行过程。
微命令是微操作的控制信号。
相容性微命令:可以同时产生、共同完成某一些微操作的微命令。
互斥性微命令:在机器中不允许同时出现的微命令。
一条机械指令即为一个微程序。
每条指令取指周期的操作是相同的,所以将取指令操作的微命令统一编成一个微程序,而每条机器指令所对应的具体操作再单独编写一个对应的微程序。
主存储器与控制存储器
主存储器用于存放程序和数据,在CPU外部,用RAM实现;
控制存储器(CM)用于存放微程序,在CPU内部,用ROM实现。
微指令格式
1.水平型微指令一次能定义并执行多个并行操作。
优点:微程序短,执行速度快;
缺点:微指令长,编写微程序较麻烦。
2.垂直型微指令类似机器指令操作码的方式,由微操作码字段规定微指令的功能。
优点:微指令短、简单、规整,便于编写微程序;
缺点:微程序长,执行速度慢,工作效率低。
3.混合型微指令在垂直型的基础上增加一些不太复杂的并行操作。
微指令较短,仍便于编写;微程序也不长,执行速度加快。
微指令的编码方式
微指令的编码方式又称为微指令的控制方式,它是指如何对微指令的控制字段进行编码,以形成控制信号。编码的目标是在保证速度的情况下,尽量缩短微指令字长。
(1)直接编码(直接控制)方式
在微指令的操作控制字段中,每一位代表一个微操作命令某位为“1”表示该控制信号有效
优点:简单、直观,执行速度快,操作并行性好。
缺点:微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控存容量极大。
(2)字段直接编码方式
将微指令的控制字段分成若干“段”,每段经译码后发出控制信号
微命令字段分段的原则:
1.互斥性微命令分在同一段内,相容性微命令分在不同段内。
2.每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。
3.一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此,当某字段的长度为3位时,最多只能表示7个互斥的微命令,通常用000表示不操作。
优点:可以缩短微指令字长。
缺点:要通过译码电路后再发出微命令,因此比直接编码方式慢。
(3)字段间接编码方式
一个字段的某些微命令需由另一个字段中的某些微命令来解释,由于不是靠字段直接译码发出的微命令,故称为字段间接编码,又称隐式编码。
优点:可进一步缩短微指令字长。
缺点:削弱了微指令的并行控制能力,故通常作为字段直接编码方式的一种辅助手段。
微指令的地址形成方式
1.微指令的下地址字段指出―微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称为断定方式。
2.根据机器指令的操作码形成当机器指令取至指令寄存器后微地址形成部件形成。
3.增量计数器法(CMAR)+1—→>CMAR
4.分支转移﹐转移方式:指明判别条件;转移地址:指明转移成功后的去向。
5.通过测试网络
6.由硬件产生微程序入口地址
第一条微指令地址由专门硬件产生
中断周期由硬件产生中断周期微程序首地址
微程序控制单元设计
设计步骤;
1.分析每个阶段的微操作序列
2.写出对应机器指令的微操作命令及节拍安排
3.确定微指令格式
根据微操作个数决定采用何种编码方式,以确定微指令的操作控制字段的位数。由微指令数确定微指令的顺序控制字段的位数。
最后按操作控制字段位数和顺序控制字段位数就可确定微指令字长。
4.编写微指令码点
根据操作控制字段每一位代表的微操作命令,编写每一条微指令的码点。
硬布线和微程序的比较
流水线
-
吞吐率:指在单位时间内流水线所完成的任务数量,或是输出结果的数量
设任务数为n;处理完成n个任务所用的时间为T
则计算流水线吞吐率(TP)的最基本的公式为TP=n/T -
加速比:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比。设T表示不使用流水线时的执行时间,即顺序执行所用的时间T表示使用流水线时的执行时间
则计算流水线加速比(S)的基本公式为S = T/k
当连续输入的任务n→oo时,最大加速比为Smax一k。 -
效率
流水线的设备利用率称为流水线的效率。
在时空图上,流水线的效率定义为完成n个任务占用的时空区有效面积与n个任务所用的时间与k个流水段所围成的时空区总面积之比。