Memory

BIOS ROM

The BIOS (Basic Input/Output System) program runs when the PC is started.It has a number of functions:

BIOS chips are easily spotted because they usually have "BIOS" written on them as part of a manufacturer's label.  BIOS ROMs usually sit in a socket, allowing them to be easily removed (with a special chip extraction tool) if faulty.

CMOS Memory

When people first started building microcomputers there were two technologies available for digital circuit design.  The first, TTL (Transistor-Transistor Logic), was fast but consumed lots of power.  The second, CMOS (Complimentary Metal Oxide Semiconductor), was slower but used less power and could work at a range of voltages.  CMOS was also more sensitive to static electricity.

Computer circuits tended to use TTL circuitry (because they needed speed) and CMOS was used for toys (where batteries were the main power source).

When the PC motherboard needed a non-volatile memory to store system settings, designers used a CMOS SRAM powered by battery.  This chip became known as "the CMOS Memory".

Since then CMOS circuitry has improved to the stage where it has superseded TTL and today most parts of a PC are built using CMOS.  However, for historical reasons, this non-volatile RAM is still called "the CMOS Memory" and its contents are referred to as "CMOS Settings".

The CMOS Memory used to be powered by a lithium watch battery, typically a CR2032.  This battery also powered the PC's real-time clock (RTC).

Modern motherboards use Flash ROM for CMOS settings instead.

Cache Memory

Cache memory sits between the CPU and the main memory.  A cache controller monitors the addresses that are requested by the CPU and predicts which memory will be required in the future.

Data is read into the cache memory in advance, allowing the computer to obtain data far more quickly from the cache than from the main memory.  Tags are used identify where cached data originated.  Cache is built from SRAM.

L1 & L2 cache

Level 1 (L1) cache memory is now typically built into the main processor circuit.

Level 2 (L2) cache memory was commonly on the motherboard but since the Pentium II has been built into the same case as the processor circuit (although often mounted separately).  Many motherboards now have L3 cache.

Main memory

SIMMs

SIMMs (Single Inline Memory Module) were used from the 286 up to the early Pentiums.  These were designed to make the process of installing memory easier and faster.  There were two sizes: 30-pin (8 bits wide) and 72pin (32 bits wide).  They needed to be inserted at a 45 angle and tilted into an upright position.  SIMMs often needed to be installed in banks (groups of 2 or 4) to ensure that memory widths matched the processor's data bus width.

Parity

Parity uses an extra bit as an error-checking bit for every 8 bits.  Thus 30-pin SIMMs 'with parity' are 9-bit and 72-pin SIMMs 'with parity' are 36-bit.

FPM, EDO and bursts

EDO (Extended Data Outburst) DRAM is around 30% faster than standard Fast Page Mode (FPM) DRAM.

DIMMs

DIMMs (Dual Inline Memory Module) were introduced with Pentium class processors and come in a variety of styles and sizes.  Small outline DIMMs (SoDIMMs) are used for laptops.

Unlike SIMMs they are inserted vertically, forcing locking clips into position.  Open the locking clips to eject the DIMM.

SDRAM

SDRAM (Synchronous DRAM) is synchronised to the system's Front-Side Bus (FSB) clock pulse.  This allows it to work more quickly than EDO DRAM.

DDR & DDR2

DDR (Double Data Rate) SDRAM works at twice the speed of conventional SDRAM and is identified by its effective clock speed (e.g. DDR533 actually works at 266 MHz).

To make speed comparisons easier, DDR RAM is rated by its peak bandwidth in the form of a "PC" number (e.g. PC 2700 transfers 2700 MB/s).

DDR-2 is a faster form of DDR memory, measured in a similar way to DDR.

ECC

Error-Correcting Code (ECC) uses parity bits to perform a more sophisticated type of error-checking.  DIMMs that support ECC are known as ECC memory and thus provide 72-bit storage.

Unbuffered or Registered

Unbuffered DDR memory allows control signals to pass quickly to RAM, which can be a problem in systems with large amounts of memory.  Registered memory adds extra circuitry and eases this problem but at a financial cost.

Dual channel

Many motherboards support dual channel memory.  This gives a significant speed increase by accessing two DIMMs simultaneously but requires performance-matched DIMMs.

Rambus (RIMMs)

Rambus was a system designed to give exceptional memory access speed.  It was used by Intel on early Pentium 4 systems.

RIMMs are 184-pin boards similar to DIMMs in appearance, with heat spreader cases.

Continuity Connectors

RIMMs transfer only 16 bits at a time but at very high speed.  The high-speed bus design requires all slots to be populated, so 'dummy' RIMMs known as continuity connectors must be used in any empty slots.