Actualizare memorie - Memory refresh

Reîmprospătarea memoriei este procesul de citire periodică a informațiilor dintr-o zonă a memoriei computerului și rescrierea imediată a informațiilor citite în aceeași zonă fără modificări, în scopul păstrării informațiilor. Reîmprospătarea memoriei este un proces de întreținere a fundalului necesar în timpul funcționării memoriei dinamice cu acces aleatoriu semiconductor (DRAM), cel mai utilizat tip de memorie de computer și, de fapt, este caracteristica definitorie a acestei clase de memorie.

Într-un cip DRAM, fiecare bit de date de memorie este stocat ca prezență sau absență a unei încărcări electrice pe un condensator mic de pe cip. Pe măsură ce timpul trece, încărcăturile din celulele de memorie se scurg, deci fără a fi reîmprospătate datele stocate s-ar pierde în cele din urmă. Pentru a preveni acest lucru, circuitele externe citesc periodic fiecare celulă și o rescriu, restabilind încărcarea condensatorului la nivelul inițial. Fiecare ciclu de reîmprospătare a memoriei reîmprospătează o zonă următoare de celule de memorie, reîmprospătând astfel în mod repetat toate celulele într-un ciclu consecutiv. Acest proces este realizat automat în fundal de circuitele de memorie și este transparent pentru utilizator. În timp ce are loc un ciclu de reîmprospătare, memoria nu este disponibilă pentru operațiile normale de citire și scriere, dar în memoria modernă acest timp „overhead” nu este suficient de mare pentru a încetini semnificativ funcționarea memoriei.

Este disponibilă memoria electronică care nu necesită reîmprospătare, numită memorie statică cu acces aleatoriu (SRAM). Circuitele SRAM necesită mai multă suprafață pe un cip, deoarece o celulă de memorie SRAM necesită patru până la șase tranzistoare , comparativ cu un singur tranzistor și un condensator pentru DRAM. Ca urmare, densitatea datelor este mult mai mică în cipurile SRAM decât în ​​DRAM, iar SRAM are un preț mai mare pe bit. Prin urmare, DRAM este utilizat pentru memoria principală în computere, console de jocuri video, plăci grafice și aplicații care necesită capacități mari și costuri reduse. Nevoia de reîmprospătare a memoriei face ca sincronizarea și circuitele DRAM să fie mult mai complicate decât circuitele SRAM, dar avantajele densității și costurilor DRAM justifică această complexitate.

Cum funcționează reîmprospătarea DRAM

În timp ce memoria funcționează, fiecare celulă de memorie trebuie să fie reîmprospătată în mod repetat, în intervalul maxim dintre reîmprospătări specificat de producător, care este de obicei în regiunea de milisecundă. Reîmprospătarea nu folosește operațiunile normale de memorie (cicluri de citire și scriere) utilizate pentru accesarea datelor, ci cicluri specializate numite cicluri de reîmprospătare care sunt generate de circuite contoare separate în circuitele de memorie și intercalate între accesele normale de memorie.

Celulele de stocare de pe un cip de memorie sunt dispuse într-o matrice dreptunghiulară de rânduri și coloane. Procesul de citire în DRAM este distructiv și elimină încărcarea pe celulele de memorie într-un rând întreg, astfel încât există un rând de zăvoare specializate pe cip numite amplificatoare de sens , unul pentru fiecare coloană de celule de memorie, pentru a păstra temporar datele. În timpul unei operații normale de citire, amplificatoarele de sens după citirea și blocarea datelor, rescriu datele din rândul accesat înainte de a trimite bitul dintr-o singură coloană la ieșire. Aceasta înseamnă că electronica normală de citire a cipului poate reîmprospăta un întreg rând de memorie în paralel, accelerând semnificativ procesul de reîmprospătare. Un ciclu normal de citire sau scriere reîmprospătează un rând de memorie, dar accesele normale de memorie nu pot fi bazate pe atingerea tuturor rândurilor în timpul necesar, necesitând un proces de reîmprospătare separat. În loc să utilizați ciclul normal de citire în procesul de reîmprospătare, pentru a economisi timp se utilizează un ciclu prescurtat numit ciclu de reîmprospătare. Ciclul de reîmprospătare este similar ciclului de citire, dar se execută mai repede din două motive:

  • Pentru o reîmprospătare, este necesară doar adresa rândului, deci o adresă de coloană nu trebuie aplicată circuitelor de adresă a cipului.
  • Datele citite din celule nu trebuie să fie introduse în bufferele de ieșire sau în magistrala de date pentru a fi trimise către CPU.

