Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • OS
  • Organizarea memoriei sistemului informatic. Organizarea memoriei în calculatoare

Organizarea memoriei sistemului informatic. Organizarea memoriei în calculatoare

Înainte de a lua în considerare tehnologia organizării fizice a memoriei într-un computer, este necesar să rețineți următoarele:

1. Memoria dintr-un computer are o organizare pe mai multe niveluri.

2.Memoria este clasificată în funcție de metoda de accesare a datelor.

Toate tipurile de memorii care au structuri de adrese funcționează pe principiul unei corespondențe unu-la-unu între fiecare element al setului de spațiu de adrese și fiecare element al setului de date stocat în memorie.

Memoria cu acces secvenţial exclude posibilitatea de acces aleatoriu la un element de memorie, accesul la care este determinat de un algoritm de aşteptare în structura memoriei cu organizarea sa omogenă sau de un algoritm de acces secvenţial din nivel superior la cel mai de jos într-o organizație cu mai multe niveluri (sistem de fișiere).

Memoria asociativă folosește un semn asociativ (o etichetă, care poate fi un cod, cheie, adresă sau o parte a acestuia) pentru a căuta un element de date în memorie memorie de adrese, care stochează o copie a acestuia). Datorită acestui fapt, un element de date poate fi localizat oriunde în memorie, încălcând principiul corespondenței unu-la-unu caracteristic structurilor de memorie adresabile.

3. Prin metoda de depozitare.

Static

Dinamic

Permanent

Memorie flash

4.Memoria dintr-un computer are o structură modulară. Se bazează pe un design modular, care face posibilă formarea unui volum variabil al unei unități de stocare prin creșterea sau scăderea numărului de module din configurație.

Memoria fizică a unui sistem informatic este împărțită în externă și operațională. Memoria externă este concepută pentru depozitare pe termen lung informații și este stocată într-o stare pasivă a sistemului de calcul chiar și atunci când este oprit.

Memoria externă în modern sisteme de calcul ah este implementat în principal pe discuri și benzi magnetice, precum și pe diverse tipuri de memorie nevolatilă.

Memoria externă este implementată fizic ca dispozitive de sistem I/O care comunică cu procesorul și memoria prin interfețe I/O, a căror funcționare se bazează pe două soluții arhitecturale diferite: magistrala de sistem și canalele I/O.

Cât despre memorie cu acces aleator A cărei organizare fizică și logică face obiectul acestui subiect este împărțită structural în două părți: un dispozitiv de stocare și o unitate de control sau controler de memorie.

Controlerul de memorie este coordonatorul RAM este conectat la interfețele cu procesorul și sistemul de intrare/ieșire, primind solicitări de la acestea pentru date, atât pentru scrierea în memoria lor, cât și pentru citirea din aceasta.

După ce a primit o solicitare, controlerul o pune într-o coadă pentru accesarea unui dispozitiv de stocare (SD) în funcție de prioritate, dând prioritate sistemului de intrare/ieșire și organizează comunicarea cu dispozitivul de stocare în conformitate cu protocolul de interfață care le conectează.



Funcționalitatea controlerului de memorie depinde direct de complexitatea funcționalității sistemului. De exemplu, în sistemele multiprocesoare simetrice, controlorul de memorie este coordonatorul solicitărilor de date de la toți procesatorii sistemului, acceptându-le spre executare sau blocându-le temporar dacă datele sunt deja prelucrate de un alt procesator, asigurând astfel coerența datelor în sistem.

RAM modernă în sistemele de calcul, în ceea ce privește metoda de stocare, în majoritatea cazurilor se referă la memoria dinamică, care necesită periodic un mod de restabilire a informațiilor din memorie în timpul funcționării, adică cicluri de regenerare, în timpul cărora accesul la memorie de către agenții externi este blocat. Organizarea unor astfel de cicluri și frecvența lor este inclusă în funcțiile controlerului.

Pentru a reduce impactul ciclurilor de regenerare asupra performanței memoriei, au început să se folosească diverse metode. Aceasta este, în primul rând, utilizarea tehnologiei de construcție a memoriei modulare cu organizarea băncilor și a adreselor alternante, adică cu plasarea datelor cu adrese pare și impare în diferite module de memorie (cipuri) care pot fi accesate simultan într-un ciclu de memorie. , combinând astfel eșantionarea datelor într-un modul cu un ciclu de regenerare în altul, în absența unui mod de eșantionare batch, adică eșantionarea simultană a datelor la adrese pare și impare.

De asemenea, au început să folosească modul de regenerare automată a celulelor de memorie, care sunt accesate pentru date în modul de citire, și modul de regenerare internă a tuturor celulelor de memorie din microcircuite. Dar în acest scop, în fiecare cip de memorie a trebuit să fie încorporat un controler intern și să i se atribuie funcțiile de mai sus și alte funcții, eliberând controlerul extern pentru alte sarcini mai importante.

În ceea ce privește arhitectura dispozitivelor de stocare în sine, care sunt destinate stocării,

scrierea și citirea datelor, se pot observa următoarele.

Folosind ca elemente de memorie în stadiul inițial de dezvoltare tehnologia calculatoarelor tuburi vid, și ulterior miezuri de ferită și, în cele din urmă, trecerea la tehnologia semiconductoare, care a început să folosească proprietățile capacitive ale drenului izolat al tranzistorului cu efect de câmp. Scopul final al acestor modificări a fost și va fi rezolvarea următoarelor probleme:

Creșterea capacității de memorie

Performanță crescută

Crește fiabilitatea stocării și reduce consumul de energie al memoriei.

Dacă memoria de sistem a computerelor moderne pe 32 de biți cu o magistrală de adrese de memorie pe 32 de biți face posibilă creșterea capacității lor până la 4 GB, atunci pentru computerele din a 2-a și a 3-a generație cu memorie de ferită, capacitatea chiar și a supercalculatoarelor din acea vreme a fost calculată doar în zeci și sute de kB Deci capacitatea Memoria BESM6 a supercomputerului domestic a fost la un moment dat de aproximativ 768 kb, neatingând nici măcar limita de megaocteți.

Saltul în capacitatea RAM s-a produs odată cu introducerea tehnologiei semiconductoare în fabricarea dispozitivelor de stocare a memoriei, datorită cărora capacitatea RAM a depășit pragul de megabyte. Unul dintre primele computere care a avut o astfel de memorie a fost IBM7030 în 1961. Dimensiunea sa de memorie era de 2 MB. Evoluțiile de proiectare ale acestei mașini au fost utilizate ulterior în binecunoscutele serii de mașini IBM360 și IBM370. Aceste mașini, care au magistrale de adrese de memorie pe 24 de biți, au avut capacitatea de a-și crește capacitatea de memorie la 16 GB. Odată cu introducerea unei magistrale pe 32 de biți în calculatoare precum ESA370, IBM4381, deși memoria nu a depășit limita de gigaocteți, a putut fi extinsă de la 16 la 64 de megaocteți.

Arhitecturile Z mainframe moderne, cum ar fi Z9BC, de exemplu, au capacitatea de a se extinde până la 64 GBT, având o magistrală pe 64 de biți, iar computerul Z10 chiar și până la 1,5 TRBT.

În ceea ce privește computerele noastre casnice, capacitatea RAM a mașinilor EU Series 3 (EC1046, EC1066) a ajuns la 8 Mbt, mașini care au fost destinate să își încheie calea istorică de dezvoltare în această etapă.

Au existat și calculatoare din clasa supercomputerelor, destinate apărării, sisteme de apărare antirachetă, care aveau capacitate de memorie. dimensiune mai mare, de exemplu, proiectul M13 (capacitatea RAM a acestui supercomputer ar putea fi extinsă la 34 MB).

