计算机组成原理课程设计报告64765 联系客服

发布时间 : 星期日 文章计算机组成原理课程设计报告64765更新完毕开始阅读f7df2790fe00bed5b9f3f90f76c66137ee064fdf

的高4位提供给微程序控制器,低4位提供给数据通路。 上述12条指令的微程序流程设计如图六,每条微指令可按前述的微指令格式转换成二进制代码,然后写入5个28C64中。

为了写入的正确,还设计了以下五个控制台操作数程序:

① 存储器写操作(KWE):按下复位按钮CLR#后,微地址寄存器状态为全零。此时置SWC=0,SWB=1,SWA=0,按启动按钮后微指令地址转入27H,从而可对RAM连续进行手动写入。

② 存储器读操作(KRD):按下CLR#后,置SWC=0,SWB=0,SWA=1,可对RAM连续进行读操作。

③ 启动程序(PR):按下CLR#后,置SWC=0,SWB=0,SWA=0,用数据开关SW7-SW0设置内存中程序的首地址,可以执行“取指”微命令。

④ 写寄存器操作(KLD):按下CLR#后,置SWC=0,SWB=1,SWA=1,可对寄存器堆中的寄存器连续进行写操作。

⑤ 读寄存器操作(KRR):按下CLR#后,置SWC=1,SWB=0,SWA=0,可对寄存器堆中的寄存器连续进行读操作。 名称 加法 减法 乘法 逻辑与 存数 取数 无条件转移 条件转移 停机 中断返回 开中断 关中断 助记符 ADD Rd,Rs SUB Rd,Rs 功能 指令格式 R7 R6 R5 R4 0 0 0 1 R3 R2 RS1 RS0 RS1 RS0 RS1 RS0 RS1 RS0 RS1 RS0 RS1 RS0 RS1 RS0 D3 D2 × × × × × × × × R1 R0 RD1 RD0 RD1 RD0 RD1 RD0 RD1 RD0 RD1 RD0 RD1 RD0 × × D1 D0 × × × × × × × × Rd+Rs→Rd 0 0 0 0 Rd-Rs→Rd Rd&Rs→Rd MUL Rd,Rs Rd*Rs→Rd 0 0 1 0 AND Rd,Rs 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 STA Rd,[Rs] Rd→[Rs] LDA Rd,[Rs] [Rs]→Rd JMP [Rs] JC D STP IRET INTS INTC [Rs] →PC 若C=1 则PC+D→PC 暂停运行 返回断点 允许中断 禁止中断 表一 (3)熟悉微程序流程图

5

图六

(4)按照实验要求,连接试验台的数码开关K0-K15、控制开关、按钮开关、时钟信号源和微程序控制器。

(5)熟悉微指令格式的定义,按此定义将控制台指令微程序的8条微指令按十六进制编码,列于下表(表二)制台指令的功能由SWC,SWB,SWA三个二进制开关的状态来指定(KRD=001B,KWE=010B,PR=010B)。

单拍(DP)方式执行控制台微程序,读出上述八条微指令,用P字段和微地址指示灯跟踪微指令执行情况,并与上表数据对照。

微指令地址 00H 07H 27H 3DH 微指令编码 005C00207H 005412005H 40544003DH 00140003CH 微指令地址 3CH 17H 3FH 3EH 微指令编码 405C8003DH 00544003FH 409C0003EH 005C8003FH 表二

6

(6)比较实验数据:

按以上实验步骤得到实验数据如下表(表三) 微指令地址 00H 07H 27H 3DH 3CH 17H 3FH 3EH 表三 微指令编码 005C00007H 005C00207H 40044003DH 00140003CH 405C8003DH 00544003FH 409C0003EH 005C8003FH 读出的微指令编码 005C00007H 005C00207H 40044003DH 00140003CH 405C8003DH 00544003FH 409C0003EH 005C8003FH 2、CPU组成与机器指令执行实验

(1)本次实验用到前面实验中的所有电路,包括运算器、存储器、通用寄存器堆、程序计数器、指令寄存器、微程序控制器等,将几个模块组合成为一台简单计算机。

在本次实验中,数据通路的控制将有微程序控制器来完成。CPU从内存取出一条机器指令到执行指令结束的一个机器指令周期,是有微指令组成的序列来完成的,即一条指令对应一个微程序,其框图如图七

图七

(2)对机器指令系统组成的简单程序进行译码。将下表的程序按指令格式手工汇编成十六进制机器代码。如表四 地址 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 指令 LDA R0,[R2] LDA R1,[R3] ADD R0,R1 JC +5 AND R2,R3 SUB R3,R2 STA R3,[R2] MUL R0,R1 STP JMP [R1] 机器代码 01011000 01011101 00000100 10010101 00111110 00011011 01001011 00100100 0110XXXX 100001XX 表四

(3)按照图六框图,参考前面实验的电路图完成连线。其中,为把操作数攒送给通用寄存器组RF,数据通路上的RS1、RS0、RD1、RD0应分别与IR3至IR0连接,WR1、WR0也应连接到IR1、IR0上。

7

(4)将表七中的程序机器代码用控制台操作存入内存中,并根据程序的需要,用数码开关SW7-SW0设置通用寄存器R2、R3及其内存相关单元的数据。(注:由于设置通用寄存器时会破坏内存单元的数据,因此应先设置寄存器的数据,再设置内存数据。)

(5)用单拍(DP)方式执行一遍程序,列表记录通用寄存器堆RF中四个寄存器的数据,以及由STA指令存入RAM中的数据(程序结束后从RAM的相应单元中读出),与理论值作对比。执行时注意观察微地址指示灯、IR/DBUS指示灯、AR2/AR1指示灯、微地址指示灯和判别字段指示灯的值(可以观察到每一条微指令)。

(6)以单指(DZ)方式重新执行程序一遍,注意观察IR/DBUS指示灯、AR2/AR1指示灯的值(可以观察到每一条机器指令)。列表记录RF中四个寄存器的数据,以及由STA指令存入RAM中的数据,与理论分析值作对比。(注:单指方式执行程序时,四个通用寄存器和RAM中的原始数据与第一遍执行程序的结果有关。)

(7)以连续方式(DB,DP,DZ都设为0)再次执行程序。由于程序中有停机指令STP,程序执行到该指令时自动停机。列表记录RF中四个寄存器的数据,以及由STA指令存入RAM中的数据,与理论分析值作对比。(注:程序执行前的原始数据与第二遍执行结果有关。) (8)比较实验数据:

按照实验要求,可得到如表五实验结果。 指令地址 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 执行指令后寄存器的数据 R0 00010000 00010000 00010010 00010010 00010010 00010010 00010010 00000100 00000100 00000100 R1 xxxxxxxx 00000010 00000010 00000010 00000010 00000010 00000010 00000010 00000010 00000010 R2 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 00000001 R3 11111111 11111111 11111111 11111111 11111111 11111110 11111110 11111110 11111110 11111110 STA指令存入RAM中的数据 表五 与理论值分析一致。

[00000001]=11111110 心得体会

本来以为经过一学期的理论学习和经过几次试验的经验可以在课程设计中少走弯路,但是事实表明:我的能力还很差,我的水平并不怎么样,我还有很多东西要去学习。我对我本次的课程设计总结如下:

8