Memory controller

Memory controller

The memory controller is a digital circuit which manages the flow of data going to and from the main memory. It can be a separate chip or integrated into another chip, such as on the die of a microprocessor. This is also called a Memory Chip Controller (MCC).[1]

Computers using Intel microprocessors have traditionally had a memory controller implemented on their motherboard's northbridge, but many modern microprocessors, such as DEC/Compaq's Alpha 21364, AMD's Athlon 64 and Opteron processors, IBM's POWER5, Sun Microsystems's UltraSPARC T1, and more recently Intel's Core i7 have an integrated memory controller (IMC) on the microprocessor due to reduce memory latency. While this has the potential to increase the system's performance, it locks the microprocessor to a specific type (or types) of memory, forcing a redesign in order to support newer memory technologies. When DDR2 SDRAM was introduced, AMD released new Athlon 64 CPUs. These new models, with a DDR2 controller, use a different physical socket (known as Socket AM2), so that they will only fit in motherboards designed for the new type of RAM. When the memory controller is not on-die, the same CPU may be installed on a new motherboard, with an updated northbridge.

The integration of the memory controller onto the die of the microprocessor is not a new concept. Some microprocessors in the 1990s such as the DEC Alpha 21066 and HP PA-7300LC had integrated memory controllers, but rather than for performance gains, this was implemented to reduce the cost of systems by eliminating the need for an external memory controller.

Contents

Purpose

Memory controllers contain the logic necessary to read and write to DRAM, 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 charge within a fraction of a second (not less than 64 milliseconds according to JEDEC standards).

Reading and writing to DRAM is performed by selecting the row and column data addresses of the DRAM as the inputs to the multiplexer circuit, where the demultiplexer on the DRAM uses the converted inputs to select the correct memory location and return the data, which is then passed back through a multiplexer to consolidate the data in order to reduce the required bus width for the operation.

Bus width is the number of parallel lines available to communicate with the memory cell. Memory controllers' bus widths range from 8-bit in earlier systems, to 512-bit 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).

Double data rate memory

Double Data Rate DDR memory controllers are used to drive DDR SDRAM, where data is transferred 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 transferred without increasing the clock rate or increasing the bus width to the memory cell.

Dual-channel memory

Dual Channel memory controllers are memory controllers where the DRAM devices are separated on to two different buses 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

Fully buffered memory systems place a memory buffer device on every memory module (called an FB-DIMM when Fully Buffered RAM is used), which unlike traditional memory controller devices, use 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.

References

  1. ^ Comptia A+ Certification Exam Guide, Seventh Edition, by Mike Meyers, in the glossary, bottom of page 1278: "Chip that handles memory requests from the CPU."

See also

External references

  • Selecting Memory Controllers for DSP Systems A how-to article on evaluating memory controllers using the VisualSim virtual prototyping tool.
  • [1] Infineon/Kingston (a memory vendor) Dual Channel DDR Memory Whitepaper. Explains dual channel memory controllers, and how to best use use them.

Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Memory Controller — Der Speichercontroller (auch Memory Controller) ist ein Chip, der bei Computern den Datenfluss zwischen Prozessor und Arbeitsspeicher regelt. Untergebracht ist der Speichercontroller entweder direkt im Prozessor (Integrated Memory Controller IMC) …   Deutsch Wikipedia

  • memory controller — atmintinės valdiklis statusas T sritis radioelektronika atitikmenys: angl. memory controller vok. Speicherkontroller, m; Speichersteuereinheit, f rus. контроллер запоминающего устройства, m pranc. contrôleur de la mémoire, m …   Radioelektronikos terminų žodynas

  • Memory Controller Hub — (MCH) bzw. Graphics and Memory Controller Hub (GMCH) ist die Bezeichnung Intels für die Northbridge eines Chipsatzes. Die Bezeichnung GMCH kennzeichnet eine Northbridge mit integriertem Grafikkern (IGP). Die Southbridge eines Intel Chipsatzes… …   Deutsch Wikipedia

  • Memory Controller Hub — Le Memory Controller Hub, ou MCH, d Intel, est un Northbridge utilisé par ses processeurs de microarchitecture plus ancienne que Nehalem. En effet les processeurs Nehalem intègrent un contrôleur mémoire. Le MCH est utilisé conjointement avec un… …   Wikipédia en Français

  • Graphics and Memory Controller Hub — Memory Controller Hub (MCH) bzw. Graphics and Memory Controller Hub (GMCH) ist die Bezeichnung Intels für die Northbridge eines Chipsatzes. Die Bezeichnung GMCH kennzeichnet eine Northbridge mit integriertem Grafikkern (IGP). Die Southbridge… …   Deutsch Wikipedia

  • Multi-Memory Controller — Multi Memory Controllers or Memory Management Controllers [ Why Game Paks Never Forget from Nintendo Power ] (MMC) are different kinds of special chips designed by various video game developers for use in Nintendo Entertainment System (NES)… …   Wikipedia

  • Graphics and Memory Controller Hub — Graphics and Memory Controller Hub,   GMCH …   Universal-Lexikon

  • Memory scrubbing — is the process of detecting and correcting bit errors in computer memory by using error detecting codes like ECC. Contents 1 Motivation for scrubbing 2 ECC support for scrubbing 3 Scrubbing in more detail …   Wikipedia

  • Memory geometry — In the design of modern personal computers, memory geometry describes the internal structure of random access memory. Memory geometry is of concern to consumers upgrading their computers, since older memory controllers may not be compatible with… …   Wikipedia

  • Controller (computing) — In computing and especially in computer hardware, controller is a chip, an expansion card, or a stand alone device (usually called a control unit) that interfaces with a peripheral device. This may be a link between two parts of a computer (for… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”