计算机组成原理实验指导 包含三个实验存储器实验微控制器实验
基本模型机的设计与实现(可能⽤到)
-----------------edited by ark实验⼀存储器实验⼀、实验⽬的
掌握静态随机存取存储器RAM⼯作特性及数据的读写⽅法。⼆、实验内容1、实验原理
主存储器单元电路主要⽤于存放实验机的机器指令,如图1-1所⽰,它的数据总线挂在外部数据总线EXD0~EXD7上;它的地址总线由地址寄存器单元电路中的地址寄存器74LS273(U37)给出,地址值由8个LED灯LAD0~LAD7显⽰,⾼电平亮,低电平灭;在⼿动⽅式下,输⼊数据由8位数据开关KD0~KD7提供,并经⼀三态门74LS245(U51)连⾄外部数据总线EXD0~EXD7,实验时将外部数据总线EXD0~EXD7⽤8芯排线连到内部数据总线BUSD0~BUSD7,分时给出地址和数据。它的读信号直接接地;它的写信号和⽚选信号由写⼊⽅式确定。该存储器中机器指令的读写分⼿动和⾃动两种⽅式。⼿动⽅式下,写信号由W/R` 提供,⽚选信号由CE`提供;⾃动⽅式下,写信号由控制CPU的P1.2提供,⽚选信号由控制CPU的P1.1提供。
图1-1 静态RAM 6264的电路
由于地址寄存器为8位,故接⼊6264的地址为A0~A7,⽽⾼4位A8~A12接地,所以其实际使⽤容量为256字节。6264有四个控制线:CS1第⼀⽚选线、CS2第⼆⽚选线、OE读线、WE写线。其功能如表1-1所⽰。CS1⽚选线由CE`控制(对应开关CE)、OE读线直接接地、WE写线由W/R`控制(对应开关WE)、CS2直接接+5V。
图中信号线LDAR由开关LDAR提供,⼿动⽅式实验时,跳线器LDAR拨在左边,脉冲信号T3由实验机上时序电路模块TS3提供,实验时只需将J22跳线器连上即可,T3的脉冲宽度可调。2、实验接线⑴ MBUS连BUS2;⑵ EXJ1连BUS3;⑶跳线器J22的T3连TS3;⑷跳线器J16的SP连H23;表1-1 静态RAM 6264的功能表
⑸跳线器SWB、CE、WE、LDAR拨在左边(⼿动位置)。3、实验步骤
⑴连接实验线路,仔细查线⽆误后接通电源。
⑵形成时钟脉冲信号T3,⽅法如下:在时序电路模块中有两个⼆进制开关\"运⾏控制\"和\"运⾏⽅式\"。将\"运⾏控制\"开关置为\"运⾏\"状态、\"运⾏⽅式\"开关置为\"连续\"状态时,按动\"运⾏启动\"开关,则T3有连续的⽅波信号输出,此时调节电位器W1,⽤⽰波器观察,使T3输出实验要求的脉冲信号;本实验中\"运⾏⽅式\"开关置为\"单步\"状态,每按动⼀次\"启动运⾏\"开关,则T3输出⼀个正单脉冲,其脉冲宽度与连续⽅式相同。
⑶给存储器的00地址单元中写⼊数据11,具体操作步骤如下:
如果要对其它地址单元写⼊内容,⽅法同上,只是输⼊的地址和内容不同。
⑷读出刚才写⼊00地址单元的内容,观察内容是否与写⼊的⼀致。具体操作步骤如下:
实验五微控制器实验⼀、实验⽬的
1、掌握时序信号发⽣电路组成原理。2、掌握微程序控制器的设计思想和组成原理。3、掌握微程序的编制、写⼊,观察微程序的运⾏。⼆、实验内容1、实验原理
实验所⽤的时序电路原理如图3-6所⽰,可产⽣4个等间隔的时序信号TS1~TS4 ,其中SP为时钟信号,由实验机上时钟源提供,可产⽣频率及脉宽可调的⽅波信号。学⽣可根据实验要求⾃⾏选择⽅波信号的频率及脉宽。为了便于控制程序的运⾏,时序电路发⽣器设计了⼀个启停控制触发器UN1B,使TS1~TS4信号输出可控。图中\"运⾏⽅式\"、\"运⾏控制\"、\"启动运⾏\"三个信号分别是来⾃实验机上三个开关。当\"运⾏控制\"开关置为\"运⾏\",\"运⾏⽅式\"开关置为\"连续\"时,⼀旦按下\"启动运⾏\"开关,运⾏触发器UN1B的输出QT⼀直处于\"1\"状态,因此时序信号TS1~TS4将周⽽复始地发送出去;当\"运⾏控制\"开关置为\"运⾏\",\"运⾏⽅式\"开关置为\"单步\"时,⼀旦按下\"启动运⾏\"开关,机器便处于单步运⾏状态,即此时只发送⼀个CPU周期的时序信号就停机。利⽤单步⽅式,每次只运⾏⼀条微指令,停机后可以观察微指令的代码和当前微指令的执⾏结果。另外,当实验机连续运⾏时,如果\"运⾏⽅式\"开关置\"单步\"位置,也会使实验机停机。2、微程序控制电路与微指令格式⑴微程序控制电路
微程序控制器的组成见图3-7,其中控制存储器采⽤3⽚E2PROM 2816芯⽚,具有掉电保护功能,微命令寄存器18位,⽤两⽚8D触发器74LS273(U23、U24)和⼀⽚4D触发器74LS175(U27)组成。微地址寄存器6位,⽤三⽚正沿触发的双D触发器74LS74(U14~U16)组成,它们带有清\"0\"端和预置端。在不判别测试的情况下,T2时刻打⼊微地址寄存器的内容即为下⼀条微指令地址。当T4时刻进⾏测试判别时,转移逻辑满⾜条件后输出的负脉冲通过强置端将某⼀触发器置为\"1\"状态,完成地址修改。
在该实验电路中设有⼀个编程开关,它具有三种状态:写⼊、读出、运⾏。当处于\"写\"状态时,学⽣根据微地址和微指令格式将微指令⼆进制代码写⼊到控制存储器2816中。当处于\"读\"时,可以对写⼊控制存储器中的⼆进制代码进⾏验证,从⽽可以判断写⼊的⼆进制代码是否正确。当处于\"运⾏\"状态时,只要给出微程序的⼊⼝微地址,则可根据微程序流程图⾃动执⾏微程序。图中微地址寄存器输出端增加了⼀组三态门(U12),⽬的是隔离触发器的输出,增加抗⼲扰能⼒,并⽤来驱动微地址显⽰灯。⑵微指令格式
微指令长共24位,其控制位顺序如下:
微程序流程图
其中UA5~ UA0为6位的后续微地址,A、B、C 三个译码字段,分别由三组译码控制电路译码产⽣各控制信号。C字段中的P(1)~P(4)是四个测试字位。其功能是根据机器指令及相应微代码进⾏译码,使微程序转⼊相应的微地址⼊⼝,从⽽实现微程序的顺序、分⽀、循环运⾏,其原理如图3-8所⽰,图中I7~I2为指令寄存器的第7~2位输出,SE5~SE1为微控器单元微地址锁存器的强置端输出。AR为算术运算是否影响进位及判零标志控制位,低电平有效。B字段中的RSB、RDB、RIB分别为源寄存器选通信号、⽬的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进⾏三个⼯作寄存器R0、R1及
R2的选通译码,其原理如图3-9,图中I0-I4为指令寄存器的第0~4位,LDRI为打⼊⼯作寄存器信号的译码器使能控制位。3、实验步骤
⑴根据机器指令画出对应的微程序流程图,如图3-10所⽰;
⑵根据微程序流程图设计微指令,并按微指令格式转换成⼆进制代码,如表3-5所⽰。
⑶实验接线
①跳线器J20、J21连上短路⽚;②跳线器J16上SP连H23;③ UJ1连UJ2。
⑷仔细查线⽆误后接通电源⑸观测时序信号
⽤双踪⽰波器(或⽤PC⽰波器功能)观察⽅波信号源的输出。⽅法如下:将\"运⾏控制\"开关置为\"运⾏\"、\"运⾏⽅式\"开关置为\"连续\"。按动\"启动运⾏\"开关,从⽰波器上可观察到TS1(J20)、TS2(J21)、TS3(J22)、TS4(J23)各点的波形,⽐较它们的相互关系,画出其波形,并标注测量所得的脉冲宽度,如下图。
⑹进⼀步了解微程序控制器的⼯作原理①写微程序
A. \"编程开关\"置为\"写⼊\"状态。
B. \"运⾏控制\"开关置为\"运⾏\",\"运⾏⽅式\"开关置为\"单步\"状态。
C. ⽤⼆进制模拟开关UA0~UA5置6位微地址,UA0~UA5的电平由LK0~LK5显⽰,⾼电平亮,低电平灭。D. ⽤⼆进制模拟开关MK1~MK24置24位微代码,24位微代码由LMD1~LMD24显⽰灯显⽰,⾼电平亮,低电平灭。E. 按动\"启动运⾏\"开关,启动时序电路,即可将微代码写⼊到E2PROM 2816的相应地址单元中。F . 重复C-E步骤,将表3-5的微代码全部写⼊E2PROM 2816中。②读微程序
A. 将\"编程开关\"设置为\"读\"状态。
B. \"运⾏控制\"开关置为\"运⾏\",\"运⾏⽅式\"开关置为\"单步\"状态。C. ⽤⼆进制模拟开关UA0~UA5置6位微地址。
D. 按动\"启动运⾏\"开关,启动时序电路,读出微代码,观察显⽰灯LMD1~LMD24的状态,检查读出的微代码是否与写⼊的相同,如果不同,则将\"编程开关\"置为\"写⼊\"状态。重新执⾏①即可。③单步运⾏
A. \"编程开关\"置于\"运⾏\"状态。
B. \"运⾏控制\"开关置为\"运⾏\",\"运⾏⽅式\"开关置为\"单步\"状态。
C. 系统总清,即\"总清\"开关拨0→1。使微地址寄存器U14~U16清零,从⽽明确本机的运⾏⼊⼝微地址为000000(⼆进制)。
D. 按动\"启动运⾏\"开关,启动时序电路,则每按动⼀次,读出⼀条微指令后停机,此时实验机上的微地址显⽰灯和微程序显⽰灯将显⽰所读出的⼀条指令。注意:在当前条件下,可将6芯排
座\"JSE1\"和\"UJ2\"相连,可通过强置端SE1~SE6⼈为设置微地址,从⽽改变下⼀条微指令的地址。设置⽅法如下:先将微地址开关置\"1\",再将UJ1上的排线换插到\"JSE1\",然后将某个或⼏个⼆进制开关置为\"0\",相应的微地址位即被强置为\"1\",从⽽改变下⼀条微指令的地址。④ 连续运⾏
A. 将\"编程开关\"置为\"运⾏\"状态。
B. \"运⾏控制\"开关置为\"运⾏\",\"运⾏⽅式\"开关置为\"连续\"状态。
C. 系统总清,即\"总清\"开关拨0→1。使微地址寄存器U14~U16清零,从⽽明确本机的运⾏⼊⼝微地址为000000(⼆进制)。D. 按动\"启动运⾏\"开关,启动时序电路,则可连续读出微指令。实验六基本模型机的设计与实现⼀、实验⽬的
1、在掌握部件单元电路实验的基础上,进⼀步将其组成系统以构造⼀台基本模型实验计算机。
2、设计五条机器指令,并编写相应的微程序,具体上机调试,掌握整机软硬件组成概念。⼆、实验原理
部件实验过程中,各部件单元的控制信号是⼈为模拟产⽣的,⽽本次实验将能在微程序控制下⾃动产⽣各部件单元控制信号,实现特定指令的功能。这⾥,实验计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出⼀条机器指令到指令执⾏结束的⼀个指令周期全部由微指令组成的序列来完成,即⼀条机器指令对应⼀个微程序。⑴有关微控制器部分在前⼀实验中已详细介绍⑵主存储器的读、写和运⾏
为了向主存储器RAM中装⼊程序或数据,并且检查写⼊是否正确以及能运⾏主存储器中的程序,必须设计三个控制操作微程序。
存储器读操作:拨动总清开关后,置控制开关SWC、SWA为\"0 0\"时,按要求连线后,连续按\"启动运⾏\"开关,可对主存储器RAM连续⼿动读操作。存储器写操作:拨动总清开关后,置控制开关SWC、SWA为\"0 1\"时,按要求连线后,再按\"启动运⾏\"开关,可对主存储器RAM进⾏连续⼿动写⼊。运⾏程序:拨动总清开关后,置控制开关SWC、SWA为\"1 1\"时,按要求连线后,再按\"启动运⾏\"开关,即可转⼊到第01号\"取址\"微指令,启动程序运⾏。上述三条控制指令⽤两个开关SWC、SWA的状态来设置,其定义如下:
⑶指令寄存器介绍
指令寄存器⽤来保存当前正在执⾏的⼀条指令。当执⾏⼀条指令时,先把它从内存取到缓冲寄存器中,然后再传送到指令寄存器。指令划分为操作码和地址码字段,由⼆进制构成,为了执⾏任何⼀条给定的指令,必须对操作码进⾏测试P(1),通过节拍脉冲T4的控制以便识别所要求的操作。\"指令译码器\"根据指令中的操作码进⾏译码,强置微控器单元的微地址,使下⼀条微指令指向相应的微程序⾸地址。
⑷输⼊/输出设备
本系统有两种外部I/O设备,⼀种是⼆进制代码开关KD0~KD7,它作为输⼊设备INPUT;另⼀种是数码显⽰块,它作为输出设备OUTPUT。例如:输⼊时,⼆进制开关数据直接经过三态门送到外部数据总线上,只要开关状态不变,输⼊的信息也不变。输出时,将输出数据送到外部数据总线上,当写信号(W/R)有效时,将数据打⼊输出锁存器,驱动数码块显⽰。⑸设计指令
根据基本模型机的硬件设计五条机器指令:外设输⼊指令IN、⼆进制加法指令ADD、
存数指令STA、输出到外设指令OUT、⽆条件转移指令JMP。指令格式如下:助记符 机器指令码 说 明IN 00000000 ;“外部开关量输⼊”KD0~KD7的开关状态→R0
ADD addr 0001 0000 ××××××××;R0+[addr]→R0 STA addr 0010 0000 ××××××××;R0→[addr]OUT addr 0011 0000 ××××××××; [addr]→BUSJMP addr 0100 0000 ××××××××; [addr]→PC说明:
指令IN为单字节指令,其余均为双字节指令,××××××××为addr对应的主存储器⼆进制地址码。⑹基本模型机监控软件的设计
本模型机监控软件主要完成从输⼊设备读⼊数据,进⾏简单算术运算后,将结果存⼊内存的某个单元,最后通过输出设备输出结果。监控软件详细如下:地 址 内容 助记符 说 明
00000000 00000000IN;\"INPUT DEVICE\"→R000000001 00010000ADD[0AH];R0+[0AH]→R000000010 00001010
00000011 00100000STA[0BH]; R0→[0BH]00000100 00001011
00000101 00110000OUT[0BH]; [0BH]→BUS00000110 00001011
00000111 01000000JMP[00H]; 00H→PC00001000 0000000000001001
0000101000000001;⾃定义参加运算的数00001011;求和结果存放单元三、实验步骤
⑴根据实验原理设计数据通路框图,如图6-1。
图6-1 数据通路框图
⑵根据机器指令画出对应的微程序流程图
本实验的微程序流程见图6-2,当拟定\"取指\"微指令时,该微指令的判别测试字段为P (1)测试。由于\"取指\"微指令是所有微程序都使⽤的公⽤微指令,因此P(1)的测试结果出现多路分⽀。本机⽤指令寄存器的前4位I7~I4作为测试条件,出现5路分⽀,占⽤5个固定微地址单元。
实验机控制操作为P(4)测试,它以控制开关SWC、SWA作为测试条件,出现了3路分⽀,占⽤3个固定微地址单元。当分⽀微地址单元固定后,剩下的其它地⽅就可以⼀条微指令占⽤控存⼀个微地址单元随意填写。
注意:微程序流程图上的单元地址为16进制。
⑶根据微程序流程图设计微指令并转换成16进制代码⽂件。
当全部微程序设计完毕后,应将每条微指令代码化,即按微指令格式将图3-13微程序流程图转化成⼆进制微代码表,如表6-1所⽰,再转换成16进制代码⽂件。监控程序的16进制⽂件格式(⽂件名C8JHE1):程序:$P00 00$P01 10$P02 0A$P03 20$P04 0B$P05 30$P06 0B$P07 40$P08 00$P0A 01微程序:$M00 108105$M01 82ED05$M02 48C004
$M03 04E004 $M04 05B004 $M05 06A205 $M06 019A95 $M07 0DE004 $M08 011004 $M09 83ED05 $M0A 87ED05 $M0B 8EED05 $M0C 96ED05 $M0D 018206$M0E 0FE004 $M0F 15A004 $M10 92ED05 $M11 94ED05 $M12 17A004 $M13 018005 $M14 182004 $M15 010A07
$M16 81D104$M17 100A07$M18 118A06⑷实验接线
a、跳线器J1~J12全部拨在右边(⾃动⼯作⽅式);b、跳线器J16、J18、J23、J24全部拨在左边;c、跳线器J13~J15、J19、J25拨在右边;d、跳线器J20~J22、J26、J27连上短路⽚;e、UJ1连UJ2,JSE1连JSE2,SJ1连SJ2;f、MBUS连BUS2;g、REGBUS连BUS5;h、PCBUS连EXJ2;i、ALUBUS连EXJ3;j、ALUO1连BUS1;k、EXJ1连BUS3;⑸读写程序
①⼿动⽅法写微程序参看实验六。
⼿动⽅法写代码程序(机器指令)步骤如下:
通过上⼀步将机器指令对应的微代码正确地写⼊E2ROM 2816芯⽚后,再进⾏机器指令程序的装⼊和检查。A. 将\"编程开关\"置\"运⾏\"位置,\"运⾏控制\"开关置\"运⾏\"位置,\"运⾏⽅式\"开关置\"单步\"位置。
B. 拨动总清开关(0→1),微地址寄存器清零,程序计数器清零。然后使控制开关SWC、SWA开关置为\"0 1\",按动⼀次\"启动运⾏\"开关,微地址显⽰灯LUA0~LUA5显⽰\"010001\",再按动⼀次\"启动运⾏\"开关,微地址显⽰灯LUA0~LUA5显⽰\"010100\",此时数据开关的内容置为要写⼊的机器指令,再按动⼀次\"启动运⾏\"开关,即完成该条指令的写⼊。若仔细阅读微程序流程,就不难发现,机器指令的⾸地址只要第⼀次给出即可,PC会⾃动加1,所以,每次按动\"启动运⾏\"开关,只有在微地址灯显⽰\"010100\"时,才设置内容,直到所有机器指令写完。
C. 写完程序后须进⾏检验。拨动总清开关(0→1)后,微地址清零,PC程序计数器清零,然后使控制开关SWC、SWA为\"0 0\按动\"启动运⾏\"开关,微地址灯将显⽰\"010000\",再按\"启动运⾏\"开关,微地址灯显⽰为\"010010\",第三次按\"启动运⾏\"开关,微地址灯显⽰为\"010111\",此时总线数据显⽰灯LZD0~LZD7显⽰为该⾸地址的内容,再按动⼀次\"启动运⾏\"开关,微地址灯显⽰为\"010000\",2位数码管即显⽰RAM中的程序。不断按动\"启动运⾏\"开关,可检查后续单元内容。
注意:每次仅在微地址灯显⽰为\"010000\"时,2位数码管显⽰的内容才是相应地址中的机器指令内容。②联机读/写微程序和机器指令
⽤联机软件的装载功能将16进制格式⽂件(⽂件名为C8JHE1)装⼊实验系统即可(详细操作见随机软件的README)。⑹运⾏程序①单步运⾏程序
A. \"编程开关\"置\"运⾏\"状态,\"运⾏⽅式\"开关置为\"单步\"状态,\"运⾏控制\"开关置为\"运⾏\"状态。B. 拨动总清开关(0→1),微地址清零,PC计数器清零,程序⾸地址为00H。
C. 按动\"启动运⾏\"开关,即单步运⾏⼀条微指令。对照微程序流程图,观察微地址显⽰灯是否和流程⼀致。② 连续运⾏程序
A. \"编程开关\"置\"运⾏\"状态,\"运⾏⽅式\"开关置为\"连续\"状态,\"运⾏控制\"开关置为\"运⾏\"状态。
B. 拨动总清开关,清微地址及PC计数器,按动\"启动运⾏\"开关,系统连续运⾏程序。如果要停⽌程序的运⾏,只需将\"运⾏控制\"开关置为\"停⽌\"状态,系统就停机。C. 停机后,可检查存数单元0BH中的结果是否正确。
因篇幅问题不能全部显示,请点此查看更多更全内容