Memòria d'ordinador

De Viquipèdia
Dreceres ràpides: navegació, cerca
Diferents mòduls de memòria RAM

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 del maquinari d'un ordinador.

Actualment, quan es parla de memòria a seques ens referim a la memòria RAM, un tipus de memòria basada en els semiconductors caracteritzada per un accés ràpid però d'emmagatzemament temporal. Igualment, quan parlem d'emmagatzemament normalment ens referim a dispositius d'emmagatzemament massiu, dispositius més lents que la memòria RAM 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[modifica | modifica el codi]

Segons la perdurabilitat de les dades[modifica | modifica el codi]

  • Volàtil: aquella que perd la seva informació quan no rep corrent elèctric. Normalment, són memòries basades en semiconductors (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).

Segons el tipus d'accés[modifica | modifica el codi]

  • Només lectura: ROM (Read Only Memory).
  • Lectura / escriptura: RAM (Random Acces Memory)

Segons el tipus d'ús[modifica | modifica el codi]

  • Primària o Principal: accés ràpid però emmagatzemament temporal, mitjançant elements electrònics semiconductors (xips) Memòria 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[modifica | modifica el codi]

  • 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 (RAM).

Història[modifica | modifica el codi]

Principals tecnologies usades;

Jerarquització[modifica | modifica el codi]

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:

Velocitat dels processadors i les memòries[modifica | modifica el codi]

La velocitat dels processadors és molt més gran que la velocitat de les memòries:

Processadors


Any Marca Velocitat nº accessos
/cicle
Amplada de banda mínim
per al màxim rendiment
1991 Alpha 21064 200 MHz 2.5 1.90 Gbytes /s
2000 Alpha 21264 600 MHz 5 11.44 Gbytes/s
2003 Pentium IV 3000 MHz 3.75 42.75 Gbytes/s


Memòries


Any Tipus
Memòria
Capacitat Freqüència
placa base
Amplada de banda ofert
per la memòria
2000 EDO DRAM 64 Mbit 66 MHz 203.4 Mbytes / s
2003 DDR DRAM IV 256 Mbit 200 MHz 813.8 Mbytes / s
La diferència entre les dues velocitats va en augment constant.

Propietats de les memòries[modifica | modifica el codi]

  • Velocitat
    • Latència: temps d'accés a memòria (el que es triga en 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...


Tipus de Memòria Capacitat Temps Accés Tecnologia Cost per Mbyte*
Registres 64 - 1024 bytes 0.3 - 1 ns --- ---
Memòria Cau 8 Kb - 2 Mb 1 - 5 ns SRAM 6.75 €
Memòria Principal 1 Mb - 4 Gb 10 - 30 ns DRAM 0.25 €
Memòria Secundària 10 - 300 Gb 10 - 50 ns Magnètica 0.00125€

(* Preus del 2002)

Propietats dels programes[modifica | modifica el codi]

  • 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[modifica | modifica el codi]

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.

Memòria primària[modifica | modifica el codi]

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.

Banc de registres[modifica | modifica el codi]

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[modifica | modifica el codi]

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

Funcionament[modifica | modifica el codi]

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.

Memòria cau[modifica | modifica el codi]

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.

Memòria principal[modifica | modifica el codi]

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.

Aquesta memòria és de tipus DRAM ( Dinamic Random Access Memory ). L'avantatge principal respecte a la SRAM és la seva simplicitat estructural: només es necessita un transistor i un condensador per cada bit, en comparació amb els sis transistors de l'SRAM. Aquest fet permet que la DRAM pugui assolir densitats molt grans.

Les memòries DRAM eren les primeres que s'utilitzaven i han anat evolucionant cap a les SDRAM ( Synchronous Dinamic Random Access Memory) que n'han millorat les prestacions inicials. Els últims tipus de memòries que han anat fent evolucionar les DRAM o SDRAM són les tecnologies DDR SDRAM ( Double Data Rate SDRAM ).

Memòria secundària[modifica | modifica el codi]

La memòria secundària, es distingeix de la primària en el sentit que no és directament accessible per la CPU. L’ordinador, normalment utilitza els canals d’entrada i sortida per accedir a la memòria secundària i transferir les dades a la memòria primària.

