Memory controller: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
No edit summary
Line 13: Line 13:
Fully-Buffered memory systems places a memory buffer device on every [[DIMM|memory module]] (called an [[FB-DIMM]] when Fully Buffered RAM is used), which unlike traditional memory controller devices, uses a serial data link to the memory controller instead of the parallel link used in previous RAM designs. This decreases the number of the wires necessary to place the memory devices on a motherboard (allowing for a smaller number of layers to be used, meaning more memory devices can be placed on a single board), at the expense of increasing latency (the time necessary to access a memory location). This increase is due to the time required to convert the parallel information read from the DRAM cell to the serial format used by the FB-DIMM controller, and back to a parallel form in the memory controller on the motherboard. In theory, the FB-DIMM's memory buffer device could be built to access any DRAM cells, allowing for memory cell agnostic memory controller design, but this has not been demonstrated, as the technology is in its infancy.
Fully-Buffered memory systems places a memory buffer device on every [[DIMM|memory module]] (called an [[FB-DIMM]] when Fully Buffered RAM is used), which unlike traditional memory controller devices, uses a serial data link to the memory controller instead of the parallel link used in previous RAM designs. This decreases the number of the wires necessary to place the memory devices on a motherboard (allowing for a smaller number of layers to be used, meaning more memory devices can be placed on a single board), at the expense of increasing latency (the time necessary to access a memory location). This increase is due to the time required to convert the parallel information read from the DRAM cell to the serial format used by the FB-DIMM controller, and back to a parallel form in the memory controller on the motherboard. In theory, the FB-DIMM's memory buffer device could be built to access any DRAM cells, allowing for memory cell agnostic memory controller design, but this has not been demonstrated, as the technology is in its infancy.


As of [[2006]], most computers have a memory controller implemented on their motherboard's [[northbridge (computing)]], though some modern [[microprocessors]], such as [[AMD]]'s Athlon 64, and [[Opteron]], [[IBM]]'s [[POWER5]], and [[Sun Microsystems]] [[UltraSPARC T1]] have a memory controller on the CPU die to reduce the [[memory latency]]. As this greatly increases the computer's performance, it locks the processor to that generation of memory, making the entire platform vulnerable to changes in memory technologies. This was witnessed in the shift to [[socket AM2]] on the Athlon 64 processor to allow the processor to use [[DDR2 SDRAM]].
As of [[2006]], most computers have a memory controller implemented on their motherboard's [[northbridge (computing)|north bridge]], though some modern [[microprocessors]], such as [[AMD]]'s Athlon 64, and [[Opteron]], [[IBM]]'s [[POWER5]], and [[Sun Microsystems]] [[UltraSPARC T1]] have a memory controller on the CPU die to reduce the [[memory latency]]. As this greatly increases the computer's performance, it locks the processor to that generation of memory, making the entire platform vulnerable to changes in memory technologies. This was witnessed in the shift to [[socket AM2]] on the Athlon 64 processor to allow the processor to use [[DDR2 SDRAM]].


== See also ==
== See also ==

Revision as of 03:06, 16 August 2006

The memory controller is a chip on a computer's motherboard or CPU die which manages the flow of data going to and from the memory.

Memory controllers contain the logic necessary to read and write dynamic RAM, and to "refresh" the DRAM by sending current through the entire device. Without constant refreshes, DRAM will lose the data written to it as the capacitors leak their current within a number of milliseconds (64 milliseconds according to JEDEC standards).

Reading and writing to DRAM is facilitated by use of multiplexers and demultiplexers, by selecting the correct row and column address as the inputs to the multiplexer circuit, where the demultiplexer on the DRAM can select the correct memory location and return the data (once again passed through a multiplexer to reduce the number of wires necessary to assemble the system).

Bus width is the measure of how many parallel lanes of traffic are available to communicate with the memory cell. Memory controllers bus width ranges from 8-bit in earlier systems, to 256-bit systems in more complicated systems and video cards (typically implemented as four, 64-bit simultaneous memory controllers operating in parallel, though some are designed to operate in "gang mode" where two 64-bit memory controllers can be used to access a 128-bit memory device).

Dual Data Rate(DDR) memory controllers are used to drive DDR SDRAM, where data is transfered on the rising and falling access of the memory clock of the system. DDR memory controllers are significantly more complicated than Single Data Rate controllers, but allow for twice the data to be transfered without increasing the clock rate or increasing the bus width to the memory cell.

Dual Channel memory controllers are memory controllers where the DRAM devices are seperated onto two different busses to allow two memory controllers to access them in parallel. This doubles the theoretical amount of bandwidth of the bus. In theory, more channels can be built (a channel for every DRAM cell would be the ideal solution), but due to wire count, line capacitance, and the need for parallel access lines to have identical lengths, more channels are very difficult to add.

Fully-Buffered memory systems places a memory buffer device on every memory module (called an FB-DIMM when Fully Buffered RAM is used), which unlike traditional memory controller devices, uses a serial data link to the memory controller instead of the parallel link used in previous RAM designs. This decreases the number of the wires necessary to place the memory devices on a motherboard (allowing for a smaller number of layers to be used, meaning more memory devices can be placed on a single board), at the expense of increasing latency (the time necessary to access a memory location). This increase is due to the time required to convert the parallel information read from the DRAM cell to the serial format used by the FB-DIMM controller, and back to a parallel form in the memory controller on the motherboard. In theory, the FB-DIMM's memory buffer device could be built to access any DRAM cells, allowing for memory cell agnostic memory controller design, but this has not been demonstrated, as the technology is in its infancy.

As of 2006, most computers have a memory controller implemented on their motherboard's north bridge, though some modern microprocessors, such as AMD's Athlon 64, and Opteron, IBM's POWER5, and Sun Microsystems UltraSPARC T1 have a memory controller on the CPU die to reduce the memory latency. As this greatly increases the computer's performance, it locks the processor to that generation of memory, making the entire platform vulnerable to changes in memory technologies. This was witnessed in the shift to socket AM2 on the Athlon 64 processor to allow the processor to use DDR2 SDRAM.

See also