计算机组成与系统结构(第三版) 袁春风主编 课后习题答案讲解 第四章 存储器

 4       

3. 已知某机主存空间大小为64KB,按字节编址。要求

1)若用1K×4位的SRAM芯片构成该主存储器,需要多少个芯片?

2)主存地址共多少位?几位用于选片?几位用于片内选址?

3)画出该存储器的逻辑框图。

参考答案:

164KB / 1K×4 = 64×2 = 128

2)因为是按字节编址,所以主存地址共16位,6位选片,10位片内选址。

3显然,位方向上扩展了2倍,字方向扩展了64倍。下图中片选信号CS为高电平有效。

4.  64K×1位的DRAM芯片构成256K×8位的存储器要求:

(1) 计算所需芯片数,并画出该存储器的逻辑框图。

(2) 若采用异步刷新方式,每单元刷新间隔不超过2ms,则产生刷新信号的间隔是多少时间?若采用集中刷新方式,则存储器刷新一遍最少用多少读写周期?

参考答案:

(1)256KB / 64K×1 = 4×8 = 32。存储器逻辑框图见下页(图中片选信号CS为高电平有效)。

(2)因为每个单元的刷新间隔为2ms,所以,采用异步刷新时,在2ms内每行必须被刷新一次,且仅被刷新一次。因为DRAM芯片存储阵列为64K=256×256,所以一共有256行。因此,存储器控制器必须每隔2ms/256=7.8µs产生一次刷新信号。采用集中刷新方式时,整个存储器刷新一遍需要256个存储(读写)周期,在这个过程中,存储器不能进行读写操作

5.  8K×8位的EPROM芯片组成32K×16位的只读存储器,试问:

(1)数据寄存器最少应有多少位?               (2) 地址寄存器最少应有多少位?

(3) 共需多少个EPROM芯片?     (4) 画出该只读存储器的逻辑框图。

参考答案:

(1)数据寄存器最少16位 

(2)地址寄存器最少有:15位(16位的字编址)16位(按字编址)

(3)共需要 32K×16位 / 8K×8位= 4×2 = 8片

(4)该只读存储器的逻辑框图如下(假定按字编址,图中片选信号CS为高电平有效)。

6.某计算机中已配有0000H7FFFH的ROM区域,现在再用8K×4位的RAM芯片形成32K×8位的存储区域,CPU地址总线为A0-A15,数据总线为D0-D7,控制信号为R/W#(读/写)、MREQ#(访存)。要求说明地址译码方案,并画出ROM芯片、RAM芯片与CPU之间的连接图。假定上述其他条件不变,只是CPU地址线改为24根,地址范围000000H007FFFH为ROM区,剩下的所有地址空间都用8K×4位的RAM芯片配置,则需要多少个这样的RAM芯片?

参考答案:

CPU地址线共16位,故存储器地址空间为0000HFFFFH,其中8000HFFFFH为RAM区,共215=32K个单元,其空间大小为32KB,故需8K×4位的芯片数为32KB/8K×4位= 4×2 = 8片。

因为ROM区在0000H7FFFH,RAM区在8000HFFFFH,所以可通过最高位地址A15来区分,当A15为0选中ROM芯片1时选中RAM芯片,此时,根据A14和A13进行译码,得到4个译码信号,分别用于4组字扩展芯片的片选信号。(图略,可参照图4.15)

若CPU地址线为24位,ROM区为000000H007FFFH,则ROM区大小为32KB,总大小为16MB=214KB=512×32KB,所以RAM区大小为511×32KB共需使用RAM芯片数为511×32KB/8K×4位=511×4×2个芯片。

7.假定一个存储器系统支持4体交叉存取,某程序执行过程中访问地址序列为3, 9, 17, 2, 51, 37, 13, 4, 8, 41, 67, 10,则哪些地址访问会发生体冲突?

参考答案:

对于4体交叉访问的存储系统,每个存储模块的地址分布为:

Bank0: 0、48、12、16 … …

Bank1: 1、5、91317 …37 …41

Bank2: 2、6、10、14、18 … …

Bank3: 3、7、11、15、19…5167

如果给定的访存地址在相邻的4次访问中出现在同一个Bank内,就会发生访存冲突。所以17和9、37和17、13和37、8和4发生冲突。

8.现代计算机中,SRAM一般用于实现快速小容量的cache,而DRAM用于实现慢速大容量的主存。以前超级计算机通常不提供cache,而是用SRAM来实现主存(如,Cray巨型机),请问:如果不考虑成本,你还这样设计高性能计算机吗?为什么?

参考答案:

这样做的理由主要有以下两个方面:

 主存越大越好,主存大,缺页率降低,因而减少了访问磁盘所需的时间。显然用DRAM芯片比用SRAM芯片构成的主存容量大的多。

 程序访问的局部性特点使得cache的命中率很高,因而,即使主存没有用快速的SRAM芯片而是用DRAM芯片,也不会影响到访问速度

9.分别给出具有下列要求的程序或程序段的示例:

(1)对于数据的访问,几乎没有时间局部性和空间局部性

(2)对于数据的访问,有很好的时间局部性,但几乎没有空间局部性

(3)对于数据的访问,有很好的空间局部性,但几乎没有时间局部性

(4)对于数据的访问,空间局部性和时间局部性都好

参考答案(略):

    可以给出许多类似的示例。例如,对于按行优先存放在内存的多维数组,如果按列优先访问数组元素,则空间局部性就差,如果在一个循环体中某个数组元素只被访问一次,则时间局部性就差。

10.假定某机主存空间大小1GB,按字节编址。cache的数据区(即不包括标记、有效位等存储区)有64KB,块大小为128字节,采用直接映射和写(write-through)方式。请问:

(1)主存地址如何划分?要求说明每个字段的含义、位数和在主存地址中的位置。

(2)cache的总容量为多少位?

参考答案:

(1)主存空间大小为1GB,按字节编址,说明主存地址为30位。cache共64KB/128B=512行,因此,行索引(行号)为9位;块大小128字节,说明块内地址为7位。因此,30位主存地址中,高14位为标志(Tag);中间9位为行索引;低7位为块内地址

(2)因为采用直接映射,所以cache中无需替换算法所需控制位,全写方式下也无需修改(dirty)位,而标志位和有效位总是必须有的,所以,cache总容量为512×(128×8+14+1)=519.5K位。

11.假定某计算机的cache共16行,开始为空,块大小为1个字,采用直接映射方式。CPU执行某程序时,依次访问以下地址序列:2,3,11,16,21,13,64,48,19,11,3,22,4,27,6和11。要求:

(1)说明每次访问是命中还是缺失,试计算访问上述地址序列的命中率。

(2)cache数据区容量不变,而块大小改为4个字,则上述地址序列的命中情况又如何?

参考答案

(1)cache采用直接映射方式其数据区容量为16×1字/=16;主存被划分成1字/块,所以主存块号 = 字号因此,映射公式为:cache号 = 主存块号 mod 16 = 字号 mod 16

开始cache为空,所以第一次都是miss,以下是映射关系(字号-cache行号)和命中情况。

2-2: miss3-3: miss11-11: miss16-0: miss, 21-5: miss13-13: miss,64-0: miss、replace

48-0: miss、replace,19-3: miss、replace,11-11: hit, 3-3: miss、replace,22-6: miss

4-4: miss,27-11: miss、replace,6-6: miss、replace,11-11: miss、replace

     只有一次命中!

(2)cache采用直接映射方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值