Următoarea dintre principalele caracteristici ale organizării fizice a memoriei este timpul de recuperare a datelor, care pentru calculatoarele de generația a 2-a cu memorie pe nuclee magnetice a fost de 10-12 microsecunde. Și numai odată cu introducerea memoriei semiconductoare, timpul de recuperare a datelor a fost redus cu un ordin de mărime și a devenit de la 1,5 la 0,5 microsecunde.

Memoria dinamică prin natura sa și metoda de stocare a datelor, în ciuda faptului că este mai mult structură simplă decât cea statică, este cea mai inerțială, adică cea mai lentă parte a sistemului de calcul și chiar și cu o reducere semnificativă a ciclurilor de acces rămâne așa și în prezent.

Acesta este motivul construcției memoriei cu mai multe niveluri în calcul sisteme, incluse care include fișiere de registru și număr diferit niveluri de memorie tampon de mare viteză realizate pe elemente de stocare statice (declanșatoare).

Arhitectura moderna sistemele de calcul funcționează cu concepte precum memoria virtuală, a cărei mapare la memoria fizică este reprezentată de o combinație de memorie RAM și memorie externă. Acest lucru a devenit posibil ca urmare a unei idei prezentate de oamenii de știință englezi de la Universitatea din Manchester, a cărei esență a fost separarea conceptelor de dimensiune a spațiului de adrese de dimensiunea specifică a memoriei RAM adresabile din sistem. Astfel, spațiul de adrese a sistemului a devenit independent de dimensiunea RAM și a început să fie prezentat programatorului ca memorie virtuală, oferindu-i oportunități ample atunci când scrie programe fără a se limita la dimensiunea RAM.

Pentru a implementa această idee, a fost necesar să se introducă concepte precum adrese logice și pagini virtuale reprezentând zone de memorie ale unui anumit dimensiune egală, în care întreg spațiul de adrese a început să fie împărțit memorie virtuala.

Memoria reală a început să fie împărțită în pagini fizice, ale căror dimensiuni corespundeau dimensiunii pagini virtuale.

De fapt, conținutul memoriei virtuale poate fi localizat în RAM și apoi pagina virtuală capătă statutul unei pagini fizice și în orice zonă de RAM permisă la discreția dvs. sistem de operare sau în cazul invers memoria memorie externa.

Prin urmare, un sistem de calcul care implementează un mecanism de virtualizare a memoriei trebuie să aibă un mecanism pentru mutarea conținutului paginilor virtuale din memoria externă în memoria operațională și înapoi în timpul execuției programului. Acest mecanism se numește Sistemul de fișiere, un mecanism de redirecționare dinamică, de exemplu, în sistemele IBM sau un mecanism de paginare în procesoare INTEL efectuează transformări ale adreselor virtuale în cele fizice.

A fost introdus conceptul de adrese logice. Adresele comenzilor și datele generate în timpul executării comenzilor în procesor au dobândit statutul de logic, deoarece nu mai corespund adreselor de memorie fizică, ci au indicat doar locația lor în spațiul de adrese. codul programului.

Mai mult, a devenit posibil ca sistemul să aibă mai multe spații de adrese virtuale care au propriile scheme de conversie a adreselor logice în cele fizice.

Memoria virtuală este un obiect de sistem considerat la nivel de sistem de operare și, prin urmare, structura sa este mai potrivită pentru a caracteriza organizare logica memorie.

Înainte de a caracteriza organizarea logică a memoriei, trebuie remarcat faptul că adresarea memoriei fizice se realizează octet cu octet, adică unitatea minimă adresabilă este un octet și, prin urmare, toate dimensiunile elementelor structurale ale organizării logice a memoriei trebuie să să fie un multiplu al numărului întreg de octeți din ei.

Programul operează cu concepte precum operator, operanzi, constante, variabile, exprimate în formă numerică sau simbolică. Ca urmare a traducerii codului programului, ele reprezintă coduri binare constând dintr-un număr întreg de octeți, care sunt plasați în RAM atunci când programul este executat. Octeții sunt combinați în cuvinte, cuvintele în linii, liniile în pagini, paginile în segmente.

Pentru organizarea logică a memoriei, ordinea octeților din memorie este importantă. Se obișnuiește să se aranjeze octeții secvențial în memorie de la stânga la dreapta, crescând valorile adreselor lor cu unul.

Partiționarea memoriei virtuale și fizice în pagini și segmente face posibilă nu numai maparea paginilor virtuale la memoria fizică, ci și descrierea zonelor spațiu liniarși memoria fizică, luând în considerare scopul și drepturile de acces ale acestora de către programe în așa-numiții descriptori corespunzători fiecărui segment și fiecărei pagini. Astfel, la accesarea RAM este implementat un mecanism de protecție.

Și astfel nivelul sistemului de operare are la dispoziție un mecanism de împărțire a memoriei virtuale și fizice în pagini și segmente, pe care le folosește ca instrument pentru formarea structurii memoriei logice a sistemului. Dar există zone din RAM pentru care se folosește doar adresarea fizică. În aceste zone, sistemul de operare plasează de obicei tabele folosite la conversia adreselor de memorie logică în cele fizice. A. de asemenea diverse tipuri de informații oficiale, la care accesul este permis doar din partea sa. Aceste zone sunt numite zone de memorie alocate permanent, a căror dimensiune este determinată de arhitectura sistemului și sistemele de operare.

Există un model plat și multidimensional al memoriei logice. Conceptul de model de memorie plată este asociat cu organizarea RAM propusă de von Neumann, adică cu plasarea instrucțiunilor și a datelor într-o zonă comună a memoriei fizice, dând control asupra ordinii plasării lor. la programatorul însuși. Acest model a creat anumite dificultăți și a necesitat eforturi suplimentare din partea programatorului la scrierea programului. Prima încercare de a îmbunătăți modelul de memorie plată a fost introducerea unui mecanism de segmentare pentru a separa zonele pentru instrucțiuni și date. Acest model a ajuns să fie numit flat secure, în care zonele de comandă și date puteau fi încă situate în dimensiunea memoriei fizice, dar în locuri diferite, accesul la care era indicat prin adresele de început ale segmentelor în descriptori, iar dimensiunea era limitată. cu valoarea limită specificată în acestea . Astfel, a fost implementat cel mai simplu mecanism de protecție a memoriei. Această tehnologie amintea de tehnologia modelului de memorie a arhitecturii Harvard, dar aplicată memoriei fizice partajate pentru instrucțiuni și date. Ulterior, a fost introdus un model de memorie plat multi-segment, in care alte zone destinate nu numai stocarii comenzilor si datelor au inceput sa fie controlate printr-un mecanism de protectie.

Modelul de memorie a devenit multidimensional odată cu introducerea memoriei virtuale, în care adresele logice au început să fie împărțite în mai multe părți, fiecare dintre acestea fiind supusă conversiei în tabel. Numărul de mecanisme implicate în transformare determină multidimensionalitatea memoriei logice. Odată cu conversia adresei paginii, memoria devine unidimensională, în care, în cea mai simplă formă, este convertit grupul format din cei mai semnificativi biți ai adresei logice. Numărul acestor biți din grup, sau mai degrabă puterea lui 2, determinat de acest număr de biți determină numărul de pagini virtuale din memoria virtuală. Biții de ordin inferior ai adresei logice nu sunt convertiți și determină offset-ul, adică locația datelor în pagina fizică. Deoarece numărul de pagini de memorie virtuală este destul de mare, cel mai semnificativ grup de biți ai adresei logice este împărțit în mai multe grupuri. Ca rezultat, în loc de un tabel cu o singură pagină, motorul de conversie utilizează mai multe seturi de tabele dimensiune mai mică. Numărul de tabele incluse în set va fi determinat și de gradul determinat de numărul de biți ai adresei din grupul care urmează grupului de adrese joase ale adresei logice, iar numărul de seturi va fi egal cu numărul de linii din directorul de pagini, a căror dimensiune va depinde de numărul de biți din grupul care determină dimensiunea directorului. Structura descrisă mai sus va fi tipică dacă grupul de biți de ordin înalt al adresei logice este împărțit în trei părți.

