1.1 基本运算器实验
1. 实验记录
①运算结果
首先按照实验指导书进行连线,然后打开试验箱电源,把A,B两个数存到寄存器中,然后改变s3 s2 s1 s0 的值,产生脉冲,观察对应的数据总线上的值以及两个标志位。
对于实验结果,手动模拟,列出可能出现的结果:
运算类型 | A | B | S3S2S1S0 | 结果 | |||||
逻辑运算 | 65 | A7 | 0 0 0 0 | F= | 65 | FC= | X | FZ= | X |
65 | A7 | 0 0 0 1 | F= | A7 | FC= | X | FZ= | X | |
65 | A7 | 0 0 1 0 | F= | 25 | FC= | X | FZ= | 0 | |
65 | A7 | 0 0 1 1 | F= | E7 | FC= | X | FZ= | 0 | |
65 | A7 | 0 1 0 0 | F= | 9A | FC= | X | FZ= | 0 | |
移位运算 | 65 | A7 | 0 1 0 1 | F= | 00 | FC= | X | FZ= | 1 |
65 | A7 | 0 1 1 0 | F= | 80 | FC= | X | FZ= | 0 | |
65 | A7 | 0 1 1 1 | F= | 00 | FC= | X | FZ= | 1 | |
65 | A7 | 1 0 0 0 | F= | CA | FC= | X | FZ= | 0 | |
算术运算 | 65 | A7 | 1 0 0 1 | F= | 0C | FC= | 1 | FZ= | 0 |
65 | A7 | 1 0 1 0(Cn=0) | F= | 0C | FC= | 1 | FZ= | 0 | |
65 | A7 | 1 0 1 0(Cn=1) | F= | 0D | FC= | 1 | FZ= | 0 | |
65 | A7 | 1 0 1 1 | F= | BE | FC= | 1 | FZ= | 0 | |
65 | A7 | 1 1 0 0 | F= | 64 | FC= | 0 | FZ= | 0 | |
65 | A7 | 1 1 0 1 | F= | 66 | FC= | 0 | FZ= | 0 |
其中X表示该操作并不会影响标志位,所以标志位将维持上一次的值,并不发生改变。
进行上机实验,以下为上机实验数据结果:
在记录表中,标志位有两行。上边一行表示初始标志位,下边一行表示在执行过之后的标志位。
在测试中可以看到,对于某些不影响标志位的操作,标志位维持上一次的值。
②故障现象及排除经过
故障一:已经将试验箱与电脑相连,并且开机,但是电脑无法检索到实验箱。
解决方法:首先检查接线是否接触良好,然后对实验箱进行重启,复位操作,均无法正常连接。换同伴的电脑后连接正常。
故障二:计算之后,结果正常,但是标志位并没有发生变化。
解决方法:重新阅读实验指导课件,发现:
FC以及FZ是触发器的输出,仅仅当T2产生脉冲之后才会更新触发器的值
在更改s3 s2 s1 s0 的值之后,推动开关产生触发即可。
故障三:当s3 s2 s1 s0 = 0000时,即使A为0x00,数据总线显示正常,但是FC一直为1
故障如图:
解决办法:
查阅实验手册之后,发现s3 s2 s1 s0为0000时,该操作并不会影响标志位,标志位仍然保持上一次的值。
2. 思考题
1. 利用上述运算器能否实现大于8位二进制数的算术运算?如果能,需要采取什么样的措施?
答:可以计算大于8位的二进制算术运算。
对于算术运算,把需要进行运算的数据按照8位为一组进行分组,使用考虑输入进位的加法进行运算。从最低位的组开始运算。把这一组的 输出进位(FC) 输入到下一组的 Cn。
2. 给出一组数据,验证桶形移位器的功能。
采用PPT课件中的四位桶形移位器进行说明:
①如果要实现左移1位,就把对应对角线上的开关闭合,其他位置的开关断开。
如图:
②如果要实现循环右移1位,那么就把右移1位的开关打开,左移3位的开关打开。
实现效果如图:
输出结果为1010
所以桶形移位器的功能正确。
3. 收获及想法
收获:
通过这一次实验,使得我熟悉了计算机组成设计的实验箱的基本连线以及使用。在该实验中,我通过把算术逻辑单元(ALU)与控制模块进行连接,通过开关控制数据通路的输入,控制通路的输入,并且把算术逻辑单元的输出通过数据总线上的指示灯以及发两个标志位对应的指示灯进行展示,对其结果进行观察。
在不断地试错以及调试的过程中,我积累了许多宝贵的经验,对实验箱的一些常见问题可以独立进行解决。
在实验操作的过程中,我手动地进行了数据通路值的设置,控制通路控制信号的值的设置以及脉冲信号的手动生成,细致地体会到了在真实计算机工作中各个信号的协做交流,理解了时钟信号在控制节奏中所起的重要作用,并在数据的交换过程中初步了解了总线的作用。
想法:
可以将这一个实验以及下一个实验进行联系,把ALU运算的结果通过数据总线写入内存中,再通过下一次实验的读内存读出已经保存的结果。这样可以更好地增强计算机应用的能力。
1.2 静态随机存储器实验
1.实验记录
①运算结果
在进行实验的时候,首先按照实验指导报告进行连线。
然后把地址送到数据总线,再进行以及触发,把地址送到地址总线。之后,在数据总线上输入需要存储的数据,然后设置存储器为写,进行触发,数据被成功写入存储器。
需要读取数据时,把地址送到数据总线,再进行以及触发,把地址送到地址总线。把IOR置为1,选择存储器为输出,此时在地址总线上的值为存储器之前被存入的值。
按照上述步骤:
分别在地址0x01,0x02,0x03, 0x04, 0x05中存入数值0x01,0x02,0x03, 0x04, 0x05,
然后进行读操作读取5个地址,最终出现的值为所存入的值,存入值与读取值相同。
然后进行其他尝试,在地址0x01中重新写入值0x03,正常读出新值,旧值被覆盖。
②故障现象及排除经过
问题一:如图,在0x07中读出的数并不是我想要的结果。
解决方法:读取其他存储器的值,发现与之前存入的相同,证明仪器一切正常,回忆刚刚存过值的地址,发现并没有在0x07中存入数字,所以该地址下的值就是其默认的初始值0xFF。
问题二:在与电脑连接之后,先关闭电脑,再次使用实验箱的功能,发现无法正常操作,尝试其他操作,均不能正常正常操作。怀疑是由于关闭电脑导致实验板突然与电脑断开连接,导致实验板出现问题。
解决方法:按压实验板上的复位按键,然后再次按压右下角的清零按键,实验板可以正常进行存入以及读取,问题得以解决。
问题三:试验箱读取的值与存入的值不同,反而与in模块中的值相同
解决办法:对照下图,仔细核对控制通路的开关状态,发现IOR并未置1,将IOR置1,数据总线中的值立刻恢复正常。
问题四:在连接排针的时候,发现一端(A)有三个排针,另一端(B)有四个排针连到一起,其中有三个需要连接,一个不需要连接。
解决方法:选用4路信号的数据线。在A端连接数据线的三个口,在另一端通过颜色区分,确保连接的顺序一致,连接B端的四个口(其中的一个口虽然与数据线连接,但是在数据线的另一端悬空,相当于没有进行连接)
2. 思考题
1. 随机存储器和只读存储器的区别是什么,能否通过外加电路实现用随机存储器代替只读存储器?
答:
只读存储器(ROM)仅仅可以对数据进行读取,不可以对其进行写入,其中的数据不会丢失,主要用于系统开机自检,各个部件初始化,基本的驱动程序存储等。
随机存储器(RAM)既可以读取数据,也可以写入数据,其与CPU直接交换数据,读取写入速度很快,但是一旦断电,其中的数据就会全部丢失。
可以,在外加电路中,需要保证为RAM持续供电,并且关闭RAM的写使能端,这样,RAM可以当做ROM使用。但是如果意外断点,其数据就会消失。
2. 动态随机存储器和静态随机存储器的区别是什么,与静态随机存储器相比,动态随机存储器在电路设计需要考虑什么问题?
答:
静态随机存储器是由双稳态触发器构成,只要持续供电,其中的数据不会消失。
动态随机存储器是由电容构成。由于电容会放电,所以如果不进行操作,那么过一段时间,数据就会消失。
在设计动态随机存储器的时候,每隔一段时间要进行刷新,使电容重新充电。
3. 收获及想法
收获:
静态随机存储器(SRAM)是计算机内存的一种,通过这一次实验,我了解了内存如何写入以及读取数据,有助于更好地系统理解计算机的组成。
同时,在这一次课上,涉及到了数据总线与地址总线,我明白了在计算机的内部,总线把计算机的各个部分连接在一起,各个部件之间可以使用总线来进行数据的传输。同时,数据总线上的内容可以被传输到地址总线,用于控制内存的读写。
对于实验过程中所出现的问题,我进行了参考报告册以及网上的资料,锻炼了我独立思考,解决问题的能力,使得我更好地应对接下来的实验。
想法:
可以借助实验箱中的寄存器,实现两个数字之间的交换,这样,就可以模拟程序在正式运行过程中的取数,存数操作,同时可以更加深入地理解总线在计算机内部的作用。