RAM和ROM确实统一编址,但写保护并非由指令决定,而是由“硬件物理特性”和“操作系统逻辑权限”这两把锁共同实现的;当有指令试图写入ROM地址时,要么被ROM芯片在物理上直接无视,要么被操作系统的内存管理单元(MMU)提前拦截并产生异常。


一、 统一编址:一个地址空间下的“两家人”

首先,我们来解决“统一编址”的问题。

这样,尽管RAM和ROM是不同的物理器件,但在CPU看来,它们共同组成了一个连续、无缝的地址空间,这就是“统一编址”。

代码段

      +-------+        地址总线 (例如: 0x0001000)
      |  CPU  |---------------------------------+
      +-------+                                 |
         |  ^                                   V
   控制总线 |  | 数据总线                   +-------------------+
 (R/W#) |  |                          |   地址译码器      |
         V  |                          +-------------------+
      +-------+    CS_ROM=1 (激活)          |            | CS_RAM=0 (不理)
      |  ROM  |<----------------------------+            |
      +-------+                                          |
                                                       +-------+
                                                       |  RAM  |<--+
                                                       +-------+

二、 访问权限:硬件与软件的双重保险

如果CPU想改写一个属于ROM的地址,会发生什么?这里有两道防火墙。

第一道防火墙:ROM芯片的物理特性(硬件层 - 硬道理)

这是最底层、最根本的保护。

第二道防火墙:操作系统的内存保护(软件层 - 软约束)

在有操作系统的现代计算机中,还有一层更智能、更主动的保护。


三、 总结与考点分析

保护层次 实现者 保护机制 发生时机 结果
硬件物理保护 ROM芯片自身 物理电路无写入功能 写信号到达芯片时 写操作静默失败,数据未改变
OS逻辑保护 操作系统 + MMU 页表权限位检查 MMU地址翻译时 产生硬件异常,程序被OS终止