Să ne uităm la ce hardware este necesar pentru a converti adresele logice în cele fizice.

După cum sa menționat mai sus, grupul cel mai puțin semnificativ de biți ai adresei logice nu este convertit și reprezintă decalajul, adică locația primului octet de date de adresă în pagina fizică.

Mecanismul pas cu pas pentru conversia unei adrese logice într-una fizică (când partea superioară a adresei logice este împărțită în două părți) are loc în următoarea ordine:

1. Se accesează un rând din tabel, definit de grupul de biți de ordin înalt ai adresei logice, interpretat ca un director de pagini. Tabelul se află în RAM. Adresa rândului se formează prin adăugarea adresei de bază, care indică începutul locației tabelului în memorie și este încărcată anterior în registrul de sistem din procesor. Al doilea termen este codul din grupul celor mai semnificative cifre.

2. Ca rezultat, din memorie este citită o linie de director, care conține atributele și adresa de bază a tabelului de pagini corespunzătoare acestei linii de director.

3. Este organizat un ciclu de acces la memorie la un rând din tabelul de pagini. Adresa de linie este formată prin adăugarea adresei de bază citite din linia de director și a codului corespunzător valorii biților din grupul care urmează grupului de biți de director.

4. Linia de citit din tabelul paginii contine adresa de baza a paginii fizice in memorie, care merge la sumator, unde prin adaugarea cu valoarea grupului de biti de ordin inferioara a adresei logice, reprezentand offset-ul in pagina fizică, se formează adresa fizică a accesului la memorie.

Și astfel, în conformitate cu algoritmul descris mai sus, suportul hardware pentru conversia adreselor logice în cele fizice este:

1. O zonă de RAM alocată pentru stocarea tabelelor. Această zonă este spațiul în care mecanismul de transformare nu funcționează.

2. Prezența registrelor de control în procesor pentru a stoca adresa de bază care indică locația tabelului inițial în memorie.

3. Adunator pentru efectuarea operatiilor de adunare a aritmeticii adresei.

4. Prezența registrelor buffer sau a cache-urilor de memorie care sunt complet asociative pentru stocarea rezultatelor etapelor de conversie a adreselor logice în cele fizice.

Cel mai recent hardware este necesar pentru a crește performanța sistemului, deoarece nu este nevoie să efectuați un ciclu complet de transformări de fiecare dată când are loc un acces la memorie în cadrul aceleiași pagini fizice, ale cărei coordonate au fost calculate la prima accesare.

Introducerea unui mecanism suplimentar de segmentare la conversia adreselor logice face ca modelul de memorie să fie bidimensional. Mecanismul de segmentare formează un spațiu de adrese liniar al memoriei virtuale, care, ca urmare a conversiei, este format din segmente în care sunt situate codurile de program și datele, definind astfel o dimensiune a memoriei logice, a doua dimensiune definește mecanismul de paginare, reprezentând memoria ca un set de pagini virtuale.

Trebuie remarcat faptul că este interpretată ideologia segmentării memoriei virtuale în sistemele de calcul diferit. De exemplu, etapa de segmentare în procesul de conversie a adreselor logice în cele fizice în sistemele IBM (servere IBM360, IBM370, Zarchitecture) este inseparabilă de etapa de conversie a paginii, fiind etapa anterioară etapei de conversie a paginii, la fel ca în sistemele INTEL. , este controlat doar de partea superioară a adreselor de adrese logice, partea de mijloc a adresei și grupul de adrese scăzut sunt implicate doar în paginare. Astfel, implementând o conexiune logică inseparabilă între etape, împărțind mai întâi memoria virtuală în segmente-zone marime mareși apoi se segmentează în pagini.

În serverele Zarchitecture, dimensiunea adresei virtuale a fost mărită la 64 de biți, ceea ce a făcut posibilă adresarea memoriei virtuale de până la 16 exaocteți. În ceea ce privește multidimensionalitatea memoriei logice din aceste servere, hardware-ul lor face posibilă existența a până la 4 tipuri de spații de adrese virtuale independente unele de altele, numărul de spații din două dintre ele fiind de 64K fiecare și în celelalte două de 16 fiecare cu propriile conversii de tabel pentru fiecare tip, care sunt folosite pentru a construi entități logice virtuale - partiții logice, fiecare dintre acestea având propriul sistem de operare. Fiecare tip de adresă virtuală asociat tipului său de memorie virtuală este supus aceluiași mecanism de conversie cu propriul set de tabele. Prin urmare, urmând conceptele și terminologia discutate mai sus, memoria din aceste servere poate fi considerată un set de 4 tipuri de memorii virtuale unidimensionale cu o conversie în cinci etape, având cinci tipuri de zone: pagină, segment, regiune1, regiune2, regiunea 3.

Schema de conversie a adreselor virtuale în serverele Zarchitecture

O parte importantă a sistemelor de calcul este memoria. Organizarea interacțiunii dintre procesor și memorie determină principalele caracteristici ale sistemului de calcul, elementele rămase asigură conectarea acestei legături cu dispozitivele externe și lumea exterioară. Memoria este conectată la controlerul de memorie (dispozitiv de gestionare a memoriei) prin intermediul magistralei de adrese, magistralei de date și magistralei de control. Lățimea magistralei de date determină câți biți binari pot fi citiți din memorie în același timp (în paralel). Fiecare cifră binară (1 bit) este stocată de un element de memorie. Elementele de memorie de diferite tipuri sunt construite pe baza diferitelor principii fizice pentru înregistrarea și stocarea informațiilor. Elementele de memorie sunt combinate în celule de memorie. În acest caz, toate elementele celulei sunt adresate simultan, în același mod, și sunt organizate în așa fel încât să poată scoate simultan date către magistrala de date. Astfel de celule combinate formează un cuvânt. Numărul de biți de date citiți din memorie la un moment dat se numește lungimea eșantionului. Pentru a stoca 1 octet, sunt utilizate 8 elemente de memorie, celulele de memorie de opt biți sunt organizate folosind o magistrală de date cu o lățime de 8 linii.

Cipurile de memorie sunt folosite pentru a crea module de memorie care sunt instalate în sloturi (conectori) speciale ale sistemului informatic. Acum cel mai comun module DIMM- module de memorie cu două rânduri de contacte.

Lățimea magistralei de adrese determină spațiul de adrese, adică numărul de celule de memorie care pot fi adresate direct. Dacă lățimea magistralei de adrese este n, atunci numărul tuturor combinațiilor binare posibile (numărul de adrese) este determinat ca N = 2n.

Orez. 1. Organizarea comunicarii intre sistemul de memorie si procesor

Memoria unui dispozitiv de calcul poate efectua trei operații:

a) stocarea informațiilor;

b) înregistrarea informațiilor;

c) citirea informaţiei.

Specificații memorie:

Capacitatea memoriei determină cantitatea maximă de informații stocate în memorie și este măsurată în biți, octeți, kiloocteți, megaocteți, gigaocteți, terabytes etc.

Capacitatea specifică este definită ca raportul dintre capacitatea memoriei și volumul fizic pe care îl ocupă.

Densitatea de înregistrare a informațiilor este definită ca cantitatea de informații pe unitatea de suprafață a purtătorului de informații sau pe unitatea de lungime a suportului de informații.

