每台電腦都有帶有一顆 CMOS 電池,它的作用在於為了主機板上的[1](揮發性記憶體)晶片供電,來保存[2](使用者的設定)。
另一個主要的功能在於提供一個時鐘功能,也就是 Real-Time Clock (RTC),使 PC 取得一個可靠的參考時鐘得以正常運作。
若移除 CMOS 電池,當 PC **完全** 斷電重新開機後,BIOS 就會進行恢復預設程序,重載出廠設定。另一方面,CMOS 內部儲存的資料會以亂數重置,所以說,RTC 這個時間會是一個隨意的時間值,這樣 PC 就會亂了套,當 PC 開進 OS , OS 會參考這個時間值,但並不一定會完全接受;至於 OS 如何判斷與處置,這是一個黑盒子,無法得知。
CMOS 內部的資料,其實是有一套標準的配置定義表,簡單以 RTC 為例,系統目前的時間分為世紀、年、月、日、時、分、秒等來分別儲存。這些數值的儲存方式不是使用一般的十進位轉十六進位,而是一種叫做 [4](BCD) 格式的方式來儲存,目的是高度的可讀性可以直接了解目前的系統時間。

[圖片來源:http://www.bioscentral.com/misc/cmosmap.htm]
CMOS 資料基本上透過 IO 0x70/0x71 來存取,使用 RW Everything 可以查看。從以下這張範例可以知道,目前系統時間是,2022/1/6 15:26:50。

目前 Microsoft 已經推出了 Windows 10,在使用的過程中發現若是 CMOS Battery 電力消失過久之後再重置, PC 要開進 OS 時有時會發生無法開機的狀況,這是因為 RTC 的世紀 Century 已經被隨機洗成一個不可能的值,像是 99xx 年(現代新電腦過10年能開機要偷笑了),觀察 OS 一直試圖運算卻轉不出一個結果,通常在這種狀況下,OS 已經阿達,必須重新安裝。

最好的處理方法是,若有 CMOS Battery 重置,最好先開進 Setup Menu 確認時間沒有問題再開進 OS。而 Windows 11 也有這樣的現象。
# 參考
[http://www.bioscentral.com/misc/cmosmap.htm](CMOS RAM memory map)
[https://www.techbang.com/posts/58282-why-is-there-a-battery-on-the-computer-board] ([2018/7/4,T客邦,MikaBrea]為什麼電腦主機板上面有電池?很多人可能根本不知道!)
# 備註
[1] **揮發性記憶體**:*揮發性*的意思是資料的儲存必須靠電力來維持住,一旦沒有電力,則所有資料都會消失。
[2] **使用者的設定**:在古早的 PC 裡大多儲存在 CMOS 中,現由於它是揮發性記憶體,且安全性不足,所以現在已經大多搬到儲存 BIOS 的 SPI Part 等非揮發性記憶a體中。
[3] BCD :
[https://en.wikipedia.org/wiki/Binary-coded_decimal]([WIKI|Binary-coded decimal])







