Gå til Kingston.com og den norske websiden NORGE  
Kingston Technology Tools


Ultimate Memory Guide

OTHER MEMORY TECHNOLOGIES YOU MAY
HAVE HEARD ABOUT


ENHANCED SDRAM (ESDRAM)
In order to increase the speed and efficiency of standard memory modules, some manufacturers have incorporated a small amount of SRAM directly into the chip, effectively creating an on-chip cache. ESDRAM is essentially SDRAM, plus a small amount of SRAM cache, which allows for burst operations of up to 200MHz. Just as with external cache memory, the goal of cache DRAM is to hold the most frequently used data in the SRAM cache to minimize accesses to the slower DRAM. One advantage of on-chip SRAM is that it enables a wider bus between the SRAM and DRAM, effectively increasing the bandwidth and speed of the DRAM.

FAST CYCLE RAM (FCRAM)
FCRAM, co-developed by Toshiba and Fujitsu, is intended for specialty applications such as high-end servers, printers, and telecommunications switching systems. It includes memory array segmentation and internal pipelining that speed random access and reduce power consumption.

SYNCLINK DRAM (SLDRAM)
Though considered obsolete today, SLDRAM was developed by a consortium of DRAM manufacturers as an alternative to Rambus technology in the late 1990s.

VIRTUAL CHANNEL MEMORY (VCM)
Developed by NEC, VCM allows different "blocks" of memory to interface inde-pendently with the memory controller, each with its own buffer. This way, different system tasks can be assigned their own "virtual channels," and information related to one function does not share buffer space with other tasks occurring at the same time, making operations more efficient.

ERROR CHECKING
Ensuring the integrity of data stored in memory is an important aspect of memory design. Two primary means of accomplishing this are parity and error correction code (ECC).

Historically, parity has been the most commonly used data integrity method. Parity can detect - but not correct - single-bit errors. Error Correction Code (ECC) is a more comprehensive method of data integrity checking that can detect and correct single-bit errors.

Fewer and fewer PC manufacturers are supporting data integrity checking in their designs. This is due to a couple of factors. First, by eliminating support for parity memory, which is more expensive than standard memory, manufacturers can lower the price of their computers. Fortunately, this trend is complemented by the second factor: that is, the increased quality of memory components available from certain manufacturers and, as a result, the relative infrequency of memory errors.

The type of data integrity checking depends on how a given computer system will be used. If the computer is to play a critical role - as a server, for example - then a computer that supports data integrity checking is an ideal choice. In general:

  • Most computers designed for use as high-end servers support ECC memory.
  • Most low-cost computers designed for use at home or for small businesses support non-parity memory.
PARITY
When parity is in use on a computer system, one parity bit is stored in DRAM along with every 8 bits (1 byte) of data. The two types of parity protocol - odd parity and even parity - function in similar ways.

With normal parity, when 8 bits of data are written to DRAM, a corresponding parity bit is written at the same time. The value of the parity bit (either a 1 or 0) is determined at the time the byte is written to DRAM, based on an odd or even quantity of 1s. Some manufacturers use a less expensive "fake parity" chip. This chip simply generates a 1 or a 0 at the time the data is being sent to the CPU in order to accommodate the memory controller. (For example, if the computer uses odd parity, the fake parity chip will generate a 1 when a byte of data containing an even number of 1s is sent to the CPU. If the byte contains an odd number of 1s, the fake parity chip will generate a 0.) The issue here is that the fake parity chip sends an "OK" signal no matter what. This way, it "fools" a computer that's expecting the parity bit into thinking that parity checking is actually taking place when it is not. The bottom line: fake parity cannot detect an invalid data bit.

This table shows how odd parity and even parity work. The processes are identical but with opposite attributes.

ODD PARITY EVEN PARITY
Step 1 The parity bit will be forced to 1 (or turned "on") if its corresponding byte of data contains an even number of 1's. The parity bit is forced to 0 if the byte contains an even number of 1's.
If the byte contains an odd number of 1's, the parity bit is forced to 0 (or turned "off "). The parity bit is forced to 1 if its corresponding byte of data contains an odd number of 1's.

Step 2 The parity bit and the corresponding 8 bits of data are written to DRAM. (Same as for odd parity)

