Ierarhia memoriei computerului este conceptul de construire a unei interconexiuni între clase de diferite niveluri ale memoriei computerului pe baza unei structuri ierarhice.
Esența necesității de a construi memorie ierarhică este necesitatea de a asigura un sistem de calcul (un computer separat sau un cluster) cu o cantitate suficientă de memorie, atât operațională, cât și permanentă.
Având în vedere eterogenitatea frecvenței de acces la înregistrări specifice (registre de procesor intern , memorie cache , pagini și fișiere ), se folosesc diverse soluții tehnice care au caracteristici excelente, atât tehnice, cât și de preț și greutate și dimensiune. De regulă, stocarea pe termen lung în memorie scumpă ultra -rapidă și chiar cu acces aleatoriu nu este profitabilă, astfel încât acest tip de date sunt stocate pe unități - disc , bandă , flash etc.
Pentru a asigura backupul datelor , de exemplu, în scopul siguranței, utilizatorii pot crea biblioteci pe medii amovibile (de exemplu, o bibliotecă de benzi virtuale sau o matrice de discuri ), umplându-le cu propriile fișiere de diferite formate. Accesul la aceste date durează cel mai mult timp, dar în același timp capacitatea lor este uriașă.
Practic, caracteristicile tehnice sunt temporare, adică ce criterii de timp se potrivește unei anumite soluții. Nevoia de memorie de mare viteză este de obicei limitată fie de costurile generale mari pentru asigurarea funcționării circuitelor, fie de consumul mare de energie, fie de costul ridicat al soluției.
Diferite tipuri de memorie formează o ierarhie, la diferite niveluri, există memorii cu timpi de acces, complexitate, cost și volum diferiți. Posibilitatea de a construi o ierarhie de memorie se datorează faptului că majoritatea algoritmilor accesează un set mic de date la fiecare interval de timp, care poate fi plasat în memorie mai rapidă, dar costisitoare și deci mică (vezi en:locality of reference ). Utilizarea unei memorie mai rapide crește performanța complexului de calcul. Memoria în acest caz se referă la un dispozitiv de stocare a datelor (dispozitiv de memorie ) în memoria de calcul sau computer .
Atunci când proiectați computere și sisteme de înaltă performanță, există multe compromisuri care trebuie făcute, cum ar fi dimensiunea și tehnologia pentru fiecare nivel al ierarhiei. Se poate considera un set de memorii diferite (m 1 ,m 2 ,…,m n ) situate în ierarhie, adică fiecare nivel m i este, parcă, subordonat nivelului m i-1 al ierarhiei. Pentru a reduce timpul de așteptare la nivelurile superioare, nivelurile inferioare pot pregăti date în bucăți cu tamponare și, când tamponul este plin, semnalează nivelului superior că datele pot fi primite.
Adesea există 4 niveluri principale (mărgite) de ierarhie: [1]
Majoritatea computerelor moderne folosesc următoarea ierarhie de memorie:
Majoritatea programatorilor presupun de obicei că memoria este împărțită în două niveluri, memoria principală și stocarea pe disc, deși în limbaje de asamblare și limbaje compatibile cu asamblarea (cum ar fi C ) este posibil să se lucreze direct cu registre. Pentru a profita de ierarhia memoriei necesită o acțiune concertată din partea programatorului, hardware-ului și compilatorilor (precum și suport de bază în sistemul de operare):
Mulți programatori nu iau în considerare memoria pe mai multe niveluri atunci când programează. Această abordare funcționează atâta timp cât aplicația nu suferă o degradare a performanței din cauza performanței subsistemului de memorie. La corectarea codului ( refactoring ), este necesar să se țină cont de prezența și particularitățile muncii nivelurilor superioare ale ierarhiei memoriei pentru a obține cea mai înaltă performanță.
![]() |
---|