计算机组成原理课程设计基本模型机的设计不带进位的与或运算指令的实现_第1页
计算机组成原理课程设计基本模型机的设计不带进位的与或运算指令的实现_第2页
计算机组成原理课程设计基本模型机的设计不带进位的与或运算指令的实现_第3页
计算机组成原理课程设计基本模型机的设计不带进位的与或运算指令的实现_第4页
计算机组成原理课程设计基本模型机的设计不带进位的与或运算指令的实现_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、武汉理工大学计算机组成原理课程设计说明书学 号: 课 程 设 计题 目不带进位的与或运算指令的实现学 院计算机科学与技术专 业计算机科学与技术班 级姓 名指导教师20年月日目 录课程设计任务书11.题目32.设计的目的及设计原理32.1设计的目的及阶段32.1.1 设计的目的32.1.2分析阶段32.1.3设计阶段32.1.4验证阶段32.2设计的原理43模型机的逻辑框44设计指令系统及分析其指令格式54.1设计指令系统54.2分析指令格式74.3 操作数寻址方式及编码84.3.1直接地址寻址84.3.2寄存器直接寻址94.3.3寄存器间接寻址94.3.4立即数寻址105微程序的设计及微程序实

2、现的方法105.1微指令格式的设计105.2后续微地址的产生方法105.3微程序入口地址的形成106模型机当中时序的设计安排137设计指令执行流程148源程序和程序的指令代码及微程序168.1源程序168.2程序的指令代码178.3微程序179使用软件hkcpt的联机方式的实现过程199.1主要指令的时序图199.2累加器a和有关寄存器、存储器的数据变化以及数据流程2710课程设计总结28本科生课程设计成绩评定表29课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位:计算机科学与技术学院题 目: 基本模型机的设计不带进位的与或运算指令的实现初始条件: 理论:学完“电工电子学”、“数字逻

3、辑”、“汇编语言程序设计”、和“计算机组成原理”课程,掌握计算机组成原理实验平台的使用。 实践:计算机学院科学系实验中心提供计算机、实验的软件、硬件平台,在实验中心硬件平台验证设计结果。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、基本模型机系统分析与设计,利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念。2、根据课程设计题目的要求,编制实验所需的程序,上机测试并分析所设计的程序。3、课程设计的书写报告应包括: (1)课程设计的题目。 (2)设计的目的及设计原理。 (3)根据设计要求给出模型机的逻辑框图。 (4

4、)设计指令系统,并分析指令格式。 (5)设计微程序及其实现的方法(包括微指令格式的设计,后续微地址的产生方法以及微程序入口地址的形成)。 (6)模型机当中时序的设计安排。 (7)设计指令执行流程。 (8)给出编制的源程序,写出程序的指令代码及微程序。 (9)说明在使用软件hkcpt的联机方式与脱机方式的实现过程(包括编制程序中与或运算指令的时序分析,累加器a和有关寄存器、存储器的数据变化以及数据流程)。 (10)课程设计总结(设计的特点、不足、收获与体会)。时间安排: 周一:熟悉相关资料。 周二:系统分析,设计程序。 周三、四:编程并上实验平台调试 周五:撰写课程设计报告。指导教师签名: 年

5、月 日系主任(或责任教师)签名: 年 月 日课程设计报告书1.题目基本模型机的设计不带进位与或运算指令的实现2.设计的目的及设计原理2.1设计的目的及阶段2.1.1 设计的目的掌握简单运算器的数据传输方式、了解通用寄存器的组成和硬件电路、利用通用寄存器实现数据的置数等功能、进一步熟悉存储器和总线的硬件电路、掌握微程序控制器的原理、掌握微程序编制、写入并观察运行状态等。掌握了各个单元模块的工作原理,进一步将其组成完整的系统,构成1台基本的模型机。在本设计中,我们将规划读写内存、寄存器、逻辑运算等功能,并且编写相应的微程序。通过使用软件hkcpt,了解程序编译、加载的过程,通过微单步、单拍调试,理

6、解模型机中的数据流向。 本次设计的源程序解决的问题是:求解“表达式(4f30)+23)22)-09)25(十六进制)”的值,并将其结果送入单元号为30h的内存单元。 2.1.2分析阶段通过对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程,试着编写连续几个数的不带进位的与或运算。2.1.3设计阶段 通过对微指令格式了解和掌握,把分析阶段的连续的几个数的不带进位的与或运算转为成程序。2.1.4验证阶段验证设计阶段的程序代码结果和实际的结果是否一致来判断整个过程的正确性。2.2设计的原理计算机中cpu是核心,它是通过指令和微指令的执行来工作的。指令是

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

