subsistemul memoriei

14
Subsistemul memoriei 1.3.1 Cache-ul L2 si memoria Dispozitivele calculatorului folosite pentru a stoca date se numesc memorii. Exista 2 tipuri de baza de memorii: interna si externa. Memoria interna (numita si memorie de stocare primara) pastreaza datele temporar, doar pe timpul functionarii calculatorului, pe când cea externa o pastreaza pe termen lung, inclusiv pe timpul nefunctionarii calculatorului. Totusi, printr-un oarecare abuz de limbaj, în mediul tehnologiei informatiei termenul de memorie desemneaza memoria interna, si va fi referita de acest capitol. Memoria externa (memorie de stocare secundara), sinonima uneori cu termenul de disk, va fi studiata în capitolul numit subsistemul disk- urilor. Contine: ROM, memorie flash, dispozitive de stocare magnetica (hard disk- uri, floppy disk si banda magnetica), disk-uri optice (CD-ROM, DVD-ROM), ca si metode timpurii de stocare ca banda perforata si cartele perforate. Memoria se mai clasifica si din punct de vedere al accesului la date: în memorie RAM(Random Access Memory - memorie cu acces secvential) în care datele pot fi accesate în orice ordine si în memorie cu acces secvential, cum ar fi dispozitivele de stocare pe banda, disk-urile unde miscarea mecanica forteaza mediile de stocare sa acceseze datele într-o ordine fixata. Memoria RAM poate fi atât citita, cât si scrisa, fiind numita si memorie de scriere/citire, opusa uneori memoriei ROM, care poate fi doar citita (însa, daca luam în considerare definitia, memoria ROM, sub forma de chip [cip], este tot de tip RAM).

Upload: phillip-cummings

Post on 15-Apr-2016

221 views

Category:

Documents


0 download

DESCRIPTION

Subsistemul memoriei

TRANSCRIPT

Page 1: Subsistemul memoriei

Subsistemul memoriei

1.3.1 Cache-ul L2 si memoria

Dispozitivele calculatorului folosite pentru a stoca date se numesc memorii. Exista 2 tipuri de baza de memorii: interna si externa. Memoria interna (numita si memorie de stocare primara) pastreaza datele temporar, doar pe timpul functionarii calculatorului, pe când cea externa o pastreaza pe termen lung, inclusiv pe timpul nefunctionarii calculatorului. Totusi, printr-un oarecare abuz de limbaj, în mediul tehnologiei informatiei termenul de memorie desemneaza memoria interna, si va fi referita de acest capitol. Memoria externa (memorie de stocare secundara), sinonima uneori cu termenul de disk, va fi studiata în capitolul numit subsistemul disk-urilor. Contine: ROM, memorie flash, dispozitive de stocare magnetica (hard disk-uri, floppy disk si banda magnetica), disk-uri optice (CD-ROM, DVD-ROM), ca si metode timpurii de stocare ca banda perforata si cartele  perforate.

Memoria se mai clasifica si din punct de vedere al accesului la date: în memorie RAM(Random Access Memory - memorie cu acces secvential) în care datele pot fi accesate în orice ordine si în memorie cu acces secvential, cum ar fi dispozitivele de stocare pe banda, disk-urile unde miscarea mecanica forteaza mediile de stocare sa acceseze datele într-o ordine fixata. Memoria RAM poate fi atât citita, cât si scrisa, fiind numita si memorie de scriere/citire, opusa uneori memoriei ROM, care poate fi doar citita (însa, daca luam în considerare definitia, memoria ROM, sub forma de chip [cip], este tot de tip RAM).

Termenul de memorie RAM se prescurteaza de multe ori la memorie si, de aceea, în acest capitol ne vom referi la aceasta.

Toate subsistemele ce stocheaza date temporare contin memorie.

Memoria principala - numita si memorie de baza, memorie sistem, RAM de sistem, memorie (pur si simplu) sau DRAM.

- Stocheaza datele si instructiunile pe care le utilizeaza procesorul. Aceasta permite procesorului sa acceseze datele si instructiunile rapid (în comparatie cu preluarea lor de pe disk sau CD-ROM)

Page 2: Subsistemul memoriei

- Continutul memoriei si al cache-ului L2 se pierd atunci când calculatorul este stins.

- Memoria este localizata pe bus-ul local (numit uneori bus de memorie, bus sistem, bus host (gazda) procesor sau frontside bus).

- Memoria este dirijata de un controller de memorie care manevreaza tot 333f51d traficul înspre si dinspre memorie.

- Performanta memoriei este masurata de obicei prin latenta (timpul de la începutul unui acces pâna la începutul efectiv al transferului) si largimea de banda / bandwidth (vârful sau media de transfer de date).

