微程序实验
一、实验结果(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指令,所以不会执行。除非强制跳转到该指令才会执行。