Circuitele de reîmprospătare trebuie să efectueze un ciclu de reîmprospătare pe fiecare dintre rândurile de pe cip în intervalul de timp de reîmprospătare, pentru a vă asigura că fiecare celulă este reîmprospătată.

Tipuri de circuite de reîmprospătare

Deși în unele sisteme timpurii microprocesorul a controlat reîmprospătarea, cu un temporizator care declanșează o întrerupere periodică care a rulat un subrutină care a efectuat reîmprospătarea, acest lucru a însemnat că microprocesorul nu putea fi întrerupt, cu un singur pas sau pus în hibernare cu economie de energie fără a opri reîmprospătarea procesează și pierde datele din memorie. Deci, în sistemele moderne, reîmprospătarea este gestionată de circuite din controlerul de memorie sau din ce în ce mai mult pe cipul în sine. Unele cipuri DRAM, cum ar fi RAM pseudostatică (PSRAM), au toate circuitele de reîmprospătare pe cip și funcționează ca RAM statică în ceea ce privește restul computerului.

De obicei, circuitele de reîmprospătare constau dintr-un contor de reîmprospătare care conține adresa rândului de reîmprospătat, care se aplică liniilor de adresă a șirului cipului și un cronometru care mărește contorul pentru a trece prin rânduri. Acest contor poate face parte din circuitele controlerului de memorie sau chiar pe cipul de memorie. Au fost utilizate două strategii de planificare:

  • Reîmprospătare rafală - o serie de cicluri de reîmprospătare sunt efectuate unul după altul până când toate rândurile au fost reîmprospătate, după care au loc accesări normale la memorie până când este necesară următoarea reîmprospătare
  • Reîmprospătare distribuită - ciclurile de reîmprospătare sunt efectuate la intervale regulate, intercalate cu accesuri de memorie.

Reîmprospătarea în rafală are ca rezultat perioade lungi de timp când memoria nu este disponibilă, deci reîmprospătarea distribuită a fost utilizată în majoritatea sistemelor moderne, în special în sistemele în timp real . În reîmprospătarea distribuită, intervalul dintre ciclurile de reîmprospătare este

De exemplu, DDR SDRAM are un timp de reîmprospătare de 64 ms și 8.192 de rânduri, deci intervalul ciclului de reîmprospătare este de 7.8 μs.

Ultimele generații de cipuri DRAM conțin un contor de reîmprospătare integrat, iar circuitele de control al memoriei pot folosi fie acest contor, fie pot oferi o adresă de rând de la un contor extern. Aceste cipuri au trei moduri standard de a oferi reîmprospătare, selectate de diferite tipare de semnale pe liniile „selectare coloană” (CAS) și „selectare rând” (RAS):

  • Reîmprospătare numai RAS ” - În acest mod adresa rândului de reîmprospătat este furnizată de liniile magistralei de adresă, deci este utilizată cu contoare externe în controlerul de memorie.
  • CAS înainte de reîmprospătarea RAS ” (CBR) - În acest mod, contorul on-chip ține evidența rândului care trebuie reîmprospătat, iar circuitul extern inițiază doar ciclurile de reîmprospătare. Acest mod folosește mai puțină energie, deoarece tampoanele magistralei de adresă de memorie nu trebuie să fie alimentate. Este folosit în majoritatea computerelor moderne.
  • Împrospătare ascunsă ” - Aceasta este o versiune alternativă a ciclului de reîmprospătare CBR care poate fi combinată cu un ciclu de citire sau scriere precedent. Reîmprospătarea se face în paralel în timpul transferului de date, economisind timp.

