计算机组成原理实验考试样题
一、设计任务 说明:以下蓝色的部分要求考生填写
(1)将计组实验仪上模型机指令系统(8条指令)中的减法指令改为求反指令。
(2)在(1)的基础上扩展两条指令:减1指令和逻辑或指令。
二、 按照设计任务的要求,完成表1指令功能与格式(6分)
表1 指令功能与格式
名称 | 助记符 | 功能 | 指令格式 | ||
IR7 IR6 IR5 IR4 | IR3 IR2 | IR1 IR0 | |||
求反 | NOT Rd | Rd(———) → Rd | 0 0 0 1 | × × | Rd1 Rd0 |
减1 | DEC | Rd减1→Rd | 1 0 0 0 | × × | Rd1 Rd0 |
逻辑或 | OR | Rd 或 Rs→Rd | 1 0 0 1 | Rs1 Rs0 | Rd1 Rd0 |
注:“减1”和“逻辑或”的操作码可以在1000-1111之间。若“减1”使用过的操作码,则“逻辑或”就不能再用,反之亦然。
三、根据要求完成图1微程序流程图,(14分)(注:TEC-5中原来的框图在图1中用红色省略号表示,控制台微程序流程图与TEC-5相同,即保持不变)
图1 微程序流程图
四、根据图1微程序流程图编写微程序代码表(15分)
表2 微程序代码表
微指令 | ADD | NOT | DEC | OR |
|
|
| ||||||
当前微地址 | 10 | 20 | 11 | 21 | 18 | 22 | 19 | 23 |
|
|
|
|
|
下一微地址 | 20 | 0F | 21 | 0F | 22 | 0F | 23 | 0F |
|
|
|
|
|
P0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
P1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
P2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
备用 |
|
|
|
|
|
|
|
|
|
|
|
|
|
TJ |
|
|
|
|
|
|
|
|
|
|
|
|
|
LDIR |
|
|
|
|
|
|
|
|
|
|
|
|
|
PC+1 |
| 1 |
| 1 |
| 1 |
| 1 |
|
|
|
|
|
LDPC# |
|
|
|
|
|
|
|
|
|
|
|
|
|
AR+1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
LDAR# |
|
|
|
|
|
|
|
|
|
|
|
|
|
LDDR1 | 1 |
| 1 |
| 1 |
| 1 |
|
|
|
|
|
|
LDDR2 | 1 |
|
|
|
|
| 1 |
|
|
|
|
|
|
LDRi |
| 1 |
| 1 |
| 1 |
| 1 |
|
|
|
|
|
SW-BUS# |
|
|
|
|
|
|
|
|
|
|
|
|
|
RS-BUS# |
|
|
|
|
|
|
|
|
|
|
|
|
|
ALU-BUS# |
| 1 |
| 1 |
| 1 |
| 1 |
|
|
|
|
|
RAM-BUS# |
|
|
|
|
|
|
|
|
|
|
|
|
|
CER# |
|
|
|
|
|
|
|
|
|
|
|
|
|
CEL# |
|
|
|
|
|
|
|
|
|
|
|
|
|
LR/W# |
|
|
|
|
|
|
|
|
|
|
|
|
|
Cn# |
|
|
|
|
|
|
|
|
|
|
|
|
|
M |
| 0 |
| 1 |
| 0 |
| 1 |
|
|
|
|
|
S0 |
| 1 |
| 0 |
| 1 |
| 0 |
|
|
|
|
|
S1 |
| 0 |
| 0 |
| 1 |
| 1 |
|
|
|
|
|
S2 |
| 0 |
| 0 |
| 1 |
| 1 |
|
|
|
|
|
S3 |
| 1 |
| 0 |
| 1 |
| 1 |
|
|
|
|
|
注:后缀为#的信号都是低电平有效信号,为了在控存EEPROM中用“1”表示有效,这些信号在控制器中经过反相后送往数据通路。
五、根据微指令代码表编写控存代码(17分)
表3 控存代码表
微地址 | CM3 | CM2 | CM1 | CM0 |
00 | 00 | 00 | 00 | 48 |
01 | 00 | 00 | 00 | 00 |
02 | 03 | 40 | 04 | 03 |
03 | 00 | 00 | 40 | 02 |
04 | 01 | 08 | 00 | 05 |
05 | 00 | 00 | 44 | 04 |
06 | 00 | 80 | 08 | 07 |
07 | 00 | 10 | 04 | 1E |
08 | 00 | 08 | 20 | 0F |
09 | 00 | 08 | 84 | 04 |
0A | 00 | 08 | 80 | 02 |
0B | 00 | 08 | A4 | 1D |
0C | 00 | 08 | A4 | 1E |
0D | 00 | 80 | 0C | 0E |
0E | 00 | 0C | 04 | 1D |
0F | 00 | 80 | 08 | 90 |
10 | 00 | 03 | 00 | 20 |
11 | 00 | 01 | 00 | 21 |
12 | 00 | 03 | 00 | 1A |
13 | 00 | 11 | 80 | 1B |
14 | 00 | 10 | 80 | 1C |
15 | 00 | 00 | 11 | 0F |
16 | 00 | 00 | 14 | 0F |
17 | 00 | 10 | 14 | 0F |
18 | 00 | 01 | 00 | 22 |
19 | 00 | 03 | 00 | 23 |
1A | B8 | 24 | 10 | 0F |
1B | 01 | 20 | 10 | 0F |
1C | 03 | 44 | 10 | 0F |
1D | 01 | 08 | 00 | 0D |
1E | 01 | 08 | 00 | 06 |
1F | 00 | 10 | 20 | 0F |
20 | 90 | 24 | 10 | 0F |
21 | 08 | 24 | 10 | 0F |
22 | F0 | 24 | 10 | 0F |
23 | E8 | 24 | 10 | 0F |
填写表3,根据表3的数据,用软件UltraEdit-32编写如下四个文件:
cm0.bin cm1.bin cm2.bin cm3.bin ,然后通过串口调试助手软件,将以上四个文件下载到相应的控存芯片上。
六、对机器指令组成的简单程序(验证程序)进行手工译码(14分)
表4 机器代码表
内存地址 | 机器指令 | 机器代码 | |
二进制 | 十六进制 | ||
00H | ADD R3,R2 | 00001011B | 0BH |
01H | OR R1, R0 | 10010001B | 91H |
02H | NOT R1 | 00010001B | 11H |
03H | STA R1, [R2] | 00111001B | 39H |
04H | DEC R0 | 10000000B | 80H |
05H | OUT R2 | 01111000B | 78H |
06H | STP | 01100000B | 60H |
七、连线和设置通用寄存器R0、R1、R2、R3及内存单元(10H)的值(10分)
1、将微程序控制器与数据通路联机,组成一台模型机。
2、根据表5的数据在模型机上设置通用寄存器R0、R1、R2、R3及(10H)的值
表5 初始通用寄存器和内存单元数据表
R0 | R1 | R2 | R3 | (10H) |
55H | AAH | 10H | 07H | 35H |
八、存储验证程序机器代码(7分)
根据表4,将验证程序的机器代码存储到模型机RAM相应的单元中。
九、运行结果(20分+1分)
用单拍方式或连续方式执行一遍程序。执行完程序后,查看通用寄存器R0、R1、R2、R3及(10H)的值并填入下表,最后分析运行结果。
表6 最终通用寄存器和内存单元数据表(实验结果表)
寄存器号 | R0 | R1 | R2 | R3 | (10H) |
理论值 | 54H | 00 H | 10 H | 17 H | 00H |
实验值 |
|
|
|
|
|