Tryb długi
Część serii o trybach |
mikroprocesorowych dla architektury x86 |
---|
|
Pierwsza obsługiwana platforma pokazana w nawiasach |
W architekturze komputerów x86-64 tryb długi to tryb, w którym 64 - bitowy system operacyjny może uzyskać dostęp do 64-bitowych instrukcji i rejestrów . Programy 64-bitowe są uruchamiane w trybie podrzędnym zwanym trybem 64-bitowym, podczas gdy programy 32-bitowe i 16-bitowe trybie chronionym są wykonywane w trybie podrzędnym zwanym trybem zgodności. Programy w trybie rzeczywistym lub wirtualnym 8086 nie mogą być natywnie uruchamiane w trybie długim.
Przegląd
Procesor x86-64 działa identycznie jak procesor IA-32 , gdy działa w trybie rzeczywistym lub trybie chronionym, które są obsługiwane w trybach podrzędnych, gdy procesor nie jest w trybie długim.
Bit w polu rozszerzonych atrybutów CPUID informuje programy w trybie rzeczywistym lub chronionym, czy procesor może przejść w tryb długi, co pozwala programowi wykryć procesor x86-64. Jest to podobne do bitu atrybutów CPUID, którego Intel IA-64, aby umożliwić programom wykrycie, czy działają w emulacji IA-32.
W przypadku komputera ze starszą wersją systemu BIOS , system BIOS i moduł ładujący działają w trybie rzeczywistym , następnie jądro 64-bitowego systemu operacyjnego sprawdza i przełącza procesor w tryb długi, a następnie uruchamia nowe wątki trybu jądra z kodem 64-bitowym. Na komputerze z systemem UEFI oprogramowanie układowe UEFI (z wyjątkiem CSM i starszej wersji Option ROM ), program ładujący UEFI i jądro systemu operacyjnego UEFI działają w trybie długim.
Ograniczenia pamięci
Podczas gdy rozmiary rejestrów wzrosły do 64 bitów w porównaniu z poprzednią architekturą x86 , adresowanie pamięci nie zostało jeszcze zwiększone do pełnych 64 bitów. Na razie niepraktyczne jest wyposażanie komputerów w wystarczającą ilość pamięci, aby wymagały pełnych 64 bitów. Dopóki tak jest, ładowanie/przechowywanie jednostek, pamięci podręcznej , MMU i TLB można uprościć bez utraty użytecznej pamięci. Pomimo tego ograniczenia oprogramowanie jest programowane przy użyciu pełnych 64-bitowych wskaźników , a zatem będą mogły wykorzystywać coraz większe przestrzenie adresowe, w miarę jak będą one obsługiwane przez przyszłe procesory i systemy operacyjne.
Aktualne limity
Pierwsze procesory obsługujące architekturę x86-64, a mianowicie procesory AMD Athlon 64 / Opteron (K8), miały 48-bitowe adresowanie wirtualne i 40-bitowe fizyczne .
Wirtualna przestrzeń adresowa tych procesorów jest podzielona na dwa 47-bitowe regiony, jeden rozpoczynający się od najniższego możliwego adresu, drugi rozciągający się w dół od największego. Próba użycia adresów spoza tego zakresu spowoduje ogólny błąd ochrony .
Limit adresowania fizycznego ogranicza ilość zainstalowanej pamięci RAM , do której komputer może uzyskać dostęp. W wieloprocesorowym ccNUMA (Opteron) obejmuje to pamięć zainstalowaną w węzłach zdalnych, ponieważ procesory mogą bezpośrednio adresować (i buforować) całą pamięć, niezależnie od tego, czy znajduje się ona w węźle domowym, czy zdalnym. Limit 1 TB (40-bitowy) dla pamięci fizycznej dla K8 jest ogromny jak na typowe standardy komputerów osobistych, ale mógł być ograniczeniem do użytku w superkomputerach. W konsekwencji mikroarchitektura K10 (lub „10h”) implementuje 48-bitowe adresy fizyczne, dzięki czemu może adresować do 256 TB pamięci RAM.
W razie potrzeby mikroarchitekturę można rozbudowywać krok po kroku bez skutków ubocznych ze strony oprogramowania i jednocześnie oszczędzać na kosztach jej wdrożenia. W celu przyszłej rozbudowy architektura obsługuje rozszerzenie wirtualnej przestrzeni adresowej do 64 bitów i adresowanie pamięci fizycznej do 52 bitów (ograniczone formatem w tablicy stron ). Pozwoliłoby to procesorowi zaadresować 264 bajty (16 eksabajtów ) wirtualnej przestrzeni adresowej i 252 bajty (4 petabajty ) fizycznej przestrzeni adresowej.
Zobacz też
Linki zewnętrzne
-
Zeichick, Alan (2003-12-03). „Platformy i narzędzia dla procesora AMD Athlon 64” . Deweloper. AMD. Zarchiwizowane od oryginału w dniu 14.02.2012.
Przewodnik po nowych funkcjach trybu długiego
- Chourdakis, Michael (21.05.2015). „Samouczek składania w trybie rzeczywistym, chronionym i długim na komputery PC” . Projekt kodu .