Jump to content

Nonvolatile BIOS memory

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Iain.mcclatchie (talk | contribs) at 07:46, 26 June 2005 (Break out into a separate article from CMOS). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Within the context of the hardware in a personal computer, CMOS (pronounced "see-moss") refers to the nonvolatile memory on the motherboard containing BIOS settings and sometimes the code used to initialize the computer and load the operating system.

CMOS can also mean complementary metal-oxide-semiconductor, a major class of integrated circuits and an associated family of semiconductor manufacturing processes.

The nonvolatile memory was historically called the CMOS RAM or just the CMOS because it traditionally used a low-power CMOS memory chip, powered by a small battery. The term remains common, but has become a misnomer, as nearly all modern computer components except the "CMOS memory" are constructed in CMOS technology. For the "CMOS" in modern computers, EEPROM or Flash memory is now usually employed. There is still a backup battery involved, but its role is not to maintain the data stored in the RAM, only to keep the RTC chip operational.

CMOS mismatch

CMOS mismatch errors typically occur if the computer's power-on self test (POST) program finds (1) a device that is not recorded in the CMOS, (2) does not find a device that is recorded in the CMOS, (3) finds a device that has different settings than those recorded for it in CMOS, or (4) detects a CMOS checksum error. [1] [2]

Resetting the CMOS settings

To break into a BIOS setup when the machine refuses cooperation, occassionally a drastic move is required. In older computers with battery-backed RAM, removal of the battery for a while did the job; in some more modern machines this move only resets the RTC. Some motherboards offer a CMOS-reset jumper. In yet other cases, the EEPROM chip has to be desoldered and the data in it manually edited using a programmer. Sometimes it is enough to ground the CLK or DTA line of the I2C bus of the EEPROM at the right moment during boot, this requires some precise soldering on SMD parts. When the machine lets you boot but does not want to let you into the BIOS setup, the CMOS checksum can be damaged using direct port writes using debug.exe, corrupting some bytes of the checksum-protected area of the CMOS RAM; at the next boot, the computer typically resets its setting to factory defaults.