当前位置:首页 > 第4章 存储器 - 图文
设地址线根数为a,数据线根数为b,则片容量为:2×b = 2;b = 2; 若:a = 19,b = 1,总和 = 19+1 = 20;
a = 18,b = 2,总和 = 18+2 = 20; a = 17,b = 4,总和 = 17+4 = 21; a = 16,b = 8,总和 = 16+8 = 24; ?? ??
由上可看出:片字数越少,片字长越长,引脚数越多。片字数减1、片位数均按2的幂变化。
结论:如果满足地址线和数据线的总和为最小,这种芯片的引脚分配方案有两种:地址线 = 19根,数据线 = 1根;或地址线 = 18根,数据线 = 2根。
a1919-a
4.14 某8位微型机地址码为18位,若使用4K×4位的RAM芯片组成模块板结构的存储器,试问:
(1)该机所允许的最大主存空间是多少? (2)若每个模块板为32K×8位,共需几个模块板? (3)每个模块板内共有几片RAM芯片? (4)共有多少片RAM?
(5)CPU如何选择各模块板?
解:(1)该机所允许的最大主存空间是:2 × 8位 = 256K×8位 = 256KB
(2)模块板总数 = 256K×8 / 32K×8 = 8块
(3)板内片数 = 32K×8位 / 4K×4位 = 8×2 = 16片 (4)总片数 = 16片×8 = 128片
(5)CPU通过最高3位地址译码输出选择模板,次高3位地址译码输出选择芯片。地址格式分配如下:
模板号(3位) 芯片号(3位) 片内地址(12位)
18
4.15 设CPU共有16根地址线,8根数据线,并用MREQ(低电平有效)作访存
控制信号,R/W作读写命令信号(高电平为读,低电平为写)。现有下列存储芯片:ROM(2K×8位,4K×4位,8K×8位),RAM(1K×4位,2K×8位,4K×8位),及74138译码器和其他门电路(门电路自定)。试从上述规格中选用合适芯片,画出CPU和存储芯片的连接图。要求:
(1)最小4K地址为系统程序区,4096-16383地址范围为用户程序区; (2)指出选用的存储芯片类型及数量; (3)详细画出片选逻辑。
解:(1)地址空间分配图:
系统程序区(ROM共4KB):0000H-0FFFH 用户程序区(RAM共12KB):1000H-FFFFH (2)选片:
ROM:选择4K×4位芯片2片,位并联
RAM:选择4K×8位芯片3片,字串联(RAM1地址范围为:1000H-1FFFH,RAM2地址范围为2000H-2FFFH, RAM3地址范围为:3000H-3FFFH)
(3)各芯片二进制地址分配如下: ROM1,2 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 RAM1 RAM2 RAM3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 存储器逻辑框图如图4.2所示:
图4.2存储器逻辑框图及片选逻辑
4.16 CPU假设同上题,现有8片8K×8位的RAM芯片与CPU相连,试回答: (1)用74138译码器画出CPU与存储芯片的连接图; (2)写出每片RAM的地址范围;
(3)如果运行时发现不论往哪片RAM写入数据后,以A000H为起始地址的存储芯片都有与其相同的数据,分析故障原因。
(4)根据(1)的连接图,若出现地址线A13与CPU断线,并搭接到高电平上,将出现什么后果?
解:(1)CPU与存储器芯片连接逻辑图如图4.3:
+5VG1G2AMREQY7A15A14A13A12A0G2BABC74138......Y2Y1Y0...WE...WE.........CSWECPUD0D7RAM0......CSRAM1RAM7......CSR/W
图4.3 CPU与存储器芯片连接逻辑图
(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的对应空间(奇数片)中去。
4.17写出1100、1101、1110、1111对应的汉明码。
解:有效信息均为n=4位,假设有效信息用b4b3b2b1表示
k
校验位位数k=3位,(2>=n+k+1)
设校验位分别为c1、c2、c4,则汉明码共4+3=7位,即:c1c2b4c4b3b2b1 校验位在汉明码中分别处于第1、2、4位,具体安排如下:
二进制序号 名称 1 2 3 4 5 6 7 c1 c2 b4 c4 b3 b2 b1 按配偶原则来配置汉明码,则有: c1=3位⊕5位⊕7位=b4⊕b3⊕b1 c2=3位⊕6位⊕7位=b4⊕b2⊕b1 c4=5位⊕6位⊕7位=b3⊕b2⊕b1
当有效信息为1100时,c4c2c1=110,汉明码为0111100。 当有效信息为1101时,c4c2c1=001,汉明码为1010101。 当有效信息为1110时,c4c2c1=000,汉明码为0010110。 当有效信息为1111时,c4c2c1=111,汉明码为1111111。
4.18 已知收到的汉明码(按配偶原则配置)为1100100、1100111、1100000、1100001,检查上述代码是否出错?第几位出错?
解:假设接收到的汉明码为:c1’c2’b4’c4’b3’b2’b1’ 纠错过程如下:
P1=1位⊕3位⊕5位⊕7位=c1’⊕b4’⊕b3’⊕b1’ P2=2位⊕3位⊕6位⊕7位=c2’⊕b4’⊕b2’⊕b1’ P4=4位⊕5位⊕6位⊕7位=c4’⊕b3’⊕b2’⊕b1’
如果收到的汉明码为1100100,则p4p2p1=011,说明代码有错,第3位(b4’)出错,有效信息为:1100
如果收到的汉明码为1100111,则p4p2p1=111,说明代码有错,第7位(b1’)出错,有效信息为:0110
如果收到的汉明码为1100000,则p4p2p1=110,说明代码有错,第6位(b2’)出错,有效信息为:0010
如果收到的汉明码为1100001,则p4p2p1=001,说明代码有错,第1位(c1’)出错,有效信息为:0000
4.19 已知接收到下列汉明码,分别写出它们所对应的欲传送代码。 1100000(按偶性配置)、1100010(按偶性配置)、1101001(按偶性配置)、0011001(按奇性配置)、1000000(按奇性配置)、1110001(按奇性配置)
解:
(1)接收到的汉明码1100000、1100010、1101001(按偶性配置)。由于要求出欲传送的信息,必须是正确的信息,因此不能简单地从接收到的7位汉明码中去掉C1、C2、C4这3位检测位来求得。首先应该判断收到的信息是否出错。纠错过程如下:
P1=c1⊕b4⊕b3⊕b1 P2=c2⊕b4⊕b2⊕b1 P4=c4⊕b3⊕b2⊕b1
如果收到的汉明码为1100000,则p4p2p1=111,说明代码有错,第7位(b1)出错,可纠正为1100001,故欲传送的信息为:0001。
如果收到的汉明码为1100010,则p4p2p1=001,说明代码有错,第1位(c1)出错,可纠正为0100010,故欲传送的信息为:0010。
如果收到的汉明码为1101001,则p4p2p1=000,说明代码无错,故欲传送的信息为:0001。 (2)接收到的汉明码0011001、1000000、1110001(按奇性配置)。 按配奇原则纠错过程如下:
共分享92篇相关文档