计算机组成原理课程设计-基本模型机的设计--不带进位与或运算指令的实现.docx

上传人:小小飞 文档编号:5027258 上传时间:2020-01-29 格式:DOCX 页数:15 大小:199.65KB
返回 下载 相关 举报
计算机组成原理课程设计-基本模型机的设计--不带进位与或运算指令的实现.docx_第1页
第1页 / 共15页
计算机组成原理课程设计-基本模型机的设计--不带进位与或运算指令的实现.docx_第2页
第2页 / 共15页
计算机组成原理课程设计-基本模型机的设计--不带进位与或运算指令的实现.docx_第3页
第3页 / 共15页
计算机组成原理课程设计-基本模型机的设计--不带进位与或运算指令的实现.docx_第4页
第4页 / 共15页
计算机组成原理课程设计-基本模型机的设计--不带进位与或运算指令的实现.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《计算机组成原理课程设计-基本模型机的设计--不带进位与或运算指令的实现.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计-基本模型机的设计--不带进位与或运算指令的实现.docx(15页珍藏版)》请在三一文库上搜索。

1、武汉理工大学计算机组成原理课程设计说明书 15课程设计说明书1.题目:基本模型机的设计不带进位与或运算指令的实现2.设计的目的及设计原理2.1设计的目的 运用所学的知识,通过使用软件HKCPT掌握各个单元模块的工作原理将其组成完整的系统,并了解程序编译、加载的过程,以及通过微单步、单拍调试理解模型机中的数据流向。本实验主要是设计不带进位与或运算指令的实现,将汇编语言程序设计,数字逻辑与或运算原理以及计算机组成原理3方面的知识结合到一起利用此软件平台实现连续几个数的不带进位的与或运算,从而了解逻辑运算运算单元的运行过程。2.2设计的原理2.2.1计算机中CPU是核心,它是通过指令和微指令的执行来

2、工作的。指令是计算机要完成的某一项功能。它对应到执行的过程中是一段微程序。一段微程序含多条为指令,而一条微指令又含多个微命令。一个微命令驱动某个硬件部件执行某种操作。通过这样一个关系,从而达到由计算机指令来驱动计算机各个硬部件的协调工作以实现一条指令的执行。2.2.2在各个模块中,各模块的控制的控制信号都是手动模拟产生的。而在真正的实验系统中,模型机的运行是在微程序的控制下,实现特定指令的功能。在本实验平台中,模型机从内存中取出、解释、执行机器指令都将由微指令和之相配合的时序来完成,即一条机器指令对应一个微程序。3.模型机的逻辑框图其中运算器由2片74L181构成8位字长的ALU单元。2片74

3、LS374作为2个数据锁存器(DR1、DR2),8芯插座ALU-IN作为数据输入端,可通过短8芯扁平电缆,把数据输入端连接到数据总线上。数据输入锁存器DR1的EDR1为低电平,并且D1CK有上升沿时,那来自数据总线的数据打入锁存器DR1。同样使EDR2为低电平、D2CK有上升沿4.指令系统及其指令格式4.1指令系统此次实验涉及的指令有以下几种:MOV A, #data 将立即数传递到累加器A中MOV RI,#data 将立即数传递到寄存器RI中ADD A,RI 加法运算指令SUB A,RI 减法运算指令ORL A,#data 逻辑或指令ANL A,#data 逻辑与指令STA addr 将寄存

4、器中内容写入存储器中HALT 停机指令指令系统如下表:指令助记符指令功能指令编码微周期微操作取指微指令T0PC-地址总线-RAMRAM-数据总线-IR1ADD A.R0ADD A.R1ADD A R2ADD A,R3(A)+(RI)A0C0D0E0FT0T1T2T3A数据总线DR1RI数据总线DR2ALU数据总线A、置CY取指微指令SUB A.R0SUB A,R1SUB A.R2SUB A.R3(A)-(RI)A1C1D1E1FT0T1T2T3A数据总线DR1RI数据总线DR2ALU数据总线A、置CY取指微指令MOV A,#dataDataA5FT0T1RAM数据总线A取指微指令MOV R0,

