本次课程设计主要是需要掌握计算机微指令和机器指令设计原理和计算机微程序控制器设计的基本原理和方法,了解计算机自动工作的流程和原理。要能够自己完成机器指令和微指令的设计,并正确运行这些指令。一开始,我首先学习了模型机的结构和基本工作原理,主要是对模型机中各个部分的电路图进行一定的了解,能够大致知道每个部分的工作流程和原理,这对理解机器指令及微指令的执行过程会有很大的帮助。
随后,我学习了微指令的执行过程,我们都知道,一条机器指令是由一个微程序来控制完成的,而一个微程序又包含了一条或多条微指令,这是大体上的框架,是必须清楚的,通过实验,我了解到了微指令的执行过程,微指令的后六位会给出下一条微指令的地址,就这样,每条微指令执行结束后,会跳到一下条微指令所在的地址,直到这个微程序执行结束。那么怎样进行微指令的设计呢?事实上,微指令的设计是有很多编码方式的,本次课程设计微指令字长24位,控制位从高到低如下:S3,S2,S1,S0,M,Cn,WE,1A,1B,F1,F2,F3,uA5,UA4,UA3,UA2,UA1。按照这样的编码方式,不同编码对应不同功能,具体要实现的功能需要查表对应编码来实现。这就是微指令的设计方法。
一条机器指令对应了一条或多条微指令,实际上机器指令并不起什么实际上的作用,都是其对应的微程序来完成操作的,也就是说计算机从内存中取出一条机器指令,然后CPU要对这条指令进行分析,那么分析得到什么呢?实际上分析得到的就是这条机器指令对应的微程序的首地址,因为只有知道了这条机器指令对应微程序的首地址,才能去执行这个微程序里的微指令,执行微指令才能完成这条机器指令要完成的操作,因此机器指令的设计比微指令的设计要简单许多。通过学习模型机各部分电路,实际上CPU分析机器指令的过程其实就是一个译码电路来得到的,这个操作就叫P1测试,而P1测试这个操作也是由一条微指令来控制的,因此P1测试时是根据P1测试对应的微指令的后六位地址结合机器指令的编码通过译码电路来得到这条机器指令的对应微程序的首地址。知道了这个过程,我们进行机器指令的设计不过是就是这个过程的反过程,通过入口地址来算出机器指令的编码即可。最后我们自己设计了一些机器指令,也修改了一些已有的机器指令,并在模型机上成功运行了这些指令,并且得到了正确的结果。
经过自己和团队的努力,终于完成了这次计算机组成原理与系统结构的课程设计,尽管过程比较艰难,但好处是在克服种种困难的过程中学习到了很多知识,在进行课程设计之前,我对于机器指令在计算机内部的执行过程只是有一个抽象的了解,但在实验中我直观地感受到了机器指令在计算机内部的执行过程,这就好像打开了新世界的大门,对于很多课本上的知识都豁然开朗了,微指令是怎样控制计算机完成对应机器指令的操作的,机器指令是怎样设计的,微指令是怎样设计的,这些问题都在实验中得到了体现,让我对于理论知识的理解更加深刻和形象了。事实证明,只有理论知识是远远不够的,只有把所学的理论知识和实践结合起来,从理论中得出结论,从而提高自己的动手能力和独立思考能力。在过程中也发现了自己对于一些硬件和软件的理论知识掌握得不够牢固等问题,我一定会在以后的学习中不断提高自己。总之,通过这次的课程设计,我学习到了很多。