为什么 BIOS 的 ROM 芯片不是采用 CMOS 技术制造的?

电器工程 场效应管 CMOS 闪光 计算机架构 只读存储器
2022-01-31 12:39:03

在阅读了有关 BIOS/CMOS 的计算机硬件课程后,我仍然无法确定为什么 BIOS 的 ROM 芯片不是使用 CMOS 技术构建的,以及为什么它连接到一个名为“CMOS”的单独芯片来存储配置信息。

这是来自讲义

程序存储在系统 BIOS 芯片上,而可变数据存储在 CMOS 芯片上

CMOS 硬件组:常见的、必要但可能会改变的硬件——RAM、硬盘驱动器、软盘驱动器、串行和并行端口

我知道 BIOS 存储在闪存中,与其他实现相比,CMOS MOSFET 技术消耗的功率更少。

为什么只有BIOS ROM不使用CMOS,和其他存储设备一样——究竟有什么优势?而为什么BIOS配置信息不能存储在自己的ROM芯片中,而不是“CMOS芯片”中呢?

4个回答

您将实现技术与功能的通俗术语混为一谈。

CMOS - 互补金属氧化物半导体 - 是一种使用 N 沟道和 P 沟道场效应晶体管制作逻辑和相关电路的方法。它的定义特征之一是极低的静态功耗——功耗几乎只在改变状态时使用。因此,CMOS 静态存储器芯片可以在电池上保存其内容数年,并且是存储半永久性信息的便利场所。

BIOS 和相关的启动代码传统上存储在 PROM 或 EPROM 设备中。IBM PC 时代的 EPROM 通常是使用诸如 NMOS 之类的前 CMOS 技术制造的,但关键的区别在于,当安装在计算机中时,它们通常不可写入,而只能在特殊的编程器中写入。此外,虽然许多当代系统和克隆使用 EPROM,但 IBM-PC 的实际生产版本使用更便宜的不可重新编程的 PROM(引脚排列通常在使用中兼容)。

然后,PC-AT 设计添加了一个电池支持的 CMOS 内存,用于存储可自定义的设置,以及(可能在同一设备中)一个持久的实时时钟。这被最终用户通俗地称为 CMOS,尽管它当然只是由当时迅速传播的芯片技术实现的一种特殊用途。

当然,今天我们不再为 BIOS 使用并行 E/PROM,而是使用串行 NOR 闪存并将内容传输到更快的 RAM 中执行。现代 FLASH 芯片实际上是由 CMOS 衍生技术制成的。它们通常可以在电路中重新编程。如果他们想要将半永久性配置信息放入电池支持的 RAM 或可重新编程的闪存中,这真的取决于系统设计人员 - 最终用户或启动后操作系统可能几乎没有实际可见性。

但即使使用闪光灯进行设置,通常仍然会有一个低功耗实时时钟,它会一直依靠电池运行。

回到 PC 刚发明的时候,它上面的大部分逻辑都是耗电的 NMOS 和 TTL 芯片。CMOS 是非常新的,PC 中唯一使用它的电路与断电时需要依靠电池运行的东西相关联,例如配置 RAM 和实时时钟。

如今,几乎所有的逻辑都是 CMOS,包括耗电的 CPU 和保存 BIOS 的闪存 EEPROM。所以从某种意义上说,你的问题是基于一个无效的前提——闪存 EEPROMCMOS。但是,无论出于何种原因,PC 中的术语“CMOS”仍然仅指 RAM 和 RTC 功能。

如果您要问为什么 BIOS 不存储在易失性 RAM 而不是非易失性闪存中,那是因为电池故障,擦除 BIOS 会有效地“破坏”计算机,需要专门的硬件才能使其再次运行。

我认为您混淆了“CMOS”首字母缩写词的两种用法。有些芯片完全由互补 MOS 晶体管技术制成。事实上,如今几乎所有的芯片都是以这种方式构建的,包括闪存芯片上的大部分数字控制电路。

CMOS 的另一种用法从最早的时候就一直存在于 PC 行业,指的是存储一些设置和带有电池的实时时钟的芯片。在那个年代(80 年代初),PC 中的大部分大型芯片都是 NMOS 技术,而其他逻辑芯片则是双极晶体管逻辑(TTL、LSTTL 等)。唯一使用的 CMOS 芯片是 RTC 芯片,因此被称为“CMOS”。

如今,RTC 不再是 PC 架构设备上的单独芯片。相反,它直接内置在主板芯片组中(顺便说一句,它是用互补的 MOS 电路生产的)。如今,很少有任何 BIOS 使用芯片组 RTC 部分中的传统电池支持 RAM 来存储设置。相反,BIOS 使用 SPI 闪存设备的几页以非易失性方式保存其设置。因此,当电池耗尽或断开连接时,PC 中丢失的设置很少。电池断电时丢失的最小设置是某些控制芯片组上电和复位行为的设置,实际上它们甚至不存储在电池供电的 RAM 单元中,而是存储在由硬币供电的特殊低功耗触发器锁存器中电池。

另请参阅https://superuser.com/questions/989499/what-does-a-cmos-chip-look-like:这为我们提供了指向原始MC146818数据表的便捷链接。

该芯片是内存映射的,并提供 64 个字节的位置。其中 14 个用于时钟,其余用作通用 RAM。整个芯片在 PC 关闭时由电池供电,以保持实时时钟滴答作响。