| 项目 | 值 |
|---|---|
| 位扩展 | 增加字长,芯片地址线并联 |
| 字扩展 | 增加字数,用片选信号区分 |
| 字位同时扩展 | 先位扩展再字扩展 |
单个存储芯片的容量(字数 $\times$ 位数)往往不能满足 CPU 对字长和寻址空间的要求。存储器扩展就是用多个小容量芯片组合成满足需求的大容量存储器。
目的:增加存储器的字长(数据位数),不增加字数。
原理:将多个芯片的地址线、片选线、读/写控制线并联,每个芯片负责数据总线的一部分位。
典型例题:用 8 片 $1K\times1$ 位的芯片组成 $1K\times8$ 位的存储器。
目的:增加存储器的字数(寻址空间),不增加字长。
原理:各芯片的数据线、地址线、读/写控制线并联,但用高位地址线经译码器产生不同的片选信号,使同一时刻只有一个芯片被选中。
典型例题:用 4 片 $1K\times8$ 位的芯片组成 $4K\times8$ 位的存储器。
| 芯片 | 片选信号 | A₁₁A₁₀ | 地址范围 |
|---|---|---|---|
| 芯片0 | CS₀ | 00 | 0000H~03FFH |
| 芯片1 | CS₁ | 01 | 0400H~07FFH |
| 芯片2 | CS₂ | 10 | 0800H~0BFFH |
| 芯片3 | CS₃ | 11 | 0C00H~0FFFH |
目的:同时增加字数和字长。
原理:先做位扩展(每组内芯片并联增加字长),再做字扩展(多组之间用译码器选组增加字数)。
典型例题:用 $1K\times4$ 位的芯片组成 $4K\times8$ 位的存储器。
| 概念 | 说明 |
|---|---|
| 位扩展 | 增加字长,不增加字数;芯片地址线并联,数据线各占一位 |
| 字扩展 | 增加字数,不增加字长;低位地址并联,高位地址译码选片 |
| 字位同时扩展 | 先位扩展成组,再字扩展成整体 |
| 片选信号 CS | 控制芯片是否被激活的信号,低电平有效 |
| 地址译码器 | 将高位地址线译码为多个片选信号的组合逻辑电路 |
| 存储器容量 | = 字数 $\times$ 字长,单位:位(bit) 或 字节(Byte) |
题目:用 $16K\times1$ 位的芯片组成 $16K\times8$ 位的存储器,需要多少片?
解:字长比 $= 8/1 = 8$;需要 8 片;地址线 14 根(2¹⁴=16K),所有芯片并联;每片提供 1 位数据。
题目:用 $8K\times8$ 位的芯片组成 $32K\times8$ 位的存储器,需要多少片?高位地址如何分配?
解:字数比 $= 32K/8K = 4$,需要 4 片;低位地址 A₀~A₁₂(13 根,寻址 8K),高位地址 A₁₃~A₁₄(2 根)接 2-4 译码器。
题目:用 $4K\times4$ 位的芯片组成 $16K\times8$ 位的存储器,求芯片总数。
解:位扩展每组 $\frac{8}{4}=2$ 片 → $4K\times8$ 位;字扩展 $16K/4K=4$ 组;总芯片数 $= 2\times4 = 8$ 片。
题目:某系统用 2 片 $4K\times8$ 位 ROM 和 2 片 $4K\times8$ 位 RAM 组成 $16K\times8$ 位存储器,ROM 从 0000H 开始。
| 芯片 | A₁₃A₁₂ | 起始 | 结束 | 类型 |
|---|---|---|---|---|
| 芯片0 | 00 | 0000H | 0FFFH | ROM |
| 芯片1 | 01 | 1000H | 1FFFH | ROM |
| 芯片2 | 10 | 2000H | 2FFFH | RAM |
| 芯片3 | 11 | 3000H | 3FFFH | RAM |
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。