8、器(dr1、dr2),8芯插座alu-in作为数据输入端,可通过短8芯扁平电缆,把数据输入端连接到数据总线上。数据输入锁存器dr1的edr1为低电平,并且d1ck有上升沿时,那来自数据总线的数据打入锁存器dr1。同样使edr2为低电平、d2ck有上升沿时把数据总线上的数据打入数据锁存器dr2。4设计指令系统及分析其指令格式4.1设计指令系统此次实验涉及的指令有以下几种:mov a, #data 将立即数传递到将累加器a中;orl a,#data 将累加器a和立即数相或,结果送入累加器a中;mov ri,#data 将立即数传递到寄存器ri中;sub a,ri 将累加器a中的内容减去寄存器ri中

9、的内容,结果送入累加器a;add a,ri 将累加器a中的内容加上寄存器ri中的内容,结果送入累加器a;anl a,#data 将累加器a和立即数相与,结果送入累加器a中; sta addr 将寄存器中内容写入存储器中; halt 停机指令;指令系统如下表:指令助记符指令功能指令编码微周期微操作取指指令t0pc-地址总线-ramram-数据总线-ir1add a,r0add a,r1add a,r2add a,r3(a+ri) a0c0d0e0ft0t1t2t3adbusdr1ridbusdr2aludbusa、置cy取指微指令sub a,r0sub a,r1sub a,r2sub a,r3(

10、a-ri) a1c1d1e1ft0t1t2t3adbusdr1ridbusdr2aludbusa、置cy取指微指令mov a,#datadataa5ft0t1ramdbusa取指指令mov r0,#datamov r1,#datamov r2,#datamov r3,#datadatari6c6d6e6ft0t1ramdbusa取指指令orl a,#data(a)或dataacft0t1t2t3adbusdr1ramdbusdr2aludbusa取指指令anl a,#data(a)或dataadft0t1t2t3adbusdr1ramdbusdr2aludbusa取指微指令sta addr(a

11、)addr8ft0t1t2ramdbusir2ir2地址总线,aram取指微指令halt停机fft0停机4.2分析指令格式一般指令由操作码和操作码组成,如下所示:操作码地址码 此实验所涉及指令的格式如下:mov指令采用双字节指令,其格式如下:7 6 5 43 21 0操作码 ridata mov指令采用单字节指令,其格式如下:7 6 5 43 21 0操作码a data mov指令采用单字节指令,其格式如下:7 6 5 43 21 0操作码ridata add指令采用双操作数指令,其格式如下:7 6 5 43 21 0操作码ari sub指令采用双操作数指令,其格式如下:7 6 5 43 21

12、 0操作码ari 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操作码 4.3 操作数寻址方式及编码4.3.1直接地址寻址 如:双字节指令 lda addr (addr)-a sta addr (a)-addr 第1字节 第2字节i7i6i5i4i3i2i1i0a7a6a5a4a3a2a1 操作码 操作数地址addr 4.

13、3.2寄存器直接寻址 指令字节中含有寄存器选择码,决定选哪个寄存器进行操作。 如:单字节指令 mov a, ri (ri)-a 单字节i7i6i5i4i3i2i1i0 操作码与ri选择码 如:双字节指令 mov ri, #data data-ri 第1字节 第2字节i7i6i5i4i3i2i1i0a7a6a5a4a3a2a1 操作码及ri选择码 data 4.3.3寄存器间接寻址 如:单字节指令: mov a,ri (ri)-a ri选择码i7i6i5i4i3i2i1i0 操作码4.3.4立即数寻址 如:mov a, #data data-a mov ri, data data-ri 第1字节

14、 第2字节i7i6i5i4i3i2i1i0a7a6a5a4a3a2a1 操作码及ri选择码 data 5微程序的设计及微程序实现的方法5.1微指令格式的设计一条微指令的一般格式是如下图:判别测试下地址操作控制顺序控制5.2后续微地址的产生方法由于本系统中指令系统规模不大,功能较简单,微指令采用全水平、不编码的方式,每一个微操作控制信号由一位微代码来表示,24位微代码至少可表示24个不同的微操作控制信号。用增量方式来控制微代码的运行顺序,每一条指令的微程序连续存放在微指令存储器连续的单元中。在本系统内,mld为置微地址的控制信号,mck为工作脉冲。当mld=0、mck有上沿时,把md0md7的值

15、作为微程序的地址,打入微地址寄存器。当mld=1、mck有上升沿时,微地址计数器自动加1。5.3微程序入口地址的形成在本实验平台的硬件设计是采用的24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至多可有24个微操作控制信号,可由微代码直接实现。若采用多组编码译码,那么24位的微代码通过二进制译码可实现2n个互斥的微操作控制信号。由于模型机指令系统规模较小,功能也不太复杂,所以采用全水平不编码纯控制场的微指令格式。在模型机中,用指令操作码的高4位作为核心扩展成8位的微程序入口地址md0-md7。这种方法称为“按操作码散转”(如下表所示)。微程序首地址形成md7md6md5md4md3m

