复杂模型机的IO实验
组成原理与系统结构课程设计报告
课 题: 姓 名 学 号 专业班级 指导教师 设计时间
目录........................................... 错误!未定义书签。
一、课程设计目的和意义.............................................. 3
1.目的: ........................................................ 3 2.意义: ........................................................ 3 二、设计原理........................................................ 3
2.8255芯片引脚特性及外部连接.................................... 3 3. CS、A0、A1、RD、WR五个引脚的电平与8255操作关系.............. 4 3.指令 .......................................................... 5 三、复杂模型机的设计与实现内容...................................... 5
1.数据格式 ...................................................... 5 2.指令格式 ...................................................... 5
(A) 算术逻辑指令............................................. 5 (B) 访存指令及转移指令....................................... 6 (C) I/O指令 ................................................. 6 (D) 停机指令................................................. 6 3指令系统....................................................... 7 四、总体设计........................................................ 9
1.设计微程序流程图 .............................................. 9 2.转换格式 ..................................................... 10 3.实验接线 ..................................................... 12 2、写微代码: .................................................. 12 3.读微代码及校验微代码: ....................................... 13 5.读机器指令及校验机器指令: ................................... 14
6.运行程序.................................................. 15 7.运行结果.................................................. 15
五、系统测试及实验截图............................................. 15 六、总结........................................................... 18 七、参考文献....................................................... 19
一、课程设计目的和意义
1.目的:
A.在组成一台完整的计算机整机系统—模型机的基础上,控制真实的外围接口。
B.本实验外扩充一片8255接口芯片,完成基本并行口实验。
2.意义:
A.本课程的意义是通过课程设计,使学生对所学习过的计算机组成原理课程内容 加以理解和巩固。通过实验使学生掌握计算机由哪些部件所组成,各部件间又是如何进行协调工作的。
B.本次设计要求利用实验室的教学实验箱,组建一较为复杂的模型计算机。并验证其能够正常运行。参考实验指导书上复杂模型机设计的过程,运用其微指令格式,独立设计指令系统。并用该指令系统中的指令编一完成简单运算的程序(有数据输入和输出的)。并进行调试运行。
二、设计原理
1.实验设备:
EL-JY-II型计算机组成原理实验系统一套,排线若干
2.8255芯片引脚特性及外部连接
图一
3.CS、A0、A1、RD、WR五个引脚的电平与8255操作关系
如图二
图二
3.指令
本实验在实验八指令集的基础上,新增两条端口读写指令
三、复杂模型机的设计与实现内容
1.数据格式
模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:
2.指令格式
模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问存储器及转移指令和停机指令。
(A) 算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:
(B) 访存指令及转移指令
模型机设计2条访问指令,即存数(STA)、取数(LDA)、2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC)。其格式如下:
其中,OP-CODE为操作码, Rd为目的寄存器,D为位移量(正负均可),M为寻址方式,其定义如下:
本模型机规定变址寄存器RI指定为寄存器R2。
(C) I/O指令
输入和输出指令采用单字节指令,其格式如下: 其中,时,表示选元”中的开输入设备,
关组作为addr=10addr=01 中“输入单
时,表示选中“输出单元”中的数码管作为输出设备。
(D) 停机指令
这类指令只有1条,即停机指令HALT,用于实现停机操作,指令格式如下:
3指令系统
(1)本模型机共有16条基本指令。其中,算术逻辑指令9条,访问内存指令和程序控制指令4条,输入输出指令2条,其他它指令1条。表1列出了各条指令的格式、汇编符号、指令功能。
表1 复杂模型机指令系统
(2)微指令格式
表2 复杂模型机微指令结构图
其中uA5~uA0为6位的后续微地址,A、B、P为三个译码字段,分别由三个控制位译码出多位。P字段中的P1~P4是四个测试字位,其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的为地址入口,从而实现微程序的顺序、分支、循环运行。具体来说,P1测试用于“取指令”微指令,它用下址低四位(uA3~uA0)与指令寄存器高四位(IR7~IR4)相或得到各路分支;P2测试用下址低2位(uA1~uA0)与指令寄存器的IR3IR2相或得到各路分支;P3测试用于条件转移,它用下址的uA4与(ZI +CY)相或得到各路分支;
P4测试用于控制台操作,它用下址低2位(uA1~uA0)与SWB、SWA相或得到各路分支。
在上述各测试下址中未用到的位均直接保留。AR为算术运算是否影响进位及判
零标志控制位,其为零有效。B字段中的RS_G、RD_G、RI_G分别为源寄存器选通信号,目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通译码。三字段中的其他位类似与此,均是某芯片的选通信号,它们的功能都是根据机器指令来进行相应芯片的选通译码。
四、总体设计
1.设计微程序流程图
图三
2.转换格式
当全部微程序流程图深色级完毕后,应将图四的流程按微指令格式转化而成的“二进制微代码表”
图四(1)
图四(2)
3.实验接线
2、写微代码:
(1) 将开关K1K2K3K4拨到写状态即K1 off、K2 on、K3 off、K4 off,其中K1、K2、K3在微程序控制电路,K4在24位微代码输入及显示电路上。在监控指示灯滚动显示【CLASS SELECt】状态下按【实验选择】键,显示【ES--_ _ 】输入09或9,按【确认】键,显示为【ES09】,再按下【确认】键。
(2) 监控显示为【CtL1=_】,输入1显示【CtL1_1】,按【确认】。
(3) 监控显示【U-Addr】,此时输入【000000】6位二进制数表示的微地址,然后按【确认】键,监控指示灯显示【U_CodE】,显示这时输入微代码【00FF88】,该微代码是用6位十六进制数来表示前面的24位二进制数,注意输入微代码的顺序,先右后左,按【确认】键则显示【PULSE】,按【单步】完成一条微代码的输入,重新显示【U-Addr】提示输入第二条微代码地址。
(4) 按照上面的方法输入表9-4微代码,观察微代码与微地址显示灯的对应关系(注意输入
表9-4 实验九微代码表
3.读微代码及校验微代码:
(1) 先将开关K1K2K3K4拨到读状态即K1 off、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASS SELECt】状态。
(2) 按【实验选择】键,显示【ES--_ _ 】输入09或9,按【确认】键,显示【ES09】。按【确认】键。
(3) 监控显示【CtL1=_】时,输入2,按【确认】显示【U_Addr】 ,此时输入6位二进制微地址,进入读代码状态。再按【确认】显示【PULSE】,此时按【单步】键,微地址指示灯显示输入的微地址,同时微代码显示电路上显示该地址对应的微代码,至此完成一条微指令的读过程。
(4)此时监控显示【U_Addr】,按上述步骤对照表9-4检查微代码是否有错误,如有 错误,可按步骤2重新输入微代码。 4、写机器指令
(1) 先将K1K2K3K4拨到运行状态即K1 on、K2 off、K3 on、K4 off,按【RESET】按钮对单片机复位,使监控指示灯滚动显示【CLASS SELECt】状态。
(2) 按【实验选择】键,显示【ES--_ _ 】输入09或9,按【确认】键,显示【ES09】,再按【确认】。
(3) 监控显示【CtL1=_】,按【取消】键,监控指示灯显示【CtL2=_】,输入1显示【CtL2_1】表示进入对机器指令操作状态,此时拨动CLR清零开关(在控制开关电路上,注意对应的JUI应短接)对地址寄存器、指令寄存器清零,清零结果是微地址指示灯和地址指示灯全灭。如不清零则会影响机器指令的输入!!!确定清零后,按【确认】。
(4) 监控显示闪烁的【PULSE】,按【单步】键,微地址显示灯显示“001001”时,再按【单步】,微地址显示灯显示“001100”,地址指示灯显示“00000000”,此时按【确认】键,监控指示灯显示【data】,提示输入机器指令“04”或“0004”(两位或四位十六进制数),输入后按【确认】,显示【PULSE】,再按【单步】,微地址显示灯显示“001101”,数据总线显示灯显示“[**************]0”,即输入的机器指令。
(5) 再连续按【单步】,当微地址显示灯再次显示“001100”时,按【确认】输入第二条机器指令。依此规律逐条输入表9-5的机器指令,输完后,可连续按【取消】或【RESET】键退出写机器指令状态。注意,每当微地址显示灯显示“001100”时,地址指示灯自动加1显示。如输入指令为8位,则高8位自动变为0。
表9-4 实验九机器指令表
5.读机器指令及校验机器指令:
在监控指示灯显示【CtL2=_】状态下,输入2,显示【CtL2_2】,表示进入读机器指令状态,按步骤4的方法拨动CLR开关对地址寄存器和指令寄存器进行清零,然后按【确认】键,显示【PULSE】,连续按【单步】键,微地址显示灯从“000000”开始,然后按“001000”、
“001010” 、“001110”方式循环显示。只有当微地址灯显示为“001110”时,数据总线指示灯上显示的为写入的机器指令。读的过程注意微地址显示灯,地址显示灯和数据总线指示灯的对应关系。如果发现机器指令有误,则需重新输入机器指令。
注意:机器指令存放在RAM里,掉电丢失,故断电后需重新输入。
6.运行程序
在监控指示灯显示【CtL2=_】状态下,输入3,显示【CtL2_3】,表示进入运行机器指令状态,按步骤4的方法拨动CLR开关对地址寄存器和指令寄存器进行清零,然后按【确认】键,显示【run CodE】,表示运行程序,可以【单步】运行也可以【全速】运行程序,观察实验运行结果。
7.运行结果
在全速运行时显示灯电路的显示结果与数据输入电路的后四位一致。改变数据输入电路的后四位,显示结果也随之变化。
五、系统测试及实验截图
六、总结
这次的课程设计让我对计算机组成原理这门课程有了一个新的认识:软件与硬件的统一、程序与电路的融合。让我对“硬件是软件的身躯、软件是硬件的灵魂”有了更进一步的理解。
通过这次课程设计,我掌握了复杂模型机的特点。掌握了复杂模型机的基本原理和方法。运用微程序,微指令完成了复杂模型机的程序设计。在课程设计的过程中,遇到了一些问题,都是粗心大意而造成,并非是对复杂模型机和编程的熟悉问题,说明了我再以后的试验中应该更细心的编写程序的每一步,对于本次课程设计所出现的马虎,应该牢记,以后不再犯同样的错误。通过这次课程设计,也让自己更加的了解复杂模型机。
总之,通过这次课程设计使自己受益良多,我相信别的同学也得到的不少!最后非常感谢老师为我们辛勤的付出以及给与我们计算机组成原理学习方面的帮助。谢谢老师。
七、参考文献
[1] 陈书开等.计算机组成原理与系统结构[M].武汉大学出版社,2006. [2] 钟友鹏.计算机组成原理课程设计与指导[M].江苏:江苏科技出版社,1988. [3] 刘荣兴.计算机组成原理课程设计[M].山东:山东大学出版社,2002.