Translation Lookaside Buffer

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Translation Lookaside Buffer (zkratka TLB) je v informatice speciální hardwarová cache v procesoru, která má za úkol urychlit překlad virtuálních adres na fyzické. TLB obsahuje záznamy ze stránkovacích tabulek, které byly použity v poslední době, aby byl překlad virtuální adresy na fyzickou při opakovaném přístupu rychlejší.

Charakteristika[editovat | editovat zdroj]

TLB u architektury IA-32 nebo x86-64 šetří „pouze“ prohledávání víceúrovňové struktury tabulek v paměti, ale v některých jiných architekturách jsou stránkovací tabulky implementovány softwarově v jádře operačního systému a jejich prohledání je tedy velmi náročné na čas.

Hardwarově je možné TLB implementovat jako obsahem adresovatelná paměť (CAM). Vyhledávací klíč CAM je virtuální adresa a výsledkem vyhledávaní je fyzická adresa. Pokud je požadovaná adresa přítomna v TLB, výsledek CAM hledaní je rychlý a tato situace je nazývána TLB hit. Pokud požadovaná adresa v TLB uložena není, jde o tzv. TLB miss a překlad adresy pokračuje prohledáním stránkovací tabulky (tzv. page walk), což je v porovnání porovnání s rychlostí procesoru poměrně pomalý postup, protože page walk zpravidla vyžaduje čtení z několika míst v paměti (z důvodu víceúrovňové TLB). Poté co je fyzická adresa získána pomocí page walk, je mapování virtuální adresy na fyzickou je uloženo do TLB, což při příští výpočet urychlí. Velikost TLB je však omezená a déle nepoužívané záznamy jsou přepisovány novějšími. Rychlost překladu adres je závislá na tom, jak často dojde k TLB hitu, kvůli čemuž jsou prováděny optimalizace při překladu programu.