Udostępnij przez


Tabele opisu systemu ACPI

Implementacja specyfikacji sprzętowej Advanced Configuration and Power Interface (ACPI) nie jest wymagana na platformach opartych na soC, ale wymagana jest większość specyfikacji oprogramowania ACPI (lub może). ACPI definiuje ogólny, rozszerzalny mechanizm przekazywania tabel oraz określone tabele opisujące platformę w systemie operacyjnym.

Struktury tabel i nagłówki, w tym pola identyfikatorów i sum kontrolnych, są zdefiniowane w specyfikacji ACPI 5.0. System Windows korzysta z tego mechanizmu przekazywania tabel oprócz określonych tabel opisanych w tym artykule.

Ideą stojącą za tymi tabelami jest umożliwienie ogólnego oprogramowania obsługi standardowych bloków własności intelektualnej (IP), które można integrować z różnymi platformami na różne sposoby. Dzięki strategii tabeli atrybuty zmiennej platformy określonej platformy są udostępniane w tabeli i używane przez oprogramowanie ogólne do dostosowywania się do określonego zestawu bloków IP zintegrowanych z platformą. W związku z tym oprogramowanie może być napisane raz, dokładnie przetestowane, a następnie zoptymalizowane w czasie.

Wskaźnik opisu systemu głównego (RSDP)

System Windows zależy od oprogramowania układowego UEFI do rozruchu platformy sprzętowej. W związku z tym system Windows użyje tabeli systemu EFI do zlokalizowania protokołu RSDP, zgodnie z opisem w sekcji 5.2.5.2, "Finding the RSDP on UEFI Enabled Systems" (Znajdowanie protokołu RSDP w systemach z włączonymi interfejsem UEFI) specyfikacji ACPI 5.0. Oprogramowanie układowe platformy wypełnia adres RSDT lub XSDT w RSDP. (Jeśli dostępne są oba adresy tabel, system Windows preferuje XSDT).

Tabela opisu systemu głównego (RSDT)

RsDT (lub XSDT) zawiera wskaźniki do innych tabel opisu systemu dostępnych na platformie. W szczególności ta tabela zawiera wskaźniki do następujących tabel:

  • Stała tabela sprzętowa ACPI (FADT)

  • Tabela kontrolera wielu przerwań (MADT)

  • Opcjonalnie tabela podstawowych zasobów systemowych (CSRT)

  • Tabela portów debugowania 2 (DBG2)

  • Tabela zasobów grafiki rozruchowej (BGRT)

  • Tabela danych wydajności oprogramowania układowego (FPDT)

  • Tabela opisu systemu podstawowego (DSDT)

  • Opcjonalnie dodatkowe tabele opisu systemu (SSDT)

Naprawiono tabelę opisu ACPI (FADT)