Timp de acces la memorie. Performanța memoriei este determinată de durata operațiunilor la accesarea memoriei. Timpul de acces la scriere și timpul de acces la citire este suma timpului de căutare a unei celule de memorie la o anumită adresă și, respectiv, scrierea sau citirea efectivă.

Clasificarea memoriei:

Memoria cu acces aleatoriu

Pentru memoria cu acces aleatoriu (memorie electronică), timpul de acces nu depinde de locația secțiunii de memorie dorită. Selectarea celulelor are loc prin adresă folosind circuite electronice.

Acces ciclic direct

La contact memorie pe disc se utilizează accesul ciclic direct. Suportul de stocare se rotește continuu, astfel încât capacitatea de a accesa aceeași zonă de memorie este ciclică.

Acces serial

Accesul secvenţial la date este posibil atunci când se utilizează banda magnetică ca mediu, unde este necesară vizualizarea secvenţială a secţiunilor de mediu pentru a găsi datele necesare.

Memorie fără adresă

Dispozitivele de stocare bazate pe stivă și asociative pot fi clasificate ca fără adresă. La accesarea memoriei fără adresă, comanda de acces la memorie nu specifică adresa celulei. În dispozitivele de memorie stivuite, adresa unei celule de memorie este urmărită de un registru special de adrese. La accesarea stivei se setează adresa din acest registru. La contact memorie asociativă căutarea informațiilor se realizează prin atribut (tag) prin compararea etichetelor tuturor celulelor de memorie cu atributul asociativ. Atributul asociativ este scris pentru a efectua operația de comparare într-un registru special de atribute.

Clasificarea memoriei după scop functional:

ROM - dispozitivele de memorie doar citire sau ROM (Read Only Memory), sunt folosite pentru a stoca date permanente și programe utilitare.

SRAM - Super Random Access Memory, este un set de registre scop general- RON, destinat stocarii operanzilor si rezultatelor unei operatii in procesor.

RAM - memorie cu acces aleatoriu sau RAM (Random Access Memory - memorie cu acces aleatoriu), este folosită pentru stocarea programului de execuție și a datelor operaționale. Dacă orice registru poate fi accesat pentru scriere/citire după adresa sa, atunci o astfel de structură de registru formează o RAM cu acces aleatoriu.

Clasificare după metoda de stocare a informațiilor:

Memoria statica

În dispozitivele de stocare statică, LSI-urile sunt realizate pe elemente de memorie de declanșare bistabile (având două stări stabile - de unde și numele de memorie).

Memoria dinamică

Dispozitivele de memorie dinamică folosesc LSI-uri mai ieftine, în care elementul de stocare este un condensator. Condensatorul se descarcă în timp (aceasta este dinamica), deci este necesar să se mențină valoarea potențială prin reîncărcarea condensatorului. Acest proces se numește regenerare.

Memoria persistentă

În dispozitivele de memorie numai pentru citire, elementul de stocare este o legătură fuzibilă sau dioda semiconductoare, jucând rolul unui săritor destructibil. În ROM-urile reprogramabile, celulele realizate din tranzistori MOS cu o poartă plutitoare și izolată sunt folosite pentru a înregistra și stoca informațiile sunt înregistrate electric atunci când curentul trece prin canalul sursă/de scurgere, sarcinile sunt depuse pe poartă și sunt stocate atât timp cât; dorit. Ștergerea informațiilor se realizează prin aplicarea unei tensiuni de alt semn la secțiunea sursă/dren în ROM-uri reprogramabile cu ștergere electrică sau iradiere cu radiație ultravioletă în ROM-uri cu ștergere ultravioletă.

Memoria holografică

În dispozitivele de stocare holografică, informațiile sunt stocate în volumul unui cristal holografic sub forma unui instantaneu al interferenței a două unde, referință și informație. Acest tip promițător de dispozitive de stocare are o densitate mare de înregistrare a informațiilor și este în prezent în curs de dezvoltare.

Memoria biologică

Dispozitivele de stocare biologică utilizează modificări ale stării moleculelor organice care au capacitatea de a stoca sarcină și de a schimba electroni pentru a înregistra informații.

Memorie activată medii magnetice

În dispozitivele de stocare externe pe medii magnetice, informațiile sunt stocate sub formă de secțiuni ale suprafeței feromagnetice a unui disc sau a unei benzi magnetice magnetizate într-o anumită direcție.

Memorie optică

În dispozitivele optice de stocare externă, informațiile sunt înregistrate sub formă de secțiuni având cote diferiteîmprăștierea luminii dintr-un fascicul laser direcționat.

Memoria este una dintre componentele principale ale oricărui computer. Capacitatea și viteza sa determină în mare măsură performanța întregului sistem informatic. În acest număr, cel mai mult tehnologii importante crearea și detaliile organizării memoriei.

Tabelul 9.1. Ierarhia subsistemului de memorie PC
Tipul memoriei 1985 2000
Timp de prelevare de probe Volumul tipic Preț/octet Timp de prelevare de probe Volumul tipic Preț/octet
1 Memoria super-operatorie (registre) 0,2 5 ns 16/32 biți $ 3 - 100 0,01 1 ns 32/64/128 biți $ 0,1 10
2 Memorie tampon de mare viteză (cache) 20 100 ns 8Kb - 64Kb ~ $ 10 0,5 - 2 ns 32Kb 1Mb $ 0,1 - 0,5
3 Memoria operațională (principală). ~0,5 ms 1MB - 256MB $ 0,02 1 2 ns 20 ns 128 MB - 4 GB $ 0,01 0,1
4 Stocare externă (memorie de masă) 10 - 100 ms 1MB - 1GB $ 0,002 - 0,04 5 - 20 ms 1 GB - 0,5 TB $ 0,001 - 0,01

Registrele procesorului constituie contextul acestuia și stochează datele utilizate de instrucțiunile procesorului care execută în prezent. Registrele procesorului sunt accesate, de regulă, prin denumirile lor mnemonice din comenzile procesorului.

Cache folosit pentru a se potrivi cu viteza procesorului și a memoriei principale. Sistemele informatice utilizează cache pe mai multe niveluri: cache de nivel I (L1), cache de nivel II (L2) etc. Sistemele desktop folosesc de obicei un cache pe două niveluri, în timp ce sistemele server folosesc de obicei un cache cu trei niveluri. Cache-ul stochează instrucțiuni sau date care probabil vor fi primite de procesor pentru procesare în viitorul apropiat. Funcționarea memoriei cache este transparentă software, De aceea memorie cache de obicei nu este disponibil programatic.

RAM stochează, de regulă, module software complete funcțional (nucleul sistemului de operare, programele de execuție și bibliotecile acestora, driverele de dispozitiv utilizate etc.) și datele acestora implicate direct în funcționarea programelor și este, de asemenea, utilizat pentru salvarea rezultatelor calculelor sau alte date de prelucrare înainte de a le trimite către stocare externă, dispozitive de ieșire a datelor sau interfețe de comunicare.

Fiecare celulă memorie cu acces aleator atribuită o adresă unică. Tehnicile de alocare a memoriei organizaționale oferă programatorilor capacitatea de a utiliza eficient întregul sistem informatic. Astfel de metode includ un model de memorie continuă („plat”) și un model de memorie segmentată. Folosind model solid(model plat) de memorie, programul funcționează cu un singur spațiu de adresă continuu, un spațiu de adresă liniar în care celulele de memorie sunt numerotate secvențial și continuu de la 0 la 2n-1, unde n este adâncimea de biți a CPU la adresă. Când se utilizează un model segmentat pentru un program, memoria este reprezentată de un grup de blocuri de adrese independente numite segmente. Pentru a adresa un octet de memorie, un program trebuie să folosească o adresă logică, constând dintr-un selector de segment și un offset. Un selector de segment selectează un anumit segment, iar un offset indică o anumită celulă din spațiul de adrese al segmentului selectat.

