计算机组成原理实验Vnew_第1页
计算机组成原理实验Vnew_第2页
计算机组成原理实验Vnew_第3页
计算机组成原理实验Vnew_第4页
计算机组成原理实验Vnew_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

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

文档简介

21-目录第1篇概述 1第2篇实验项目 4实验1运算器算术逻辑运算 4实验2运算器进位控制实验 7实验3运算器移位控制实验 8实验4存储器读/写实验 10实验5总线数据传送控制实验 12实验六控制器实验一(微码装入与执行) 14实验7控制器实验二(简单模型机设计与实现) 18实验8带移位功能的模型机设计与实现 24实验9具有中断功能的模型机设计与实现 29实验10复杂模型机的设计与实现 35第3篇附录 45附录1指令系统 45附录2系统硬件构成 52附录3上位机软件操作 78附录4芯片资料 88第1篇概述1系统的功能特点该实验系统主要是为配合《计算机组成原理》、《计算机组成与系统结构》课程的教学而研制的,具有如下特点:实验仪硬件主要由微过程控制器、存储器、运算器、寄存器、中断向量、地址、指令译码、输入输出及总线各单元电路组成;实验时只需将各单元之间有关的信号线进行连接即可;具有接线错误诊断功能。实验仪具有8位指令系统,24位微指令格式,提供了Windows软件支持,通过采集实验仪各单元的控制信号和数据,使上位机(PC机)实时监测实验仪的指令运行过程、数据流向、信号状态和时序波形等,并可在界面上设置、修改、下装指令码和微指令码,从而对下位机(实验仪)的工作进行单步、连续及快慢执行的控制。还可以在仿真方式下,实现实验仪的操作过程和实验结果状态分析。实验指导书提供了循序渐进的实验项目。首先是在脱机方式下用手动开关给出控制信号,控制运算器、寄存器、存储器、输入/输出各单元的运行,通过观察数据灯、地址灯和状态灯了解运行情况,使学生分别理解各单元的工作原理。然后在联机方式下,由少至多地进行指令类型设置,最终掌握整机部件的工作原理。实验仪具有中断响应、中断允许、中断禁止和中断向量的读入等中断处理控制功能。实验仪可选择配置CPLD芯片,应用EDA设计环境对硬件电路单元进行设计编程,下载到CPLD芯片,通过连接线来取代实验仪上的某个单元电路,这样可以培养学生的硬件设计能力。2技术指标机器字长为8位。即运算器、存储器、寄存器和数据总线均为8位,地址总线也是8位。指令条数为28条。指令字长8位,其中基本操作码4位,即当寄存器地址为两个时,这些指令操作码为4位,源寄存器地址2位,目标寄存器地址2位,而当寄存器地址为单个时,可实现指令操作码的扩展,这些指令操作码为6位,寄存器地址2位。指令寻址方式有直接寻址、间接寻址、变址寻址、相对寻址。指令类型有传送指令、算术逻辑运算指令、条件转移和无条件转移指令、输入/输出指令、调用子程序指令、返回指令、停机指令。还可以根据硬件组成自己设计各种指令。采用6116RAM芯片作为指令主存。使用低8位地址寻址,256个字节单元存放用户程序和数据,可在RAM中设置堆栈区,由堆栈指针SP指向。由二片74LS181芯片串联形成8位算术和逻辑运算器,再由74LS299组成移位运算器,并由GAL芯片组成进位控制和判零电路。由4片74LS374组成4个8位的通用寄存器,其中R3可做为堆栈指针SP,R2可做为变址寄存器SI。微控制存储器由3片2816EEPROM组成,容量为12824位,可存放128条指令。控存中的微指令可根据指令的功能及微指令的格式自行设计。指令的输入可通过下位机上的手动单元拨动输入,也可在上位机的软件界面内输入或修改并下装到实验仪上。实验仪上的时钟产生电路产生300HZ左右的时钟信号及T1、T2、T3、T4时钟周期,以提供整个实验仪电路的时序所需。在执行指令和微指令期间,上位机界面可实时显示整机所有的控制信号时序状态。实验仪上提供了指令地址灯(8位)、控制信号开关及灯18个、数据总线灯(8位)、微地址灯(7位)、微指令灯(24位)。第2篇实验项目实验1运算器算术逻辑运算1.实验目的(1)掌握运算器的简单数据传送通路;(2)验证运算器功能发生器(74LS181)的运算功能。2.实验设备YY-Z02计算机组成原理教学实验系统一台,排线若干。3.实验原理运算器数据通路如图1-1所示。其中运算器单元(ALUUNIT)的两个暂存器DA1和DA2的数据输入端已由暗线连接至总线(BUSUNIT)的D7~D0,两片74LS181的输出通过三态缓冲器74LS245,由排针短路器引出到总线,数据开关输入设备(INPUTDEVICE)经排线短路器接至总线,以拨入或输出数据D7~D0。其它相关的各种控制信号可直接从手动单元(MANUALUNIT)控制。实验时,进行运算的两个数据从总线上分别打入暂存器DA1和DA2(先下后上拨动一下),在控制信号S0、S1、S2、S3、M、Ci作用下产生不同的运算结果送至总线,由总线指示灯显示输出。注意:各控制信号的开关顺序和互斥拨入,若同时有两个或两个以上的总线控制信号有效,则报警单元会响铃报警;本实验中,和信号均有效时,结果不影响标志位。运算器核心部件74LS181功能表如表1-1所示:表1-174LS181功能表选择有效的输入输出数据S1S2S3S4M=H逻辑功能M=L算术运算(无进位)(有进位)LLLLLLLHLLHLLLHH减1(2的补码)LHLLLHLHLHHLLHHHHLLLHLLHHLHLHLHHHHLLHHLHHHHLHHHH4.实验步骤(1)熟悉实验仪的各个单元分布情况。(2)连接实验线路。本实验需要连接三个单元:INPUT、ALU、MANUAL,在电源断开的情况下,将需要的相同标号的插针用排线连接,注意排线的颜色必须两边一致,输入单元必须有接地线路(Ai=0),仔细检查接线无误后,再接通电源。(3)通过手动开关向DA1和DA2置数。具体操作步骤如图1-2:拨控制信号为初始状态拨控制信号为初始状态B-DA1=B-DA2=1拨INPUT数据开关(8位二进制数据)拨控制信号拨控制信号B-DA1=B-DA2=1拨INPUT数据开关(8位二进制数据)拨控制信号拨控制信号S3~S0、Mi、检查实验结果拨控制信号B-DA1=1B-DA2=图1-2操作流程图(4)拨入控制信号S3~S0、M、Ci的值,选择74LS181功能,并置总线控制信号,,观察并记录总线上的显示灯,验证74LS181的算术和逻辑运算是否正确(灯亮表示“1”,灯灭表示“0”)。5.实验要求(1)置数DA1=65H,DA2=0A7H,改变控制信号S3~S0、Mi、的值,观察运算器的输出结果,记录到下表中,并与表1-1比较分析,得出结论。(2)思考题:若想要验证向DA1或者DA2中输入的数据是否正确,如何实现?表1-1算逻运算表DA1DA2S3~S0M=0(算术运算)M=1(逻辑运算)(无进位)(有进位)65H0A7H0000F=()F=()F=()65H0A7H0001F=()F=()F=()65H0A7H0010F=()F=()F=()65H0A7H0011F=()F=()F=()65H0A7H0100F=()F=()F=()65H0A7H0101F=()F=()F=()65H0A7H0110F=()F=()F=()65H0A7H0111F=()F=()F=()65H0A7H1000F=()F=()F=()65H0A7H1001F=()F=()F=()65H0A7H1010F=()F=()F=()65H0A7H1011F=()F=()F=()65H0A7H1100F=()F=()F=()65H0A7H1101F=()F=()F=()65H0A7H1111F=()F=()F=()实验2运算器进位控制实验1.实验目的(1)验证带进位控制的算术运算器功能发生器(74LS181)的功能;(2)按指定数据完成几种指定的算术运算。2.实验设备YY-Z02计算机组成原理教学实验系统一台,排线若干。3.实验原理有关进位表示FC和结果为零标志FZ的置位和清零的原理,请参见附录中的原理介绍。本实验在实验一的基础上,增加进位控制部分,主要通过控制和信号来实现。当或时,算术运算影响FC和FZ;当进行逻辑运算(M=1)时,清FC;通过MANUALUNIT中的开关的总清(1→0→1),也可以使FC和FZ清零。本实验的连线在实验一基础上,增加和信号的连线(同样从MANUALUNIT的开关引入到ALUUNIT),另外要将T4时钟信号从CLOCKUNIT时钟单元连接到微控制器单元MAINCONTORLUNIT的T4(MAINCONTROLUNIT的T1~T4已连接到其它各单元所需的T1~T4,,或者将CLOCKUNIT单元的KK2信号连接到MAINCONTROLUNIT的T4上(此时按KK控制开关有效)。4.实验步骤(1)连接实验线路:按照实验原理自行设计并连接线路,仔细检查连线无误后,接通电源。(2)将FC和FZ标志清零:拨开关1→0→1。(3)置控制信号(影响进位并带进位)或(影响进位不带进位),Ci=1。(4)用二进制数据开关向DA1和DA2置数:具体操作步骤见实验一。(5)置控制信号,,选择74LS181的功能为:F=A加B,此时总线显示灯上的数据为DA1加DA2的和。若是,则表示带当前进位标志进行加法运算;若,则表示不带当前进位标志进行加法运算。(6)按动开关START或KK,产生本次加法结果的标志FC或FZ(灯亮表示“1”,灯灭表示“0”)。5.实验要求(1)实验并记录5BH+0AH+FC的结果和标志。(2)实验并记录5BH0AH的结果和标志。(3)实验并记录0FH+32H+FC的结果和标志。(4)实验并记录12F0H+7C32H的结果和标志,写出操作流程。实验3运算器移位控制实验1.实验目的验证运算器的移位控制功能2.实验设备YY-Z02计算机组成原理教学实验系统一台,排线若干。3.实验原理移位运算的原理图参见附录2中的图2-4控制电路。本实验涉及的单元有:ALUUNIT、MANUALUNIT、CLOCKUNIT及MAINCONTROLUNIT。移位器74LS299的数据输入/输出端以排针短路器方式和总线相连,其控制信号、Mi、S1、S0均要从手动单元MANUALUNIT引入,也从手动单元MANUALUNIT中引入,接地GND。本实验中为便于总线数据的暂存操作,ALUUNIT的B-DA1和B-DA2要分开接线,例如B-DA2引脚接和前面一样接到MANUALUNIT的B-DA2,B-DA1引脚接到CLOCKUNIT中的KK2上,这样可以利用KK产生的脉冲将总线上的数据输入给DA1,实验其它时序信号由CLOCKUNIT和MAINCONTROLUNIT的T4完成。各控制信号的组合功能如表3-1表3-1控制信号功能S1S0M74LS299操作000任意保持0100循环右移0101带进位循环右移0010循环左移0011带进位循环左移任意11任意装数4.实验步骤(1)连接实验线路:ALUUNIT的B-DA1连接CLOCKUNIT中的KK2;ALUUNIT的B-DA2连接MANUALUNIT的B-DA2(反之亦可);CLOCKUNIT的T4接MAINCONTROLUNIT的T4,其余需要的信号同实验二连接。(2)从总线向移位器299直接置数:①拨动输入数据开关为要置的二进制数据;②置控制信号,Ai=0(数据进入总线);③拨动S1S0开关=11,按动一次START键,产生T4脉冲,将数据置入移位器299。(3)求两数之和后再置入299:①置数:,按KK将总线上的数存入DA1,修改总线数据,上下拨动B-DA2将数据置入DA2;②求和:置S3S2S1S0MCi=100101(即F=A加B算术运算),,,置,按动START键一次,如果有进位Cy灯亮;③将和数暂存DA1:此时总线上显示的是两数之和,置,按KK键一次,将总线上的和数暂存DA1;④和数装入299:置S3S2S1S0MCi=111100(即F=A运算,DA1保存的数据显示在总线上,刚好S1S0开关=11),按动START键一次。(4)移位:参照移位菜单,改变、M、S1、S0的值,按动START键,观察总线显示灯,记录移位结果。5.实验要求(1)将数据0B6H进行各种移位并记录结果和标志,分析结果是否正确。(2)将数据79H进行各种移位并记录结果和标志,分析结果是否正确。(3)设计一个实验电路,实现将0B6H+79H的和进行带进位循环左移的功能,画出接线图,写出实验步骤。(4)思考是否能实现双字节的循环移位?若能,写出你的实验方案(电路、边线和步骤);若不能,说出你的理由。实验4存储器读/写实验1.实验目的(1)掌握主存储器的构成和工作特性;(2)掌握读或写主存储器的方法。2.实验设备YY-Z02计算机组成原理教学实验系统一台,排线若干。3.实验原理本实验涉及的电路有存储器单元(MEMUNIT)、时序电路单元(CLOCKUNIT)、手动单元(MANUALUNIT)、地址单元(ADDRESSUNIT)、输入/输出单元(OUTPUT/INPUTUNIT)等。在脱机方式下,各单元的大部分控制信号都由MANUALUNIT的开关直接控制。例如,存储器单元的信号和信号由MANUALUNIT的和开关控制,表示读存储器,表示写存储器。由于MANUALUNIT中每个开关的结构都一样且彼此独立,如果某控制信号在MANUALUNIT中没有同名的开关与它对应,也可以用其他的开关代替。其连接原理图如图4-1所示。本实验中,产生存储器读写地址的方法是:由输入设备(INPUTDEVICE)直接把要读写的存储器地址打入地址寄存器AR中。先拨输入开关D7~D0,并使和Ai=0,将存储器读写地址送到总线。B-AR是给AR存数据的控制信号,低脉冲值有效(),将总线上的数据被写入AR;当B-AR没有脉冲时,AR(74LS273)的输入端就被锁住,其输入端的改变将不能影响到它的输出值。写存储器的方法是:先送存储器地址,由输入设备(INPUTDEVICE)将地址打入总线,并锁存在地址存储器AR中,再设置存储器为写状态(Yy-Z02实验仪上存储器芯片6116的恒接地),将数据写入指定地址的存储器单元内,置存储器写信号,撤消其他控制信号。数据在输出设备(OUTPUTDEVICE)上显示的方法是:置,Ai=0将要显示的总线数据送到发光管显示(Ai为OUTPUT/INPUTUNIT的线选地址)。4.实验步骤(1)连接实验线路:按照图4-1原理自行设计并连接实验线路,仔细检查连线无误后,接通电源。(2)置存储器地址:按照图4-2的操作顺序拨动开关。(3)置存储器内容。(4)依次在输出设备(OUTPUTDEVICE)显示存储器单元的地址和内容。置控制信号为初始值:置控制信号为初始值:,,,B-AR=0拨INPUT的数据开关(8位二进制地址)将地址送上总线,Ai=0,打开地址寄存器,B-AR=拨输入端控制信号:依上述做法,将寄存器地址送入地址寄存器将数据送上总线,置写寄存器信号,数据写入拨拨INPUT的数据开关(8位二进制数据)置读寄存器信号,将寄存器单元内容送上总线置,Ai=0,OUTPUT发光管显示存储器读出的数据图4-2存储器实验的操作流程5.实验要求(1)依次向三个存储器单元(01H、02H、03H)中分别写入数据(81H、6EH、2CH),并分别显示输出。(2)思考:把地址和数据写入存储器的操作有什么不同,为什么?实验5总线数据传送控制实验1.实验目的(1)理解总线的概念、作用和特性;(2)掌握用总线控制数据传送的方法。2.实验设备YY-Z02计算机组成原理教学实验系统一台,排线若干。3.实验原理总线是在计算机各部件之间实现数据、地址和控制信号传送功能的公用信息线。本实验涉及的电路有寄存器单元(REGUNIT)、时序电路单元(CLOCKUNIT)、手动单元(MANUALUNIT)、运算器单元(ALUUNIT)、输入/输出单元(OUTPUT/INPUTUNIT)等,存储器、寄存器、输入/输出单元等互相之间都不是直接相连的,而是分别挂到总线上,通过总线达到互相连接的目的。各个部件都有自己的输入输出控制信号,通过对这些信号的有效控制,就可以正确地通过总线把数据传送给不同的部件。其实验原理图如图5-1所示。本实验在脱机方式下完成,各部件的控制信号大部分都用MANUALUNIT中的开关手工控制。由于MANUALUNIT中每个开关的结构都一样且彼此独立,如果某控制信号在MANUALUNIT没有同名的开关与它对应,也可以用其他的开关代替。本实验的时序信号用到T4,可将CLOCKUNIT中KK2的插座引入单脉冲,既将KK2连接到MAINCONTROLUNIT的T4。每按动一次KK,在T4插座上得到一个脉冲。或改由START开关控制,具体做法是:连接CLOCKUNIT中T4插座与MAINCONTROLUNIT的T4插座,每按动一次START开关,T4插座上得到一个脉冲。4.实验步骤(1)连接实验线路:按照图5-1原理自行设计并连接实验线路,仔细检查连线无误后,接通电源。(2)输入一个数据,放入某个寄存器中。(3)将该寄存器中的数据进行移位运算,结果在OUTPUT/INPUTUNIT的输入设备(OUTPUTDEVICE)的发光管上显示,同时观察进位标志位CY的值。具体操作步骤见图5-2。图5-2存储器实验的操作流程图5.实验要求(1)输入数据94H,放入寄存器R0中。(2)将R0中的数据带进位循环左移一位,结果在OUTPUT/INPUTUNIT的输出设备(OUTPUTDEVICE)上显示,同时观察进位标志位CY的值。(3)将R0中的数据循环右移一位,结果在OUTPUT/INPUTUNIT的输出设备(OUTPUTDEVICE)发光管上显示,同时观察进位标志位CY的值。(4)思考:系统总线的类型及在计算机中的作用。实验六控制器实验一(微码装入与执行)1.实验目的(1)掌握时序产生器、微控制器的工作原理;(2)掌握微程序的编制、装入、执行方法,观察微程序的运行过程。2.实验设备YY-Z02计算机组成原理教学实验系统一台,排线若干。3.实验原理本实验实验主要是针对微控制器单元来进行的,所涉及的电路只有微控制单元(MAINCONTROLUNIT)和时序电路单元(CLOCKUNIT)。通过微控制单元中的编程开关(三个状态)来控制实现微码装入、校验、执行。微码装入与校验时的微地址,由手动单元(MANUALUNIT)的开关拨入(经排线连接)。图6-1是该实验连接线路图,图6-2是其对应的微程序流程图和控制台操作图,表6-1是控存中的微指令编码。时序电路单元(CLOCKUNIT)中的T1~T4信号,必须送至MAINCONTROLUNIT的T1~T4(通过排线),其他各个单元使用的时序信号T1-T4均已和MAINCONTROLUNIT的T1~T4连接好。图6-1连接线路图

图6-1连接线路图图6-2微程序流程图表6-1实验六微码表微地址微代码BTOOTBFUNCFSS3S2S1S0MCiN下址微指令注释00H01C008000000011100000000001000J(3)01HDC4002110111000100000000000010PC->AR,PC=PC+102H610003011000010000000000000011RAM->IR03H00C010000000001100000000010000J(1)04HC10005110000010000000000000101RAM->AR05H820001100000100000000000000001IN->DR06HC10007110000010000000000000111RAM->AR07H410020010000010000000000100000RAM->DA208H000001000000000000000000000001NULL09HDC400C110111000100000000001100PC->AR,PC=PC+10AHC40E0F1100010000001110000011110->AR0BH000001000000000000000000000001NULL0CH21000D001000010000000000001101RAM->DA10DHC40E0E1100010000001110000011100->AR0EH058109000001011000000100001001DA1->OUT0FH22001C001000100000000000011100IN->DA11CHDC401D110111000100000000011101PC->AR,PC=PC+11DH04BE0A000001001011111000001010DA1->RAM20H300021001100000000000000100001DR->DA121H87E51100001111110010100000001DA1+DA2->DR,CyNCn22HC10023110000010000000000100011RAM->AR23H108001000100001000000000000001DR->RAM24HC10028110000010000000000100101RAM->AR25H210026001000010000000000100110RAM->DA126HDC4027110111000100000000100111PC->AR,PC=PC+127HC10028110000010000000000101000RAM->AR28H058101000001011000000100000001DA1->OUT29H21002A001000010000000001000000RAM->DA12AHE44101111001000100000100000001DA1->PC,PC+1有效30HDC4004110111000100000000000100PC->AR,PC=PC+131HDC4006110111000100000000000110PC->AR,PC=PC+132HDC4022110111000100000000100010PC->AR,PC=PC+133HDC4024110111000100000000100100PC->AR,PC=PC+134HDC4029110111000100000000101001PC->AR,PC=PC+14.实验步骤(1)连接实验线路:按照图6-1实验线路,仔细检查连线无误后,接通电源。(2)编写微代码:参见附录2的6.2微指令格式一节(3)装入微代码方法一(脱机手工装入):①将微控器单元(MAINCONTROLUNIT)右上角的编程开关置于“PROG”状态。②将时序电路单元(CLOCKUNIT)中的/STEP开关置于“STEP”状态。③从手动单元(MANUALUNIT)中的开关“MA6~MA0”上拨入微地址MA6~MA0④从微代码开关MK23~MK0上拨入微代码,24位开关对应着24位显示灯(灯亮表示“1”,灯灭表示“0”)。⑤按动START按键,启动时序,即将24位微代码写入到控存(2816)的相应单元(由微地址MA6~MA0所指定)中。⑥重复步骤①~⑤,即可将微指令代码一条条装入控存。方法二(联机装入):参见附录3《上位软件操作》。(4)检验微码方法一(手动校验):①将编程开关置于“READ”状态。②将时序电路单元(CLOCKUNIT)中的开关置于“”状态。③从手动单元(MANUALUNIT)中的开关“MA6~MA0”上拨入微地址MA6~MA0④按动START按键,启动时序,读入微代码,观察显示灯MD23~MD0的状态(灯亮表示“1”,灯灭表示“0”)。检查读出的微代码是否与写入的相同。如果不同,则将编程开关重新置于“PROG”状态,再执行操作3,装入正确的微代码即可。⑤重复步骤①~④,即可校验每一条微指令代码。 方法二(联机校验):参见附件中《上位软件使用说明书》的“第三章操作流程”。(5)执行微程序方法一(单步运行):①将编程开关置于“RUN”状态,将时序电路单元(CLOCKUNIT)中的开关置于“STEP”状态②操作开关(在实验板的右下角),使信号“1→0→1”,从而使微地址MA6~MA0清零,即本机的微程序运行入口为0000000B(00H)。③按动START按键,启动时序电路,每按动读出并执行一条微指令代码,然后停机。此时,实验台上的微地址显示灯MA6~MA0和微代码显示灯MD23~MD0的状态(灯亮表示“1”,灯灭表示“0”)指示所读出微指令的地址和代码。方法二(连续运行):①将编程开关置于“RUN”状态,将时序电路单元(CLOCKUNIT)中的开关置于“RUN”状态。②同单步运行的②。③按动START按键,启动时序,则可以连续读出(执行)微指令代码,片刻之后,将开关置于“STEP”状态,即可停机。(6)观测时序信号。用联机软件的时序功能或者双踪示波器,观察方波信号T1~T4的输出。将时序电路中的开关置为“RUN”,按动START按键,从方波上可观察到T1~T4各时刻的波形,比较它们的相互关系,画出波形。5.实验要求(1)要求会编写简单微代码,(如加法运算A+B),在脱机方式下将代码装入微控制器,并经校验后运行输出。(2)将表6-1中的微代码联机装入控制存储器并校验。(3)从零地址开始执行微程序,观察并记录微地址的变化顺序,并解释其原因。(4)观察微地址显示灯MA6~MA0和微代码显示灯MD23~MD0的最低7位MD6~MD0状态是否始终保持一致?从理论上讲,是否应该这样?分析为什么。(5)若要强制使微程序从07H单元开始执行,请结合微程序控制器的结构和原理,说明你的方法,并实现。(提示:使用控制信号SE6~SE0来实现)。实验7控制器实验二(简单模型机设计与实现)1.实验目的(1)掌握各部件单元电路实验的基础上,进一步将其组成系统,构成一台基本模型计算机;(2)为其定义五条机器指令,编写相应的微程序和测试程序,并上机调试,掌握整机概念。2.实验设备YY-Z02计算机组成原理教学实验系统一台,排线若干。3.实验原理在部件实验过程中,各部件的控制信号是通过手动开关、人工模拟产生的,而在本次及以后的整机实验中,各部件的控制信号是在微程序的控制下,由控制器自动产生的,从而实现特定的指令功能。计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应着一段微程序。图7-1是本实验基本模型机的原理图。各部件挂接在总线上,从主存中取出的指令保存在指令寄存器IR中,并将指令码送往指令译码器(INSUNIT),指令译码器则同时结合微控制器及其他部件有关信息进行译码,产生控制微程序流程的信号SE6~SE0,送回微控器。微控器根据SE6~SE0修改下址,产生后继微指令地址,在下一个微周期,则从后继续指令地址取出微指令。微指令的24位编码经内部译码器译码,产生各种微操作控制信号,送往全机各个部件,以控制各部件协调运转,完成微指令所规定的功能。在一段微程序执行完后,相应的该条机器指令也就执行完毕。(1)指令系统在本实验中,定义了五条单操作数机器指令,格式和功能如下:(在本实验中DR只为R0)INDR,[PORTAR]格式:I7I6I5I4I3I2I1I0110000DRPORTAR功能:输入设备(INPUTDEVICE)开关数据送DR,PORTAR为输入设备的端口地址。ADDDR,[ADDR]格式:I7I6I5I4I3I2I1I0110001DRADDR功能:(DR)+[ADDR]→DR,结果影响标志;直接寻址,直接地址ADDR在指令第二字节。③STA[ADDR],DR格式:I7I6I5I4I3I2I1I0110010DRADDR功能:DR→[ADDR];直接寻址,DR的内容送主存ADDR地址单元。④ OUT[PORTAR],[ADDR]格式:I7I6I5I4I3I2I1I0110011××ADDRPORTAR功能:[ADDR]→LED;直接寻址,主存ADDR地址单元的内容送输出设备发光管显示。PORTAR为输出设备的端口地址,由PORTAR中的Ai位线选。⑤ JMPADDR格式:I7I6I5I4I3I2I1I0110011××ADDR功能:ADDR→PC,微程序跳转到主存ADDR地址继续执行。(2)控制台操作为了向主存中手动装入程序和数据,检查写入是否正确,并能启动程序执行,设计了三段控制台操作微程序,以支持三条控制台操作指令,其定义和功能如表7-1所示,后继实验均是相似的控制台操作,不累述。表7-1控制台操作指令开关KBKA控制台指令功能10读内存拨动CLR开关“1→0→1”01写内存拨动CLR开关“1→0→1”00或11启动程序拨动CLR开关“1→0→1”(3)微程序流程图及微码图7-2控制台操作微程序流程图图7-3实验七微程序流程图控制台操作和以上五条指令操作的微程序流程图分别如图7-2和7-3所示,微代码如表7-1。表7-1实验七微码表微地址微代码BTOOTBFUNCFSS3S2S1S0MCiN下址微指令注释00H01C008000000011100000000001000J(3)01HDC4002110111000100000000000010PC->AR,PC=PC+102H610003011000010000000000000011RAM->IR03H00C010000000001100000000010000J(1)04HC10005110000010000000000000101RAM->AR05H820001100000100000000000000001IN->DR06HC10007110000010000000000000111RAM->AR07H410020010000010000000000100000RAM->DA208H000001000000000000000000000001NULL09HDC400C110111000100000000001100PC->AR,PC=PC+10AHC40E0F1100010000001110000011110->AR0BH000001000000000000000000000001NULL0CH21000D001000010000000000001101RAM->DA10DHC40E0E1101100000001110000011100->AR0EH058109000000011000000100001001DA1->OUT0FH22001C001001100000000000011100IN->DA110H000000000000000000000000000000NULL1CHDC401D110110000100000000011101PC->AR,PC=PC+11DH04BE0A000001001011111000001010DA1->RAM1EH000000000000000000000000000000NULL1FH000000000000000000000000000000NULL20H300021001100000000000000100001DR->DA121H87E51100001111110010100000001DA1+DA2->DR,CyNCn22HC10023110000010000000000100011RAM->AR23H108001000100001000000000000001DR->RAM24HC10025110000010000000000100101RAM->AR25H210026001000010000000000100110RAM->DA126HDC4027110111000100000000100111PC->AR,PC=PC+127H0D8001000011011000000000000001RAM->AR28H000000000000000000000000000000NULL29H000000000000000000000000000000NULL2AH000000000000000000000000000000NULL2BH000000000000000000000000000000NULL2CHD1401E1101110001000000000011110NULL(4)测试程序 为测试编制的微程序是否实现了指令规定的功能,须按照指令格式编写一段程序(机器码),装入内存并执行,通过检查结果来判断微程序是否正确。表7-2就是一段测试程序。表7-2实验七测试程序地址内容助记符备注00H11000000B00000000B;INR0,[PORTAR];端口地址00HIN->R001H02H11000100B00010000B;ADDR0,[10H];直接地址10HR0+[10H]->R003H04H11001000B00010000B;STAR0,[10H];直接地址10HR0->[10H]05H06H11001100B00010000B00000000B;OUT[10H],[PORTAR];直接地址10H;端口地址00H[10H]->LED07H08H09H11010000B00000000B;JMP00H;立即数00H00H->PC0AH…………10H;和;须检验的结果4.实验步骤(1)连接实验线路:按照原理图7-1连接实验线路,仔细检查接线无误后,接通电源。(注意:图中连线上有椭圆圈的,需用排线自行连接,否则,线路板内部已连接好。)(2)装入微程序并校验:参见实验六操作。(3)装入程序并校验:方法一:手动装入和校验(使用控制台操作指令进行机器指令的装入与校验)①装入:a.将编程开关置于“RUN”状态,开关置于“STEP”状态。b.操作开关,使信号“1→0→1”,程序计数器PC清零,微地址清零。c.开关KBKA置为“01”d.按动启动键START一次,则从控存00H单元开始执行微指令,微地址显示灯显示“0001010”,第二次按动START键,微地址显示灯显示“001111”,此时,将数据开关置为要写入的机器指令代码或数据,再按动START键两次,即完成该条指令的写入,同时PC指向下一个内存单元。继续按动START键,当且仅当微地址显示灯显示“②校验a.将编程开关置于“RUN”状态,开关置于“STEP”状态b.操作开关,使信号“1→0→1”,程序计数器PC清零,微地址清零。c.开关KBKA置为“10”d.动键START键三次,从控存00H单元开始执行微指令,微地址显示灯显示为0001001→0001100→0001110,此时,输出设备(OUTPUTDEVICE)发光管上将显示内存00H号单元的内容,检查是否与写入的数据相同。继续按动START键,当且仅当微地址显示灯显示0001001时,发光管上显示的内容才是内存的数据。每个循环PC自动增加1,由此,可检查后续单元的内容是否正确。③若校验有误,则返回到①重新装入,直到所有单元的内容正确。方法二:联机读/写程序:参见附录3《上位软件操作》。(4)运行程序方法一(单步运行):将编程开关置于“RUN”状态:开关置于“STEP”状态;开关KBKA置为“00”或“11”,即启动程序状态。操作开关使信号“1→0→1”,从而使微地址清零,程序计数器PC清零,即程序首地址为00H。每按动一次START键,就单步运行一条微指令,此时可通过观察微地址显示灯,来判断微程序执行的流程是否正确。方法二(连续运行):将编程开关置于“RUN”状态:开关置于“RUN”状态;开关KBKA置为“00”或“11”。同上单步运行。按动START键,启动时序,系统从0地址连续运行程序;稍候,将开关拨至“STEP”状态,系统停机。方法三(联机运行):参见附录3《上位软件操作》。(5)检查结果是否正确。若有误,则检查和修改微程序代码和程序代码,从(2)开始重新操作,直至正确。5.实验要求(1)用手动方式装入表7-2程序代码,并校验。(2)使用联机方式装入微程序代码。(3)分别采用脱机和联机方法执行程序,比较和检查结果是否正确。若有误,查找原因并改正。(4)分析实验的指令系统中,如何实现隐含对R0(目的操作数)的寻址?如果要隐含使用R1做目的操作数,如何实现?(5)分析手动装入程序代码时,为什么必须要在微地址显示灯显示“0001111”时,才从开关上置入指令代码?同时,在手动校验时,为什么只有当微地址显示灯显示“0001001”时,发光管上显示的内容才是内存的数据?(6)若将OUT指令的操作码改为0101,则微程序必须做什么样的修改?(7)在图7-2的微程序流程图上,最多还可以添加几条机器指令?

实验8带移位功能的模型机设计与实现1.实验目的综合应用所学计算机组成有原理基本知识,设计并实现具有移位功能的计算机。2.实验设备YY-Z02计算机组成原理教学实验系统一台,排线若干。3.实验原理本实验基本原理如图8-1所示,是在实验七所描述的模型机的基础上,搭接移位控制电路,其控制信号、M、S1、S0从微控制器产生,其余原理同实验七。其接线图如图8-2所示。图8-1移位模型机的原理图图8-2移位模型机实验接线图(1)指令系统在本实验中,定义了九条机器指令,格式和功能如下(DR默认为R0):①STA[ADDR],DR格式:I7I6I5I4I3I2I1I0100000DRADDR功能:(DR)0→[ADDR];直接寻址,DR的内容送主存ADDR地址单元。②JMPADDR格式:I7I6I5I4I3I2I1I0100001××ADDR功能:ADDR→PC;跳转到主存ADDR地址继续执行。③ADDDR,[ADDR]格式:I7I6I5I4I3I2I1I011000000ADDR功能:(DR)+[ADDR]→DR;结果影响标志;直接寻址。直接地址ADDR在指令第二字节。④INDR,[PORTAR]格式:I7I6I5I4I3I2I1I0110001DRPORTAR功能:输入设备(INPUTDEVICE)开关状态→DR,PORTAR为输入设备的端口地址。⑤OUT[PORTAR],DR格式:I7I6I5I4I3I2I1I0110010DRPORTAR功能:(DR)→LED;直接寻址,DR寄存器的内容送输出设备发光管显示。PORTAR为输出设备的端口地址,由PORTAR中的Ai位线选。⑥RR格式:I7I6I5I4I3I2I1I0110011DR功能:DR寄存器的内容循环右移一位→DR,D0移入D7,移位后不影响FC。⑦RRC格式:I7I6I5I4I3I2I1I0110100DR功能:DR寄存器的内容带进位循环右移一位→DR,DR最高位受FC影响,移位后影响FC。⑧RL格式:I7I6I5I4I3I2I1I0110101DR功能:DR寄存器的内容循环左移一位→DR,D7移入D0,移位后不影响FC。⑨RLC格式:I7I6I5I4I3I2I1I0110110DR功能:DR寄存器的内容带进位循环左移一位→DR,DR最高位受FC影响,移位后影响FC。(2)控制台操作(同实验七)(3)微程序流程图及微码以上九条指令的微程序流程图分别如图8-3所示,其微码如表8—1。图8-3移位模型机微程序流程图表8-1实验八微码表微地址微代码BTOOTBFUNCFSS3S2S1S0MCiN下址微指令注释00H01C008000000011100000000001000J(3)01HDC4002110111000100000000000010PC->AR,PC+102H610003011000010000000000000011RAM->IR03H00C010000000001100000000010000J(1)04H210005001000010000000000000101RAM->DA105HC54120110001010100000100100000DA1->AR,J(2)06HC10007110000010000000000000111RAM->AR07H410011010000010000000000010001RAM->DA208H000001000000110000000000000001NULL09HDC400C110111000100000000001100PC->AR,PC+10AHC40E0F1100010000001110000011110->AR0BH000001000000000000000000000001NULL0CH21000D001000010000000000001101RAM->DA10DHC40E0E1100010000001110000011100->AR0EH058109000001011000000100001001DA1->OUT0FH22001C001000100000000000011100IN->DA111H300012001100000000000000010010DR->DA112H87E501100001111110010100000001DA1+DA2->DR13HC10014110000010000000000010100MAR->AR14H820001100000100000000000000001IN->DR15HC10016110000010000000000010110MAR->AR16H118001000100011000000000000001DR->LED17H080819000010000000100000011001循环右移18HDC4004110111000100000000000100PC->AR,PC+119H880101100010000000000000000001299->DR1AH080A1B000010000000101000000001带进位循环右移1BH880101100010000000000000000001299->DR1CHDC401D110111000100000000011101PC->AR,PC+11DH04BE0A000001001011111000001010DA1->RAM1EH08041F000010000000010000011111循环左移1FH880101100010000000000100000001299->DR20H108001000100001000000000000001DR->RAM21HE44101111001000100000100000001DA1->PC,PC+1=122H080623000010000000011000100011带进位循环左移23H880001100010000000000000000001299->DR30HDC4006110111000100000000000110PC->AR,PC+131HDC4013110111000100000000010011PC->AR,PC+132HDC4015110111000100000000010101PC->AR,PC+133H100C17000100000000110000010111DR->29934H100C000100000000110000011010DR->29935H100C1E000100000000110000011110DR->29936H100C22000100000000110000100010DR->2994.实验操作过程(1)连接实验线路:按图8-2连接线路,仔细检查连线无误后,接通电源。(2)装入微程序并校验:参见实验六微码的装入与执行。(3)测试程序的装入与校验:参见实验七表8-2所示的是该实验的测试程序。

表8-2测试程序地址内容助记符备注00H11000100B000000000B;INR0,[PORTAR];端口地址00H输入设备开关数据→R001H02H11000000B00001111B;ADDR0,[0FH];直接地址0FH(R0)+[0FH]→R003H04H11011000B;RLCR0R0带进位循环左移一位→R005H11000100B00000000B;INR0,[PORTAR];端口地址00HINPUT开关数据→R006H07H11010000B;RRCR0R0带进位循环右移一位→R008H11010100B;RLR0R0循环左移一位→R009H10000000B00010000B;STA[10H],R0;直接地址10H(R0)→[10H]0AH0BH11001000B00000000B;OUT[PORTAR],R0;端口地址00H(R0)→LED0CH0DH10000100B00000000B;JMP00H;直接地址00H00H→PC0EH0FH01000011B;累加的数据自定10H;结果检查的结果(4)运行程序:参见实验七(5)检查结果。在PC机上通过联机方式可对实验仪进行单步微指令执行、单步指令执行、连续指令执行及断点运行,通过PC机上显示的界面可观察当前微指令的数据流向、控制信号和各个单元的状态。还可以通过时序窗观察信号、数据的时序波形。通过这些手段可判断出实验是否正确连线,程序和微程序是否正确运行等内容。通过观察实验仪上发光二极管显示,检查结果是否与期望值相同,若不同,则先观察单步执行过程是否有误,有误则检查开关状态是否正确,无误再核对指令码和微码的编写是否正确,纠正错误后从第二步开始实验,直至得到正确实验结果。5.实验要求(1)通过联机方式装入、测试的程序。(2)编写并装入微程序代码。(3)分单步执行程序,实现各种移位功能,检查结果是否正确,如果不正确,查找原因并解决问题。(4)思考:如何设计实现双字节的联合移位?

实验9具有中断功能的模型机设计与实现1.实验目的综合应用所学计算机组成有原理基本知识,设计并实现具有中断功能的计算机。2.实验设备YY-Z02计算机组成原理教学实验系统一台,排线若干。3.实验原理本实验是在实现实验七和实验八的模型机设计的基础上,增加中断控制电路和中断向量输入电路,实现响应中断请求并转中断子程序及返回等功能。系统包含中断向量输入开关、中断向量输入缓冲器及D触发器。外部中断请就信号INT-EX由KK单脉冲产生作为D触发器的触发脉冲,产生内部中断请求信号INT。每当一条指令执行结束时都判断INT是否有效,若无效则继续下一条指令的执行,若有效则由微控制器产生中断响应信号,该信号一方面将中断向量开关从缓冲器读到总线并置入PC,使其转入中断程序执行,另一方面将两个D触发器清零,使其无法响应外部中断请求。只有在微控器产生信号时才使两个D触发器能够响应外部中断请求。该实验连线将INSUNIT的寄存器译码电路输入输出信号均加以连接,这样可以使用所有寄存器,其中SP为R3寄存器,其余原理同前面两个实验,原理图如图9-1所示。图9-1具有中断功能模型机的原理图图9-2具有中断功能模型机的实验接线图(1)指令系统在本实验中,定义了十条机器指令,格式和功能如下:①ADDDR,SR格式:I7I6I5I4I3I2I1I00000SRDR功能:(SR)+(DR)→DR:不带进位但是影响进位(FC)和零位(FZ)。②HIT格式:I7I6I5I4I3I2I1I00001××××功能:停机,只有有中断时才会跳出,执行完成中断程序后继续执行下一条指令。③JMPADDR格式:I7I6I5I4I3I2I1I0100000××ADDR功能:ADDR→PC;结果不影响标志;直接寻址,直接地址ADDR在指令第二字节。图9-3具有中断功能模型机的微程序流程图④INDR,[PORTA]格式:I7I6I5I4I3I2I1I0110000DRPORTAR功能:输入设备(INPUTDEVICE)中的开关状态→DR,PORTAR为输入单元的端口地址。⑤OUT[PORTAR],DR格式:I7I6I5I4I3I2I1I0110001DRPORTAR功能(DR)→LED:直接寻址,DR寄存器的内容送输出单元发光管显示。PORTAR为输出设备(OUTPUTDEVICE)的端口地址,有PORTAR中的Ai位线选。⑥IRET格式:I7I6I5I4I3I2I1I0110010DR功能:中断程序返回指令。⑦INC格式:I7I6I5I4I3I2I1I0110011DR功能:(DR)+1→DR,相加后影响FC,FZ。图9-4中断处理流程图⑧MOVSP格式:I7I6I5I4I3I2I1I0110100××DATA功能:DATA→SP。⑨STI格式:I7I6I5I4I3I2I1I0110101××功能:中断允许。⑩CLI格式:I7I6I5I4I3I2I1I0110110××功能:中断禁止。(3)程序流程图及微码具有中断功能模型机的程序流程图如图9-3所示,中断处理流程图如图9-4所示,其微码如表9-1。表9-1微指令码表微地址微代码BTOOTBFUNCFSS3S2S1S0MCiN下址微指令注释00H01C008000000001100000000001000J(3)01HDC4002110111000100000000000010PC->AR,PC=PC+102H610003011000010000000000000011RAM->IR03H00C010000000001100000000010000J(1)04H500005010100000000000000000101DR->DA205H87E57F100001111110010101111111DA1+DA2->DR,CyNCn06H500007010100000000000000000111DR->DA207H87657F100001110110010101111111DA1+DA2->DR,CyNCn08H000001000000000000000000000001NULL09HDC400C110111000100000000001100PC->AR,PC=PC+10AHC40C1100010000001100000011110->AR0BH000001000000000000000000000001NULL0CH21000D001000010000000000001101RAM->DA10DHC40C0E1100010000001100000011100->AR0EH05BC09000001011011110000001001DA1->OUT0FH22001C001000100000000000011100IN->DA110H2C0004001011000000000000000100SR->DA111H2C0006001011000000000000000110SR->DA112H2C001E001011000000000000011110SR->DA113H2C0024001011000000000000100100SR->DA114H2C0026001011000000000000100110SR->DA115H2C0028001011000000000000101000SR->DA116H8C100011000000000001111111SR->DR17H02C045000000101100000001000101J(5)18HDC402A110111000100000000101010PC->AR,PC=PC+119HDC402C110111000100000000101100PC->AR,PC=PC+11AHDC4053110111000100000001010011PC->AR,PC=PC+11BHDC402F110111000100000000101111PC->AR,PC=PC+11CHDC401D110111000100000000011101PC->AR,PC=PC+11DH04810A000001001000000100001010DA1->RAM1EH50001F010100000000000000011111DR->DA21FH87D87F100001111101100001111111DA1-DA2>DR,CyNCn20H81007F100000010000000001111111RAM->DR21H10807F000100001000000001111111DR->RAM22HE4417F111001000100000101111111DA1->PC,PC+1有效23H024040000000100100000001000000J(4)24H500025010100000000000000100101DR->DA225H87587F100001110101100001111111DA1-DA2>DR,CyCn26H500027010100000000000000100111DR->DA227H84EE7F100001111110111001111111DA1&&DA2->DR,CyNCn28H500029101100000000000000101001DR->DA229H84FA7F100001111111101001111111DA1|DA2->DR,CyNCn2AH21002B001000010000000000101011RAM->DA12BH54002E010101000000000000101110SI->DA22CH21002D001000010000000000101101RAM->DA14.实验操作过程(1)连接实验线路:按图9-2连接线路,仔细检查连线无误后,接通电源。(2)编写并装入微程序代码根据图9-3给出的流程图,编写微程序代码表,并用上位机软件装入到上位机中。(3)测试程序为测试所编制的微程序是否实现了指令规定的功能,可以按照指令格式编写一段程序(机器码),装入内存并执行,通过检查结果来判断微程序的正确性。该实验的测试程序如表9-2所示:

表9-2测试程序地址内容助记符备注00H11010100B;STI开中断01H11010000B11111111B;MOVSP0FFH;立即数0FFH0FFH→SP02H03H11000000B00000000B;INR0,PORTAR;端口地址00HINPUTDEVICE开关数据→R004H05H11000001B00000000B;INR1,[PORTAR];端口地址00HINPUTDEVICE开关数据→R106H07H00000001B;ADDR1,R0(R1)+(R0)→(R1)08H00010000B;HLT停机,等待中断09H10000000B00000101B;JMP;直接地址05H05H→PC0AH0DH11001100B;INCR0(R0)+1→R00EH11000100B00000000B;OUTPORTAR,R0;端口地址00H(R0)→LED0FH10H11010100B;STI开中断11H11001000B;IRET中断返回(4)运行程序与检查结果方法参见实验七5.实验要求(1)通过联机方式装入、测试的程序;(2)编写并装入微程序代码;(3)设置中断向量,连续执行程序,检查中断响应是否正确,若不正确要查找原因并改正。

实验10复杂模型机的设计与实现1.实验目的综合应用所学计算机组成有原理基本知识,设计并实现具有移位功能的计算机。2.实验设备YY-Z02计算机组成原理教学实验系统一台,排线若干。3.实验原理本实验包含所有各部件,从主存中取出的指令保存在指令寄存器IR中,并将指令码送往指令译码器(INSUNIT)译码,微控器综合各方面的信息,产生微操作序列号,送往全机各个部件,以控制各部件有序运转,完成机器指令所规定的功能,其原理图如图10-1所示,简略接线如图10-2所示。图10-1复杂模型机原理图(1)指令系统在本实验中,定义了28条机器指令,格式和功能如下:1)一般指令格式的指令格式:I7I6I5I4I3I2I1I0OPSRDR①ADDDR,SR格式:I7I6I5I4I3I2I1I00000SRDR功能:(SR)+(DR)→DR图10-2复杂模型机的接线图②ADCDR,SR格式:I7I6I5I4I3I2I1I00001SRDR功能:(SR)+(DR)+FC→D③SUBDR,SR格式:I7I6I5I4I3I2I1I00010SRDR功能:(SR)-(DR)→DR④SUCDR,SR格式:I7I6I5I4I3I2I1I00011SRDR功能:(SR)-(DR)-FC→DR⑤ANDDR,DR格式:I7I6I5I4I3I2I1I00100SRDR功能:(SR)∧(DR)→DR⑥ORDR,DR格式:I7I6I5I4I3I2I1I00101SRDR功能:(SR)∨(DR)→DR⑦MOV1DR,SR格式:I7I6I5I4I3I2I1I00110SRDR功能:(SR)→DR⑧HLT格式:I7I6I5I4I3I2I1I00111××××功能:停机,只有有中断时才会跳出该指令。2)存储器访问及转移类指令(有4条)格式:I7I6I5I4I3I2I1I010MODOP2

温馨提示

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

评论

0/150

提交评论