知易网
白蓝主题五 · 清爽阅读
首页  > 硬件维护

只读存储器读取速度快吗?实测BIOS和固件加载场景

很多人拆过老主板,看到那颗贴在PCB角落、印着“ROM”字样的小芯片,第一反应是:这玩意儿是不是早该淘汰了?其实不然——只读存储器(ROM)至今仍在关键位置默默干活,比如开机时读BIOS、路由器启动读固件、工控设备加载初始化程序。

ROM的读取速度,真不慢

别被“只读”俩字唬住。现代ROM芯片,尤其是EEPROM和Flash ROM(现在主流叫法),读取延迟通常在几十纳秒到百纳秒级。拿常见的SPI Flash芯片W25Q80DV举例,它的典型读取时间约80ns,连续读取速率可达40MB/s以上。对比一下:机械硬盘随机读取延迟动辄10ms(也就是10,000,000ns),SSD也常在100μs左右(100,000ns)。单论“从发出读命令到拿到第一个字节”,ROM比很多存储设备都快。

为什么感觉不到快?因为用法不一样

你不会像打开Word文档那样去“读”ROM。它一般不走操作系统文件系统,而是由CPU直接通过地址总线映射访问。比如x86平台开机后,CPU一上电就从0xFFFF0地址开始取指令——这个地址就映射到主板BIOS芯片的末尾区域。整个过程没经过驱动、没走缓存调度、甚至没启动内存控制器,纯粹靠硬件连线“直通”。这种访问方式,快得根本不需要“感觉”。

但也有拖后腿的时候

不是所有ROM都一样快。老式掩膜ROM(Mask ROM)虽然读取稳定,但工艺限制导致频率上不去;而某些廉价MCU内置的Flash ROM,为了省成本,可能只支持低速SPI模式(比如1MHz时钟),这时候读取就明显卡顿——你可能会发现某款智能电表重启后屏幕亮得特别慢,十有八九是Flash读固件拖了节奏。

再举个实际例子:一台用国产GD32F4芯片的工业采集模块,烧录新固件后首次启动花了3.2秒才点亮指示灯。抓SPI波形一看,初始化代码在以1.5MHz频率读取Flash中的校验表——换成QSPI模式(80MHz),时间直接压到0.4秒。可见,“ROM读得快”是有前提的:接口模式、时钟配置、是否启用预取缓冲,一个都不能少。

日常维护中怎么判断?

普通用户不用测纳秒级延迟,但可以观察现象:
– 主板反复黑屏、卡在LOGO页不动,且排除显卡/内存问题,可能是BIOS芯片虚焊或Flash损坏导致读取超时;
– 路由器刷完固件后一直循环重启,大概率是新固件和Flash型号不兼容,CPU读了几百次都拿不到有效校验头;
– 笔记本进不了UEFI设置界面,按F2没反应?先听风扇——如果风扇转几秒就停,说明CPU连ROM第一行指令都没读完,基本可断定ROM物理故障。

维修时别急着换芯片。先用编程器读出原ROM内容,比对MD5。有时候只是某个扇区写坏(比如断电瞬间),重刷一遍原始固件就能恢复如初。