sâmbătă, 1 martie 2014

Ce trebuie să știm despre memoriile RAM

Tipuri de module de memorie

În ziua de azi dacă-ți iei un calculator din prima linie a ofertei magazinelor de profil, în mod sigur va avea memorii DDR3, care la ora actuală sunt cele mai moderne. Dacă nu, atunci îți poți lua și un calculator cu memorii de generație mai veche (DDR2) iar dacă ai acasă un calculator cu ceva ani buni vechime atunci probabil ai în el memorii DDR (DDR1).

Aspecte comune

Să vedem întâi ce au ele în comun:
  • Toate sunt realizate sub formă de module de memorie DIMM» având o dimensiune standard. Există și un format de dimensiuni reduse numit SODIMM – cam jumătate din dimensiunea unui DIMM obișnuit.
  • Toate memoriile DDR (1, 2, 3) realizează câte un transfer de date pe frontul crescător al impulsului de tact și un alt transfer pe frontul descrescător al impulsului de tact, deci două transferuri de date pentru fiecare impuls de tact (de aici denumirea DDR = Double Data Rate).

Deosebiri

Și acum să urmărim diferențele între memoriile DDR, DDR2 și DDR3, în primul rând pe cele fizice:
  • Numărul de pini: DDR – 184 pini, DDR2 – 240 pini, DDR3 – 240 pini (comparativ cu cei 168 pini ai bătrânelor module SDRAM (fără DDR));
  • Pozițiile cheilor» : anticele module SDRAM (cele fără DDR) sunt singurele care au două astfel de chei, modulele mai noi DDR, DDR2 respectiv DDR3 având câte o singură cheie în poziții care diferă, după cum se poate vedea în imaginea alăturată.
În plus, între tipurile de memorie prezentate mai există următoarele diferențe:
  • Frecvențele impulsului de tact (clock) al memoriei și tensiunile de alimentare:
    Tip memorieFrecvențăTensiune de alimentare
    DDR SDRAM100–200 MHz2.5/2.6 V
    DDR2 SDRAM200–533 MHz1.8 V
    DDR3 SDRAM400–800 MHz1.5 V
  • Memoriile DDR2 multiplică bus clock-ul (clock-ul magistralei) cu 2, rezultând un clock al memoriei de frecvență dublă față de bus clock, iar memoriile DDR3 multiplică bus clock-ul cu 4, rezultând un clock al memoriei cu frecvență de patru ori mai mare față de bus clock, în timp ce la mai vechile memorii DDR clock-ul memoriei este nemodificat, rămânând identic cu bus clock-ul.
  • Rata de transfer, transfer rate – exprimată în MT/s (megatransferuri pe secundă), și lărgimea de bandă, bandwidth – exprimată în MB/s (megabytes pe secundă) care se pot atinge sunt:
    Standard nameBus clock (MHz)Memory clock (MHz)Transfer rate
    (MT/s)
    Module nameBandwidth (MB/s)
    DDR-200100100200PC-16001600
    DDR-266133133266PC-21002100
    DDR-333166166333PC-27002700
    DDR-400200200400PC-32003200
    DDR2-400100200400PC2-32003200
    DDR2-533133266533PC2-4200
    PC2-4300
    4266
    DDR2-667166333667PC2-5300
    PC2-5400
    5333
    DDR2-800200400800PC2-64006400
    DDR2-10662665331066PC2-8500
    PC2-8600
    8533
    DDR3-800100400800PC3-64003200
    DDR3-10661335331066PC3-85008533
    DDR3-13331666661333PC3-1060010667
    DDR3-16002008001600PC3-1280012800
    DDR3-1800*2259001800PC3-1440014400
    DDR3-2000*25010002000PC3-1600016000
    DDR3-2200*27511002200PC3-1760017600
    * – memorii care nu figurează în specificațiile standard JEDEC» , viteza lor superioară putând fi valorificată în măsura în care placa de bază poate face overclocking» la memoria RAM. Nici tipul DDR2-1066 nu a fost specificat inițial în standardele JEDEC, el fiind standardizat ulterior.
    Există și alte memorii non-standard DDR3 până la 2800 MT/s și toate funcționează pe baza overclocking-ului impus de placa de bază (dacă ea permite acest lucru).
    Memoriile RAM rapide sunt prevăzute în mod obișnuit cu un radiator metalic ce îmbracă circuitele de memorie în scopul de a disipa excesul de căldură.

Caracteristici

Principalele caracteristici ale memoriilor DDR SDRAM, DDR2 SDRAM și DDR3 SDRAM sunt următoarele:

Capacitate

Este exprimată în MB (megabytes) sau GB (gigabytes). Valori tipice: 256M, 512M, 1GB, 2GB, 4GB.

ECC (error correcting code)

Modulele pot avea sau nu facilitatea ECC, facilitate care, cu ajutorul unor circuite suplimentare aflate pe modulul de memorie, oferă o imunitate sporită împotriva alterării valorii unor biți de informație din cadrul modulului ca urmare a interferențelor electromagnetice. Acest lucru este posibil prin memorarea în circuitele ECC a unor informații redundante corespunzătoare valorilor curente din memorie, informații pe baza cărora să poată fi reconstituite eventualele erori survenite în conținutul memoriei (cu condiția ca numărul biților alterați să nu depășească o anumită valoare).

