Papierowy młotek

Od zarania komputerowych dziejów naturalną drogą zwiększania szybkości działania procesorów – oprócz przyśpieszenia częstotliwości zegara – jest powiększanie długości słowa, czyli liczby bitów jednocześnie przetwarzanych przez jednostkę centralną. Pierwsze mikroprocesory opracowane na początku lat siedemdziesiątych, np. Intel 4004, były konstrukcjami czterobitowymi. Później nadeszła era kości ośmiobitowych, takich jak Intel 8080, Z80 i Motorola 65xxx, szeroko stosowanych w domowych maszynach, m.in. ZX Spectrum, Commodore C64 czy Atari 800XL.

Losy pecetów od ich narodzin związane są zaś ściśle z kośćmi 16-bitowymi. W roku 1981 firma IBM wybrała do swojego komputera osobistego IBM PC (Personal Computer) układ 8086 mało wówczas znanej korporacji Intel. Następnie przyszła już kolej na procesory 32-bitowe, których najmłodszymi reprezentantami są układy Intel Pentium 4 i AMD Athlon XP.

W drodze do 64 bitów

Układy 32-bitowe wykorzystywane są w naszych pecetach od siedemnastu lat, czyli od chwili wprowadzenia do sprzedaży kości Intel 80386DX. Na drodze do dalszego zwiększania szerokości obrabianego słowa binarnego stanęły wolniej ewoluujące systemy operacyjne oraz przede wszystkim brak wystarczająco dużej ilości aplikacji, które wymagają działania na większej liczbie bitów.

Nie bez winy są też i konstruktorzy, którzy przez lata koncentrowali się na poprawianiu architektury 32-bitowej, a prędkość i wydajność zwiększali, stosując głównie coraz to szybsze zegary jednostek centralnych. Istnieją jednak zastosowania wymagające od układu obsługi dłuższych słów – obliczenia inżynierskie, grafika 3D, przetwarzanie strumieni wideo i wreszcie jednoczesne serwowanie wielu plików czy obsługa zaawansowanych baz danych. We współczesnych układach bez trudu znajdziemy zatem 128-bitowe rejestry (np. dla jednostki SSE), a na rynku dużych serwerów dominują kości 64-bitowe. Co więcej, procesory graficzne już od dawna są 128- lub nawet 256-bitowe!

Obecnie coraz częściej specjaliści postulują potrzebę zwiększenia długości słowa i niejako przy okazji… dostępnej przestrzeni adresowej. Architektura 32-bitowa zapewnia bowiem “zaledwie” możliwość zaadresowania do 4 gigabajtów RAM-u, co już wkrótce z pewnością okaże się wartością zbyt małą.

Kompatybilność nade wszystko

Pierwszym 64-bitowym procesorem “zgodnym” z architekturą x86 był Intel Itanium (patrz: CHIP 4/2000, str. 130), który wykorzystywany jest obecnie w dużych, korporacyjnych systemach serwerowych. Przy konstruowaniu tego układu inżynierowie postanowili pozbyć się balastu związanego z archaicznym zestawem instrukcji x86, tworząc zupełnie nową architekturę IA-64. Dla zapewnienia kompatybilności z dotychczasowym oprogramowaniem wbudowano jednak w jądro specjalny moduł dekodujący rozkazy x86, lecz szybkość jego działania pozostawia, niestety, wiele do życzenia. W założeniu krok ten miał wymusić szybką wymianę oprogramowania na jego 64-bitowe odpowiedniki, jednak – jak wiemy – nie przyniosło to oczekiwanych rezultatów.

Nieco inną koncepcję “miękkiej przesiadki na 64 bity” proponuje firma AMD. Podobnie jak w przypadku przejścia z szesnastu na trzydzieści dwa bity, tak jak to miało miejsce dla pamiętnych układów z serii 80286 i 80368, postawiono na pełną zgodność z istniejącym oprogramowaniem. Około półtora roku temu narodził się programowy model architektury x86-64 (patrz: CHIP 10/2000, str. 40), której pierwszymi krzemowymi przedstawicielami mają być procesory z serii Hammer (ang. młotek).

Tryby pracy procesora zgodnego z x86-64
TrybWymagany system operacyjnyWymagana rekompilacja programu

Ustawienia domyślne1

Rozmiar adresu (bity)Rozmiar operandy (bity)Rozszerzenia rejestrów2 Rejestry ogólnego przeznaczenia (bity)
Tryb long3Tryb 64-bitowyNowy 64-bitowy system operacyjnytak6432tak64
Tryb kompatybilnościnie32nie32
16
Tryb legacy432- lub 16-bitowy system operacyjnynie3232nie32
1616
1) Ustawienia domyślne mogą zostać zmienione w większości trybów za pomocą prefiksów instrukcji lub bitu kontrolnego.
2) Rozszerzenia rejestrów obejmują wydłużenie rejestrów ogólnego przeznaczenia do 64-bitów, dodanie ośmiu nowych rejestrów GPR oraz ośmiu rejestrów SSE/SSE2.
3) Tryb long obsługuje tryb chroniony x86. Nie wspiera trybu rzeczywistego ani wirtualnego 8086. Nie obsługuje również przełącznika zadań.
4) Tryb legacy obsługuje wszystkie tryby pracy procesorów x86 (rzeczywisty, wirtualny, chroniony).
Więcej:bezcatnews