Una altra característica que diferencia la memòria secundària de la primària és que aquesta segona no perd les dades quan l’ordinador es para, ja que sol ser no volàtil. A part, el cost per unitat és molt menys costós que el de la primària i per tant fa que avui dia, els ordinadors disposin dels dos tipus de memòria, la secundària per guardar les dades i la primària per operar-hi

En la memòria secundària normalment s'hi guarden totes les dades i codi dels programes de l'ordinador que alhora de ser executats es carreguen parts d'elles a memòria primària per poder interaccionar amb la CPU que és imprescindible per poder executar-los.

Les memòries secundàries han donat lloc a diferents tipus de memòries, començant per les primeres ROM, PROM, EPROM fins a les EEPROM i a la memòria flaix que són les més utilitzades avui en dia i no només per memòries d'ordinadors sinó en més àmbits com les càmeres digitals en el cas de la memòria flaix.

Memòria ROM[modifica | modifica el codi]

Aquesta és una memòria no volàtil, cosa que fa que encara que es talli el subministrament elèctric, les dades continuïn intactes. Les dades emmagatzemades, com per exemple, el programari lligat al maquinari i la BIOS, no poden ser modificades, cosa que fa que les dades siguin bàsicament de lectura.

Els primers ordinadors venien amb els sistemes operatius a la ROM, però va ser a partir de l'any 2000 on trobem que els sistemes operatius deixen d'anar completament tots a la ROM (tret d'alguns programes) i passen a anar en memòries FLASH.

Alguns exemples de la utilització de la ROM, els trobem a les consoles, com per exemple: en la Super Nintendo, la Nintendo 46, la Sega Mega Drive o la Game Boy.

Una de les raons per continuar utilitzant la ROM és la seva velocitat.

Memòria Flash[modifica | modifica el codi]

Les memòries flash són de caràcter no volàtil, això és, la informació que emmagatzema no es perd quan es desconnecta del corrent, una característica molt valorada per a la multitud d'usos en els quals s'empra aquest tipus de memòria.

Els principals usos d'aquest tipus de memòries són petits dispositius basats en l'ús de bateries com telèfons cel·lulars o mòbils, assistents digitals personals (Personal Digital Assistant), petits electrodomèstics, càmeres de fotos digitals, reproductors portàtils d'àudio, etc.

Les capacitats d'emmagatzematge d'aquestes targetes que integren memòries flash van començar en 128 MB (128 MB) però actualment es poden trobar en el mercat targetes de fins a 32 GB (32 GB) per part de l'empresa Panasonic en format SD.

La velocitat de transferència d'aquestes targetes, igual que la capacitat de les mateixes, s'ha anat incrementant progressivament. La nova generació de targetes permetrà velocitats de fins a 30 MB/s.

El cost d'aquestes memòries és molt baix respecte a altre tipus de memòries similars com EEPROM i oferix rendiments i característiques molt superiors. Econòmicament parlant, el preu en el mercat ronda els 20 ? per a dispositius amb 4 GB d'emmagatzematge, encara que, evidentment, es poden trobar dispositius exclusivament d'emmagatzematge d'uns pocs MB per preus realment baixos, i de fins a 4000 ? per a la gamma més alta i de majors prestacions. No obstant això, el cost per MB en els discos durs són molt inferiors als quals oferix la memòria flash i, a més els discos durs tenen una capacitat molt superior a la de les memòries flash.

Oferixen, a més, característiques com gran resistència als cops, sota consum i és molt silenciós, ja que no conté ni actuadores mecànics ni parts mòbils. La seva petita grandària també és un factor determinant a l'hora d'escollir per a un dispositiu portàtil, així com la seva lleugeresa i versatilitat per a tots els usos cap als quals està orientat.

No obstant això, tots els tipus de memòria flash només permeten un nombre limitat d'escriptures i esborrats, generalment entre 10.000 i un milió, depenent de la cel·la, de la precisió del procés de fabricació i del voltatge necessari per al seu esborrat.

Aquest tipus de memòria està fabricat amb portes lògiques NOR i NAND per a emmagatzemar els 0?s o 1?s corresponents. Actualment (08-08-2005) hi ha una gran divisió entre els fabricants d'un tipus o altre, especialment a l'hora de triar un sistema d'arxius per a aquestes memòries. No obstant això es comencen a desenvolupar memòries basades en ORNAND.

Els sistemes d'arxius per a aquestes memòries estan en ple desenvolupament encara que ja en funcionament com per exemple JFFS originalment per a NOR, evolucionat a JFFS2 per a suportar a més NAND o YAFFS, ja en la seva segona versió, per a NAND. No obstant això, en la pràctica s'empra un sistema d'arxius FAT per compatibilitat, sobretot en les targetes de memòria extraíble.

Altra característica de recent aparició (30-9-2004) ha estat la resistència tèrmica d'alguns encapsulats de targetes de memòria orientades a les càmeres digitals de gamma alta. Això permet funcionar en condicions extremes de temperatura com deserts o glaceres, ja que el rang de temperatures suportat abasta des dels -25 °C fins als 85 °C.

Les aplicacions més habituals són[modifica | modifica el codi]

- El clauer USB que, a més de l'emmagatzematge, solen incloure altres serveis com ràdio FM, enregistrament de veu i, sobretot com reproductors portàtils de MP3 i altres formats d'àudio.

- Les PC Card

- Les targetes de memòria flash que són el substitut del rodet en la fotografia digital, ja que en les mateixes s'emmagatzemen les fotos.

Existeixen diversos estàndards d'encapsulats promocionats i fabricats per la majoria de les multinacionals dedicades a la producció de maquinari.

Funcionament[modifica | modifica el codi]

La memòria Flash, ja que és de tipus EEPROM, conté un arranjament de cel·les amb un transistor evolucionat amb dues portes en cada intersecció. Tradicionalment només emmagatzemen un bit d'informació. Les noves memòries flash, anomenades també dispositius de cel·les multi-nivell, poden emmagatzemar més d'un bit per cel·la variant el nombre d'electrons que emmagatzemen.

Aquestes memòries estan basades en el transistor FAMOS (Floating Gate Avalanche-Injection Metall Oxide Semiconductor) que és, essencialment, un transistor NMOS amb un conductor (basat en un òxid metàl·lic) addicional entre la porta de control (CG → Control Gate) i els terminals font/drenador continguts en una altra porta (FG → Floating Gate), que envolta a aquesta porta FG i és qui conté els electrons que emmagatzemen la informació.

Memòria flash de tipus NOR[modifica | modifica el codi]

En les memòries flash de tipus NOR, quan els electrons es troben en FG, modifiquen (pràcticament anul·len) el camp elèctric que generaria CG en cas d'estar actiu. D'aquesta forma, depenent de si la cel·la està a 1 o a 0, el camp elèctric de la cel·la existeix o no. Llavors, quan es llegix la cel·la posant un determinat voltatge en CG, el corrent elèctric fluïx o no en funció del voltatge emmagatzemat en la cel·la. La presència/absència de corrent es detecta i interpreta com un 1 o un 0, reproduint així la dada emmagatzemada. En els dispositius de cel·la multi-nivell, es detecta la intensitat del corrent per a controlar el nombre d'electrons emmagatzemats en FG i interpretar-los adequadament.

Per a programar una cel·la de tipus NOR (assignar un valor determinat) es permet el pas del corrent des del terminal font al terminal albelló, llavors es col·loca en CG un voltatge alt per a absorbir els electrons i retenir-los en el camp elèctric que genera. Aquest procés es diu hot-electró injection. Per a esborrar (posar a ?1?, l'estat natural del transistor) el contingut d'una cel·la, expulsar aquests electrons, s'empra la tècnica de Fowler-Nordheim tunnelling, un procés de tunelatge mecànic ? quàntic. Això és, aplicar un voltatge invers bastant alt a l'empleat per a atreure els electrons, convertint al transistor en una pistola d'electrons que permet, obrint el terminal albelló, que els electrons abandonin el mateix. Aquest procés és el qual provoca la deterioració de les cel·les, a l'aplicar sobre un conductor tan prim un voltatge tan alt.

És necessari destacar que les memòries flash estan subdividides en blocs (a vegades anomenats sectors) i per tant, per a l'esborrat, es netegen blocs sencers per a agilitar el procés, ja que és la part més lenta del procés. Per aquesta raó, les memòries flash són molt més ràpides que les EEPROM convencionals, ja que esborren byte a byte. No obstant això, per a reescriure una dada és necessari netejar el bloc primer per a després reescriure el seu contingut.

Memòries flash de tipus NAND[modifica | modifica el codi]

Les memòries flash basades en portes lògiques NAND funcionen de forma lleugerament diferent: usen un túnel d'injecció per a l'escriptura. Les memòries basades en NAND tenen, a més de l'evident base en altre tipus de portes, un cost bastant inferior, unes deu vegades de més resistència a les operacions però només permeten accés seqüencial (més orientat a dispositius d'emmagatzematge massiu), enfront de les memòries flash basades en NOR que permeten lectura d'accés aleatori. No obstant això, han estat les NAND les que han permès l'expansió d'aquest tipus de memòria, ja que el mecanisme d'esborrat és més senzill (encara que també s'esborri per blocs) fet que ha proporcionat una base més rendible per a la creació de dispositius de tipus targeta de memòria. Les populars memòries USB o també anomenades Pendrives, utilitzen memòries flash de tipus NAND.

Comparança de memòries flash basades en NOR i NAND[modifica | modifica el codi]

Per a comparar aquests tipus de memòria es consideren els diferents aspectes de les memòries tradicionalment valorats.

- La densitat d'emmagatzematge dels xips és actualment bastant major en les memòries tipus NAND.

- El cost de les de tipus NOR és molt major.

- L'accés del tipus NOR és aleatori per a lectura i orientat a blocs per a la seva modificació. En canvi, el tipus NAND oferix tan sols accés directe per als blocs i lectura seqüencial dintre dels mateixos.

- En l'escriptura del tipus NOR podem arribar a modificar un sol bit. Això destaca amb la limitada reprogramació de les NAND que han de modificar blocs o paraules completes.

- La velocitat de lectura és molt superior en el tipus NOR (50-100 ns) enfront del tipus NAND (10 µs de la recerca de la pàgina + 50 ns per byte).

- La velocitat d'escriptura per al tipus NOR és de 5 µs per byte enfront de 200 µs per pàgina en el tipus NAND.

- La velocitat d'esborrat per al tipus NOR és de 1 s per bloc de 64 KB enfront dels 2 ms per bloc de 16 KB en el tipus NAND.

- La fiabilitat dels dispositius basats en el tipus NOR és realment molt alta, és relativament immune a la corrupció de dades i tampoc té blocs erronis enfront de l'escassa fiabilitat dels sistemes tipus NAND que requereixen correcció de dades i existeix la possibilitat que quedin blocs marcats com erronis i inservibles.

En resum, els sistemes basats en el tipus NAND són més barats i ràpids però manquen d'una fiabilitat que els faci eficients, el que demostra la necessitat imperiosa d'un bon sistema d'arxius. Depenent de què sigui el que es busqui, valdrà la pena decantar-se per un o altre tipus.

Apunts[modifica | modifica el codi]

Conceptes Bàsics de memòria principal. La memòria principal és una matriu lineal de bytes.

byte M[MemSize]

La memòria rep dues operacions bàsiques:

lectura : M[adreça] → dada
escriptura : dada → M[adreça]

La memòria sempre s'adreça a escala de byte. Els accessos són a múltiples mides: 1, 2, 4, 8 bytes. Les disposicions little endian i big endian distingeixen les 2 maneres possibles d'agafar la informació. Per exemple, si tenim la següent porció de memòria:

Adreça 0x200 0x201 0x202 0x203 0x204 0x205 0x206 0x207 0x208 0x209 0x20A 0x20B 0x20C
Contingut 0x34 0xA1 0xFF 0x00 0x8D 0x01 0xAE 0x00 0x00 0xE0 0x12 0xFF 0xF4


------------------------------------------------------------------------------------------------
| Adreça | Mida | Contingut |
| | |--------------------------------------------------------------------------
| | | Little endian | Big endian |
------------------------------------------------------------------------------------------------ 
| 0x200 | byte | 0x34 | 0x34 |
------------------------------------------------------------------------------------------------
| 0x20B | byte | 0xFF | 0xFF |
------------------------------------------------------------------------------------------------
| 0x207 | word | 0x00AE | 0x0000 |
------------------------------------------------------------------------------------------------
| 0x20B | word | 0xFF12 | 0xFFF4 |
------------------------------------------------------------------------------------------------
| 0x209 |longword| 0xAE0000E0 | 0xe012FFF4 |
------------------------------------------------------------------------------------------------

Vegeu també[modifica | modifica el codi]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: Memòria d'ordinador