ORGANIZAREA MEMORIEI ÎN MAȘINI DE CALCUL

Scop, parametri principali și

Clasificarea tipurilor de memorie

Dispozitivele de memorie (dispozitive de stocare) ale VM sunt proiectate pentru a înregistra, stoca și citi informațiile prezentate în formă digitală/2,3/. Dispozitivele de memorie, cum ar fi procesoarele, funcționează cu două tipuri de informații - programe și date, astfel încât caracteristicile memoriei determină în mare măsură performanța și funcţionalitate VM.

Dispozitivele de memorie funcționează în două moduri - acces la memorieȘi depozitare. În modul de acces la memorie, informațiile sunt scrise sau informațiile sunt citite din memorie. Dacă memoria nu este accesată, aceasta intră în modul de stocare.

Principalii parametri care caracterizează dispozitivele de memorie sunt capacitatea de informare (volum), performanța, consumul de energie și costul /2,5,8/.

Capacitatea de informare (volum) Un dispozitiv de memorie este determinat de cantitatea maximă de informații stocate și este măsurat în octeți, KB, MB, GB și TB.

1 KB = 2 10 octeți; 1MB = 2 20 octeți; 1 GB = 2 30 de octeți și 1 TB = 2 40 de octeți.

Performanța memoriei este caracterizată de următorii parametri principali:

timpul de prelevare (acces) t V, un interval de timp determinat între momentele semnalului de eșantionare (începutul ciclului de citire) și primirea datelor citite la ieșirea memoriei;

durata ciclului de circulație t C, care este determinat de intervalul de timp minim permis între accesările succesive la memorie. Având în vedere că accesarea memoriei înseamnă scriere sau citire, uneori se împarte durata ciclului de citire t C.CHT. Și durata ciclului de înregistrare t Ts.ZP. pentru tipurile de memorie pentru care aceste lungimi de ciclu sunt diferite, de ex. t C.CHT. ≠ t Ts.ZP .

ÎN caz general ciclul de acces constă dintr-o fază de recuperare (acces) și o fază de regenerare (recuperare) a memoriei, așadar t C > t V.

Viteza memoriei poate fi, de asemenea, caracterizată prin rata de transfer a datelor scrise sau citite și măsurate în MB/sec.

Consumul de energie pentru multe tipuri de memorie în modul de acces este semnificativ mai mare decât în ​​modul de stocare. Memoria nevolatilă în modul de stocare nu consumă deloc energie electrică. Dar o serie de tipuri de memorie, de exemplu, memoria dinamică electronică, necesită cicluri de regenerare în modul de stocare, astfel încât consumul de energie în acest mod este comparabil cu consumul de energie în modul de acces.

Pentru a compara diferite tipuri de memorie, este convenabil să utilizați consumul de energie și costul dispozitivelor de memorie reduse la o singură celulă (adică, specifice).

Un parametru important de memorie este, de asemenea latimea autobuzului date de memorie, definirea numărului de octeți care pot fi citiți sau scrieți simultan.

Dispozitivele de memorie VM pot fi clasificate după diverse criterii: după principiul fizic de funcționare, după scopul funcțional, după metoda de organizare, necesitatea alimentării cu energie în modul de stocare etc.

După principiul fizic de funcționare, memoria este clasificată în electronică, magnetică, optică, magnetic-optică.

Memorie electronică realizate pe elemente semiconductoare și implementate sub formă de LSI. Memoria electronică este împărțită în staticȘi dinamic.

În memoria statică LSI, declanșează static pe bipolar sau tranzistoare cu efect de câmp. După cum se știe, numărul de stări stabile ale unui declanșator este de două, ceea ce îi permite să fie utilizat pentru a stoca o unitate de informații - un bit. Celulele de memorie pentru stocarea octeților și cuvintelor folosesc 8 și, respectiv, 16 flip-flops.

În memoria dinamică LSI, condensatorii electrici sunt utilizați ca celule de memorie elementare. Prezența unei taxe corespunde stocării unui „1 logic”, absența unei taxe – stocării unui „0” logic. Fie capacitățile interelectrode ale tranzistoarelor MOS, fie condensatoarele MOS special create în cristalul LSI sunt utilizate ca condensatoare de stocare. Un fragment din schema bloc a memoriei dinamice, care conține două celule 1 și 2, este prezentat în Fig. 6.1.

Fiecare celulă de memorie elementară conține un condensator de stocare MOS C (zecimi de pF) și un comutator tranzistor T care conectează acest condensator la magistrala de date. Poarta comutatorului MOS a tranzistorului este conectată la ieșirea corespunzătoare a decodorului de adrese. Când este selectată o celulă, comutatorul T se deschide și conectează condensatorul C la magistrala de date. Mai mult, în funcție de tipul de comandă: scriere (WR) sau citire (RD), datele de intrare sunt scrise (DI) sau datele de ieșire sunt citite (DO) prin amplificatorul corespunzător.

Memoria dinamică în comparație cu memoria statică este semnificativ mai simplă, mai ieftină și oferă un grad foarte ridicat de integrare, adică. capacitate specifică mai mare. Dar, în comparație cu memoria dinamică statică, este mai lentă și necesită regenerare (restaurare) periodică a informațiilor din celulele elementare. Cu alte cuvinte, este necesară restabilirea periodică a încărcării condensatoarelor de stocare C, care se auto-descărcă în timp, adică. „pierde” informații. Pentru a face acest lucru, la fiecare câteva milisecunde (msec) citiți informații din celulele de memorie și apoi reînregistrare informație, care vă permite să restabiliți încărcarea la condensatoarele de stocare C. Necesitatea organizării ciclurilor periodice de regenerare (Refresh Cycles) complică oarecum gestionarea memoriei dinamice.

Pentru modulele de memorie electronice tipice, timpul de acces t V variază de la unități la zeci de nanosecunde ( nsec), iar capacitatea de informare este de zeci - sute de MB.

Memoria electronică statică și dinamică este volatil, adică Când sursa de alimentare este oprită, informațiile din celule nu sunt salvate. De asemenea este si ne volatil memorie electronică – dispozitive de memorie read-only (ROM), informații din care pot fi citite numai în timpul funcționării VM. Celulele de memorie ROM vor fi discutate mai jos.

Memoria magnetică se bazează pe prezența într-un număr de materiale magnetice (de exemplu, oxid de fier) ​​a două stări stabile de magnetizare remanentă a semnului opus. Astfel de materiale magnetice caracterizat printr-o buclă de histerezis dreptunghiulară B = f(H), iar din ele se realizează un strat magnetic de lucru, aplicat pe suprafața diferitelor medii în mișcare - discuri magnetice. Pentru a scrie și a citi informații sunt folosite capete magnetice, care sunt inductori în miniatură înfășurați pe un miez magnetic cu un spațiu. La înregistrare, capul magnetic magnetizează secțiunea stratului magnetic care trece sub spațiul de lucru în direcția determinată de direcția curentului care curge. În timpul citirii, zonele magnetizate ale suprafeței trec în apropierea capului de citire inductiv și induc impulsuri EMF în acesta. Dispozitivele de memorie care folosesc acest principiu au un cost specific foarte scăzut de stocare a informațiilor, sunt nevolatile, dar, fiind electromecanice, sunt semnificativ inferioare memoriei electronice în ceea ce privește viteza, fiabilitatea și consumul de energie. Pentru HDD-uri, rata de transfer de date ajunge la zeci de MB/sec, iar capacitatea de informare ajunge la sute de GB.



