1、第 3 章习题参考答案1第 3 章习题答案1、设有一个具有 20 位地址和 32 位字长的存储器,问(1) 该存储器能存储多少字节的信息?(2) 如果存储器由 512K8 位 SRAM 芯片组成,需要多少片?(3) 需要多少位地址作芯片选择?解:(1) 该存储器能存储: 字 节4M320(2) 需要 片8851231920K(3) 用 512K8 位的芯片构成字长为 32 位的存储器,则需要每 4 片为一组进行字长的位数扩展,然后再由 2 组进行存储器容量的扩展。所以只需一位最高位地址进行芯片选择。2、已知某 64 位机主存采用半导体存储器,其地址码为 26 位,若使用 4M8位的 DRAM
2、芯片组成该机所允许的最大主存空间,并选用内存条结构形式,问;(1) 若每个内存条为 16M64 位,共需几个内存条?(2) 每个内存条内共有多少 DRAM 芯片?(3) 主存共需多少 DRAM 芯片? CPU 如何选择各内存条?解:(1) 共需 内存条条4612M(2) 每个内存条内共有 个芯片32861(3) 主存共需多少 个 RAM 芯片, 共有 4 个内存条,18426故 CPU 选择内存条用最高两位地址 A24 和 A25 通过 2:4 译码器实现;其余的24 根地址线用于内存条内部单元的选择。3、用16K8位的DRAM芯片构成64K32位存储器,要求:(1) 画出该存储器的组成逻辑框
3、图。(2) 设存储器读/写周期为 0.5S,CPU 在 1S 内至少要访问一次。试问采用哪种刷新方式比较合理? 两次刷新的最大时间间隔是多少? 对全部存储单元刷新一遍所需的实际刷新时间是多少?解:(1) 用16K 8位的DRAM芯片构成64K32位存储器,需要用个芯片,其中每4片为一组构成16K 32位进行字长位16816324K第 3 章习题参考答案2数扩展(一组内的4个芯片只有数据信号线不互连分别接D0D7、D 8D15、D 16D23和D 24D31,其余同名引脚互连),需要低14位地址(A0A13)作为模块内各个芯片的内部单元地址分成行、列地址两次由A 0A6引脚输入;然后再由4组进行
4、存储器容量扩展,用高两位地址A 14、A 15通过2:4译码器实现4组中选择一组。画出逻辑框图如下。(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (1) (12) (13) (14) (15) (16) CPU D031 RAS0 RAS1 RAS2 RAS3 A013 A14 15 A06 A06 A06 A06 WE WE 2-4 译 码 RAS D07 D815 D1623 D2431 D07 D815 D1623 D2431 D07 D815 D1623 D2431 D07 D815 D1623 D2431 WE WE WE RAS RAS RAS
5、(2) 设刷新周期为 2ms,并设 16K8 位的 DRAM 结构是 1281288 存储阵列,则对所有单元全部刷新一遍需要 128 次(每次刷新一行,共 128 行)若采用集中式刷新,则每 2ms 中的最后 1280.5s=64s 为集中刷新时间,不能进行正常读写,即存在 64s 的死时间若采用分散式刷新,则每 1s 只能访问一次主存,而题目要求 CPU 在1S 内至少要访问一次,也就是说访问主存的时间间隔越短越好,故此方法也不是最适合的比较适合采用异步式刷新:采用异步刷新方式,则两次刷新操作的最大时间间隔为 ,可取sms625.1815.5s;对全部存储单元刷新一遍所需的实际刷新时间为:1
6、5.5s128=1.984ms;采用这种方式,每 15.5s 中有 0.5s 用于刷新,其余的时间用于访存(大部分时间中 1s 可以访问两次内存 )。4、有一个1024K32位的存储器,由128K8位的DRAM芯片构成。问:(1) 总共需要多少 DRAM芯片?(2) 设计此存储体组成框图。(3) 采用异步刷新方式,如单元刷新间隔不超过8ms,则刷新信号周期是多少?解:第 3 章习题参考答案3(1) 需要 片,每4片为一组,共需8组2812304K(2) 设计此存储体组成框图如下所示。(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13)
7、(14) (15) (16) CPU D0D31 RAS0 A0A16 A17 A18 A0A8 WE WE 3-8 译 码 RAS D07 D815 D1623 D2431 D07 D815 D1623 D2431 D07 D815 D1623 D2431 D07 D815 D1623 D2431 WE WE WE (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) CPU A0A16 WE D07 D815 D1623 D2431 D07 D815 D1623 D2431 D07 D
8、815 D1623 D2431 D07 D815 D1623 D2431 A19 RAS0 RAS1 RAS2 RAS3 RAS4 RAS5 RAS6 RAS7 RAS1 RAS2 RAS3 RAS4 RAS5 RAS6 RAS7 WE (3) 设该 128K8 位的 DRAM 芯片的存储阵列为 5122568 结构,则如果选择一个行地址进行刷新,刷新地址为 A0A8,那么该行上的 2048 个存储元同时进行刷新,要求单元刷新间隔不超过 8ms,即要在 8ms 内进行 512 次刷新操作。采用异步刷新方式时需要每隔 进行一次,可取刷新信号周期为sms625.115.5s。5、要求用256Kl6
9、 位SRAM芯片设计1024K32位的存储器。SRAM芯片有两个控制端:当CS有效时,该片选中。当 W/R1时执行读操作,当 W/R=0时执行写操作。解: ,共需8片,分为4组,每组2片片1625304K即所设计的存储器单元数为 1M,字长为 32,故地址长度为 20 位(A 19A0) ,第 3 章习题参考答案4所用芯片存储单元数为 256K,字长为 16 位,故占用的地址长度为 18 位(A 17A0) 。由此可用字长位数扩展与字单元数扩展相结合的方法组成组成整个存储器字长位数扩展:同一组中 2 个芯片的数据线,一个与数据总线的 D15D0 相连,一个与 D31D16 相连;其余信号线公用
10、(地址线、片选信号、读写信号同名引脚互连)字单元数扩展:4 组 RAM 芯片,使用一片 2:4 译码器,各组除片选信号外,其余信号线公用。其存储器结构如图所示256K16 CPU A0A17 D0D15 A18 W/R 2-4 译 码 D1631 A19 256K16 256K16 256K16 D16D31 256K16 256K16 256K16 256K16 D015 CS Y0 CS CS CS Y1 Y2 Y3 A0A17 D0D15 W/R W/R 6、用32K8位的E 2PROM芯片组成128K16位的只读存储器,试问:(1) 数据寄存器多少位 ?(2) 地址寄存器多少位 ?(3
11、) 共需多少个 E2PROM芯片?(4) 画出此存储器组成框图。解:(1) 系统 16位数据,所以数据寄存器16位(2) 系统地址 128K 217,所以地址寄存器17位 (3)共需 ,分为4组,每组2片 片83168K(4) 组成框图如下第 3 章习题参考答案532K8 CPU A0A14 D07 A15 W/R 2-4 译 码 A16 32K8 32K8 32K8 32K8 32K8 32K8 32K8 D07 CS Y0 CS CS CS Y1 Y2 Y3 A0A14 D0D7 D815 数 据 寄 存 器 地 址 寄 存 器 D815 W/R W/R 7某机器中,已知配有一个地址空间为
12、0000H3FFFH的ROM区域。现在再用一个RAM芯片(8K8)形成40Kl6位的RAM区域,起始地为6000H 。假设RAM芯片有 和 信号控制端。CPU的地址总线为A 15A0,数据总线为D 15D0,CSWE控制信号为 (读/写), (访存) ,要求:RMREQ(1) 画出地址译码方案。(2) 将ROM与RAM同CPU 连接。解:(1) 由于RAM芯片的容量是8K8,要构成40K16的RAM区域,共需要,分为5组,每组2片;8K=2 13,故低位地址为13位:片108640KA12A0每组的2片位并联,进行字长的位扩展有5组RAM芯片,故用于组间选择的译码器使用3:8译码器,用高3位地
13、址A15A13作译码器的选择输入信号地址分配情况:第 3 章习题参考答案6各芯片组 各组地址区间 A15 A14 A13 138的有效输出 iY0 0 0 0ROM 0000H3FFFH0 0 1 10 1 0 2YRAM1 6000H7FFFH 0 1 1 3RAM2 8000H9FFFH 1 0 0 4RAM3 A000HBFFFH 1 0 1 5YRAM4 C000HDFFFH 1 1 0 6RAM5 E000HFFFFH 1 1 1 7注:RAM1RAM5各由2片 8K8芯片组成,进行字长位扩展各芯片组内部的单元地址是A 12A0由全0到全1(2) ROM、RAM 与 CPU 的连接如
14、图:8K8 CPU A0A12 D815 A15 R/ W 3-8 译 码 A14 8K8 8K8 8K8 8K8 8K8 8K8 8K8 CS Y0 CS CS CS Y2 Y4 Y6 A0A12 D0D7 D07 D07 WE A0A12 WE A13 MREQ E 8K8 8K8 D815 CS CS CS CS CS CS ROM 16K8 OE Y1 Y3 Y5 Y7 第 3 章习题参考答案78、设存储器容量为 64M,字长为 64 位,模块数 m=8,分别用顺序和交叉方式进行组织。存储周期 T100ns,数据总线宽度为 64 位,总线传送周期,=50ns。求:顺序存储器和交叉存储器
15、的带宽各是多少?解:顺序存储器和交叉存储器连续读出 m = 8 个字的信息总量都是:q = 64 位8 = 512 位顺序存储器和交叉存储器连续读出 8 个字所需的时间分别是:t1 = mT = 8100ns = 810-7st2 = T+(m-1) = 100ns+750ns = 450 ns= 4.510-7 s顺序存储器和交叉存储器的带宽分别是:W1=q/t1=512/(810-7)=64107位/sW2=q/t2=512/(4.510-7)=113.8107 位/s9、CPU 执行一段程序时,cache 完成存取的次数为 2420 次,主存完成存取的次数为 80 次,已知 cache
16、存储周期为 40ns,主存存储周期为 240ns,求 cache主存系统的效率和平均访问时间。解:cache 的命中率: %8.96024mcNh主存慢于 Cache 的倍率:60ctrCache/主存系统的效率: %2.869.0561)1(hre平均访问时间: nsetca4.82.0第 3 章习题参考答案810、已知 cache 存储周期 40ns,主存存储周期 200ns,cache/主存系统平均访问时间为 50ns,求 cache 的命中率是多少?解:已知 cache主存系统平均访问时间 ta=50ns由于 mcathtt)1(所以有 %75.93402cmath11、某计算机采用四
17、体交叉存储器,今执行一段小循环程序,此程序放在存储器的连续地址单元中,假设每条指令的执行时间相等,而且不需要到存储器存取数据,请问在下面两种情况中(执行的指令数相等) ,程序运行的时间是否相等。(1) 循环程序由 6 条指令组成,重复执行 80 次。(2) 循环程序由 8 条指令组成,重复执行 60 次。解:设取指周期为 T,总线传送周期为 ,每条指令的执行时间相等,并设为t0,存储器采用四体交叉存储器,且程序存放在连续的存储单元中,故取指令操作采用流水线存取方式,两种情况程序运行的总的时间分别为:(1) t = (T+5+6t 0)*80 = 80T+400+480 t 0(2) t = (
18、T+7+8t 0)*60 = 60T+420+480 t 0所以不相等12、一个由主存和 Cache 组成的二级存储系统,参数定义如下:T a 为系统平均存取时间,T 1 为 Cache 的存取时间,T 2 为主存的存取时间,H 为 Cache 命中率,请写出 Ta 与 T1、T 2、H 参数之间的函数关系式。解: 21)(a13、一个组相联 cache 由 64 个行组成,每组 4 行。主存储器包含 4K 个块,每块 128 个字。请表示内存地址的格式。解:主存 4K 个块,每块 128 个字,共有 4K128=219 个字,故主存的地址共 19 位;共 4K 个块,故块地址为 12 位;每
19、块 128 个字,故块内的字地址为 7 位Cache 有 64 行,每组 4 行,共 16 组,故组号 4 位,组内页号 2 位第 3 章习题参考答案9组相联方式是组间直接映射,组内全相联映射方式;所以主存的块地址被分为两部分:低 4 位为在 cache 中的组号,高 8 位为标记字段,即 19 位内存地址的格式如下:tag 组号 字地址8 位 4 位 7 位14、有一个处理机,内存容量 1MB,字长 1B,块大小 16B,cache 容量64KB,若 cache 采用直接映射式,请给出 2 个不同标记的内存地址,它们映射到同一个 cache 行。解:Cache 共有 ,行号为 12 位个 行
20、1264BK采用直接映射方式,所以 cache 的行号 i 与主存的块号 j 之间的关系为:,m 为 cache 的总行数jiod20 位的内存地址格式如下:tag 行号 字地址4 位 12 位 4 位两个映射到同一个 cache 行的内存地址满足的条件是:12 位的行号相同,而 4位的标记不同即可,例如下面的两个内存地址就满足要求:0000 000000000000 0000=00000H 与0001 000000000000 0000=10000H15、假设主存容量 16M32 位,cache 容量 64K32 位,主存与 cache 之间以每块 432 位大小传送数据,请确定直接映射方式
21、的有关参数,并画出主存地址格式。解:由已知条件可知 Cache 共有 ,行号为 14 位个 行位 位 142346K主存共有 ,块地址为 22 位,由行号和标记组成个 块位 位 23416Mcache 的行号 i 与主存的块号 j 之间的关系为:,m 为 cache 的总行数jiod设 32 位为一个字,且按字进行编址,则24 位的内存地址格式如下:tag 行号 字地址8 位 14 位 2 位第 3 章习题参考答案1016. 下述有关存储器的描述中,正确的是( B、D )A. 多级存储体系由Cache、主存和虚拟存储器构成B. 存储保护的目的是:在多用户环境中,既要防止一个用户程序出错而破坏系
22、统软件或其它用户程序,又要防止用户访问不是分配给他的主存区,以达到数据安全与保密的要求。C. 在虚拟存储器中,外存和主存以相同的方式工作,因此允许程序员用比主存空间大得多的外存空间编程。D. Cache和虚拟存储器这两种存储器管理策略都利用了程序的局部性原理。18虚拟段页式存储管理方案的特性为( D )A.空间浪费大、存储共享不易、存储保护容易、不能动态连接。B.空间浪费小、存储共享容易、存储保护不易、不能动态连接。C.空间浪费大、存储共享不易、存储保护容易、能动态连接。D.空间浪费小、存储共享容易、存储保护容易、能动态连接。19. 某虚拟存储器采用页式存储管理,使用LRU页面替换算法,若每次
23、访问在一个时间单位内完成,页面访问序列如下:1、8、1、7、8、2、7、2、1、8、3、8、2、1、3、1、7、1、3、7。已知主存只允许放4个页面,初始状态时4个页面是全空的,则页面失效次数是_6_。解答过程: LRU算法的思想:每页设置一个计数器,每次命中一页,该页对应的计数器清零,其他各页的计数器加1;需要替换时,将计数值最大的页换出,所以,对应的访问过程及相应的计数器的内容、替换结果如下:访问序列 1 8 1 7 8 2 7 2 1 8 3 8 2 1 3 1 7 1 3 7a 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1b 8 8 8 8 8 8 8
24、 8 8 8 8 8 8 8 8 7 7 7 7c 7 7 7 7 7 7 7 3 3 3 3 3 3 3 3 3 3调入的页号 d 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2a 0 1 0 1 2 3 4 5 0 1 2 3 4 0 1 0 1 0 1 2b 0 1 2 0 1 2 3 4 0 1 0 1 2 3 4 0 1 2 0c 0 1 2 0 1 2 3 0 1 2 3 0 1 2 3 0 1各计数器的值 d 0 1 0 1 2 3 4 0 1 2 3 4 5 6 7注:红色标注的页是未命中的访问共6次20. 主存容量为 4MB,虚存容量为 1GB,则虚拟地址和物理地
25、址各为多少位?如页面大小为 4KB,则页表长度是多少?解:主存容量为 4MB,物理地址 22 位虚存容量为 1GB,虚拟地址 30 位页表长度,即页面数=1GB/ 4KB=2 18=256K21. 设某系统采用页式虚拟存储管理,页表存放在内存中。第 3 章习题参考答案11(1) 如果一次内存访问使用 50ns,访问一次主存需用多少时间?(2) 如果增加 TLB,忽略查找页表项占用的时间,并且 75%的页表访问命中TLB,内存的有效访问时间是多少?解:(1) 若页表存放在主存中,则要实现一次主存访问需两次访问主存:一次是访问页表,确定所存取页面的物理地址;第二次才根据该地址存取页面数据。故访问一
26、次主存的时间为 502=100(ns)(2) 75%50+(1-75%) 250=62.5(ns)22.某计算机的存储系统由 cache,主存和磁盘构成。cache 的访问时间为 15ns;如果被访问的单元在主存中但不在 cache 中,需要用 60ns 的时间将其装入cache,然后再进行访问;如果被访问的单元不在主存中,则需要 10ms 的时间将其从磁盘中读入主存,然后再装入 cache 中并开始访问。若 cache 的命中率为90%,主存的命中率为 60%,求该系统中访问一个字的平均时间。解:被访问的字在 cache 中的概率为 0.9不在 cache 中但在主存中的概率为:(1-0.9
27、)0.6=0.06不在 cache 也不在主存中的概率为:(1-0.9)(1-0.6)=0.04所以, 一个字的访问时间为:150.9+(15+60)0.06+(15+60+10106) 0.04=13.5+4.5+400003=400021(ns)23.某页式存储管理,页大小为 2KB,逻辑地址空间包含 16 页,物理空间共有8 页,逻辑地址应用多少位?主存物理空间有多大?解:逻辑地址空间包含 16 页,页大小为 2KB,所以逻辑地址空间为 32KB,逻辑地址应用 4+11=15 位物理空间共有 8 页,页大小为 2KB,所以主存物理空间 16KB 24.在一个分页虚存系统中,用户虚地址空间
28、为 32 页,页长 1KB,主存物理为16KB。已知用户程序有 10 页长,若虚页 0、1、2 、3 已经被调入到主存8、7、4、10 页中,请问虚地址 0AC5 和 1AC5(十六进制)对应的物理地址是多少?解:页长 1KB,所以页内地址为 10 位。主存物理页面数:16 页,共 14 位地址码(其中页面号 4 位,页内地址 10 位)用户虚地址空间:32 页,页面号为 031;共 15 位地址码(其中页面号 5 位,页内地址 10 位)0AC5H=00010,1011000101B,页面号为 2,已被调入到主存页 4,所以,物理地址中的页面号为 4,页内地址与虚地址的页内地址相同,所以是:
29、第 3 章习题参考答案120100,1011000101=12C5H1AC5H=00110,1011000101B,页面号为 6,未被调入到主存页中,所以无物理地址,会发生缺页中断。25.段式虚拟存储器对程序员是否透明?请说明原因。解:虚拟管理是由软件(操作系统)和硬件共同完成,由于软件的介入,虚存对实现存储管理系统程序不透明。而段是按照程序的自然分界划分的长度可以动态改变的区域。通常,程序员把子程序、操作数和常数等不同类型的数据划分到不同的段中,并且每个程序可以有多个相同类型的段。由于分段是由程序员完成的,所以段式虚拟存储器对程序员而言不是透明的,但虚存到实存的地址映射是由系统软件辅助完成的
30、,故对应用程序而言,段式虚拟存储器是“半透明”的。26.在一个进程的执行过程中,是否其所有页面都必须处在主存中?解:在有虚拟存储管理系统中,程序不是一次整体装入内存才运行,所以不是所有页面都必须处在主存中,而是根据程序的局部性,有的页面在主存,有的页面在辅存。27.为什么在页式虚拟存储器地址变换时可以用物理页号与页内偏移量直接拼接成物理地址,而在段式虚拟存储器地址变换时必须用段起址与段内偏移量相加才能得到物理地址?解:由于物理页与虚拟页的页面大小相同,且为 2 的整数次幂,所以页式虚拟存储器地址变换时可以用物理页号与页内偏移量直接拼接成物理地址。而段式虚拟存储器的各段大小不同,且段起始地址任意,所以必须用段起址与段内偏移量相加才能得到物理地址。28.在虚存实现过程中,有些页面会在内存与外存之间被频繁地换入换出,使系统效率急剧下降。这种现象称为颠簸。请解释产生颠簸的原因,并说明防止颠簸的办法。解:产生颠簸的原因主要有二:一是分配的页面数太少,二是替换策略不佳。防止颠簸的办法:适当增加分配给用户程序的页面数,选取 LRU 或更好的替换策略。补充:从下列有关存储器的描述中,选择出正确的答案:A多体交叉存储主要解决扩充容量问题。B访问存储器的请求是由 CPU 发出的。Ccache 与主存统一编址,即主存空间的某一部分属于 cache。Dcache 的功能全由硬件实现。答: D