Arhitectura procesoarelor permite totdeauna un anumit numar de cicluri de ceas pentru a citi sau scrie informatie din / în memoria sistem. Daca design-ul sistemului permite ca operatia sa fie completata în intervalul dat de cicluri, aceasta se numeste stare de asteptare zero. Daca pentru un anumit motiv operatiunea nu se termina procesorul trebuie sa astepte inserând stari suplimentare în operatia de baza. Acestea sunt numite stari de asteptare care sunt întotdeauna un multiplu de cicluri de ceas. Un DRAM cu timpul de acces de 60ns nu e suficient pentru a permite un timp de asteptare 0 al procesorului, însa o memorie SRAM cu timp de acces de 10ns poate tine pasul cu procesorul, însa e prea scumpa pentru a fi implementata ca memorie sistem. Problema e ca cu fiecare noua generatie de procesoare care e mai rapida e din ce în ce mai scump de încorporat memorie care sa aiba un design ce permite stare de asteptare zero. O problema de baza pe care designer-ii trebuie sa o rezolve este ca timpul de acces scade pe când preturile cresc.

Cercetarile au aratat ca atunci când un sistem utilizeaza niste date, probabil ca le va utiliza din nou. Cu cât accesul la aceste date e mai rapid cu atât mai repede va opera întregul sistem.Memoria cache este un buffer de memorie care foloseste pentru stocarea temporara a datelor si instructiunilor obtinute din memoria de baza, mai lenta. Ea utilizeaza RAM static (SRAM  ce foloseste un flip-flop / bistabil ca circuit primar) si e mult mai rapida decât RAM-ul dinamic (DRAM ce foloseste un capacitor) utilizat pentru memoria sistem (de obicei de 5 pâna la 10 ori mai rapida). Totusi SRAM-ul e mai scump si consuma mai multa energie si de aceea nu e utilizat pentru memoria principala.

Cache-ul L2 reduce numarul de cicluri necesare pentru un acces la memorie fiind implementata cu SRAM rapid. Când procesorul trebuie sa efectueze accesari de citire a memoriei externe, controller-ul de cache încarca bytes-ii în plus si îi încarca în L2. Când procesorul are nevoie de urmatoarele date e foarte probabil ca acestea sa fie deja în cache-ul L2. În acest caz performanta procesorului creste; daca nu, pierderea e minima.

Cache-ul L2 este rentabil fiindca este relativ mic în comparatie cu cantitatea de memorie de baza.

1.3.2 Definitii si abrevieri ale termenilor relativi la memorie

ROM - Read Only Memory (Memorie Doar Citire); pe carduri adaptoare sau pentru BIOS; utilizat pentru a stoca cod de boot, diagnostice power-on (componente conectate) si cod specific unei componente (device). Dupa cum spune si denumirea ROM-ul nu poate fi utilizat pentru scrieri. Din punct de vedere tehnic, ROM poate fi accesat întâmplator (oriunde), deci ROM-ul este tot un fel de RAM.

RAM - Random Access Memory (memorie cu acces întâmplator / în orice loc). Termenul de întâmplator vine de la faptul ca CPU poate prelua date din orice locatie / adresa din memorie (neliniar). Memoria de baza a unui PC este denumita RAM. RAM-ul poate fi utilizat atât pentru citiri cât si pentru scrieri.

Memorie virtuala - utilizeaza hard-disk-ul ca memorie. Aceasta functie este partial hardware (toate procesoarele începând cu 386 o suporta) si partial în sistemul de operare. Permite adreselor sa ia valori pâna la maximul logic posibil - 4 GB, de exemplu - cu toate ca masina nu are instalata aceasta cantitate de memorie. Managerul de memorie pagineaza programele si datele înauntrul si în afara memoriei de baza dintr-un fisier de pe disk numit swapper. Toate sistemele de operare majore pun la dispozitie mecanismul memoriei virtuale.

Memoria flash - îsi pastreaza tensiunea astfel încât îsi pastreaza continutul când e deconectata. Datele pot fi sterse doar în blocuri (ca de exemplu de 64KB) când datele necesita a fi modificate. E limitata la 100000 pâna 1000000 de scrieri (depinzând de design si precizia de fabricare); e utilizata pentru aplicatii si stocare de catre sistemul de operare (nu fisiere cu date). Are o viata limitata pentru scrieri si una nelimitata pentru citiri. Citirile sunt rapide (150-200ns fata de 10-50ns pentru RAM), dar scrierile sunt mai lente decât cele pe hard-disk.

E folosita pentru a stoca BIOS pe placile de baza si pe anumite carduri PC (utilizate în special la notebook-uri; memorie PCMCIA). Aceste carduri PCMCIA nu necesita o baterie (ca si cardurile PCMCIA bazate pe S-RAM), iar

Page 3: Subsistemul memoriei

continuturile sunt mereu stocate în memorie chiar fara o baterie sau încarcatura electrica. Cu toate ca sunt numite carduri de memorie ele reprezinta de fapt un disk separat (cu litera asociata) si nu pot fi utilizate pentru memoria sistem sau a aplicatiilor.

- a aparut în 1998 un tip special de memorie flash, portabila - memory stick-ul ce se conecteaza la portul USB si are capacitati de pâna la 512 MB sau 1 GB în mod curent, dar teoretic pâna la 32 GB.