5、#dataMOV R1,#dataMOV R2,#dataMOV R3,#dataData(RI)6C6D6E6FT0T1RAM数据总线RI取指微指令STA addr(A)addr8FT0T1T2RAM数据总线IR2IR2地址总线,ARAM取指微指令ORL A,#data)A)或dataACFT0T1T2T3A数据总线DR1RAM数据总线DR2ALU数据总线A取指微指令ANL A,#data(A)或dataADFT0T1T2T3A数据总线DR1RAM数据总线DR2ALU数据总线A取指微指令HALT停机FFT0停机4.2指令格式一般指令由操作码和操作码组成,如下所示:操作码地址码 此实验所涉及指

6、令的格式如下:MOV指令采用双字节指令,其格式如下:7 6 5 43 21 0操作码 RiDataMOV指令采用单字节指令,其格式如下:7 6 5 43 21 0操作码A Ri ADD指令采用单字节指令,其格式如下:7 6 5 43 21 0操作码RiA SUB指令采用单字节指令,其格式如下:7 6 5 43 21 0操作码RiA ORL逻辑或指令采用单字节指令,其格式如下: 7 6 5 43 21 0操作码Adata ANL逻辑与指令采用单字节指令,其格式如下: 7 6 5 43 21 0操作码Adata STA取数据指令,其格式如下:7 6 5 43 21 0操作码 data addr停机

7、指令(HALT),其格式如下:7 6 5 43 21 0操作码 5.微程序的设计及其实现的方法 5.1 微程序入口地址的形成在本实验平台的硬件设计是采用的24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至多可有24个微操作控制信号,可由微代码直接实现。若采用多组编码译码,那么24位的微代码通过二进制译码可实现2n个互斥的微操作控制信号。由于模型机指令系统规模较小,功能也不太复杂,所以采用全水平不编码纯控制场的微指令格式。在模型机中,用指令操作码的高4位作为核心扩展成8位的微程序入口地址MD0-MD7。这种方法称为“按操作码散转”(如下表所示)。微程序首地址形成MD7MD6MD5MD4

8、MD3MD2MD1MD0001716151411按操作码散转指令操作码微程序首地址MD7、MD6I7I6I5I4MD1、MD0MD7MD0000001003H000011007H00010100BH00011100FH001001013H001011017H00110101BH00111101FH010001023H010011027H01010102BH01011102FH011001033H011011037H01110103BH01111103FH此次实验程序中的微程序指令如下表:指令助记符微地址有效值微指令十六进制编码ADD A,RI03H04H05H06HFFFCF9FF7F79FF

9、FBA94DFFFFSUB A,RI07H08H09H0AHFFFCD6FE7F56FFFB864DFFFFMOV A,#data17H18H19H1AHDDFBFF4DFFFFMOV RI,#ADD1BH1CH1DH1EHDDBFFF4DFFFFSTA addr23H24H25H26HD5FFFFBBFDFF4DFFFFORL A,#data33H34H35H36HFFFCFEDDFF7EFFFBBE4DFFFFANL A,#data37H38H39H3AHFFFCFBDDFF7BFFFBBB4DFFFFHALT3FHFFDFFF5.2微指令格式的设计一条微指令的一般格式是如下图:判别测试下

10、地址操作控制顺序控制5.3后续微地址的产生方法由于本系统中指令系统规模不大,功能较简单,微指令采用全水平、不编码的方式,每一个微操作控制信号由一位微代码来表示,24位微代码至少可表示24个不同的微操作控制信号。用增量方式来控制微代码的运行顺序,每一条指令的微程序连续存放在微指令存储器连续的单元中。在本系统内,MLD为置微地址的控制信号,MCK为工作脉冲。当MLD=0、MCK有上沿时,把MD0MD7的值作为微程序的地址,打入微地址寄存器。当MLD=1、MCK有上升沿时,微地址计数器自动加1。6.时序安排 由于模型机已经确定了指令系统,微指令采用全水平不编码纯控制场的格式,微程序的入口地址采用操作

11、码散转方式,微地址采用计数增量方式,所以可确定模型机中时序单元中所产生的每一拍的作用。为了更好地观察实验的各个中间过程中各寄存器的值,由监控单元产生一个PLS-O的信号来控制时序产生。PLS-O信号经过时序单元的处理产生了4个脉冲信号。4个脉冲信号组成一个微周期,为不同的寄存器提供工作脉冲。 PLS1: 微地址寄存器的工作脉冲,用来设置微程序的首地址及微地址加1。PLS2: PC计数器的工作脉冲,根据微指令的控制实现PC计数器加1和重置PC计数器(如跳转指令)等功能。PLS3: 把24位微指令打入3片微指令锁存器PLS4: 把当前总线上的数据打入微指令选通的寄存器7.指令执行流程 在每个系统中

