SLAT , také známý jako vnořené stránkování , je hardwarově podporovaná virtualizační technologie, která se vyhýbá režii související se softwarově spravovanými tabulkami stínových stránek .
AMD podporuje SLAT pomocí technologie Rapid Virtualization Indexing (RVI) od představení svých procesorů Opteron 3. generace (kódové označení Barcelona). Implementace Intel SLAT, známá jako Extended Page Table (EPT), byla představena v mikroarchitektuře Nehalem nalezené v některých procesorech Core i7, Core i5 a Core i3.
Rozšíření virtualizace ARM podporují SLAT, známé jako tabulky stránek Stage 2, poskytované MMU Stage-2. Host používá MMU Stage-1. Podpora byla přidána jako volitelná v architektuře ARMv7ve a je podporována také v architektuře ARMv8 (32bitová a 64bitová).
Moderní procesory používají koncepty fyzické paměti a virtuální paměti; Běžící procesy používají virtuální adresy a když instrukce požaduje přístup do paměti, procesor přeloží virtuální adresu na fyzickou adresu pomocí tabulky stránek nebo TLB. Když se virtuální systém spustí, přidělí hostitelskou virtuální paměť, která slouží jako fyzická paměť pro hosta, a stejný proces překladu adres pokračuje v hostovi. To zvyšuje náklady na přístup do paměti, protože překlad adres je třeba provést dvakrát – jednou uvnitř hosta (pomocí emulace stínové stránky) a jednou uvnitř hostitele (pomocí hardwarové tabulky stránek).
Aby byl tento překlad efektivnější, výrobci procesorů implementovali technologie běžně označované jako SLAT. Zacházením s každou fyzickou adresou hosta jako s virtuálním hostitelem může malé rozšíření hardwaru používaného k procházení nevirtualizované tabulky stránek (nyní tabulka stránek hosta) procházet hlavní tabulkou stránek. Ve víceúrovňových tabulkách stránek lze hlavní tabulku stránek koncepčně považovat za vnořenou do tabulky stránek hosta. Hardwarový hostitel tabulky stránek může s další vrstvou překladu zacházet téměř jako s přidáváním vrstev do tabulky stránek.
Při použití SLAT a víceúrovňových tabulek stránek se počet úrovní potřebných k navigaci k nalezení překladu zdvojnásobí, když je fyzická adresa hosta stejná jako virtuální adresa hosta a jsou použity stránky stejné velikosti. To zvyšuje důležitost ukládání hodnot do mezipaměti ze středních úrovní tabulek hlavních a hostujících stránek. Je také užitečné používat velké stránky v tabulkách vzorových stránek ke snížení počtu úrovní (např. na x86-64 použití 2 MB stránky odstraní jednu úroveň z tabulky stránek ). Vzhledem k tomu, že paměť je obvykle přidělována hrubozrnným virtuálním strojům, je použití velkých stránek k fyzickému překladu hosta zřejmou optimalizací, která snižuje hloubku vyhledávání a paměť potřebnou pro tabulky hlavních stránek.
Rapid Virtualization Indexing (RVI), v době svého vývoje známý jako Nested Pages Tables (NPT), je druhou generací hardwarové virtualizační technologie AMD pro jednotku správy paměti procesoru (MMU).
Výzkumný dokument VMware ukázal, že RVI přináší až 42% nárůst výkonu oproti softwarové implementaci (tabulky stínových stránek). Testy provedené společností Red Hat ukázaly zdvojnásobení výkonu pro testy OLTP.
RVI byl představen ve třetí generaci procesorů Opteron s kódovým označením Barcelona.
Extended Page Tables (EPT) je druhá generace x86 virtualizační technologie pro Memory Management Unit (MMU). Podpora EPT se nachází mezi procesory Intel Core i3, Core i5 a Core i7.
EPT je potřeba ke spuštění logického procesoru přímo v reálném režimu, který se v žargonu Intelu nazývá „neomezený host“ a zavádí se do mikroarchitektury Westmere.
Podle hodnotícího dokumentu VMware: „EPT poskytuje zvýšení výkonu až o 48 % u testů náročných na MMU a až o 600 % u mikroobjektů náročných na MMU“, ačkoli ve skutečnosti může v některých koutech zpomalit běh kódu než implementace softwaru. případy. ) případy.
Stínový engine neboli stínový stroj je technika, která poskytuje atomicitu a spolehlivost (dva ze čtyř požadavků ACID) v databázových systémech.
„Stránka“ v tomto kontextu znamená část paměti ve fyzickém úložišti (na externí paměti), obvykle o velikosti mezi 210 a 216 bajty .
Mechanismus stínové stránky je technika pro zabránění aktualizacím místních stránek. Při úpravě nějaké stránky je pro stínovou stránku přidělena paměť. Protože na stínovou stránku neodkazují jiné stránky na disku, lze ji upravovat bez obav z omezení konzistence dat. Když je stránka připravena získat vlastnost trvanlivosti, všechny stránky, které odkazují na originál, musí být aktualizovány, aby ukazovaly na novou stránku.
Pokud je nutné aktualizovat také odkazující stránky prostřednictvím stínového oznámení, lze tento postup mnohokrát opakovat, což má za následek značné množství času. Jediným řešením od WAFL je souborový systém, který usnadňuje vytváření stránek. (ukládání do mezipaměti "zapisování"). To zlepšuje výkon tím, že se vyhnete vícenásobnému zápisu v hotspotech a nad referenční hierarchií (superblok souborového systému) na úkor vysoké latence.
WAL je populárnější řešení, které využívá místní aktualizace.
V databázových systémech CPU se používá mechanismus stínové stránky "starý master-new master". V těchto systémech byl výstup každého dávkového běhu (možná celodenní práce) zapsán na dva samostatné disky nebo nějakou jinou formu paměťového média. Jeden byl uchován pro zálohování a druhý byl použit jako výchozí bod pro práci na další den.
Mechanismus stínové stránky je také podobný čistě funkční datové struktuře v tom, že se vyhýbá místním aktualizacím.
Mezi hypervizory, které podporují SLAT, patří následující:
Některé z výše uvedených hypervizorů skutečně vyžadují, aby SLAT vůbec fungoval (a nejen rychleji), protože programově neimplementují stínovou tabulku stránek. Seznam nebyl plně aktualizován, aby to odrážel.