Latență

Poate te-ai întrebat ce reprezintă un șir de numere de forma 5-5-5-15 inscripționat pe un modul de memorie. Este vorba despre latența memoriei, exprimată sub forma a patru intervale de timp care caracterizează funcționarea memoriei SDRAM. Discutând aici despre memorii RAM sincrone, acești timpi se exprimă în număr de cicli ai tactului memoriei. E vorba aici de memory clock, deci clock-ul cu frecvența egală cu jumătate din valoarea care apare în denumirea modulului (ex. DDR2-800 => 400MHz).
Cei patru timpi sunt notați CL-tRCD-tRP-tRAS și ca să-i înțelegem e nevoie să aruncăm întâi o privire asupra modului în care este accesată o anumită locație din memorie, operație realizată prin activarea unor comenzi specifice (sub formă de semnale electrice).
Memoria este organizată intern cam ca o foaie de calcul din Excel, cu rânduri și coloane. Pentru adresarea unei locații de memorie aflate la intersecția unui rând cu o coloană mai întâi se activează întregul rând, cu ajutorul semnalului RAS (Row Address Strobe). Timpul necesar activării rândului se numește tRCD (RAS-to-CAS Delay). Rândul fiind acum activat, în continuare trebuie activată coloana, cu ajutorul semnalului CAS (Column Address Strobe). Timpul necesar activării coloanei se numește CL (CAS Latency sau CAS Delay). CL se mai notează și tCAS.
Memoriile sincrone permit ca pe rândul selectat să se activeze una după alta, la fiecare front al impulsului de tact, mai multe coloane în secvență (fenomenul de numește pipelining), fără să fie nevoie ca înaintea următorului acces să se aștepte finalizarea accesării locației de memorie de pe coloana curentă (care poate dura mai multe impulsuri de tact). Astfel, accesarea în secvență a unor locații de memorie aflate pe același rând se desfășoară mult mai rapid față de varianta în care fiecare nou acces trebuie să aștepte finalizarea accesului anterior.
Dacă la un moment dat se dorește accesarea unei locații de memorie aflate pe un alt rând trebuie mai întâi încheiat accesul la rândul curent, operație care durează tRP (RAS Precharge Time) impulsuri de tact.
Timpul minim cât semnalul RAS rămâne activat (adică de la inițierea activării rândului dorit și până la finalizarea accesării rândului (etapa Row Precharge) se numește tRAS (Active to Precharge Delay). tRAS are valoarea cea mai mare, el neputând fi mai mic decât suma timpilor necesari activării rândului (tRCD) și coloanei (CL).
Toți acești timpi reprezentând intervale în care se așteaptă ceva, este bine ca ei să fie cât mai mici pentru o performanță optimă.
Pentru o mai bună înțelegere a acestor patru timpi redau mai jos o reprezentare grafică de unde rezultă modul cum este definit fiecare dintre ei. Mai precizez că timpul CL este figurat în cazul citirilor celulelor de memorie. În cazul scrierilor unor celule de memorie timpul corespunzător a fost notat cu tWR (Write) și el apare mai lung decât CL deoarece operațiile de scriere în RAM durează mai mult decât cele de citire.
Acces rândAcces coloană / coloanePrecharge
tRCDCL (Read)tRP
tWR (Write)
CL (Read)
CL (Read)
tRAS
După faza de precharge povestea se repetă, urmează din nou faza de accesare a rândului și a coloanei (sau coloanelor). Deci din momentul când se dă comanda de precharge și până când următoarea celulă de memorie poate fi accesată vor trece tRP + tRCD + CL impulsuri de tact al memoriei.
Este important să reținem că timpii care definesc latența memoriei, așa cum apar în specificații sau în BIOS setup, sunt precizați în următoarea ordine: CL-tRCD-tRP-tRAS.

Arhitectura dual-channel

Dacă te-ai uitat vreodată la o placă de bază contemporană (adică nu din pre-cambrian), și sunt convins că ai făcut-o din moment ce încă citești articolul, precis ai observat faptul că soclurile modulelor de memorie (în caz că placa de bază are mai mult de două astfel de module) sunt împărțite în perechi și fiecare pereche e colorată distinct (de obicei albastru și negru, dar pot apărea și alte culori: verde, galben, portocaliu). Existența perechilor de socluri colorate distinct indică faptul că se folosește arhitectura dual-channel.
Care e ideea de fapt? Procesorul este de obicei mult mai rapid decât memoria RAM și se întâmplă că apar frecvent timpi morți, în care el stă degeaba așteptând ca memoria să-și termine treaba. Și atunci, pentru creșterea performanței sistemului, s-au încercat artificii în scopul creșterii vitezei de acces a RAM-ului.
Dual-channel a fost creat cu scopul de a dubla viteza de comunicație între procesor și RAM. Cum se realizează asta? Dublarea vitezei e posibilă prin faptul că modulele de memorie sunt împărțite în perechi marcate cu o culoare distinctă, iar DIMM-urile din cadrul aceleiași perechi pot fi accesate în același timp de către procesor (sau de controllerul de memorie). Cu alte cuvinte dacă la un singur acces la memorie pot fi accesați simultan 64 biți dintr-un modul, într-un sistem dual-channel la un singur acces se accesează simultan 128 biți (câte 64 biți din fiecare modul al unei astfel de perechi).
Pentru ca dual-channel să funcționeze, modulele de memorie care se împerechează trebuie să fie identice din toate punctele de vedere, însă în perechi diferite se pot folosi module cu caracteristici diferite.
Există și situații atipice în care culorile sunt folosite altfel (perechile pot fi în socluri de culori diferite), deci pentru siguranță ar trebui consultat manualul plăcii de bază.
Activarea dual-channel se realizează automat dacă sunt îndeplinite condițiile la care mă refeream mai devreme și poate fi verificată urmărind mesajul specific care apare pe ecran la pornirea sistemului.

Arhitectura triple-channel

Plăcile de bază cu chipset Intel X58 pentru procesoare Intel Core i7 modelele 9xx (Bloomfield și Gulftown) cu socket LGA 1366 au socket-urile de memorie grupate nu în perechi, ci în tripleți colorați distinct. Funcționarea e similară cu dual-channel, doar că lățimea de bandă maximă este nu dublă ci triplă, putând fi transferați simultan 64 * 3 = 192 biți față de cei 128 biți în cazul dual-channel. La fel ca și la dual-channel, modulele de memorie instalate în cadrul unui astfel de triplet trebuie să fie identice.

Calculul lățimii de bandă maxime a memoriei

Lățimea de bandă maximă a unei memorii SDRAM DDR, DDR2, sau DDR3, exprimată în bytes pe secundă sau în mod uzual gigabytes/s (GB/s) este calculată astfel:
LBM = rata_transfer * nr_biți_transferați_simultan / nr_biți_per_byte
  • rata_transfer este valoarea din denumirea memoriei (ex. pentru DDR2-800 ea este 800 MT/s – megatransfereruri pe secundă). În cazul memoriilor DDR, DDR2 sau DDR3 rata de transfer este dublul frecvenței clock-ului memoriei pentru că ziceam mai devreme că are loc un transfer pe frontul crescător și un alt transfer pe frontul descrescător, deci două transferuri pe fiecare ciclu;
  • nr_biți_transferați_simultan este 64, 128 (în arhitectura dual-channel) sau 192 (în arhitectura triple-channel);
  • nr_biți_per_byte este întotdeauna 8;
Astfel, dacă avem două module DDR2-800 instalate în dual-channel (de altfel situația ar fi identică și la o memorie DDR3-800) lățimea de bandă maximă este 800 * 128 / 8 = 12800 MB/s = 12.8 GB/s.

Serial Presence Detect (SPD)

SPD reprezintă o modalitate prin care parametrii unui modulul de memorie pot fi aflați pe baza unui identificator pe care modulul îl trimite serial» la pornirea sistemului, inclusiv informațiile legate de timing-ul memoriei, informații care sunt esențiale pentru a putea accesa modulul de memorie la viteza maximă permisă constructiv.

Cum alegem modulele de memorie pentru un calculator

În primul rând trebuie să căutăm specificațiile plăcii de bază pentru a vedea nu numai tipul de memorie (DDR, DDR2, DDR3) dar și ratele de transfer acceptate. Nu putem folosi o memorie DDR2-533 pe o placă ce acceptă doar DDR2-667, DDR2-800 și DDR2-1066, în schimb dacă de exemplu memoria e inscripționată DDR2-1066 o putem folosi și pe o placă de bază care știe DDR2-533 și DDR-667, caz în care ea nu va lucra la viteza maximă garantată constructiv.
Iar apoi trebuie să fim atenți să grupăm module identice când avem de a face cu arhitectura dual-channel sau triple-channel, după cum spuneam și în secțiunile respective.
Dacă sistemul nu acceptă modulele de memorie introduse, el va refuza să pornească și la foarte scurt timp după punerea în funcțiune vom auzi în buzzer niște tonuri de avertizare scurte și repetate a căror semnificație este descrisă în manualul plăcii de bază.

Viitorul: DDR4 SDRAM

Continuarea seriei SDRAM va fi DDR4 SDRAM, despre care se vorbește cam din 2008 și care este așteptat nu mai devreme de 2012. DDR4 va lucra la tensiuni de 1V sau maxim 1.2V (se observă că tensiunile de alimentare au tot scăzut cu fiecare generație: 2.8V/2.5V -> 1.8V -> 1.5V -> 1V/1.2V) operând la viteze începând cu 1600MT/s probabil până în jur de 3200MT/s.

Niciun comentariu:

Trimiteți un comentariu

windows 11

  Vă prezentăm Windows 11 O nouă experiență Windows, care vă apropie mai mult de persoanele și de lucrurile pe care le îndrăgiți. Beneficiaț...