Co je to Translation Lookaside Buffer?

CPU jsou neuvěřitelně složité bestie. Existuje obrovské množství vzájemně propojených částí, které musí všechny fungovat v dokonalém souladu, aby bylo dosaženo úrovně výkonu, kterou vidíme. Výkon paměti je klíčovým faktorem výkonu moderních CPU, konkrétně jako omezující faktor.

Proč je rychlost paměti tak důležitá?

Procesory jsou neuvěřitelně rychlé a nejnovější generace běží na 5,7 GHz, když jsou adekvátně chlazeny. To jim umožňuje dokončit 5,7 miliardy operací každou sekundu. Mnoho z těchto operací provádí akci s nějakým typem dat, která je třeba uložit do paměti.

Hlavní systémová paměť, známá jako RAM, je také velmi rychlá. Bohužel je to velmi rychlé ve srovnání s čímkoli jiným než CPU. Absolutní latence na moderních high-end RAM je řádově 60 nanosekund. Bohužel to znamená zhruba 342 cyklů CPU. Pro urychlení přístupu k paměti se používá mezipaměť CPU, která dynamicky ukládá data do mezipaměti. Tato mezipaměť je umístěna na samotném procesoru a používá buňky SRAM spíše než buňky DRAM, takže je mnohem rychlejší. Mezipaměť CPU je bohužel také mnohem menší než systémová RAM, obecně nedosahuje ani 100 MB. Navzdory své malé velikosti však stupňovitý systém mezipaměti CPU výrazně zvyšuje výkon systému.

Zde přichází virtuální paměť, která všechno zpacká

Moderní počítače využívají systém zvaný virtuální paměť. Spíše než přidělování adres fyzické paměti procesům se používají adresy virtuální paměti. Každý proces má svůj vlastní adresní prostor virtuální paměti. To má dvě výhody. Za prvé, poskytuje snadné oddělení mezi pamětí, která patří jednomu procesu, a pamětí, která patří jinému. To pomáhá předcházet útokům, kdy škodlivý software čte data z paměti jiného softwaru a potenciálně přistupuje k citlivým informacím. Skrývá také strukturu fyzické paměti před procesem. To umožňuje procesoru přesunout zřídka používané bity paměti do stránkovacího souboru v úložišti, aniž by bylo nutné jej odpojovat z virtuální paměti RAM. To umožňuje počítači jemně spravovat scénáře, kde je vyžadováno více paměti RAM, než je fyzicky přítomno. Bez virtuální paměti,

Bohužel, pokud používáte adresy virtuální paměti, počítač musí skutečně přeložit tyto adresy virtuální paměti na adresy fyzické paměti, aby mohl číst data. To vyžaduje tabulku pro uložení všech překladů adres virtuální paměti na adresy fyzické paměti. Velikost tohoto přímo závisí na množství používané paměti RAM. Obecně je poměrně malá, alespoň ve srovnání s kapacitou systémové RAM. Bohužel, pokud ukládáte překlad mezi virtuálními adresami a fyzickými adresami do paměti RAM, musíte na každý požadavek do paměti RAM zadat dva požadavky na RAM. Jeden pro vyhledání fyzické adresy, kterou chcete požádat, a druhý pro skutečný přístup k danému umístění.

Zadejte vyrovnávací paměť pro překlad

Řešením tohoto problému je rychlejší uložení překladové tabulky. Mezipaměť CPU by pěkně odpovídala, alespoň z hlediska rychlosti. Problém s tím je však v tom, že mezipaměť CPU je malá a již velmi vytížená. Nejen, že se tabulka nevejde do mezipaměti, ale narušilo by to její již tak výkon definující použití.

Samozřejmě, když už princip cache funguje pro přístup do paměti, proč to nezopakovat u překladové tabulky? A přesně to je Translation Lookaside Buffer neboli TLB. Je to vysokorychlostní mezipaměť pro poslední překlady adres. Není dostatečně velký, aby se do něj vešel celý stůl, ale jeho malá velikost znamená, že může reagovat velmi rychle, v rámci jediného taktu.

