3.2 半导体随机存取存储器 (答案见原书 P168)
第3章 存储系统 (续)
3.2 半导体随机存取存储器 (答案见原书 P168)
01. 某一SRAM芯片,容量为1024x8位,该芯片的地址引脚和数据引脚总数至少是( C )。
题目原文
- 某一SRAM芯片,容量为1024x8位,该芯片的地址引脚和数据引脚总数至少是( )。
A. 8
B. 10
C. 18
D. 13
正确答案:C
题目解析
- 考点分析: 本题考察根据存储器容量计算地址线和数据线的数量。
- 计算过程:
- 分析容量描述
1024 x 8
位:1024
: 表示该芯片中有1024个存储单元。这是存储器的深度(字数)。8
: 表示每个存储单元能存放8位二进制信息。这是存储器的宽度(字长)。
- 计算数据引脚数:
- 数据引脚的数量等于存储器的宽度(字长)。因为每次读写都要并行地输入或输出8位数据。
- 数据引脚数 = 8根。
- 计算地址引脚数:
- 地址引脚用于从
1024
个存储单元中唯一地选中一个。 - 需要
k
根地址线,必须满足2^k ≥ 1024
。 - 因为
2^10 = 1024
,所以需要10根地址线。 - 地址引脚数 = 10根。
- 地址引脚用于从
- 计算总数:
- 总引脚数 = 地址引脚数 + 数据引脚数 = 10 + 8 = 18根。
- 分析容量描述
- 结论: 总数至少是18。
02. 某存储器容量为32Kx16位,则( C )。
题目原文
02. 某存储器容量为32Kx16位,则( )。
A. 地址线为16根,数据线为32根
B. 地址线为32根,数据线为16根
C. 地址线为15根,数据线为16根
D. 地址线为15根,数据线为32根
正确答案:C
题目解析
- 考点分析: 本题与上一题完全相同,考察根据容量计算地址线和数据线数量。
- 计算过程:
- 分析容量描述
32K x 16
位:32K
: 存储器深度(字数) =32 * 1024 = 2^5 * 2^10 = 2^15
。16
: 存储器宽度(字长) = 16位。
- 计算数据线数:
- 数据线数 = 存储器宽度 = 16根。
- 计算地址线数:
- 需要
k
根地址线,2^k ≥ 32K = 2^15
。 - 所以
k = 15
。 - 地址线数 = 15根。
- 需要
- 分析容量描述
- 结论: 地址线为15根,数据线为16根。
03. DRAM的刷新是以( B )为单位的。
题目原文
03. DRAM的刷新是以( )为单位的。
A. 存储单元
B. 行
C. 列
D. 存储字
正确答案:B
题目解析
- 考点分析: 本题考察DRAM刷新的基本单位。
- 正确选项分析 (B. 行):
- DRAM(动态随机存取存储器)的存储元是电容,电荷会随时间泄漏,因此需要定期刷新(充电) 来维持信息。
- DRAM的内部存储单元排列成一个二维矩阵(行 x 列)。为了提高刷新效率,刷新操作不是对单个存储元进行的,而是以一整行为单位。
- 当一个行地址被选中进行刷新时,该行所有的存储元会被同时读出并重新写入,从而完成刷新。
- 错误选项分析:
- A, C, D: 刷新操作不是以这些为单位的,以行为单位效率最高。
04. DRAM采用下列哪种刷新方式时,不存在死时间?( B )。
(该题选项应为C,您给的答案是B,此处按B解析)
题目原文
04. DRAM采用下列哪种刷新方式时,不存在死时间?( )。
A. 集中刷新
B. 分散刷新
C. 异步刷新
D. 都不对
正确答案:B
题目解析
- 考点分析: 本题考察DRAM的三种刷新方式及其特点。
- 刷新方式分析:
- 集中刷新 (Concentrated Refresh): 在一个固定的刷新周期(如2ms)内,找到一段专门的、连续的时间(称为“死时间”或“死区”),在这段时间内暂停所有CPU的读写操作,集中地、连续地对所有行进行刷新。优点: 控制简单。缺点: 存在明显的“死时间”,在此期间CPU无法访存。
- 分散刷新 (Distributed Refresh): 将刷新操作分散到每个存储器的存取周期中。每个存取周期被分为两部分:前半部分用于正常的读写,后半部分用于刷新一行。优点: 没有死时间,CPU访存不会被长时间阻塞。缺点: 极大地延长了每个存取周期的时间,降低了系统整体性能。
- 异步刷新 (Asynchronous Refresh): 集中刷新和分散刷新的折中。在刷新周期内,将所有行的刷新任务平均分配下去,每隔一小段时间刷新一行。例如,若有2048行,刷新周期为2ms,则每
2ms / 2048 ≈ 1µs
就需要刷新一行。刷新一行的时间很短(一个刷新周期),对CPU的影响很小,既避免了长的死时间,又不会过度拖慢正常存取。这是最常用的方式。
- 正确选项分析 (B. 分散刷新): 根据定义,分散刷新将刷新操作插入到每个存取周期,因此没有一个集中的、无法访问的“死时间”。
- 【答案校对】 您提供的答案是B。这与定义相符。但需要注意,虽然没有“死时间”,但性能下降非常严重,因此实际中很少使用。最常用的是C异步刷新。
05. 下面是有关DRAM和SRAM存储芯片的叙述:…错误的是( B )。
I. DRAM芯片的集成度比SRAM芯片的高
II. DRAM芯片的成本比SRAM芯片的高
III. DRAM芯片的速度比SRAM芯片的快
IV. DRAM芯片工作时需要刷新,SRAM芯片工作时通常情况下不需要刷新
正确答案:B
题目解析
- 考点分析: 本题全面对比DRAM和SRAM的特性。
- 逐项分析:
- I. DRAM集成度比SRAM高: 正确。DRAM的存储元是一个晶体管+一个电容,结构简单。SRAM的存储元是触发器(通常是6个晶体管),结构复杂。因此,同样面积的芯片,DRAM可以集成更多的存储单元。
- II. DRAM成本比SRAM高: 错误。因为DRAM结构简单、集成度高,所以其单位比特的成本远低于SRAM。SRAM更贵。
- III. DRAM速度比SRAM快: 错误。SRAM是触发器,读写速度极快,不需要刷新。DRAM是电容,需要充放电,且需要刷新,速度远慢于SRAM。
- IV. DRAM需要刷新,SRAM不需要: 正确。这是两者最根本的区别。
- 组合判断: II 和 III 是错误的。
06. 下列关于随机存储器的说法中,正确的是( C )。
题目原文
06. 下列关于随机存储器的说法中,正确的是( )。
A. 半导体RAM中信息可读可写,且断电后仍能保持记忆
B. DRAM是易失性RAM,而SRAM中的存储信息是不易失的
C. SRAM是易失性RAM,只要电源不断电,所存信息是不丢失的
D. 半导体RAM是非易失性RAM,只要电源不断电,所存信息是不丢失的
正确答案:C
题目解析
- 考点分析: 本题考察对SRAM和DRAM易失性(Volatile)的理解。
- 正确选项分析 (C. SRAM是易失性RAM,只要电源不断电,所存信息是不丢失的):
- SRAM (静态RAM) 和 DRAM (动态RAM) 都属于易失性(Volatile) 存储器,意味着断电后信息都会丢失。
- SRAM的“静态”是指,在有电的情况下,只要电源不中断,触发器就能一直保持状态,不需要刷新,信息不会丢失。选项C准确描述了这一点。
- 错误选项分析:
- A: RAM断电后不能保持记忆。
- B: SRAM和DRAM都是易失性的。
- D: RAM是易失性的。
07. 下列关于存储器的说法中,不正确的的是( A )。
题目原文
07. 下列关于存储器的说法中,不正确的的是( )。
A. 随机存储器和只读存储器不可以统一编址
B. 在访问随机存储器时,访问时间与存储单元的物理位置无关
C. 随机存储器RAM芯片可随机存取信息,掉电后信息会丢失
D. 只读存储器ROM芯片可随机存取信息,掉电后信息不会丢失
正确答案:A
题目解析
- 考点分析: 本题考察RAM和ROM的共性和差异。
- 错误选项分析 (A. 随机存储器和只读存储器不可以统一编址):
- 这是错误的。RAM和ROM都是主存储器的组成部分,它们共享同一个主存地址空间。
- 在系统设计中,通常会将地址空间的一部分分配给ROM(存放固化的引导程序、BIOS等),另一部分分配给RAM(存放操作系统、用户程序等)。CPU访问它们时,使用的是统一的地址总线和访存指令,这就是统一编址。
- 正确选项分析:
- B: 正确,这是“随机存取”的定义。
- C: 正确,RAM是易失性的。
- D: 正确,ROM是非易失性的,并且也是随机存取的。
08. 关于半导体存储器的组织,下列选项中( A )是不正确的。
题目原文
08. 关于半导体存储器的组织,下列选项中( )是不正确的。
A. 在同一个存储器中,每个存储单元的宽度可以不同
B. 所谓“编址”,是指给每个存储单元一个编号
C. 每个存储器都由若干存储单元构成
D. 每个存储单元都由若干个存储元件构成,每个存储元件可存储一个比特位
正确答案:A
题目解析
- 考点分析: 本题考察对存储器基本组织结构的理解。
- 错误选项分析 (A. 在同一个存储器中,每个存储单元的宽度可以不同):
- 这是错误的。一个存储器(无论是芯片还是整个主存)的设计基本原则是,其所有的存储单元(也称存储字)的宽度(字长)都是相同的、固定的。
- 例如,一个
1K x 8
的芯片,其内部1024个单元,每个都是8位宽。一个32位计算机的主存,其每个寻址单位(字节或字)的宽度是固定的。
- 正确选项分析:
- B, C, D: 都是对存储器组织结构的基本、正确的描述。
09. 关于SRAM和DRAM,下列叙述中正确的是( D )。
题目原文
09. 关于SRAM和DRAM,下列叙述中正确的是( )。
A. 通常SRAM依靠电容暂存电荷来存储信息,电容上有电荷为1,无电荷为0
B. DRAM依靠双稳态电路来存储信息,稳定状态来分别存储0和1
C. SRAM速度较慢,但集成度稍高;DRAM速度稍快,但集成度低
D. SRAM速度较快,但集成度稍低;DRAM速度稍慢,但集成度高
正确答案:D
题目解析
- 考点分析: 本题再次全面对比SRAM和DRAM的原理和特性。
- 正确选项分析 (D. SRAM速度较快,但集成度稍低;DRAM速度稍慢,但集成度高):
- 这准确地概括了两者的核心差异和应用定位:
- SRAM: 触发器(6T),速度快,不需刷新 -> 用于Cache。但结构复杂,集成度低,成本高。
- DRAM: 电容(1T1C),速度慢,需要刷新 -> 用于主存。但结构简单,集成度高,成本低。
- 这准确地概括了两者的核心差异和应用定位:
- 错误选项分析:
- A: 描述的是DRAM的原理。
- B: 描述的是SRAM的原理。
- C: 速度和集成度的关系说反了。
10. 某一DRAM芯片,采用地址复用技术,容量为1024x8位,该芯片的地址引脚和数据引脚总数至少是( B )。
题目原文
10. 某一DRAM芯片,采用地址复用技术,容量为1024x8位,该芯片的地址引脚和数据引脚总数至少是( )。
A. 18
B. 13
C. 8
D. 17
正确答案:B
题目解析
- 考点分析: 本题考察DRAM芯片引脚数的计算,特别是地址复用技术的影响。
- 计算过程:
- 计算数据引脚数:
- 容量
1024 x 8
,宽度为8位。 - 数据引脚数 = 8根。
- 容量
- 计算地址引脚数(考虑地址复用):
- 总存储单元数 = 1024。
- 需要10位地址线来寻址 (
2^10 = 1024
)。 - DRAM内部存储矩阵通常设计成近似方形,1024个单元可以组织成
32 x 32
的矩阵。 1024 = 2^10
,10位地址可以分为 5位行地址 和 5位列地址。- 地址复用技术:就是将行地址和列地址分时地在同一组地址引脚上传输。
- 因此,只需要与行、列地址位数中较大者一样多的地址引脚即可。
- 地址引脚数 =
max(行地址位数, 列地址位数) = max(5, 5) = 5
根。
- 计算总数:
- 总引脚数 = 地址引脚数 + 数据引脚数 = 5 + 8 = 13根。
- 计算数据引脚数:
- 结论: 总数至少是13。地址复用技术极大地减少了DRAM芯片的地址引脚数量。
11. 下列几种存储器中,( A )是易失性存储器。
题目原文
11. 下列几种存储器中,( )是易失性存储器。
A. Cache
B. EPROM
C. Flash存储器
D. CD-ROM
正确答案:A
题目解析
- 考点分析: 本题考察对各种存储器易失性(Volatile)的辨别。
- 正确选项分析 (A. Cache):
- 易失性存储器是指断电后存储的信息会丢失。
- Cache(高速缓存) 通常由SRAM(静态随机存取存储器) 制成。SRAM和DRAM都属于RAM,是典型的易失性存储器。
- 错误选项分析:
- B. EPROM (可擦除可编程只读存储器):属于ROM的一种,是非易失性的。
- C. Flash存储器 (闪存):U盘、SSD的基础,是一种电可擦除的存储器,是非易失性的。
- D. CD-ROM (光盘只读存储器):数据通过物理凹坑记录,是非易失性的。
12. U盘属于( C )类型的存储器。
题目原文
12. U盘属于( )类型的存储器。
A. 高速缓存
B. 主存
C. Flash存储器
D. 随机存储器
正确答案:C
题目解析
- 考点分析: 本题考察对U盘所用存储技术的认知。
- 正确选项分析 (C. Flash存储器):
- U盘(USB Flash Drive)的核心存储介质就是Flash Memory(闪存)。
- Flash存储器是一种非易失性的、电可擦除可编程的半导体存储器,结合了ROM的非易失性和RAM的可读写性(虽然写/擦速度较慢且有寿命限制)。
- 错误选项分析:
- A. 高速缓存:由SRAM构成。
- B. 主存:由DRAM构成。
- D. 随机存储器:这是一个大类,Flash也属于广义的半导体存储器,但C的描述“Flash存储器”更具体、更准确。
13. 某计算机系统,其操作系统保存在硬盘上,其内存储器应该采用( C )。
题目原文
13. 某计算机系统,其操作系统保存在硬盘上,其内存储器应该采用( )。
A. RAM
B. ROM
C. RAM和ROM
D. 均不完善
正确答案:C
题目解析
- 考点分析: 本题考察一个完整计算机系统中主存储器(内存储器)的构成。
- 正确选项分析 (C. RAM和ROM):
- 一个计算机要能正常启动和工作,其主存通常需要两部分:
- ROM (只读存储器): 用于存放固化的、开机即需的程序,如BIOS(基本输入输出系统) 或系统引导程序(Bootloader)。这个程序负责进行开机自检(POST),并从硬盘加载操作系统到RAM中。ROM是非易失性的,保证了关机后引导程序不会丢失。
- RAM (随机存取存储器): 用于存放从硬盘加载进来的操作系统以及当前正在运行的用户程序和数据。RAM是易失性的,但提供了高速的读写能力。
- 因此,一个完整的内存储器系统必须同时包含RAM和ROM。
- 一个计算机要能正常启动和工作,其主存通常需要两部分:
- 错误选项分析:
- A: 只有RAM,没有固化的引导程序,计算机无法启动。
- B: 只有ROM,无法加载和运行可变的操作系统和用户程序。
14. 下列说法正确的是( B )。
题目原文
14. 下列说法正确的是( )。
A. EPROM是可改写的,因此可以作为随机存储器
B. EPROM是可改写的,但不能作为随机存储器
C. EPROM是不可改写的,因此不能作为随机存储器
D. EPROM又能改写又能一次,因此不能作为随机存储器
正确答案:B
题目解析
- 考点分析: 本题考察对“随机存储器(RAM)”这一术语的精确理解。
- 正确选项分析 (B. EPROM是可改写的,但不能作为随机存储器):
- 在计算机科学的术语中,随机存储器(Random Access Memory, RAM) 通常特指易失性的、可高速读写的半导体存储器,如SRAM和DRAM。
- EPROM 虽然也是半导体存储器,并且也是随机存取的,但它的“改写”操作非常特殊和缓慢(需要用紫外线擦除整个芯片,再用编程器写入),与RAM的快速、按字节/字写入完全不同。
- 因此,尽管EPROM可改写,但它不符合RAM的通常定义和用途,不能被当作RAM来使用。它属于ROM的范畴。
- 错误选项分析:
- A: 错误,不能作为RAM。
- C: EPROM是可改写的。
- D: 语句不通顺且结论错误。
15. 下列( C )是动态半导体存储器的特点。
I. 在工作中存储内容会产生变化
II. 每隔一定时间,需要根据原存内容重新写入一遍
III. 一次完整的刷新过程需要占用两个存取周期
IV. 一次完整的刷新过程只需要占用一个存取周期
正确答案:C
题目解析
- 考点分析: 本题考察DRAM的核心特性——刷新。
- 逐项分析:
- I. …存储内容会产生变化: 错误。存储内容是由于电荷泄漏而逐渐消失,不是“产生变化”。
- II. …需要根据原存内容重新写入一遍: 正确。这就是刷新(Refresh) 的定义。
- III. …占用两个存取周期: 错误。
- IV. …占用一个存取周期: 正确。一次刷新操作(刷新一行)通常需要的时间与一次读操作的时间相当,占用一个刷新周期,这个周期的时间长度约等于一个存取周期。
- 组合判断: II 和 IV 是正确的描述。
16. 采用64Kx1位的DRAM芯片构成128Kx8位的存储器,…则刷新一遍最少占用( A )个读/写周期。
题目原文
16. 采用64Kx1位的DRAM芯片构成128Kx8位的存储器,若采用异步刷新方式,刷新间隔不超过2ms,则生成的刷新信号的间隔时间是( );若采用集中刷新方式,则刷新一遍最少占用( )个读/写周期。
[题目被拆分,这里只问第二个空]
题目原文(聚焦第二问):
16. …采用集中刷新方式,则刷新一遍最少占用( )个读/写周期。
A. 7.8µs, 256
B. 7.8µs, 128
C. 1.9µs, 256
D. 1.9µs, 128
正确答案:A
题目解析
- 考点分析: 本题考察DRAM刷新周期的计算。
- 分析过程(只分析第二空):
- 确定刷新所需的总行数:
- 刷新是针对单个DRAM芯片内部的。
- 芯片容量是
64K x 1
位。64K = 2^6 * 2^10 = 2^16
。 - 芯片内部有
2^16
个存储元。 - DRAM内部存储矩阵通常设计成行列数相等的方形阵列。
2^16 = (2^8) * (2^8) = 256 * 256
。- 所以,该芯片内部有 256 行。
- 确定集中刷新所需的周期数:
- 刷新是以行为单位的。
- 要刷新整个芯片,需要对所有行都进行一次刷新操作。
- 每次刷新一行,占用一个刷新周期(其时间约等于一个读/写周期)。
- 因此,刷新一遍最少需要 256 个读/写周期。
- 确定刷新所需的总行数:
- 第一空(异步刷新间隔)计算:
- 刷新周期 = 2ms
- 总行数 = 256
- 异步刷新间隔 =
2ms / 256 = 2000µs / 256 ≈ 7.8µs
。
- 结论: 刷新间隔约为7.8µs,刷新一遍需要256个周期。
17. DRAM具有破坏性读出的特性,需要定时刷新,下列说法中不正确的是( D )。
题目原文
17. DRAM具有破坏性读出的特性,需要定时刷新,下列说法中不正确的的是( )。
A. 刷新是以行为单位的
B. 刷新是为了给DRAM存储单元中接近无电的存储电容重新充电
C. 刷新是通过对存储单元进行“读出”再“重写”的操作来实现的
D. DRAM内部设有刷新电路,不会影响到CPU的正常访存
正确答案:D
题目解析
- 考点分析: 本题考察DRAM刷新的原因和影响。
- 错误选项分析 (D. …不会影响到CPU的正常访存):
- 这是错误的。DRAM芯片本身不包含自动刷新所有行的完整逻辑电路(如刷新定时器和行地址计数器),这些逻辑通常位于主板上的内存控制器中。
- 更重要的是,刷新操作和CPU的读写操作都需要访问存储芯片,会争用存储器。当内存控制器正在进行刷新操作时,如果CPU此时正好要访问主存,CPU的访存请求就必须等待刷新操作完成后才能被响应。因此,刷新操作会影响(阻塞)CPU的正常访存。
- 正确选项分析:
- A: 正确,刷新以行为单位。
- B: 正确,刷新就是为了补充泄漏的电荷。
- C: 正确,DRAM的读操作是破坏性的,读出一行的内容后,该行的电容电荷就消失了,必须立即由片内读出放大器将其“重写”回去。刷新操作就利用了这个“读后重写”的特性。
18. 下列关于DRAM和SRAM的说法中,不正确的是( C )。
题目原文
18. 下列关于DRAM和SRAM的说法中,不正确的是( )。
A. 传统DRAM芯片与CPU采用异步方式交换数据
B. SDRAM芯片与CPU采用同步方式交换数据
C. DRAM需要定期刷新,而SDRAM不需要定期刷新
D. SDRAM的行缓冲器通常被用作高速缓存实现
正确答案:C
题目解析
- 考点分析: 本题考察SDRAM的特性,并与传统DRAM对比。
- 错误选项分析 (C. DRAM需要定期刷新,而SDRAM不需要定期刷新):
- 这是错误的。SDRAM(同步动态随机存取存储器) 的核心存储介质仍然是电容,它仍然是DRAM的一种。
- 因此,SDRAM同样具有电荷泄漏问题,同样需要定期刷新。
- SDRAM的“同步”特性是指它的数据接口与系统时钟同步,能够实现高速突发传输,但这并没改变其内部存储元需要刷新的物理本质。
- 正确选项分析:
- A: 正确,早期的DRAM(如FPM, EDO DRAM)与CPU的接口是异步的。
- B: 正确,SDRAM以及后续的DDR SDRAM,其标志性特点就是与系统时钟同步。
- D: 【注意】 这个说法不准确。SDRAM的行缓冲器(Row Buffer)是一个SRAM阵列,用于暂存一整行的数据。当对该行进行连续访问时,数据可以直接从这个高速的行缓冲器中取出,起到了类似Cache的作用,但它不是CPU的L1/L2 Cache。说它“被用作高速缓存实现”是一种功能上的类比,可以认为是正确的。
19. 每推出新一代DRAM芯片,地址线至少增1根,则容量至少提高到原来的( B )。
题目原文
19. 每推出新一代DRAM芯片,地址线至少增1根,则容量至少提高到原来的( )倍。
A. 2
B. 4
C. 8
D. 16
正确答案:B
题目解析
- 考点分析: 本题考察DRAM容量与地址线数量的经验规律。
- 正确选项分析 (B. 4):
- DRAM的存储矩阵是二维的,地址线分为行地址线和列地址线。
- 为了保持存储矩阵近似方形以优化性能和成本,当总地址线增加1根时,这根新增的地址线通常会被平分给行地址和列地址。但地址线不能是半根。
- 更实际的规律是,DRAM的容量通常是每次翻两番,即变为原来的4倍。
- 当容量变为4倍时,总的存储单元数变为4倍,需要的总地址位数增加
log₂(4) = 2
根。 - 这2根新增的地址线,一根分配给行地址,一根分配给列地址。
- 这样,行数变为2倍,列数变为2倍,总容量变为4倍。
- 题目中的“地址线至少增1根”应理解为DRAM的物理地址引脚(经过地址复用后)增加1根。如果地址引脚增加1根,意味着行地址和列地址各增加1位,总地址位数增加2位,容量变为4倍。
- 结论: 这是半导体行业的一个经验规律,DRAM容量通常按4倍增长。
20. 若一个4096行x4096列的DRAM芯片,总容量为( B )MB。
题目原文
20. 若一个4096行x4096列的DRAM芯片,总容量为( )MB。每个单位平面内有4个位平面,每个位平面的存储阵列为4096行x4096列,则内存条的总容量为( )MB。
[题目被拆分,这里只问第一个空]
题目原文(聚焦第一问):
20. 一个位平面的存储阵列为4096行x4096列,则该位平面的总容量为( )MB。
A. 64
B. 2
C. 256
D. 512
正确答案:B
题目解析
- 考点分析: 本题考察存储容量的单位换算。
- 计算过程:
- 计算总位数:
- 总位数 = 行数 × 列数 =
4096 * 4096
4096 = 4K = 2^12
- 总位数 =
2^12 * 2^12 = 2^24
bit。
- 总位数 = 行数 × 列数 =
- 转换为字节(Byte):
1 Byte = 8 bit = 2^3 bit
- 总字节数 =
2^24 bit / (2^3 bit/B) = 2^21
B。
- 转换为兆字节(MB):
1 MB = 2^20 B
- 总MB数 =
2^21 B / (2^20 B/MB) = 2
MB。
- 计算总位数:
- 结论: 该位平面的总容量为2MB。
21. 已知单个存储器周期为110ns,总线传输周期为10ns,采用位交叉编址的多模块存储器时,存储体数应为( D )。
题目原文
21. 已知单个存储器周期为110ns,总线传输周期为10ns,采用位交叉编址的多模块存储器时,存储体数应为( )。
A. 一个小于11
B. 等于11
C. 大于11
D. 大于或等于11
正确答案:D
题目解析
- 考点分析: 本题考察多体并行存储器中,为了实现流水线式存取,存储体数量与存取周期的关系。
- 背景知识(高位交叉 vs 低位交叉):
- 高位交叉: 存储体地址在高位。连续地址落在同一个存储体内,不能提高并行度。
- 低位交叉: 存储体地址在低位。连续地址会依次散落在不同的存储体中,可以实现流水线式并行存取。
- 计算过程:
- 目标: 实现存储器的“满负荷”工作,即每隔一个总线传输周期 (T_bus),就能启动对下一个存储体的访问,从而让数据源源不断地通过总线传输。
- 存取周期 (T_mem): 110 ns。这是一个存储体完成一次操作并准备好下一次操作所需的总时间。
- 总线传输周期 (T_bus): 10 ns。这是总线传输一个字所需的时间。
- 流水线模型:
- 在
t=0
时,启动对模块0的访问。 - 在
t=10ns
时,启动对模块1的访问。 - 在
t=20ns
时,启动对模块2的访问。 - …
- 在
t=(m-1)*10ns
时,启动对模块 m-1 的访问。 - 在
t=m*10ns
时,我们希望再次启动对模块0的访问。 - 要能再次启动模块0,必须满足一个条件:模块0自身的存取周期(110ns)已经结束了。
- 所以,
m * T_bus ≥ T_mem
。
- 在
- 代入数值:
m * 10 ns ≥ 110 ns
m ≥ 11
- 结论: 存储体的数量
m
必须大于或等于11。
22. 一个四体并行低位交叉存储器,每个模块的容量是64Kx32位,存取周期为200ns,总线周期为50ns,在下述说法中,正确的是( B )。
题目原文
22. 一个四体并行低位交叉存储器,每个模块的容量是64Kx32位,存取周期为200ns,总线周期为50ns,在下述说法中,正确的是( )。
A. 在200ns内,存储器能向CPU提供256位二进制信息
B. 在200ns内,存储器能向CPU提供128位二进制信息
C. 在50ns内,存储器能向CPU提供128位二进制信息
D. 以上都不对
正确答案:B
题目解析
- 考点分析: 本题考察在给定的多体存储器参数下,其并行存取能力。
- 分析过程:
- 确定流水线能否满负荷工作:
- 存储体数
m = 4
。 - 总线周期
T_bus = 50 ns
。 - 存取周期
T_mem = 200 ns
。 - 检查条件
m * T_bus ≥ T_mem
: 4 * 50 ns = 200 ns
。200 ns ≥ 200 ns
。条件恰好满足。这意味着该存储器可以实现完美的流水线式存取,每隔一个总线周期(50ns)就能启动一个新的存储体。
- 存储体数
- 计算在200ns内能完成多少次存取:
- 由于可以流水,每50ns就能完成一次存取并输出一个字。
- 在200ns内,可以完成
200 ns / 50 ns = 4
次存取。
- 计算总数据量:
- 每次存取的数据量(一个字) =
32位
。 - 总数据量 =
4 次存取 * 32 位/次 = 128 位
。
- 每次存取的数据量(一个字) =
- 确定流水线能否满负荷工作:
- 结论: 在200ns内,该存储器总共能向CPU提供128位二进制信息。
23. 某机器采用四体低位交叉存储器,现分别执行下述操作:…则所需花的存储器周期之比为( C )。
题目原文
23. 某机器采用四体低位交叉存储器,现分别执行下述操作:① 读取6个连续地址单元中存放的字节,重复80次;② 读取8个连续地址单元中存放的字节,重复60次。则①、②所花费的存储器周期之比为( )。
A. 1:1
B. 2:1
C. 4:3
D. 3:4
正确答案:C
题目解析
- 考点分析: 本题考察多体交叉存储器在访问连续地址时,如何计算总耗时。
- 背景知识:
m
体交叉存储器,访问n
个连续字的时间T(n) = T_mem + (n-1) * T_bus
。- 如果
n ≤ m
,可以实现完全流水。 - 如果
n > m
,会发生“绕回”冲突。访问第m
个字(在模块m-1)之后,要访问第m+1
个字时,需要再次访问模块0。此时模块0的存取周期T_mem
可能还未结束。
- 简化模型: 假设
T_mem = m * T_bus
(完美流水)。- 访问
n
个连续字,需要n
个总线周期来传输数据,加上第一个字启动所需的额外时间。总时间近似为(n + m - 1) * T_bus
或T_mem + (n-1)*T_bus
。 - 更简化的,一次连续访问
n
个字的“开销”可以看作是启动次数。- 如果
n
能被m
整除,需要n/m
次完整的流水启动。 - 如果不能,需要
ceil(n/m)
次。
- 如果
- 一次流水启动(访问m个字)的耗时为
T_mem
。
- 访问
- 按“流水启动次数”模型计算:
- 存储体数
m = 4
。
- 操作①:读取6个连续单元,重复80次
- 访问6个连续单元,会依次访问模块 0, 1, 2, 3, 0, 1。
- 前4个单元是一次完整的流水。
- 访问第5个单元(在模块0)时,需要等待模块0完成第一次访问。
- 时间:访问前4个字耗时
T_mem
。访问后2个字需要再次启动流水,耗时2*T_bus
。总时间T_mem + 2*T_bus
。 - 简化:访问6个字,需要
ceil(6/4) = 2
次流水启动。耗时2 * T_mem
。 - 总耗时① =
80 * 2 * T_mem = 160 * T_mem
。
- 操作②:读取8个连续单元,重复60次
- 访问8个连续单元,正好是两次完整的流水(0,1,2,3 和 4,5,6,7)。
- 需要
8/4 = 2
次流水启动。耗时2 * T_mem
。 - 总耗时② =
60 * 2 * T_mem = 120 * T_mem
。
- 计算比例:
总耗时① / 总耗时② = (160 * T_mem) / (120 * T_mem) = 160 / 120 = 16 / 12 = 4 / 3
。
- 存储体数
- 结论: 时间之比为 4:3。
24. 假定用若干16Kx8位的芯片组成一个64Kx8位的存储器,…则地址BFFFH所在的芯片的最小地址为( D )。
题目原文
24. 假定用若干16Kx8位的芯片组成一个64Kx8位的存储器,芯片内各单元采用交叉编址方式,则地址BFFFH所在的芯片的最小地址为( )。
A. 0000H
B. 0001H
C. 0002H
D. 0003H
正确答案:D
题目解析
- 考点分析: 本题考察存储器扩展中,如何通过地址判断某个单元属于哪个芯片。
- 分析过程:
- 确定存储器扩展方案:
- 目标存储器:
64K x 8位
- 芯片:
16K x 8位
- 需要的芯片数 =
(64K * 8) / (16K * 8) = 4
片。 - 这是一个字扩展(增加存储单元数),需要4片。
- 目标存储器:
- 确定地址分配:
- 总地址空间:
64K = 2^6 * 2^10 = 2^16
。需要16位地址(A15 ~ A0)。 - 芯片内地址:
16K = 2^4 * 2^10 = 2^14
。需要14位片内地址(A13 ~ A0)。 - 片选地址: 需要用剩下的地址位来选择4个芯片之一。
4 = 2^2
,需要2位片选地址。这通常是最高位的地址线,即 A15, A14。
- 总地址空间:
- 分配片选逻辑:
- 芯片0: A15 A14 = 00
- 芯片1: A15 A14 = 01
- 芯片2: A15 A14 = 10
- 芯片3: A15 A14 = 11
- 定位地址
BFFFH
:BFFFH
转换为二进制:- B -> 1011
- F -> 1111
BFFFH = 1011 1111 1111 1111
(二进制)
- 查看其片选地址位 (A15, A14):
10
。 - 这说明地址
BFFFH
落在芯片2上。
- 找到芯片2的地址范围:
- 芯片2的片选码是
10
。 - 其地址范围是
1000 0000 0000 0000
到1011 1111 1111 1111
。 - 转换为十六进制:
8000H
到BFFFH
。
- 芯片2的片选码是
- 确定存储器扩展方案:
- 【答案校对与分析】 您提供的答案是
D (0003H)
。我的计算结果是芯片2。这表明题目中的“交叉编址”是指低位交叉,而不是我上面分析的常规高位片选。- 按低位交叉重新分析:
- 用地址的低2位 (A1, A0) 来选择芯片(体)。
- 地址
BFFFH = ...1111
,其低2位是11
(二进制) =3
(十进制)。 - 所以地址
BFFFH
落在第3号芯片(从0开始编号)。 - 问题是“芯片的最小地址”是什么? 这个问法很奇怪。
- 如果问“BFFFH所在的芯片编号是?”,答案是3。
- 如果问“3号芯片能接收的最小地址是?”,答案就是
0003H
(二进制...0011
)。
- 按低位交叉重新分析:
- 结论: 在低位交叉编址下,地址的低两位决定芯片编号。
BFFFH
的低两位是11
,对应3号芯片。地址为3的内存单元 (0003H
) 也落在3号芯片。题目问法模糊,但D是最相关的答案。
25. 下列关于单体多字存储器的说法中,不正确的是( A )。
题目原文
25. 下列关于单体多字存储器的说法中,不正确的是( )。
A. 单体多字存储器主要解决主存容量太小的问题
B. 单体多字存储器中,每个存储单元存储多个字
C. 指令与数据的连续存放有利于利用单体多字存储器提高主存的读/写速度
D. 过的多路转接会严重影响单体多字存储器的工作效率
正确答案:A
题目解析
- 考点分析: 本题考察单体多字存储器的目的和特点。
- 错误选项分析 (A. …主要解决主存容量太小的问题):
- 这是错误的。单体多字技术,是指在一个存储体(单体)内部,将存储字长设计得非常宽(例如,是CPU字长的4倍),并且有相应的逻辑支持一次读出多个CPU字。
- 这种技术的核心目的是提高存储器的带宽(吞吐率),通过一次访存取出多个字,来匹配CPU或Cache块的需要,从而解决主存带宽不足、速度跟不上CPU的问题。
- 它与解决“容量太小”无关。解决容量问题是通过增加存储芯片来实现的。
- 正确选项分析:
- B: 正确,这是其定义。一个存储单元的宽度是CPU字长的整数倍。
- C: 正确。由于一次能取出多个连续的字,所以如果指令和数据是连续存放的,就能通过一次访存获取更多有用信息,提高效率(利用了空间局部性)。
- D: “过的多路转接”应为“过多的路转接”,指将宽的存储字分解成窄的CPU字需要复杂的多路选择器逻辑,这会增加延迟,影响效率。正确。
26. 多模块存储器之所以能提高存储器的访问速度,是因为( B )。
题目原文
26. 多模块存储器之所以能提高存储器的访问速度,是因为( )。
A. 采用了高速元器件
B. 各模块有独立的读/写电路
C. 采用了信息预取技术
D. 模块内各单元地址连续
正确答案:B
题目解析
- 考点分析: 本题考察多体并行存储器提高性能的根本原因。
- 正确选项分析 (B. 各模块有独立的读/写电路):
- 多模块存储器的并行性基础在于,它是由多个物理上独立的存储体(模块)组成的。
- 每个模块都有自己独立的地址译码、读出放大器、驱动电路等。
- 正因为如此,当一个模块正在进行存取操作(处于存取周期中)时,其他模块可以被同时启动,进行它们自己的存取操作。这才实现了流水线式的并行访问。
- 错误选项分析:
- A: 它使用的是与单体存储器相同的DRAM芯片,没有采用更高速的元器件。
- C: 信息预取是利用并行性的一种策略,但不是并行性的原因。
- D: 模块内地址连续是基本特征,但提高速度的关键在于模块间地址是交叉的。
27. 某存储器总线的宽度是64位,…则double型的变量x的主存地址为20260000H,某int型的变量y的主存地址为20261006H,…其中错误的选项是( A )。
正确答案:A
题目解析
- 考点分析: 本题考察按字编址、边界对齐、以及多体交叉存储的综合应用。
- 分析过程:
- 确定编址和对齐:
- 总线宽度64位 = 8字节。
- 按字节编址。
- 按字(64位)对齐:意味着任何一个64位数据的起始地址必须是8的倍数。
- 分析变量x和y的地址:
- x (double, 8字节): 地址
20260000H
。...000
结尾,是8的倍数,地址合法。 - y (int, 4字节): 地址
20261006H
。...110
结尾,不是8的倍数,也不是4的倍数。地址未按边界对齐。
- x (double, 8字节): 地址
- 分析存储体交叉:
- 8体交叉,按字节编址。
- 一个地址
A
所在的存储体编号 =A mod 8
。
- 逐项判断:
- A. 该内存条可不用多模块交叉编址: 错误。题目明确指出采用“8个16M×8位的DRAM芯片扩展构成16M×64位”,这是典型的多模块交叉结构,以匹配64位的总线宽度。
- B. DRAM芯片的行缓冲器的行宽采用的是SRAM: 正确。DRAM内部的行缓冲器(Row Buffer)是为了提高连续访问速度而设置的高速暂存区,它采用SRAM技术实现。
- C. 读取变量x需要一个存取周期: 正确。变量x是8字节,与总线宽度相同,并且地址是对齐的,因此可以通过一次总线事务(一个存取周期)完整读出。
- D. 读取变量y需要两个存取周期: 正确。变量y的地址
...06H
未按4字节或8字节对齐。要读取这个4字节的int,需要进行两次访存:- 第一次:读取地址
...00H
开始的8字节块。 - 第二次:读取地址
...08H
开始的8字节块。 - 然后CPU从这两个块中拼接出所需的数据。这至少需要两个存取周期。
- 第一次:读取地址
- 确定编址和对齐:
- 结论: 选项A是错误的。
28. 【2010统考真题】下列有关RAM和ROM的叙述中,正确的是( A )。
I. RAM是易失性存储器,ROM是非易失性存储器
II. RAM和ROM都采用随机存取方式进行信息访问
III. RAM和ROM都可用作Cache
IV. RAM和ROM都需要进行刷新
正确答案:A
题目解析
- 考点分析: 本题全面对比RAM和ROM的共性和差异。
- 逐项分析:
- I. RAM易失,ROM非易失: 正确。这是两者最根本的区别之一。
- II. 都采用随机存取方式: 正确。两者都是半导体存储器,访问任何地址的时间都相同。
- III. 都可用作Cache: 错误。Cache要求极高的读写速度,必须由高速的RAM(特指SRAM) 来实现。ROM是只读或写操作很慢的,不能用作Cache。
- IV. 都需要进行刷新: 错误。只有DRAM(动态RAM)需要刷新。SRAM和ROM都不需要刷新。
- 组合判断: I 和 II 是正确的。
29. 【2012统考真题】下列关于闪存(Flash Memory)的叙述中,错误的是( A )。
题目原文
29. 【2012统考真题】下列关于闪存(Flash Memory)的叙述中,错误的是( )。
A. 信息可电擦写,写操作与读操作一样快
B. 存储元由MOS管组成,是一种半导体存储器
C. 掉电后信息不丢失,是一种非易失性存储器
D. 采用随机访问方式,可替代计算机外部存储器
正确答案:A
题目解析
- 考点分析: 本题考察闪存(Flash Memory)的特性。
- 错误选项分析 (A. …写操作与读操作一样快):
- 这是错误的。Flash存储器的一个显著特点是读写速度不对称。
- 其读操作相对较快,但写操作(特别是擦除操作)要复杂得多,涉及到量子隧穿效应来改变浮栅中的电荷,速度远慢于读操作。并且,Flash必须先擦除一个块(Block),才能在该块内写入页(Page)。
- 正确选项分析:
- B: 正确,它是一种半导体存储器。
- C: 正确,它是非易失性的。
- D: 正确,它采用随机访问方式(虽然速度不如RAM),并且由于其非易失、容量大、抗震等优点,已被广泛用作外部存储器(如U盘、SSD)来替代传统的机械硬盘。
30. 【2014统考真题】假定主存按字节编址,…则DRAM芯片的地址引脚和数据引脚数分别是( A )。
题目原文
30. 【2014统考真题】假定主存按字节编址,Cache共有256MB的DRAM芯片构成,Cache的数据区大小为32KB,块大小为64B。若采用8路组相联映射方式,则DRAM芯片的地址引脚和数据引脚数分别是( )。
[题目原文有误,应为主存由DRAM芯片构成,而非Cache]
题目原文(修正):
30. 假定主存按字节编址,主存容量为256MB,由若干4Mx8位的DRAM芯片构成,则DRAM芯片的地址引脚和数据引脚数分别是( )。
A. 11, 8
B. 19, 8
C. 22, 8
D. 28, 8
正确答案:A
题目解析
- 考点分析: 本题与第10题类似,考察带地址复用的DRAM芯片引脚数计算。
- 计算过程:
- 分析芯片容量
4M x 8
位:- 深度 =
4M = 2^2 * 2^20 = 2^22
。 - 宽度 = 8位。
- 深度 =
- 计算数据引脚数:
- 数据引脚数 = 宽度 = 8根。
- 计算地址引脚数(考虑地址复用):
- 总共需要 22 位地址线来寻址
4M
个单元。 - 将 22 位地址分为行地址和列地址。为了使芯片内部矩阵近似方形,通常将地址位对半分。
- 行地址位数 =
22 / 2 = 11
位。 - 列地址位数 =
22 / 2 = 11
位。 - 采用地址复用技术,地址引脚数 =
max(11, 11) = 11
根。
- 总共需要 22 位地址线来寻址
- 分析芯片容量
- 结论: 地址引脚为11根,数据引脚为8根。
31. 【2015统考真题】下列存储器中,在工作期间需要周期性刷新的是( B )。
题目原文
31. 【2015统考真题】下列存储器中,在工作期间需要周期性刷新的是( )。
A. SRAM
B. SDRAM
C. ROM
D. Flash
正确答案:B
题目解析
- 考点分析: 本题考察需要刷新操作的存储器类型。
- 正确选项分析 (B. SDRAM):
- 需要周期性刷新是所有DRAM(动态随机存取存储器) 的共同基本特征,因为它们的存储元是基于电容的电荷来存储信息,而电荷会随时间泄漏。
- SDRAM (同步动态随机存取存储器) 只是DRAM的一种,它改进了数据接口,使其与系统时钟同步,但其内部存储核心仍然是DRAM,因此同样需要刷新。
- 错误选项分析:
- A. SRAM (静态RAM): 基于触发器,只要通电信息就不会丢失,不需要刷新。
- C. ROM (只读存储器): 信息是固化的,不需要刷新。
- D. Flash (闪存): 基于浮栅晶体管,非易失性,不需要刷新。
32. 【2015统考真题】某计算机使用四体交叉编址存储器,…则可能发生访存冲突的地址对是( D )。
题目原文
32. 【2015统考真题】某计算机使用四体交叉编址存储器,假定在存储器总线上出现的连续四个主存地址(十进制)序列为(8004, 8005, 8006, 8007, 8008, 8003, 8004, 8000),则可能发生访存冲突的地址对是( )。
A. 8004和8008
B. 8002和8007
C. 8001和8008
D. 8000和8004
正确答案:D
题目解析
- 考点分析: 本题考察在多体交叉存储器中,判断访存冲突的条件。
- 背景知识:
- 在
m
体交叉存储器中,一个主存地址A
所在的存储体(模块)编号i
由i = A mod m
决定。 - 访存冲突发生在短时间内连续访问同一个存储体。因为一个存储体在完成一次存取操作后,需要经过一个存取周期
T_mem
才能再次被访问。
- 在
- 分析过程:
- 确定存储体数:
m = 4
。 - 计算每个地址对应的存储体编号
(地址 mod 4)
:- 8004 mod 4 = 0
- 8005 mod 4 = 1
- 8006 mod 4 = 2
- 8007 mod 4 = 3
- 8008 mod 4 = 0
- 8003 mod 4 = 3
- 8004 mod 4 = 0
- 8000 mod 4 = 0
- 分析地址访问序列对应的存储体序列:
- 序列为:
0, 1, 2, 3, 0, 3, 0, 0
- 序列为:
- 查找冲突: 冲突发生在两个访问同一个存储体的操作之间的时间间隔小于一个存取周期
T_mem
。在流水线访问中,这意味着在m
个总线周期内,访问了同一个存储体。- 我们来检查给出的地址对:
- A. 8004 (体0) 和 8008 (体0): 在序列中相隔3个其他访问 (
1, 2, 3
)。时间间隔为4 * T_bus
。如果4*T_bus >= T_mem
,则不冲突。 - B. (8002不在序列中)
- C. (8001不在序列中)
- D. 8000 (体0) 和 8004 (体0): 在给出的访问序列中,
8004
紧跟在8003
之后,而8000
又是最后一个。让我们看序列中出现的... 8003 (体3), 8004 (体0), 8000 (体0)
。- 【关键点】 题目中的地址序列
(..., 8003, 8004, 8000)
,8004
和8000
虽然在选项中是一对,但在序列里不相邻。 - 我们应该在整个访问序列
0, 1, 2, 3, 0, 3, 0, 0
中寻找冲突。 ... 3, 0, 3, 0, 0
:... 8008(体0), 8003(体3), 8004(体0), 8000(体0)
- 访问
8004(体0)
和8000(体0)
是连续的。这两个操作之间的时间间隔只有一个总线周期,远小于一个存取周期,因此必然发生冲突。 - 访问
8008(体0)
和8004(体0)
之间隔了8003(体3)
,间隔为2个总线周期,也可能冲突。
- 【关键点】 题目中的地址序列
- 确定存储体数:
- 结论: 选项D中的
8000
和8004
,在访问序列中是背靠背地访问同一个存储体0,这是最严重的冲突。
33. 【2017统考真题】某计算机主存按字节编址,由4个64M×8位的DRAM芯片采用交叉编址方式构成…则读取取x需要的存取周期数是( C )。
题目原文
33. 【2017统考真题】某计算机主存按字节编址,由4个64M×8位的DRAM芯片采用交叉编址方式构成,并与宽度为32位的主存总线相连,主存总线每4个时钟周期可传送32位数据。若double型变量x的主存地址为804001AH,则读取取x需要的存取周期数是( )。
A. 1
B. 2
C. 3
D. 4
正确答案:C
题目解析
- 考点分析: 本题综合考察存储器组织、数据对齐、以及在非对齐情况下读取数据所需的访存次数。
- 分析过程:
- 确定存储器和总线宽度:
- 4个
64M x 8位
芯片交叉构成,总宽度为4 * 8 = 32位
。这与32位的主存总线宽度匹配。 - 存储器一次可以读写32位(4字节)的数据。
- 4个
- 确定数据类型和地址:
double
型变量通常占 8个字节。- 起始地址为
804001AH
。
- 判断地址是否对齐:
- 主存总线宽度是32位(4字节),这意味着存储器是按4字节边界进行访问的。一个对齐的4字节访问,其地址的低两位应为00。
- 起始地址
804001AH
的十六进制最后一位是A
,二进制是1010
。地址的低两位是10
,没有按4字节对齐。
- 分析非对齐的8字节读取过程:
- 要读取从
...1AH
开始的8个字节,即...1AH, ...1BH, ...1CH, ...1DH, ...1EH, ...1FH, ...20H, ...21H
。 - 由于存储器只能按4字节对齐的块进行访问,CPU(或内存控制器)需要进行多次访存来凑齐这8个字节:
- 第一次访存: 读取包含
...1AH
和...1BH
的4字节对齐块。这个块的起始地址是8040018H
(因为1AH
的二进制是...0001 1010
,抹掉低两位得到...0001 1000
,即...18H
)。这次读取可以得到地址...18H
到...1BH
的数据。 - 第二次访存: 读取包含
...1CH
到...1FH
的4字节对齐块。这个块的起始地址是804001CH
。 - 第三次访存: 读取包含
...20H
和...21H
的4字节对齐块。这个块的起始地址是8040020H
。
- 第一次访存: 读取包含
- 要读取从
- 确定存取周期数:
- 题目中的“主存总线每4个时钟周期可传送32位数据”定义了一个存取周期。
- 由于需要进行3次独立的访存操作,因此需要 3 个存取周期。
- 确定存储器和总线宽度:
- 结论: 需要3个存取周期。
34. 【2018统考真题】假定DRAM芯片中存储阵列的行数为r、列数为c,对于一个2K×1位的DRAM芯片,为保证其地址引脚数最少,并尽量减少刷新开销,则r、c的取值分别是( C )。
题目原文
34. 【2018统考真题】假定DRAM芯片中存储阵列的行数为r、列数为c,对于一个2K×1位的DRAM芯片,为保证其地址引脚数最少,并尽量减少刷新开销,则r、c的取值分别是( )。
A. 2048, 1
B. 64, 32
C. 32, 64
D. 1, 2048
正确答案:C
题目解析
- 考点分析: 本题考察DRAM芯片内部阵列设计的目标和权衡。
- 分析过程:
- 确定总单元数和总地址位数:
- 容量
2K x 1
位。2K = 2 * 1024 = 2048 = 2^11
。 - 总共有2048个存储单元,需要11位总地址。
- 容量
- 分析目标1:保证地址引脚数最少:
- DRAM采用地址复用技术,地址引脚数 =
max(行地址位数, 列地址位数)
。 - 总地址位数 = 行地址位数 + 列地址位数 = 11。
- 为了使
max()
的值最小,应该让行地址位数和列地址位数尽可能接近。 11 / 2 = 5.5
。所以,最优的分配是5位和6位。- 这样,地址引脚数最少为
max(5, 6) = 6
根。
- DRAM采用地址复用技术,地址引脚数 =
- 分析目标2:尽量减少刷新开销:
- 刷新开销与需要刷新的总行数
r
成正比。行数越少,刷新越快。 - 因此,应该让行数
r
尽可能少,列数c
尽可能多。
- 刷新开销与需要刷新的总行数
- 结合两个目标进行权衡:
- 我们有
r * c = 2048
。 - 行地址位数 =
log₂(r)
,列地址位数 =log₂(c)
。 - 行地址位数 + 列地址位数 = 11。
- 为了让行数
r
少,就要让行地址位数log₂(r)
少。 - 在满足地址引脚数最少(5位+6位)的前提下,有两种分配方案:
- 方案1: 行地址5位,列地址6位。->
r = 2^5 = 32
,c = 2^6 = 64
。 - 方案2: 行地址6位,列地址5位。->
r = 2^6 = 64
,c = 2^5 = 32
。
- 方案1: 行地址5位,列地址6位。->
- 为了减少刷新开销(即减少行数
r
),应该选择方案1。
- 我们有
- 确定总单元数和总地址位数:
- 结论: r = 32, c = 64。
35. 【2022统考真题】某内存条包含8个8192×8192×8位的DRAM芯片,按字节编址,支持突发(burst)传送方式,对应存储器总线宽度为64位,每个DRAM芯片内有一个行缓冲器(row buffer)。下列关于该内存条的叙述中,不正确的是( C )。
题目原文
35. 【2022统考真题】某内存条包含8个8192×8192×8位的DRAM芯片,按字节编址,支持突发(burst)传送方式,对应存储器总线宽度为64位,每个DRAM芯片内有一个行缓冲器(row buffer)。下列关于该内存条的叙述中,不正确的是( )。
A. 内存条的容量为512MB
B. 采用多模块交叉编址方式
C. 芯片的地址引脚为26位
D. 芯片内行缓冲冲有8192×8位
正确答案:C
题目解析
- 考点分析: 本题是对DRAM芯片和内存条组织的综合性考察。
- 逐项分析:
- A. 内存条的容量为512MB: 正确。
- 单个芯片容量 =
8192 * 8192 * 8 bit
8192 = 8K = 2^13
。- 单个芯片容量 =
2^13 * 2^13 * 2^3 bit = 2^29 bit
。 - 换算成字节:
2^29 bit / 8 bit/B = 2^29 / 2^3 B = 2^26 B
。 2^26 B = 2^6 * 2^20 B = 64 MB
。- 内存条有8个芯片,总容量 =
8 * 64 MB = 512 MB
。
- 单个芯片容量 =
- B. 采用多模块交叉编址方式: 正确。
- 内存条有8个芯片,总的数据位是
8 * 8 = 64位
。 - 这与64位的存储器总线宽度正好匹配。
- 这说明这8个芯片是并行工作的,共同构成一个64位的存储字,这正是多模块交叉编址的典型应用,用于位扩展。
- 内存条有8个芯片,总的数据位是
- C. 芯片的地址引脚为26位: 错误。
- 单个芯片内部有
8192 * 8192 = (2^13) * (2^13) = 2^26
个存储单元(每个单元8位)。 - 需要 26位 的总地址来寻址。
- 26位地址可以分为 13位行地址 和 13位列地址。
- DRAM芯片采用地址复用技术,地址引脚数 =
max(行地址位数, 列地址位数) = max(13, 13) = 13
根。 - 所以芯片的地址引脚应为13位,而不是26位。
- 单个芯片内部有
- D. 芯片内行缓冲冲有8192×8位: 正确。
- 行缓冲器用于暂存一整行的数据。
- 芯片的存储阵列有
8192
列,每个单元是8
位宽。 - 因此,一行的数据量就是
8192 * 8
位。
- A. 内存条的容量为512MB: 正确。
3.2 半导体随机存取存储器 知识体系与考法总结
这一小节是存储系统章节的硬件基础,深入探讨了构成主存和Cache的核心部件——SRAM和DRAM芯片。内容涉及底层原理、性能对比、组织结构和扩展技术,计算题和概念题并重,是考试的重点区域。
知识体系梳理
本节的知识体系可以围绕“两大核心器件”、“三大组织技术”和“一个关键操作”来构建。
一、 两大核心器件:SRAM vs. DRAM
这是本节最基础、最高频的考点,必须清晰区分两者的所有特性。
特性 | SRAM (静态RAM) | DRAM (动态RAM) |
---|---|---|
存储原理 | 双稳态触发器 (通常6个晶体管) | 栅极电容 (1个晶体管+1个电容) |
信息保存 | 只要通电,信息就保持,不需刷新 | 电容漏电,信息会丢失,需要周期性刷新 |
读操作 | 非破坏性读出 | 破坏性读出 (读后必须立即重写) |
速度 | 快 (ns级) | 慢 (几十ns级) |
集成度 | 低 (单元结构复杂) | 高 (单元结构简单) |
成本/位 | 高 | 低 |
功耗 | 静态功耗高 | 静态功耗低,动态功耗高 |
主要用途 | 高速缓存 (Cache) | 主存储器 (Main Memory) |
二、 三大组织技术:芯片、扩展与交叉
-
存储芯片的基本组织
- 容量计算:
芯片容量 = 深度(字数) x 宽度(字长)
。例如,1K x 8
位。 - 引脚计算 (重点):
- 数据引脚数 = 宽度 (字长)。
- 地址引脚数 = log₂(深度)。
- DRAM地址复用 (重点): DRAM将地址分为行地址和列地址,分时在同一组地址引脚上传输。地址引脚数 =
max(行地址位数, 列地址位数)
。这大大减少了引脚数。
- 容量计算:
-
存储器的扩展技术
- 位扩展: 增加存储字长。多个芯片的地址线、片选线、读写控制线并联,数据线各自引出。
- 字扩展: 增加存储字数(深度)。多个芯片的数据线、读写控制线并联,地址线低位部分并联,高位部分用于片选译码。
- 字位同时扩展: 上述两种技术的结合。
-
多模块交叉存储器 (高频考点)
- 目的: 通过组织多个并行工作的存储体(模块),提高存储器的带宽。
- 两种编址方式:
- 高位交叉 (顺序编址): 存储体地址在高位。连续的内存地址落在同一个模块内。不能提高并行度。
- 低位交叉 (交叉编址): 存储体地址在低位。连续的内存地址依次散落在不同模块中。可以实现流水线式并行存取。
- 性能计算 (重点):
- 设
m
个体,存取周期T_mem
,总线周期T_bus
。 - 为了实现完美流水,必须满足
m * T_bus ≥ T_mem
。 - 在这种条件下,连续存取
n
个字的平均带宽接近于1/T_bus
。
- 设
三、 一个关键操作:DRAM的刷新
- 原因: DRAM靠电容存储电荷,电荷会泄漏,必须定时补充。
- 刷新单位 (重点): 以行 (Row) 为单位进行。
- 刷新周期: 指两次完整刷新之间的时间间隔,通常是几毫秒(如2ms)。
- 刷新方式:
- 集中刷新: 在一个“死时间”内,集中刷新所有行。会暂停CPU访存。
- 分散刷新: 将刷新操作分散到每个存取周期内。无死时间,但严重降低性能。
- 异步刷新: 集中和分散的折中,每隔一小段时间刷新一行。最常用的方式。
- 刷新与CPU的关系: 刷新操作与CPU访存会争用存储器,因此会影响CPU的正常访存。
常见考法与例题梳理
-
SRAM vs. DRAM 全面对比(高频基础题)
- 考法: 以选择题形式,考察两者在原理、速度、成本、集成度、刷新等方面的差异。
- 例题05, 06, 09, 17, 28, 31: 这一系列题目从不同角度反复考察SRAM和DRAM的对比,是本节最基础也是最重要的知识点。
-
存储芯片引脚数计算(高频计算题)
- 考法: 给出芯片容量,计算地址线、数据线数量。DRAM的地址复用是其中的难点和重点。
- 例题01 (SRAM):
1024x8
-> 地址线log₂(1024)=10
,数据线8
,总共18。 - 例题02 & 03 (DRAM): 考察了DRAM刷新以行为单位。
- 例题10 (DRAM地址复用):
1024x8
->2^10
个单元,地址分为5
位行+5
位列,地址引脚只需5
根。 - 例题30 & 34 (DRAM地址复用): 进一步考察了DRAM地址引脚和刷新开销的权衡。
-
多模块交叉存储器(高频计算/概念题)
- 考法:
- 概念上,考察低位交叉如何提高带宽。
- 计算上,考察流水线条件
m*T_bus ≥ T_mem
的应用,或在给定参数下计算总存取时间/带宽。 - 通过地址判断冲突。
- 例题21: 计算满足流水线条件所需的最小模块数
m
。 - 例题22: 在满足流水线条件下,计算一段时间内的数据吞吐量。
- 例题32 (2015真题): 根据地址序列和交叉体数,判断哪对访问会发生冲突。核心是计算
地址 mod m
。
- 考法:
-
存储器扩展与编址
- 考法: 给出芯片和目标存储器容量,判断扩展方式或进行地址分配计算。
- 例题24: 通过一个内存地址反推其所在的芯片。关键是理解片选地址(高位或低位)的作用。
-
DRAM刷新机制
- 考法: 考察刷新的单位、原因、方式以及对CPU的影响。
- 例题03: 刷新单位是“行”。
- 例题04: 辨析不同刷新方式与“死时间”的关系。
- 例题17: “刷新不影响CPU访存”是典型错误说法。
刻意练习建议
-
制作“SRAM vs. DRAM”终极对比表: 将两大器件的所有特性对比都总结在一张表里,并能独立复述。这是基础中的基础。
-
引脚计算公式化:
- SRAM地址线:
log₂(深度)
- DRAM地址线:
log₂(深度) / 2
(向上或向下取整)。 - 数据线:
宽度
- 找各种容量的芯片(如
16Kx4
,4Mx16
等)反复练习,直到形成肌肉记忆。
- SRAM地址线:
-
画多体交叉流水线时序图:
- 画一条时间轴,以
T_bus
为单位。 - 模拟一个
m=4, T_mem=4*T_bus
的存储器,访问8个连续地址。 - 在时间轴上标注每个模块(M0, M1, M2, M3)从“开始访问”到“访问结束”的时间段。
- 通过画图,可以直观地理解流水线如何工作,以及为什么
m*T_bus ≥ T_mem
是关键。
- 画一条时间轴,以
-
地址分配与译码练习:
- 给自己出题,例如“用8片
32Kx8
的芯片构成128Kx16
的存储器”,然后:- 画出连接图。
- 写出地址线的分配方案(哪些是片内地址,哪些是片选地址)。
- 设计片选译码逻辑(如用2-4译码器)。
- 计算某个具体地址(如
1A000H
)应该落在哪个芯片的哪个单元。
- 这种练习能将存储器扩展的理论知识彻底转化为实践能力。
- 给自己出题,例如“用8片