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í.


Leave a Comment

10 Nejlepších NAS zařízení pro ukládání dat pro domácí a profesionální použití

10 Nejlepších NAS zařízení pro ukládání dat pro domácí a profesionální použití

Ať už hledáte NAS pro váš domov nebo kancelář, podívejte se na tento seznam nejlepších NAS zařízení pro ukládání dat.

Základy 3D tisku: Tipy na údržbu vaší 3D tiskárny

Základy 3D tisku: Tipy na údržbu vaší 3D tiskárny

Údržba vašich 3D tiskáren je velmi důležitá pro dosažení nejlepších výsledků. Zde jsou některé důležité tipy, které je dobré mít na paměti.

Jak připojit notebook s Windows 11 k projektoru/TV

Jak připojit notebook s Windows 11 k projektoru/TV

Přečtěte si tento článek, abyste se dozvěděli jednoduchý krok za krokem proces, jak připojit notebook k projektoru nebo TV v OS Windows 11 a Windows 10.

Jak opravit kód chyby GeForce Now 0xC272008F

Jak opravit kód chyby GeForce Now 0xC272008F

Připravujete se na večer her a bude to velké - právě jste si pořídili hru „Star Wars Outlaws“ na streamovací službě GeForce Now. Objevte jediný známý způsob, jak opravit kód chyby GeForce Now 0xC272008F, abyste mohli znovu hrát hry od Ubisoftu.

5 Důvodů, Proč Se Váš Notebook Přehřívá

5 Důvodů, Proč Se Váš Notebook Přehřívá

Zjistěte některé možné důvody, proč se váš notebook přehřívá, spolu s tipy a triky, jak tento problém vyřešit a udržet své zařízení v chladu.

Základy 3D tisku: Kontrolní seznam údržby, který si musíte přečíst

Základy 3D tisku: Kontrolní seznam údržby, který si musíte přečíst

Udržování vašeho vybavení v dobrém stavu je nezbytné. Zde jsou některé užitečné tipy, jak udržet váš 3D tiskárnu v nejlepším stavu.

Jak nainstalovat SSD na desktop a notebooky

Jak nainstalovat SSD na desktop a notebooky

Právě jste zakoupili SSD a chtěli byste upgradovat interní úložiště svého počítače, ale nevíte, jak SSD nainstalovat? Přečtěte si tento článek nyní!

Canon Pixma MG5220: Skenování bez inkoustu

Canon Pixma MG5220: Skenování bez inkoustu

Jak povolit skenování na Canon Pixma MG5220, když dojde inkoust.

Jak najít IP adresu tiskárny

Jak najít IP adresu tiskárny

Máte problémy s nalezením IP adresy tiskárny? Ukážeme vám, jak ji najít.

Jak používat AirPods s telefony Samsung

Jak používat AirPods s telefony Samsung

Pokud si nejste jisti, zda koupit AirPods pro váš telefon Samsung, tento průvodce vám může pomoci. Nejvíce evidentní otázka je, zda jsou obě zařízení kompatibilní, a odpověď je: Ano, jsou!