EEPROM (Electronically Erasable Programmable ROM - ROM ce poate fi sters electronic si programabil) - termenul se refera de obicei la memoria flash.

CMOS (Complementary Metal Oxide Semiconductor) - acest tip de memorie e deseori folosit pentru a stoca parametrii de configurare ai adaptoarelor si ai sistemului. Foloseste memorie RAM. Necesita putina energie, dar îsi pierde continutul atunci când e deconectata. Se utilizeaza o baterie pentru a furniza energie acestui tip de memorie astfel încât continutul acesteia sa nu se piarda atunci când sistemul este închis.

DRAM - RAM dinamic

SRAM - RAM static

NVRAM - RAM nevolatil. E un tip de chip de memorie care nu-si pierde continutul atunci când alimentarea e întrerupta. NVRAM e folosit în computere, router-e si alte dispozitive electronice pentru a stoca setari. Astazi, NVRAM-ul este, de obicei, memorie Flash, utilizata în principal la celulare si mp3 player-e portabileP3 players bazate pe diverse tehnologii. Memoria non-volatila include ROM, memoria flash, dispozitivele de stocare magnetica, optica si metode de stocare promitive. Memoria nevolatila este utilizata de obicei pentru stocare secundara. Stocarea primara utilizeaza o forma de RAM volatil, ceea ce înseamna ca la închiderea sistemului întreg continutul RAM-ului e pierdut. Din pacate, cele mai multe forme de NVRAM au limitarile lor ceea ce le face nepotrivite pentru memoria interna. De obicei NVRAM costa mai mult sau are performante mai scazute decât RAM-ul volatil.  Câteva companii lucreaza la dezvoltarea de sisteme de memorie nevolatile comparabile în viteza si capacitate cu RAM-ul. De exemplu IBM dezvolta MRAM (Magnetic RAM). Aceasta tehnologie, nu doar va economisi energie, ci va permite calculatoarelor sa fie aprinse si stinse prin apasarea unui buton, ocolind secventa lenta de pornire (start-up). Memoria nevolatila, va elimina, probabil, nevoia de sisteme de memorie externa lente, cum ar fi hard-disk-urile.

VRAM - RAM video

SDRAM - DRAM sincron

DDRAM (Double Data Rate SDRAM) - DRAM cu rata de transfer dubla

1.3.3 Packaging (capsule) pentru memorie

- Dual In-line Package (DIP) - chip traditional "tip gâza" cu 8, 14, 24, 40 sau mai multe picioruse de metal (împartite în mod egal între partile dreapta si stânga). Se instaleaza în orificii din suprafata unei placi cu circuite. DIP-urile pot fi instalate în socket-uri speciale sau sudate (îmbinate prin lipire).

- Single In-line Package (SIP) - chip asamblat astfel încât "piciorusele" conectoare sunt amplasate în linie dreapta.

- Zigzag In-line Package (ZIP) - similar cu SIP fiecare pin conector fiind usor înclinat creându-se astfel un model în zigzag.

- Single In-line Memory Module (SIMM) si Dual In-line Memory Module (DIMM) - circuite logice individuale instalate pe propria lor mica placa de circuite. Aranjamentul fizic faciliteaza ca instalarea si înlocuirea sa fie simple.

- Circuite integrate (Integrated Circuits, IC) - memorie într-un card asemanator cu PCMCIA ce se conformeaza standardelor JEDEC

- Small Outline J-Lead (SOJ) - o forma comuna de DRAM montat pe suprafata; o capsula dreptunghiulara cu conectori de forma literei J pe partile mai lungi ale capsulei.

Page 4: Subsistemul memoriei

- Thin Small Outline Package (TSOP) - o capsula de DRAM cu conectori de forma ondulata pe ambele parti. Are grosimea la o treime din grosimea standard a capsulei SOJ. E folosita pentru SO-DIMM-uri sau PC-Carduri.

1.3.4 Dinamic Random Access Memory (DRAM)

Este utilizata pentru memoria de baza, memoria video, controller-e de disk si disk-uri

DRAM-ul trebuie împrospatat constant ceea ce impune întârzieri între accese astfel încât încarcaturile sa se stabilizeze. Memoria poate fi accesata doar atunci când nu este reîmprospatata (refreshed).

Refresh (reîmprospatare) - încarcarea continua a unui dispozitiv ce nu-si poate pastra continutul.

Un parametru masurabil important pentru memorie este timpul de acces care reprezinta diferenta de timp dintre momentul când procesorul trimite o instructiune de citire a datelor de la o anumita adresa din memorie si momentul când procesorul primeste aceste date.

Perioade de acces la DRAM: 50 - 150 ns (fata de SRAM care are în jur de 10 ns). SRAM.

Accesul normal la memorie: pre-încarcare, acces, post-încarcare.

Un chip DRAM consta dintr-o matrice de celule de memorie fiecare dintre ele continând un bit de informatie. O celula e formata dintr-un condensator (un circuit care retine o încarcatura electrica) si un tranzistor (ce se comporta ca un comutator). Pentru a selecta bit care se vrea a fi citit. Întâi o tensiune mica se aplica întregului rând (linie) selectând astfel toti bitii din acel rând apoi coloana corespunzatoare e aleasa. Acestea iau timp si deci o parte importanta din timpul de acces vine din selectarea bitilor.