De la generația 2012 a cipurilor DRAM, modul „numai RAS” a fost eliminat, iar contorul intern este utilizat pentru a genera reîmprospătare. Cipul are un „mod de repaus” suplimentar, pentru utilizare atunci când computerul este în hibernare , în care un oscilator on-chip generează cicluri de reîmprospătare interne, astfel încât ceasul extern să poată fi oprit.

Reîmprospătați cheltuielile

Fracțiunea de timp pe care memoria o petrece la reîmprospătare, reîmprospătarea generală, poate fi calculată din momentul de timp al sistemului:

De exemplu, un cip SDRAM are 2 13 = 8.192 rânduri, un interval de reîmprospătare de 64 ms, magistrala de memorie rulează la 133 MHz, iar ciclul de reîmprospătare durează 4 cicluri de ceas. Timpul pentru un ciclu de reîmprospătare este

Deci, mai puțin de 0,4% din timpul cipului de memorie va fi luat de ciclurile de reîmprospătare. În cipurile SDRAM, memoria din fiecare cip este împărțită în bănci care sunt reîmprospătate în paralel, economisind timp suplimentar. Deci, numărul de cicluri de reîmprospătare necesare este numărul de rânduri dintr-o singură bancă, dat în specificații, care în generația 2012 de jetoane a fost înghețat la 8.192.

Interval de reîmprospătare

Intervalul maxim de timp dintre operațiile de reîmprospătare este standardizat de JEDEC pentru fiecare tehnologie DRAM și este specificat în specificațiile cipului producătorului. Este de obicei în intervalul de milisecunde pentru DRAM și microsecunde pentru eDRAM . Pentru cipurile DDR2 SDRAM este de 64 ms. Depinde de raportul dintre încărcarea stocată în condensatoarele celulei de memorie și curenții de scurgere. În ciuda faptului că geometria condensatoarelor s-a micșorat cu fiecare nouă generație de cipuri de memorie, astfel încât condensatoarele de generație ulterioară stochează mai puțină încărcare, timpii de reîmprospătare pentru DRAM s-au îmbunătățit; de la 8 ms pentru jetoane 1M, 32 ms pentru jetoane 16M, până la 64 ms pentru jetoane 256M. Această îmbunătățire se realizează în principal prin dezvoltarea tranzistoarelor care cauzează scăderi semnificativ mai mici. Timp de reîmprospătare mai lung înseamnă că o fracțiune mai mică din timpul dispozitivului este ocupată cu reîmprospătare, lăsând mai mult timp pentru accesarea memoriei. Deși cheltuielile de reîmprospătare au ocupat până la 10% din timpul cipurilor în DRAM-urile anterioare, în cipurile moderne această fracțiune este mai mică de 1%.

Deoarece curenții de scurgere din semiconductori cresc odată cu temperatura, timpul de reîmprospătare trebuie scăzut la temperatură ridicată. Cipurile SDRAM DDR2 au o structură de reîmprospătare compensată de temperatură; timpul ciclului de reîmprospătare trebuie să fie redus la jumătate atunci când temperatura carcasei cipului depășește 85 ° C (185 ° F).

Persistența reală a valorilor de încărcare lizibile și, astfel, a datelor în majoritatea celulelor de memorie DRAM este mult mai lungă decât timpul de reîmprospătare, până la 1-10 secunde. Cu toate acestea, curenții de scurgere ai tranzistorilor variază foarte mult între diferite celule de memorie de pe același cip datorită variației procesului. Pentru a vă asigura că toate celulele de memorie sunt reîmprospătate înainte ca un singur bit să fie pierdut, producătorii trebuie să își stabilească timpul de reîmprospătare în mod conservator.