12、,一条指令从内存取出到执行完毕,需要若干个机器周期,任何指令中都必须有一个机器周期作为“取指令周期”,称为公操作周期。而一条指令共需几个机器周期取决于指令在机器内实现的复杂程度。对于微程序控制的计算机,在设计指令执行流程时,要保证每条微指令所含的微操作的必要性和合理性,还应知道总线的IAB,IDB,OAB,ODB仅是传输信息的通路,没有寄存信息的功能,而且必须保证总线传输信息时信息的唯一性。以下描述取微指令执行周期:在模型机处于停机状态时,模型机的微地址寄存器被清零,微指令锁存器输出无效。在处于停机状态时,脉冲PLS1对微地址寄存器(74LS161)无效,微地址寄存器保持为零。脉冲PLS2对P

13、C计数器无效,同时PLS2把HALT=1打入启停单元中的运行状态寄存器(74LS74)中,把模型机置为运行状态,使微程序锁存器输出有效。PLS3把微程序储存器00H单元中的内容打入指令寄存器中。在模型机处于运行状态时,脉冲PLS1将微地址寄存器(74LS161)加一,脉冲PLS2将PC计数器加1,PLS3把微程序存储器中的微指令打入微指令锁存器并且输出。PLS4把当前总线上的数据打入当前微指令所选通的寄存器。 对于此次实验每条指令的执行流程如下:周期微操作指令助记符T0T1T2T3取指微指令PC-地址总线-RAMRAM-数据总线-IR1 ORL A,#dataA数据总线DR1RAM数据总线DR

14、2ALU数据总线A取指微指令ANL A,#dataA数据总线DR1RAM数据总线DR2ALU数据总线A取指微指令MOV A,RIRI数据总线A取指微指令MOV RI,AA数据总线RI取指微指令MOVA,#dataRAM数据总线A取指微指令STA addrRAM数据总线IR2IR2地址总线,ARAM取指微指令HALT停机8. 源程序,程序的指令代码及微程序 8.1源程序 MOV A,#7FANL A,#40MOV R0,#22ADD A,R0ORL A,#33MOV R2,#42SUB A,R2ANL A,#27STA 30 HALT该程序的功能是计算先将16进制数7F与40进行逻辑与运算,结果

15、存入A中;将22移入R0中,与A中内容进行加法运算,结果存入A中;将A中内容与33进行逻辑或运算,结果存入A中;将42移入R2,与A中内容进行减法运算,结果存入A中;将A中内容与27进行逻辑与运算,结果存入A中,并将结果写入RAM地址30H中。 8.2程序的指令代码内存地址指令助记符指令码或立即数说明00HMOV A,#7F5FH立即数7FHA01H7FH02HANL A,#40DFH(A)ANL 40A03H40H04HMOV R0,#226CH立即数22HR005H22H06HADD A,R00CH(A)ADD R0A07HORL A,#33CFH(A)ORL 33A08H33H09HMO

16、V R2,#426EH立即数42HR20AH42H0BHSUB A,R21EH(A)SUB R2A0CHANL A,#27DFH(A)ANL 27A0DH27H0EHSTA 308FHA中内容写入RAM地址30H0FH30H10HHALTFFH停机8.3微程序MOV A,#7F: 00004D,FF,FF 取指指令 0017DD,FB,FF DbusA ANL A,#40: 00184D,FF,FF 取指指令 0037FF,FC,FB ADbusDR1 0038DD,FF,7B RAMDbusDR2 0039FF,FB,BB ALUDbusAMOV R0,#22: 003A4D,FF,FF 取

17、指指令 001BDD,BF,FF RAMDbusR0 ADD A,R0: 001C4D,FF,FF 取指指令 0003FF,FC,F9 ADbusDR1 0004FF,7F,79 R0DbusDR2 0005FF,FB,A9 ALUDbusAORL A,#33: 00064D,FF,FF 取指指令 0033FF,FC,FE ADbusDR1 0034DD,FF,7E RAMDbusDR2 0035FF,FB,BE ALUDbusAMOV R2,#42: 00364D,FF,FF 取指指令 001BDD,BF,FF RAMDbusASUB A,R2: 001C4D,FF,FF 取指指令 0007

