目录
CPU的功能和基本结构
CPU的功能
运算器和控制器的功能
运算器的基本结构
控制器的基本结构
CPU的结构基本结构
指令执行过程
指令周期
指令周期流程
编辑
指令周期的数据流
取指周期
间址周期
执行周期
中断周期
指令执行方案
方案1.单指令周期
方案2.多指令周期
方案3.流水线方案
数据通路
单总线结构
例题
专用数据通路方式
取指周期
例题
控制器的功能和工作原理
硬布线控制器
硬布线控制器的设计
硬布线控制器特点
微程序控制器的基本原理(重点)
微程序控制器的设计思路
微程序控制器的基本结构(重点)
微程序控制器的工作原理
微指令的格式
微指令的格式
微指令的编码方式(重点)
微指令的地址形成方式
微程序控制单元的设计
设计步骤
微程序设计分类
硬布线和微程序的比较(重点)
指令流水线
指令流水线的基本概念
表示方法
性能指标
流水线的影响因素和分类
机器周期的设置
影响流水线的因素(重点)
流水线的分类
流水线的多发技术
五段式指令流水线(重点)
多处理器的基本概念
SISD、SIMD、MIMD、向量处理器的基本概念
SISD(单指令单数据流)
SIMD(单指令多数据流)
MISD(多指令单数据流)
MIMD(多指令多数据流)
向量处理机(SIMD思想的进阶应用)
硬件多线程的概念
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
根据微操作个数决定采用何种编码方式,以确定微指令的操作控制字段的位数。根据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.多计算机系统
特性:
硬件组成:
特性:
硬件组成: