Traducere Lookaside Buffer

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Bufferul de traducere lookaside (în acronim TLB ) este un buffer pe care MMU îl folosește pentru a accelera traducerea adreselor virtuale. TLB are un număr fix de elemente ale tabelului de pagini, care este utilizat pentru maparea adreselor virtuale la adresele fizice. Memoria virtuală este spațiul văzut de un proces care poate fi mai mare decât memoria fizică reală. Acest spațiu este catalogat în pagini cu dimensiuni fixe. În general, numai unele pagini sunt încărcate în memoria fizică în zonele dependente de politica de înlocuire a paginii . Tabelul de pagini (de obicei încărcat în memorie) ține evidența locului în care sunt încărcate paginile virtuale în memoria fizică. TLB este un cache al tabelului de pagini, adică este stocat doar un subset al conținutului său.

Operațiune

Tamponul este de obicei o memorie asociativă (CAM), în care cheia de căutare este adresa virtuală și rezultatul căutării este o adresă reală sau fizică (care adesea nu sunt aceleași). Dacă căutarea produce un rezultat, valoarea tradusă este prezentă în CAM și rezultatul este utilizat. Dacă nu se returnează niciun rezultat, căutarea trece la tabelul de pagini, care durează mai multe cicluri, mai ales când tabelul este ținut în memoria externă.

Variante și optimizări

Elementele conținute în TLB se referă la adrese de memorie fizică. TLB poate sta între CPU și cache sau între cache și memoria primară. În primul caz, memoria cache este adresată folosind adresarea fizică, în al doilea caz adresarea virtuală. Dacă cache-ul este practic adresat, solicitările sunt trimise direct de la CPU către cache , care accesează TLB-ul dacă este necesar. Dacă memoria cache este adresată fizic, procesorul caută TLB pentru fiecare operație din memorie, iar adresa fizică rezultată este trimisă în memoria cache . Ambele soluții au puncte tari și puncte slabe. Cache-ul virtual adresat nu necesită acces la TLB, dar trebuie invalidat la fiecare comutator de context într-un mediu multiprocesor .

O optimizare obișnuită pentru cache-ul adresat fizic este căutarea TLB în paralel cu accesarea cache - ului . Cei mai puțin semnificativi biți ai fiecărei adrese virtuale (de exemplu, într-un sistem de memorie virtuală cu 4 KB pagini, cei 12 biți cei mai puțin semnificativi ai unei adrese virtuale) nu se modifică în traducerea adresei fizico-virtuale. Pentru fiecare acces la cache , se efectuează două operații: inserarea datelor în cache și, ulterior, o comparație a etichetei liniei găsite în cache. Dacă memoria cache este structurată astfel încât să poată fi indexată folosind doar biții care nu se modifică în timpul traducerii, își poate efectua operația de indexare în timp ce TLB traduce cei mai semnificativi biți ai adresei. În acest moment, adresa tradusă trece de la TLB la cache , care compară eticheta pentru a determina dacă accesul a fost făcut ( lovit ) sau a fost ratat ( ratat ).

În al doilea caz, două scheme diferite pot fi utilizate în arhitecturile moderne de calculatoare. Cu gestionarea hardware a TLB, același procesor derulează tabelele de pagini pentru a verifica dacă există o intrare pentru adresa de memorie virtuală respectivă. Dacă este prezent, intrarea este stocată în TLB și TLB este re-accesate (acest lucru poate deveni complicat în funcție de cât de multe ori este returnat un TLB dor). Dacă nu există nicio potrivire în tabelul de pagini, este necesară o excepție de eroare de pagină , iar sistemul de operare preia datele solicitate din memoria virtuală și le transferă în cache. Odată cu gestionarea software a TLB, o dorință TLB generează o excepție și sistemul de operare trebuie să caute în tabelele de pagini și apoi să le traducă prin software . Sistemul de operare încarcă traducerea în TLB și repornește programul din declarația care a cauzat lipsa TLB .

Bibliografie

  • ( EN ) John L. Hennessy și David A. Patterson, Computer Architecture: A Quantitative Approach , ediția a 5-a, Elsevier, 7 octombrie 2011, ISBN 9780123838735 .

Elemente conexe

Controlul autorității GND ( DE ) 4620645-0
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT