作者:查建樺 | 来源:互联网 | 2023-06-24 19:31
操作命令的分析
微操作命令是指在指令的解释过程当中,由控制单元发出的一些指令,这些指令它所要完成的动作和整条指令要完成的功能相比要小的多。在之前我们已经知道,完成一条指令分为4个工作周期。这4个周期分别是取指令周期,把指令从给定的内存单元中取出来,如果在给定的寻址方式中,我们给定是间址方式,那么就利用间址周期把操作数的地址从给定的内存单元中取出来,放到指令的地址码部分。然后就是我们的执行周期完成了操作数的读取和操作两个任务。最后是中断周期,如果有中断请求,CPU要进行中断响应要完成3件事,要保存程序断点,要形成中断服务地址,要硬件关中断。
下面我们就看在这4个工作周期当中,控制单元要发出哪些控制信号或者是控制命令。
1.取址周期
要想把指令从内存单元取出,就要知道指令的地址,那么指令的地址是保存在PC寄存器当中的,所以PC就要把保存的内存地址送到MAR中,再由MAR送到地址总线上,再通过地址总线送到存储器当中。然后由控制单元向存储器发出读命令,读出的数据由存储器通过数据总线送给MDR这个寄存器,再由MDR送到IR当中,那么指令就被取出到了IR寄存器。在我们设计的这个CPU当中或者这个CU当中,控制器还要完成译码的任务,译码就是要确定这条指令到底要做什么操作。那么它所做的操作是由指令的操作码给出的,我们要把指令的操作码部分也就是IR当中的操作码送给CU,由CU来译码,来确认这条指令到底要做什么操作。另外取址周期还要对PC进行调整,这条指令已经取完了,那么可以对PC进行更行,为取下一条指令做准备,就是对PC里的内容加1,这是我们在取址周期要做的事情。
2.间址周期
说明这条指令我们的寻址方式是间接寻址。我们要通过间址周期把操作数的地址从存储器当中取出放入到指令寄存器当中所保存的那个指令的地址码部分。所以这次我们取出的是一个地址,这个地址所在的内存单元的地址是由IR寄存器当中的地址码部分给出的。是将IR中的形式地址传递给MAR,在通过MAR传输到地址总线,进而送到存储器的地址总线上。要实现这个操作,控制器将发出将IR的地址码部分送给MAR的控制信号,由控制器向存储器发出读操作命令。存储器接收到地址和命令以后,在指定的内存单元当中将操作数的地址取出,通过数据中线传输给MDR,那么这个信号就是在取地址的过程当中控制单元所要发出的控制信号。被取出的地址进一步被送入到IR寄存器的地址码部分。这个时候,IR寄存器当中包含指令它的地址码部分,就是我们的操作数的物理地址。
3.执行周期
指令不一样,执行所做的操作也不一样。这是指令之间的功能上的差异,我们把我们的指令分成了3种。
一,非访存指令,比如说
第一种CLA对ACC进行清0,控制器只要把0送给ACC就可以了。一个微操作命令就可以完成指令。
第二种COM 取反 是就将ACC当中的内容取反 用一条控制命令就能做。
第三种SHR 算数右移 这条指令需要执行2个操作,但是这两个操作能同时进行。
第四个CSL 循环左移 也是2个操作
第五种STP 停机操作
4.中断周期
保存断点
生成中断服务入口地址
硬件关中断