主板上的这颗电池一般叫做CMOS电池,其并不光是为了保持CMOS内容,同时也是为了维持RTC,也就是时钟运转。
RTC需要持续地用一个晶振给时钟计数器+1,这样你上次主板断电之后到这次开机之间的时间才能被主板记录,不然上次你夜里1点关机,你到下午开机的时候会发现系统时钟还在凌晨1点。
虽然现在网络时代也许可以等开机后再同步时间,然而这需要有网络才行,当初可没有,而且有的时候还有时钟定时开机的需要。
在有ATX之前的AT系统,关机就是真的断电了。
那么,刚有这玩意的时候的主板设计师就想了,我们反正需要一个电池给晶振和时钟计数器的存储器供电,这个存储器基本上都使用CMOS,只存一个数值还有很多空余空间。那么,为啥不干脆也用这个CMOS来存一些数据?
这就是为啥BIOS设置会存在CMOS里面,因为方便和便宜,它已经在那儿了。
一直到今天,最主流的主板设计依旧是用一颗电池来给RTC晶振和CMOS供电,同时保持时钟运转和保存BIOS设置信息。
至于一些别的方案,虽然各自有些好处,但大多因为成本问题没多少人用。
比如用一些更高级的NVM来存现在放在CMOS里的数据,可以,但这样持续擦写的小数据单元必须用NOR闪存,单价高,读写也挺费电。
比如用充电电池,也可以,但充电电池本身比较贵,而且充放电管理电路更贵。
比如用超级电容,也可以,但超级电容自放电较大于是保持时间相对短很多,同时因为电容的电压和电流特性需要配置整流稳压电路才能使用,进一步增大功耗之外,电容和电路的成本也高很多。
还有比如用内存而不用CMOS,这个就比较难了,因为内存相比CMOS而言耗电巨大,因为内存必须定时刷新(也就是充电),不然内容就会丢失,相比CMOS总的功耗大了很多。
其实这些方案都有一些相对少见的产品采用,比如有些商务笔记本就用NVM存BIOS设置,比如有一些服务器和网络设备主板就采用了充电电池和/或内存保存BIOS设置。