Jakýkoli požadavek na paměť jde přes TLB. Pokud dojde k zásahu TLB, může poskytnout adresu fyzické paměti pro skutečný požadavek, obvykle přidáním jednoho cyklu latence. Pokud dojde k chybě TLB, vyhledávání se musí provést z hlavní paměti. Nedostatek TLB má malou výkonnostní penalizaci přibližně 5 cyklů, což je ztráta více než zastíněná latencí přístupu do paměti. Jakmile je překlad adresy načten ze systémové RAM, je vložen do TLB a požadavek je poté opakován s okamžitým zásahem TLB.

Poznámka: Existují různá schémata pro vystěhování TLB. Některé mohou používat schéma First In, First Out nebo FIFO. Ostatní mohou používat schéma nejméně často používané nebo LFU.

Ve vzácných případech, kdy v tabulce překladu adres není žádný záznam, je způsobena chyba stránky, protože požadovaná data nejsou v paměti RAM. Operační systém pak musí chybu vyřešit a přenést data z úložiště do paměti RAM, než bude požadavek pokračovat.

Závěr

Translation Lookaside Buffer neboli TLB je vysokorychlostní mezipaměť CPU určená pro ukládání posledních překladů adres ze souboru stránky do systémové RAM. To je nezbytné, protože systémy virtuální paměti, jak jsou implementovány ve všech moderních počítačích, by vyžadovaly dva požadavky na RAM pro každý požadavek na RAM. Jeden pro překlad adresy virtuální paměti na adresu fyzické paměti a druhý pro skutečný přístup k fyzické adrese. Ukládáním posledních překladů do mezipaměti lze výrazně snížit latenci paměti TLB.

Je třeba dbát na to, aby překlady uložené v mezipaměti byly relevantní pro aktuálně aktivní proces. Protože každý proces má jiný virtuální adresní prostor, nelze je znovu použít. Důvodem zranitelnosti Meltdown nebylo striktní omezení.


Jak klonovat pevný disk

Jak klonovat pevný disk

V moderním digitálním věku, kde jsou data cenným aktivem, může být klonování pevného disku v systému Windows pro mnohé zásadním procesem. Tento komplexní průvodce

Jak opravit selhání načtení ovladače WUDFRd v systému Windows 10?

Jak opravit selhání načtení ovladače WUDFRd v systému Windows 10?

Setkáváte se při spouštění počítače s chybovou zprávou, která říká, že se nepodařilo načíst ovladač WUDFRd do vašeho počítače?

Jak opravit kód chyby NVIDIA GeForce Experience 0x0003

Jak opravit kód chyby NVIDIA GeForce Experience 0x0003

Máte na ploše zkušenosti s chybovým kódem 0x0003 NVIDIA GeForce? Pokud ano, přečtěte si blog a zjistěte, jak tuto chybu rychle a snadno opravit.

Co je SMPS?

Co je SMPS?

Než si vyberete SMPS pro svůj počítač, zjistěte si, co je SMPS, a význam různých hodnocení účinnosti.

Proč se můj Chromebook nezapne

Proč se můj Chromebook nezapne

Získejte odpovědi na otázku Proč se můj Chromebook nezapíná? V této užitečné příručce pro uživatele Chromebooků.

Jak nahlásit phishingové podvody společnosti Google

Jak nahlásit phishingové podvody společnosti Google

V této příručce se dozvíte, jak nahlásit podvodníka společnosti Google a zabránit mu v podvádění ostatních.

Roomba se zastaví, přilepí a otočí – oprava

Roomba se zastaví, přilepí a otočí – oprava

Vyřešte problém, kdy se váš robotický vysavač Roomba zastaví, zasekne a stále se otáčí.

Jak změnit nastavení grafiky na Steam Deck

Jak změnit nastavení grafiky na Steam Deck

Steam Deck nabízí robustní a všestranný herní zážitek přímo na dosah ruky. Chcete-li však optimalizovat své hraní a zajistit to nejlepší možné

Co je zabezpečení založené na izolaci?

Co je zabezpečení založené na izolaci?

Chtěli jsme se ponořit do tématu, které je ve světě kybernetické bezpečnosti stále důležitější: zabezpečení založené na izolaci. Tento přístup k

Jak používat Auto Clicker pro Chromebook

Jak používat Auto Clicker pro Chromebook

Dnes jsme se chtěli ponořit do nástroje, který dokáže automatizovat opakované klikání na vašem Chromebooku: Auto Clicker. Tento nástroj vám může ušetřit čas a