ÎN memorie optică Pentru a stoca informații, se folosește o modificare a proprietăților optice (în principal gradul de reflexie) ale suprafeței suportului. Medii optice Este realizat sub forma unui disc (Compact Disk - CD), al cărui strat reflectorizant (acoperire metalică) este acoperit cu un strat de colorant organic. La înregistrare, fasciculul laser este modulat de fluxul de biți înregistrate și arde găuri în stratul de colorant în anumite locuri ale pistei. Datorită diferenței de coeficient de reflexie a gropilor și a zonelor nearse ale suprafeței în timpul citirii, are loc o modulare a luminozității fasciculului reflectat, care codifică informațiile citite de pe CD. Sunt produse diferite tipuri de CD-uri optice: CD-ROM (Read Only Memory) - care permite doar citirea informațiilor înregistrate într-o metodă matriceală, CD-R (Recordable) - care permite cel puțin o scriere pe disc și citirea repetată, CD- RW (ReWritable) - permițând rescrierea repetată pe disc (și, desigur, citirea). Discuri optice sunt ieftine și au o capacitate de informare semnificativă (până la un GB), sunt nevolatile și ușor de înlocuit, dar în ceea ce privește viteza, fiabilitatea și consumul de energie, la fel ca discuri magnetice, sunt semnificativ inferioare memoriei electronice.

Pe baza scopului lor funcțional, dispozitivele de memorie pot fi clasificate în memorie cu acces aleatoriu (SRAM), memorie cu acces aleatoriu (RAM), memorie doar pentru citire (ROM) și dispozitiv de stocare externă (ESM).

RAM destinat stocării de programe (sistem, aplicație) și date utilizate direct de CPU în ora curentă. Duratele ciclurilor de citire și scriere pentru RAM sunt de obicei aceleași. De obicei, memoria dinamică de până la câțiva GB este utilizată ca RAM, în funcție de scopul și scopul MS.

SRAM sau memorie cache- acesta este un volum mic memorie rapidă, pentru care durata ciclului de circulaţie t C. este mai mică decât durata ciclului maşinii de procesare. Prin urmare, atunci când accesați memoria cache, nu este necesar să introduceți cicluri de așteptare ale procesorului în ciclurile de acces la memoria mașinii. Memoria cache este o memorie tampon între RAM și CPU și rulează pe memorie statică. Cache-ul stochează copii ale blocurilor (paginilor) de programe și date din acele zone de RAM care au fost accesate ultima dată, precum și un director - o listă a corespondenței lor curente cu zonele de RAM. De fiecare dată când se face un acces la RAM, controlerul cache-ului de director verifică dacă există o copie validă a blocului (pagina) solicitat în cache. Dacă există o copie acolo, atunci acesta este cazul accesări în cache, și numai memoria cache este accesată pentru date sau cod. Dacă nu există nicio copie validă acolo, atunci acesta este cazul cache miss, iar blocul (pagina) necesar din RAM este scris în cache, iar scrierea se face în locul celui mai puțin relevant bloc (pagina) eliminat anterior din memoria cache din RAM, adică. bloc de informații, numărul de accesări la care a fost cel mai mic. Datorită naturii inerente a programelor și datelor, proprietăți fundamentale, Cum spațialăȘi localitate temporară/2,7,13/ numărul de accesări în cache este de multe ori mai mare decât numărul de erori în cache chiar și cu dimensiuni mici (unități - zeci de KB) de memorie cache. Prin urmare, utilizarea memoriei cache îmbunătățește semnificativ performanța VM. De obicei, memoria cache este implementată conform unei scheme pe trei nivele: un cache primar (L1 Cache), cu o capacitate de zeci de KB, și un cache secundar (L2 Cache), cu o capacitate de sute de KB, situat în MP crystal, un cache de nivel al treilea (L3 Cache), sunt instalate unități de MB placa de sistem sau în carcasa MP.

ROM este o memorie electronică nevolatilă care este utilizată pentru a stoca informații care sunt imuabile sau rareori modificate în timpul funcționării unui VM: software de sistem (BIOS), software de aplicație pentru VM-uri încorporate și on-board, seturi de tabele, parametri de configurare diverse sistemeși așa mai departe. Principalul mod de operare al ROM-ului este citirea, ceea ce dă naștere unui alt nume comun pentru o astfel de memorie ROM (Read Only Memory). Scrierea informațiilor pe ROM, numită programare, este de obicei mult mai dificilă și necesită mai mult timp și energie decât citirea lor.

VZU sunt concepute pentru stocarea nevolatilă a unor volume mari de informații structurate specific: fișiere, baze de date, arhive. Trăsătură caracteristică memoria externă este că dispozitivele sale funcționează cu blocuri de informații, și nu cu octeți sau cuvinte, așa cum permite RAM. În plus, procesorul poate accesa VRAM doar prin RAM. Unitățile de disc (HDD-uri, CD-uri) sunt de obicei folosite ca VRAM, permițând stocarea a sute de GB de informații.

Memorie electronică tampon incluse în controlori de diverse dispozitive externe, rezolvatorii de probleme afișarea și introducerea de informații, sarcini de comunicare, conversie de semnal etc. Prezența memoriei tampon vă permite să coordonați rate de transfer de informații semnificativ diferite magistrala de sistemși dispozitivele externe, reduceți timpul în care fiecare dispozitiv extern utilizează magistrala de sistem și creșteți performanța VM.

Metoda de organizare a memoriei este determinată de metoda de plasare și căutare a informațiilor în memorie. Pe baza acestei caracteristici, ei fac distincția între organizarea memoriei de adresă, asociativă și stiva.

ÎN memorie de adrese pentru a accesa celulele de memorie sunt folosite adrese, care se referă la codurile numerelor celulelor de memorie. Organizarea memoriei adresabile vă permite să accesați celulele de memorie după adresele lor în fără o ordine anume, iar durata ciclului de circulație este aceeași pentru toate celulele, indiferent de adresă. Prin urmare, termenul „memorie cu acces aleatoriu” sau RAM (Memorie cu acces aleatoriu) este, de asemenea, folosit pentru a denumi o astfel de memorie. De exemplu, RAM și ROM au o organizare a memoriei adresabilă.

ÎN memorie asociativă(AMU) informațiile sunt căutate nu după adresele celulelor de memorie, ci după conținutul acestora sau o parte din ele. În cazul general, o solicitare către memoria asociativă este efectuată prin specificarea unei liste de biți care ar trebui să fie utilizați pentru a căuta o celulă de memorie și prin specificarea conținutului biților alocați. Lista de biți de căutat este specificată registru-mască. Acest registru are aceeași lățime de biți ca și celula de memorie a RAM și îi conține numai în acei biți care sunt căutați. ÎN registru-context conținutul acestor biți este specificat, iar adâncimea sa de biți este egală cu lățimea de biți a registrului de mască.

Dacă se găsește o celulă cu o combinație dată de zerouri și unu, ACU generează un răspuns pozitiv indicând adresa celulei găsite. Apoi, adresa este transferată către decodorul de adrese și întregul conținut al unei astfel de celule poate fi citit sau conținut nou poate fi scris în ea. În caz contrar, ACU generează un răspuns negativ la cerere.

Căutarea informațiilor în funcție de context în RAM se efectuează simultan în toate celulele de memorie, astfel încât RAM este de multe ori mai rapidă decât RAM, dar sunt și mult mai scumpe. În sistemele de calcul moderne, RAM-urile sunt utilizate, de exemplu, ca parte a memoriei cache.

