Hardware Reference
In-Depth Information
8 check bits over 64 bits in an 8-byte system. If the system uses SIMMs, two 36-bit (parity) SIMMs
are added for each bank (for a total of 72 bits), and ECC is done at the bank level. If the system uses
DIMMs, a single parity/ECC 72-bit DIMM is used as a bank and provides the additional bits.
RIMMs are installed in singles or pairs, depending on the chipset and motherboard. They must be 18-
bit versions if parity/ECC is desired.
ECC entails the memory controller calculating the check bits on a memory-write operation,
performing a compare between the read and calculated check bits on a read operation, and, if
necessary, correcting bad bits. The additional ECC logic in the memory controller is not very
significant in this age of inexpensive, high-performance VLSI logic, but ECC actually affects memory
performance on writes. This is because the operation must be timed to wait for the calculation of
check bits and, when the system waits for corrected data, reads. On a partial-word write, the entire
word must first be read, the affected byte(s) rewritten, and then new check bits calculated. This turns
partial-word write operations into slower read-modify writes. Fortunately, this performance hit is
small, on the order of a few percent at maximum, so the trade-off for increased reliability is a good
one.
Most memory errors are of a single-bit nature, which ECC can correct. Incorporating this fault-
tolerant technique provides high system reliability and attendant availability. An ECC-based system
is a good choice for servers, workstations, or mission-critical applications in which the cost of a
potential memory error outweighs the additional memory and system cost to correct it, along with
ensuring that it does not detract from system reliability.
Unfortunately, most standard desktop and laptop PC processors, motherboards (chipsets), and
memory modules don't support ECC. If you want a system that supports ECC, make sure all the
components involved support ECC. This usually means purchasing more expensive processors,
motherboards, and RAM designed for server or high-end workstation applications.
RAM Upgrades
Adding memory to a system is one of the most useful upgrades you can perform and also one of the
least expensive—especially when you consider the increased performance of Windows, Linux, and
their applications when you give them access to more memory. In some cases, doubling the memory
can practically double the speed of a computer. But it doesn't always pay to go overboard because
adding memory that you don't really need will cost money and power, and you will gain little or
nothing in speed. The best philosophy to take when adding RAM to a computer is that “more is better,
up to a point.”
The maximum physical memory capacity of a system is dictated by several factors. The first is the
amount addressable by the processor itself, which is based on the number of physical address lines in
the chip. The original PC processors (8086/8088) had 20 address lines, which resulted in those chips
being able to recognize up to 1MB (2 20 bytes) of RAM. The 286/386SX increased memory
addressing capability to 24 lines, making them capable of addressing 16MB (2 24 bytes). Modern x86
processors have from 32 to 36 address lines, resulting in from 4GB to 64GB of addressable RAM.
Modern x86-64 (64-bit) processors have 40 address lines, resulting in a maximum of 1TB (1
terabyte) of supported physical RAM.
See the Chapter 3 section, “ Processor Specifications , p. 35 .
The operating mode of the processor may place further limits on memory addressability. For
 
 
Search WWH ::




Custom Search