Step 3   Just before the data is sent to the CPU, it is intercepted by the parity circuit. (Same as for odd parity)
If the parity circuit sees an odd number of 1's, the data is considered valid. The parity bit is stripped from the data and the 8 data bits are passed on to the CPU. Data is considered valid if the parity circuit detects an even number of 1's.
If the parity circuit detects an even number of 1's, the data is considered invalid and a parity error is generated. Data is invalid if the parity circuit detects an odd number of 1's.



Parity does have its limitations. For example, parity can detect errors but cannot make corrections. This is because the parity technology can't determine which of the 8 data bits are invalid.

Furthermore, if multiple bits are invalid, the parity circuit will not detect the problem if the data matches the odd or even parity condition that the parity circuit is checking for. For example, if a valid 0 becomes an invalid 1 and a valid 1 becomes an invalid 0, the two defective bits cancel each other out and the parity circuit misses the resulting errors. Fortunately, the chances of this happening are extremely remote.

ECC

Error Correction Code is the data integrity checking method used primarily in high-end PCs and file servers. The important difference between ECC and parity is that ECC is capable of detecting and correcting 1-bit errors. With ECC, 1-bit error correction usually takes place without the user even knowing an error has occurred. Depending on the type of memory controller the computer uses, ECC can also detect rare 2 bit memory errors. While ECC can detect a multiple-bit errors, it cannot correct them. However, there are some more complex forms of ECC that can correct multiple bit errors.

Using a special mathematical sequence, algorithm, and working in conjunction with the memory controller, the ECC circuit appends ECC bits to the data bits, which are stored together in memory. When the CPU requests data from memory, the memory controller decodes the ECC bits and determines if one or more of the data bits are corrupted. If there's a single-bit error, the ECC circuit corrects the bit. In the rare case of a multiple-bit error, the ECC circuit reports a parity error.

Memory Scrubbing

Memory scrubbing is a feature initially implemented by most major server OEMs when ECC DIMMs first became available. Memory scrubbing refers to a process that actively reads memory during idle periods to search for and correct errors in memory. Therefore, the entire memory subsystem would be periodically checked and cleansed as the scrubbing process repeated itself over and over. If non-correctable memory errors are found the server management system would be alerted as to which DIMM was causing the errors.

Chipkill

Chipkill is a highly advanced error correction method much more effective than standard ECC correction. Chipkill provides error correction for up to four bits per DIMM. If too many memory errors are detected chipkill technology can take the inoperative chip offline while the server is still running to keep more errors from occurring. Chipkill support is provided in the memory controller and implemented using standard ECC DIMMs, so it is transparent to the OS.

OTHER SPECIFICATIONS

In addition to form factors, memory technologies, and error checking methods, there are several other specifications important to understanding and selecting memory products.

SPEED

The speed of memory components and modules is one of the most important factors in optimizing a memory configuration. In fact, all computer systems specify a memory component speed. Ensuring memory compatibility requires conforming to this specification. This section covers three measurements of memory component and module speed: access time, megahertz, and bytes per second.

ACCESS TIME

Prior to SDRAM, memory speed was expressed by access time, measured in nanoseconds (ns). A memory module's access time indicates the amount of time it takes the module to deliver on a data request. So, smaller numbers indicate faster access times. Typical speeds were 80ns, 70ns, and 60ns. Very often, you can identify the speed of a module by the part number on the chip: such part numbers end in "-6" for 60ns, "-7" for 70ns, and so on.

In most cases you can conform to a computer system's memory specification with a module rated at the required speed or faster. For example, if your system requires 70ns memory, you can use both 70ns and 60ns memory without a problem. However, some older systems check the module ID for the rated speed at system-boot up, and will only boot up if they recognize the exact speed they are looking for. If the system has an 80ns speed specification, for example, it won't accept anything different than 80ns, even if it is faster. In many cases, modules could still be built for these systems with faster memory chips on them, but the ID on the module would be set at the slower speed to insure compatibility with the system. This is why you can't always be sure of the rated speed on a module by looking at the speed markings on the memory chips.

MEGAHERTZ

Beginning with the development of SDRAM technology, memory module speed has been measured in megahertz (MHz). Speed markings on the memory chips them-selves are typically still in nanoseconds. This can be confusing, especially since these nanosecond markings no longer measure access time, but instead measure the number of nanoseconds between clock cycles. For SDRAM chips with speeds of 66MHz, 100MHz, and 133MHz, for example, the corresponding marking on the chips are -15, -10, and -8, respectively.

This table shows the method for determining speed equivalencies between MHz and ns ratings.

STEP 1 STEP 2 STEP 3 STEP 4
MHz = 1 million clock cycles per second Multiply by 1 million to get total clock cycles per second Constant: 1 billion nanoseconds per second Divide nanoseconds per second (from Step 3) by clock cycles per second (from Step 2) to get nanoseconds per clock cycle
66 66,000,000 1,000,000,000 15
100 100,000,000 1,000,000,000 10
133 133,000,000 1,000,000,000 7.5


nanoseconds per second 1,000,000,000ns nanoseconds

 = 
 = 
clock cycles per second clock cycles clock cycle


As noted in a previous section, the speed of the processor and the speed of the memory bus are normally not the same. The speed of memory is limited by the speed of the memory bus, which is the slowest link in the process.

BYTES PER SECOND

Converting MHz to bytes per second can be confusing at first. The two most important pieces of information you need to make the conversion is the speed (in MHz) and the width (in bits) of the bus.

Bus Width: If you have an 8-bit bus, then 8 bits, or 1 byte of information at a time can travel on the bus. If you have a 64-bit bus, then 64-bits, or 8 bytes of information can travel at a time.

Bus Speed: If the memory bus speed is 100MHz, this measures 100 million clock cycles per second. Typically, one packet of information can travel on each clock cycle. If the 100MHz bus is 1 byte wide, then data can travel at 100 megabytes per second. Data travels on a 100MHz, 64-bit bus at 800 megabytes per second.

Rambus modules are sometimes measured in MHz and sometimes measured in megabytes per second. One type of Rambus module runs on a 400MHz bus, but because Rambus modules can send two pieces of information per clock cycle instead of one, the module is rated at 800MHz. This is sometimes referred to as PC-800. Because the Rambus bus width is 16-bit, or 2 bytes wide, data travels at 1600MB per second, or 1.6GB per second. Using the same logic, PC-600 Rambus transfers data at 1.2 gigabytes per second.

REGISTERS AND BUFFERS

Registers and buffers improve memory operation by "re-driving" control signals in the memory chips. They can be external to the memory module, or they can be located on the module itself. Having registers and buffers placed directly on the memory module, enables a system to support a greater quantity of modules. So, you're likely to find these types of modules in servers and high-end workstations. It is important to note that when upgrading, unbuffered and buffered (or registered) modules cannot be mixed.

Buffering (EDO and FPM): For EDO and fast page modules, the process of re-driving the signals is called buffering. With buffering there is no loss of performance.

Registering (SDRAM): For SDRAM, the signal driving process is called registering. Registering is similar to buffering, except that in registering, the data is clocked in and out of the register by the system clock. Registered modules are slightly slower than non-registered modules, because the registering process takes one clock cycle.



An example of a buffered and a non-buffered module. They are keyed differently, to ensure that they can't be used in place of one another.

MULTIPLE-BANKED MODULES

A multiple-banked module allows more flexibility in type of chips used. Multiple banking allows a memory designer to divide the module into banks, which means it can appear to the computer system to be more than one module. This design is equivalent to the banks of memory sockets in a computer: the system accesses one bank of memory at a time, regardless of how many actual memory sockets comprise a bank.

Some people confuse the terms "double-sided" and "dual-banked". To clarify: Double- sided is a physical term meaning that chips are arranged on two sides of the memory module. Dual-banked is an electrical term meaning that the module is divided electrically into two memory banks.

TIN VERSUS GOLD

Memory modules are manufactured with either tin leads (connectors) or gold leads. Gold is a better conductor than tin. However, because tin is much less expensive than gold, computer manufacturers began using tin sockets on system boards in the early 1990s to reduce their costs. If you're buying memory and you have a choice - that is, compatible modules come in both tin and gold - it's best to match the metal of the module to the metal of the socket it will be going into. Matching metals can help avoid corrosion.

Kingston's policy has always been to match metals, so Kingston part numbers assigned to each computer system take the socket metal into account.

REFRESH RATES

