微程序实验
一、实验结果(12分)
1、实验结果记录(必做)(8分)
微程序如下表-1:
地址 |
十六进制 |
高五位 |
S3~S0 |
A |
B |
C |
MA5~MA0 |
含义 |
00 |
00 00 01 |
00000 |
0000 |
000 |
000 |
000 |
000001 |
NOP |
01 |
00 70 70 |
00000 |
0000 |
111 |
000 |
001 |
110000 |
CON(ICS)→IR |
04 |
00 24 05 |
00000 |
0000 |
010 |
010 |
000 |
000101 |
(R0)→B |
05 |
04 B2 01 |
00000 |
1001 |
011 |
001 |
000 |
000001 |
(A)+(B)→R0 |
30 |
00 14 04 |
00000 |
0000 |
001 |
010 |
000 |
000100 |
(R0)→A |
32 |
18 30 01 |
00011 |
0000 |
011 |
000 |
000 |
000001 |
IN→R0 |
33 |
28 04 01 |
00101 |
0000 |
000 |
010 |
000 |
000001 |
(R0)→OUT |
35 |
00 00 35 |
00000 |
0000 |
000 |
000 |
000 |
110101 |
NOP |
微程序图如下
实验数据通路图如下:
分析微程序图可知:
(1) IN指令: 32H->01H ,即实现IN功能,将输入的数给R0
(2) ADD指令,微程序序列:
00H-> 01H ->30H -> 04H -> 05H -> 01H
即实现R0->A ,R0->B ,(A)+(B)->R0,将R0+R0的结果给R0
(3)OUT指令:33H-> 01H
实现(R0)→OUT,输出R0到out单元格
(4)HLT指令:35H-> 35H
NOP,不操作。
开始运行:
①先输入23H,如下图所示:
当前微指令实现R0->A,上一条微指令地址为30H,当前微指令地址为04H,
实现了R0=23H,如下图:
②微当前指令实现R0->B,上一条微指令地址04H,当前微指令地址为05H,如下图所示,已经实现了R0=23H
③当前微指令实现A+B->R0,上一条微指令地址05H,当前微指令地址为01H,实现了R0=46H,如下图:
三、输出结果
实现0C+0C=18(H)。
本实验的微程序实际上实现乘2功能。例:
本结果中:输入为0C(12D),输出为18(24D),输出如下图所示:
二、实验问题与思考(3分)
- 控制存储器和主存储器在操作控制上有哪些不同?有什么本质区别?
①主存储器:
是计算机硬件的一个重要部件,并能由中央处理器(CPU)直接随机存取。现代计算机是为了提高性能,又能兼顾合理的造价,往往采用多级存储体系。即由存储容量小,存取速度高的高速缓冲存储器,存储容量和存取速度适中的主存储器是必不可少的。用来存放指令和数据。
②控制存储器:用来存放实现全部指令系统的所有微程序,它是一种只读型存储器 .一旦微程序固化,机器运行时则只读不写.
- 控制存储器的一个存储单元包含多少个二进制位?在逻辑上划分为几个字段,各有什么用途
24位,10个字段
储存单元如下:
高五位从左到右对应的位M23、M22、WR、RD、IOM,21-20未WR,RD控制读写,18-15位 S3--S0选择运算功能,A、B、C为3个译码字段,MA5~MA0为6位的后续微地址。
- 在表-1中,地址为35的控存单元中的微指令是否会执行,为什么?
不会,因为只有该指令的下一跳地址为35,表中没有指令的下一跳为35,除了35指令,所以不会执行。除非强制跳转到该指令才会执行。