Appearance
408
计算机组成原理
CO-03-04 主存储器设计(字扩展/位扩展/字位同时扩展)
一、定位信息
| 项目 | 内容 |
|---|---|
| 所属圈层 | 核心层 |
| 前置知识回顾 | 需了解存储芯片的基本参数(容量表示为"字数×位数"),了解地址线和数据线的作用(地址线用于选择存储单元,数据线用于传送数据),了解片选信号CS(Chip Select)的作用 |
| 知识网络定位 | 本单元是DRAM(CO-03-02)的直接应用——当单片存储芯片的容量或字长不能满足要求时,需要通过扩展技术将多片芯片组合使用。这是主存与CPU连接(CO-03-06)的基础 |
| 考点热度等级 | H级 — 主存扩展设计是高频综合题考点,近5年出现≥3次,常以综合应用题形式出现,分值5–8分 |
二、知识点讲解
2.1 存储芯片的基本参数
一个存储芯片的容量通常表示为 :
- :字数(可寻址的存储单元数),需要 根地址线
- :字长(每个存储单元的位数),需要 根数据线
例如:某芯片规格为 位,表示有1024个存储单元,每个单元8位。需要10根地址线(),8根数据线。
2.2 位扩展(位并联扩展)
目的:增加存储器的字长(位数),字数不变。
适用场景:单片芯片的字长不够。例如CPU数据总线为32位,但单片芯片只有8位宽。
方法:将多片芯片的地址线、片选信号、读写控制线并联,各芯片的数据线分别连接到数据总线的不同位段。
举例:用 位的芯片组成 位的存储器。
需要芯片数 = 片
连接方式:
- 4片芯片的10根地址线并联,接CPU地址总线的低10位
- 4片芯片的片选信号CS并联(同时选中)
- 第1片数据线接D0~D7,第2片接D8~D15,第3片接D16~D23,第4片接D24~D31
2.3 字扩展(字串联扩展/地址扩展)
目的:增加存储器的字数(地址空间),字长不变。
适用场景:单片芯片的地址空间不够。例如需要64KB存储空间,但单片只有16KB。
方法:将多片芯片的数据线并联,各芯片的地址线也并联(接地址总线低位),用高位地址经译码后产生片选信号来选择不同的芯片。
举例:用 位的芯片组成 位的存储器。
需要芯片数 = 片
连接方式:
- 4片芯片的14根地址线()并联,接CPU地址总线的低14位(A0~A13)
- 数据线8根全部并联,接CPU数据总线D0~D7
- 高2位地址(A14、A15)通过2-4译码器产生4个片选信号,分别接4片芯片的CS
| A15 A14 | 选中芯片 | 地址范围 |
|---|---|---|
| 0 0 | 第0片 | 0000H~3FFFH |
| 0 1 | 第1片 | 4000H~7FFFH |
| 1 0 | 第2片 | 8000H~BFFFH |
| 1 1 | 第3片 | C000H~FFFFH |
2.4 字位同时扩展
目的:同时增加字数和字长。
适用场景:单片芯片的字数和字长都不够。
方法:先做位扩展满足字长要求,再做字扩展满足字数要求(或反过来)。
举例:用 位的芯片组成 位的存储器。
分析步骤:
- 位扩展:字长从4位扩展到16位,每组需要 片
- 字扩展:字数从16K扩展到64K,需要 组
- 总芯片数 = 片
连接方式:
- 每组内4片芯片做位扩展:地址线并联,数据线拼接
- 组间做字扩展:组内芯片的CS并联,组间用高位地址译码选组
2.5 扩展设计的通用公式
三、记忆与理解辅助
3.1 口诀记忆
口诀:"位扩数据分着连,字扩片选译码选,字位两步一起算"
- 位扩展:数据线分开连接(各片接不同位段),地址线并联
- 字扩展:片选信号用高位地址译码产生,数据线并联
- 字位扩展:先位后字(或先字后位),两步分别计算
3.2 对比表:三种扩展方式
| 对比项 | 位扩展 | 字扩展 | 字位同时扩展 |
|---|---|---|---|
| 增加的目标 | 字长(位数) | 字数(地址空间) | 字长+字数 |
| 地址线连接 | 各片并联 | 各片并联(低位),高位译码 | 组内并联,组间译码 |
| 数据线连接 | 各片接不同位段 | 各片并联 | 组内拼接,组间并联 |
| 片选信号 | 各片并联(同时选中) | 译码器分别选中 | 组内并联,译码器选组 |
| 所需芯片数 | 目标位数÷单片位数 | 目标字数÷单片字数 | 两者之积 |
3.3 解题步骤模板
存储器扩展设计题的通用解题步骤:
- 确定需求:明确目标存储器的容量(字数×位数)
- 计算芯片数:
- 确定地址线分配:
- 低位地址线用于片内寻址(位数 = 单片字数)
- 高位地址线用于片选译址(字扩展时需要)
- 确定数据线连接:位扩展时各片接不同位段
- 设计片选逻辑:字扩展时用高位地址译码产生片选信号
3.4 关键计算技巧
- 地址范围计算:若芯片起始地址为 ,容量为 个字,则地址范围为 到
- 地址线数 = (字数)
- 译码器输入位数 = (芯片组数)
四、例题与精解
例题1(基础)
题目:用 位的SRAM芯片,设计一个 位的存储器。问: (1)需要几片芯片? (2)画出连接框图(文字描述),说明地址线、数据线和片选信号的连接方式。
命题意图:考查字扩展的基本设计方法。
审题分析:目标 ,单片 。字长相同(8位),字数不够,需要字扩展。
解题思路:字数从4K扩展到16K,字长不变。
完整步骤:
(1)芯片数:
(2)连接方式:
- 地址线:单片 字需要 根地址线。4片芯片的12根地址线并联,接CPU地址总线的低12位(A0~A11)。
- 数据线:4片芯片的8根数据线并联,接CPU数据总线D0~D7。
- 片选信号:高2位地址(A12、A13)通过2-4译码器产生4个片选信号,分别接4片芯片的CS。
地址分配:
| A13 A12 | 选中芯片 | 地址范围 |
|---|---|---|
| 0 0 | 第0片 | 0000H~0FFFH |
| 0 1 | 第1片 | 1000H~1FFFH |
| 1 0 | 第2片 | 2000H~2FFFH |
| 1 1 | 第3片 | 3000H~3FFFH |
方法反思:字扩展的关键是"低位地址片内寻址,高位地址片间译码"。地址范围的计算可用十六进制快速推算。
例题2(中等)
题目:某CPU的地址总线为20位,数据总线为16位。现用 位的SRAM芯片构成该CPU的主存,要求主存地址从00000H开始连续编址,最大容量为 位。问: (1)共需要多少片SRAM芯片? (2)需要多少根地址线用于片内寻址?多少根用于片选译码? (3)片选译码电路如何设计?
命题意图:考查字位同时扩展的综合设计能力。
审题分析:目标 ,单片 。字数和字长都需要扩展。
解题思路:先位扩展(4→16),再字扩展(8K→64K)。
完整步骤:
(1)芯片数:
(2)地址线分配:
- 片内寻址: 根地址线(A0~A12)
- 片选译码: 组,需要 根地址线(A13~A15)
- 总共使用16位地址(A0~A15),符合
(3)片选译码设计:
- 位扩展:每4片为一组,4片芯片的13根地址线并联,数据线分别接D0~D3、D4~D7、D8~D11、D12~D15。组内4片的CS并联(同时选中)。
- 字扩展:共8组,用A13、A14、A15通过3-8译码器产生8个片选信号,分别接8组的CS。
| A15 A14 A13 | 选中组 | 地址范围 |
|---|---|---|
| 0 0 0 | 第0组 | 00000H~01FFFH |
| 0 0 1 | 第1组 | 02000H~03FFFH |
| 0 1 0 | 第2组 | 04000H~05FFFH |
| 0 1 1 | 第3组 | 06000H~07FFFH |
| 1 0 0 | 第4组 | 08000H~09FFFH |
| 1 0 1 | 第5组 | 0A000H~0BFFFH |
| 1 1 0 | 第6组 | 0C000H~0DFFFH |
| 1 1 1 | 第7组 | 0E000H~0FFFFH |
方法反思:
- 字位扩展的关键是先确定"分组"方案:每组几片(由位扩展决定),共几组(由字扩展决定)。
- 地址线分配要清晰:低位给片内,高位给译码器。
- 地址范围用十六进制表示更直观,注意 。
五、考情分析
| 项目 | 内容 |
|---|---|
| 近5年考查频次 | ≥3次 |
| 常见题型 | 综合应用题(设计题),偶尔选择题 |
| 分值占比 | 5–8分(综合题) |
| 命题趋势 | 主存扩展设计是传统高频考点。近年趋势是与Cache映射、地址转换等知识点结合出大题,考查考生对整个存储系统的综合理解 |
六、易错点提醒
易错点1
- 错误表现:计算芯片数时,分子分母颠倒(如把"目标÷单片"写成"单片÷目标")
- 错误原因:对"用小拼大"的逻辑理解不清
- 正确做法:芯片数 = 目标÷单片(字数和位数分别计算再相乘)。记住"需要多少个小的来拼一个大的",一定是大的除以小的
易错点2
- 错误表现:字扩展时忘记用高位地址译码,直接把所有地址线并联
- 错误原因:混淆了位扩展和字扩展的地址线连接方式
- 正确做法:位扩展时地址线全部并联(因为各片寻址范围相同);字扩展时低位并联用于片内寻址,高位译码用于选片
易错点3
- 错误表现:地址范围计算错误,如将 字的地址范围写成0000H~4000H
- 错误原因:十六进制计算错误,,但最大地址是 (从0开始编号)
- 正确做法:地址从0开始, 个字的地址范围是 到 。十六进制下,,最大地址是
易错点4
- 错误表现:位扩展时,各片数据线接错位段(如两片都接D0~D3)
- 错误原因:没有理解位扩展是将各片的输出"拼接"成更宽的数据
- 正确做法:第1片接D0~D(M-1),第2片接D(M)~D(2M-1),依此类推,各片接不同的位段
七、来源标注
- 依据2026考研统考大纲(408-计算机组成原理-第三章"存储器层次结构")
- 依据大学本科经典教材共识:唐朔飞《计算机组成原理》、白中英《计算机组成原理》