计算机组成原理课程设计-基本模型机的设计--不带进位与或运算指令的实现.docx_第1页
计算机组成原理课程设计-基本模型机的设计--不带进位与或运算指令的实现.docx_第2页
计算机组成原理课程设计-基本模型机的设计--不带进位与或运算指令的实现.docx_第3页
计算机组成原理课程设计-基本模型机的设计--不带进位与或运算指令的实现.docx_第4页
计算机组成原理课程设计-基本模型机的设计--不带进位与或运算指令的实现.docx_第5页
免费预览已结束,剩余10页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学计算机组成原理课程设计说明书 15课程设计说明书1.题目:基本模型机的设计不带进位与或运算指令的实现2.设计的目的及设计原理2.1设计的目的 运用所学的知识,通过使用软件hkcpt掌握各个单元模块的工作原理将其组成完整的系统,并了解程序编译、加载的过程,以及通过微单步、单拍调试理解模型机中的数据流向。本实验主要是设计不带进位与或运算指令的实现,将汇编语言程序设计,数字逻辑与或运算原理以及计算机组成原理3方面的知识结合到一起利用此软件平台实现连续几个数的不带进位的与或运算,从而了解逻辑运算运算单元的运行过程。2.2设计的原理2.2.1计算机中cpu是核心,它是通过指令和微指令的执行来工作的。指令是计算机要完成的某一项功能。它对应到执行的过程中是一段微程序。一段微程序含多条为指令,而一条微指令又含多个微命令。一个微命令驱动某个硬件部件执行某种操作。通过这样一个关系,从而达到由计算机指令来驱动计算机各个硬部件的协调工作以实现一条指令的执行。2.2.2在各个模块中,各模块的控制的控制信号都是手动模拟产生的。而在真正的实验系统中,模型机的运行是在微程序的控制下,实现特定指令的功能。在本实验平台中,模型机从内存中取出、解释、执行机器指令都将由微指令和之相配合的时序来完成,即一条机器指令对应一个微程序。3.模型机的逻辑框图其中运算器由2片74l181构成8位字长的alu单元。2片74ls374作为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 将寄存器中内容写入存储器中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,#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指令格式一般指令由操作码和操作码组成,如下所示:操作码地址码 此实验所涉及指令的格式如下: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停机指令(halt),其格式如下:7 6 5 43 21 0操作码 5.微程序的设计及其实现的方法 5.1 微程序入口地址的形成在本实验平台的硬件设计是采用的24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至多可有24个微操作控制信号,可由微代码直接实现。若采用多组编码译码,那么24位的微代码通过二进制译码可实现2n个互斥的微操作控制信号。由于模型机指令系统规模较小,功能也不太复杂,所以采用全水平不编码纯控制场的微指令格式。在模型机中,用指令操作码的高4位作为核心扩展成8位的微程序入口地址md0-md7。这种方法称为“按操作码散转”(如下表所示)。微程序首地址形成md7md6md5md4md3md2md1md0001716151411按操作码散转指令操作码微程序首地址md7、md6i7i6i5i4md1、md0md7md0000001003h000011007h00010100bh00011100fh001001013h001011017h00110101bh00111101fh010001023h010011027h01010102bh01011102fh011001033h011011037h01110103bh01111103fh此次实验程序中的微程序指令如下表:指令助记符微地址有效值微指令十六进制编码add a,ri03h04h05h06hfffcf9ff7f79fffba94dffffsub a,ri07h08h09h0ahfffcd6fe7f56fffb864dffffmov a,#data17h18h19h1ahddfbff4dffffmov ri,#add1bh1ch1dh1ehddbfff4dffffsta addr23h24h25h26hd5ffffbbfdff4dfffforl a,#data33h34h35h36hfffcfeddff7efffbbe4dffffanl a,#data37h38h39h3ahfffcfbddff7bfffbbb4dffffhalt3fhffdfff5.2微指令格式的设计一条微指令的一般格式是如下图:判别测试下地址操作控制顺序控制5.3后续微地址的产生方法由于本系统中指令系统规模不大,功能较简单,微指令采用全水平、不编码的方式,每一个微操作控制信号由一位微代码来表示,24位微代码至少可表示24个不同的微操作控制信号。用增量方式来控制微代码的运行顺序,每一条指令的微程序连续存放在微指令存储器连续的单元中。在本系统内,mld为置微地址的控制信号,mck为工作脉冲。当mld=0、mck有上沿时,把md0md7的值作为微程序的地址,打入微地址寄存器。当mld=1、mck有上升沿时,微地址计数器自动加1。6.时序安排 由于模型机已经确定了指令系统,微指令采用全水平不编码纯控制场的格式,微程序的入口地址采用操作码散转方式,微地址采用计数增量方式,所以可确定模型机中时序单元中所产生的每一拍的作用。为了更好地观察实验的各个中间过程中各寄存器的值,由监控单元产生一个pls-o的信号来控制时序产生。pls-o信号经过时序单元的处理产生了4个脉冲信号。4个脉冲信号组成一个微周期,为不同的寄存器提供工作脉冲。 pls1: 微地址寄存器的工作脉冲,用来设置微程序的首地址及微地址加1。pls2: pc计数器的工作脉冲,根据微指令的控制实现pc计数器加1和重置pc计数器(如跳转指令)等功能。pls3: 把24位微指令打入3片微指令锁存器pls4: 把当前总线上的数据打入微指令选通的寄存器7.指令执行流程 在每个系统中,一条指令从内存取出到执行完毕,需要若干个机器周期,任何指令中都必须有一个机器周期作为“取指令周期”,称为公操作周期。而一条指令共需几个机器周期取决于指令在机器内实现的复杂程度。对于微程序控制的计算机,在设计指令执行流程时,要保证每条微指令所含的微操作的必要性和合理性,还应知道总线的iab,idb,oab,odb仅是传输信息的通路,没有寄存信息的功能,而且必须保证总线传输信息时信息的唯一性。以下描述取微指令执行周期:在模型机处于停机状态时,模型机的微地址寄存器被清零,微指令锁存器输出无效。在处于停机状态时,脉冲pls1对微地址寄存器(74ls161)无效,微地址寄存器保持为零。脉冲pls2对pc计数器无效,同时pls2把halt=1打入启停单元中的运行状态寄存器(74ls74)中,把模型机置为运行状态,使微程序锁存器输出有效。pls3把微程序储存器00h单元中的内容打入指令寄存器中。在模型机处于运行状态时,脉冲pls1将微地址寄存器(74ls161)加一,脉冲pls2将pc计数器加1,pls3把微程序存储器中的微指令打入微指令锁存器并且输出。pls4把当前总线上的数据打入当前微指令所选通的寄存器。 对于此次实验每条指令的执行流程如下:周期微操作指令助记符t0t1t2t3取指微指令pc-地址总线-ramram-数据总线-ir1 orl a,#dataa数据总线dr1ram数据总线dr2alu数据总线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进行逻辑与运算,结果存入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 33a08h33h09hmov 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 取指指令 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 取指指令 0007ff,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进行逻辑与运算时序图 前步结果和22h进行加法运算时序图前步结果和33h进行逻辑或运算 前步结果和42h进行减法运算前步结果和27h进行逻辑与运算 将最终结果保存至ram地址30h9.2累加器a、寄存器、存储器的数据变化以及数据流程第一步: a-dbus-dr1 各寄存器数据变化如下表:寄存器执行前数据执行后数据a7fh7fhdr1-7fh第二步: ram-dbus-dr2 各寄存器数据变化如下表:寄存器执行前数据执行后数据a7fh7fhdr17fh7fhdr2-40halu-40h第三步:alua寄存器执行前数据执行后数据a7fh40halu40h40h第四步: adbusdr1寄存器执行前数据执行后数据a40h40hdr17fh40h第五步: r0dbusdr2寄存器执行前数据执行后数据a40h40hr022h22hdr17fh7fhdr240h22halu40h62h第六步: aludbusa寄存器执行前数据执行后数据a40h62halu62h62h第七步: adbusdr1寄存器执行前数据执行后数据a62h62hdr17fh62h第八步: ramdbusdr2寄存器执行前数据执行后数据a62h62hdr162h62hdr222h33halu62h33h第九步: aludbusa寄存器执行前数据执行后数据a62h33halu33h33h第十步: adbusdr1寄存器执行前数据执行后数据a33h33hdr162h33h第十一步: r2dbusdr2寄存器执行前数据执行后数据a33h33hr242h42hdr133h33hdr233h42halu33hf1h第十二步: aludbusa寄存器执行前数据执行后数据a33hf1haluf1hf1h第十三步: adbusdr1寄存器执行前数据执行后数据af1hf1hdr133hf1h第十四步: ramdbu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论