第四章存储器
4.1解释概念:主存、辅存、Cache、RAM、SRAM、DRAM、ROM、PROM、EPROM、EEPROM、CDROM、Flash Memory。
答:
主存:主存储器,用于存放正在执行的程序和数据。 CPU 可以直接进行随机读写,访问速度较高。
辅存:辅助存储器,用于存放当前暂不执行的程序和数据,以及一些需要永久保存的信息。
Cache :高速缓冲存储器,介于 CPU 和主存之间,用于解决 CPU 和主存之间速度不匹配问题。
RAM :半导体随机存取存储器,主要用作计算机中的主存。
SRAM :静态半导体随机存取存储器。
DRAM :动态半导体随机存取存储器。
ROM :掩膜式半导体只读存储器。由芯片制造商在制造时写入内容,以后只能读出而不能写入。
PROM :可编程只读存储器,由用户根据需要确定写入内容,只能写入一次。
EPROM :可擦除可编程只读存储器。允许用户写入信息,之后用某种方法擦除数据,可进行多次重写。
EEPROM :电擦写可编程只读存储器。
CDROM :只读型光盘。
Flash Memory :闪速存储器。或称快擦型存储器。
4.2 计算机中哪些部件可用于存储信息,按其速度、容量和价格/位排序说明。
答:
计算机中寄存器、Cache、主存、硬盘可以用于存储信息。一般来说,速度越高,价格就越高;容量越大,价格就越高,而且容量越大,速度必越低。人们追求大容量、高速度、低价位的存储器,可惜这是很难达到的。寄存器通常都制作在 CPU 芯片内,寄存器中的数直接在 CPU 内部参与运算,CPU 内可以有十几个、几十个寄存器,它们的速度最快,价位最高,容量最小。主存用来存放将要参与运行的程序和数据,其速度与 CPU 速度差距较大,为了使它们之间速度更好地匹配,在主存与 CPU 之间插入了一种比主存速度更快、容量更小的高速缓冲存储器 Cache,显然其价位要高于主存。所以,按其速度、容量和价格/位排序如下:
按速度由高至低排序为:寄存器、Cache、主存、硬盘:
按容量由小至大排序为:寄存器、Cache、主存、硬盘;
按价格/位由高至低排序为:寄存器、Cache、主存、硬盘。
4.3存储器的层次结构主要体现在什么地方,为什么要分这些层次,计算机如何管理这些层次?
答:
存储器的层次结构主要体现在Cache-主存和主存-辅存这两个存储层次上。
Cache-主存层次在存储系统中主要对 CPU 访存起加速作用,即从整体运行的效果分析, CPU 访存速度加快,接近于 Cache的速度,而寻址空间和位价却接近于主存。
主存-辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。
综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果。
主存与CACHE 之间的信息调度功能全部由硬件自动完成。而主存与辅存层次的调度目前广泛采用虚拟存储技术实现, 即将主存与辅存的一部分通过软硬结合的技术组成虚拟存储器,程序员可使用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。
因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。
4.4 说明存取周期和存取时间的区别。
答:
存取周期和存取时间的主要区别是:存取时间仅为完成一次操作的时间,而存取周期不仅包含操作时间,还包含操作后线路的恢复时间。
即:存取周期=存取时间+恢复时间
4.5什么是存储器的带宽?若存储器的数据总线宽度为32位,存取周期为200ns,则存储器的带宽是多少?
答:
存储器的带宽指单位时间内从存储器进出信息的最大数量。
存储器带宽= 1/200ns ×32位 = 160M位/秒 = 20MB/秒 = 5M字/秒
注意 :字长32位,不是16位。(注:1 n s = 1 0 − 9 s)
4.6机字长为32位,存储容量是64KB,按字编址其寻址范围是多少?若主存以字节编址,试画出主存字地址和字节地址的分配情况。
答:
存储容量是 64KB 时,按字节编址的寻址范围就是 64K ,
如按字编址,其寻址范围为: 64KB/32位=(64 * 1024* 8)/32=16*1024=16K
主存字地址和字节地址的分配情况:如图
4.7 一个容量为16 K×32 位的存储器,其地址线和数据线的总和是多少?当选用下列不同规格的存储芯片时,各需要多少片?1 K×4位,2K×8位,4 K×4位,16 K×1位,4 K×8位,8 K×8位
答:
地址线和数据线的总和 = 14 + 32 = 46根;
选择不同的芯片时,各需要的片数为:
1K×4:(16K×32) / (1K×4) = 16 ×8 = 128 片
2K×8:(16K×32) / (2K×8) = 8 ×4 = 32片
4K×4:(16K×32) / (4K×4) = 4 ×8 = 32片
16K×1:(16K×32)/ (16K×1) = 1 ×32 = 32 片
4K×8:(16K×32)/ (4K×8) = 4 ×4 = 16 片
8K×8:(16K×32) / (8K×8) = 2 ×4 = 8 片
4.8试比较静态RAM和动态RAM。
答:
静态RAM是靠双稳态触发器来记忆信息的;动态RAM是靠MOS电路中的栅极电容来记忆信息的。
由于电容上的电荷会泄漏,需要定时给与补充,所以动态RAM需要设置刷新电路。但动态RAM比静态RAM集成度高、功耗低,从而成本也低,适于作大容量存储器。所以主内存通常采用动态RAM,而高速缓冲存储器(Cache)则使用静态RAM。另外,内存还应用于显卡、声卡及CMOS等设备中,用于充当设备缓存或保存固定的程序及数据。
解析:静态RAM的特点:是在不断电的条件下,其中的信息保持不变,因而不必定期刷新,其中的信息可读可写,但断电后信息就会丢失。
1、静态RAM 用触发器作为存储单元存放1 和0,存取速度快,只要不掉电即可持续保持内容不变。
2、,静态RAM的集成度较低,并且静态RAM无须考虑保持数据而设置的刷新电路,故扩展电路较简单。
动态RAM:是绝大多数现代台式计算机的标准计算机内存,它是一种易失性存储器,需要用电压定期刷新,否则,它会丢失存储在上面的信息。
4.9什么叫刷新?为什么要刷新?说明刷新有几种方法。
答:
刷新:对 DRAM 定期进行的全部重写过程;
刷新原因:因电容泄漏而引起的 DRAM 所存信息的衰减需要及时补充,因此安排了定期刷新操作;
常用的刷新方法有三种:集中式、分散式、异步式。
集中式:在最大刷新间隔时间内,集中安排一段时间进行刷新,存在 CPU 访存死时间。
分散式:在每个读 /写周期之后插入一个刷新周期,无 CPU 访存死时间。
异步式:是集中式和分散式的折衷。
4.10 半导体存储器芯片的译码驱动方式有几种?
答:
半导体存储器芯片的译码驱动方式有两种:线选法和重合法。
线选法:地址译码信号只选中同一个字的所有位,结构简单,费器材;
重合法:地址分行、列两部分译码,行、列译码线的交叉点即为所选单元。这种方法通过行、列译码信号的重合来选址,也称矩阵译码。可大大节省器材用量,是最常用的译码驱动方式。
4.11一个8K×8位的动态RAM芯片,其内部结构排列成256×256形式,读/写周期为0.1μs。试问采用集中刷新、分散刷新及异步刷新三种方式的刷新间隔各为多少?
答:
采用集中刷新方式刷新间隔为:2ms,其中刷新死时间为:256×0.1μs=25.6μs
采用分散刷新方式刷新间隔为:256×(0.1μs+0.1μs)=51.2μs
采用异步刷新方式刷新间隔为:2ms
4.12画出用1024×4位的存储芯片组成一个容量为64Kx8位的存储器逻辑框图。要求将64K分成4个页面,每个页面分16组,共需多少片存储芯片?
答:
设采用SRAM芯片,则:
总片数 = (64K×8位) / (1024×4位)= 64×2 = 128片
题意分析:本题设计的存储器结构上分为总体、页面、组三级,因此画图时也应分三级画。首先应确定各级的容量:
页面容量 = 总容量 / 页面数 = 64K×8 / 4 = 16K×8位,4片16K×8字串联成64K×8位
组容量 = 页面容量 / 组数 = 16K×8位 / 16 = 1K×8位,16片1K×8位字串联成16K×8位
组内片数 = 组容量 / 片容量 = 1K×8位 / 1K×4位 = 2片,两片1K×4位芯片位并联1K×8位
地址分配:
存储器逻辑框图:
4.13 设有一个64K×8位的RAM芯片,试问该芯片共有多少个基本单元电路(简称存储基元)?欲设计一种具有上述同样多存储基元的芯片,要求对芯片字长的选择应满足地址线和数据线的总和为最小,试确定这种芯片的地址线和数据线,并说明有几种解答。
答:
存储基元总数 = 64 K × 8 位 = 512 K 位 = 2^19 位
如要满足地址线和数据线总和最小,应尽量把存储元安排在字向,因为地址位数和字数成2的幂的关系,可较好地压缩线数。
设地址线根数为a,数据线根数为b,
则片容量为:2^a × b = 2^19 ; b = 2^(19 − a)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;
4.14某8位微型计算机地址码为18位,若使用4K×4位的RAM芯片组成模块板结构的存储器,试问:
(1)该机所允许的最大主存空间是多少?
(2)若每个模块板为32K×8位,共需几个模块板?
(3)每个模块板内共有几片RAM芯片?
(4)共有多少片RAM?
(5)CPU如何选择各模块板?
答:
- 该机所允许的最大主存空间是:2^18 × 8 位 = 256 K × 8 位 = 256 KB
(2)模块板总数 = 256K×8 / 32K×8 = 8块
(3)板内片数 = 32K×8位 / 4K×4位 = 8×2 = 16片
(4)总片数 = 16片×8 = 128片
(5)CPU通过最高3位地址译码输出选择模板,次高3位地址译码输出选择芯片。地址格式分配如下:
试从上述规格中选用合适的芯片,画出CPU和存储芯片的连接图。要求如下:
(1)最小4K地址为系统程序区.4096~16383地址范围为用户程序区。
(2)指出选用的存储芯片类型及数量。
(3)详细画出片选逻辑。
答:
(1)地址空间分配图:
系统程序区(ROM共4KB):0000H-0FFFH
用户程序区(RAM共12KB):1000H-3FFFH
(2)选片:
ROM:选择4K×4位芯片2片,位并联
RAM:选择4K×8位芯片3片,字串联(RAM1地址范围为:1000H-1FFFH,RAM2地址范围为2000H-2FFFH, RAM3地址范围为:3000H-3FFFH)
(3)各芯片二进制地址分配如下:
CPU和存储器连接逻辅图及片选逻辑如下图所示:
4.16CPU假设同上题,现有8片8K×8位的RAM芯片与CPU相连。
(1)用74138译码器画出CPU与存储芯片的连接图。
(2)写出每片RAM的地址范围。
(3)如果运行时发现不论往哪片RAM写入数据,以A000H为起始地址的存储芯片都有与其相同的数据分析故障原因。
(4)根据(1)的连接图,若出现地址线
答:
(1)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)都有与其相同的数据,则根本的故障原因为:该存储芯片的片选输入端很可能总是处于低电平。
假设芯片与译码器本身都是好的,可能的情况有:
(4)如果地址线A13与CPU断线,并搭接到高电平上,将会出现A13恒为“1”的情况。此时存储器只能寻址A13=1的地址空间(奇数片),A13=0的另一半地址空间(偶数片)将永远访问不到。若对A13=0的地址空间(偶数片)进行访问,只能错误地访问到A13=1的对应空间(奇数片)中去。
4.22某机字长为16位,常规的存储空间为64K字,若想不改用其他高速的存储芯片,而使访存速度提高到8倍,可采取什么措施?画图说明。
答:
若想不改用高速存储芯片,而使访存速度提高到8倍,可采取八体交叉存取技术,如下图所示:
8体交叉访问时序如下图:
答:
8体低位交叉并行存储器的每个存储体容量为 64KB/8=8KB
因此,应选择8KB RAM芯片,芯片地址线13根(A0-A12),数据线8根(D0-D7), 用138译码器进行存储体的选择。设计如下:
4.24一个4体低位交叉的存储器,假设存取周期为 T,CPU每隔1/4存取周期启动一个存储体,试问依次访问64个字需多少个存取周期?
答:
本题中,只有访问第一个字需一个存取周期,从第二个字开始,每隔1/4存取周期即可访问一个字,因此,依次访问64个字需:
存取周期个数=(64-1)×(1/4)T+T=(63/4+1)T=15.75+1=16.75T
4.25 什么是程序访问的局部性?存储系统中哪一级采用了程序访问的局部性原理?
答:
所谓程序访问的局部性即程序执行时对存储器的访问是不均匀的,这是由于指令和数据在主存的地址分布不是随机的,而是相对地簇聚。
存储系统的Cache—主存级和主存—辅存级都用到程序访问的局部性原理。
对Cache—主存级而言,把CPU最近期执行的程序放在容量较小、速度较高的Cache中。
对主存—辅存级而言,把程序中访问频度高、比较活跃的部分放在主存中,这样既提高了访存的速度又扩大了存储器的容量。
4.26计算机中设置Cache的作用是什么?能不能把Cache的容量扩大,最后取代主存,为什么?
答:
计算机中设置 Cache 的作用是解决 CPU 和主存速度不匹配问题。
不能将 Cache 的容量扩大取代主存,原因是
(1)Cache 容量越大成本越高,难以满足人们追求低价格的要求;
(2)如果取消主存,当 CPU 访问 Cache 失败时,需要将辅存的内容调入 Cache 再由 CPU 访问,造成 CPU 等待时间太长,损失更大。
4.27Cache制作在CPU芯片内有什么好处?将指令Cache和数据Cache分开又有什么好处?
答:
Cache 做在 CPU 芯片内主要有下面几个好处:
(1)可提高外部总线的利用率。因为 Cache 在 CPU 芯片内,CPU 访问 Cache时不必占用外部总线。
(2)Cache 不占用外部总线就意味着外部总线可更多地支持 I/O 设备与主存的信息传输,增强了系统的整体效率。
(3)可提高存取速度。因为 Cache 与 CPU 之间的数据通路大大缩短,故存取速度得以提高。
将指令 Cache 和数据 Cache 分开有如下好处:
1)可支持超前控制和流水线控制,有利于这类控制方式下指令预取操作的完成。
2)指令 Cache 可用 ROM 实现,以提高指令存取的可靠性。
3)数据 Cache 对不同数据类型的支持更为灵活,既可支持整数(例 32 位),也可支持浮点数据(如 64 位)。
补充:
Cache 结构改进的第三个措施是分级实现,如二级缓存结构,即在片内 Cache(L1)和主存之间再设一个片外Cache(L2),片外缓存既可以弥补片内缓存容量不够大的缺点,又可在主存与片内缓存间起到平滑速度差的作用,加速片内缓存的调入调出速度。
4.28设主存容量为256K字,Cache容量为2K字,块长为4。
(1)设计Cache地址格式,Cache中可装入多少块数据?
(2)在直接映射方式下,设计主存地址格式。
(3)在四路组相联映射方式下,设计主存地址格式。
(4)在全相联映射方式下,设计主存地址格式。
(5)若存储字长为32位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式。
答:
4.29假设CPU执行某段程序时共访问 Cache命中4800次,访问主存200次,已知Cache的存取周期是30ns,主存的存取周期是150ns,求Cache的命中率以及 Cache-主存系统的平均访问时间和效率,试问该系统的性能提高了多少?
4.30一个组相联映射的Cache由64块组成,每组内包含4块。主存包含4096块,每块由 128字组成,访存地址为字地址。试问主存和 Cache 的地址各为几位?画出主存的地址格式。
4.31 设主存容量为1MB,采用直接映射方式的Cache容量为16KB,块长为4,每字32位。试向主存地址为ABCDEH的存储单元在Cache中的什么位置?
4.32设某机主存容量为4MB,Cache容量为16KB,每字块有8个字,每字32位,设计一个四路组相联映射(即Cache每组内共有4个字块)的Cache组织。
(1)画出主存地址字段中各段的位数。
(2)设Cache的初态为空,CPU依次从主存第0,1,2,…,89号单元读出90个字(主存一次读出一个字),并重复按此次序读8次,问命中率是多少?
(3)若Cache的速度是主存的6倍,试问有Cache和无Cache相比,速度约提高多少倍?
4.33简要说明提高访存速度可采取的措施。
答:
提高访存速度可采取三种措施:
(1)采用高速器件。即采用存储周期短的芯片,可提高访存速度。
(2)采用Cache。CPU最近要使用的信息先调入Cache,而Cache的速度比主存快得多,这样CPU每次只需从Cache中读写信息,从而缩短访存时间,提高访存速度。
(3)调整主存结构。如采用单体多字或采用多体结构存储器。
4.34反映主存和外存的速度指标有何不同?
答:
主存的速度指标用存取周期表示。
辅存的速度指标,以磁盘为例,一般包括寻找(寻道)时间、等待时间和数据传输时间三个量。因为主存是随机存取存储器存取周期不随存储单元的地址不同而改变。而磁盘存储器属磁表面存储器其存取周期与存储单元的位置有关不同位置所需的寻道时间和等待时间(在磁道上找到指定扇区位置所需的时间)不同故不能以一个物理量来衡量。
4.38磁盘组有6片磁盘,最外两侧盘面可以记录,存储区域内径22cm,外径33cm,道密度为40道/cm,内层密度为400位/cm,转速3600r/min。
(1)共有多少存储面可用?
(2)共有多少柱面?
(3)盘组总存储容量是多少?
(4)数据传输率是多少?
答:
( 1 ) 共有 : 6 × 2 = 12 个存储面可用。
( 2 ) 有效存储区域 = ( 33 − 22 ) / 2 = 5.5 c m 柱面数 = 40 道 / c m × 5.5 = 220 道
( 3 ) 内层道周长 = π × 22 = 69.08 c m
道容量 = 400 位 / c m × 69.08 c m = 3454 B
面容量 = 3454 B × 220 道 = 759880B
盘组总容量 = 759880 B × 12 面 = 9118560 B
( 4 ) 转速 = 3600 转 / 60 秒 = 60 转 / 秒
数据传输率 = 3454 B × 60 转 / 秒 = 207240 B / S
4.39某磁盘存储器转速为3000r/min,共有4个记录盘面,每毫米5道,每道记录信息12288字节,最小磁道直径为230mm,共有275道,求:
(1)磁盘存储器的存储容量。
(2)最高位密度(最小磁道的位密度)和最低位密度。
(3)磁盘数据传输率。
(4)平均等待时间。
答:
4.40 采用定长数据块记录格式的磁盘存储器,直接寻址的最小单位是什么?寻址命令中如何表示磁盘地址?
答:
(1)直接寻址的最小单位是记录块(即扇区);
(2)寻址命令中磁盘地址格式:台号+磁道号+盘面号+扇区号
4.43磁表面存储器和光盘存储器记录信息的原理有何不同?
答:
磁表面存储器:磁表面存储器是在金属或塑料基体的表面上涂一层磁性材料作为记录介质,工作时磁层随载磁体高速运转,用磁头在磁层上进行读/写操作,故称为磁表面存储器。按载磁体形状的不同,可分为磁盘、磁带和磁鼓。它们按其剩磁状态的不同而区分“0”或“1”,而且剩磁状态不会轻易丢失,故这类存储器具有非易失性的特点。
光盘存储器:光光盘存储器是应用激光在记录介质(磁光材料)上进行读/写的存储器,具有非易失性的特点。由于光盘记录密度高、耐用性好、可靠性高和可互换性强等特点,光盘存储器越来越被用于计算机系统。
4.44 试从存储容量、存取速度、使用寿命和应用场合方面比较磁盘、磁带和光盘存储器。
答:
(1)光盘是非接触式读/写信息,大大提高了光盘的耐用性,使用寿命长达数 10 年;靠直径小于 1µm的激光束写入,记录密度高,约为磁盘的 10~100 倍;光盘记录头分量重,体积大,寻道时间长,写入速度低:关盘的介质互换性好,存储容量大,目前价格比较贵。
(2)硬磁盘存储容量大,数据传输率比光盘高,等待时间短,常用作主存的后备存储器;软磁盘存储器容量小,数据传输率低,平均寻道时间长,接触式存取,盘片不固定在驱动器中运行时有大量的灰尘进入盘面,不易提高位密度,近年来软盘已经被淘汰。
(3)磁带已逐渐被磁盘取代,它的数据传输率更低,采用接触式记录,容量也很大,每兆字节价格较低,可用做硬盘的后备存储器。