Controller-ele de memorie "sparg" adresele de memorie (de obicei în format 32 biti) în RAS (Row Adress Strobe - esantion de adresa a rândului) si CAS (Column Adress Strobe - esantion de adresa a coloanei). La o operatiune de tranzactie în cascada (o singura adresa urmata de transferuri multiple de date) controller-ul efectueaza de fapt adresari RAS-CAS, CAS, CAS, CAS. Timpul de efectuare a acestora este masurat în cicli de ceas. CAS2 sau CAS3 înseamna 2, respectiv 3 cicli de ceas pentru CAS. Altii folosesc denumirea de CL(2, 3) (CAS Latency time) - mai corecta. Timpii de latenta apar sub forma (RAS+CAS)-CAS-CAS-CAS, de exemplu 5-3-3-3 ceea ce înseamna RAS=2 si CAS=3 (2+3=5).

Numarul de linii si numarul de coloane au de obicei valori apropiate. Valoarea lor este data si de capacitatea canalului de transfer al datelor. Termenul x4 semnifica 4 introduceri/extrageri de date. Asta semnifica faptul ca chip-ul de memorie are un canal de 4 bits. Daca e necesar transferul a 8 bits pe un singur chip x4 e nevoie de 8 transferuri (8x4=32).

Vânzatorii de DIMM-uri au început sa faca diferenta între module de rang 1 sau rang 2. De obicei asta înseamna ca DIMM-urile au chip-uri pe o parte sau pe ambele. Chip-urile registered (înregistrate oficial) sunt de tipul x4 sau x8. În cazul DIMM-urilor x4 vom avea o latime de 36 de biti pe fiecare parte (8+1 de paritate) iar controller-ul va avea nevoie de 72 de biti pentru a adresa ambele parti pentru a scrie sau citi. Astfel un modul x4 cu 2 parti va fi de rang 1. Pentru DIMM-urile registered x8 fiecare fata are o latime de 72 biti, de aceea controller-ul de memorie adreseaza doar o fata la un moment dat (cele cu 2 fete sunt de rang 2).

Memorie de x ns - aceasta marime este direct dependenta de frecventa maxima a bus-ului de sistem pe care o suporta memoria sau marimea minima a ciclului de ceas la care poate functiona. Formula de calcul este 1/frecventa memoriei. De exemplu o memorie care functioneaza la 200 MHz FSB este o memorie de 5ns (1/200MHz=1/200*106=5*10-9=5ns).

Un exemplu: Memoria KINGMAX DDR 466, IC: 32Mbx8 cu o singura fata (rang 1)

DDR 466 - frecventa maxima la care functioneaza

IC: 32Mbx8 - capacitatea fiecarui chip. Fiecare chip are un canal x8. În total vom avea canal x64 (8 chip-uri). Pe fiecare canal exista o capacitate de 32Mb ori 8 canale/chip = 256Mb pe chip ("densitate") ori 8 chipuri = 256 MB (capacitatea totala a memoriei)

Numar de linii si coloane: 13/10 ((210)13=102413=(10242)*23=8Mb ori 4 bankuri = 32Mb pe chip).

Page 5: Subsistemul memoriei

Rata de refresh este de ordinul milisecundelor (între 5 si 10 ms).

Voltajul este de 2.5v.

Lungimea "cascadei": 2, 4, 8 (date citite în succesiune).

1.3.5 Tipuri de DRAM

Fast Page Mode (FPM) - un rând din DRAM este pastrat "deschis" astfel încât citiri succesive sa nu sufere întârzierea datorata alegerii unui nou rând. Aceasta creste performanta sistemului la citiri în cascada. Se folosea pâna prin 1996.

Extended Data Out (EDO) - similara cu FPM cu facilitatea în plus ca un nou ciclu de acces poate fi deschis cu pastrarea celui vechi înca în functiune. Asta permite o oarecare doza de suprapunere de operatii (overlap, pipelining). Are performante cu 5% mai bune decât FPM pe care a început sa-l înlocuiasca începând din 1993.

Burst Extended Data Out (BEDO) - varianta evoluata de EDO. Poate procesa 4 adrese de memorie într-o singura cascada. Cu toate ca demonstra performante sensibil superioare EDO, piata s-a îndreptat spre SDRAM dezvoltat cam în aceeasi perioada.

Synchronous Dynamic RAM (SDRAM) - se deosebeste de DRAM-ul clasic prin faptul ca functioneaza pe baza ciclurilor de ceas pentru a actiona în virtutea schimbarii controlurilor. Asta permite chip-ului sa aiba o paleta de operatii mult mai complexa. Permite pipelining complex. A început sa fie folosita în 1997 si pâna în 2000 a înlocuit DRAM-ul clasic datorita performantelor superioare.

