教材:
![](https://i-blog.csdnimg.cn/blog_migrate/1bd14100746a53f5ecae8cb3ae810ab5.png)
(一)精选课内习题
知识扩展:
如果主存的容量无法满足 CPU 的需求,可以通过存储器扩展来解决,扩展的方式有两种:
主存的位数不够(相当于快递柜的尺寸太小,放不下大包裹),则可以通过位扩展的方式(快递柜扩容)实现;
主存的字数不够(存储单元的数目不够,相当于快递柜数目太少,放不了太多包裹),则可以通过字扩展的方式实现。
3.1
3.2 ![](https://i-blog.csdnimg.cn/blog_migrate/a6f1784ea3d3ca7a9d1053bd856cbe20.png)
拓展:
位扩展
当手头芯片每个存储单元所能存储的位数小于我们所需的时,我们需要对其进行位扩展,如将 16k * 4 的芯片扩展为 16k * 8 的内存。
位扩展时地址线与控制线公用,数据线分开连接,cpu 在读写某个存储单元时会同时对多个存储芯片上具有相同地址的多个存储单元进行操作。
接线图样例如下:
字扩展
3.3
3.4 cache的命中率
3.5 映射方式
3.6 一个组相联cache由64个行组成,每组4行。主存储器包含4K个块,每一块128个字,请表示内存地址的格式。
组相联有组号:
3.7有一个处理器,主存容量是1MB,字长1B,块大小16B,cache容量64KB。若cache采用全相联映射,对内存地址(B0010)16给出的相应的标记和字地址。
3.8
(二)精选课后习题
1.设有一个具有20位地址和32位字长的存储器,问:
(1)该存储器能存储多少个字节的信息?
(2)如果存储器由512k×8位的SRAM 芯片组成,需多少片?
(3)需多少位地址作芯片选择?
答:
(1) 读题:32位字长为4B,20位地址:2^20 = 1M = 1024K(K=2^10,M=2^20)
故存储器容量为2^20×4B = 4MB(或者1024K*4),可存储4M字节的信息
(2)读题:由(1)知 该存储器为1024K×32位 ,故需要 (1024K×32位 )/(512k×8位)=8片
(3) 8 = 2^3,所以需要3根地址进行译码选通。
2.已知某64位机主存采用半导体存储器,其地址码为26位,若使用4M×8位的DRAM芯片组成该机所允许的最大主存空间,并选用内存条结构形式,问:
(1) 若每个内存条为16M×64位,共需几个内存条?
(2) 每个内存条内共有多少DRAM芯片?
(3) 主存共需多少DRAM芯片? CPU如何选择各内存条?
答:
(1)读题:肯定找比它大的:某64位机主存 其地址码为26位(2^26),M=2^10
(2)每个内存条为16M×64位 4M×8位的DRAM芯片
(3)4*8 =32,多个DRAM芯片组合在同一条内存条上,并使用地址线和控制线来选择不同的芯片。
3.用16K×8位的DRAM芯片构成64K×32位存储器,要求:
(1)画出该存储器的组成逻辑框图。
4.有一个1024K×32位的存储器,由128K×8位的DRAM芯片构成.问:
(1) 总共须要若干DRAM芯片?
(2) 设计此存储体构成框图.
答:
6.用32Kx 8位的E2PROM芯片组成128Kx 16位的只读存储器,试问:
(1)数据寄存器多少位?
(2)地址寄存器多少位?
(3)共需多少个E2PROM芯片?
⑷ 画出此存储器组成框图。
答:(1)(2)前两题均针对128Kx 16位的只读存储器
(4)
9.CPU执行一段程序时, cache完成存取的次数为2420次,主存完成存取的次数为80次,已知cache存储周期为40ns,主存存储周期为240ns,求cache/主存系统的效率和平均访问时间。
答:
命中率h=Nc/(Nc+Nm)=2420/(2420+80)=96.8%
平均访问时间ta=htc+(1-h)tm=96.8*40ns+(1-96.8%)*240ns=46.4ns
访问效率e=tc/ta=40ns/46.4ns=86%
10.已知cache存储周期为40ns,主存存取周期为200ns。cache/主存系统平均访问时间为50ns, cache的命中率是
13.一个组相联Cache由64个行组成,每组4行。主存储器包含4K个块,每块128字。请表示内存地址的格式。
答:
14.有一个处理机,内存容量1MB,字长1B,块大小16B,cache容量64KB,假设cache采用直接映射式,请给出2个不同标记的内存地址,它们映射到同一个cache行.
答:
内存容量1MB=2^20B,内存地址为20位;字地址:块大小=16B => 字地址为4位
Cache共有64KB/16B=2^12个行,行号d为12位,
采用直接映射方式,所以cache的行号i与主存的块号j之间的关系为:i=j mod m,m为cache的总行数
20位的内存地址格式如下:
tag | 行号(d) | 字地址 |
4位 | 12位 | 4位 |
两个映射到同一个cache行的内存地址满足的条件是:12位的行号一样,而4位的标记不同即可,例如下面的两个内存地址就满足要求:
0000 000000000000 0000=00000H 与
0001 000000000000 0000=10000H
21.设某系统采用页式虚拟存储管理,页表存放在内存中。
(1) 如果一次内存访问使用50ns,访问一次主存需用多少时间?
(2) 如果增加TLB,忽略查找页表项占用的时间,并且 75%的页表访问命中TLB,内存的有效访问时间是多少?
答:
(1) 若页表存放在主存中,则要实现一次主存访问需两次访问主存:一次是访问页表,确定所存取页面的物理地址;第二次才根据该地址存取页面数据。故访问一次主存的时间为50×2=100(ns)
(2) 75%×50+(1-75%) ×2×50=62.5(ns)
22. 某计算机的存储系统由cache,主存和磁盘构成。 cache 的访问时间为 15ns;如果被访问的单元在主存中但不在 cache 中,需要用 60ns 的时间将其装入 cache, 然后再进行访问;如果被访问的单元不在主存中,则需要 10ms 的时间将其从磁盘中读入主存,然后再装入 cache 中并开始访问。若 cache 的命中率为 90%,主存的命中率为 60%,求该系统中访问一个字的平均时间。
答:
被访问的字在 cache 中的概率为 0.9
不在 cache 中但在主存中的概率为: (1-0.9)×0.6=0.06
不在 cache 也不在主存中的概率为: (1-0.9)×(1-0.6)=0.04
所以, 一个字的访问时间为:
15×0.9+(15+60)×0.06+(15+60+10×106) ×0.04
=13.5+4.5+400003
=400021(ns)
23.某页式存储管理,页大小为2KB,逻辑地址空间包含 16 页,物理空间共有 8 页,逻辑地址应用多少位?主存物理空间有多大?
答:
逻辑地址空间包含16页,页大小为2KB,所以逻辑地址空间为32KB,逻辑地址应用4+11=15位(逻辑地址所需的位数可以通过以下计算得出:log2(总字节数) = log2(16 * 2 * 1024) = log2(32768) = 15)
物理空间共有8页,页大小为2KB,所以主存物理空间16KB
24.在一个分页虚存系统中,用户虚地址空间为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,页内地址与虚地址的页内地址相同,所以是:0100,1011000101=12C5H
1AC5H=00110,1011000101B,页面号为6,未被调入到主存页中,所以无物理地址,会发生缺页中断。