Ce este Traducere Lookaside Buffer?

CPU-urile sunt fiare incredibil de complexe. Există un număr mare de piese interconectate care toate trebuie să funcționeze la unison perfect pentru a atinge nivelurile de performanță pe care le vedem. Performanța memoriei este un factor cheie în performanța procesoarelor moderne, în special ca factor limitator.

De ce este atât de importantă viteza memoriei?

Procesoarele sunt incredibil de rapide, cu ultimele generații care rulează la 5,7 GHz atunci când sunt răcite corespunzător. Acest lucru le permite să finalizeze 5,7 miliarde de operațiuni în fiecare secundă. Multe dintre aceste operațiuni efectuează o acțiune asupra unui anumit tip de date care trebuie stocate în memorie.

Memoria sistemului principal, cunoscută sub numele de RAM, este, de asemenea, foarte rapidă. Din păcate, este foarte rapid în comparație cu orice altceva decât CPU. Latența absolută a memoriei RAM moderne de vârf este de ordinul a 60 de nanosecunde. Din păcate, asta se traduce în aproximativ 342 de cicluri CPU. Pentru a accelera accesul la memorie, se folosește un cache al procesorului care memorează în cache datele în mod dinamic. Acest cache este situat pe matrița CPU și folosește celule SRAM mai degrabă decât celule DRAM, ceea ce face mult mai rapid. Din păcate, memoria cache a procesorului este, de asemenea, mult mai mică decât RAM de sistem, în general nu totalizează nici măcar 100 MB. Totuși, în ciuda dimensiunilor sale mici, sistemul de cache al procesorului în niveluri crește masiv performanța sistemului.

Aici vine memoria virtuală pentru a încurca totul

Calculatoarele moderne folosesc un sistem numit memorie virtuală. În loc să aloce adrese de memorie fizică proceselor, sunt folosite adrese de memorie virtuală. Fiecare proces are propriul spațiu de adrese de memorie virtuală. Acest lucru are două beneficii. În primul rând, oferă o separare ușoară între memoria care aparține unui proces și memoria care aparține altuia. Acest lucru ajută la prevenirea atacurilor în care software-ul rău intenționat citește date din memoria altor software-uri, accesând potențial informații sensibile. De asemenea, ascunde structura memoriei fizice de proces. Acest lucru permite procesorului să mute biți de memorie rar utilizați într-un fișier de paginare de pe stocare, fără a-l demonta neapărat din memoria RAM virtuală. Acest lucru permite computerului să gestioneze cu ușurință scenariile în care este necesară mai multă RAM decât este prezentă fizic. Fără memorie virtuală,

Din păcate, dacă utilizați adrese de memorie virtuală, computerul trebuie să traducă efectiv acele adrese de memorie virtuală în adrese de memorie fizică pentru a citi datele. Acest lucru necesită un tabel pentru a stoca toate traducerile adreselor de memorie virtuală în adrese de memorie fizică. Mărimea acestuia depinde direct de cantitatea de RAM utilizată. În general, este destul de mic, cel puțin în comparație cu capacitatea RAM de sistem. Din păcate, dacă stocați traducerea dintre adresele virtuale și adresele fizice în RAM, trebuie să faceți două solicitări către RAM pentru fiecare solicitare către RAM. Una pentru a găsi adresa fizică de solicitat și apoi alta pentru a accesa efectiv acea locație.

Introduceți memoria tampon de traducere

Soluția la această problemă este să stocați tabelul de traducere undeva mai rapid. Cache-ul CPU s-ar potrivi bine, cel puțin din perspectiva vitezei. Problema cu asta, totuși, este că memoria cache a procesorului este mică și deja utilizată intens. Nu numai că tabelul nu se potrivește în cache, dar acest lucru ar întrerupe utilizarea deja care definește performanța.

Desigur, dacă principiul cache-ului funcționează deja pentru accesul la memorie, de ce să nu îl repetați pentru tabelul de traducere? Și exact asta este Translation Lookaside Buffer, sau TLB. Este o memorie cache de mare viteză pentru traducerile recente de adrese. Nu este suficient de mare pentru a stoca întreaga masă, dar dimensiunea sa mică înseamnă că poate răspunde foarte rapid, într-un singur ciclu de ceas.

