2024年7月12日发(作者:碧鸿德)
第3章习题参考答案
第3章习题参考答案
1、设有一个具有20位地址和32位字长的存储器,问
(1) 该存储器能存储多少字节的信息?
(2) 如果存储器由512K×8位SRAM芯片组成,需要多少片?
(3) 需要多少位地址作芯片选择?
解:
32
(1) 该存储器能存储:
2
20
4M字节
8
2
20
322
20
32
19
8片
(2) 需要
512K8
28
(3) 用512K8位的芯片构成字长为32位的存储器,则需要每4片为一组进行字
长的位数扩展,然后再由2组进行存储器容量的扩展。所以只需一位最高位地址
进行芯片选择。
2、已知某64位机主存采用半导体存储器,其地址码为26位,若使用4M×8位
的DRAM芯片组成该机所允许的最大主存空间,并选用内存条结构形式,问;
(1) 若每个内存条为16M×64位,共需几个内存条?
(2) 每个内存条内共有多少DRAM芯片?
(3) 主存共需多少DRAM芯片? CPU如何选择各内存条?
解:
2
26
64
4条
内存条 (1) 共需
16M64
(2) 每个内存条内共有
16M64
32
个芯片
4M8
2
26
6464M64
128
个RAM芯片,(3) 主存共需多少 共有4个内存条,故
4M84M8
CPU选择内存条用最高两位地址A
24
和A
25
通过2:4译码器实现;其余的24根
地址线用于内存条内部单元的选择。
3、用16K×8位的DRAM芯片构成64K×32位存储器,要求:
(1) 画出该存储器的组成逻辑框图。
(2) 设存储器读/写周期为0.5μS,CPU在1μS内至少要访问一次。试问采用哪
种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一
遍所需的实际刷新时间是多少?
解:
(1) 用16K×8位的DRAM芯片构成64K×32位存储器,需要用
64K32
4416
个芯片,其中每4片为一组构成16K×32位——进行字长位
16K8
数扩展(一组内的4个芯片只有数据信号线不互连——分别接D
0
D
7
、D
8
D
15
、
1
第3章习题参考答案
D
16
D
23
和D
24
D
31
,其余同名引脚互连),需要低14位地址(A
0
A
13
)作为模块内各
个芯片的内部单元地址——分成行、列地址两次由A
0
A
6
引脚输入;然后再由4
组进行存储器容量扩展,用高两位地址A
14
、A
15
通过2:4译码器实现4组中选择
一组。画出逻辑框图如下。
A
0
A
13
A
0
A
6
A
0
A
6
(5)
(6)
(7)
(8)
WE
RAS
D
07
D
815
D
1623
D
2431
A
0
A
6
(9)
(10)
(11)
(12)
WE
RAS
D
07
D
815
D
1623
D
2431
A
0
A
6
(13)
(14)
(15)
(16)
WE
RAS
D
07
D
815
D
1623
D
2431
CPU
RAS
(1)
(2)
(3)
(4)
D
07
D
815
D
1623
D
2431
WE
D
0
D
31
A
14
A
15
WE
2-4
译码
RAS
0
RAS
1
RAS
2
RAS
3
(2) 设刷新周期为2ms,并设16K8位的DRAM结构是1281288存储阵列,
则对所有单元全部刷新一遍需要128次(每次刷新一行,共128行)
若采用集中式刷新,则每2ms中的最后1280.5s=64s为集中刷新时间,
不能进行正常读写,即存在64s的死时间
若采用分散式刷新,则每1s只能访问一次主存,而题目要求CPU在1μS
内至少要访问一次,也就是说访问主存的时间间隔越短越好,故此方法也不
是最适合的
比较适合采用异步式刷新:
2ms
采用异步刷新方式,则两次刷新操作的最大时间间隔为
15.625
s
,可取
128
15.5s;对全部存储单元刷新一遍所需的实际刷新时间为:15.5s128=1.984ms;
采用这种方式,每15.5s中有0.5s用于刷新,其余的时间用于访存(大部分时
间中1s可以访问两次内存)。
4、有一个1024K×32位的存储器,由128K×8位的DRAM芯片构成。问:
(1) 总共需要多少DRAM芯片?
(2) 设计此存储体组成框图。
(3) 采用异步刷新方式,如单元刷新间隔不超过8ms,则刷新信号周期是多少?
解:
1024K32
(1) 需要
8432
片,每4片为一组,共需8组
128K8
2
第3章习题参考答案
(2) 设计此存储体组成框图如下所示。
A
0
A
16
A
0
A
8
RAS
D
07
D
815
D
1623
D
2431
D
07
D
815
D
1623
D
2431
D
07
D
815
D
1623
D
2431
D
07
D
815
D
1623
D
2431
CPU
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
RAS
1
WE
(9)
(10)
(11)
(12)
RAS
2
WE
(13)
(14)
(15)
(16)
RAS
3
WE
WE
D
0
D
31
RAS
0
WE
(17)
D
07
D
815
D
1623
D
2431
(21)
(22)
(23)
(24)
RAS
5
D
07
D
815
D
1623
D
2431
(25)
(26)
(27)
(28)
RAS
6
D
07
D
815
D
1623
D
2431
(29)
(30)
(31)
(32)
RAS
7
D
07
D
815
D
1623
D
2431
CPU
(18)
(19)
(20)
RAS
4
WE
WE
A
0
A
16
A
17
A
18
A
19
3-8
译码
RAS
0
RAS
1
RAS
2
RAS
3
RAS
4
RAS
5
RAS
6
RAS
7
(3) 设该128K8位的DRAM芯片的存储阵列为5122568结构,则如果选择一
个行地址进行刷新,刷新地址为A
0
A
8
,那么该行上的2048个存储元同时进行
刷新,要求单元刷新间隔不超过8ms,即要在8ms内进行512次刷新操作。采用
8ms
异步刷新方式时需要每隔可取刷新信号周期为15.5s。
15.625
s
进行一次,
512
5、要求用256K×l6位SRAM芯片设计1024K×32位的存储器。SRAM芯片有两个控
制端:当CS有效时,该片选中。当W/R=1时执行读操作,当W/R=0时执行写操
作。
解:
1024K32
428片
,共需8片,分为4组,每组2片
256K16
即所设计的存储器单元数为1M,字长为32,故地址长度为20位(A
19
~A
0
),所
用芯片存储单元数为256K,字长为16位,故占用的地址长度为18位(A
17
~A
0
)。
由此可用字长位数扩展与字单元数扩展相结合的方法组成组成整个存储器
字长位数扩展:同一组中2个芯片的数据线,一个与数据总线的D
15
~D
0
相连,
3
第3章习题参考答案
一个与D
31
~D
16
相连;其余信号线公用(地址线、片选信号、读写信号同名引脚互
连)
字单元数扩展:4组RAM芯片,使用一片2:4译码器,各组除片选信号外,其
余信号线公用。其存储器结构如图所示
D
16
D
31
D
1631
CPU
CS
256K
16
A
0
A
17
W/R
CS
256K
16
CS
256K
16
CS
256K
16
W/R
A
0
A
17
W/R
256K
16
D
0
D
15
D
015
256K
16
256K
16
256K
16
D
0
D
15
Y
0
A
18
A
19
2-4
译码
Y
1
Y
2
Y
3
6、用32K×8位的E
2
PROM芯片组成128K×16位的只读存储器,试问:
(1) 数据寄存器多少位?
(2) 地址寄存器多少位?
(3) 共需多少个E
2
PROM芯片?
(4) 画出此存储器组成框图。
解:(1) 系统16位数据,所以数据寄存器16位
(2) 系统地址128K=2
17
,所以地址寄存器17位
128K16
428片
,分为4组,每组2片 (3)共需
32K8
(4) 组成框图如下
4
第3章习题参考答案
数据
寄存器
CPU
D
815
D
07
CS
32K
8
A
0
A
14
W/R
CS
32K
8
CS
32K
8
CS
D
815
32K
8
W/R
地址
寄存器
A
0
A
14
W/R
32K
8
D
0
D
7
D
07
32K
8
32K
8
32K
8
Y
0
A
15
A
16
2-4
译码
Y
1
Y
2
Y
3
7.某机器中,已知配有一个地址空间为0000H3FFFH的ROM区域。现在再用一
个RAM芯片(8K×8)形成40K×l6位的RAM区域,起始地为6000H。假设RAM芯
片有
CS
和
WE
信号控制端。CPU的地址总线为A
15
A
0
,数据总线为D
15
D
0
,控
制信号为
R/W
(读/写),
MREQ
(访存),要求:
(1) 画出地址译码方案。
(2) 将ROM与RAM同CPU连接。
解:
(1) 由于RAM芯片的容量是8K×8,要构成40K×16的RAM区域,共需要
40K16
分为5组,每组2片;8K=2
13
,故低位地址为13位:A
12
~A
0
5210片
,
8K8
每组的2片位并联,进行字长的位扩展
有5组RAM芯片,故用于组间选择的译码器使用3:8译码器,用高3位地址A
15
~A
13
作译码器的选择输入信号
地址分配情况:
各芯片组 各组地址区间 A
15
A
14
A
13
138的有效输出
Y
i
0
ROM
0000H3FFFH
0 0 1
Y
1
0 0
Y
0
5
RAM1
RAM2
RAM3
RAM4
RAM5
第3章习题参考答案
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
Y
2
Y
3
Y
4
Y
5
Y
6
Y
7
6000H7FFFH
8000H9FFFH
A000HBFFFH
C000HDFFFH
E000HFFFFH
注:RAM1RAM5各由2片8K8芯片组成,进行字长位扩展
各芯片组内部的单元地址是A
12
~A
0
由全0到全1
(2) ROM、RAM与CPU的连接如图:
D
07
D
07
CPU
ROM
16K8
OE
8K8
CS
A
0
A
12
WE
8K8
CS
8K8
CS
8K8
CS
8K8
CS
R/ W
A
0
A
12
WE
8K8
CS
D
0
D
7
D
815
MREQ
A
15
A
14
A
13
E
3-8
译码
Y
0
Y
1
Y
2
Y
3
Y
4
A
0
A
12
8K8
CS
8K8
CS
8K8
CS
8K8
CS
D
815
Y
5
Y
6
Y
7
8、设存储器容量为64M,字长为64位,模块数m=8,分别用顺序和交叉方式
进行组织。存储周期T=100ns,数据总线宽度为64位,总线传送周期,=50ns。
求:顺序存储器和交叉存储器的带宽各是多少?
解:
顺序存储器和交叉存储器连续读出m = 8个字的信息总量都是:
6
第3章习题参考答案
q = 64位×8 = 512位
顺序存储器和交叉存储器连续读出8个字所需的时间分别是:
t
1
= mT = 8×100ns = 8×10
-7
s
t
2
= T+(m-1)τ = 100ns+7×50ns = 450 ns
= 4.5×10
-7
s
顺序存储器和交叉存储器的带宽分别是:
W
1
=q/t
1
=512/(8×10
-7
)=64×10
7
[位/s]
W
2
=q/t
2
=512/(4.5×10
-7
)=113.8×10
7
[位/s]
9、CPU执行一段程序时,cache完成存取的次数为2420次,主存完成存取的次
数为80次,已知cache存储周期为40ns,主存存储周期为240ns,求cache/主
存系统的效率和平均访问时间。
解:cache的命中率:
h
N
c
2420
96.8%
N
c
N
m
242080
主存慢于Cache的倍率:
r
t
m
240
6
t
c
40
Cache/主存系统的效率:
e
11
86.2%
r(1r)h650.968
平均访问时间:
t
a
t
c
40
46.4ns
e0.862
10、已知cache存储周期40ns,主存存储周期200ns,cache/主存系统平均访问时
间为50ns,求cache的命中率是多少?
解:已知cache/主存系统平均访问时间t
a
=50ns
由于
t
a
ht
c
(1h)t
m
所以有
h
t
m
t
a
20050
93.75%
t
m
t
c
20040
11、某计算机采用四体交叉存储器,今执行一段小循环程序,此程序放在存储器
的连续地址单元中,假设每条指令的执行时间相等,而且不需要到存储器存取数
据,请问在下面两种情况中(执行的指令数相等),程序运行的时间是否相等。
(1) 循环程序由6条指令组成,重复执行80次。
(2) 循环程序由8条指令组成,重复执行60次。
7
第3章习题参考答案
解:设取指周期为T,总线传送周期为τ,每条指令的执行时间相等,并设为t
0
,
存储器采用四体交叉存储器,且程序存放在连续的存储单元中,故取指令操作采
用流水线存取方式,两种情况程序运行的总的时间分别为:
(1) t = (T+5τ+6t
0
)*80 = 80T+400τ+480 t
0
(2) t = (T+7τ+8t
0
)*60 = 60T+420τ+480 t
0
所以不相等
12、一个由主存和Cache组成的二级存储系统,参数定义如下:T
a
为系统平均存
取时间,T
1
为Cache的存取时间,T
2
为主存的存取时间,H为Cache命中率,
请写出T
a
与T
1
、T
2
、H参数之间的函数关系式。
解:
T
a
HT
1
(1H)T
2
13、一个组相联cache由64个行组成,每组4行。主存储器包含4K个块,每块
128个字。请表示内存地址的格式。
解:
主存4K个块,每块128个字,共有4K128=2
19
个字,故主存的地址共19位;
共4K个块,故块地址为12位;每块128个字,故块内的字地址为7位
Cache有64行,每组4行,共16组,故组号4位,组内页号2位
组相联方式是组间直接映射,组内全相联映射方式;
所以主存的块地址被分为两部分:低4位为在cache中的组号,高8位为标记字
段,即19位内存地址的格式如下:
tag 组号 字地址
8位 4位 7位
14、有一个处理机,内存容量1MB,字长1B,块大小16B,cache容量64KB,
若cache采用直接映射式,请给出2个不同标记的内存地址,它们映射到同一个
cache行。
解:
64KB
Cache共有
2
12
个行
,行号为12位
16B
采用直接映射方式,所以cache的行号i与主存的块号j之间的关系为:
ijmodm
,m为cache的总行数
20位的内存地址格式如下:
tag 行号 字地址
4位 12位 4位
两个映射到同一个cache行的内存地址满足的条件是:12位的行号相同,而4
位的标记不同即可,例如下面的两个内存地址就满足要求:
0000 0000=00000H与
0001 0000=10000H
8
第3章习题参考答案
15、假设主存容量16M32位,cache容量64K32位,主存与cache之间以每块
432位大小传送数据,请确定直接映射方式的有关参数,并画出主存地址格式。
解:
由已知条件可知Cache共有
64K32位
2
14
个行
,行号为14位
432位
主存共有
16M32位
2
22
个块
,块地址为22位,由行号和标记组成
432位
cache的行号i与主存的块号j之间的关系为:
ijmodm
,m为cache的总行数
设32位为一个字,且按字进行编址,则
24位的内存地址格式如下:
tag 行号 字地址
8位 14位 2位
16. 下述有关存储器的描述中,正确的是( B、D )
A. 多级存储体系由Cache、主存和虚拟存储器构成
B. 存储保护的目的是:在多用户环境中,既要防止一个用户程序出错而破坏系
统软件或其它用户程序,又要防止用户访问不是分配给他的主存区,以达到数据
安全与保密的要求。
C. 在虚拟存储器中,外存和主存以相同的方式工作,因此允许程序员用比主存
空间大得多的外存空间编程。
D. Cache和虚拟存储器这两种存储器管理策略都利用了程序的局部性原理。
18.虚拟段页式存储管理方案的特性为( D )
A.空间浪费大、存储共享不易、存储保护容易、不能动态连接。
B.空间浪费小、存储共享容易、存储保护不易、不能动态连接。
C.空间浪费大、存储共享不易、存储保护容易、能动态连接。
D.空间浪费小、存储共享容易、存储保护容易、能动态连接。
19. 某虚拟存储器采用页式存储管理,使用LRU页面替换算法,若每次访问在一
个时间单位内完成,页面访问序列如下: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;需要替换时,将计数值最大的页换出,所以,对应的访
问过程及相应的计数器的内容、替换结果如下:
访问
序列
调入
的页
a
b
1
1
8
1
8
1
1
8
7
1
8
8
1
8
2
1
8
7
1
8
2
1
8
1
1
8
9
8
1
8
3
1
8
8
1
8
2
1
8
1
1
8
3
1
8
1
1
8
7
1
7
1
1
7
3
1
7
7
1
7
第3章习题参考答案
号 c
d
a
b
c
d
0
1
0
0
1
7
1
2
0
7
2
0
1
7
2
3
1
2
0
7
2
4
2
0
1
7
2
5
3
1
0
7
2
0
4
2
1
7
2
1
0
3
2
3
2
2
1
0
3
3
2
3
0
1
4
3
2
4
1
2
0
3
2
0
2
3
1
3
2
1
3
0
2
3
2
0
4
1
3
3
2
1
0
2
4
3
2
0
1
3
5
3
2
1
2
0
6
3
2
2
0
1
7
各计
数器
的值
注:红色标注的页是未命中的访问——共6次
20. 主存容量为4MB,虚存容量为1GB,则虚拟地址和物理地址各为多少位?如
页面大小为4KB,则页表长度是多少?
解:
主存容量为4MB,物理地址22位
虚存容量为1GB,虚拟地址30位
页表长度,即页面数=1GB/ 4KB=2
18
=256K
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×10
6
) ×0.04
=13.5+4.5+400003
=400021(ns)
23.某页式存储管理,页大小为2KB,逻辑地址空间包含16页,物理空间共有8
页,逻辑地址应用多少位?主存物理空间有多大?
解:逻辑地址空间包含16页,页大小为2KB,所以逻辑地址空间为32KB,逻
10
第3章习题参考答案
辑地址应用4+11=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,未被调入到主存页中,所以无物理
地址,会发生缺页中断。
25.段式虚拟存储器对程序员是否透明?请说明原因。
解:虚拟管理是由软件(操作系统)和硬件共同完成,由于软件的介入,虚存对实
现存储管理系统程序不透明。而段是按照程序的自然分界划分的长度可以动态改
变的区域。通常,程序员把子程序、操作数和常数等不同类型的数据划分到不同
的段中,并且每个程序可以有多个相同类型的段。由于分段是由程序员完成的,
所以段式虚拟存储器对程序员而言不是透明的,但虚存到实存的地址映射是由系
统软件辅助完成的,故对应用程序而言,段式虚拟存储器是“半透明”的。
26.在一个进程的执行过程中,是否其所有页面都必须处在主存中?
解:在有虚拟存储管理系统中,程序不是一次整体装入内存才运行,所以不是所
有页面都必须处在主存中,而是根据程序的局部性,有的页面在主存,有的页面
在辅存。
27.为什么在页式虚拟存储器地址变换时可以用物理页号与页内偏移量直接拼接
成物理地址,而在段式虚拟存储器地址变换时必须用段起址与段内偏移量相加才
能得到物理地址?
解:由于物理页与虚拟页的页面大小相同,且为2的整数次幂,所以页式虚拟存
储器地址变换时可以用物理页号与页内偏移量直接拼接成物理地址。而段式虚拟
存储器的各段大小不同,且段起始地址任意,所以必须用段起址与段内偏移量相
加才能得到物理地址。
28.在虚存实现过程中,有些页面会在内存与外存之间被频繁地换入换出,使系
统效率急剧下降。这种现象称为颠簸。请解释产生颠簸的原因,并说明防止颠簸
的办法。
解:
产生颠簸的原因主要有二:一是分配的页面数太少,二是替换策略不佳。
防止颠簸的办法:适当增加分配给用户程序的页面数,选取LRU或更好的替换
11
第3章习题参考答案
策略。
补充:从下列有关存储器的描述中,选择出正确的答案:
A.多体交叉存储主要解决扩充容量问题。
B.访问存储器的请求是由CPU发出的。
C.cache与主存统一编址,即主存空间的某一部分属于cache。
D.cache的功能全由硬件实现。
答: D
12
2024年7月12日发(作者:碧鸿德)
第3章习题参考答案
第3章习题参考答案
1、设有一个具有20位地址和32位字长的存储器,问
(1) 该存储器能存储多少字节的信息?
(2) 如果存储器由512K×8位SRAM芯片组成,需要多少片?
(3) 需要多少位地址作芯片选择?
解:
32
(1) 该存储器能存储:
2
20
4M字节
8
2
20
322
20
32
19
8片
(2) 需要
512K8
28
(3) 用512K8位的芯片构成字长为32位的存储器,则需要每4片为一组进行字
长的位数扩展,然后再由2组进行存储器容量的扩展。所以只需一位最高位地址
进行芯片选择。
2、已知某64位机主存采用半导体存储器,其地址码为26位,若使用4M×8位
的DRAM芯片组成该机所允许的最大主存空间,并选用内存条结构形式,问;
(1) 若每个内存条为16M×64位,共需几个内存条?
(2) 每个内存条内共有多少DRAM芯片?
(3) 主存共需多少DRAM芯片? CPU如何选择各内存条?
解:
2
26
64
4条
内存条 (1) 共需
16M64
(2) 每个内存条内共有
16M64
32
个芯片
4M8
2
26
6464M64
128
个RAM芯片,(3) 主存共需多少 共有4个内存条,故
4M84M8
CPU选择内存条用最高两位地址A
24
和A
25
通过2:4译码器实现;其余的24根
地址线用于内存条内部单元的选择。
3、用16K×8位的DRAM芯片构成64K×32位存储器,要求:
(1) 画出该存储器的组成逻辑框图。
(2) 设存储器读/写周期为0.5μS,CPU在1μS内至少要访问一次。试问采用哪
种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一
遍所需的实际刷新时间是多少?
解:
(1) 用16K×8位的DRAM芯片构成64K×32位存储器,需要用
64K32
4416
个芯片,其中每4片为一组构成16K×32位——进行字长位
16K8
数扩展(一组内的4个芯片只有数据信号线不互连——分别接D
0
D
7
、D
8
D
15
、
1
第3章习题参考答案
D
16
D
23
和D
24
D
31
,其余同名引脚互连),需要低14位地址(A
0
A
13
)作为模块内各
个芯片的内部单元地址——分成行、列地址两次由A
0
A
6
引脚输入;然后再由4
组进行存储器容量扩展,用高两位地址A
14
、A
15
通过2:4译码器实现4组中选择
一组。画出逻辑框图如下。
A
0
A
13
A
0
A
6
A
0
A
6
(5)
(6)
(7)
(8)
WE
RAS
D
07
D
815
D
1623
D
2431
A
0
A
6
(9)
(10)
(11)
(12)
WE
RAS
D
07
D
815
D
1623
D
2431
A
0
A
6
(13)
(14)
(15)
(16)
WE
RAS
D
07
D
815
D
1623
D
2431
CPU
RAS
(1)
(2)
(3)
(4)
D
07
D
815
D
1623
D
2431
WE
D
0
D
31
A
14
A
15
WE
2-4
译码
RAS
0
RAS
1
RAS
2
RAS
3
(2) 设刷新周期为2ms,并设16K8位的DRAM结构是1281288存储阵列,
则对所有单元全部刷新一遍需要128次(每次刷新一行,共128行)
若采用集中式刷新,则每2ms中的最后1280.5s=64s为集中刷新时间,
不能进行正常读写,即存在64s的死时间
若采用分散式刷新,则每1s只能访问一次主存,而题目要求CPU在1μS
内至少要访问一次,也就是说访问主存的时间间隔越短越好,故此方法也不
是最适合的
比较适合采用异步式刷新:
2ms
采用异步刷新方式,则两次刷新操作的最大时间间隔为
15.625
s
,可取
128
15.5s;对全部存储单元刷新一遍所需的实际刷新时间为:15.5s128=1.984ms;
采用这种方式,每15.5s中有0.5s用于刷新,其余的时间用于访存(大部分时
间中1s可以访问两次内存)。
4、有一个1024K×32位的存储器,由128K×8位的DRAM芯片构成。问:
(1) 总共需要多少DRAM芯片?
(2) 设计此存储体组成框图。
(3) 采用异步刷新方式,如单元刷新间隔不超过8ms,则刷新信号周期是多少?
解:
1024K32
(1) 需要
8432
片,每4片为一组,共需8组
128K8
2
第3章习题参考答案
(2) 设计此存储体组成框图如下所示。
A
0
A
16
A
0
A
8
RAS
D
07
D
815
D
1623
D
2431
D
07
D
815
D
1623
D
2431
D
07
D
815
D
1623
D
2431
D
07
D
815
D
1623
D
2431
CPU
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
RAS
1
WE
(9)
(10)
(11)
(12)
RAS
2
WE
(13)
(14)
(15)
(16)
RAS
3
WE
WE
D
0
D
31
RAS
0
WE
(17)
D
07
D
815
D
1623
D
2431
(21)
(22)
(23)
(24)
RAS
5
D
07
D
815
D
1623
D
2431
(25)
(26)
(27)
(28)
RAS
6
D
07
D
815
D
1623
D
2431
(29)
(30)
(31)
(32)
RAS
7
D
07
D
815
D
1623
D
2431
CPU
(18)
(19)
(20)
RAS
4
WE
WE
A
0
A
16
A
17
A
18
A
19
3-8
译码
RAS
0
RAS
1
RAS
2
RAS
3
RAS
4
RAS
5
RAS
6
RAS
7
(3) 设该128K8位的DRAM芯片的存储阵列为5122568结构,则如果选择一
个行地址进行刷新,刷新地址为A
0
A
8
,那么该行上的2048个存储元同时进行
刷新,要求单元刷新间隔不超过8ms,即要在8ms内进行512次刷新操作。采用
8ms
异步刷新方式时需要每隔可取刷新信号周期为15.5s。
15.625
s
进行一次,
512
5、要求用256K×l6位SRAM芯片设计1024K×32位的存储器。SRAM芯片有两个控
制端:当CS有效时,该片选中。当W/R=1时执行读操作,当W/R=0时执行写操
作。
解:
1024K32
428片
,共需8片,分为4组,每组2片
256K16
即所设计的存储器单元数为1M,字长为32,故地址长度为20位(A
19
~A
0
),所
用芯片存储单元数为256K,字长为16位,故占用的地址长度为18位(A
17
~A
0
)。
由此可用字长位数扩展与字单元数扩展相结合的方法组成组成整个存储器
字长位数扩展:同一组中2个芯片的数据线,一个与数据总线的D
15
~D
0
相连,
3
第3章习题参考答案
一个与D
31
~D
16
相连;其余信号线公用(地址线、片选信号、读写信号同名引脚互
连)
字单元数扩展:4组RAM芯片,使用一片2:4译码器,各组除片选信号外,其
余信号线公用。其存储器结构如图所示
D
16
D
31
D
1631
CPU
CS
256K
16
A
0
A
17
W/R
CS
256K
16
CS
256K
16
CS
256K
16
W/R
A
0
A
17
W/R
256K
16
D
0
D
15
D
015
256K
16
256K
16
256K
16
D
0
D
15
Y
0
A
18
A
19
2-4
译码
Y
1
Y
2
Y
3
6、用32K×8位的E
2
PROM芯片组成128K×16位的只读存储器,试问:
(1) 数据寄存器多少位?
(2) 地址寄存器多少位?
(3) 共需多少个E
2
PROM芯片?
(4) 画出此存储器组成框图。
解:(1) 系统16位数据,所以数据寄存器16位
(2) 系统地址128K=2
17
,所以地址寄存器17位
128K16
428片
,分为4组,每组2片 (3)共需
32K8
(4) 组成框图如下
4
第3章习题参考答案
数据
寄存器
CPU
D
815
D
07
CS
32K
8
A
0
A
14
W/R
CS
32K
8
CS
32K
8
CS
D
815
32K
8
W/R
地址
寄存器
A
0
A
14
W/R
32K
8
D
0
D
7
D
07
32K
8
32K
8
32K
8
Y
0
A
15
A
16
2-4
译码
Y
1
Y
2
Y
3
7.某机器中,已知配有一个地址空间为0000H3FFFH的ROM区域。现在再用一
个RAM芯片(8K×8)形成40K×l6位的RAM区域,起始地为6000H。假设RAM芯
片有
CS
和
WE
信号控制端。CPU的地址总线为A
15
A
0
,数据总线为D
15
D
0
,控
制信号为
R/W
(读/写),
MREQ
(访存),要求:
(1) 画出地址译码方案。
(2) 将ROM与RAM同CPU连接。
解:
(1) 由于RAM芯片的容量是8K×8,要构成40K×16的RAM区域,共需要
40K16
分为5组,每组2片;8K=2
13
,故低位地址为13位:A
12
~A
0
5210片
,
8K8
每组的2片位并联,进行字长的位扩展
有5组RAM芯片,故用于组间选择的译码器使用3:8译码器,用高3位地址A
15
~A
13
作译码器的选择输入信号
地址分配情况:
各芯片组 各组地址区间 A
15
A
14
A
13
138的有效输出
Y
i
0
ROM
0000H3FFFH
0 0 1
Y
1
0 0
Y
0
5
RAM1
RAM2
RAM3
RAM4
RAM5
第3章习题参考答案
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
Y
2
Y
3
Y
4
Y
5
Y
6
Y
7
6000H7FFFH
8000H9FFFH
A000HBFFFH
C000HDFFFH
E000HFFFFH
注:RAM1RAM5各由2片8K8芯片组成,进行字长位扩展
各芯片组内部的单元地址是A
12
~A
0
由全0到全1
(2) ROM、RAM与CPU的连接如图:
D
07
D
07
CPU
ROM
16K8
OE
8K8
CS
A
0
A
12
WE
8K8
CS
8K8
CS
8K8
CS
8K8
CS
R/ W
A
0
A
12
WE
8K8
CS
D
0
D
7
D
815
MREQ
A
15
A
14
A
13
E
3-8
译码
Y
0
Y
1
Y
2
Y
3
Y
4
A
0
A
12
8K8
CS
8K8
CS
8K8
CS
8K8
CS
D
815
Y
5
Y
6
Y
7
8、设存储器容量为64M,字长为64位,模块数m=8,分别用顺序和交叉方式
进行组织。存储周期T=100ns,数据总线宽度为64位,总线传送周期,=50ns。
求:顺序存储器和交叉存储器的带宽各是多少?
解:
顺序存储器和交叉存储器连续读出m = 8个字的信息总量都是:
6
第3章习题参考答案
q = 64位×8 = 512位
顺序存储器和交叉存储器连续读出8个字所需的时间分别是:
t
1
= mT = 8×100ns = 8×10
-7
s
t
2
= T+(m-1)τ = 100ns+7×50ns = 450 ns
= 4.5×10
-7
s
顺序存储器和交叉存储器的带宽分别是:
W
1
=q/t
1
=512/(8×10
-7
)=64×10
7
[位/s]
W
2
=q/t
2
=512/(4.5×10
-7
)=113.8×10
7
[位/s]
9、CPU执行一段程序时,cache完成存取的次数为2420次,主存完成存取的次
数为80次,已知cache存储周期为40ns,主存存储周期为240ns,求cache/主
存系统的效率和平均访问时间。
解:cache的命中率:
h
N
c
2420
96.8%
N
c
N
m
242080
主存慢于Cache的倍率:
r
t
m
240
6
t
c
40
Cache/主存系统的效率:
e
11
86.2%
r(1r)h650.968
平均访问时间:
t
a
t
c
40
46.4ns
e0.862
10、已知cache存储周期40ns,主存存储周期200ns,cache/主存系统平均访问时
间为50ns,求cache的命中率是多少?
解:已知cache/主存系统平均访问时间t
a
=50ns
由于
t
a
ht
c
(1h)t
m
所以有
h
t
m
t
a
20050
93.75%
t
m
t
c
20040
11、某计算机采用四体交叉存储器,今执行一段小循环程序,此程序放在存储器
的连续地址单元中,假设每条指令的执行时间相等,而且不需要到存储器存取数
据,请问在下面两种情况中(执行的指令数相等),程序运行的时间是否相等。
(1) 循环程序由6条指令组成,重复执行80次。
(2) 循环程序由8条指令组成,重复执行60次。
7
第3章习题参考答案
解:设取指周期为T,总线传送周期为τ,每条指令的执行时间相等,并设为t
0
,
存储器采用四体交叉存储器,且程序存放在连续的存储单元中,故取指令操作采
用流水线存取方式,两种情况程序运行的总的时间分别为:
(1) t = (T+5τ+6t
0
)*80 = 80T+400τ+480 t
0
(2) t = (T+7τ+8t
0
)*60 = 60T+420τ+480 t
0
所以不相等
12、一个由主存和Cache组成的二级存储系统,参数定义如下:T
a
为系统平均存
取时间,T
1
为Cache的存取时间,T
2
为主存的存取时间,H为Cache命中率,
请写出T
a
与T
1
、T
2
、H参数之间的函数关系式。
解:
T
a
HT
1
(1H)T
2
13、一个组相联cache由64个行组成,每组4行。主存储器包含4K个块,每块
128个字。请表示内存地址的格式。
解:
主存4K个块,每块128个字,共有4K128=2
19
个字,故主存的地址共19位;
共4K个块,故块地址为12位;每块128个字,故块内的字地址为7位
Cache有64行,每组4行,共16组,故组号4位,组内页号2位
组相联方式是组间直接映射,组内全相联映射方式;
所以主存的块地址被分为两部分:低4位为在cache中的组号,高8位为标记字
段,即19位内存地址的格式如下:
tag 组号 字地址
8位 4位 7位
14、有一个处理机,内存容量1MB,字长1B,块大小16B,cache容量64KB,
若cache采用直接映射式,请给出2个不同标记的内存地址,它们映射到同一个
cache行。
解:
64KB
Cache共有
2
12
个行
,行号为12位
16B
采用直接映射方式,所以cache的行号i与主存的块号j之间的关系为:
ijmodm
,m为cache的总行数
20位的内存地址格式如下:
tag 行号 字地址
4位 12位 4位
两个映射到同一个cache行的内存地址满足的条件是:12位的行号相同,而4
位的标记不同即可,例如下面的两个内存地址就满足要求:
0000 0000=00000H与
0001 0000=10000H
8
第3章习题参考答案
15、假设主存容量16M32位,cache容量64K32位,主存与cache之间以每块
432位大小传送数据,请确定直接映射方式的有关参数,并画出主存地址格式。
解:
由已知条件可知Cache共有
64K32位
2
14
个行
,行号为14位
432位
主存共有
16M32位
2
22
个块
,块地址为22位,由行号和标记组成
432位
cache的行号i与主存的块号j之间的关系为:
ijmodm
,m为cache的总行数
设32位为一个字,且按字进行编址,则
24位的内存地址格式如下:
tag 行号 字地址
8位 14位 2位
16. 下述有关存储器的描述中,正确的是( B、D )
A. 多级存储体系由Cache、主存和虚拟存储器构成
B. 存储保护的目的是:在多用户环境中,既要防止一个用户程序出错而破坏系
统软件或其它用户程序,又要防止用户访问不是分配给他的主存区,以达到数据
安全与保密的要求。
C. 在虚拟存储器中,外存和主存以相同的方式工作,因此允许程序员用比主存
空间大得多的外存空间编程。
D. Cache和虚拟存储器这两种存储器管理策略都利用了程序的局部性原理。
18.虚拟段页式存储管理方案的特性为( D )
A.空间浪费大、存储共享不易、存储保护容易、不能动态连接。
B.空间浪费小、存储共享容易、存储保护不易、不能动态连接。
C.空间浪费大、存储共享不易、存储保护容易、能动态连接。
D.空间浪费小、存储共享容易、存储保护容易、能动态连接。
19. 某虚拟存储器采用页式存储管理,使用LRU页面替换算法,若每次访问在一
个时间单位内完成,页面访问序列如下: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;需要替换时,将计数值最大的页换出,所以,对应的访
问过程及相应的计数器的内容、替换结果如下:
访问
序列
调入
的页
a
b
1
1
8
1
8
1
1
8
7
1
8
8
1
8
2
1
8
7
1
8
2
1
8
1
1
8
9
8
1
8
3
1
8
8
1
8
2
1
8
1
1
8
3
1
8
1
1
8
7
1
7
1
1
7
3
1
7
7
1
7
第3章习题参考答案
号 c
d
a
b
c
d
0
1
0
0
1
7
1
2
0
7
2
0
1
7
2
3
1
2
0
7
2
4
2
0
1
7
2
5
3
1
0
7
2
0
4
2
1
7
2
1
0
3
2
3
2
2
1
0
3
3
2
3
0
1
4
3
2
4
1
2
0
3
2
0
2
3
1
3
2
1
3
0
2
3
2
0
4
1
3
3
2
1
0
2
4
3
2
0
1
3
5
3
2
1
2
0
6
3
2
2
0
1
7
各计
数器
的值
注:红色标注的页是未命中的访问——共6次
20. 主存容量为4MB,虚存容量为1GB,则虚拟地址和物理地址各为多少位?如
页面大小为4KB,则页表长度是多少?
解:
主存容量为4MB,物理地址22位
虚存容量为1GB,虚拟地址30位
页表长度,即页面数=1GB/ 4KB=2
18
=256K
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×10
6
) ×0.04
=13.5+4.5+400003
=400021(ns)
23.某页式存储管理,页大小为2KB,逻辑地址空间包含16页,物理空间共有8
页,逻辑地址应用多少位?主存物理空间有多大?
解:逻辑地址空间包含16页,页大小为2KB,所以逻辑地址空间为32KB,逻
10
第3章习题参考答案
辑地址应用4+11=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,未被调入到主存页中,所以无物理
地址,会发生缺页中断。
25.段式虚拟存储器对程序员是否透明?请说明原因。
解:虚拟管理是由软件(操作系统)和硬件共同完成,由于软件的介入,虚存对实
现存储管理系统程序不透明。而段是按照程序的自然分界划分的长度可以动态改
变的区域。通常,程序员把子程序、操作数和常数等不同类型的数据划分到不同
的段中,并且每个程序可以有多个相同类型的段。由于分段是由程序员完成的,
所以段式虚拟存储器对程序员而言不是透明的,但虚存到实存的地址映射是由系
统软件辅助完成的,故对应用程序而言,段式虚拟存储器是“半透明”的。
26.在一个进程的执行过程中,是否其所有页面都必须处在主存中?
解:在有虚拟存储管理系统中,程序不是一次整体装入内存才运行,所以不是所
有页面都必须处在主存中,而是根据程序的局部性,有的页面在主存,有的页面
在辅存。
27.为什么在页式虚拟存储器地址变换时可以用物理页号与页内偏移量直接拼接
成物理地址,而在段式虚拟存储器地址变换时必须用段起址与段内偏移量相加才
能得到物理地址?
解:由于物理页与虚拟页的页面大小相同,且为2的整数次幂,所以页式虚拟存
储器地址变换时可以用物理页号与页内偏移量直接拼接成物理地址。而段式虚拟
存储器的各段大小不同,且段起始地址任意,所以必须用段起址与段内偏移量相
加才能得到物理地址。
28.在虚存实现过程中,有些页面会在内存与外存之间被频繁地换入换出,使系
统效率急剧下降。这种现象称为颠簸。请解释产生颠簸的原因,并说明防止颠簸
的办法。
解:
产生颠簸的原因主要有二:一是分配的页面数太少,二是替换策略不佳。
防止颠簸的办法:适当增加分配给用户程序的页面数,选取LRU或更好的替换
11
第3章习题参考答案
策略。
补充:从下列有关存储器的描述中,选择出正确的答案:
A.多体交叉存储主要解决扩充容量问题。
B.访问存储器的请求是由CPU发出的。
C.cache与主存统一编址,即主存空间的某一部分属于cache。
D.cache的功能全由硬件实现。
答: D
12