Această reîmprospătare frecventă a DRAM consumă o treime din puterea totală consumată de dispozitivele electronice de consum redus în modul de așteptare. Cercetătorii au propus mai multe abordări pentru extinderea duratei de funcționare a bateriei între încărcări prin reducerea ratei de reîmprospătare, inclusiv reîmprospătarea compensată de temperatură (TCR) și plasarea conștientă de reținere în DRAM (RAPID). Experimentele arată că într-un cip tipic DRAM, doar câteva celule slabe necesită într-adevăr cel mai rău caz de reîmprospătare de 64 ms și chiar și atunci la capătul superior al intervalului de temperatură specificat. La temperatura camerei (de exemplu, 24 ° C (75 ° F)), aceleași celule slabe trebuie reîmprospătate o dată la 500 ms pentru o funcționare corectă. Dacă sistemul poate evita utilizarea celor mai slabe 1% din pagini, un DRAM tipic trebuie actualizat doar o dată pe secundă, chiar și la 70 ° C (158 ° F), pentru o funcționare corectă a restului de 99% din pagini. Unele experimente combină aceste două tehnici complementare, oferind o funcționare corectă la temperatura camerei la intervale de reîmprospătare de 10 secunde.

Pentru aplicații tolerante la erori (de exemplu, aplicații grafice), reîmprospătarea datelor necritice stocate în DRAM sau eDRAM la o rată mai mică decât perioada de păstrare a acestora economisește energie cu pierderi minore de calitate, care este un exemplu de calcul aproximativ .

Tehnologii de memorie SRAM și DRAM

SRAM

În memoria statică cu acces aleatoriu (SRAM), un alt tip de memorie semiconductoare, datele nu sunt stocate ca încărcare pe un condensator, ci într-o pereche de invertoare cuplate încrucișat , astfel încât SRAM nu trebuie să fie reîmprospătat. Cele două tipuri de memorie de bază au avantaje și dezavantaje. Memoria statică poate fi considerată permanentă în timp ce este pornită, adică odată scrisă, memoria rămâne până când este modificată în mod specific și, astfel, utilizarea acesteia tinde să fie simplă în ceea ce privește proiectarea sistemului. Cu toate acestea, construcția internă a fiecărei celule SRAM necesită șase tranzistoare, comparativ cu tranzistorul unic necesar pentru o celulă DRAM, astfel încât densitatea SRAM este mult mai mică și prețul pe bit mult mai mare decât DRAM.

Reîmprospătare bazată pe CPU

Unele microprocesoare timpurii (de exemplu, Zilog Z80 ) au furnizat registre interne speciale care ar putea oferi Robe-Address Strobe (RAS) pentru reîmprospătarea celulelor de memorie dinamice, registrul fiind incrementat la fiecare ciclu de reîmprospătare. Acest lucru ar putea fi realizat și de alte circuite integrate care sunt deja utilizate în sistem, dacă acestea ar genera deja accesări de ciclism pe RAM (de exemplu , Motorola 6845 ). În procesoare precum Z80, disponibilitatea unei reîmprospătări RAS a fost un mare punct de vânzare datorită designului său hardware simplificat. Aici, reîmprospătarea RAS este semnalată de o combinație unică de adrese și fire de control în timpul ciclurilor de ceas redundante din punct de vedere operațional (state T), adică în timpul decodării / execuției instrucțiunilor când autobuzele pot să nu fie necesare. În loc ca magistrala să fie inactivă în timpul acestor stări T, registrul de reîmprospătare ar fi prezentat pe magistrala de adrese împreună cu o combinație de fire de control pentru a indica circuitelor de reîmprospătare.

