Hoppa till innehåll

Second-Level Address Translation

ArkitekturreferensFeex

Second-Level Address Translation, SLAT, är en allmän term för hårdvaruassisterad översättning från gästfysiska till värdfysiska adresser. Intel EPT och AMD NPT tillhandahåller leverantörsspecifika implementeringar.

Vad du behöver veta

Second-Level Address Translation, SLAT, är en allmän term för hårdvaruassisterad översättning från gästfysiska till värdfysiska adresser. Intel EPT och AMD NPT tillhandahåller leverantörsspecifika implementeringar.

Hur det fungerar

En gästs egna sidtabeller beskriver dess virtuella minne. En andra mappning som styrs av hypervisorn kopplar de resulterande gästfysiska adresserna till värdminne och åtkomstbehörigheter. Processorn kombinerar stegen enligt arkitekturens översättnings- och cachningsregler.

Där den är användbar

En hypervisor kan undvika att underhålla vissa former av skuggsidtabeller och istället låta hårdvaran utföra stegningen. Den återstående overheaden beror på sidstorlek, cachning av nästlade stegningar, TLB-beteende och gästminnets lokalitet.

Hur man kontrollerar stöd och aktivering

Identifiera processorleverantören och kontrollera motsvarande EPT- eller NPT-funktion genom hypervisorns diagnostikverktyg som stöds. Kontrollera de fullständiga kraven för funktionen som distribueras, inklusive stöd för fast programvara och operativsystem.

En virtualiserad distribution har flera lager: fysisk kapacitet, tillstånd i firmware, den aktiva värdhypervisorn, exponerade gästfunktioner och stöd i gäst-OS. Kontrollera lagret där operationen faktiskt körs, inklusive nästlad virtualisering när det är relevant.

Vad funktionen inte fastställer

SLAT är inte en separat universell CPUID-bit, en ersättning för IOMMU eller bevis på stöd för en viss OS-virtualiseringsprodukt. Ett generiskt SLAT-fält behöver en leverantörsspecifik tolkning och fastställer inte varje avancerad översättningsfunktion.

Kompatibilitet och prestanda i praktiken

CPU-exekvering, gästminnesöversättning och DMA-omallokering för enheter är separata funktioner. Härled inte genomströmning eller isolering från ett enskilt virtualiseringsfält. Använd hypervisorns diagnostik som stöds och exakta plattforms-/enhetskrav.

En praktisk checklista för verifiering

  1. Registrera den exakta processor- eller plattformsmodellen samt de applikations-, OS- och runtime-versioner som berörs. Behåll formuleringen av det faktiska felet eller kravet.
  2. Kontrollera tillverkarens referens för den exakta modellen och granska sedan den faktiska kapaciteten och det aktiverade tillståndet i miljön där programmet körs.
  3. Jämför varje krav för den valda binären eller renderingsmotorn. En snarlikt namngiven funktion, ett alias eller en bred teknikbeteckning räcker inte.
  4. Bekräfta att applikationen har valt den avsedda implementeringen. Använd dess dokumenterade diagnostik och en reservlösning som stöds när kraven inte uppfylls.
  5. Gör en ändring som stöds i taget och upprepa samma arbetsbelastning. Håll den ursprungliga konfigurationen och återställningsvägen tillgängliga.

Om funktionen är listad men programvaran inte kan använda den

Börja med den exakta komponenten som fallerar. En hårdvarudatabas beskriver registrerad kapacitet; operativsystemet eller hypervisorn kan exponera en annan faktisk miljö. Ett fel om otillåten instruktion kräver också undersökning av den faktiska felande instruktionen och binärbygget, eftersom korruption eller en orelaterad instruktion utan stöd kan ge ett liknande symptom.

Installera den version av applikationen, drivrutinen eller runtime-miljön som stöds för den exakta plattformen, och använd vid behov tillverkarens dokumenterade baslinje eller reservbygge. En programvaruuppdatering kan inte skapa en instruktion som processorn saknar. Ändringar i firmware och säkerhetspolicy bör följa systemtillverkarens procedur och en återställningsplan snarare än ett generiskt optimeringsrecept.

Källor och omfattning för denna förklaring

Intel 64 and IA-32 Architectures Software Developer's Manual · AMD64 Architecture Programmer's Manual, Volume 2: System Programming

Dessa referenser fastställer arkitektoniskt beteende och programvarukrav. De verifierar inte oberoende varje funktionsvärde på en länkad hårdvarumodellsida. För modellstöd, använd den sidans tillverkarbelägg och kontrollera den effektiva systemkonfigurationen. Denna artikel tillhandahåller inte ett prestandatest, en certifiering eller ett oberoende granskningsdatum.

Källor och verifiering

Redaktionellt ägarskap: Feex. Inget oberoende granskningsdatum har registrerats. Hur vi efterforskar.

Var denna artikel användbar?

Ett ja eller nej räcker. Välj en anledning om du vill, eller lägg till en kort anteckning.

Var denna artikel användbar?