导图社区 计算机组成 第五章-中央处理器
计算机组成 第五章-中央处理器学习笔记,包括CPU的功能和基本结构、指令执行过程、数据通路的功能和基本结构、多处理器的基本概念等等。
编辑于2022-11-23 21:11:22 上海中央处理器
 
CPU的功能和基本结构
CPU的功能
1)指令控制
完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
2)操作控制
一条指令的功能往往由若干操作信号的组合来实现。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
3)时间控制
对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
4)数据加工
对数据进行算术和逻辑运算。
5)中断处理
对计算机运行过程中出现的异常情况和特殊请求进行处理。
CPU的基本结构
运算器
定义
运算器使计算机对数据进行加工处理的中心
组成
1)算术逻辑单元ALU。主要功能是进行算术/逻辑运算。
2)暂存寄存器。用于暂存从主存读来的数据,该数据不能存放在通用寄存器中,否则会破坏其原有内容。暂存寄存器对应用程序员是透明的。

3)累加寄存器ACC。它是一个通用寄存器,用于暂时存放ALU运算的结果信息,可以作为加法运算的一个输入端。
4)通用寄存器组。如AX、BX、CX、DX、SP等,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。SP是堆栈指针,用于指示栈顶的地址。
5)程序状态字寄存器PSW。保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OF)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成,且对用户不透明(即可见)
6)移位器。对操作数或运算结果进行移位运算
7)计数器CT。控制乘除运算的操作步数。
控制器
定义
控制器是整个系统的指挥中枢,其基本功能是执行指令
分类
硬布线控制器
微程序控制器
工作原理
根据指令操作码、指令的执行步骤(微命令序列)和条件信号来形成当前计算机各部件要用到的控制信号。计算机整机各硬件系统在这些控制信号的控制下协同运行,产生预期的执行结果。
组成
1)程序计数器PC。用于指出下一条指令在主存中的存放地址。CPU根据PC的内容去主存中取指令。因程序中指令(通常)是顺序执行的,所以PC有自增功能。
PC的值会根据CPU在执行指令的过程中修改(取指周期末)或自增,或转移到程序的某处
对于无条件转移指令,PC值会在取指周期末自增1;在执行周期中再修改为跳转地址,共修改2次
2)指令寄存器IR。用于保存当前正在执行的那条指令。
 答:D 指令寄存器IR的位数与指令字长一致,即32位 指令按字边界对齐存放,即一个字(32位=4B)中最多仅保存一条指令,故指令的寻址空间为4GB/4B=2^30
3)指令译码器。仅对操作码字段进行译码,向控制器提供特定的操作信号。
地址译码器是主存的组成部分,其作用是根据输入的地址码唯一选定一个存储单元
4)存储器地址寄存器MAR。用于存放要访问的主存单元的地址。
5)存储器数据寄存器MDR。用于存放向主存写入的信息或从主存读出的信息。
6)时序系统。用于产生各种时序信号,它们都由统一时钟(CLOCK)分频得到。
7)微操作信号发生器。根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种。
指令执行过程
指令周期
定义
CPU从主存中取出并执行一条指令的时间称为指令周期,包含若干机器周期,而机器周期又包含若干时钟周期(也称节拍或T周期,是CPU操作的最基本单位)
通常把通过一次总线事务访问一次主存(即一个访存周期)或I/O的时间定位一个机器周期
组成
取指周期
访存,取指令,标志触发器为FE,以“1”状态表示有效
间址周期
取有效地址,如间接寻址的两次访存,标志触发器为IND
执行周期
访存取操作数,执行指令,标志触发器为EX
中断周期