Tabela stałego sprzętu ACPI (FADT) zawiera ważne informacje na temat różnych stałych funkcji sprzętowych dostępnych na platformie. Aby obsługiwać platformy ACPI ze sprzętem zredukowanym, ACPI 5.0 rozszerza definicję tabeli FADT w następujący sposób:

  • Pole Flagi w FADT (przesunięcie 112) zawiera dwie nowe flagi.

    HARDWARE_REDUCED_ACPI przesunięcie bitowe 20. Wskazuje, że sprzęt ACPI nie jest dostępny na tej platformie. Tę flagę należy ustawić, jeśli nie zaimplementowano stałego modelu programowania sprzętowego ACPI.

    LOW_POWER_S0_IDLE_CAPABLE Przesunięcie bitowe 21. Wskazuje, że platforma obsługuje stany bezczynności niskiego zużycia energii w stanie zasilania systemu ACPI S0, które są bardziej wydajne energetycznie niż jakikolwiek stan uśpienia Sx. Jeśli ta flaga jest ustawiona, system Windows nie spróbuje usypić i wznowić działania, ale zamiast tego będzie używać stanów bezczynności platformy i trybu wstrzymania połączonego.

  • Pole FADT Preferred_PM_Profile (przesunięcie bajtu 45) ma nowy wpis roli „Tablet”. Ta rola ma wpływ na zasady zarządzania energią dla wyświetlania i wprowadzania danych wejściowych oraz wpływa na wyświetlanie klawiatur na ekranie.

  • Pole "IA-PC Flagi architektury rozruchu" (przesunięcie 109) ma nową flagę "CMOS RTC Not Present" (przesunięcie bitowe 5), która wskazuje, że CMOS RTC w komputerze albo nie jest zaimplementowany, albo nie występuje na standardowych adresach. Jeśli ta flaga jest ustawiona, platforma musi zaimplementować urządzenie ACPI Time and Alarm Method (Metoda sterowania alarmami). Aby uzyskać więcej informacji, zobacz sekcję Control Method Time and Alarm device (Urządzenie Czasu Metody Sterowania i Alarmu) w artykule ACPI defined devices (Urządzenia zdefiniowane przez interfejs ACPI).

  • Nowe pola są dodawane, aby wspierać tradycyjne uśpienie/wznawianie komputera na platformach ACPI o ograniczonej funkcjonalności sprzętowej. Te pola są ignorowane przez system Windows, ale muszą znajdować się w tabeli pod kątem zgodności.

  • Jeśli flaga HARDWARE_REDUCED_ACPI jest ustawiona, wszystkie pola odnoszące się do specyfikacji sprzętu ACPI są ignorowane przez system operacyjny.

Wszystkie inne ustawienia FADT zachowują swoje znaczenie z poprzedniej wersji ACPI 4.0. Aby uzyskać więcej informacji, zobacz sekcję 5.2.9, "Stała tabela opisu ACPI (FADT)" specyfikacji ACPI 5.0.

Wiele tabel opisów APIC (MADT)

W implementacjach PC ACPI, Tabela Opisów Wielu APIC (MADT) i deskryptory kontrolerów przerwań specyficzne dla PC są używane do opisywania modelu przerwań systemu. W przypadku platform SoC opartych na Arm, ACPI 5.0 dodaje deskryptory dla Arm Holdings' Kontrolera Przerwań GIC i Dystrybutora GIC. System Windows obejmuje obsługę skrzynki odbiorczej dla dystrybutora GIC i GIC. Aby uzyskać więcej informacji na temat tych deskryptorów, zobacz sekcje 5.2.12.14, "Struktura GIC" i 5.2.12.15, "Struktura dystrybutora GIC", specyfikacji ACPI 5.0.

Struktury deskryptora kontrolera przerwań znajdują się bezpośrednio po polu Flags w MADT. Dla platform Arm jeden deskryptor jest wymieniony dla każdego GIC, a następnie jeden dla każdego dystrybutora GIC. GIC odpowiadający procesorowi rozruchowemu musi być pierwszym wpisem na liście deskryptorów kontrolera przerwań.

Ogólna tabela opisu czasomierza (GTDT)

Podobnie jak w przypadku kontrolera przerwań, w interfejsie ACPI istnieje tabela opisująca standardowego timera. W przypadku systemów Arm korzystających z czasomierza GIT, GTDT standardu ACPI można używać, aby wykorzystać wbudowaną obsługę GIT w systemie Windows.

Tabela podstawowych zasobów systemowych (CSRT)

Podstawowe zasoby systemowe (CSR) to współużytkowane funkcje sprzętowe, takie jak kontrolery przerwań, czasomierze i kontrolery DMA, do których system operacyjny musi serializować dostęp. W przypadku, gdy istnieją standardy branżowe dla funkcji, takich jak czasomierze i kontrolery przerwań (zarówno w architekturze x86, jak i arm), kompilacje systemu Windows obsługują te funkcje w oparciu o standardowe tabele opisane w ACPI (na przykład MADT i GTDT). Jednak dopóki przemysł nie zbiega się ze standardami interfejsu kontrolera DMA, istnieje potrzeba obsługi niektórych nietypowych urządzeń w systemie operacyjnym.

