【考研】计组习题:存储器
一、需要注意的知识点1、数据线数和地址线数共同反映存储体容量的大小。地址线的位数决定了主存地址空间的最大可寻址范围。(1)若数据线64 bit 和地址线 36 bit,则芯片的容量为bit。采用 64位数据线,所以在按字节编址(8 bit)方式下,每次最多可存取 8 个单元的内容。而 36 位地址的最大寻址范围为 0 ~,即地址从 0 开始编号,(2)某存储器容量为 32K * 16 bit,则地
一、需要注意的知识点
1、数据线数和地址线数共同反映存储体容量的大小。地址线的位数决定了主存地址空间的最大可寻址范围。
(1)若数据线 64 bit 和地址线 36 bit,则芯片的容量为 bit。
采用 64位数据线,所以在按字节编址(8 bit)方式下,每次最多可存取 8 个单元的内容。
而 36 位地址的最大寻址范围为 0 ~ ,即地址从 0 开始编号,
(2)某存储器容量为 32K * 16 bit,则地址线为 15 根和数据线数 16 根。(,地址线取次方数 15)
(3)若 RAM 中每个存储单元为 16 位,所以数据线是 16 位。地址线只与 RAM 的存储单元个数有关。
2、设存储空间为 M * N 位,现有存储芯片是 m * n 位。
M = m, N > n, 需要对芯片进行位扩展。
M > m, N = n, 需要对芯片进行字扩展。
M > m, N > n, 需要对芯片进行字位同时扩展。
位扩展法、字扩展法、字位同时扩展法,是用来扩展主存容量。
理解可以参考,这博客内容写得浅显易懂:计算机原理中的字,位扩展,都给老子进来学,看不懂算我输!_是小D吖!的博客-CSDN博客
二、习题实练(含考研真题)
1. 在一个容量为128KB的SRAM存储器芯片上,按字长32位编址,其地址范围可从0000H到7fffH。
解:该题实质考察的是字节、进制的单位换算。
容量为128KB:128 KB = B = bit
字长32位( bit)编址存放: / 32 = = 32768
32768 转化为十六进制为 8000 H,因此地址范围从0000H-7fffH
2. 某存储器容量为 64KB,按字节编址,地址 4000H~5FFFH 位 ROM 区,其余为 RAM 区。若采用 8K×4 位的 SRAM 芯片进行设计,则需要该芯片的数量是( C )
A. 7 B. 8 C. 14 D. 16
解:5FFFH - 4000H + 1 = 2000H = 10 0000 0000 0000 = B = 8KB
64KB - 8KB = 56KB
56KB / 8KB =7 片 8KB
采用 8K×4 位,4 = :7 * 2 = 14 片 8KB = 14 片
3. 某计算机主存容量为 64KB,其中 ROM 区为 4KB,其余为 RAM 区,按字节编址。现要用 2K×8 位的 ROM 芯片和 4K×4 位的 RAM 芯片来设计该存储器,则需要上述规格的 ROM 芯片数和 RAM 芯片数分别是( D )。
A. 1,15 B. 2,15 C. 1,30 D. 2,30
解:首先确定 ROM 的个数,ROM 区为4KB,选用 2K×8 位的ROM芯片,采用字扩展方式,需要片数如下:
RAM区为 60KB,选用 4K×4 位的 RAM 芯片,采用字和位同时扩展方式,需要片数如下:
4. 某计算机使用4 体交叉编址存储器,假定在存储器总线上出现的主存地址(十进制)序列为 8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生访存冲突的地址对是( D )
A.8004和8008 B.8002和8007
C.8001和8008 D.8000 和8004
解:交叉存储器,又称低位交叉编址。实际上是一种模块式的存储器,它能并行执行多个独立的读/写操作。本题中,主存地址模4后对应的体号分别是:1, 2, 3, 0, 1, 2, 3, 0, 0。地址为8004和8000都是存取的0号储存器,可能导致8004存储还未完成而又存取8000地址,因此可能发生缓存冲突。
5. 某一 SRAM 芯片,其容量为 1024 × 8 位,除电源和接地端外,该芯片引脚的最小数目为( A )。
A. 21 B. 22 C. 23 D. 24
解:SRAM 芯片容量为1024 * 8 = * 8,所以需要 10根地址线、8根数据线;
另外还需读写控制线各一根,一共 2 根(注意,读写控制线也可共用一根),
以及 1 根片选线,
所以芯片引脚的最小数目为 10 + 8 + 2 + 1 = 21条。(或 10 + 8 + 1 + 1 = 20条)
6. 某容量为 256M 的存储器,由若干 4M * 8位 的 DRAM 芯片构成,该 DRAM 芯片的地址引脚和数据引脚总数是( A )
A. 19 B. 22 C. 30 D. 36解:注意:DRMA 采用地址复用技术,地址线是原来的 1/2,地址信号分行、列两次传送。
所以 256M 这个信息没有作用。容量为 4M * 8,则需要 22 条地址线、8 条数据线。所以该 DRAM 芯片的地址引脚是 11 条和数据引脚是 8 条,总数是 11 + 8 = 19 条。
额外补充:若是问某一DRAM芯片,采用地址复用技术,其容量为1024×8位,除电源和接地端外,该芯片的引脚数最少是( 17根 )(读写控制线为两根)。
解析:DRAM采用地址复用技术时,通过行通选和列通选分行、列两次传送地址信号,因此地址线减半为5根,数据线仍为8根,加上行通选和列通选及读/写控制线(片选线用行通选代替)一共4根,总共是17根。
7. 某计算机存储器按字节编址,主存地址空间大小为64 MB,现用4M × 8位的RAM芯片组成32 MB的主存储器,则存储器地址寄存器MAR的位数至少是( D )
A.22位 B.23位 C.25位 D.26位解:(考点)主存地址空间和地址寄存器位数关系。
64MB 的 主存地址空间,故而 MAR 的寻址范围是 64M,故而是 26位。而实际的主存的空间不能代表 MAR 的位数。
8. 假定用若干个 2K x 4 位芯片组成一个 8K x 8为存储器,则 0B1FH 所在芯片的最小地址
是 ( D )
A. 0000H B. 0600H C. 0700H D. 0800H
考点:主存储器扩展的地址分配解:2K x 4 位芯片组成一个 8K x 8 位存储器,需要8片 2K x 4的芯片。
每两片构成一组2K x 4 位的存储器(位扩展),4组便构成 8K x 8 位存储器(字扩展),地址线 经译码器得到 4 个片选信号。
即若按字节编址,对应一个大小为 8K×8 位的存储器,需要 13位地址,其中高 2 位为片选地址,低11位为片内地址。
而题目给出的地址 0B1FH 转换为二进制为0 1011 0001 1111,其高 3 位为010,即片选地址为 2。因此,地址 0B1FH 对应第 2 片芯片,
该芯片的起始地址(最小地址)为 0 1000 0000 0000,即0800H。
附上:
第一组的起始地址: 000 00 0000 0000 - 001 11 1111 1111
第二组的起始地址: 010 00 0000 0000 - 011 11 1111 1111
第三组的起始地址: 100 00 0000 0000 - 101 11 1111 1111
第四组的起始地址: 110 00 0000 0000 - 111 11 1111 1111
9. 地址总线(低位)~(高位),用 4K×4 位的存储芯片组成 16KB 存储器,则产生片选信号的地址线是( C )。
A. B. C. D.
解:存储器容量 16KB = * 8 bit,芯片容量为 * 4bit,所以存储器有14条地址线,存储芯片有12条地址线,因此将存储器地址线中的高 2 位作为片选信号。
位低位,所以地址线为到。片选信号线为 。
10. 地址总线(高位)~(低位),用 4K×4 位的存储芯片组成 16KB 存储器,则产生片选信号的译码器的输入地址线应该是( A )。
A. B. C. D.
解:4K×4 位的存储芯片的容量为 * 4bit ,由于 为地址线的低位,接入各芯片地址端的是地址线的低 12 位,即 到 ,共有 8 个芯片(16 KB / 4K = 4B,且位扩展时每组两片分为4组)组成 16KB 存储器,则由高两位地址线 作为译码器的输入。
11. 若片选地址为111时,选定某一 32K×16 位的存储芯片工作,则该芯片在存储器中的首地址和末地址分别为 38000H, 3FFFFH。
解:片选地址为111时,可知片选地址是3位,而 32K×16 位的存储芯片,有地址线15根(片内地址),因此地址总位数为 18 位,现高 3 位为 111,
则首地址为11 1000 0000 0000 0000,末地址为 11 1111 1111 1111 1111。
12. 假定 DRAM 芯片中存储阵列的行数为 r、列数为 c,对于一个 2K×1 位的 DRAM 芯片, 为保证其地址引脚数最少,并尽量减小刷新开销,则 r、c 的取值分别是( C )。
A. 2048, 1 B. 64, 32 C. 32, 64 D. 1, 2048
解:根据 DRAM的结构和原理可知,在分时复用的情况下,芯片引脚个数取决于行地址线和列地址线中的较大值。
对于一个 2K×1 位的 DRAM 芯片,总共需要 11 条地址线,只有当一个取 5,一个取 6 时可使管脚数最小,而 DRAM 的刷新开销取决于行数,为了减少刷新开销,应该选行数值较少的,因此行地址线应该为5、列地址线为6,即行数 = 32,列数为 = 64。
13. 若内存地址区间为 4000H ~ 43FFH,每个存储单元可存储16位二进制数,该内存区域用4片存储器芯片组成,则构成该内存所用的存储器芯片的容量是( C )。
A. 512×16 位 B. 1024×8位 C. 256×16位 D. 256×8位
解:43FFH - 4000H + 1 = 400H,即内存区域为 B 个单元,又每个存储单元可存储16位二进制数,所以总容量为 1K * 16 位。现由 4 片存储器芯片组成,则构成该内存所用的存储器芯片的容量是 256 ×16位 (有 1024 / 4 = 256 )。
14. 内存按字节编址,地址从 90000H 到 CFFFFH,若用存储容量为 16K×8bit 的存储器芯片构成该内存,至少需要 ( D )片。
A. 2 B. 4 C. 8 D. 16解:CFFFFH - 90000H +1 = 40000H,即内存区域为 B 个单元,即 256 KB,所以需要的芯片数 = ( 256K * 8 )/( 16K * 8 ) = 16片。
15. 某计算机字长是 16 位,它的存储容量是 256 KB,按字寻址,它的寻址范围是0 ~ 。
解:256 KB = B,按字寻址,且字长为 16bit = 2B,可寻址的单元数 = B / 2B = ,共寻址范围是0 ~ 。
16. 某计算机主存按字节编址,由 4 个 64M×8 位的 DRAM 芯片采用交叉编址方式构成,并与宽度为 32 位的存储器总线相连,主存每次最多读写 32 位数据。若 double 型变量 x 的主存地址为 804 001AH,则读取 x 需要的存储周期数是( C )。
A. 1 B. 2 C. 3 D. 4
解:交叉存储器,又称低位交叉编址(低位地址为体号,高位地址为体内地址)。所以主存地址最低二位表示该字节存储的芯片编号。double型变量占64位,8个字节。
它的主存地址804 001AH 最低二位是10,说明它从编号为 2 的芯片开始存储(共 4 个芯片,编号从 0 开始)。一个存储周期可以对所有芯片各读取一个字节,即读取编号0,1,2,因此需要3轮。
17. 设存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织。存储周期T=200ns,数据总线宽度为64位,总线传送周期φ=50ns。若连续读出4个字,问顺序存储器和交叉存储器的带宽各是多少?
解:顺序存储器和交叉存储器连续读出 m = 4 个字的信息总量都是
q = 64bit * 4 = 256 bit
顺序存储器和交叉存储器连续读出4个字所需的时间分别是
顺序存储器和交叉存储器的带宽分别是
注意:
顺序存储器和交叉存储器都属于多体并行存储器。
(1)顺序存储器:采用高位交叉编址,模块内的地址是连续的,存取方式为串行存取。(不能提高存储器的吞吐率)
(2)交叉存储器:采用低位交叉编址,程序连续存放在相邻模块中,可以不改变每个模块存取周期的前提下,采用流水线的方式并行存取,提高存储器的带宽。
更多的存储器相关题目,可参考:
更多推荐
所有评论(0)