目录
CPU由运算器和控制器两大部分组成
运算器主要对数据进行加工。
控制器主要是协调并控制计算机各部件执行程序的指令序列,基本功能包括取指令、分析指令、执行指令
寄存器组与ALU的连接方式有两种。
第一种:专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路。
如果直接用导线连接,相当于多个寄存器同时并且一直向ALU传输数据,如何解决?
解决方法1.使用多路选择器根据控制信号选择一路输出
左边的00表示让R0的数据通过作为第一个操作数,右边的01表示让R1的数据通过作为第二个操作数。
解决方法2.使用三态门可以控制每一路是否输出
如:R0out为1时R0中的数据输出到A端,R0out为0时R0中的数据无法输出到B端。
使用专用数据通路方式性能较高,基本不存在数据冲突现象,但结构复杂,硬件量大,不易实现。
第二种:CPU内部单总线方式:将所有的寄存器的输入端和输出端都连接到一条公共的通路上。
通过控制Rin/Rout的信号来控制输入输出信号,比如想要R0的数据复制到R1,就需要将R0out和R1in输入高电平。
这个方式结构简单,容易实现,但数据传输存在较多冲突的现象,性能较低。比如现在进行加法操作,R0的数据和R1的数据都进入到了总线,产生冲突,如何分别哪个是A哪个是B呢。
解决方法:在一端加入暂存寄存器,首先将R0的输出端接通,将R0的数据传输到总线然后存入暂存寄存器中,然后撤销R0输出端信号,使输出失效,然后接通R1的输出端,通过总线运送到B端,进行加法操作。
此外ALU的输出端也需要加上一个暂存寄存器,为了防止由于信号不稳定导致存回数据冲突的错误。
用户可见的寄存器:通用寄存器、程序状态字寄存器PSW、程序计数器PC
用户不可见的寄存器:MAR、MDR、IR、暂存寄存器
指令周期:CPU从主存每取出并执行一条指令所需的全部时间。
指令周期常常用若干机器周期来表示,机器周期又叫CPU周期。
一个机器周期又包含若干时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)。
每个指令周期内机器周期可以不等,每个机器周期内的节拍数也可以不等。
【举例】
如何判断CPU处于哪个阶段周期呢?
可以设置四个触发器,触发器值为1表示处于此阶段
四个工作周期都有CPU的访存操作,只是访存的目的不同。取指周期是为了取指令,间址周期是为了取有效地址,执行周期是为了取操作数,中断周期是为了保存程序断点。
执行周期的任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。
不同指令的执行周期操作不同,因此没有统一的数据流向
中断:暂停当前任务去完成其他任务。
为了恢复当前任务,需要保存断点。一般使用堆栈来保存断点,这里用SP表示栈顶地址,假设SP指向栈顶元素,进栈操作是先修改指针,后存入数据。
一个指令周期通常要包含几个时间段(执行步骤),每个步骤完成指令的一部分功能,几个依次执行的步骤完成这条指令的全部功能。
对所有指令都选用相同的执行时间来完成。
指令之间串行执行;指令周期取决于执行时间最长的指令的执行时间。
对于那些本来可以在更短时间内完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度。
对不同类型的指令选用不同的执行步骤来完成。
指令之间串行执行;可选用不同个数的时钟周期来完成不同指令的执行过程。
需要更复杂的硬件设计。
在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。指令之间并行执行
数据通路:数据在功能部件之间传送的路径。信息从哪里开始中间经过哪些部件最后传到哪里。由控制部件产生的控制信号建立数据通路
数据通路的基本结构:
ALU配合暂存器使用
1.寄存器之间数据传送
比如把PC内容送至MAR,实现传送操作的流程及控制信号为:
(PC)->Bus PCount有效,PC内容送至总线
Bus->MAR MARin有效,总线内容送MAR
2.主存与CPU之间的数据传送
比如CPU从主存读取指令,实现传送操作的流程及控制信号为:
(PC)->Bus->MAR PCount和MARin有效,现行指令地址->MAR
1->R CU发读命令(通过控制总线发出,图中未画出)
MEM(MAR)->MDR MDRin有效
MDR->Bus->IR MDRout和IRin有效,现行指令->IR
3.执行算术或逻辑运算
比如一条加法指令,微操作序列及控制信号为:
Ad(IR)->Bus->MAR MMDRout和MARin有效
1->R CU发读命令
MEM(MAR)>数据线MDR MDRin有效
MDR->Bus>Y MDRout和Yin有效,操作数>Y
(ACC)+(Y)->Z ACCout和ALUin有效,CU向ALU发送加命令
Z->ACC Zout和ACCin有效,结果>ACC
设有如图所示的单总线结构,分析指令ADD (R0),R1 的指流程和控制信号
目的操作数(R0)带括号说明操作数存放在R0内容所指向的主存单元中,需要一次访存。源操作数R1不带括号说明操作数就是R1寄存器里的数据。
1.分析指令功能和指令周期功能:
((R0))+(R1)-(R0)
取指周期、间址周期、执行周期
2.写出各阶段的指流程
取指周期:公共操作
间址周期:完成取数操作,被加数在主存中,加数已经放在寄存器R1中。
执行周期:完成取数操作,被加数在主存中,加数已经放在寄存器R1中。
(PC)->MAR C0有效
(MAR)>主存 C1有效
1->R 控制单元向主存发送读命令
M(MAR)->MDR C2有效
(MDR)->IR C3有效
(PC)+1>PC
Op(IR)->CU C4有效
CU发出一个微命令,可完成对应微操作。如:微命令1使得PCout、MARin有效。完成对应的微操作1(PC)->MAR
分析每个阶段的微操作序列
安排微操作时序
安排微操作时序-取指周期
假设采用同步控制方式(定长机器周期),一个机器周期内安排3个节拍
M(MAR)->MDR 从主存取数据,用时较长,因此必须一个时钟周期才能保证微操作的完成。
MDR->IR 是CPU内部寄存器的数据传送,速度很快,因此在一个时钟周期内可以紧接着完成OP(IR)->ID。也就是一次同时发出两个微操作
安排微操作时序-间址周期
安排微操作时序-执行周期
电路设计
组合逻辑设计
设计步骤:
列出操作时间表
微操作信号综合
通过微操作信号综合可以得出M(MAR)->MDR微操作命令的逻辑表达式:
画出电路图
根据所得的逻辑表达式就可以设计出对应的电路图
程序:由指令序列组成
微程序:由微指令序列组成,每一种指令对应一个微程序
指令是对程序执行步骤的描述、微指令是对指令执行步骤的描述
指令是对微指令功能的“封装”
微命令(完成操作需要发出的信号)与微操作(做什么)一一对应
微指令中可能包含多个微命令
指令周期:从主存取出并执行一条机器指令所需的时间。
微周期(微指令周期):从控制存储器取出一条微指令并执行相应微操作所需的时间。
采用“存储程序”的思想,CPU出厂前将所有的指令的“微程序”存入“控制器存储器”中。
控制存储器CM:用于存放各指令对应的微程序,控制器存储器可用只读存储器ROM构成。
微程序地址寄存器CMAR:用来接收微地址形成部件送来的微地址,为在CM中读取微指令作准备。
地址译码:将地址码转化为存储单元控制信号。
CMDR:用于存放从CM中取出的微指令,它的位数同微指令字长相等。
微程序形成部件:产生初始微地址和后继微地址,以保证微指令的连续执行。
指令的取值周期、间址周期、中断周期相同,所以取值周期、间址周期、中断周期的微程序一般只需要存储一份即可。
标志:根据指令地址码的寻址特征位来判断是否要跳过间址周期
CLK:根据中断信号判断是否进入中断周期
相容性微指令:可以并行完成的微命令、互斥性微命令:不允许并行完成的微命令。
1.水平型微指令 一条微指令能定义多个可并行的微命令。
基本格式
优点:微程序短,执行速度快;
缺点:微指令长,编写微程序较麻烦。
2.垂直型微指令 一条微指令只能定义一个微命令,由微操作码字段规定具体功能
基本格式
优点:微指令短、简单、规整,便于编写微程序;
缺点:微程序长,执行速度慢,工作效率低。
3.混合型微指令 在垂直型的基础上增加一些不太复杂的并行操作。
微指令较短,仍便于编写;微程序也不长,执行速度加快。
微指令的编码方式又称为微指令的控制方式,它是指如何对微指令的控制字段进行编码,以形成控制信号。编码的目标是在保证速度的情况下,尽量缩短微指令字长。
(1).直接编码(直接控制)方式
在微指令的操作控制字段中,每一位代表一个微操作命令,某位为”1“表示该控制信号有效
优点:简单、直观,执行速度快,操作并行性好。
缺点:微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控存容量极大。
(2)字段直接编码方式(重点)
将微指令的控制字段分成若干个”段“,每段经译码后发出控制信号。
微命令字段分段的原则:
优点:可以缩短微指令字长。
缺点:要通过译码电路后再发出微命令,因此比直接编码方式慢。
(3)字段间接编码方式(了解)
一个字段的某些微命令需由另一个字段中的某些微命令来解释,由于不是靠字段直接译码发出的微命令,故称为字段间接编码,又称隐式编码。
优点:可进一步缩短微指令字长。
缺点;削弱了微指令的并行控制能力,故通常作为字段直接编码方式的一种辅助手段。
1.微指令的下地址字段指出
微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称为断定方式。
2.根据机器指令的操作码形成
当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成。
3.增量计数器法
(CMAR)+1-->CMAR
4.分支转移
转移方式:指明判别条件;转移地址:指明转移成功后的去向。
5.通过测试网络
6.由硬件产生微程序入口地址
第一条微指令地址 由专门硬件产生(用专门的硬件记录取值周期微程序首地址)
中断周期 由硬件产生中断周期微程序首地址(用专门的硬件记录)
1.分析每个阶段的微操作序列
2.写出对应机器指令的微操作命令及节拍安排
(1)写出每个周期所需要的微操作(参照硬布线)
(2)补充微程序控制器特有的微操作:a.取指周期:Ad(CMDR)>CMAR OP(IR)>微地址形成部件 >CMAR b.执行周期:Ad(CMDR)>CMAR
3.确定微指令格式
根据微操作个数决定采用何种编码方式,以确定微指令的操作控制字段的位数。根据CM中存储的微指令总数,确定微指令的顺序控制字段的位数。最后按操作控制字段位数和顺序控制字段位数就可确定微指令字长
4.编写微指令码点
根据操作控制字段每一位代表的微操作命令,编写每一条微指令的码点。
1.静态微程序设计和动态微程序设计
静态 微程序无需改变,采用ROM
动态 通过改变微指令和微程序改变机器指令,有利于仿真,采用EPROM
2.毫微程序设计
毫微程序设计的基本概念
微程序设计 用 微程序解释机器指令
毫微程序设计 用毫微程序解释微程序
指令执行过程划分为不同的阶段,占用不同的资源,就能使多条指令同时执行。
指令流程图:主要用于分析影响流水线的因素。
时空图:主要用于分析流水线的性能。
吞吐率TP
加速比S
效率E
一个五段式流水线通路如图
1.结构相关(资源冲突)
由于多条指令在同一时刻争用同一资源而形成的冲突称为结构相关。
解决办法:
2.数据相关(数据冲突)(重点)
数据相关指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令即为数据相关。
解决办法:
3.控制相关(控制冲突)
当流水线遇到转移指令和其他改变PC值的指令而造成断流时,会引起控制相关。
解决办法:
1.部件功能级、处理机级和处理机间流水线
2.单功能流水线和多功能流水线
3.动态流水线和静态流水线
4.线性流水线和非线性流水线
1.超标量技术
每个时钟周期内可并发多条独立指令
要配置多个功能部件
不能调整指令的执行顺序
通过编译优化技术,把可并行执行的指令搭配起来
2.超流水技术
在一个时钟周期内再分段(3段)
在一个时钟周期内一个功能部件使用多次(3次)
不能调整指令的执行顺序
靠编译程序解决优化问题
3.超长指令字
由编译程序挖掘出指令间潜在的并行性,
将多条能并行操作的指令组合成一条
具有多个操作码字段的超长指令字(可达几百位)
考试中常见的五类指令:
运算类指令的执行过程
LOAD指令的执行过程
STORE指令的执行过程
条件转移指令的执行过程
无条件转移指令的执行过程
例题
特性:
硬件组成:
特性:
硬件组成:
多条指令并行执行,处理同一个数据。现实中不存在这种计算机
特性:
分类:
1.多处理器系统
特性:
硬件组成:
2.多计算机系统
特性:
硬件组成:
特性:
硬件组成: