Home
| > hashbang.iacl.org > Computer Security > Memory
Memory
|
| |
ECC memory is widely used in workstation and server computers.
As the name (Error Checking and Correction) suggests, ECC is technology that allows computers to correct memory errors. The most popular type of ECC used in memory modules is single bit error correction. This enables the detection and correction of single-bit errors (within a byte, or 8bits of data). It will also detect two-bit and some multiple bit errors, but is unable to correct them.
How dos ECC work? Take the most common single bit error correction for example. For each byte of data sent across the memory bus, a check-bit is generated by calculating that byte of data using an Exclusive OR algorithm. This check-bit will be stored in a separate memory chip. That is why memory modules with ECC capabilities sport 9 memory chips on each side, rather than the 8 chips per side we often see with non-ECC memory modules.
The system will use the check-bit to check if the data is correct, and correct the single-bit error if there is one. The check-bit will be transferred together with the original byte of data. Therefore, the ECC memory bus is 72-bit wide as opposed to the 64-bit non-ECC memory. Remember only 64 bits out of the 72 bits of data are counted for bandwidth and application usage, the other 8 bits are all check-bits, so the effective bandwidth of ECC and non-ECC memory is identical.
There are two major causes of the so-called soft memory errors: naturally occurring radioactive isotopes (which emit alpha particles), and high energy cosmic rays from supernovas. Both of these events can change the value of data stored in a memory chip. These errors are called soft errors because they can be repaired by correcting the value of the memory bit, which is what ECC supposedly does.
Chances for a single-bit soft error occurring are about once per 1GB of memory per month of uninterrupted operation. Even should an error occur, it won't be a big issue for most users as the error bit may not even be accessed at that time. Should the system access the error bit, this little error won't result in a disaster either - the system may crash, but a restart of the system will fix that.
motherboard that supports ECC memory modules in addition to the ECC memory modules themselves. Without motherboard support (or memory controller support, to be more accurate), the ECC memory module is effectively the same as non-ECC memory.
Registered/Unbuffered Memory For starters, registered memory is the counterpart of unbuffered memory. There is never unregistered memory, and neither will you find buffered memory in contemporary computer systems. Registered memory modules often come with ECC as well, because registered memory is usually applied in servers or high performance workstations where ECC is definitely a necessity.
The Difference between Registered Memory and Unbuffered Memory? "Registers" are logic components rather than memory. What they do in a registered memory module is buffer the address and command signals going on to the module. The difference between registered memory and unbuffered memory is whether there are registers on the memory module. In unbuffered memory,the onboard memory controller directly addresses each memory chip on all modules in the system directly. In registered memory, the memory controller only sees the register, for which there is one per physical bank of memory.
Almost all system memory in today s PCs is unbuffered memory. With increasing system memory, the stability and performance deterioration of memory is inevitable - as mentioned above, the memory controller has to address each memory chip on all modules directly, which results in high electrical loads. To solve this problem, higher density systems use registered memory instead. Registered memory modules contain registers as a buffer to temporarily hold data (address and command data only) for one clock cycle before it is transferred. This increases the reliability of high-speed data access to high density memory but sacrifices some performance since there is one additional clock cycle between the Chip Select and the Bank Activate command.
For a home user, registered memory may not be useful at all - in fact, there is a little performance drop with registered memory. But for those who need to utilize more than 4GB of memory in a system, registered memory is absolutely a must-have. Of course, you'll have to choose a motherboard that supports registered memory modules as a simple requirement. Also, registered memory is required by some server and workstation motherboards.
more..
The memory speeds (clock rates), maximum capacity and types (DDR, DDR2, DDR3, etc) a system can accept is defined by the chipset (Intel) or by the CPU (AMD). For example, accepting DDR3 memories on an Intel system will depend on the chipset (and on the motherboard providing the right kind of memory sockets) and not on the CPU. AMD systems currently can t work with DDR3 memories because the embedded memory controller can t recognize this technology.
As for the clock rates, if the memory controller can only generate a clock rate of, let s say, 667 MHz (333 MHz x 2), your DDR2-800 memories will work at 667 MHz on this particular system. This is a physical limitation of your memory controller. Usually you will see this kind of limitation only on Intel systems, as AMD CPUs can recognize DDR2 memories up to 800 MHz (socket AM2 CPUs) or up to 1,066 MHz (socket AM2+ Phenom CPUs).
Another interesting thing refers to the maximum amount of memory the system can recognize. Most Intel CPUs have a 32- or a 36-bit memory address bus (here we are referring to the address bus available on the CPU external bus, i.e. on the CPU front side bus). This allows the CPU to recognize up to 4 GB (2^32) or 64 GB (2^36) of memory, respectively. But since it is the memory controller who will access the memory (not the CPU directly), this middleman may limit the maximum amount of RAM your system can have. For example, Intel P35 and G33 chipsets can only access up to 8 GB of RAM (2 GB per memory socket). Plus the motherboard manufacturer may not make available enough memory sockets on the motherboard in order to achieve the maximum amount of RAM that the CPU can theoretically access. For example, if a manufacturer produces a motherboard based on Intel G33 chipset with only two memory sockets, the maximum amount of memory you can have is 4 GB (2 GB per socket), even thought the chipset is capable of accessing up to 8 GB.
(taken from respective sources at NewEggg and hardwaresecrets.com.)
|
|
|