Bufferul Asociației de traduceri

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 30 decembrie 2019; verificările necesită 7 modificări .

O  memorie tampon de traducere ( TLB ) este o memorie cache specializată a CPU utilizată pentru a accelera traducerea unei adrese de memorie virtuală într-o adresă de memorie fizică.

Prezentare generală

TLB este folosit de toate procesoarele moderne cu suport pentru paginarea în memorie . TLB conține un set fix de intrări (de la 8 la 4096) și este o memorie asociativă . Fiecare intrare conține corespondența adresei paginii de memorie virtuală cu adresa memoriei fizice. Dacă adresa nu se află în TLB, procesorul ocolește tabelele de pagini și stochează adresa rezultată în TLB, ceea ce durează de 10 până la 60 de ori mai mult decât obținerea adresei dintr-o intrare deja stocată în cache de TLB. Probabilitatea unei rate de TLB este scăzută, cu o medie între 0,01% și 1%.

Comutarea sarcinilor

Dacă sarcina țintă folosește un context de memorie diferit (director de pagină și tabele de pagini) în timpul unei comutări de context , TLB este șters, reducând astfel performanța procesorului la accesările ulterioare la memorie (necesită ca intrările din tabelul de pagini să fie încărcate într-un TLB gol). Există mai multe strategii pentru a gestiona curățarea:

TLB-uri pe mai multe niveluri

În procesoarele moderne, mai multe niveluri TLB pot fi implementate cu viteze și dimensiuni diferite. Cel mai de sus TLB va conține un număr mic de intrări, dar va funcționa la o viteză foarte mare, până la câteva cicluri. Nivelurile ulterioare devin mai lente, dar în același timp mai mari.

Uneori, TLB de nivel superior este împărțit în 2 buffere, unul pentru paginile care conțin cod executabil și unul pentru procesarea datelor.

Caracteristici

Specificații tipice pentru procesoare în 2009 [1] :

TLB și pagini mari

Multe procesoare moderne acceptă 2 tipuri de pagini, normale și mari ( Huge Page ). De exemplu, procesoarele x86 funcționează de obicei cu pagini de 4 KB, dar permit pagini de 4 MB folosind PSE . Pentru procesoarele x86-64 , paginile mari sunt disponibile în 2 MB [2] (și 1 GB pentru unele modele).

Înregistrările de traducere pentru tabelele mari sunt, de asemenea, stocate în TLB, dar pe unele procesoare este folosit un TLB separat de 4 până la 8 înregistrări.

Vezi și

Note

  1. John L. Hennessy. Organizarea și proiectarea computerelor. interfață hardware/software. Ediția a 4-a  (engleză) . - Burlington, MA 01803, SUA: Morgan Kaufmann Publishers , 2009. - P. 503. - 703 p. — ISBN 978-0-12-374493-7 .
  2. Hugepages - Debian Wiki . Preluat la 1 iunie 2012. Arhivat din original la 30 aprilie 2012.

Link -uri