计算机组成原理实训指导书一、课程基本知识1、实训目的:《计算机组成原理》是计算机科学与技术专业本科教学中的一门重要专业基础课。在计算机科学与技术和信息管理与信息系统专业的教学计划中占有重要地位和作用。学习本课程旨在使学生掌握计算机硬件各子系统的组成原理及实现技术,建立计算机系统的整体概念,对培养学生设计开发计算机系统的能力有重要作用。在实训学习和实践过程中,学生以构建计算机系统整体框架为主线,进行相关实际的设计和操作。学生通过对计算机组成原理课程的学习,已经初步掌握了计算机组成原理中所涉及到的基础知识。为了加强计算机系统组成原理的整体理解,开设课程实训课,使学生对计算机系统组成原理有更全面的理解,进一步提高学生对计算机硬件各子系统的组成原理及实现技术的理解和掌握,强化学生的系统意识,培养学生设计开发计算机系统的能力,同时为后续课程的学习夯实基础。实训的主要目的是:(1)使学生对计算机系统组成原理有更全面的理解。(2)进一步提高学生对计算机硬件各子系统的组成原理及实现技术的理解和掌握。(3)强化学生的系统意识。(4)培养学生设计开发计算机系统的能力。(5)为后续课程的学习夯实基础。2、实训内容:(1)模型机组成原理实验(2)模型机的I/O实验(3)模型机的中断处理功能实验(4)存储器扩展实验3、实训所用设施:PC机20台、、WindowsXP操作系统、EL-JY-II型计算机组成原理实验箱20台、若干排线4、实训任务及要求:(1)模型机组成原理实验(必做)基本要求:掌握各部件功能,组成一个计算机整机系统――模型机;了解微程序控制器是如何控制模型机运行的,掌握整机动态工作过程;掌握微程序的编写和调试。(2)模型机的I/O实验基本要求:在组成一台完整的计算机整机系统――模型机的基础上,控制真实的外围接口;理解8255接口芯片的基本工作原理。(3)模型机的中断处理功能实验基本要求:掌握中断响应、中断处理的流程及实现方法;掌握中断微程序的编写和调试。(4)存储器扩展实验基本要求:掌握扩展存储器的方法;理解扩展的存储芯片与系统的存储芯片的工作原理。每2人一组共同完成第1个项目并自选完成2、3、4其中之一。根据提供的实训题目,引导学生采用正确的实验、实训方法,启发学生扩大解决问题的思路,从而得到正确的结果,并且分析出现的各种现象,提高实验、实训效果。实训过程中,注意记录实训步骤。做完实验、实训,写出实验、实训报告。二、实训基本操作方法1、按照系统用户手册及文档规范要求进行操作,养成查阅手册、文档的良好习惯;2、根据实训步骤要求进行操作,注意积累正确操作方法;3、操作过程中注意记录错误提示,并利用各种资源进行更正,积累错误诊断经验,增强独立解决问题的能力;4、对特殊疑难问题采用讨论、协作等方式进行解决,有意识地训练团队合作意识;5、实训报告应多包含在实训过程中出现的错误及解决方法。三、实训项目(一)模型机组成原理实验1、模型机结构:模型机结构框图见图1-1。图1-1模型机结构框图图中运算器ALU由U7—U10四片74LS181构成,暂存器1由U3、U4两片74LS273构成,暂存器2由U5、U6两片74LS273构成。微控器部分控存由U13—U15三片2816构成。除此之外,CPU的其它部分都由EP1K10集成(其原理见系统介绍部分)。存储器部分由两片6116构成16位存储器,地址总线只有低八位有效,因而其存储空间为00H—FFH。输出设备由底板上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据总线的数据送入数码管显示。在开关方式下,输入设备由16位电平开关及两个三态缓冲芯片74LS244构成,当DIJ-G为低电平时将16位开关状态送上数据总线。在键盘方式或联机方式下,数据可由键盘或上位机输入,然后由监控程序直接送上数据总线,因而外加的数据输入电路可以不用。注:本系统的数据总线为16位,指令、地址和程序计数器均为8位。当数据总线上的数据打入指令寄存器、地址寄存器和程序计数器时,只有低8位有效。2、工作原理:本实训主要学习读、写机器指令和运行机器指令的完整过程。在机器指令的执行过程中,从CPU从内存取出一条机器指令到执行结束为一个指令周期,指令由微指令组成的序列来完成,一条机器指令对应一段微程序。另外,读、写机器指令也分别由相应的微程序段来完成。为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,必须设计三个控制操作微程序。存储器读操作(MRD):拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“00”时,按“单步”键,可对RAM连续读操作。存储器写操作(MWE):拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“10”时,按“单步”键,可对RAM连续写操作。启动程序(RUN):拨动开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“11”时,按“单步”键,即可转入到第01号“取指”微指令,启动程序运行。注:CA1、CA2由控制总线的E4、E5给出。键盘操作方式时由监控程序直接对E4、E5赋值,无需接线。开关方式时可将E4、E5接至控制开关CA1、CA2,由开关来控制。本系统设计的微指令字长24位,其控制位顺序如下:242322212019181716151413121110987654321S3S2S1S0MCnWE1A1BF1F2F3uA5uA4uA3uA2uA1uA0F1、F2、F3三个字段的编码方案如表1-1。F1字段F2字段F3字段151413选择121110选择987选择000LDRi000RAG000P1001LOAD001ALU-G001AR010LDR2010RCG010P3011自定义011自定义011自定义100LDR1100RBG100P2101LAR101PC-G101LPC110LDIR110299-G110P4111无操作111无操作111无操作表1-1系统涉及到的微程序流程见图1-2(图中各方框内为微指令所执行的操作,方框外的标号为该条微指令所处的八进制微地址)。控制操作为P4测试,它以CA1、CA2作为测试条件,出现了写机器指令、读机器指令和运行机器指令3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写。机器指令的执行过程如下:首先将指令在外存储器的地址送上地址总线,然后将该地址上的指令传送至指令寄存器,这就是“取指”过程。之后必须对操作码进行P1测试,根据指令的译码将后续微地址中的某几位强制置位,使下一条微指令指向相应的微程序首地址,这就是“译码”过程(其原理见图5-4)。然后才顺序执行该段微程序,这是真正的指令执行过程。在所有机器指令的执行过程中,“取指”和“译码”是必不可少的,而且微指令执行的操作也是相同的,这些微指令称为公用微指令,对应于图1-2中01、02、31地址的微指令。31地址为“译码”微指令,该微指令的操作为P(1)测试,测试结果出现多路分支。本实训用指令寄存器的前4位(I7-I4)作为测试条件,出现5路分支,占用5个固定微地址单元。当全部微程序流程图设计完毕后,应将每条微指令代码化,表6-2即为将图6-2的微程序流程按微指令格式转化而成的“二进制微代码表”。3、实验内容及参考代码本实验采用五条机器指令,根据上面所说的工作原理,设计参考实验程序如下:地址(二进制)机器指令(二进制)助记符说明0000000000000000INAX,KIN数据输入电路AX0000000100100001MOVBx,01H0001HBx00000010000000010000001100010000ADDAx,BxAx+BxAx0000010000110000OUTDISP,AxAx输出显示电路0000010101000000JMP00H00HPC0000011000000000注:其中MOV、JMP为双字长(32位),其余为单字长指令。对于双字长指令,第一字为操作码,第二字为操作数;对于单字长指令只有操作码,没有操作数。上述所有指令的操作码均为低8位有效,高八位默认为0。而操作数8位和16位均可。KIN和DISP分别为本系统专用输入、输出设备。4、实验步骤:Ⅰ、单片机键盘操作方式实验在进行单片机键盘控制实验时,必须把K4开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。开始01PCAR,PC+102RAMD_BUSIR31P(1)测试INADDMOVOUTJMP1011121314D_INPUTAxAxD_BUSLT1PCAR,PC+1AxLEDPCAR,PC+101030715BxD_BUSLT2RAMD_BUSBx01RAMD_BUSPC06LT1+LT2Ax010101控制开关00P(4)测试MWE(10)MRD(00)RUN(11)PCAR,PC+121PCAR,PC+12023(D_INPUT)D_BUSLT124RAMD_BUSLT12201LT1RAM30LT1LED27图1-2微程序流程图1、实验连线:实验连线图如图1-3所示。连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。2、写微代码:将开关K1K2K3K4拨到写状态即K1off、K2on、K3off、K4off,其中K1、K2、K3在微程序控制电路,K4在24位微代码输入及显示电路上。在监控指示灯滚动显示【CLASSSELECt】状态下按【实验选择】键,显示【ES--__】输入06或6,按【确认】键,显示为【ES06】,再按下【确认】键。监控显示为【CtL1=_】,输入1显示【CtL1_1】,按【确认】。监控显示【U-Addr】,此时输入【000000】6位二进制数表示的微地址,然后按【确认】键,监控指示灯显示【U_CodE】,显示这时输入微代码【007F90】,该微代码是用6位十六进制数来表示前面的24位二进制数,注意输入微代码的顺序,先右后左,按【确认】键则显示【PULSE】,按【单步】完成一条微代码的输入,重新显示【U-Addr】提示输入第二条微代码地址。按照上面的方法输入表1-3微代码,观察微代码与微地址显示灯的对应关系(注意输入微代码的顺序是由右至左)。表1-2为根据本实验程序流程图设计的二进制微代码表:微地址(二进制)S3S2S1S0MCNWE1A1BF1F2F3UA5...UA0000000000000000111111110010000000001000000000101101101000010000010000000010110111111011001000011000000000010100111000110000110100101000000001111000001000111000000010000111111000001001000000000011000111000000001001001000000000100000111000011001010000000000101101101000111001011000000101111000111000001001100000000000101101101001101001101000000010001111101000001010000000000000101101101010010010001000000000101101101010100010010000000010100111111010111010011000000000111111111000001010100000000011100111111011000010111000001101111001111010000011000111111110111001111010001011001000000010110111000001000表1-2二进制微代码表3.读微代码及校验微代码:先将开关K1K2K3K4拨到读状态即K1off、K