Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Memory controller

From Wikipedia, the free encyclopedia
Digital circuit that manages the flow of data going to and from the computer's main memory
This article needs to beupdated. Please help update this article to reflect recent events or newly available information.(August 2022)
Intel 82PM45 Memory Controller Hub

Amemory controller, also known asmemory chip controller (MCC) or amemory controller unit (MCU), is a digital circuit that manages the flow of data going to and from a computer'smain memory.[1][2] When a memory controller is integrated into another chip, such as an integral part of amicroprocessor, it is usually called anintegrated memory controller (IMC).

Memory controllers contain the logic necessary to read and write todynamic random-access memory (DRAM), and to provide the criticalmemory refresh and other functions. Reading and writing to DRAM is performed by selecting the row and column data addresses of the DRAM as the inputs to themultiplexer circuit, where thedemultiplexer 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 requiredbus width for the operation. Memory controllers' bus widths range from8-bit in earlier systems, to 512-bit in more complicated systems, where they are typically implemented as four64-bit simultaneous memory controllers operating in parallel, though some operate with two 64-bit memory controllers being used to access a128-bit memory device.

Some memory controllers, such as the one integrated intoPowerQUICC II processors, includeerror detection and correction hardware.[3] Many modern processors are also integratedmemory management unit (MMU), which in manyoperating systems implementsvirtual addressing. On early x86-32 processors, the MMU is integrated in the CPU, but the memory controller is usually part ofnorthbridge.[4]

History

[edit]

Older Intel andPowerPC-based computers have memory controller chips that are separate from the main processor. Often these are integrated into thenorthbridge of the computer, also sometimes called a memory controller hub.

Most modern desktop or workstation microprocessors use anintegrated memory controller (IMC), including microprocessors fromIntel,AMD, and those built around theARM architecture. Prior toK8 (circa 2003),AMD microprocessors had a memory controller implemented on their motherboard'snorthbridge. In K8 and later, AMD employed an integrated memory controller.[5] Likewise, untilNehalem (circa 2008),Intel microprocessors used memory controllers implemented on the motherboard's northbridge. Nehalem and later switched to an integrated memory controller.[6] Other examples of microprocessor architectures that useintegrated memory controllers includeNVIDIA'sFermi,IBM'sPOWER5, andSun Microsystems'sUltraSPARC T1.

While an integrated memory controller has the potential to increase the system's performance, such as by reducingmemory latency, it locks the microprocessor to a specific type (or types) of memory, forcing a redesign in order to support newer memory technologies. WhenDDR2 SDRAM was introduced, AMD released newAthlon 64 CPUs. These new models, with a DDR2 controller, use a different physical socket (known asSocket 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 to use newer memory.

Some microprocessors in the 1990s, such as the DECAlpha 21066 and HPPA-7300LC, had integrated memory controllers; however, rather than for performance gains, this was implemented to reduce the cost of systems by eliminating the need for an external memory controller.[citation needed]

Some CPUs are designed to have their memory controllers as dedicated external components that are not part of the chipset. An example is IBMPOWER8, which uses externalCentaur chips that are mounted ontoDIMM modules and act as memory buffers,L4 cache chips, and as the actual memory controllers. The first version of the Centaur chip used DDR3 memory but an updated version was later released which can use DDR4.[7]

Security

[edit]

A few experimental memory controllers contain a second level of address translation, in addition to the first level of address translation performed by the CPU'smemory management unit to improve cache and bus performance.[8]

Memory controllers integrated into certainIntel Core processors providememory scrambling as a feature that turns user data written to the main memory intopseudo-random patterns.[9][10] Memory scrambling has the potential to preventforensic andreverse-engineering analysis based onDRAM data remanence by effectively rendering various types ofcold boot attacks ineffective. In current practice, this has not been achieved; memory scrambling has only been designed to address DRAM-related electrical problems. The late 2010s memory scrambling standards do address security issues and are not cryptographically secure or open to public revision or analysis.[11]

ASUS and Intel have their separate memory scrambling standards. ASUS motherboards have allowed the user to choose which memory scrambling standard to use (ASUS or Intel) or whether to turn the feature off entirely.[citation needed]

Variants

[edit]

Double data rate memory

[edit]

Double data rate (DDR) memory controllers are used to driveDDR SDRAM, where data is transferred on both rising and falling edges of the system's memory clock. DDR memory controllers are significantly more complicated when compared to single data rate controllers,[citation needed] but they allow for twice the data to be transferred without increasing the memory's clock rate or bus width.

Multichannel memory

[edit]
Main article:Multi-channel memory architecture

Multichannel memory controllers are memory controllers where the DRAM devices are separated onto multiple buses to allow the memory controller(s) to access them in parallel. This increases the theoretical amount of bandwidth of the bus by a factor of the number of channels. While a channel for every DRAM would be the ideal solution, adding more channels increases complexity and cost.

Fully buffered memory

[edit]
Main article:Fully Buffered DIMM

Fully buffered memory systems place a memory buffer device on everymemory module (called anFB-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 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.

Flash memory controller

[edit]
Main article:Flash memory controller

Manyflash memory devices, such asUSB flash drives andsolid-state drives, include aflash memory controller. Flash memory is inherently slower to access than RAM and often becomes unusable after a few million write cycles, which generally makes it unsuitable for RAM applications.

See also

[edit]

References

[edit]
  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."
  2. ^Neat, Adam G. (2003-12-04).Maximizing Performance and Scalability with IBM WebSphere. Apress.ISBN 9781590591307. Retrieved6 February 2015.
  3. ^"Memory Controller"
  4. ^"Archived copy"(PDF). Archived fromthe original(PDF) on 2025-07-04.{{cite web}}: CS1 maint: archived copy as title (link)
  5. ^Vries, Hans de."Chip Architect: AMD's Next Generation Micro Processor's Architecture".www.chip-architect.com. Retrieved2018-03-17.
  6. ^Torres, Gabriel (2008-08-26)."Inside Intel Nehalem Microarchitecture".Hardware Secrets. p. 2. Retrieved7 September 2017.
  7. ^Prickett Morgan, Timothy (2016-10-17)."IBM Brings DDR4 Memory To Bear On Power Systems".IT Jungle. p. 1. Retrieved2017-09-07.
  8. ^John Carter, Wilson Hsieh, Leigh Stoller, Mark Swansony, Lixin Zhang, et al."Impulse: Building a Smarter Memory Controller".
  9. ^"2nd Generation Intel Core Processor Family Desktop, Intel Pentium Processor Family Desktop, and Intel Celeron Processor Family Desktop"(PDF). June 2013. p. 23. Retrieved2015-11-03.
  10. ^"2nd Generation Intel Core Processor Family Mobile and Intel Celeron Processor Family Mobile"(PDF). September 2012. p. 24. Retrieved2015-11-03.
  11. ^Igor Skochinsky (2014-03-12)."Secret of Intel Management Engine".SlideShare. pp. 26–29. Retrieved2014-07-13.

External links

[edit]
Models
Architecture
Instruction set
architectures
Types
Instruction
sets
Execution
Instruction pipelining
Hazards
Out-of-order
Speculative
Parallelism
Level
Multithreading
Flynn's taxonomy
Processor
performance
Types
By application
Systems
on chip
Hardware
accelerators
Word size
Core count
Components
Functional
units
Logic
Registers
Control unit
Datapath
Circuitry
Power
management
Related
Retrieved from "https://en.wikipedia.org/w/index.php?title=Memory_controller&oldid=1305548093"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp