1、第 4章 存储器1. 解释概念:主存、辅存、Cache、RAM、SRAM、DRAM、ROM、PROM、EPROM、EEPROM、CDROM、Flash Memory。答:主存:主存储器,用于存放正在执行的程序和数据。CPU 可以直接进行随机读写,访问速度较高。辅存:辅助存储器,用于存放当前暂不执行的程序和数据,以及一些需要永久保存的信息。Cache:高速缓冲存储器,介于 CPU和主存之间,用于解决 CPU和主存之间速度不匹配问题。RAM:半导体随机存取存储器,主要用作计算机中的主存。SRAM:静态半导体随机存取存储器。DRAM:动态半导体随机存取存储器。ROM:掩膜式半导体只读存储器。由芯片制
2、造商在制造时写入内容,以后只能读出而不能写入。PROM:可编程只读存储器,由用户根据需要确定写入内容,只能写入一次。EPROM:紫外线擦写可编程只读存储器。需要修改内容时,现将其全部内容擦除,然后再编程。擦除依靠紫外线使浮动栅极上的电荷泄露而实现。EEPROM:电擦写可编程只读存储器。CDROM:只读型光盘。Flash Memory:闪速存储器。或称快擦型存储器。2. 计算机中哪些部件可以用于存储信息?按速度、容量和价格/位排序说明。答:计算机中寄存器、Cache、主存、硬盘可以用于存储信息。按速度由高至低排序为:寄存器、Cache、主存、硬盘;按容量由小至大排序为:寄存器、Cache、主存、
3、硬盘;按价格/位由高至低排序为:寄存器、Cache、主存、硬盘。3. 存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次?答:存储器的层次结构主要体现在 Cache-主存和主存-辅存这两个存储层次上。Cache-主存层次在存储系统中主要对 CPU访存起加速作用,即从整体运行的效果分析,CPU 访存速度加快,接近于 Cache的速度,而寻址空间和位价却接近于主存。主存-辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果
4、。主存与 CACHE之间的信息调度功能全部由硬件自动完成。而主存与辅存层次的调度目前广泛采用虚拟存储技术实现,即将主存与辅存的一部分通过软硬结合的技术组成虚拟存储器,程序员可使用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。4. 说明存取周期和存取时间的区别。解:存取周期和存取时间的主要区别是:存取时间仅为完成一次操作的时间,而存取周期不仅包含操作时间,还包含操作后线路的恢复时间。即:存取周期 = 存取时间 + 恢复时间5. 什么
5、是存储器的带宽?若存储器的数据总线宽度为 32位,存取周期为200ns,则存储器的带宽是多少?解:存储器的带宽指单位时间内从存储器进出信息的最大数量。存储器带宽 = 1/200ns 32 位 = 160M 位/秒 = 20MB/秒 = 5M 字/秒注意:字长 32位,不是 16位。(注:1ns=10 -9s)6. 某机字长为 32位,其存储容量是 64KB,按字编址它的寻址范围是多少?若主存以字节编址,试画出主存字地址和字节地址的分配情况。解:存储容量是 64KB时,按字节编址的寻址范围就是 64K,如按字编址,其寻址范围为:64K / (32/8)= 16K主存字地址和字节地址的分配情况:如
6、图7. 一个容量为 16K32位的存储器,其地址线和数据线的总和是多少?当选用下列不同规格的存储芯片时,各需要多少片?1K4位,2K8 位,4K4 位,16K1 位,4K8 位,8K8 位解:地址线和数据线的总和 = 14 + 32 = 46 根;选择不同的芯片时,各需要的片数为:1K4:(16K32) / (1K4) = 168 = 128 片2K8:(16K32) / (2K8) = 84 = 32 片4K4:(16K32) / (4K4) = 48 = 32 片16K1:(16K32)/ (16K1) = 132 = 32 片4K8:(16K32)/ (4K8) = 44 = 16 片8
7、K8:(16K32) / (8K8) = 24 = 8 片8. 试比较静态 RAM和动态 RAM。答:略。(参看课件)9. 什么叫刷新?为什么要刷新?说明刷新有几种方法。解:刷新:对 DRAM定期进行的全部重写过程;刷新原因:因电容泄漏而引起的 DRAM所存信息的衰减需要及时补充,因此安排了定期刷新操作;常用的刷新方法有三种:集中式、分散式、异步式。集中式:在最大刷新间隔时间内,集中安排一段时间进行刷新,存在 CPU访存死时间。分散式:在每个读/写周期之后插入一个刷新周期,无 CPU访存死时间。异步式:是集中式和分散式的折衷。10. 半导体存储器芯片的译码驱动方式有几种?解:半导体存储器芯片的
8、译码驱动方式有两种:线选法和重合法。线选法:地址译码信号只选中同一个字的所有位,结构简单,费器材;重合法:地址分行、列两部分译码,行、列译码线的交叉点即为所选单元。这种方法通过行、列译码信号的重合来选址,也称矩阵译码。可大大节省器材用量,是最常用的译码驱动方式。11. 一个 8K8位的动态 RAM芯片,其内部结构排列成 256256形式,存取周期为 0.1s。试问采用集中刷新、分散刷新和异步刷新三种方式的刷新间隔各为多少?解:采用分散刷新方式刷新间隔为:2ms,其中刷新死时间为:2560.1s=25.6s采用分散刷新方式刷新间隔为:256(0.1s+0.1s)=51.2s采用异步刷新方式刷新间
9、隔为:2ms12. 画出用 10244位的存储芯片组成一个容量为 64K8位的存储器逻辑框图。要求将 64K分成 4个页面,每个页面分 16组,指出共需多少片存储芯片。解:设采用 SRAM芯片,则:总片数 = (64K8 位) / (10244 位)= 642 = 128 片题意分析:本题设计的存储器结构上分为总体、页面、组三级,因此画图时也应分三级画。首先应确定各级的容量:页面容量 = 总容量 / 页面数 = 64K8 / 4 = 16K8 位,4 片 16K8字串联成 64K8位组容量 = 页面容量 / 组数 = 16K8 位 / 16 = 1K8 位,16 片 1K8位字串联成 16K8
10、位组内片数 = 组容量 / 片容量 = 1K8 位 / 1K4 位 = 2 片,两片 1K4位芯片位并联成 1K8位存储器逻辑框图:(略)。13. 设有一个 64K8位的 RAM芯片,试问该芯片共有多少个基本单元电路(简称存储基元)?欲设计一种具有上述同样多存储基元的芯片,要求对芯片字长的选择应满足地址线和数据线的总和为最小,试确定这种芯片的地址线和数据线,并说明有几种解答。解:存储基元总数 = 64K8 位 = 512K 位 = 2 19位;思路:如要满足地址线和数据线总和最小,应尽量把存储元安排在字向,因为地址位数和字数成 2的幂的关系,可较好地压缩线数。设地址线根数为 a,数据线根数为
11、b,则片容量为:2 ab = 219;b = 2 19-a;若 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 根。14. 某 8位微型机地址码为 18位,若使用 4K4位的
12、 RAM芯片组成模块板结构的存储器,试问:(1)该机所允许的最大主存空间是多少?(2)若每个模块板为 32K8位,共需几个模块板?(3)每个模块板内共有几片 RAM芯片?(4)共有多少片 RAM?(5)CPU 如何选择各模块板?解:(1)该机所允许的最大主存空间是:2 18 8位 = 256K8 位 = 256KB(2)模块板总数 = 256K8 / 32K8 = 8 块(3)板内片数 = 32K8 位 / 4K4 位 = 82 = 16 片(4)总片数 = 16 片8 = 128 片(5)CPU 通过最高 3位地址译码输出选择模板,次高 3位地址译码输出选择芯片。地址格式分配如下:15. 设
13、 CPU共有 16根地址线,8 根数据线,并用 (低电平有效)作访存控制信号, 作读写命令信号(高电平为读,低电平为写)。现有下列存储芯片:ROM(2K8 位,4K4 位,8K8 位),RAM(1K4 位,2K8 位,4K8位),及 74138译码器和其他门电路(门电路自定)。试从上述规格中选用合适芯片,画出 CPU和存储芯片的连接图。要求:(1)最小 4K地址为系统程序区,409616383 地址范围为用户程序区。(2)指出选用的存储芯片类型及数量。(3)详细画出片选逻辑。解:(1)地址空间分配图:系统程序区(ROM 共 4KB):0000H-0FFFH用户程序区(RAM 共 12KB):1
14、000H-3FFFH(2)选片:ROM:选择 4K4位芯片 2片,位并联RAM:选择 4K8位芯片 3片,字串联(RAM1 地址范围为:1000H-1FFFH,RAM2地址范围为 2000H-2FFFH, RAM3地址范围为:3000H-3FFFH)(3)各芯片二进制地址分配如下:A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0ROM1,2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1RAM1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 00
15、 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1RAM2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 00 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1RAM3 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 00 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1CPU和存储器连接逻辑图及片选逻辑 图略16. CPU假设同上题,现有 8片 8K8位的 RAM芯片与 CPU相连,试回答:(1)用 74138译码器画出 CPU与存储芯片的连接图;(2)写出每片 RAM的地址范围;(3)如果运行时发现不论往哪片 RAM写入数据后,以 A
16、000H为起始地址的存储芯片都有与其相同的数据,分析故障原因。(4)根据(1)的连接图,若出现地址线 A13与 CPU断线,并搭接到高电平上,将出现什么后果?解:(1)CPU 与存储器芯片连接逻辑图 图略(2)地址空间分配图:RAM0:0000H1FFFHRAM1:2000H3FFFHRAM2:4000H5FFFHRAM3:6000H7FFFHRAM4:8000H9FFFHRAM5:A000HBFFFHRAM6:C000HDFFFHRAM7:E000HFFFFH(3)如果运行时发现不论往哪片 RAM写入数据后,以 A000H为起始地址的存储芯片(RAM5)都有与其相同的数据,则根本的故障原因为
17、:该存储芯片的片选输入端很可能总是处于低电平。假设芯片与译码器本身都是好的,可能的情况有:1)该片的 端与 端错连或短路;2)该片的 端与 CPU的 端错连或短路;3)该片的 端与地线错连或短路。(4)如果地址线 A13与 CPU断线,并搭接到高电平上,将会出现 A13恒为“1”的情况。此时存储器只能寻址 A13=1的地址空间(奇数片),A13=0 的另一半地址空间(偶数片)将永远访问不到。若对 A13=0的地址空间(偶数片)进行访问,只能错误地访问到 A13=1的对应空间(奇数片)中去。17. 写出 1100、1101、1110、1111 对应的汉明码。解:有效信息均为 n=4位,假设有效信
18、息用 b4b3b2b1表示校验位位数 k=3位,(2 k=n+k+1)设校验位分别为 c1、c2、c3,则汉明码共 4+3=7位,即:c1c2b4c3b3b2b1校验位在汉明码中分别处于第 1、2、4 位c1=b4b3b1c2=b4b2b1c3=b3b2b1当有效信息为 1100时,c3c2c1=110,汉明码为 0111100。当有效信息为 1101时,c3c2c1=001,汉明码为 1010101。当有效信息为 1110时,c3c2c1=000,汉明码为 0010110。当有效信息为 1111时,c3c2c1=111,汉明码为 1111111。18. 已知收到的汉明码(按配偶原则配置)为1
19、100100、1100111、1100000、1100001,检查上述代码是否出错?第几位出错?解:假设接收到的汉明码为:c1c2b4c3b3b2b1纠错过程如下:P1=c1b4b3b1P2=c2b4b2b1P3=c3b3b2b1如果收到的汉明码为 1100100,则 p3p2p1=011,说明代码有错,第 3位(b4)出错,有效信息为:1100如果收到的汉明码为 1100111,则 p3p2p1=111,说明代码有错,第 7位(b1)出错,有效信息为:0110如果收到的汉明码为 1100000,则 p3p2p1=110,说明代码有错,第 6位(b2)出错,有效信息为:0010如果收到的汉明码
20、为 1100001,则 p3p2p1=001,说明代码有错,第 1位(c1)出错,有效信息为:000119. 已经接收到下列汉明码,分别写出它们所对应的欲传送代码。(1)1100000(按偶性配置)(2)1100010(按偶性配置)(3)1101001(按偶性配置)(4)0011001(按奇性配置)(5)1000000(按奇性配置)(6)1110001(按奇性配置)解:(一)假设接收到的汉明码为 C1C2B4C3B3B2B1,按偶性配置则:P1=C1B4B3B1P2=C2B4B2B1P3=C3B3B1(1)如接收到的汉明码为 1100000,P1=1000=1P2=1000=1P3=000=0P3P2P1=011,第 3位出错,可纠正为 1110000,故欲传送的信息为 1000。(2)如接收到的汉明码为 1100010,P1=1000=1P2=1010=0P3=000=0P3P2P1=001,第 1位出错,可纠正为 0100010,故欲传送的信息为 0010。(3)如接收到的汉明码为 1101001,P1=1001=0P2=1001=0