miniatura|Diferents mòduls de memòria d'accés aleatori La memòria és l'espai d'entrada / sortida que permet emmagatzemar informació en un ordinador o en dispositius electrònics en general. És un dels elements principals del maquinari d'un ordinador.
La unitat central de processament (CPU) d'un ordinador és el que manipula les dades mitjançant la realització de càlculs. A la pràctica, gairebé tots els ordinadors utilitzen una jerarquia d'emmagatzematge, que posa a prop de la CPU opcions d'emmagatzematge ràpides, però cares i petites, i opcions més lentes però més grans i econòmiques. Generalment s'anomenen les tecnologies volàtils ràpides (que perden dades quan s'apaguen) com a memòria, mentre que es coneix com a tecnologies persistents més lentes les de emmagatzematge.
Actualment, quan es parla de memòria a seques ens referim a la memòria d'accés aleatori (RAM), un tipus de memòria basada en els semiconductors caracteritzada per un accés ràpid però d'emmagatzemament temporal. Igualment, quan parlem demmagatzemament normalment ens referim a dispositius d'emmagatzemament massiu, dispositius més lents que la memòria d'accés aleatori però d'una naturalesa més permanent. Per exemple, dispositius magnètics com els discs durs, discs òptics, etc. Històricament, a memòria i emmagatzemament se'ls anomenava respectivament emmagatzemament primari i emmagatzemament secundari.
La memòria primària'' la gestiona el sistema operatiu mitjançant la gestió de la memòria.
Tipus de memòria
Volàtil: aquella que perd la seva informació quan no rep corrent elèctric. Normalment, són memòries basades en semiconductors (memòria d'accés aleatori (RAM)).
No volàtil: no perd la seva informació. Poden ser memòries magnètiques (disquet, disc dur, etc.), òptiques (CD-ROM, DVD, etc.), o electròniques (memòria flaix).Storage as defined in Microsoft Computing Dictionary, 4th Ed. (c)1999 or in The Authoritative Dictionary of IEEE Standard Terms, 7th Ed., (c) 2000.
Només lectura: ROM (Read Only Memory).
Lectura / escriptura: RAM (Random Acces Memory).
Primària o Principal: accés ràpid però emmagatzemament temporal, mitjançant elements electrònics semiconductors (xips) memòria d'accés aleatori (RAM).
Secundària: accés més lent que el primari però de naturalesa permanent (sense necessitat d'alimentació). La que hi ha als discs d'emmagatzemament massiu (disc dur, discs òptics, etc.).
Segons la forma d'accés Accés seqüencial: per a accedir a una porció d'informació, s'ha de passar per totes les anteriors (per exemple, cinta VHS).
Accés aleatori''': es pot accedir a una posició sense passar per les anteriors.
Història miniatura|512 kb. en memòria de ferrita Principals tecnologies usades:
Dècada del 1930; targetes perforades o relés electromagnètics.
Dècada del 1940; Tub de buit, Resistències.
Dècada del 1950; Línies de retard de mercuri, Tub de buit Williams, Memòries magnètiques, Memòria de ferrita, molt popular fins als 70.
Dècada del 1960; Primer xip comercial de memòria de semiconductor.
Dècada del 1970; Substitució de les memòries de ferrita per les semiconductores.
Dècada del 1980; Aparició de la memòria EEPROM (usada en la tecnologia FLASH).
Dècada del 1990; Generalització memòria SDRAM.
Dècada del 2000; Generalització memòria DDR SDRAM.
Jerarquització La memòria està jerarquitzada, és a dir situada a diferents nivells des del punt de vista del processador. Les raons per les quals existeix la jerarquia de memòries són les següents:
La velocitat dels processadors és molt més gran que la velocitat de les memòries:
Processadors
{| border=1 |----- align=center ! Any Marca ! Velocitat nº accessos/cicle ! Amplada de banda mínimper al màxim rendiment |----- align=center | 1991 || Alpha 21064 || 200 MHz | 2.5 || 1.90 Gbytes /s |----- align=center | 2000 || Alpha 21264 || 600 MHz | 5 || 11.44 Gbytes/s |----- align=center | 2003 || Pentium IV || 3000 MHz | 3.75 || 42.75 Gbytes/s
Memòries
{| border=1 |----- align=center ! Any TipusMemòria ! Capacitat Freqüènciaplaca base ! Amplada de banda ofertper la memòria |----- align=center | 2000 || EDO DRAM || 64 Mbit | 66 MHz || 203.4 Mbytes / s |----- align=center | 2003 || DDR DRAM IV || 256 Mbit | 200 MHz || 813.8 Mbytes / s
La diferència entre les dues velocitats va en augment constant.
Velocitat
Latència: temps d'accés a memòria (el que es triga a accedir a la informació de la memòria).
Amplada de banda: quantitat d'informació obtinguda per unitat de temps.
Capacitat: nombre de Kbits, Mbits, Gbits,... que pot emmagatzemar la memòria.
Cost per unitat d'emmagatzematge: € / Kbit, € / Mbit, € / Gbit... {| border=1 |----- align=center ! Tipus de Memòria Capacitat ! Temps Accés Tecnologia ! Cost per Mbyte* |----- align=center | Registres || 64 - 1024 bytes || 0.3 - 1 ns
|----- align=center | Memòria Cau || 8 Kb - 2 Mb || 1 - 5 ns | SRAM || 6.75 € |----- align=center | Memòria Principal || 1 Mb - 4 Gb || 10 - 30 ns | DRAM || 0.25 € |----- align=center | Memòria Secundària || 10 - 300 Gb || 10 - 50 ns | Magnètica || 0.00125 € |} (* Preus del 2002)
Regla del 90/10: del 90% de les referències a memòria, el 10% es realitzen al codi. Localitat temporal: quan realitzem un accés a una posició de memòria, és molt probable que en un futur pròxim tornem a accedir a la mateixa adreça. Localitat espacial: quan realitzem un accés a una posició de memòria, és molt probable que en un futur proper accedim a una posició molt propera a l'accedida.
Jerarquia de memòries
miniatura|500px|Jerarquia de memòries Des de sempre, la part més important d'un ordinador ha estat la CPU, la qual treballa amb les dades, fa càlculs i controla tots els altres components. Evidentment, les operacions que porta a terme no són tan simples com les d'una calculadora, en la que es fan uns passos fixats a partir de les dades entrades per poder-ne obtenir unes de sortida, sinó que en cada moment es necessita ajustar el seu comportament enfront de les dades a processar. Per poder assolir aquest requeriment, amb el temps, s'han anat requerint memòries més ràpides i de més capacitat, el que ha fet que es creés una jerarquia a partir de la seva velocitat i grandària.
Aquesta memòria és l'única que pot accedir directament a la CPU. Contínuament, la CPU llegeix instruccions guardades en aquesta i les executa a continuació.
Històricament, els primers ordinadors utilitzaven memòries de línies de retard, tubs de Williams o memòries de tambor com a memòria principal. Cap al 1954 però, aquestes tecnologies van ser substituïdes per memòries de nucli magnètic, tot i que continuaven essent força complicades. No va ser fins a la revolució del transistor, i posteriorment la dels chips de silici, que les memòries no van veure un gran salt en velocitat i capacitat.
Aquest fet va donar lloc a una innovadora memòria d'accés aleatori (RAM), de mida molt petita, i lleugera, però de preu una mica elevat.
Com es mostra en el gràfic però, existeixen dos nivells més de memòria abans de la memòria RAM. Això és a causa del fet que la memòria gran, tot i poder guardar molta informació i ser d'accés aleatori, aquesta és molt lenta per la CPU i, per tant, es necessiten altres memòries per guardar les dades que s'han d'utilitzar més sovint.
Els registres dels processadors són la porció de memòria més pròxima a la CPU dins de la jerarquia de memòria d'un computador i és el tipus de memòria d'accés més ràpid.
Es troben a dins de la CPU. Cada un té capacitat per a una paraula (avui dia de 32 o 64 bits). La UAL o altres components interns a la CPU realitzen càlculs aritmètics o altres tipus d'operacions sobre aquestes paraules. Els registres de memòria són, en diferència, la tecnologia d'emmagatzematge més ràpida que s'utilitza en un ordinador. Els registres de la CPU permeten guardar temporalment dades que el processador necessita gairebé de forma immediata. Quan la CPU acaba d'executar l'última instrucció i torna a començar una altra instrucció, accedeix als registres per obtenir les següents dades a executar. Com que el temps que passa entre instrucció i instrucció és molt petit, aquesta memòria s'ha d'omplir i buidar de forma instantània. Hi ha diversos tipus de registres segons el tipus de dada que guarden. Una mateixa CPU pot contenir diferents tipus de registres, cada un especialitzat a retenir un tipus de dades.
Els tipus de registres més comuns en una CPU són:
Registres de dades: per guardar valors enters. Registres de memòria: per guardar exclusivament adreces de memòria. Registres de propòsit general: per guardar dades i direccions. Registres de coma flotant: per guardar dades en format de coma flotant. Registres de propòsit específic: per guardar l'estat del sistema.
Estructura interna Els registres d'un processador es troben formant bancs de registres, que són estructures bidimensionals formades per biestables, on cada fila la considerem com un registre. Aquesta xarxa bidimensional de biestables s'anomena Register-File Cells i porta enganxada els descodificadors necessaris de lectura i escriptura. Cada un d'aquests biestables és capaç d'emmagatzemar un bit, és a dir, pot guardar un 1 o un 0. Aquests descodificadors permeten seleccionar una fila per poder llegir o escriure tot un registre. Cada registre té 2 bits. L'estructura bàsica d'un banc de registres és la següent:
Registres de la CPU
I: Input és per on entren les dades de m bits. O: Output és per on surten les dades de m bits. WA: Write diu a quina fila col·loquem les dades escrites. WE: Write Enable habilita l'escriptura de dades. RA: Read diu de quina fila volem llegir les dades. RE: Read Enable habilita la lectura de dades. Clk: És el senyal de rellotge que marca la velocitat a la qual ha de treballar.
Per escriure-hi dades habilitem WE, seleccionem la fila on les volem col·locar per WA i entrem les dades per l'Input. Per llegir, fem el mateix però habilitem RE, seleccionem la fila d'on volem llegir per RA i traiem les dades per Output. Els registres només poden moure una dada alhora, i per això moltes vegades es fan servir més d'un banc de registres alhora, com per exemple un per l'operand 1, un altre per l'operand 2 i un altre per al resultat. Això té un cost molt alt, ja que si el cost d'un sol registre és elevat, el cost de més d'un encara ho és més.
Aquests tipus de memòria està situada en una etapa intermèdia entre els súper ràpids registres i la gran memòria RAM. La seva funcionalitat és incrementar el rendiment de l'ordinador.
Aquesta característica s'aconsegueix duplicanthi la informació més utilitzada de la memòria RAM, de tal manera que la CPU hi té un accés més ràpid que en comparació a la RAM. Avui dia també és normal veure diferents nivells de memòria cau en un processador. Habitualment la memòria cau de primer nivell, més ràpida i petita, sol estar situada dins de la CPU i la de segon nivell, menys ràpida però de més capacitat, en algun lloc no tan pròxim. Aquesta memòria és de tipus SRAM (Static Random Access Memory), la qual permet guardar un valor sense haver-lo de refrescar contínuament. D'aquesta manera també aconseguim un consum més baix dins de la CPU.
La memòria principal o RAM, com ja hem explicat, és la que té més capacitat de totes les primàries, però la seva velocitat és molt més lenta. Aquesta memòria està connectada directament o indirectament al processador a partir d'un bus, habitualment anomenat front-side bus. Aquest bus, realment, són dos busos, un de dades i un d'adreces. Per anar a buscar informació a la memòria RAM, primerament la CPU envia un número pel canal d'adreces de manera que la memòria RAM col·loqui la informació (guardada en la posició que diu el canal d'adreces) demanada al canal de dades i la CPU la pugui llegir.