DDRAM - o dezvoltare ulterioara a SDRAM folosita începând cu 2000. Reactioneaza la ambele schimbari de tensiune din cadrul unui ciclu de ceas (de la tensiune înalta la tensiune scazuta si invers) spre diferenta de SDRAM clasic (care ca majoritatea circuitelor reactioneaza la tranzitia de la tensiune joasa la tensiune înalta ignorând cealalta tranzitie) înjumatatind astfel numarul de cicluri necesar efectuarii operatiilor. Tehnologia permite astfel si timpi CAS (latency) neîntregi (cu jumatati de ciclu) - 2,5 de exemplu. Standardul DDR evolueaza catre DDR2 si DDR-3 (care înca n-a fost standardizat înca).

DRDRAM (Direct Rambus DRAM) - numita si RDRAM este similara cu DDRAM, dar foloseste o metoda speciala de signaling (semnalizare) dezvoltata de compania Rambus si astfel viteze mai mari. Sistemele P4 timpurii contineau RDRAM, dar preturile au ramas mari astfel ca s-a mers în continuare pe DDRAM. Acest tip de memorie e folosit la Playstation 2 si va fi si la Playstation 3. Acest tip de memorie este implementata într-o capsula numita RIMM.

VRAM - este o versiune de DRAM cu 2 porturi folosita înainte pentru adaptoarele grafice, acum învechita si înlocuita cu SDRAM sau SGRAM. Un prim port este folosit ca DRAM-ul clasic pe când al doilea este doar de citire folosit pentru a furniza informatia catre ecran.

SGRAM - este forma de SDRAM specializata pentru adaptoare grafice. Adauga functii specializate ca bit masking (mascarea bitilor - scrierea pe un plan de biti fara a-i afecta pe ceilalti) si scriere în bloc (umplerea unui bloc de memorie cu o singura culoare).

PSRAM (Pseudostatic RAM) - DRAM cu refresh si control al adreselor încapsulat. Combina densitatea mare a DRAM-ului cu usurinta de folosire a SRAM-ului. Anumite componente ale DRAM-ului au refresh înglobat ceea ce permite sistemului sa suspende controller-ul de DRAM pentru a face economie de energie în modul stand-by.

WRAM - Window RAM

1.3.6 Dispozitive si tipuri de memorie folosite

Toate subsistemele calculatorului au nevoie de memorie pentru a-si stoca datele. Tabelul de mai jos ne arata tipul de memorie si arhitectura ei pentru fiecare dispozitiv.

Subsistem Tip ArhitecturaL2 cache SRAM Asincron sau sincron

Memorie sistem DRAM SDRAM, DDRAM, DRDRAM

Page 6: Subsistemul memoriei

Placi grafice DRAM SDRAM, DDRAM, VRAM, SGRAM, WRAM, DRDRAM

Controller de disk DRAM EDO, DDRAMDisk DRAM / Flash ?BIOS Flash EEPROM

1.3.7 Performante în raport cu capacitatea memoriei

Capacitatea memoriei reprezinta un factor important în performantele calculatorului. Dar performantele nu cresc în raport cu cresterea memoriei, cresterea performantelor fiind mai redusa decât cresterea aplicata cantitatii de memorie a sistemului (sa nu ne asteptam, de exemplu, ca la dublarea RAM-ului performantele sistemului sa se dubleze).

În continuare se va trata oportunitatea trecerii de la o memorie sistem de 1 GB la 2 GB comparatiile fiind realizate pe 2 sisteme.

Platforma AMD

- Procesor: AMD Athlon64 FX57

- Placa de baza: Asus A8NSLI Premium

- Placa video: Nvidia GeFORCE 6600GT

- Hard Disk: Western Digital Caviar 250GB SATAII

Sistemul a fost testat cu urmatoarele configuratii ale memoriei:

- testarea cu 1 GB memorie: o pereche de doua module a câte 512 MB fiecare. Frecventa memoriei a fost setata la 400 MHz cu o latenta setata la 2-3-2-6-1T.

- testare cu 2 GB memorie: o pereche de doua module a câte 1 GB fiecare. Frecventa memoriei a fost setata la 400 MHz cu o latenta de 2-3-2-6-1T.

Platforma Intel

- Procesor: Intel P4 540, 800MHz FSB, 3.2 GHz

- Placa de baza: Asus P5ND2-SLI

- Placa video: Nvidia GeFORCE 6600GT

- Hard Disk: Western Digital Raptor 36 GB

Sistemul a fost testat cu urmatoarele configuratii ale memoriei:

- testarea cu 1 GB memorie: o pereche de doua module a câte 512 MB fiecare. Frecventa memoriei a fost setata la 800 MHz cu o latenta setata la 5-5-5-12-2T.

- testare cu 2 GB memorie: o pereche de doua module a câte 1 GB fiecare. Frecventa memoriei a fost setata la 800 MHz cu o latenta de 5-5-5-12-2T.

Teste Benchmark

- SiSoft Sandra 2005

- Super Pi

Page 7: Subsistemul memoriei

- 3DMark 2001

- Doom 3 timedemo, demo1

- Battlefield 2 Flight Demo (800x600) si (1280x1024)