Stack memorie(Stiva), la fel ca asociația, este fără adresă. O stivă poate fi văzută ca o colecție de celule care formează o matrice unidimensională în care celulele învecinate sunt conectate între ele prin circuite de transfer de cuvinte biți. În această memorie, scrierea și citirea sunt efectuate conform regulii „last input first output (LIFO)”. De aceea, stiva se numește „stocare” memorie cu în ordine inversă citind. De obicei, stiva este organizată în RAM. Numărul de cuvinte de pe stivă este determinat de registrul pointer de stivă SP, iar scrierea și citirea din stivă se realizează folosind comenzile PUSH și respectiv POP. Memoria stivă este utilizată pe scară largă, așa cum sa discutat mai sus, atunci când se gestionează întreruperi și se apelează subrutine.

Alături de memoria stivă, memoria „reviste” cu o ordine mare de citire a devenit larg răspândită, de exemplu. „primul scris citit primul” sau „First Input First Output (FIFO)”. Această memorie se numește memorie tampon și, ca și stiva, este organizată în RAM.

Organizarea subsistemului de memorie într-un PC

Dispozitivele de stocare (stocare) ale subsistemului de memorie PC pot fi aranjate în următoarea ierarhie (Tabelul 9.1):

Tabelul 9.1. Ierarhia subsistemului de memorie PC
Tipul memoriei 1985 2000
Timp de prelevare de probe Volumul tipic Preț/octet Timp de prelevare de probe Volumul tipic Preț/octet
Memorie super-operațională (registre) 0,2 5 ns 16/32 biți $ 3 - 100 0,01 1 ns 32/64/128 biți $ 0,1 10
Memorie tampon de mare viteză (cache) 20 100 ns 8Kb - 64Kb ~ $ 10 0,5 - 2 ns 32Kb 1Mb $ 0,1 - 0,5
Memoria operațională (principală). ~0,5 ms 1MB - 256MB $ 0,02 1 2 ns 20 ns 128 MB - 4 GB $ 0,01 0,1
Stocare externă (memorie de masă) 10 - 100 ms 1MB - 1GB $ 0,002 - 0,04 5 - 20 ms 1 GB - 0,5 TB $ 0,001 - 0,01

Registrele procesorului constituie contextul acestuia și stochează datele utilizate de instrucțiunile procesorului care execută în prezent. Registrele procesorului sunt accesate, de regulă, prin denumirile lor mnemonice din comenzile procesorului.

Cache-ul este folosit pentru a se potrivi cu viteza procesorului și a memoriei principale. Sistemele informatice folosesc cache-uri pe mai multe niveluri: cache de nivel I (L1), cache de nivel II (L2) etc. Sistemele desktop folosesc de obicei un cache pe două niveluri, în timp ce sistemele server folosesc de obicei un cache cu trei niveluri. Cache-ul stochează instrucțiuni sau date care probabil vor fi primite de procesor pentru procesare în viitorul apropiat. Funcționarea memoriei cache este transparentă pentru software, astfel încât memoria cache nu este de obicei accesibilă de către software.

RAM stochează, de regulă, module de program complete funcțional (nucleul sistemului de operare, programele de execuție și bibliotecile acestora, driverele de dispozitiv utilizate etc.) și datele acestora implicate direct în funcționarea programelor și este, de asemenea, folosită pentru salvarea rezultatelor calculelor sau a altor prelucrarea datelor înainte de a le trimite către dispozitive de stocare externă, dispozitive de ieșire a datelor sau interfețe de comunicare.

Fiecărei celule RAM i se atribuie o adresă unică. Tehnicile de alocare a memoriei organizaționale oferă programatorilor capacitatea de a utiliza eficient întregul sistem informatic. Astfel de metode includ un model de memorie continuă („plat”) și un model de memorie segmentată. Când se utilizează un model plat de memorie, programul funcționează cu un singur spațiu de adresă continuu, un spațiu de adresă liniar în care celulele de memorie sunt numerotate secvențial și continuu de la 0 la 2n-1, unde n este adâncimea de biți a CPU la adresă. Când se utilizează un model segmentat pentru un program, memoria este reprezentată de un grup de blocuri de adrese independente numite segmente. Pentru a adresa un octet de memorie, un program trebuie să folosească o adresă logică constând dintr-un selector de segment și un offset. Un selector de segment selectează un anumit segment, iar un offset indică o anumită celulă din spațiul de adrese al segmentului selectat.



Metodele organizaționale de alocare a memoriei fac posibilă organizarea unui sistem de calcul în care spațiul de adresă de lucru al programului depășește dimensiunea RAM disponibilă efectiv în sistem, în timp ce lipsa RAM este umplută cu memorie externă mai lentă sau mai ieftină (hard disk , memorie flash etc.) Acest concept se numește memorie virtuală. În acest caz, spațiul de adrese liniar poate fi mapat la spațiul de adrese fizice fie direct (o adresă liniară este o adresă fizică), fie folosind mecanismul de paginare. În al doilea caz, spațiul de adrese liniar este împărțit în pagini de dimensiuni egale care alcătuiesc memoria virtuală. Traducerea paginii asigură că paginile de memorie virtuală necesare sunt mapate în spațiul de adrese fizice.

Pe lângă implementarea unui sistem de memorie virtuală, memoriile externe sunt folosite pentru stocarea pe termen lung a programelor și datelor sub formă de fișiere.

Memorie cache

Memoria cache este un dispozitiv de stocare de mare viteză situat pe același cip cu procesorul sau extern procesorului. Cache-ul servește ca un buffer de mare viteză între CPU și memoria principală relativ lentă. Ideea memoriei cache se bazează pe prezicerea celui mai probabil acces CPU la RAM. Această abordare se bazează pe principiul localității temporale și spațiale a programului.



Dacă CPU a accesat orice obiect RAM, există o probabilitate mare ca CPU să acceseze acel obiect din nou în curând. Un exemplu al acestei situații ar fi codul sau datele în bucle. Acest concept este descris de principiul localității temporale, care afirmă că obiectele RAM utilizate frecvent ar trebui să fie „mai aproape” de CPU (în cache).

Pentru a coordona conținutul memoriei cache și RAM, sunt utilizate trei metode de scriere:

  • Scriere prin - RAM este actualizată simultan cu memoria cache.
  • Buffered write through - informațiile sunt păstrate într-un buffer cache înainte de a fi scrise în RAM și sunt scrise în RAM în timpul ciclurilor când CPU nu o accesează.
  • Scrie înapoi - se folosește bitul de modificare din câmpul de etichetă, iar linia este scrisă în RAM numai dacă bitul de modificare este 1.

De regulă, toate metodele de scriere, cu excepția trecerii, vă permit să amânați și să grupați operațiunile de scriere în RAM pentru a crește performanța.

Există două tipuri de blocuri de date în structura memoriei cache:

  • memorie de afișare a datelor (datele în sine, duplicate din RAM);
  • memoria etichetelor (semne care indică locația datelor din cache în RAM).

Spațiul de memorie de mapare a datelor din cache este împărțit în linii - blocuri de lungime fixă ​​(de exemplu, 32, 64 sau 128 de octeți). Fiecare linie de cache poate conține un bloc aliniat contigu de octeți din RAM. Ce bloc RAM este mapat la o linie de cache dată este determinat de eticheta de linie și de algoritmul de mapare. Pe baza algoritmilor pentru maparea memoriei RAM la cache, există trei tipuri de memorie cache:

  • cache complet asociativ;
  • cache de cartografiere directă;
  • cache asociativ multiplu.

Un cache complet asociativ este caracterizat prin faptul că controlerul cache poate plasa orice bloc de RAM în orice linie de cache (Figura 9.1). În acest caz, adresa fizică este împărțită în două părți: offset-ul din bloc (linia cache) și numărul blocului. Când un bloc este stocat în cache, numărul blocului este stocat în eticheta de linie corespunzătoare. Când CPU accesează memoria cache pentru blocul necesar, o pierdere de cache va fi detectată numai după compararea etichetelor tuturor liniilor cu numărul blocului.