CPU在每条指令执行结束时发出中断查询信号,若有终端请求,则进入中断响应阶段;该周期的标志触发器为INT
指令周期的数据流
定义
数据流是根据指令要求依次访问的数据序列,不同的指令在不同的执行阶段有不同的数据流
取指周期
任务
根据PC值从主存中取出指令代码并存放在IR中
数据流向
1)PC→①CMAR地址总线→③主存。
2)CU(控制单元)发出读命令→④控制总线→⑤主存。
3)主存→⑥数据总线→⑦MDR→⑧IR(存放指令)。
4)CU发出控制信号→⑨PC内容加1。
间址周期
任务
取操作数有效地址
数据流向(以一次间址为例)
1)Ad(IR)(或MDR)→①MAR②地址总线→③主存。
2)CU发出读命令→④控制总线→⑤主存。
3)主存→⑥数据总线→⑦MDR(存放有效地址)。
执行周期
执行周期的任务是取操作数,并根据IR中的指令字的操作码通过ALU操作产生执行结果。不同指令的执行周期操作不同,因此没有统一的数据流向。
中断周期
任务
处理中断请求
数据流向
1)CU控制将SP减1,SP→①MAR→②地址总线→③主存。
2)CU发出写命令→④控制总线→⑤主存。
3)PC→⑥MDR→⑦数据总线→⑧主存(程序断点存入主存)。
4)CU(中断服务程序的入口地址)→⑨PC。
指令执行方案
单指令周期
基本思想
每条指令都在固定的时钟周期内完成,指令之间串行执行
特点
指令周期取决于执行时间最长的指令的执行时间,会降低系统的整体运行速度
多指令周期
基本思想
为指令分配若干条时钟周期,不同指令的周期数可以不同,指令间串行执行
流水线方案
基本思想
指令可以并行执行,但各自处在不同的执行步骤中
数据通路的功能和基本结构
数据通路的功能
定义
数据在功能部件之间传送的路径称为数据通路,包括数据通路上流经的部件,如ALU、通用寄存器、异常和中断处理逻辑等
功能
实现CPU内部的运算器与寄存器及寄存器之间的数据交换
数据通路的基本结构
结构分类
CPU内部单总线方式

基本思想
将所有寄存器的输入端和输出端都连接到一条公共通路上
特点
结构简单,但数据传输存在较多的冲突现象,且一个时钟内只允许传一个数据,性能较低,指令执行效率很低
CPU内部三总线方式
基本思想
将所有寄存器的输入端和输出端都连接到多条公共通路上
专用数据通路方式
基本思想
根据指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线,性能较高,但硬件量大

数据传送
寄存器之间的数据传送
例. PC内容传入MAR
主存与CPU之间的数据传送
例. CPU从主存读取指令
执行算术或逻辑运算
执行算术或逻辑操作时,由于 ALU本身是没有内部存储功能的组合电路,因此如要执行加法运算,相加的两个数必须在ALU的两个输入端同时有效。图5.7中的暂存器Y即用于该目的。先将一个操作数经CPU内部总线送入暂存器Y保存,Y的内容在 ALU的左输入端始终有效,再将另一个操作数经总线直接送到ALU的右输入端。这样两个操作数都送入了ALU,运算结果暂存在暂存器Z中。
多处理器的基本概念
分类
单指令流单数据流(SISD)结构
常规的传统串行计算机结果,通常仅包含一个处理器和一个存储器,按指令流规定的串行结构执行指令
为提高速度,部分SISD计算机采用流水线,或设置多个功能部件,并且采用多模块交叉方式组织存储器
单指令流多数据流(SIMD)结构
一个指令流同时处理多个数据流(数据级并行技术),通常由一个指令控制部件、多个处理单元组成,每个单元有单独的数据地址
在for循环处理数组时最有效;在case或switch语句时效率最低,因为每个执行单元需根据不同数据执行不同操作
变体:向量处理器
实现了直接操作一维数组(向量)指令集的CPU
多指令流单数据流(MISD)
同时执行多条指令,处理同一个数据;实际并不存在
多指令流多数据流(MIMD)
多计算机系统(消息传递MIMD)
每个计算机节点有各自的私有存储器和独立的主存地址空间,不能通过存取指令来访问其他私有存储器,而需通过消息传递进行数据传送
多处理机系统(共享存储MIMD)
全称共享存储多处理器(SMP)系统,具有共享的单一地址空间,通过存取指令来访问系统中所有存储器
硬件多线程的基本概念
定义
在CPU中为每个线程提供单独的通用寄存器组和程序计数器,线程切换只需激活选中的寄存器,省略了与存储器数据交换的环节,大大减少了线程切换的开销
实现方式
细粒度多线程
多个线程间轮流交叉执行指令,线程的指令互不相关,可以乱序并行执行
在每个时钟周期都可以切换线程
粗粒度多线程
仅在一个线程出现了较大开销的阻塞时才切换线程(如Cache缺失)
线程切换的开销>细粒度多线程
同时多线程(SMT)
同时实现指令级和线程级的并行,即在同一个时钟周期中发射多个不同线程中的多条指令执行
超线程就是同时多线程SMT,即在一个单处理器或单核中设置了两套线程状态部件,共享高速缓存核功能部件
多核处理器的基本概念
将多个处理单元(核)集成到单个CPU中,所有核一般都是对称且共享主存的,Cache可以是独立或共享的
共享内存多处理器(SMP)的基本概念
定义
具有共享的单一物理地址的多处理器被称为共享内存多处理器(SMP)
处理器提供存储器中的共享变量互相通信,所有处理器都能通过存取指令访问任何存储器的位置
分类

