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řekladu 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 vyžaduje čtení z několika míst v paměti. 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 TLF 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.