Emerytura dla 32 bitów. Intel proponuje zmiany w x86
Intel opublikował dokument opisujący korzyści z proponowanych zmian w głównej architekturze PC. Specyfikacja architektury nazwanej "X86-S" zakłada usunięcie obsługi trybów 32-bitowych oraz antycznej zgodności z 8086. Zmiany nie są jednak tym, na co wyglądają.
Dzisiejsze pecety to maszyny 64-bitowe. Ma to odzwierciedlenie w UEFI, także 64-bitowym, oraz we wszystkich głównych systemach operacyjnych, dostępnych wyłącznie w postaci 64-bitowej. Referencyjna platforma Intel obsługuje wyłącznie start w trybie czystego UEFI, a nowoczesne mechanizmy ochrony, dostępne w procesorach Core i Xeon są możliwe do wykorzystania wyłącznie przez oprogramowanie pracujące w trybie 64-bitów.
AMD64
Z tym, że dzisiejsze 64-bitowe środowisko nie jest wyłącznie 64-bitowe. Intel nazywa je, oczywiście, Intel 64, ale prawidłowa tego zestawu instrukcji to... AMD64 (w wersji podstawowej). Intel implementuje dziś nadzbiór specyfikacji ISA opracowany przez AMD, bowiem intelowskie podejście do 64 bitów zakończyło się, relatywnie, klęską - a była nią uśmiercona już inicjatywa Itanium. AMD64, zwane x86_64, jest niezwykle dosłowne w swojej nazwie symbolicznej: to literalnie rozszerzenie platformy x86 o instrukcje 64-bitowe. Klasyczne instrukcje 16-bitowe stosowane w procesorach z komputerów IBM PC i AT (iAPX 88 i 80286), wraz z 32-bitowymi instrukcjami i386, mogą być wykorzystywane przez programy w 64-bitowym systemie operacyjnym, bez translacji.
To gigantyczny ukłon w stronę zgodności, ale AMD nie miało innego wyjścia, widząc, że nawet większy gracz nie jest w stanie spopularyzować nowej architektury 64-bitowej. Procesor w ustroju AMD64 implementuje cały klasyczny zbiór trybów x86 - chroniony, rzeczywisty i wirtualny 8086, będąc w ten sposób normalnym 32-bitowym procesorem x86. Poza tym jednak oferuje mieszany tryb długi, w którym dostępna jest platforma 64-bitowa oraz tryb zgodności dla starszego kodu. Tryb ten nie jest jednak wirtualizacją ani "emulacją" (nie pomieściłoby się to w układzie).
Dalsza część artykułu pod materiałem wideo
Zgodność
Prowadzi to do zabawnych konsekwencji. Nowoczesny 64-bitowy system UEFI podczas inicjalizacji procesora, musi "wydobyć" go z trybu rzeczywistego, szeregiem resetów, aż do trybu długiego. Intel chce z tym skończyć. Propozycja X86-S opisuje bezpośredni skok do 64-bitów poprzez całkowite usunięcie niższych trybów. Oznacza to skasowanie Ring 1 i Ring 2, trybu wirtualnego 8086, kontrolera 8529A i trybu chronionego. Podzbiór 32-bitowy w trybie długim ma jednak pozostać.
Zaimplementowanie X86-S miałoby konsekwencje dla systemów operacyjnych, w tym tych 64-bitowych (musiałyby się inaczej uruchamiać!) oraz dla obsługi sprzętu. Zmiany dla aplikacji są mniejsze. Wiele opracowań na portalach technicznych pomija obecnie jedno istotne zdanie: sekcja 3.3 mówi, że warstwa zgodności w trybie długim, czyli IA32e, pozostaje dostępna. A to w niej uruchamiane są w dzisiejszych systemach 32-bitowe programy. To bardzo istotny detal.
Intel stwierdził prawdopodobnie, że nie da się dalej budować w górę wieży architektury x86, wciąż stosując tak archaiczne podstawy jak zgodność z 8086. Systemów, które je wykorzystują, i tak nie da się dziś natywnie uruchomić na pecetach.
Kamil J. Dudek, współpracownik redakcji dobreprogramy.pl