统一存储访问(UMA)多处理器
访问时间与哪个处理器及哪个字无关
分类(根据处理器与共享存储器之间的连接方式)
基于总线
基于交叉开关网络
基于多级交换网络连接
非统一存储访问(NUMA)多处理器
分类
NC-NUMA:处理器中不带高速缓存
CC-NUMA:处理器中带有一致性高速缓存
指令流流水线
指令流水线的基本概念
提高处理机并行性的方法
时间上的并行技术
流水线技术
空间上的并行技术
超标量处理机:在一个处理机内设置多个执行相同任务的功能部件,让其并行工作
定义
将指令的执行过程分为若干流水段,每个阶段在不同功能部件上并行执行
1)取指(IF):从指令存储器或Cache 中取指令。
2)译码/读寄存器(ID):操作控制器对指令进行译码,同时从寄存器堆中取操作数。
3)执行/计算地址(EX):执行运算操作或计算地址。
4)访存(MEM):对存储器进行读写操作。
5)写回(WB):将指令执行结果写回寄存器堆。
设计原则
①指令流水段的个数以最复杂指令所用的功能段个数为准
②流水段的长度以最复杂的操作所花的时间为准(包括流水段寄存器延时)
流水线方式不能缩短单条指令的执行时间,但能优化整个程序的执行效率
指令集特征
1)指令长度应尽量一致,以便简化取指和译码操作
2)指令格式尽量规整,源寄存器位置尽量相同
3)仅有Load/Store指令可以访存
4)数据和指令在存储器中“对齐”存放
表示方法
时空图
流水线的基本实现
流水线的数据通路
IF段
程序计数器(PC)
指令存储器
下条指令地址的计算逻辑
ID段
操作控制器
取操作数逻辑
立即数符号扩展模块
EX段
算术逻辑单元(ALU)
分支地址计算模块
MEM段
数据存储器读写模块
WB段
寄存器写入控制模块
流水寄存器
锁存本段处理完成的数据和控制信号,供下个时钟周期给下个流水段使用
统一时钟CLK
流水线的控制信号
流水线的执行过程
取指(IF)
将PC值作为地址从指令寄存器中取出第一条指令字,并计算PC+4,送入PC输入端
将指令字,PC+4,以及一切后续可能使用的数据和控制信号送入IF/ID流水寄存器中
译码/读寄存器(ID)
根据指令字生成后续各段需要的控制信号
对于lw访存指令,根据指令字中的rs、rt取出寄存器堆中的值RS和RT
符号扩展单元将指令字中的16位立即数符号扩展为32位
多路选择器根据指令字生成指令可能的写寄存器编号WriteReg#
执行/计算地址(EX)
访存(MEM)
写回(WB)
流水线的冒险与处理

