控制器作用
控制程序的执行
即协调并控制计算机各部件执行程序的指令序列。
控制器功能
取指令
分析指令
又叫指令译码。
执行指令
控制程序和数据的输入与结果输出
对异常情况和某些请求的处理
控制器组成
PC
程序计数器/指令地址寄存器,存放当前指令或下一条指令的地址(TEC-2中PC存储下一条指令的地址)。
在一条无条件跳转指令的指令周期内,PC的值被修改2次。
取指令周期结束后,PC值自动加1;执行周期中,PC值修改为要跳转到的地址,故在这个指令周期内,PC值被修改两次。
程序计数器(PC)的位数取决于主存的容量。
程序计数器的内容为指令在主存中的地址,所以程序计数器的位数与主存地址的位数相等,而主存地址位数取决于主存的容量。
指令周期、间址周期
IR
指令寄存器,存放当前正在执行的指令
指令寄存器(IR)的位数取决于指令字长
指令寄存器的内容为正在执行的指令,所以位数取决于指令字长。
CPU中的通用寄存器不能替代指令寄存器(IR)
指令寄存器是专门用于存放指令的专用寄存器,不能由通用寄存器替代。
指令译码器
又叫操作码译码器,对指令寄存器中的操作码进行分析解释。
脉冲源及启停电路
脉冲源
产生一定频率的脉冲作为整个机器的时钟脉冲,是机器周期和工作脉冲的基准信号;
另外在开机时产生
reset
信号启停电路
保证可靠地送出或封锁完整的时钟脉冲,控制时序信号的发生和停止
时序控制信号形成部件
形成并调整时序。
产生控制信号一般有两种方法:
微程序控制方式
硬布线控制方式
几个周期
指令周期
从取指令开始到其执行完成所经过的时间。
一个指令周期包含若干个时钟周期。
时钟周期
通常称为节拍脉冲或T周期。
时钟周期是计算机中最基本的、最小的时间单位。
数据通路
结合课后习题6.1食用。
MAR主存地址寄存器;MDR主存数据寄存器;AC累加寄存器,简称累加器。
主存与CPU之间的连线有地址总线和数据总线。
地址总线的信息仅从CPU传送到主存MAR,数据总线则允许双向传送(CPU和MDR)。
指令从主存取出到产生控制信号的数据通路
指令地址从PC经地址总线送到MAR,数据从主存经数据总线送到IR。
数据在运算器和主存直接进行读/写的数据通路
读写地址由IR中指令的地址字段经地址总线送主存MAR;读时数据从主存经数据总线送到MDR,然后送ALU,然后送AC;写时数据从AC送MDR,再送主存。
微程序控制的基本概念
把机器指令拆分成微指令,再把微指令拆分成微操作。
微指令
把机器指令拆分成微指令。
机器指令与微指令的关系:用微指令解释机器指令
微指令长度一般要比机器指令长得多。
微操作
一个微指令中,由同时发出的控制信号所执行的各个操作称为微操作。
微命令
微命令和微操作一一对应。
微命令是微操作的控制信号,微操作是微命令的执行过程。
微程序
微指令序列。
控制存储器
用来存放微程序,其容量取决于实现指令系统所需的微程序长度(或者说其容量取决于微指令的条数)。
$AM2910$
微程序定序器
作用
形成下一条微指令的地址
三个输出使能信号
作用:决定直接输入D的来源
$\bar{MAP}$
当其有效时,$D$来源于$MAPROM$,用于实现从机器指令到相应的微程序段的转移。
$\bar{VECT}$
当其有效时,原意为$D$来源于中断向量,现用于接收手拨微地址。
$\bar{PL}$
当其有效时,$D$来源于微指令的下地址字段,用于实现微程序转移。
16条命令
2号命令
指令功能分支,无条件转$MAP$,此时$\bar{MAP}为0$,根据指令的操作码形成用来解释执行该机器指令的微程序的入口地址
3号命令
条件转移,条件测试$\bar{CC}$为1时顺序执行,否则按下地址$D$转移。
14号命令
顺序执行下一条微指令
CPU如何区分指令和数据
可以从时间和空间上来区分
取指令周期中从内存中读出的信息流是指令流,它流向控制器;
执行指令周期中从内存读出或送入内存的信息流是数据流,它由内存流向运算器或由运算器流向内存。
微程序控制的基本工作原理
机器指令取入IR
后,对操作码进行译码,得到相应指令的第一条微指令的地址。
MAPROM
指令译码器可用只读存储器组成,将操作码作为
MAPROM
的地址输入,该单元的内容即相应指令第一条微指令的地址,之后由微指令的下址字段指出下一条微指令的地址。根据微指令地址从控制存储器中取出微指令,并将它存放在微指令寄存器中。控制字段各位直接与受控门相连,由此生成控制信号。
微指令格式
水平型微指令
在一条微指令中定义并执行多个并行微命令,所以速度比垂直型微指令快。
直接控制法、字段编译法经常应用在同一条水平型微指令中。
垂直型微指令
在微指令中设置有微操作码字段,由其规定微指令的功能。
不强调微指令的并行控制功能
两者比较
从实现原理和性能两个方面比较。
- 水平型微指令并行操作能力强,效率高,灵活性强
- 水平型微指令实现一条机器指令的执行时间短
- 水平型微指令字长较长,但微程序短
- 水平型微指令用户难以掌握
作者:@臭咸鱼
转载请注明出处:https://chouxianyu.github.io
欢迎讨论和交流!