计算机组成原理实验

 

1. 实验目的与要求:

目的:

1)  理解时序产生器的原理,了解时钟和时序信号的波形。

2)  掌握微程序控制器的功能、组成知识。

3)  掌握微指令格式和各字段功能。

4)  掌握微程序的编制、写入、观察微程序的运行,学习基本指令的执行流程。

 

   要求:

1)  从示波器上比较TS1、TS2、TS3、TS4各点波形完成波形图。

2)  输入微指令的二进制代码表,并单步运行五条机器指令。

 

2. 实验方案:

1)  用联机软件的逻辑示波器观测时序信号;

2)  观察微程序控制器的工作原理:

1.  按图连接仪器,检查不误后,接通电源

2.  把表中的微地址后面的微代码输入控制器中

3.  对输入的二进制数据进行校验,若有误,再执行第二步进行修改

4.  单步运行五条机器指令

                              

3. 实验结果和数据处理:

微程序控制器实验

 

4. 实验结果分析:

分析ADD的每条微指令的指令格式和功能:

ADD分别由11、03、04、05、06五条微指令组成。二进制代码如下:

微地址(八进制)

S3 S2 S1 M CN WE A9 A8

A

B

C

UA5…UA0

11

0 0  0  0  0  0  0  1 1

110

110

110

0 0 0 0 1 1

03

0 0  0  0  0  0  0  0 1

110

000

000

0 0 0 1 0 0

04

0 0  0  0  0  0  0  0 1

011

000

000

0 0 0 1 0 1

05

0 0  0  0  0  0  0  1 1

010

001

000

0 0 0 1 1 0

06

1 0  0  1  0  1  0  1 1

001

101

000

0 0 0 0 0 1

ADD:为双字长指令。第一字为操作码,第二字为操作数地址,其含义是将R0寄存器的内容与内存中以A为地址单元的数相加,结果放R0寄存器中。ADD加法指令由11(PC→AR ,PC+1)、03(RAM→BUS, BUS→AR) 、04(RAM→BUS ,BUS→DR2) 、05(RO→DR1) 、06 ((DR1)+(DR2)→RO)共8条微指令组成。

06微指令的S3、S2、S1、M、CN是100101,表示ALU进行A加B的运算;其他的S3、S2、S1、M、CN是000000,表示进行自加1运算 ;UA5-UA0中的数值代表下一指令的地址。WE=1时,RAM进行写操作,WE=0时,RAM进行读操作。A8、A9是2:4译码器(74LS139)的输入端, A、B、C三个译码字段,通过3:8译码器分别译码出多位控制信号。

 

5. 写出你掌握了的控制信号的作用

1)  S3、S2、S1、S0、M、CN是算术逻辑运算器ALU的运算选择控制信号,选择ALU进行哪种运算。

2)  WE是存储器RAM的写明信号,WE=1时,RAM进行写操作,WE=0时,RAM进行读操作。

3)  A8、A9是2:4译码器(74LS139)的输入端,Y0、Y1、Y2、Y3是译码器输出端。当A8=0、A9=0时选中Y0,当 A8=1、A9=0时选中Y1,当A8=0、A9=1时选中Y2,当 A8=1、A9=1时选中Y3。(其中Y0为控制三态门控制信SW-B,Y1为RAM的片选信号CE,Y2为数码管输出信号LED-B,Y3为空)

4)  A、B、C三个译码字段,通过3:8译码器分别译出多位控制信号。A字段中,主要是寄存器的打入信号,B字段中主要是寄存器的输出信号,C字段中,主要是测试信号,其中C字段的AR为算术运算是否影响进位及判零标志控制,其为零有效。

5)  SW-B是输入三态门控制信号,CE是RAM的片选信号,LED是数码管输出信号。

6)  UA5-UA0为6位的后续微地址。

7)  LOAD是PC加1信号,P(1)-P(4)是四个测试判别信号,其功能是根据机器指令及相应微代码译码,使微程序输入相应的微程序进行译码,使微程序输入相应的微地址入口,从而实现微程序的顺序、分支、循环运行。

 

6. 结论

答:实验所用的时序电路可产生各等间隔的时序信号TS1-TS4,其中Φ为时钟信号。为了便于控制程序的运行,时序电路发生器设置了一个启停控制触发器Cr,使TS1-TS4信号输出可控。其中STEP(单步)、STOP(停机)分别是来自实验板上的两个二进制开关STEP、STEP的模拟信号。利用单步方式,每次只读出一条微指令,可以观察微指令的代码与当前微指令的执行结果。另外,当机器连续运行时,如果STOP开关置“1”,也会使机器停机。

 

7. 问题与讨论及实验总结

答:做这个实验时,我还以为输错了一个代码就要全部重新输入,其实不是的,只要重新输入那条代码就可以了,在做校验的时候我发现了这点,所以以后做实验还是要先大概浏览一遍,了解清楚些,这样做起来就简单多了。

展开阅读全文

没有更多推荐了,返回首页