- Adobe Premier Effects, DVD Encoding

De când memoriile dual channel PC3200 au aparut pe piata în prima parte a anului 2002, 1 GB RAM a devenit standardul pentru computerele performante. Acest test arata ca pentru multe aplicatii 1 GB este înca punctul limita, oricare ar fi platforma computerului.

În orice caz, odata ce jocurile si aplicatiile continua sa evolueze ca întindere si complexitate, începem sa observam situatii semnificative unde mai multa memorie ofera beneficii convingatoare. În unele cazuri, un joc de referinta cu succes la public sparge gheata, de exemplu Battlefield 2. Probabil ca mult mai semnificativ, gheata este sparta de aplicatiile utilizate, una dintre ele fiind DVD encoding, care devine tot mai popular printre marea varietate a utilizatorilor casnici. Ne asteptam sa vedem aceasta tendinta continuând în urmatoarele luni, odata cu aparitia de noi jocuri, aplicatii si versiuni ale sistemelor de operare mult mai sofisticate.

Cresterea performantelor realizata în aplicatii real-world cum ar fi Battlefield 2 si Premier indica faptul ca generatia curenta de sisteme performante va avea multe beneficii de pe urma utilizarii memoriilor de 2 GB.

1.3.8 Memorie cu paritate si fara paritate

Pentru a evita erorile de date în memorie se poate folosi memoria cu paritate (parity memory) sau ECC. Memoria fara paritate nu permite detectarea sau corectarea erorilor.

În ultimii ani procesele de productie a memoriei DRAM s-au îmbunatatit substantial, sugerând astfel ca necesitatea paritatii ar trebui reevaluata. De exemplu, între DRAM-ul 16K din anii 1980 pâna la cel de 16MB din jurul lui 1995 fiabilitatea memoriei a crescut de 10000 de ori. De la primul PC s-a folosit memorie cu paritate. Utilizarea paritatii la aceste sisteme era critica datorita SER (Soft Error Rate - rata de erori software) a semiconductoarelor DRAM din acel timp. Aceste subsisteme de memorie puteau experimenta un SER la 60-70 de ore de operare pe când sistemele actuale întâmpina asa ceva la 12 pâna la 25 de ani sau chiar mai rar la sistemele din jurul lui 2000.

Page 8: Subsistemul memoriei

Paritatea e implementata adaugând un bit aditional de DRAM la fiecare 8 bits care retine daca numarul de biti 1 este par sau impar. Asta duce la o crestere a costurilor cu 10 pâna la 15%.

Datorita simplitatii sale paritatea este folosita în sistemele în care este posibila retransmiterea datelor - de exemplu bus-ul SCSI sau cache-ul procesorului. Daca se observa ca paritatea nu corespunde cu informatia efectiva se va determina retransmiterea informatiei. Nu se mai foloseste la memoria RAM.

Memoria fara paritate nu permite detectarea si corectarea erorilor. E cu 30% mai ieftina decât memoria cu paritate. A fost folosita o perioada de timp pe PC-uri.

Memoria cu paritate detecteaza erorile de 1 bit (sau 3 biti, în general un numar impar de biti) si opreste sistemul dupa detectare.

1.3.9 ECC

ECC = Error Checking and Correcting (verificare si corectare a erorilor) sau Error Correcting Code (cod de corectare a erorilor).

Cu toate ca ECC e utilizat ca un termen generic exista mai multe modalitati de implementare a ECC pentru memorii.

Verificarea erorilor are loc în DIMM-uri sau/si în controller-ul de memorie cu ECC cu ECC enabled. Functionarea ECC poate produce o degradare a performantei sistemului cu pâna la 10%. Corecteaza automat erorile de 1 bit (98% din total) ca si unele de 2 biti si descopera toate erorile de 2, 3 si 4 biti oprind sistemul în acest caz. ECC lucreaza asemanator cu paritatea generând biti aditionali de control, însa într-un numar diferit de cel pentru memoria cu paritate, în functie de "largimea" bus-ului de date: pentru 16, 32, 64, 128 bits se vor folosi 6, 7, 8, 9 biti pentru ECC respectiv 2, 4, 8, 16 biti pentru paritate. ECC îmbunatateste paritatea corectând erorile fara întreruperi sau pierdere a datelor.

Erorile de memorie se pot datora bombardamentului de particule alpha, beta sau gamma, sau deteriorarii DIMM-urilor pe parcursul timpului. Multe sisteme permit ca erorile de memorie sa fie logate. ECC se foloseste pe servere.

S-a calculat ca în cazul folosirii memoriei ECC caderile de sistem sunt de 2000 de ori mai rare decât în cazul memoriei cu paritate.

1.3.10 SIMM-uri si DIMM-uri

Memoria de baza este implementata de obicei cu SIMM-uri sau DIMM-uri.

SIMM

-        72 pini pe fiecare parte scurtati în perechi = 72 semnale

-        canal de date de 32 bits

-        utilizat în sisteme mai vechi

DIMM

-        72, 88, 144, 168 sau 200 pini toti independenti