System Windows obsługuje koncepcję rozszerzeń HAL w celu rozwiązania tego problemu. Rozszerzenia HAL to moduły specyficzne dla soC, implementowane jako biblioteki DLL, które dostosowują hale systemu Windows do określonego interfejsu sprzętowego określonej klasy CSR wymaganej przez system Windows. Aby zidentyfikować i załadować te niestandardowe moduły CSR, firma Microsoft zdefiniowała nową tabelę ACPI. Ta tabela z zastrzeżonym podpisem "CSRT" w specyfikacji ACPI musi być uwzględniona w RSDT, jeśli na platformie są używane niestandardowe CSR.

CSRT opisuje grupy zasobów CSR, gdzie każda grupa zasobów identyfikuje sprzęt określonego typu. System Windows używa identyfikatora podanego dla grupy zasobów, aby znaleźć i załadować wymagane rozszerzenie HAL dla tej grupy. Grupy zasobów w ramach csrT mogą również zawierać poszczególne deskryptory zasobów, w zależności od typu CSR i potrzeb rozszerzenia HAL. Format i użycie tych deskryptorów zasobów są definiowane przez autora rozszerzenia HAL, który może uczynić rozszerzenie znacznie bardziej przenośnym, a tym samym obsługiwać różne platformy SoC, po prostu zmieniając jedynie deskryptory zasobów zawarte w CSRT.

Aby obsługiwać konserwację rozszerzeń HAL i zarządzać zasobami systemowymi używanymi przez te rozszerzenia, każda grupa zasobów opisana w csrT musi być również reprezentowana jako urządzenie w przestrzeni nazw ACPI platformy. Aby uzyskać więcej informacji, zobacz następującą sekcję "Differentiated System Description Table (DSDT)". Identyfikatory urządzeń używane w nagłówku grupy zasobów muszą być zgodne z identyfikatorami używanymi w węźle przestrzeni nazw urządzenia. Aby uzyskać więcej informacji, zobacz sekcję Identyfikacja urządzenia w interfejsie ACPI w artykule Obiekty przestrzeni nazw zarządzania urządzeniami . Istnienie tych urządzeń przestrzeni nazw grupy zasobów umożliwia aktualizację rozszerzenia HAL za pomocą usługi Windows Update.

Aby uzyskać więcej informacji, zobacz specyfikację podstawowej tabeli zasobów systemowych (CSRT).

Debugowanie tabeli portów 2 (DBG2)

Firma Microsoft wymaga portu debugowania we wszystkich systemach. Aby opisać porty debugowania wbudowane w platformę, firma Microsoft definiuje tabelę portów debugowania 2 (DBG2) dla interfejsu ACPI. Ta tabela określa co najmniej jeden niezależny port na potrzeby debugowania. Obecność tabeli DBG2 wskazuje, że platforma zawiera co najmniej jeden port debugowania. Ta tabela zawiera informacje o tożsamości i konfiguracji portów debugowania. Tabela znajduje się w pamięci systemowej z innymi tabelami ACPI i musi się odwoływać w tabeli ACPI RSDT.

System Windows używa wartości typu portu w tabeli DBG2 do identyfikowania i ładowania interfejsu debugera jądra systemu (na przykład USB albo szeregowego), którego system wymaga. Następnie transport KD używa wartości Podtyp portu w tabeli DBG2 do identyfikowania interfejsu sprzętowego używanego przez port. Inne informacje w tabeli DBG2 określają adres systemowy rejestrów portów, który jest używany przez moduł interfejsu sprzętowego dla określonego podtypu. Na koniec tabela DBG2 musi zawierać odwołanie do węzła urządzenia w przestrzeni nazw ACPI, która odpowiada portowi debugowania. To odniesienie umożliwia systemowi Windows zarządzać potencjalnymi konfliktami między trybem debugowania a normalnym użytkowaniem urządzenia, jeśli istnieją, a także integrować debuger z przejściami energetycznymi.

Aby uzyskać więcej informacji, zobacz specyfikację microsoft Debug Port Table 2 (DBG2).

Tabela opisu zróżnicowanego systemu (DSDT)

