1、 通过自己设计微指令,同时设计了7条机器指令:IN(输入)、ADD(相加)、AND(逻辑与)、STA(存数)、SUB(相减)、NOT(取反)、JMP(无条件转移),然后输 入数据来验证这些操作。1.3 设计要求 设计一个完整的程序,程序至少有IN,ADD,STA,OUT,JMP等指令,在此的基础上再多几条指令,使它完成更多的功能。 2 设计思想2.1 主要使用芯片 74181算术运算器ALU、74374寄存器堆R0、74161程序计数器、74273地址寄存器AR、74273指令寄存器IR。2.2 基本原理 A.微程序控制的基本思想:1. 若干微命令编制成一条微指令,控制实现一步操作;2. 若干
2、微指令组成一段微程序,解释执行一条机器指令;3. 微程序事先存放在控制存储器中,执行机器指令时再取出。 B.基本组成:控制存储器,微指令寄存器,微地址寄存器,地址转移逻辑 控制存储器(CM):用来存放实现全部指令系统的微程序,位于CPU中。它是一种只读型存储器,要求速度快,读出周期短 微指令寄存器:存放当前由控制存储器读出的一条微指令信息,分为微地址寄存器和微命令寄存器两个部分。其中微地址寄存器决定将要访问的下一条微指令的地址,微命令寄存器则保存一条微指令的操作控制字段和判别测试字段(P)的信息 地址转移逻辑:自动完成修改微地址的任务。 微程序控制器:微程序控制器的基本任务是完成当前指令的翻译
3、和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器. C.微程序控制计算机的工作过程: 下面通过计算机启动、执行程序直到停机的过程,来说明微程序是如何控制计算机工作的: 计算机加电以后,首先由复位信号(Reset)将开机后执行的第一条指令的地址送入PC内,同时将一条取指微指令送入微指令寄存器中,并将其
4、他一些有关的状态位或寄存器置于初始状态。当电压达到稳定值后,自动启动计算机,产生节拍电位和工作脉冲。为保证计算机正常工作,电路必须保证开机后第一个机器周期信号的完整性,在该CPU周期末,产生开机后第一个工作脉冲。然后计算机开始执行程序,不断地取出指令、执行指令。 程序可以存放在固定存储器中,也可以利用固化在只读存储器(ROM)中的一 小段引导程序,将要执行的程序和数据从外部设备调入主存。实现各条指令的微程 序是存放在微程序控制器中的。当前正在执行的微指令从微程序控制器中取出后放 在微指令寄存器中,由微指令的控制字段中的各位直接控制信息和数据的传送,并 进行相应的处理。当遇到停机指令或外来停机命
5、令后,应该待当前这条指令执行完 毕后再停机或至少在本机器周期结束时停机。要保证停机后,重新启动计算机能继 续工作而且不出现任何错误。3 设计方案3.1 程序流程图 KT控制台(SW)-BUSBUS-RAM 00 00 20 KWE(01) KRD(00) RF(11) 21 20 23 24 22 01RAMBUSBUSPC(DR1)+(DR2)R0SWR0BUSIRPCARPC+1 RP0102P(1)10IN ADD AND STA SUB NOT JMPDR1R0(DR1)-(DR2)R0BUSBUSRAMDR1DR2BUS-R010 11 12 13 14 15 16 03 07 27
6、 31 35 40 04 36 17 30 32 01 05 09 25 33 06 01 37 26 34 013.2 接线图 H24SIGNAL UNITSIGNAL T4 T1 JT UNIT R7. R0 BUS SE6 SWB SE0 SWAP P I7 I0 LDG UNIT SWB SWA S3 SN SE6 LDR1 SE0 LDR2 ALU_B LDR1 P RS_BCE LDIRD WE LDAR LDAD PC_A PC_B SW_BMICRC_CDNTRLER R7 CN LDR1 R0 LDR2 ALU_B LDIRINS UNIT R7 LDR0 R0 R0_BR7
7、 CER0 WE B7 LDAR B0 PC_B LDPC B7 B0 DATA UNIT3.3 模块功能 IN 为单元字长(8位),含义是将数据开关8位数据输入到RO寄存器 ADD 为双字长指令,第一字为操作码,第二字为操作数地址,其含义是将R0寄存器的内容与内存中以A为地址单元的数相加,结果放在R0。 STA 为双字长指令。含义是将R0中的内容存储到以第二字A为地址的内存单元中。 AND 为双字长指令。第一字为操作码,第二字为操作数地址,其含义是将R0寄存器的内容与内存中以A为地址单元的数相与,结果放在R0。 SUB 为双字长指令,第一字为操作码,第二字为操作数地址,其含义是将R0寄存器的
8、内容与内存中以A为地址单元的数相减,结果放在R0。 NOT 为双字长指令,第一字为操作码,第二字为操作数地址,其含义是将R0寄存器的内容求反,把结果放在R0中。 JMP 为双字长指令,执行该指令时,程序无条件转移到第二字所指定的内存单元地址。4 测试结果及分析4.1 测试过程地址(二进制)内容(二进制)0000 0000IN (0000 0000)0000 0001ADD (0001 0000)0000 0010 (0011 0010)0000 0011STA (0011 0000)0000 0100 (0011 0011) (存数)0000 0101AND (0010 0000)0000 0
9、110 (0011 0100)0000 01110000 1000 (0011 0001) (存数)0000 1001SUB (0100 0000)0000 1010 (0001 0110)0000 10110000 1100 (0011 0111) (存数)0000 1101NOT (0101 0000)0000 11100000 1111 (0011 1000) (存数)0001 0000JMP (0110 0000)0001 0001 (0000 0000)0011 0010 (ADD ) (0000 0001) (ADD)0011 0011 (ADD STA)初始 (0000 0000
10、) (ADD结果存数)0011 0100 (AND) (0000 0010) (AND)0011 0101 (AND STA)初始 (0000 0000 ) (AND结果存数)0001 1110 (SUB) (0000 0001) (SUB)0011 0111初始 (0000 0000) (SUB结果存数)0011 1000初始 (0000 0000) (NOT结果存数) 根据实验连线图连接好,使编程开关处于“RUN”,STEP为“STEP”状态,STOP为“RUN”状态。 拨动总清开关CLR(01),微地址寄存器清零,此时用“DATA UNIT”单元的8位二进制开关给出要写入RAM区的首地址
11、(0000 0000),控制台,SWA开关置为“01”,按动显示“010010”,再按动一次“START”,微地址灯显示“010100”,此时数据开关的内容置为要写入的机器指令,按动一次START键,即 完成该条指令的写入。机器指令的首地址只要第一次输入即可,PC会自动加1,所 以按动START,只有在微地址灯显示“010100”时,才设置内容,直到所有机器指令写完。4.2 测试结果0000 0000 (IN) 0000 0010 (0000 0011) (ADD结果存数) (0000 0001 ) (AND结果存数) (0000 0000) (SUB结果存数) (1111 1111) (NO
12、T结果存数) 5 源程序微地址S3 S2 S1 S0 M CN WE CE LDPCA BPUA5UA0 0 00 0 0 0 0 0 0 1 11 0 11101 0 00 1 0 0 0 0 0 11 1 01 1 10 0 0 0 0 0 0 1 0 0 20 0 0 0 0 0 0 0 00 0 00 0 10 0 1 0 0 0 0 30 0 0 1 0 0 0 40 1 10 0 0 1 0 1 0 50 0 0 0 0 0 0 1 00 1 00 0 0 1 1 0 0 61 0 0 1 0 1 0 1 00 0 0 0 0 1 0 70 0 1 1 1 1 1 0 1 10 0
13、 0 0 1 1 1 20 0 0 1 1 1 1 30 1 0 1 1 1 1 40 1 1 0 0 1 1 50 1 1 1 0 1 1 61 0 0 0 0 0 1 70 1 0 1 0 1 2 00 1 0 0 1 0 2 10 1 0 1 0 0 2 2 2 3 2 40 0 0 0 0 0 1 0 00 1 0 0 0 1 2 5 0 1 0 1 1 0 2 61 0 1 1 1 0 0 1 0 2 70 1 1 0 0 0 3 0 3 10 1 1 0 1 0 3 20 1 1 0 1 1 3 30 1 1 1 0 0 3 4 0 1 1 0 0 0 0 1 0 3 5 0 1
14、1 1 1 0 3 60 1 1 1 1 1 3 70 0 0 0 1 0 0 1 0 4 00 0 0 0 0 0 0 0 11 0 1 6 总结 通过一周的课程实习,对模型机的设计,微指令是如何设计与运行,机器码又是怎样找到它所对应的微指令,从而实现各种功能,有了更深一步的了解,在实习中提高了与组员共同协作的能力,自己动手操作的能力也得到了很好的提高。本设计的难点在于测试字位P(1)、P(4)的功能,只要理解了它是怎么实现程序的顺序、分支、循环运行的,以及机器码是怎样找到所对应微指令的入口的,其它的步骤即可迎刃而解。通过这次实践,使我们懂得,只要自己在每一次实践中都能仔细思考,能亲自动手,课程设计中遇到的难点都可以顺利解决。只有多操作才能从中发现问题,及时解决问题,从而更好的掌握实验的基本原理。课程设计目的除工作量和设计质量之外,更重要的是认真去对待,通过设计实践对理论知识有了更深刻的认识,并从中学到书本上学不到的知识和实践经验参考文献1. 白中英,计算机组成原理(第四版*立体化),科学出版社,2008版2. 白中英,杨春武,冯一兵,计算机硬件基础实验教程,清华大社,20053. 百中英,杨春武,计算机组成原理题解,题库实验(第三版),科学出版社,2005
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1