存储系统 - 存储容量计算(字节编址、位编址、芯片个数)

时间:2024-10-21 08:26:43

文章目录

  • 1 概述
    • 1.1 主存储器图示
    • 1.2 专业术语解释
  • 2 容量计算
    • 2.1 存储单元个数
    • 2.2 存储容量
    • 2.3 所需芯片数
  • 3 扩展
    • 3.1 网工软考真题

1 概述

容量计算
按位计算(b,bit):存储容量 = 存储单元个数 * 存储字长
按字节计算(B,Byte):存储容量 = 存储单元个数 * 存储字长 / 8
单位转换:1 字节 = 8 位,即 1 Byte = 8 bit

1.1 主存储器图示

在这里插入图片描述

1.2 专业术语解释

术语 描述
存储地址寄存器 MAR MAR 位数 = 地址总线根数,决定了 存储单元的个数
存储数据寄存器 MDR MDR 位数 = 数据总线根数,决定了 存储字长
存储元 存储一位二进制代码的基本单元电路
存储单元 若干个 存储元 组成
存储单元地址 给 存储单元 按顺序给定的地址编号
存储字 存储单元 中的一连串二进制代码组合
存储字长 存储字 的长度(位数),单位:bit

其中:
存储单元个数 = 2 MAR 位数 = 2 地址总线根数,单位:个
存储字长 = MDR 位数 = 数据总线根数,单位:bit

2 容量计算

2.1 存储单元个数

  • 存储单元个数 = 末地址 - 首地址 + 1

【例题】存按字节编址,地址从 A4000H 到 CBFFFH,共有 ( ? ) 个字节。

根据公式 存储单元个数 = 末地址 - 首地址 + 1 可知
存储空间 = C B F F F H − A 4000 H + 1 = 28000 H CBFFFH - A4000H + 1 = 28000H CBFFFHA4000H+1=28000H = 0010 1000 0000 0000 0000 B = 160 KB
注: 1 K B = 2 10 B 1 KB = 2^{10} B 1KB=210B

2.2 存储容量

计算方式 计算公式 单位
计算 存储容量 = 存储单元个数 × 存储字长 比特、bit、b
字节 计算 存储容量 = 存储单元个数 × 存储字长/8 字节、Byte、B

【例题】一个存储器有 16 根地址线,8 根数据线,求此存储器存储容量?
按位计算: 2 16 × 8 2^{16} × 8 216×8 = 2 16 2^{16} 216 个 × 2 3 2^{3} 23 bit = 2 19 b 2^{19}b 219b = 512 k b 512 kb 512kb
按字节计算: 2 16 × 8 / 8 = 2 16 b i t = 64 K B 2^{16} × 8 / 8 = 2^{16} bit = 64 KB 216×8/8=216bit=64KB

单位换算:
1 字节 = 8 位,即 1 Byte = 8 bit
1 k b = 2 10 b = 1024 b 1 kb = 2^{10} b = 1024 b 1kb=210b=1024b

2.3 所需芯片数

  • 所需芯片数 = 存储空间 / 存储容量

【例题】内存按字节编址,地址从A4000H到CBFFFH,共有 (160 K) 个字节。若用存储容量为 32K×8bit 的存储芯片构成该内存,至少需要 ( ? ) 片。

根据公式 所需芯片数 = 存储空间 / 存储容量 可知
所需芯片数 = 160 K ∗ 8 b i t 32 K ∗ 8 b i t = 5 \frac{160K * 8 bit}{32K * 8 bit} = 5 32K8bit160K8bit=5

3 扩展

3.1 网工软考真题

[2007下半年-4] 若内存地址区间为 4000H ~ 43FFH,每个存储单元可存储 16 位二进制数,该内存区域由 4 片存储器芯片构成,则构成该内存所用的存储芯片的容量是(C)?
A.512 × 16 bit
B.256 × 8 bit
C.256 × 16 bit
D.1024 × 8 bit

参考答案:C
考点 ①:每片芯片的容量 = 芯片总容量 / 芯片个数
考点 ②:芯片总容量 = 存储单元个数 × 存储字长
考点 ③:存储单元个数 = 终止地址 - 起始地址 + 1

存储单元个数 = 43 F F H − 4000 H + 1 = 400 H = 2 10 = 1024 43FFH - 4000H + 1 = 400H = 2^{10} = 1024 43FFH4000H+1=400H=210=1024
存储字长 = 16 b i t 16 bit 16bit
芯片总容量 = 1024 ∗ 16 b i t 1024 * 16 bit 102416bit
每片芯片容量 = ( 1024 ∗ 16 b i t ) / 4 = 256 ∗ 16 b i t (1024 * 16 bit) / 4 = 256 * 16 bit (102416bit)/4=25616bit

【2004下半年-1,2】内存按字节编址,地址从A4000H到CBFFFH,共有 (1) 个字节。若用存储容量为32K×8bit的存储芯片构成该内存,至少需要 (2) 片。
(1) A.80K
  B.96K
  C.160K
  D.192K
(2) A.2
  B.5
  C.8
  D.10

参考答案:1=C,2=B
存储单元个数 = 终止地址 - 起始地址 + 1,可知
存储单元个数 = CBFFFH - A4000H + 1 = 28000H = 0010 1000 0000 0000 0000 = 160K

芯片个数 = 芯片总容量 / 每片芯片的容量,可知
芯片个数 = (160K * 8bit) / (32K * 8bit) = 5