-        canal de date de 64 biti

-        utilizat în sisteme actuale: desktop sau server

SO-DIMM (Small Outline DIMM)

Page 9: Subsistemul memoriei

-        72 pini (32 bit) sau 144, 200 pini (64 bit)

-        utilizat la laptop-uri

Tab - este contactul de pe un modul de memorie. IBM foloseste aur pentru acestea, dar ar putea fi si cositor. Mai este numit si pin sau contact.

Bank - un set de chip-uri de memorie accesate simultan. Un bank de memorie nu e neaparat o fata a unui SIMM/DIMM. Unele memorii sunt considerate ca fiind alcatuite dintr-un singur bank, dar au chip-uri pe ambele parti.

Bank mai semnifica si zona de pe placa de baza care contine slot-uri pentru module de memorie. Bank-urile sunt de obicei formate din doua fete, suportând astfel modulele de memorie cu o fata sau doua. Bank-urile sunt organizate în unitati reprezentând numarul minim de chip-uri ce trebuie sa lucreze în tandem.

SIMM - Tab-urile de pe fiecare parte pot citi acelasi semnal deoarece sunt "scurtate" împreuna. Acelasi semnal e duplicat pe ambele fete. Un SIMM de 72 pini are astfel 72x2=144 de conectori, dar doar 72 de semnale independente. Dar un DIMM cu 168 pini are tot atâtia conectori.

1.3.11 SRAM

Este utilizat de cache-ul L2.

Poate fi accesata oricând deoarece chip-urile RAM nu necesita refresh.

Viteze: între 4 si 20 ns. Aceasta viteza face ca cache-ul sa poata tine ritmul cu procesorul; altfel s-ar pierde un anumit numar de cicli de ceas ce l-ar încetini.

Este utilizat si în memoria flash la PCMCIA sau memory stick. Acestea se comporta identic cu partitiile de disk.

Implementari: sudata de placa de baza, SIMM, DIMM, DIP sau carduri PC.

Chip-urile SRAM utilizeaza între 4 si 6 tranzistoare pe când DRAM foloseste doar unul pe bit.

Este mai usor de încapsulat tranzistoare cu o densitate mai mare pe componente de memorie decât pe componente logice.

Celulele SRAM stocheaza valorile 0 si 1 fortând un tranzistor (comutator) sa fie deschis (1) sau închis (0). Odata ce bit-ul este stocat, comutatorul pastreaza starea de 0 sau 1 prin natura circuitului. E nevoie de un mare efort pentru a muta accidental comutatorul în starea opusa. De fapt aceasta se întâmpla asa de rar încât se poate presupune ca nu se întâmpla niciodata.

În comparatie, celula DRAM stocheaza 0 sau 1 prin cantitatea de electricitate stocata pe componenta numita condensator (capacitor). O analogie comuna descrie condensatorul ca o galeata iar încarcatura drept apa. Când galeata e plina ea reprezinta 1, când e goala reprezinta 0. Marea problema e ca galeata DRAM are o gaura în ea. Consecinta e ca o galeata plina devine cu timpul una goala. Adica 1 care a fost stocat acolo cu atâta atentie devine treptat 0. Pentru a împiedica asta DRAM-ul trebuie sa fie reîmprospatat (refreshed). Din când în când continutul fiecarei locatii de memorie trebuie verificat. Daca acolo este setat 0 locatia este lasata în pace; daca este setat 1 capacitorul este reîncarcat. Aceasta activitate de refresh trebuie sa se desfasoare regulat - suficient de des pentru a ne asigura ca ramâne suficienta sarcina electrica astfel încât un 1 sa fie recunoscut ca 1.

1.3.12 Memoria cache

Reprezinta un intermediar rapid între CPU si memorie (de baza) pentru a se evita accesul la memorie.

Cache-ul L1 e intern procesorului si functioneaza la frecventa interna (a procesorului).

Cache-ul L2 este actualmente intern (dar a fost si extern de-a lungul istoriei procesoarelor) si functioneaza la frecventa bus-ului sistem.

Page 10: Subsistemul memoriei

Cache-ul L1 permite procesorului sa citeasca instructiunile si datele mult mai rapid decât daca procesorul ar trebui sa acceseze memoria sistem. Prima data când instructiunile sunt utilizate sau datele sunt scrise ele sunt transferate din memoria de baza în cache. Aceasta permite ca accesul viitor la date si instructiuni sa fie mult mai rapid.

Dimensiunile cache-ului L1 sunt 8 KB sau 8 + 12 KB (Intel), 64 KB, 64 + 64 KB (AMD) iar ale cache-ului L2 sunt 256 KB, 512 KB, 1024 KB.

Cache-ul e încarcat din memoria sistem cu cantitati de informatie numite linii de cache (cache lines) sau datum de o marime între 8 si 512 bytes. O utilizare a unui singur byte din cache determina ca întreaga linie sa fie încarcata în cache (daca nu se afla deja acolo). Când procesorul preda controlul bus-ului sistem cache-ul intra în modul "snoop" (detectiv, copoi) si monitorizeaza toate operatiile de scriere. Daca anumite date din memorie sunt scrise în cache linia de cache respectiva e invalidata.