Refresh is the process of recharging, or re-energizing, the "memory cells" in a memory chip. Internally, computer memory is arranged as a matrix of memory cells in rows and columns - like the squares on a checkerboard - with each column being further divided by the I/O width of the memory chip. The entire organization of rows and columns is called a DRAM array. DRAM is called "dynamic" RAM because it must be refreshed, or re-energized, thousands of times each second in order to retain data. It has to be refreshed because its memory cells are designed around tiny capacitors that store electrical charges. These capacitors work like very tiny batteries that lose their stored charges if they are not re-energized. Also, the process of reading data from the memory array drains these charges, so the memory cells must also be pre-charged before reading the data.

Cells are refreshed one row at a time (usually one row per refresh cycle).The term refresh rate refers not to the time it takes to refresh the memory but to the total number of rows that it takes to refresh the entire DRAM array. For example, a refresh rate of 2K indicates that it takes 2,048 rows to refresh the array; likewise, a 4K rate indicates 4,096 rows.

Normally, the system's memory controller initiates the refresh operation. But some chips are able to "self refresh." This means that the DRAM chip has its own refresh circuitry and does not require intervention from the CPU or external memory controller. Self-refresh modules dramatically reduce power consumption and are often used in portable computers.

CAS LATENCY

The term CAS latency refers to the number of clock cycles it takes before a column can be addressed on the DRAM chip. Latency is a measure of delay, so a "CL2" CAS latency factor indicates a two-clock cycle delay, and a "CL3" latency factor indicates a three-clock cycle delay. When SDRAM chips first came out, it was difficult to produce chips with a CAS latency factor as low as CL2. And although some specifications called for CL2, many modules worked fine at a CAS latency factor of CL3.

HEAT SPREADERS AND HEAT SINKS

As memory components get faster, chips become more dense and more circuits get squeezed onto smaller boards. Dissipation of excess heat becomes more of an issue. For several years now processors have incorporated fans. Newer memory module designs use heat sinks or heat spreaders to maintain safe operating temperatures.

SERIAL PRESENCE DETECT (SPD) AND PARALLEL PRESENCE DETECT (PPD)

When a computer system boots up, it must "detect" the configuration of the memory modules in order to run properly. Parallel Presence Detect is the traditional method of relaying the required information by using a number of resistors. PPD is the method SIMMs and some DIMMs use to identify themselves. Serial Presence Detect uses an EEPROM (Electrically Erasable Programmable Read-Only Memory) to store information about the module.

An EEPROM chip (also known as an E2PROM) differs from an EPROM in that it does not need to be removed from the computer to be modified. However, it does have to be erased and reprogrammed in its entirety, not selectively. It also has a limited lifespan - that is, the number of times it can be reprogrammed is limited.

NUMBER OF CLOCK LINES (2-CLOCK VERSUS 4-CLOCK)

SDRAM memory requires that clock lines run from the system clock to the memory module. "2-clock" means there are two clock lines running to the module, and "4-clock" means there are four clock lines running to the module. The first Intel designs were 2-clock because there were only eight chips on the module. Later, 4-clock designs were developed, which allowed for fewer chips per clock line, thereby decreasing the load on each line and enabling a quicker data interface.

VOLTAGES

Voltages on memory modules keep decreasing as memory cells in DRAMs get closer together and heat becomes more of an issue. Most computer systems used to operate at a standard of 5 volts. Compact notebook computers were the first to use 3.3-volt chips. This was not only because of heat issues; since lower voltage chips use less power, using them made it easier to prolong battery life. Now most desktops are standardized on 3.3-volt memory as well, but this is quickly being replaced by 2.5 voltage chips as products continue to get smaller and components closer together.

COMPOSITE VERSUS NON-COMPOSITE

Composite and non-composite were terms first used by Apple Computer to explain the difference between modules of the same capacity that used a different number of chips. To illustrate: when the industry is transitioning from one chip density to another, there is normally a stage where you can build, for example, a memory module with 8 of the new density chips, or 32 of the old density chips. Apple referred to the module using the latest technology and fewer chips as "non-composite", and the version using earlier technology and greater number of chips as "composite". Because 32 chips on a module can cause heat and spacing problems, Apple would often advise customers to buy non-composite modules.


© 2008 Kingston Technology Corporation - All Rights Reserved