În primele versiuni ale Z80, ubicuitatea cipurilor RAM de 16 kB ( adică având 128 de rânduri) și o lipsă de previziune au dus la creșterea registrului R pe o gamă de 7 biți (0-127, adică 128 de rânduri) ; al 8-lea bit ar putea fi setat de utilizator, dar ar fi lăsat neschimbat de ciclul intern. Odată cu apariția rapidă a cipurilor DRAM de 64 kbit + (cu un RAS de 8 biți), circuitele suplimentare sau logica au trebuit să fie construite în jurul semnalului de reîmprospătare pentru a sintetiza cel de-al 8-lea bit lipsă și a preveni pierderea blocurilor de memorie după câteva milisecunde. În unele contexte, a fost posibil să se utilizeze întreruperi pentru a răsturna cel de-al 8-lea bit la momentul potrivit și astfel să acopere întreaga gamă a registrului R (256 de rânduri). O altă metodă, poate mai universală, dar și mai complexă din punct de vedere hardware, a fost utilizarea unui contor de 8 biți, a cărui ieșire ar oferi adresa RAS de reîmprospătare în locul registrului R: semnalul de reîmprospătare de la CPU a fost folosit ca ceas pentru acest contor, rezultând ca rândul de memorie care urmează să fie reîmprospătat să fie incrementat cu fiecare ciclu de reîmprospătare. Versiunile ulterioare și „work-alikes” licențiate ale nucleului Z80 au remediat neincluderea celui de-al 8-lea bit în ciclarea automată, iar procesoarele moderne s-au extins mult asupra unor astfel de aprovizionări de bază pentru a oferi soluții bogate all-in-one pentru reîmprospătarea DRAM.

DRAM pseudostatic

RAM pseudostatic (PSRAM sau PSDRAM) este RAM dinamică cu reîncărcare încorporată și circuite de control al adresei pentru a-l face să se comporte similar cu RAM-ul static (SRAM). Acesta combină densitatea mare a DRAM cu ușurința de utilizare a SRAM adevărat. PSRAM (produs de Numonyx) este utilizat în iPhone-ul Apple și în alte sisteme încorporate.

Unele componente DRAM au un „mod de auto-reîmprospătare”, care implică o mare parte din aceeași logică care este necesară pentru funcționarea pseudo-statică, dar acest mod este adesea echivalent cu un mod de așteptare. Acesta este furnizat în principal pentru a permite unui sistem să suspende funcționarea controlerului său DRAM pentru a economisi energie fără a pierde datele stocate în DRAM, mai degrabă pentru a nu permite funcționarea fără un controler DRAM separat, cum este cazul PSRAM. O variantă încorporată a PSRAM este vândută de MoSys sub numele 1T-SRAM . Din punct de vedere tehnic este DRAM, dar se comportă la fel ca SRAM și este utilizat în consolele Nintendo Gamecube și Wii .

Alte tehnologii de memorie care utilizează reîmprospătare

Câteva tehnologii timpurii de memorie de calculator au necesitat, de asemenea, procese periodice similare ca scop cu reîmprospătarea memoriei. Tubul Williams are cea mai apropiată asemănare, deoarece, ca și în cazul DRAM, acesta este , în esență , o memorie capacitivă în care valorile stocate pentru fiecare bit ar dezintegra treptat , cu excepția cazului în împrospătat.

În memoria cu miez magnetic , fiecare celulă de memorie poate reține datele la nesfârșit chiar și cu alimentarea oprită, dar citirea datelor din orice celulă de memorie își șterge conținutul. În consecință, controlerul de memorie a adăugat de obicei un ciclu de reîmprospătare după fiecare ciclu de citire pentru a crea iluzia unei operații de citire nedistructive.

Memoria liniei de întârziere necesită o reîmprospătare constantă, deoarece datele sunt stocate de fapt ca semnal într-o linie de transmisie . În acest caz, rata de reîmprospătare este comparabilă cu timpul de acces la memorie .

Vezi si

Referințe