16、d2md1md0001716151411按操作码散转指令操作码微程序首地址md7、md6i7i6i5i4md1、md0md7md0000001003h000011007h00010100bh00011100fh001001013h001011017h00110101bh00111101fh010001023h010011027h01010102bh01011102fh011001033h011011037h01110103bh01111103fh每条指令由不超过4条的微指令组成,那么可根据下表组成每条微程序的首地址。微指令的运行顺序位下地址确定法,即采用计数增量方法,每条微指令执行过后微地址自

17、动加1,指向下一条微指令地址。例如:确定了一条程序的微程序入口地址为07h,那么执行完07h这条微指令后微地址加1,指向08h微地址。微地址寄存器由2片74ls161组成,当模型机在停止状态下,微地址被清零。当实验平台开始运行时,微地址从00h开始运行。且00h放置一条取指指令,根据程序开始地址从内存中读出第一条指令。00取指微指令010203减法指令微程序(1)04减法指令微程序(2)050607mov指令微程序(1)08mov指令微程序(2)09mov指令微程序(3).此次实验程序中的微程序指令如下表:指令助记符微地址有效值微指令十六进制编码mov a,#data17h18h19h1ahd

18、dfbff4dfffforl a,#data33h34h35h36hfffcfeddff7efffbbe4dffffmov ri,#data1bh1ch1dh1ehddbfff4dffffadd a,ri03h04h05h06hfffcf9fe7f79fffba94dffffsub a,ri07h08h09h0ahfffcd6fe7f56fffb864dffffanl a,#data37h38h39h3ahfffcfbddff7bfffbbb4dffffsta addr23h24h25h26hd5ffffbbfdff4dffffhalt3fhffdfff6模型机当中时序的设计安排 由于模型机已

19、经确定了指令系统,微指令采用全水平不编码纯控制场的格式,微程序的入口地址采用操作码散转方式,微地址采用计数增量方式,所以可确定模型机中时序单元中所产生的每一拍的作用。本实验中为了更好地观察实验的各个中间过程中各寄存器的值,由监控单元产生一个pls-o的信号来控制时序产生。pls-o信号经过时序单元的处理产生了4个脉冲信号。4个脉冲信号组成一个微周期,为不同的寄存器提供工作脉冲。 pls1: 微地址寄存器的工作脉冲,用来设置微程序的首地址及微地址加1。pls2: pc计数器的工作脉冲,根据微指令的控制实现pc计数器加1和重置pc计数器(如跳转指令)等功能。pls3: 把24位微指令打入3片微指令

20、锁存器pls4: 把当前总线上的数据打入微指令选通的寄存器7设计指令执行流程在每个系统中,一条指令从内存取出到执行完毕,需要若干个机器周期,任何指令中都必须有一个机器周期作为“取指令周期”,称为公操作周期。而一条指令共需几个机器周期取决于指令在机器内实现的复杂程度。对于微程序控制的计算机,在设计指令执行流程时,要保证每条微指令所含的微操作的必要性和合理性,还应知道总线的iab,idb,oab,odb仅是传输信息的通路,没有寄存信息的功能,而且必须保证总线传输信息时信息的唯一性。以下描述取微指令执行周期:在模型机处于停机状态时,模型机的微地址寄存器被清零,微指令锁存器输出无效。在处于停机状态时,

21、脉冲pls1对微地址寄存器(74ls161)无效,微地址寄存器保持为零。脉冲pls2对pc计数器无效,同时pls2把halt=1打入启停单元中的运行状态寄存器(74ls74)中,把模型机置为运行状态,使微程序锁存器输出有效。pls3把微程序储存器00h单元中的内容打入指令寄存器中。在模型机处于运行状态时,脉冲pls1将微地址寄存器(74ls161)加一,脉冲pls2将pc计数器加1,pls3把微程序存储器中的微指令打入微指令锁存器并且输出。pls4把当前总线上的数据打入当前微指令所选通的寄存器。 对于此次实验每条指令的执行流程如下:周期微操作指令助记符t0t1t2t3取指微指令pc-地址总线-

22、ramram-数据总线-ir1 mov a,#dataram数据总线a取指微指令 orl a,#dataa数据总线dr1ram数据总线dr2alu数据总线a取指微指令mov ri,#data a数据总线ri取指微指令 add a,ria数据总线dr1ri数据总线dr2 alu数据总线a 取指微指令sub a,ria数据总线dr1ri数据总线dr2 alu数据总线a 取指微指令anl a,#dataa数据总线dr1ram数据总线dr2alu数据总线a取指微指令sta addrram数据总线ir2ir2地址总线,aram取指微指令 halt停机 8源程序和程序的指令代码及微程序 8.1源程序mov

