(1)用74138译码器画出CPU与存储芯片的连接图; (2)写出每片RAM的地址范围; (3)如果运行时发现不论往哪片RAM写入数据后,以A000H为起始地址的存储芯片都有与其相同的数据,分析故障原因。 (4)根据(1)的连接图,若出现地址线A13与CPU断线,并搭接到高电平上,将出现什么后果? 解:(1)CPU与存储器芯片连接逻辑图:
+5VG1G2AMREQY7A15A14A13A12A0G2BABC74138......Y2Y1Y0...WE...WE.........CSWECPUD0D7RAM0...CSRAM1RAM7......CSR/W... (2)地址空间分配图:
RAM0:0000H——1FFFH RAM1:2000H——3FFFH RAM2:4000H——5FFFH RAM3:6000H——7FFFH RAM4:8000H——9FFFH RAM5:A000H——BFFFH RAM6:C000H——DFFFH RAM7:E000H——FFFFH
(3)如果运行时发现不论往哪片RAM写入数据后,以A000H为起始地址的存储芯片(RAM5)都有与其相同的数据,则根本的故障原因为:该存储芯片的片选输入端很可能总是处于低电平。假设芯片与译码器本身都是好的,可能的情况有:
1)该片的CS端与WE端错连或短路;
2)该片的CS端与CPU的MREQ端错连或短路; 3)该片的CS端与地线错连或短路。
(4)如果地址线A13与CPU断线,并搭接到高电平上,将会出现A13恒为“1”的情况。此时存储器只能寻址A13=1的地址空间(奇数片),A13=0的另一半地址空间(偶数片)将永远访问不到。若对A13=0的地址空间(偶数片)进行访问,只能错误地访问到A13=1的对应空间(奇数片)中去。
17. 写出1100、1101、1110、1111对应的汉明码。
解:有效信息均为n=4位,假设有效信息用b4b3b2b1表示 校验位位数k=3位,(2k>=n+k+1)
设校验位分别为c1、c2、c3,则汉明码共4+3=7位,即:c1c2b4c3b3b2b1
校验位在汉明码中分别处于第1、2、4位 c1=b4⊕b3⊕b1 c2=b4⊕b2⊕b1 c3=b3⊕b2⊕b1
当有效信息为1100时,c3c2c1=110,汉明码为0111100。 当有效信息为1101时,c3c2c1=001,汉明码为1010101。 当有效信息为1110时,c3c2c1=000,汉明码为0010110。 当有效信息为1111时,c3c2c1=111,汉明码为1111111。
18. 已知收到的汉明码(按配偶原则配置)为1100100、1100111、1100000、1100001,检查上述代码是否出错?第几位出错? 解:假设接收到的汉明码为:c1’c2’b4’c3’b3’b2’b1’
纠错过程如下:
P1=c1’⊕b4’⊕b3’⊕b1’ P2=c2’⊕b4’⊕b2’⊕b1’ P3=c3’⊕b3’⊕b2’⊕b1’
如果收到的汉明码为1100100,则p3p2p1=011,说明代码有错,第3位(b4’)出错,有效信息为:1100
如果收到的汉明码为1100111,则p3p2p1=111,说明代码有错,第7位(b1’)出错,有效信息为:0110
如果收到的汉明码为1100000,则p3p2p1=110,说明代码有错,第6位(b2’)出错,有效信息为:0010
如果收到的汉明码为1100001,则p3p2p1=001,说明代码有错,第1位(c1’)出错,有效信息为:0001
19. 已经接收到下列汉明码,分别写出它们所对应的欲传送代码。 (1)1100000(按偶性配置) (2)1100010(按偶性配置) (3)1101001(按偶性配置) (4)0011001(按奇性配置) (5)1000000(按奇性配置) (6)1110001(按奇性配置) 解:(一)假设接收到的汉明码为C1’C2’B4’C3’B3’B2’B1’,按偶性配置则:
P1=C1’⊕B4’⊕B3’⊕B1’ P2=C2’⊕B4’⊕B2’⊕B1’ P3=C3’⊕B3’⊕B1’
(1)如接收到的汉明码为1100000, P1=1⊕0⊕0⊕0=1 P2=1⊕0⊕0⊕0=1 P3=0⊕0⊕0=0
P3P2P1=011,第3位出错,可纠正为1110000,故欲传送的信息为1000。
(2)如接收到的汉明码为1100010, P1=1⊕0⊕0⊕0=1 P2=1⊕0⊕1⊕0=0 P3=0⊕0⊕0=0
P3P2P1=001,第1位出错,可纠正为0100010,故欲传送的信息为0010。
(3)如接收到的汉明码为1101001, P1=1⊕0⊕0⊕1=0
P2=1⊕0⊕0⊕1=0 P3=1⊕0⊕1=0
P3P2P1=000,传送无错,故欲传送的信息为0001。
(二)假设接收到的汉明码为C1’C2’B4’C3’B3’B2’B1’,按奇性配置则:
P1=C1’⊕B4’⊕B3’⊕B1’⊕1 P2=C2’⊕B4’⊕B2’⊕B1’⊕1 P3=C3’⊕B3’⊕B1’⊕1
(4)如接收到的汉明码为0011001, P1=0⊕1⊕0⊕1⊕1=1 P2=0⊕1⊕0⊕1⊕1=1 P3=1⊕0⊕1⊕1=1
P3P2P1=111,第7位出错,可纠正为0011000,故欲传送的信息为1000。
(5)如接收到的汉明码为1000000, P1=1⊕0⊕0⊕0⊕1=0 P2=0⊕1⊕0⊕0⊕1=0 P3=0⊕0⊕0⊕1=1
P3P2P1=100,第4位出错,可纠正为1001000,故欲传送的信息为0000。
(6)如接收到的汉明码为1110001, P1=1⊕1⊕0⊕1⊕1=0 P2=1⊕1⊕0⊕1⊕1=0 P3=0⊕0⊕1⊕1=0
P3P2P1=000,传送无错,故欲传送的信息为1001。
20. 欲传送的二进制代码为1001101,用奇校验来确定其对应的汉明码,若在第6位出错,说明纠错过程。
解:欲传送的二进制代码为1001101,有效信息位数为n=7位,则汉明校验的校验位为k位,则:2k>=n+k+1,k=4,进行奇校验设校验位为C1C2C3C4,汉明码为C1C2B7C3B6B5B4C4B3B2B1,
C1=1⊕B7⊕B6⊕B4⊕B3⊕B1=1⊕1⊕0⊕1⊕1⊕1=1 C2=1⊕B7⊕B5⊕B4⊕B2⊕B1=1⊕1⊕0⊕1⊕0⊕1=0 C3=1⊕B6⊕B5⊕B4=1⊕0⊕0⊕1=0 C4=1⊕B3⊕B2⊕B1=1⊕1⊕0⊕1=1
故传送的汉明码为10100011101,若第6位(B5)出错,即接收的码字为10100111101,则
P1=1⊕C1’⊕B7’⊕B6’⊕B4’⊕B3’⊕B1’=1⊕1⊕1⊕0⊕1⊕1⊕1=0
P2=1⊕C2’⊕B7’⊕B5’⊕B4’⊕B2’⊕B1’=1⊕0⊕1⊕1⊕1⊕0⊕1=1
P3=1⊕C3’⊕B6’⊕B5’⊕B4’=1⊕0⊕0⊕1⊕1=1 P4=1⊕C4’⊕B3’⊕B2’⊕B1’=1⊕1⊕1⊕0⊕1=0
P4P3P2P1=0110说明第6位出错,对第6位取反即完成纠错。
21. 为什么在汉明码纠错过程中,新的检测位P4P2P1的状态即指出了编码中错误的信息位?
答:汉明码属于分组奇偶校验,P4P2P1=000,说明接收方生成的校验位和收到的校验位相同,否则不同说明出错。由于分组时校验位只参加一组奇偶校验,有效信息参加至少两组奇偶校验,若果校验位出错,P4P2P1的某一位将为1,刚好对应位号4、2、1;若果有效信息出错,将引起P4P2P1中至少两位为1,如B1出错,将使P4P1均为1,P2=0,P4P2P1=101,
22. 某机字长16位,常规的存储空间为64K字,若想不改用其他高速的存储芯片,而使访存速度提高到8倍,可采取什么措施?画图说明。
解:若想不改用高速存储芯片,而使访存速度提高到8倍,可采取八体交叉存取技术,8体交叉访问时序如下图: