Appearance
题目
下列关于主存储器(MM)和控制存储器(CS)的叙述中,错误的是( )。
错因
A
误以为 CS 也在 CPU 外。控制存储器是微程序控制器的核心部件——存的是各条机器指令对应的微程序,必须由 CU(控制单元)每周期高速访问。如果 CS 在 CPU 外,每条机器指令都要跨 CPU 边界取微指令,效率极低。所以 CS 一定在 CPU 内(属于控制器)。
C
混淆了 MM 和 CS 的存储内容。MM 存"用户/系统的指令和数据"——对应程序级视角;CS 存"机器指令对应的微指令序列"——对应微程序级视角。两者层级不同:程序员看到的"指令"在 MM,CPU 实现"指令"靠的微指令在 CS。
D
误以为 CS 必须用 RAM。CS 存的微指令是固化在 CPU 出厂时定义的——一台机器有哪些机器指令、每条指令对应哪些微操作,都是出厂确定的。所以 CS 用 ROM(只读)就够,无需 RAM。MM 则要存"运行时变化的数据",必须有 RAM;同时也要存"开机引导程序"等只读内容,所以也有 ROM。
总解析
MM vs CS 全维度对比:
| 维度 | 主存储器 MM | 控制存储器 CS |
|---|---|---|
| 位置 | CPU 外 | CPU 内(属于控制器) |
| 访问方式 | 按地址访问 | 按地址访问(按"微地址"查"微指令") |
| 存储内容 | 程序的机器指令 + 数据 | 各机器指令对应的微程序(微指令序列) |
| 存储介质 | RAM(变化数据)+ ROM(BIOS 等只读区) | ROM(出厂固化) |
| 谁来访问 | CPU 通过总线 | CPU 内部的控制单元 CU |
| 速度 | 慢(与 CPU 频率比) | 快(CPU 内部,配合每个机器周期) |
逐项判断:
| 选项 | 叙述 | 判断 |
|---|---|---|
| A | MM 在 CPU 外,CS 在 CPU 内 | ✓ 对 |
| B | MM 按地址访问,CS 按内容访问 | ✗ 错 |
| C | MM 存储指令和数据,CS 存储微指令 | ✓ 对 |
| D | MM 用 RAM 和 ROM 实现,CS 用 ROM 实现 | ✓ 对 |
B 为什么错:CS 同样是按地址访问——CU 每个机器周期产生一个"微地址"(μPC,类似于普通 PC,只不过指向微指令),到 CS 取出对应的微指令。"按内容访问"是相联存储器(Associative Memory)的特征,常见于 Cache 和 TLB,CS 不属此类。
最终答案是 B(错误的叙述)。
主存储器 vs 控制存储器 vs Cache 速记:
| 类型 | 访问方式 | 主要用途 |
|---|---|---|
| 主存 MM | 按地址 | 用户程序 + 数据 |
| 控制存储器 CS | 按地址(微地址) | 微程序固化 |
| Cache | 按地址(含相联比较 Tag) | 加速 MM 访问 |
| TLB | 按内容(虚地址) | 加速地址翻译 |
易错点速查:
- CS 和 Cache 都在 CPU 附近,但 CS 是"按地址查微指令",Cache 是"按地址 + Tag 比较"
- "按内容访问" = 相联存储器,CS 不是
- CS 内容固化 → ROM;MM 内容动态 → RAM 为主