W systemie ACPI urządzenia peryferyjne i funkcje sprzętu systemu na platformie są opisane w tabeli Differentiated System Description Table (DSDT), która jest ładowana podczas rozruchu, lub w pomocniczych tabelach Secondary System Description Tables (SSDTs), które są ładowane podczas rozruchu lub dynamicznie w czasie wykonywania. W przypadku SoCs konfiguracja platformy jest zwykle statyczna, więc DSDT może być wystarczająca, chociaż SSDT mogą również służyć do poprawy modułowości opisu platformy.

ACPI definiuje język interpretowany (język źródłowy ACPI lub ASL) i środowisko wykonawcze (maszyna wirtualna ACPI) do opisywania urządzeń i funkcji systemowych oraz ich kontrolek specyficznych dla platformy w sposób niezależny od systemu operacyjnego. Środowisko ASL służy do definiowania nazwanych obiektów w przestrzeni nazw ACPI, a kompilator ASL firmy Microsoft służy do tworzenia kodu bajtowego języka maszynowego ACPI (AML) na potrzeby transmisji do systemu operacyjnego w dsDT. Sterownik Windows ACPI skrzynki odbiorczej, Acpi.sys, implementuje maszynę wirtualną ACPI i interpretuje kod bajtów AML. Obiekt AML może po prostu zwrócić opisowe informacje. Lub obiekt AML może być metodą, która wykonuje obliczenia lub wykonuje operacje we/wy. Metoda sterowania to wykonywalny obiekt AML, który używa sterowników urządzeń systemu operacyjnego do wykonywania operacji we/wy na sprzęcie platformy. ASL wykorzystuje obszary robocze do abstrahowania różnych przestrzeni adresowych dostępnych w systemie operacyjnym. Metody sterujące wykonują operacje we/wy jako serię transferów do i z nazwanych pól zadeklarowanych w regionach operacyjnych.

Aby uzyskać więcej informacji na temat regionów operacyjnych, zobacz sekcję 5.5.2.4, "Dostęp do regionów operacji" w specyfikacji ACPI 5.0. Aby uzyskać więcej informacji na temat metod ASL i kontroli, zobacz sekcję 5.5, "Przestrzeń nazw ACPI", w specyfikacji ACPI 5.0.

System Windows zapewnia obsługę tworzenia i debugowania kodu ASL. Kompilator ASL zawiera dezasemblator, który umożliwia implementatorowi załadowanie przestrzeni nazw z docelowego środowiska debugowania. Kompilator ASL może następnie służyć do ponownego zastosowania przestrzeni nazw do celu szybkiego tworzenia prototypów i testowania — bez konieczności aktualizacji oprogramowania układowego systemu. Ponadto debuger jądra systemu Windows w połączeniu z sprawdzoną (CHK) wersją sterownika Acpi.sys obsługuje śledzenie i analizowanie wykonywania AML. Aby uzyskać więcej informacji, zobacz Debuger AMLI.

Tabela ograniczania zabezpieczeń programu Windows SMM (WSMT)

Specyfikacja tabeli ograniczania zabezpieczeń programu Windows SMM (WSMT) zawiera szczegółowe informacje o tabeli Advanced Configuration and Power Interface (ACPI), która została utworzona do użycia z systemami operacyjnymi Windows obsługującymi funkcje zabezpieczeń opartych na wirtualizacji systemu Windows (VBS).

Te informacje dotyczą następujących systemów operacyjnych:

Windows Server 2016

Windows 10, wersja 1607

Aby uzyskać więcej informacji, zobacz specyfikację tabeli ograniczania zabezpieczeń programu Windows SMM (WSMT) (pobieranie DOCX).

Tabela firmware rozruchowego iSCSI (iBFT)

Tabela iSCSI Boot Firmware (iBF) (iBFT) to blok informacji, który zawiera różne parametry przydatne w procesie rozruchu iSCSI. IBFT to mechanizm, za pomocą którego wartości parametrów iBF są przekazywane do systemu operacyjnego. System iBF tworzy i wypełnia iBFT. iBFT jest dostępny w systemie operacyjnym Windows, aby zapewnić spójny przepływ procesu rozruchu.

Aby uzyskać więcej informacji, zobacz specyfikację iSCSI Boot Firmware Table (iBFT) (pobieranie DOCX).