# Controlador de memòria

Un controlador de memòria és un circuit digital que gestiona el flux de dades que van i des de la memòria principal d'un ordinador. Un controlador de memòria pot ser un xip separat o integrat en un altre xip, com ara col·locar-se a la mateixa matriu o com a part integral d'un microprocessador; en aquest últim cas, se sol anomenar controlador de memòria integrat (IMC). Un controlador de memòria de vegades també s'anomena controlador de xip de memòria (MCC) o unitat de controlador de memòria (MCU).
Els controladors de memòria contenen la lògica necessària per llegir i escriure a la DRAM i per "actualitzar" la DRAM. Sense una actualització periòdica, la DRAM perdrà les dades escrites. Alguns controladors de memòria inclouen maquinari de detecció i correcció d'errors.
Una forma comuna de controlador de memòria és la unitat de gestió de memòria (MMU) que en molts sistemes operatius implementa l'adreçament virtual.

## Història

Els ordinadors més antics basats en Intel i PowerPC tenen xips de controlador de memòria que estan separats del processador principal. Sovint, aquests s'integren al pont nord de l'ordinador, també anomenat concentrador de controlador de memòria.
La majoria dels microprocessadors d'escriptori o estacions de treball moderns utilitzen un controlador de memòria integrat (IMC), inclosos els microprocessadors d'Intel, AMD i els construïts al voltant de l'arquitectura ARM.
Abans del K8 (al voltant de 2003), els microprocessadors AMD tenien un controlador de memòria implementat al pont nord de la seva placa base. A K8 i posteriors, AMD va utilitzar un controlador de memòria integrat. De la mateixa manera, fins a Nehalem (al voltant de 2008), els microprocessadors Intel utilitzaven controladors de memòria implementats al pont nord de la placa base. Nehalem i més tard van canviar a un controlador de memòria integrat. Altres exemples d'arquitectures de microprocessadors que utilitzen controladors de memòria integrats inclouen Fermi de NVIDIA, POWER5 d'IBM i UltraSPARC T1 de Sun Microsystems.
Tot i que un controlador de memòria integrat té el potencial d'augmentar el rendiment del sistema, com ara reduint la latència de la memòria, bloqueja el microprocessador a un tipus (o tipus) específics de memòria, forçant un redisseny per donar suport a tecnologies de memòria més noves. Quan es va introduir DDR2 SDRAM, AMD va llançar noves CPU Athlon 64. Aquests nous models, amb controlador DDR2, utilitzen un sòcol físic diferent (conegut com Socket AM2), de manera que només caben en plaques base dissenyades per al nou tipus de RAM. Quan el controlador de memòria no està encès, la mateixa CPU es pot instal·lar en una placa base nova, amb un pont nord actualitzat.

## Propòsit

Els controladors de memòria contenen la lògica necessària per llegir i escriure a la DRAM i per "actualitzar" la DRAM. Sense actualitzacions constants, la DRAM perdrà les dades escrites en ella a mesura que els condensadors s'escapten en una fracció de segon (no més de 64 mil·lisegons segons els estàndards JEDEC).
La lectura i escriptura a la DRAM es realitza seleccionant les adreces de dades de fila i columna de la DRAM com a entrades al circuit multiplexor, on el demultiplexor de la DRAM utilitza les entrades convertides per seleccionar la ubicació de memòria correcta i retornar les dades, que després són torna a passar per un multiplexor per consolidar les dades per tal de reduir l'amplada del bus necessària per a l'operació. L'amplada del bus és el nombre de línies paral·leles disponibles per comunicar-se amb la cel·la de memòria. L'amplada del bus dels controladors de memòria oscil·la entre els 8 bits en sistemes anteriors i els 512 bits en sistemes i targetes de vídeo més complicats (normalment s'implementa com a quatre controladors de memòria simultànies de 64 bits que funcionen en paral·lel, encara que alguns estan dissenyats per funcionar en "mode de colla" on es poden utilitzar dos controladors de memòria de 64 bits per accedir a un dispositiu de memòria de 128 bits).
Alguns controladors de memòria, com el integrat als processadors PowerQUICC II, inclouen maquinari de detecció i correcció d'errors.

## Seguretat

Alguns controladors de memòria experimentals (sobretot dirigits al mercat de servidors on la protecció de dades és legalment requerida) contenen un segon nivell de traducció d'adreces, a més del primer nivell de traducció d'adreces realitzat per la unitat de gestió de memòria de la CPU.
Els controladors de memòria integrats en determinats processadors Intel Core també proporcionen codificació de memòria com a característica que converteix les dades de l'usuari escrites a la memòria principal en patrons pseudoaleatoris. Se suposa que la codificació de memòria (a la teoria criptogràfica) prevé l'anàlisi forense i d'enginyeria inversa basada en la remanència de dades DRAM fent que diversos tipus d'atacs d'arrencada en fred siguin ineficaços. En la pràctica actual això no s'ha aconseguit.

## Referències

* ↑ Neat, Adam G. Maximizing Performance and Scalability with IBM WebSphere (en anglès), 2003-12-04. ISBN 9781590591307.
* ↑ Vries, Hans de. «Chip Architect: AMD's Next Generation Micro Processor's Architecture» (en anglès). www.chip-architect.com. [Consulta: 17 març 2018].
* ↑ Torres, Gabriel. «Inside Intel Nehalem Microarchitecture» (en anglès). Hardware Secrets, 26-08-2008. [Consulta: 7 setembre 2017].
* ↑ «2nd Generation Intel Core Processor Family Desktop, Intel Pentium Processor Family Desktop, and Intel Celeron Processor Family Desktop» (en anglès), 01-06-2013. [Consulta: 3 novembre 2015].
* ↑ «2nd Generation Intel Core Processor Family Mobile and Intel Celeron Processor Family Mobile» (en anglès), 01-09-2012. [Consulta: 3 novembre 2015].