计算机组成原理 实验报告四 基本模型机设计与实现
计算机组成原理实验报告学院:计算机科学与信息 专业: 班级:姓名 学号 实验组实验时间 指导教师 成绩实验项目名称 实验四、基本模型机设计与实现实验目的1. 在掌握部件单元电路实验的基础上,进一步将其组成系统地构造一台基本模型计算机。2. 为其定义五条机器指令,并编写相应的微程序,上机调试掌握整机概念。实验原理本次实验将在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU 从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。本实验采用五条机器指令:IN(输入) 、ADD(二进制加法) 、STA(存数) 、OUT(输出) 、 JMP(无条件转移) ,其指令格式如下(前八位为操作码):助记符 机器指令码 说明IN R0,SW 0000 0000 “ DEVICE“ADD R0,addr 0001 0000×××××××× R0+[addr]R0STA addr,R0 0010 0000×××××××× R0[addr]OUT BUS,addr 0011 0000×××××××× [addr]BUSJMP addr 0100 0000×××××××× addrPC其中 IN 为单字节( 8 位) ,其余为双字节指令, ××××××××为 addr 对应的二进制地址码。根据以上要求设计数据通路框图,系统涉及到的微程序流程见下图,当拟定“取指”微指令时,该微指令的判别测试字段为 P(1)测试。由于“取指”微指令是所有微程序都使用的公用微指令,因此 P(1)的测试结果出现多路分支。本机用指令寄存器的前四位(IR7-IR4)作为测试条件,出现 5 路分支,占用 5 个固定微地址单元,最多可出现 16 路分支。当全部微程序设计完毕后,应将每条微指令代码化,实验书 P63-64 表(一)即为将下图的微程序流程图按微指令格式转化而成的“二进制微代码表” 。指令划分为操作码和地址码字段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试 P(1) ,通过节拍脉冲 T4 的控制以便识别所要求的操作。 “指令译码器”根据指令中的操作码译码,强置微控器单元的微地址,使下一条微指令指向相应的微程序首地址。本系统有两种外部 I/O 设备,一种是二进制代码开关,它作为输入设备(DEVICE) ;另一种是 LED 块,它作为输出设备(OUTPUT DEVICE) 。本实验设计机器指令程序如下:地址(二进制) 内容(二进制) 助记符号 说明0000 0000 0000 IN R0,SW “ DEVICE“R00001 0001 0000 ADD R0,09H R0+「09H」R00010 0000 10010011 0010 0000 STA 0BH,R0 R0「0BH」0100 0000 10110101 0011 0000 OUT BUS ,0AH 「0AH 」BUS0110 0000 10100111 0100 0000 JMP 00H 00HPC1000 0000 00001001 0101 0101 自定1010 1010 1010 自定1011 求和结果实验内容1. 将机器程序和其对应的微控制程序写入。2. 记录①单步微程序②单步机器程序③程序运行与暂停三种方式下所得的实验结果,其中“程序运行与暂停”方式,随机取其中 5 次运行结果进行记录即可。3.根据如下给出的机器指令助记符,结合“实验十 基本模型机设计与实现”中的机器程序及微程序的代码,①写出与该机器指令助记符相对应的机器程序及微程序的代码,②并记录下在“单步机器程序”方式下的运行结果。助记符号 说明IN R1,SW “ DEVICE”R1SUB R1,09H R1-[09H]R1STA OAH,R1 R1[0AH]OUT BUS,OCH [0CH]BUSJMP 00H 00HPC其中由 SW 输入 R1 的值为“8F”,09H 单元的值为“30”,0CH 单元的值为“22”。实验环境DICE-CH2000 增强型计算机组成原理实验仪 一台 + 排线若干实验步骤1. 将本实验所需连接信号:S3、S2、S1、 S0、M,/CN,LOAD ,/CE ,WE ,LDR0, LDDR1,LDDR2,LDIR,LDPC,LDAR,LDCZY,/PC-B,/ALU-B,/SW-B,LDR1,LDR2,/R0-B,/R1-B ,/SR-B,CZ,LDARH,A8,A9 ,CS1→IOCS,G→E6(J1) ,G→EA(J2) ,Cn+4→Cn+4I,CZ1→CZ2 ,CZL→CZQ 一一进行连接,检查无误后接通电源进入实验。2. 机器程序和其对应的微控制程序的写入1) 用按键输入法手动写入机器程序,即在“P 态”按起始地址 00H,然后再按下“主存(ME) ”命令键(即程序存储器读写键) ,将程序手动写入。2)用“装载” (LOAD)命令键快捷完成,其操作方法是:在闪动的“P. ”下,键入数字键“1” (基本模型机代号) ,然后再键入“装载” (LOAD)命令键,实验装置自动装载由数字键定义的基本模型机对应的微控制程序,装载完毕自动返“P.”待令。程序:P00 00 机器指令格式说明:P01 10 P※※ ※※P02 09 地址 机器代码P03 20 P ※※ ※※P04 0B 机器代码P05 30 程序地址P06 0A 机器指令P07 40P08 00P09 55P0A AAM00 00 00 00 80 M※※※※※※※※※※M01 00 60 06 40 地址 微指令代码M02 80 10 08 04 M ※※ ※※※※※※※※M03 80 40 00 20 32 位微控制代码M04 80 08 00 A0 微程序地址(偏移地址)M05 00 04 01 60 微指令M06 29 82 02 80M07 80 40 00 10M08 80 01 01 80M09 80 40 00 50M0A 80 00 00 80M0B C0 20 00 80M0C 08 00 07 B0M20 00 02 04 80M21 00 60 06 C0M22 00 60 06 E0M23 00 60 06 90M24 00 60 06 D0注意:控存实际地址=段地址+偏移地址,四个控存的段地址为00,40H,80H,C0H,这在键盘输入微程序时要注意控存实际地址计算。SW 输入值为 F0,0B 单元存储内容为 FF。3. 运行程序①单步微程序键入数字键 00(PC 地址从 00H 开始) ,然后每按动一次“单步” (STEP )命令键,运行一条微指令。其运行结果见实验结果部分。②单步机器程序键入数字键 00H(PC 地址) ,然后每按动一次“宏单” (SCAL)命令键,运行一条机器指令。其运行结果见实验结果部分。③程序运行与暂停键入数字键 00H(PC 地