计算机组成原理微指令实验报告
计算机组成原理微指令实验报告
计算机组成原理实验报告
时间:2012.11.26 地点:实验⼤楼4楼北成绩:
班级:xxxxxx 学号:xxxxxx 姓名:xx
班级:xxxxxx 学号:xxxxxxx 姓名:xx
题⽬:微程序控制器实验
⼀、实验⽬的:
1.掌握微程序控制器的组成原理;
2.掌握微程序的编制、写⼊,观察微程序的运⾏过程。
⼆、实验内容及要求:
3.熟悉微指令的编写⽅式,编码格式,了解机器指令与微指令之间的关联。
4.设计微指令,以实现从存储器中读出8位⼆进制数并进⾏加法计算的功能。
三、实验步骤、观察与思考:
实验步骤:
1.连线,将实验电路板上的所需单元⽤排线连接起来,以实现数据通路。
2.对微控制器的读写操作
(1)⼿动读写:(默认为已实现线路连接)
进⾏⼿动读或写,都需要⼿动给出地址,系统专门安排了⼀个ADDR单元,作为地址输⼊。ADDR单元实为⼀个加减计数器。当开关为“加1”挡时,在T2的下沿计数器进⾏加1计数;当开关为“减1”挡时,在T2的下沿计数器进⾏减1计数;当开关置为“置数”挡时,计数器置初值,其作⽤相当于直通,SA7…SA0的输出值就是⼆进制开关组的值。
在实验中选择什么挡位,取决于写⼊数据的地址是否连续,如果是连续地址,选择“加1”或是“减1”挡会⽅便⼀些。如果是离散地址,选择“置数”挡会⽅便⼀些。
1)⼿动对微控制器进⾏编程(写)。
a.修改连线,以⽅便实现⼿动控制(完成读写操作后恢复);
b.将MC单元编程开关置为“编程”挡,时序单元状态开关置为“单步”挡,ADDR
单元状态开关置为“置数”挡。
c.使⽤ADDR单元的低六位SA5…SA0给出微地址MA5…MA0,微地址可以通过MC
单元的MA5…MA0微地址灯显⽰。
d.CON单元SD27…SD20,SD17…SD10,SD07…SD00开关上置24位微代码,待写
⼊值由MC单元的M23…M0 24位LED灯显⽰。
e.启动时序电路(按动⼀次TS按钮),即将微代码写⼊到EEPROM2816的相应地
址对应的单元中。
f.重复c,d,e三步,将所需写⼊的微代码写⼊到2816芯⽚中(⼆进制微代码在
表⼀中列出)。
2)⼿动对微控制器进⾏校验(读)。
a.接线⽅法和编程⼀样。
b.将MC单元编程开关置为“校验”挡,时序单元状态开关置为“单步”挡,ADDR
1计算机的工作原理
单元状态开关置为“置数”挡。
c.使⽤ADDR单元的低六位SA5…SA0给出微地址MA5…MA0,微地址可以通过MC 单元的MA5…MA0微地址灯显⽰。相应地址单元的数据将会被读出,并在MC单元的M23…M0 24位LED灯显⽰。重复本步,检查2816芯⽚中相应地址单元的数据是否和所设计的微代码⼆进制数据相同,如果不同,则说明写⼊操作失败,应重新写⼊。(2)联机读写。
1)将微程序写⼊⽂件。微指令格式如下:
$M 1F 112233
其中,间隔⽤四个空格,微指令地址为两位⼗六进制,伪指令值为六位⼗六
进制,按顺序为⾼、中、低。
分号为注释符
2)写⼊微程序:
⽤联机软件的“转储→装载数据”功能将该格式⽂件(*.TXT)装载⼊实验
系统。装⼊过程中,在软件的输出区的“结果”栏会显⽰装载信息。
3)校验位程序:
选择联机软件的“转储→刷新指令区”可以读出下位机所有的机器指令和微
指令,并在指令区显⽰。检查微控制器相应地址单元的数据是否与设计的微
指令相同,如果不同,则说明写⼊操作失败,应重新写⼊,可以通过联机软
件单独修改某个单元的微指令。
3.运⾏微程序
微程序设计:
加法指令ADD:R0的数据与存储器某个单元的数据相加,结果送到R0。
输⼊指令IN
输出指令OUT
停机指令HTL
表1⼆进制数微代码表
地址⼗六进制⾼五位S3-S0 A字段B字段C字段MA5-MA0
00 000001 00000 0000 000 000 000 000001
01 007070 00000 0000 111 000 001 110000
04 006D45 00000 0000 110 110 101 000101
05 106006 00010 0000 110 000 000 000110
06 102007 00010 0000 010 000 000 000111
07 053201 00000 1010 011 001 000 000001
08 106009 00010 0000 110 000 000 001001
09 200401 00100 0000 000 010 000 000001
0A 10600B 00010 0000 110 000 000 001011
0B 103001 00010 0000 011 000 000 000001
30 001404 00000 0000 001 010 000 000100
2
31 006D48 00000 0000 110 110 101 001000
32 00140C 00000 0000 001 010 000 001100
33 00141C 00000 0000 001 010 000 011100
34 006D4A 00000 0000 110 110 101 001010
35 001420 00000 0000 001 010 000 100000
$M 00 000001 ; NOP
$M 01 006D43 ; PC->AR,PC加1
$M 03 107070 ; MEM->IR, P<1>
ADD:$M 30 001404 ; R0->A 实现相加
$M 04 006D45 ; PC->AR
$M 05 106006 ; MEM->AR
$M 06 102007 ; MEM->B
$M 07 053201 ; A加B->R0
STA:$M 31 006D48 ; PC->AR 实现存数
$M 08 106009 ; MEM->AR
$M 09 200401 ; R0->MEM
LAD:$M 34 006D4A ; PC->AR 实现取数
$M 0A 10600B ; MEM->AR
$M 0B 103001 ; MEM->R0
IN:$M 32 183001 ; IN->R0 实现in->R0
OUT:$M 33 280401 ; R0->OUT 实现R0->out
HTL:$M 35 000035 ; NOP 停机
四、结论:
我们在本次试验中实现了对存储器读写,⾸先IN单元输⼊10011001到MEM(0), IN单元输⼊10010110
到MEM(1),经过CPU对MEM的读取,(地址线⼿动给出)实现了结果输出结果00101111(FC=1)在OUT单元上显⽰2F,FC=1
根据我们的设计,我们的微程序对应机器指令如下:
助记符机器指令码说明
ADD 0000 0000 R0 + MEM → R0
IN 0010 0000 IN → R0
OUT 0011 0000 RO → OUT
HLT 0101 0000 停机
五、实验⼼得:
这次试验中,我们收获颇丰,熟悉了微程序控制器的使⽤⽅法,了解了其内部的逻辑结构,以及设计微程序时机器指令与微程序的对应⽅式,另外,对于微指令格式有了⼀个更深⼊的认识。
实验前,我们做了预习⼯作,但实际操作时,仍有些不当的地⽅,经两个⼈的努⼒,最终攻破许多难
关。
3

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。