Când procesorul efectueaza o citire a memoriei adresa datei e utilizata pentru a cauta data în cache. Daca data e gasita (hit - lovitura, potrivire), e citita din cache si nu e folosit nici un ciclu din bus-ul extern. Daca data nu e gasita (miss - pierdere, nepotrivire) se utilizeaza cicluri ale bus-ul sistem pentru a citi data. Daca adresa datei lipsa se gaseste în spatiul cache-abil data este stocata în cache apoi se citeste restul liniei de cache.

Procesorul genereaza cereri de date mai repede decât poate memoria sistem sa le rezolve. Cache-ul contine mai multe componente care împreuna grabesc trimiterea datelor:

- Data cache RAM - cache-ul propriu-zis (date si instructiuni frecvent cerute de procesor)

- Tag RAM - acest director contine adresele din RAM ale datelor stocate în cache

- controller de cache - compara cererile procesorului cu adresele stocate în Tag RAM. Când se gaseste o potrivire datele sunt returnate CPU din cache RAM. Daca nu se gaseste potrivire cererea e data mai departe catre memoria de baza.

Cache Tags ("bucati" de cache) - fiecare linie de cache are un tag corespunzator care contine adresa de ordin înalt (de pagina) a datelor din linia cache ca si niste bits de stare care arata ce tip de date exista acolo si care e starea acelor date. Controller-ul de cache trebuie sa verifice daca informatia dorita se gaseste în cache si daca e valida pentru ca procesorul s-o poata utiliza.

30% din toate operatiile de memorie sunt de scriere (restul de citire). În privinta scrierii exista 2 tipuri de politici: write-through (scrie-prin) si write-back (scrie-înapoi).

WRITE-THROUGH - procesorul SCRIE datele PRIN cache în memorie (se scrie si în cache daca linia de cache e deja acolo). Efectul de caching e restrictionat doar la citirea memoriei.

WRITE-BACK - procesorul scrie catre cache si se întoarce catre urmatoarea instructiune. Cache-ul pastreaza datele write-back în cache si apoi le copiaza în memorie (în perioada de inactivitate a procesorului). Daca apare o nepotrivire (write miss) datele nu sunt pastrate în cache, ci doar scrise în memorie (ca si la write-through). Are performante mai bune decât write-through, dar e mai costisitoare. Performantele cresc cu aproximativ 10% fata de politica write-through.

S-a observat ca îmbunatatirea vitezei de executie a aplicatiilor creste cu pâna la 30% datorita prezentei memoriei cache (la nivelul procesoarelor PII de exemplu, 256KB de cache cresc cu 20-30%). Rata de potrivire (hit rate) nu creste proportional cu marimea cache-ului. si performantele sistemelor cresc invers proportional cu frecventa procesorului (ex.: de la 256 la 512KB cache L2 creste performantele cu 4% la Pentium 166MHz si 7% la Pentium 133MHz)

1.3.13 Memory Interleaving (alternare/întretesere a memoriei)

Este o tehnica utilizata pentru a reduce timpul efectiv de acces al memoriei. Aceasta tehnica creste mult latimea de banda a memoriei când accesul la memorie e secvential, de exemplu atunci la furnizarile de instructiuni program.

Exemplu: 2 blocuri de memorie (64 bits fiecare) adresate separat, dar combinate într-un transfer de 128 bits.

Page 11: Subsistemul memoriei

Pre-încarcare acces Post-încarcare

Acces normal la memorie

pre 64 bit postpre 64 bit Post

                        = transfer de 128 bits

Interleaving Two Way (doua cai)

Accesele la memorie sunt sincronizate astfel încât pe masura ce controller-ul citeste/scrie (de) pe bank-ul 1 adresa urmatorului cuvânt este prezentata bank-ului 2. Aceasta da bank-ului 2 un avantaj fata de procesul normal. Analog, când bank-ul 2 e citit bank-ul 1 furnizeaza/stocheaza urmatorul cuvânt.

Alternarea e o metoda folosita pentru a suprapune accesele secventiale si a evita asteptarea ca un modul de memorie sa revina pentru a fi accesat din nou.

Problema va fi ca trebuie ocupate mai multe slot-uri de memorie pentru ca acest procedeu sa functioneze, ceea ce va creste costul upgrade-ului de memorie.

pre 64 bit PostPre 64 bit Post

pre 64 bit postPre 64 bit post

                  = 256 bits

Four Way Memory Interleaving

1.3.14 Producatori de memorieCorsair Memory http://www.corsairmemory.com/Crucial Technology http://www.crucial.com/Hynix http://www.hynix.com/Infineon Technologies http://www.infineon.com/Kingston Technologies http://www.kingston.com/Micron Technology www.micron.comOCZ Technology www.ocztechnology.comRambus www.rambus.comSamsung www.samsung.com/Products/Semiconductor/Memory/index.htm

64 bit 64 bit

64 bit 64 bit 64 bit 64 bit