2.控制器的组成
根据对控制器功能分析,得出控制器的基本组成如下:
1).程序计数器(PC)
即指令地址寄存器.在某些计算机中用来存放当前正在执行的指令地址;而在另一些计算机中则用来存放即将要执行的下一条指令地址;而在有指令预取功能的计算机中,一般还需要增加一个程序计数器用来存放下一条要取出的指令地址.
有两种途径来形成指令地址,其一是顺序执行的情况,通过程序计数器加“1”形成下一条指令地址(如存储器按字节编址,而指令长度为4个字节,则加“4”).其二是遇到需要改变顺序执行程序的情况,一般由转移类指令形成转移地址送往程序计数器,作为下一条指令的地址.
2).指令寄存器(IR)
用以存放当前正在执行的指令,以便在指令执行过程中,控制完成一条指令的全部功能.
3). 指令译码器或操作码译码器
对指令寄存器中的操作码进行分析解释,产生相应的控制信号.
在执行指令过程中,需要形成有一定时序关系的操作控制信号序列,为此还需要下述组成部分.
4).脉冲源及启停线路
脉冲源产生一定频率的脉冲信号作为整个机器的时钟脉冲,是机器周期和工作脉冲的基准信号,在机器刚加电时,还应产生一个总清信号(reset).启停线路保证可靠地送出或封锁时钟脉冲,控制时序信号的发生或停止,从而启动机器工作或使之停机.
5).时序控制信号形成部件
当机器启动后,在CLK时钟作用下,根据当前正在执行的指令的需要,产生相应的时序控制信号,并根据被控功能部件的反馈信号调整时序控制信号.例如,当执行加法指令时,若产生运算溢出的异常情况,一般不再执行将结果送入目的寄存器(或存储单元)的操作,而发出中断请求信号,转入中断处理;又如执行条件转移指令时,根据不同的条件产生不同的控制信号,从而进入适当的程序分支.
(二) 指令执行过程
1.指令执行的时序
计算机工作的过程是取指令,分析指令,执行指令三个基本动作的重复.考虑到所有的器件中(寄存器,存储器)存储器的速度最慢,因此,取最慢的器件工作时间(周期)作为整个工作的最长同步标准.
计算机的工作时序是按照存储器的工作周期划分的.每个存储器工作周期又称为机器周期.因此,每个机器周期至少完成一个基本操作.一般最长的操作是访问存储器(读/写),这个时间也用于访问外设接口(寄存器).如果,某个操作,比如利用运算器执行一次运算,如果不访问存储器,即使占用的时间很短,但是,也必须为其划分一个机器周期.因此,机器周期是计算时序划分的最大单位.
现在我们为计算机的执行时间进行最基本的划分:由于计算机不断地重复执行每个指令,所以,我们将执行的时间划分为一条一条指令执行所占用的时间,如下:
执行指令1执行指令2执行指令3执行指令4执行指令5
我们将每指令占用的时间称为指令周期.由于每条指令的功能不一样,因此执行的时间也不同,指令周期长短不一样.
而每条指令的执行,又可以是取指令,分析指令,执行指令.由于取指令必须访问存储器,所以占用一个机器周期.分析指令是由指令译码电路完成的,所占用的时间极短,无需分配一个完整的机器周期.一般是在取指周期后期(结束之前的很短时间内)就可以完成.指令的执行较为复杂:可能不访问存储器;访问一次存储器;访问两次存储器等.因此,可能是一个机器周期到几个机器周期.
因此,每条指令的执行过程如下:
取指周期执行周期1执行周期2执行周期3执行周期4
第一个机器周期总是取指周期,而指令的地址总是从PC中获得,当发出读取存储器命令后,指令总是从数据总线DB送回,CPU接受到指令之后,将指令放在指令寄存器IR之中.指令在IR中一直保留到取下一条指令为止.
第二个机器周期开始,根据指令有所不同:
执行一次ALU运算:分配一个机器周期.
执行访问一次存储器:分配一个机器周期.
所以,根据指令执行的不同情况,将会得到不同指令执行所占用的机器周期.
根据每个机器周期完成的任务不同,我们将每个机器周期按照任务命名.如同用取指周期命名第一个机器周期一样.