Orice solicitare de memorie trece prin TLB. Dacă există un hit TLB, acesta poate furniza adresa de memorie fizică pentru cererea reală, adăugând de obicei un singur ciclu de latență. Dacă există o pierdere TLB, căutarea trebuie efectuată din memoria principală. Există o mică penalizare de performanță pentru o pierdere TLB de aproximativ 5 cicluri, o pierdere mai mult decât eclipsată de latența accesului la memorie. Odată ce traducerea adresei este preluată din RAM de sistem, aceasta este împinsă în TLB și cererea este apoi repetată cu o lovitură imediată a TLB.

Notă: Există diferite scheme pentru evacuarea TLB. Unii pot folosi o schemă First In, First Out sau FIFO. Alții pot folosi o schemă cel mai puțin utilizată sau LFU.

În cazul rar în care nu există nicio intrare în tabelul de traducere a adreselor, este cauzată o eroare a paginii, deoarece datele solicitate nu sunt în RAM. Sistemul de operare trebuie apoi să gestioneze defecțiunea și să transfere datele din stocare în RAM înainte ca cererea să poată continua.

Concluzie

Traducere Lookaside Buffer, sau TLB, este o memorie cache a CPU de mare viteză dedicată stocării în cache a traducerilor recente de adrese din fișierul de pagină din RAM de sistem. Acest lucru este necesar deoarece sistemele de memorie virtuală, așa cum sunt implementate în toate computerele moderne, ar necesita două solicitări către RAM pentru fiecare cerere către RAM. Una pentru a traduce adresa de memorie virtuală într-o adresă de memorie fizică și alta pentru a accesa efectiv adresa fizică. Prin memorarea în cache a traducerilor recente, latența memoriei poate fi redusă foarte mult pentru accesările TLB.

Trebuie avut grijă să vă asigurați că traducerile stocate în cache sunt relevante pentru procesul activ în prezent. Deoarece fiecare proces are un spațiu de adrese virtual diferit, ele nu pot fi reutilizate. Nelimitarea strictă a acestui lucru a fost cauza din spatele vulnerabilității Meltdown.



Leave a Comment

Cum se clonează un hard disk

Cum se clonează un hard disk

În era digitală modernă, în care datele sunt un bun valoros, clonarea unui hard disk pe Windows poate fi un proces crucial pentru mulți. Acest ghid cuprinzător

Cum să remediați driverul WUDFRd care nu s-a încărcat pe Windows 10?

Cum să remediați driverul WUDFRd care nu s-a încărcat pe Windows 10?

În timpul pornirii computerului, vă confruntați cu mesajul de eroare care spune că driverul WUDFRd nu s-a încărcat pe computer?

Cum să remediați codul de eroare NVIDIA GeForce Experience 0x0003

Cum să remediați codul de eroare NVIDIA GeForce Experience 0x0003

Aveți experiența NVIDIA GeForce cu codul de eroare 0x0003 pe desktop? Dacă da, citiți blogul pentru a afla cum să remediați această eroare rapid și ușor.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Cum să eliminați un GPU de pe un computer Windows în 2023

Cum să eliminați un GPU de pe un computer Windows în 2023

Trebuie să eliminați GPU-ul de pe computer? Alăturați-vă pentru a explica cum să eliminați un GPU de pe computer în acest ghid pas cu pas.

Cum se instalează un SSD NVMe pe un desktop și laptop

Cum se instalează un SSD NVMe pe un desktop și laptop

Ați cumpărat un nou SSD NVMe M.2, dar nu știți cum să îl instalez? Citiți mai departe pentru a afla cum să instalați un SSD NVMe pe laptop sau desktop.

Ce este o bombă logică?

Ce este o bombă logică?

O bombă logică este un incident de securitate în care un atacator stabilește o acțiune întârziată. Continuați să citiți pentru a afla mai multe.

Ce este un SoC?

Ce este un SoC?

Dacă v-ați uitat vreodată în interiorul unui turn de PC, puteți vedea că există o mulțime de componente diferite. Laptopul tău obișnuit conține majoritatea componentelor

Ce este criptarea asimetrică?

Ce este criptarea asimetrică?

Algoritmii de criptare asimetrică utilizează două chei distincte. O cheie este folosită pentru criptare, iar cealaltă pentru decriptare.

Steam Deck: Cum se formatează cardul SD

Steam Deck: Cum se formatează cardul SD

Steam Deck vine în trei opțiuni de stocare: eMMC de 64 GB, SSD NVMe de 256 GB și SSD NVMe de 512 GB. În funcție de biblioteca dvs. de jocuri și de dimensiunea jocurilor