Unul dintre principalele avantaje ale acestei metode de afișare este buna utilizare a RAM, deoarece Nu există restricții cu privire la ce bloc poate fi mapat la orice linie de cache dată. Dezavantajele includ implementarea hardware complexă a acestei metode, care necesită o cantitate mare de circuite (în principal comparatoare), ceea ce duce la o creștere a timpului de acces la un astfel de cache și la o creștere a costului acestuia.

Măriți imaginea
Orez. 9.1. Cache 8x8 complet asociativ pentru adresa de 10 biți

Mod alternativ Maparea memoriei RAM la cache este un cache mapat direct (sau cache asociativ cu o singură intrare). În acest caz, adresa de memorie (numărul blocului) determină în mod unic linia cache în care va fi plasat blocul dat. Adresa fizică este împărțită în trei părți: offset-ul din bloc (linia cache), numărul liniei cache și eticheta. Acesta sau acel bloc va fi întotdeauna plasat într-o linie cache strict definită, dacă este necesar înlocuind un alt bloc stocat acolo. Când CPU accesează memoria cache pentru un bloc necesar, trebuie doar să verifice eticheta unei linii pentru a determina dacă este o accesare a cache-ului sau o pierdere a memoriei cache.

Avantajele evidente ale acestui algoritm sunt simplitatea și costul redus de implementare. Dezavantajele includ eficiența scăzută a unui astfel de cache datorită posibilității reporniri frecvente linii. De exemplu, atunci când accesați fiecare a 64-a celulă de memorie din sistemul din Fig. 9.2, controlerul de cache va fi forțat să supraîncărce constant aceeași linie de cache, fără a le folosi deloc pe celelalte.

Măriți imaginea
Orez. 9.2. Cache mapat direct 8x8 pentru adresa de 10 biți

În ciuda deficiențelor evidente, această tehnologie a găsit o aplicație de succes, de exemplu, în Motorola MC68020 MP, pentru organizarea cache-ului de instrucțiuni de nivel întâi (Fig. 9.3). Acest microprocesor implementează un cache de mapare directă de 64 de linii de 4 octeți. Eticheta de linie, pe lângă cei 24 de biți care specifică adresa blocului stocat în cache, conține un bit de semnificație care determină validitatea liniei (dacă bitul de semnificație este 0, linia este considerată invalidă și nu va provoca o atingere în cache). ). Accesurile la date nu sunt stocate în cache.

Măriți imaginea
Orez. 9.3. Diagrama de organizare a memoriei cache în Motorola MC68020 MP

Un compromis între primii doi algoritmi este un cache asociativ multiplu sau un cache asociativ parțial (Figura 9.4). Cu această metodă de organizare a memoriei cache, liniile sunt combinate în grupuri, care pot include 2, 4, : linii. În conformitate cu numărul de linii din astfel de grupuri, se disting 2 intrări, 4 intrări etc. cache asociativ. La accesarea memoriei, adresa fizică este împărțită în trei părți: offset-ul din bloc (linia cache), numărul grupului (setul) și eticheta. Un bloc de memorie a cărui adresă corespunde unui anumit grup poate fi plasat în orice rând al acelui grup, iar valoarea corespunzătoare este plasată în eticheta de rând. Este evident că în cadrul grupului selectat se respectă principiul asociativității. Pe de altă parte, un anumit bloc nu se poate încadra decât într-un grup strict definit, care reflectă principiul organizării unui cache de cartografiere directă. Pentru ca procesorul să identifice o lipsă de cache, va trebui să verifice etichetele unui singur grup (2/4/8/: linii).

Măriți imaginea
Orez. 9.4. Cache-asociativ 8x8 cu două intrări pentru adresa de 10 biți

Acest algoritm display-ul combină atât avantajele unui cache complet asociativ (utilizare bună a memoriei, viteză mare) cât și al unui cache acces direct(simplitate și cost redus), doar puțin inferior în aceste caracteristici față de algoritmii originali. Acesta este motivul pentru care memoria cache asociativă multiplă este cea mai utilizată (Tabelul 9.2).

Tabelul 9.2. Caracteristicile subsistemului de memorie cache al procesorului IA-32
Intel486 Pentium Pentium MMX P6 Pentium 4
Cache de instrucțiuni L1
Tip 4 inchi. conf. univ. 2 inchi. conf. univ. 4 inchi. conf. univ. 4 inchi. conf. univ. 8 inchi. conf. univ.
Dimensiunea șirului, octeți -
Volumul total, KB 8/16 8/16 12Kmops
Cache de date L1
Tip Partajat cu memoria cache de instrucțiuni 2 inchi. conf. univ. 4 inchi. conf. univ. 2/4 inchi. conf. univ. 4 inchi. conf. univ.
Dimensiunea șirului, octeți
Volumul total, KB 8/16
cache L2
Tip Extern extern de 4 inchi. conf. univ. 4 inchi. conf. univ. 8 inchi. conf. univ.
Dimensiunea șirului, octeți
Volumul total, KB 256/512 128-2048 256/512

Note: Intel-486 folosește o singură instrucțiune L1 și cache de date. În Pentium Pro L1, memoria cache de date este asociativă de 8 KB cu 2 intrări, în alte modele P6 este asociativă de 16 KB cu 4 intrări. Pentium 4 utilizează un cache de microoperații L1 (cache de urmărire) în loc de un cache de instrucțiuni L1.

Pentru a organiza memoria cache, puteți utiliza arhitectura Princeton (cache mixt pentru instrucțiuni și date, de exemplu, în Intel-486). Această soluție evidentă (și inevitabilă pentru sistemele von Neumann cu memorie cache externă CPU) nu este întotdeauna cea mai eficientă. Împărțirea memoriei cache într-un cache de instrucțiuni și un cache de date (cache-ul Harvard) îmbunătățește eficiența cache-ului din următoarele motive:

  • Mulți procesoare moderne au o arhitectură de conducte în care blocurile transportoare funcționează în paralel. Astfel, preluarea instrucțiunilor și accesul la datele de instrucțiuni apar în diferite etape ale conductei, iar utilizarea unui cache separat permite ca aceste operațiuni să fie efectuate în paralel.
  • Cache-ul de instrucțiuni poate fi implementat doar pentru citire, prin urmare nu necesită implementarea niciunui algoritm scrie înapoi, ceea ce face ca cache-ul să fie mai simplu, mai ieftin și mai rapid.

De aceea, toate cele mai recente modele IA-32, începând cu Pentium, folosesc arhitectura Harvard pentru a organiza primul nivel cache.

criteriu munca eficienta memoria cache poate fi considerată o reducere a timpului mediu de acces la memorie în comparație cu un sistem fără memorie cache. În acest caz, timpul mediu de acces poate fi estimat după cum urmează:

T av = (T lovit x R lovit) + (T ratat x (1 R lovit))

unde T hit este timpul de acces la cache în cazul unei lovituri (include timpul pentru a identifica o ratare sau o lovitură), T miss este timpul necesar pentru a încărca un bloc din memoria principală într-o linie de cache în cazul unei rate de cache și livrarea ulterioară a datelor solicitate către procesor, frecvența R hit-hit.

Evident, cu cât valoarea R hit este mai aproape de 1, cu atât valoarea T avg este mai aproape de T hit. Rata de accesare este determinată în primul rând de arhitectura cache-ului și dimensiunea acesteia. Efectul prezenței și absenței memoriei cache și al dimensiunii acesteia asupra creșterii performanței CPU este prezentat în tabel. 9.3.

Cele mai bune articole pe această temă