定义
在指令流水线中,可能会遇到一些情况使得流水线无法正确执行后续指令而引起流水线阻塞或停顿,称为流水线冒险
结构冒险
定义
由于多条指令在同一时刻争用同一资源而引起的冲突,也称为资源冲突,即由硬件资源竞争造成的冲突
解决方案
1)前一指令访存时,使后一条相关指令(以及其后续指令)暂停一个时钟周期
2)单独设置数据存储器和指令存储器,使取数和取指令操作各自在不同的存储器中进行
事实上,现代计算机都引入了Cache机制,而L1 Cache通常采用数据Cache和指令Cache分离的方式,因而也就避免了资源冲突的发生。
数据冒险
定义
在一个程序中,下一条指令会用到当前指令的计算结果,导致数据冲突
分类
写后读(RAW)相关:表示当前指令将数据写入寄存器后,下一条指令才能从中读取数据
指令按序流动时,只可能出现该冲突(因为WB写回在最后一个周期)
读后写(WAR)相关:表示当前指令读出数据后,下一条指令才能写该寄存器
写后写(WAW)相关:表示当前指令写入寄存器后,下一条指令才能写该寄存器
解决方案
暂停执行,包括硬件阻塞(stall)和软件插入“NOP”指令两种方法
数据旁路技术:设置相关专用通路,将前一条指令的计算结果直接传送给下条指令
指令编译优化,调整指令顺序解决数据相关
控制冒险
定义
流水线遇到分支指令和其他会改变PC值的指令所引起的冲突
解决方案
1)对转移指令进行分支预测,尽早生成转移目标地址
简单(静态)预测:总是预测条件不满足,即执行后继指令
动态预测:根据程序执行的历史情况进行动态预测调整
2)预取转移成功和不成功两个控制流方向上的目标指令
3)加快和提前形成条件码
4)提高转移方向的猜准率
流水线的性能指标
吞吐率
定义
单位时间内流水线所完成的任务数量
公式
一条k段流水线在k+n-1个时钟周期内完成n个任务
加速比
定义
完成同一批任务,不使用流水线与使用流水线所用时间之比
公式
效率
任务所占面积/总面积
高级流水线技术
增加指令并行的策略
1)多发射技术
通过采用多个内部功能部件,使流水线功能段能同时处理多条指令,处理机一次可以发射多条指令进入流水线执行(可使得CPI<1,但成本更高更复杂)
超标量流水线技术
也称动态多发射技术,配置多个功能部件每个时钟周期内可并行多条独立指令
超长指令字技术
也称静态多发射技术,由编译程序挖掘指令间潜在的并行性,将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字,也需多个处理部件
2)超流水线技术
通过增加流水线级数来使更多的指令同时在流水线中重叠执行
超流水线技术
通过提高流水线主频的方式来提升流水线性能(流水线级数越多,吞吐率越高,但开销也越大)
异常和中断机制
异常和中断的基本概念

异常(内中断)
由CPU内部产生的意外事件
CPU执行指令时,由CPU在其内部检测到的、与正在执行的指令相关的同步事件
中断(外中断)
来自CPU外部的设备向CPU发出的中断请求(硬件中断)
由外部设备触发的、与当前执行指令无关的异步事件
CPU每执行完一条指令就检查中断请求信号线,若检测到中断请求,则进入中断响应周期
中断不阻止指令的完成
异常和中断的分类
异常的分类
硬故障中断
由硬连线出现异常引起的,如存储器校验错、总线错误等,终止程序卖掉出中断服务程序来重启系统
不由特定指令产生,而是随即发生的硬件故障
程序性异常(软件中断)
在CPU内部因执行指令而引起的异常事件,如整除0、溢出、断点、单步跟踪、非法指令、栈溢出、地址越界、缺页等
分类(按发生原因和返回方式不同)
故障(Fault)
定义
在引起故障的指令启动后,执行结束前被检测到的异常事件
举例
指令译码时的“非法操作码
取数据时的”缺页“”缺段“
除数为0
返回方式
对于”缺页“异常,在调度页面进入主存后,回到发生故障的指令继续执行,断点为当前发生故障的指令
对于”非法操作码“或”除0“异常,无法通过异常处理程序恢复故障,无法回到断点,故终止进程
中断处理后,可能恢复断点处进程,也可能跳到下一进程
自陷(Trap)
定义
预先安排的特殊指令,执行时CPU会根据”陷阱类型“进行相应处理,结束后返回自陷指令的下一条指令执行(或转移指令的目标指令)
举例
”断点设置“、单步跟踪
系统调用指令、条件自陷指令
终止(Abort)
中断的分类
可屏蔽中断
通过可屏蔽中断请求线INTR向CPU发出的中断请求
不可屏蔽中断
通过专门的不可屏蔽请求先NMI向CPU发出的中断请求
异常和中断响应过程
软硬件协同实现
关中断
处理期间应禁止相应新的中断,故设置”中断允许(IF)”触发器=0,表示关中断
保存断点和程序状态
将程序断点(返回地址)和程序状态字寄存器(PSWR)送入栈中
识别异常和中断并转到相应的处理程序
异常识别
软件识别
中断识别
软件/硬件识别
软件识别方式
CPU设置一个一个异常状态寄存器,用于记录异常原因
系统使用统一的异常/中断查询程序,按优先级查询寄存器,以检测并处理异常和中断
硬件识别方式(向量中断)
中断向量
异常或中断处理程序的首地址
中断向量表
中断类型号和中断向量一一对应,可以根据类型号快速找到对应的处理程序
控制器的功能和工作原理
控制器的结构和功能
连接关系
1)运算器部件通过数据总线与内存储器、输入设备和输出设备传送数据。
2)输入设备和输出设备通过接口电路与总线相连接。
3)内存储器、输入设备和输出设备从地址总线接收地址信息,从控制总线得到控制信号,通过数据总线与其他部件传送数据。
4)控制器部件从数据总线接收指令信息,从运算器部件接收指令转移地址,送出指令地址到地址总线,还要向系统中的部件提供它们运行所需要的控制信号。
控制器功能
1)从主存中取出一条指令,并指出下一条指令在主存中的位置。
2)对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。
3)指挥并控制CPU、主存、输入和输出设备之间的数据流动方向。
硬布线控制器
基本原理
根据指令的要求、当前的时序及外部和内部的状态,按时间的顺序发送一系列微操作控制信号。它由复杂的组合逻辑门电路和一些触发器构成,故又称为组合逻辑控制器
硬布线控制单元图