18、FF,FC,D6 ADbusDR1 0008FF,7F,56 R2DbusDR2 0009FF,FB,86 ALUDbusAANL A,#27: 000A4D,FF,FF 取指指令 0037FFFCFB ADbusDR1 0038DDFF7B RAMDbusDR2 0039FFFBBB ALUDbusASTA 30: 003A4DFFFF 取指指令 0023D5FFFF RAMDbusIR2 0024BBFDFF IR2Abus; ARAMHALT: 00254DFFFF 取指指令 0003FFFDFFF 停机9.使用软件HKCPT的联机方式的实现过程 9.1主要指令的时序图7FH和40H进行

19、逻辑与运算时序图 前步结果和22H进行加法运算时序图前步结果和33H进行逻辑或运算 前步结果和42H进行减法运算前步结果和27H进行逻辑与运算 将最终结果保存至RAM地址30H9.2累加器A、寄存器、存储器的数据变化以及数据流程第一步: A-DBUS-DR1 各寄存器数据变化如下表:寄存器执行前数据执行后数据A7FH7FHDR1-7FH第二步: RAM-DBUS-DR2 各寄存器数据变化如下表:寄存器执行前数据执行后数据A7FH7FHDR17FH7FHDR2-40HALU-40H第三步:ALUA寄存器执行前数据执行后数据A7FH40HALU40H40H第四步: ADbusDR1寄存器执行前数据

20、执行后数据A40H40HDR17FH40H第五步: R0DbusDR2寄存器执行前数据执行后数据A40H40HR022H22HDR17FH7FHDR240H22HALU40H62H第六步: ALUDbusA寄存器执行前数据执行后数据A40H62HALU62H62H第七步: ADbusDR1寄存器执行前数据执行后数据A62H62HDR17FH62H第八步: RAMDbusDR2寄存器执行前数据执行后数据A62H62HDR162H62HDR222H33HALU62H33H第九步: ALUDbusA寄存器执行前数据执行后数据A62H33HALU33H33H第十步: ADbusDR1寄存器执行前数据执

21、行后数据A33H33HDR162H33H第十一步: R2DbusDR2寄存器执行前数据执行后数据A33H33HR242H42HDR133H33HDR233H42HALU33HF1H第十二步: ALUDbusA寄存器执行前数据执行后数据A33HF1HALUF1HF1H第十三步: ADbusDR1寄存器执行前数据执行后数据AF1HF1HDR133HF1H第十四步: RAMDbusDR2寄存器执行前数据执行后数据AF1HF1HDR1F1HF1HDR242H27HALUF1H21H第十五步: ALUDbusA寄存器执行前数据执行后数据AF1H21HALU21H21H第十六步: RAMDbusIR2寄存

22、器执行前数据执行后数据AF1H21HIR2-30H第十七步: IR2Abus; ARAM第十八步: 停机 无数据流程变化。10.课程设计总结几周之前,我并不认为自己能够完成计算机组成原理的课程设计,因为这门课给人的感觉就是困难。但是这次课程设计,在同组组员的协力之下完成了。此次计算机组成原理课程设计试验中,我是利用了所学得的计算机组成原理、数字逻辑等课程知识在HKCPT软件平台上设计的与或逻辑运算以及加减法运算。由于本次试验电路板以提前设计完成,并不需要我亲自动手对实现电路进行设计,所以在电路实现上并未遇到麻烦。但是在软件编译完成指令后,对于微程序的时序周期、每条微指令的作用的分析却令人感到了本次试验的困难。好在代码本身并不复杂,通过一段时间的思考即可弄明白。通过这次试验,我进一步加深了对微指令、微程序以及它们的作用的认识。并且通过这次试验,将所学各个学科进行结合,每一个学科都有着其他学科的支持,让我明白了每一个学科的基础都是重要的,不能放松任何学科的学习。这次试验让我明白了,我今后必须加强动手能力,学以致用。除此之外,我还要学会与他人合作,一个人的力量毕竟是有限的,这是从小就知道的道理,与组员们的合作之下,计算机组成原理的课程设计并没有带来想象中那么巨大的压力,相反,我们很轻松的解决了。这次课程设计是一次很好的体验,令我受益颇丰。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1