23、 a, #4fanl a, #30mov r0, #23add a, r0orl a, #22mov r2, #09sub a, r2anl a, #25sta 30halt该程序的功能是:先将16进制数4f与30进行逻辑与运算,结果放入累加器a中;再将16进制数23送入寄存器r0中,然后将23和a中的数据进行算术加,结果放入累加器a中;然后将a中的数据与22进行逻辑或运算,结果放入累加器a中,再将16进制数09送入寄存器r2中,然后将09和a中的数据进行算术减,结果放入累加器a中;然后将a中的数据与25进行逻辑与运算,结果放入累加器a中;并且a的值放入内存单元30中。8.2程序的指令代码内存

24、地址指令助记符指令码或立即数说明00hmov a,#4fh5fh立即数4fh-a01h4fh02hanl a,#30hdfha和30进行与运算-a03h30h04hmov r0,#23h05h立即数23-r005h23h06hadd a,r006ha+r0-a07horl a,#22h07ha和22h进行或运算-a08hmov r2,#09h08h09h-r209h09h0ahsub a,r21eha-r2-a0bhanl a,#25hdfha和25与-a0chsta 308fh将a写入ram30h0dh30h0ehhaltffh停机最后结果是地址为30h中的结果是02h8.3微程序mov a

25、,#4f : 00004d,ff,ff 取指指令 0017dd,fb,ff dbusaanl a,#30: 00184d,ff,ff 取指指令 0037ff,fc,fb adbusdr1 0038dd,ff,7b ramdbusdr2 0039ff,fb,bb aluamov r0,#23: 003a4d,ff,ff 取指指令 001bff,bd,ff adbusriadd a,r0 : 001c4d,ff,ff 取指指令 0003ff,fc,f9 adbusdr1 0004ff,7f,79 ridbusa 0005ff,fb,a9 aludbusaorl a,#22 : 00064d,ff,

26、ff 取指指令 0033ff,fc,fe adbusdr1 0034dd,ff,7e ramdbusdr2 0035ff,7b,ff aluamov r0,#23: 00364d,ff,ff 取指指令 001bff,bd,ff adbusrisub a,r0 : 001c4d,ff,ff 取指指令 001dff,7b,ff adbusdr1 001eff,7b,ff ridbusa 001fff,7b,ff aludbusaanl a,#42: 00204d,ff,ff 取指指令 0037fffcfb adbusdr1 0038ddff7b ramdbusdr2 0039fffbbb alua

27、sta 30 : 003a4dffff 取指指令 0023d5ffff dbusir2 0024bbfdff ir2dbus; adbusramhalt : 003e4dffff 取指指令 0003fffdfff 停机9使用软件hkcpt的联机方式的实现过程 9.1主要指令的时序图将4f存入累加器a中的时序图4f与30进行逻辑与运算的时序图:将23h存入寄存器r0的时序图:将累加器a的数据r0中数据42进行算术加的时序图:将累加器a的数据与22进行逻辑或的时序图:将09h存入寄存器r2的时序图:将累加器a的数据r2中数据09进行算术减的时序图:将累加器a的数据与25进行逻辑与的时序图:将最后结

28、果送入地址30h的时序图:具体截图(缩略)mov a,#7fanl a,#45mov r0,#22add a,r0orl a,#37mov r2,#42sub a,r2anl a,#27sta 30halt9.2累加器a和有关寄存器、存储器的数据变化以及数据流程mov a,#4f数据流程:ram-dbus-a 执行后,a中数据值为50h,其他寄存器值无效anl a,#30数据流程:adbusdr1,ramdbusdr2,aludbusa 执行后,a中的值为00h,dr1中数据值为4fh,dr2中数据值为30h, 其他寄存器值不变mov r0,#23数据流程:ram-dbus-r0 执行后,r0

29、中数据值为23h,a中值不变,其他寄存器值无效add a,r0数据流程:a-dbus-dr1,r0-dbus-dr2,alu-dbus-a 执行后,a中值为23h,dr1中数据值为00h,dr2中数据值为23horl a,#22数据流程:adbusdr1,ramdbusdr2,aludbusa 执行后,a中的值为23h,dr1中数据值为23h,dr2中数据值为22h, 其他寄存器值不变mov r2,#09数据流程:ram-dbus-r0 执行后,r2中数据值为09h,a中值不变,其他寄存器值无效sub a,r2数据流程:a-dbus-dr1,r0-dbus-dr2,alu-dbus-a 执行后,a中值为40h,dr1中数据值为50h,dr2中数据值为10h,anl a,#25数据流程:a-dbus-dr1,r0-dbus-dr2,alu-dbus-a 执行后,a中值为02h,dr1中数据值为40h,dr2中数据值为25h, 其他寄存器值不变sta 30数据流程:a-ram 执行后,内存地址为30h的单元中值为02hh

温馨提示

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

评论

0/150

提交评论