CU的输入信号来源
经指令译码产生的指令信息
时序系统产生的机器周期信号和节拍信号
硬布线控制器的时序系统及微操作
时序系统
1)时钟周期
用时钟信号控制节拍发生器,可以产生节拍,每个节拍的宽度正好对应一个时钟周期。在每个节拍内机器可完成一个或几个需同时执行的操作。
2)机器周期
机器周期可视为所有指令执行过程中的一个基准时间。不同指令的操作不同,指令周期也不同。访问一次存储器的时间是固定的,因此通常以存取周期作为基准时间,即内存中读取一个指令字的最短时间作为机器周期。在存储字长等于指令字长的前提下,取指周期也可视为机器周期。 在一个机器周期里可完成若干微操作,每个微操作都需一定的时间,可用时钟信号来控制产生每个微操作命令。
3)指令周期。指令周期详见5.2.1节。
4)微操作命令分析
控制单元具有发出各种操作命令(控制信号)序列的功能。这些命令与指令有关,而且必须按一定次序发出,才能使机器有序地工作
微操作命令
取指周期的微操作命令
操作不同对象的微操作可以在同一周期内完成
间址周期的微操作命令
执行周期的微操作命令
非访存指令
访存指令
转移指令
中断周期
T0
1)a→MAR(保存断点)
2)1→W
3)0→EINT(关中断)
T1
4)(PC)→MDR
5)MDR→M(MAR)
6)向量地址→PC
CPU的控制方式
同步控制方式
基本思想
系统有一个统一时钟,用以控制所有控制信号;通常以最长的微操作序列为标志,采取相同的时间间隔和相同数目的节拍作为机器周期以运行不同指令
优点
控制电路简单
缺点
运行速度慢
异步控制方式
基本思想
不存在基准时标信号,各部件按自身固有速度工作,通过应答方式联络
优点
运行速度快
缺点
控制电路比较复杂
联合控制方式
对不同指令的微操作大部分采用同步控制、小部分采用异步控制
硬布线控制单元设计步骤
1)列出微操作命令的操作时间表

2)进行微操作信号综合
微操作控制信号=机器周期^节拍^脉冲^操作码^机器状态条件
3)画出微操作命令的逻辑图
微程序控制器
基本概念
设计思想
将每条机器指令编写成一个微程序,每个微程序包含若干微指令,每条微指令对应若干个微操作命令,存储在一个控制存储器中,用寻址用户程序机器指令的方法来寻址每个微程序中的微指令
基本术语
微命令与微操作
微操作:计算机中最基本、不可再分的操作
微命令:控制部件向执行部件发出的控制信号,是构成控制序列的最小单位
相容性微命令
互斥性微命令
关系:微操作与微命令一一对应,微命令是微操作的控制信号,微操作是微命令的执行过程
微指令与微周期
微指令:若干微命令的集合
操作控制字段:又称微操作码字段,用于产生某一步操作所需的各种操作控制信号
顺序控制字段:又称微地址码字段,用于控制产生下一条要执行的微指令地址
微地址:存放微指令的控制存储器的单元地址
微周期:从控制存储器中读取一条微指令并执行相应微操作所需的时间
主存储器与控制存储器
主存储器:用于存放数据和程序,在CPU外部,用RAM和ROM实现
控制存储器(CM):用于存放微程序,在CPU内部,用ROM实现
程序与微程序

程序:指令的有序集合,用于完成特定的功能
微程序:微指令的有序集合,一条指令的功能由一段微程序实现
微程序控制器组成和工作过程
基本组成
控制存储器CM
核心部件,用于存放各指令对应的微程序,可用只读存储器ROM构成
微指令寄存器CMDR
用于存放从CM中取出的微指令,其位数等于微指令字长
微地址形成部件
用于产生初始微地址和后继微地址,以保证微指令的连续执行
微地址寄存器CMAR
接收微地址形成部件送来的微地址,为在CM中读取微指令做准备
工作过程
①执行取微指令公共操作。具体的执行是:在机器开始运行时,自动将取指微程序的入口地址送入CMAR,并从CM中读出相应的微指令送入CMDR。取指微程序的入口地址一般为CM的0号单元,当取指微程序执行完后,从主存中取出的机器指令就已存入指令寄存器中。
②由机器指令的操作码字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址,并送入CMAR。
③从CM中逐条取出对应的微指令并执行。
④执行完对应于一条机器指令的一个微程序后,又回到取指微程序的入口地址,继续第①步,以完成取下一条机器指令的公共操作。
微程序和机器指令
一条机器指令对应一个微程序,由于取指令操作为公共操作,故可编为统一的微程序;n条机器指令的指令系统中,控制存储器至少存储n+1条微程序(1为公共的取指微程序)
间址周期的微程序和中断周期的微程序也可以单独编出
微指令的编码方式
直接编码(直接控制)方式
定义
无需译码,微指令的微命令字段中每一位代表一个微命令,以0、1代表是否选中,每个微命令对应并控制数据通路中的一个微操作
优点
简单、直观、执行速度快、操作并行性好
缺点
微指令字长过长,n个微命令要求n位操作字段
字段直接编码方式
定义
将微命令字段分为若干小字段,每段独立编码,每种编码代表一个微命令
分段原则
①互斥性微命令在同一段内,相容性微命令在不同段内
②每个小段中的信息位不能太多,避免增加译码线路的复杂性和译码时间
③每个小段需留出一个状态,表示本字段不发出任何微命令;如三位字段最多表示7个互斥微命令,000代表不操作
特点
可缩短指令字长,但译码较为费时
字段间接编码方式(隐式编码)
定义
一个字段的某些微命令需由另一个字段的某些微命令来解释
特点
进一步缩短微指令字长,但削弱了其并行控制能力,通常作为字段直接编码的辅助手段
微指令的地址形成方式

1)直接由微指令的下地址字段指出(断定方式)
微指令格式中设置一个下地址字段,直接指出后继微指令的地址
2)根据机器指令的操作码形成
机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成
微指令的格式
水平型微指令
特点
一条水平型微指令定义并执行几种并行的基本操作,从编码方式看,直接/字段直接/字段间接/混合编码都属于该类型
优点
微程序短,执行速度快
缺点
微指令长,编写麻烦
垂直型微指令
特点
设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能
一条垂直型微指令只能定义并执行一种基本操作
优点
微指令短、简单、规整、便于编写微程序
缺点
微程序长、执行速度慢、工作效率低
混合型微指令
在垂直型的基础上增加一些不太复杂的并行操作;微指令较短,仍便于编写,且微程序也不长,执行速度加快
微程序控制单元的设计步骤
1)写出对应机器指令的微操作命令及节拍安排
类似于硬布线控制单元微操作命令的节拍安排,但每条微指令后需增加一个将下地址字段送至CMAR的微操作
取指指令
2)确定微指令格式
微指令格式包括微指令的编码方式、后继微指令地址的形成方式和微指令字长等
微操作个数→编码方式→微指令的操作控制字段位数
微指令数→微指令的顺序控制字段位数
3)编写微指令码点
根据操作控制字段每位代表的微操作命令,编写每条微指令的码点
动态微程序设计和毫微程序设计
1)动态微程序设计
在一台微程序控制的计算机中,假如能根据用户的要求改变微程序,则这台机器就具有动态微程序设计功能。
动态微程序的设计需要可写控制寄存器的支持,否则难以改变微程序的内容。实现动态微程序设计可采用可擦除可编程只读存储器(EPROM)。
2)毫微程序设计
在普通的微程序计算机中,从主存取出的每条指令是由放在控制存储器中的微程序来解释执行的,通过控制线对硬件进行直接控制。
若硬件不由微程序直接控制,而是通过存放在第二级控制存储器中的毫微程序来解释的,这个第二级控制存储器就称为毫微存储器,直接控制硬件的是毫徼微指令。
硬布线和微程序控制器的特点