Śladami AMD

O tym, że już na poważnie trzeba się zająć przesiadką z 32 na 64 bity, w komputerowym świecie mówi się coraz głośniej. Podstawowym argumentem “za” jest zwiększenie przestrzeni adresowej. Jak się okazuje, 32-bitowe układy są w stanie zaadresować maksymalnie do 4 GB pamięci. Nie jest to mało, ale wystarczy zauważyć, że w domowych maszynach z układami Pentium 4 czy Athlon XP coraz częściej spotkać można 1 lub 2 GB RAM-u, aby zrozumieć, że niebezpiecznie zbliżyliśmy się już do granicy maksymalnej obsługiwanej pojemności. Problemy braku pamięci zaczynają boleśnie odczuwać przede wszystkim projektanci serwerów. W tym segmencie rynku 4 GB stały się już bowiem standardem i do obsługi większej ilości RAM-u (do 64 GB) wykorzystuje się specjalne i niestety powolne mechanizmy wydzielania okien pamięci.

W wypadku procesorów 64-bitowych można swobodnie zaadresować aż 18,5 EB (eksabajtów), czyli 18,5×10

18

bajtów. Taką liczbę komórek pamięci trudno sobie wręcz wyobrazić, nie mówiąc już o ich wykorzystaniu w dającym się przewidzieć czasie. Drugą korzyścią wynikającą ze zwiększonej z 32 do 64 bitów szerokości słowa jest znaczny wzrost wydajności jednostki centralnej, a co ważne, wszystko to bez konieczności przyśpieszenia częstotliwości pracy zegara systemowego i szyny danych.

Kierunek – 64 bity!

Oczywiście procesory 64-bitowe są dostępne na rynku już od wielu lat. Pionierem w tej dziedzinie była nieistniejąca już firma DEC (Digital Equipment Corporation), która opracowała w 1992 roku układy z serii Alpha. 64-bitowymi jednostkami centralnymi są też kości IBM PowerPC oraz rodzina Itanium produkowana przez Intela (architektura IA-64). Z punktu widzenia typowego użytkownika peceta wszystkie wymienione CPU (Central Processing Unit) mają jedną zasadniczą wadę: są niekompatybilne z zestawem instrukcji x86. Niemożliwe jest więc na nich, bez stosowania specjalnych emulatorów, uruchamianie programów przeznaczonych dla systemów Windows oraz Linux. Owszem można te programy przekompilować, ale proces ten wymaga czasu, sporych umiejętności i nie zawsze da się go przeprowadzić bez znacznych modyfikacji kodu źródłowego.

Inną drogą podążyła firma AMD. Postawiła ona bowiem na pełną zgodność z istniejącym 32-bitowym pecetowym oprogramowaniem – podobnie jak postąpił w 1985 roku Intel przy przejściu z szesnastu (układy z serii 80286) na trzydzieści dwa bity (modele 80368). Tak narodziła się architektura AMD64 i zgodne z nią, dobrze znane kości Athlon 64 oraz serwerowy Opteron (patrz: $(LC21885:Papierowy młotek)$).

Rosnąca popularność 64-bitowych układów AMD i nieoficjalne stanowisko firmy Microsoft w sprawie produkcji tylko jednej wersji 64-bitowego systemu Windows XP (prawdopodobnie nie ujrzymy tego systemu w wersji dla kości Itanium) w pewien sposób wymusiły na Intelu rozpoczęcie produkcji własnych układów zgodnych pod względem programowym z architekturą… AMD64! Chyba po raz pierwszy w historii komputerów stało się zatem tak, że Intel nie wypromował na rynku własnego rozwiązania, które mogliby skopiować inni, ale “zapożyczył” je od konkurencji. Słowo “zapożyczyć” nie oddaje jednak do końca istoty sprawy, stąd zapisałem je w cudzysłowie, gdyż mało kto pamięta o kilku bardzo istotnych faktach. No, ale do rzeczy…

Technologia Yamhill

O tym, że Intel prowadził prace badawcze nad własnym, 64-bitowym procesorem zgodnym z listą rozkazów x86, było wiadomo już od trzech-czterech lat. Oficjalnie układ taki miał się pojawić najwcześniej w 2005-2006 roku. Całość studiów nad 64-bitowymi rozszerzeniami ukryto pod kryptonimem technologii Yamhill. Co ciekawe, prace te nie były wcale prowadzone samodzielnie przez Intela. Otóż przy uzgadnianiu programowej zgodności z architekturą x86, listą i liczbą rejestrów oraz trybami działania procesora od kilku lat Intel bardzo ściśle współpracuje z firmą… AMD.

Dzięki tej, wydawać by się mogło, nieoczekiwanej kooperacji zarówno 64-bitowe jednostki centralne Intela, jak i AMD są pod względem programowym identyczne. Nie mogło wszak być inaczej! Projektanci procesorów doskonale zdają sobie bowiem sprawę z tego, że stworzenie kilku wersji tego samego systemu operacyjnego dla różnych platform sprzętowych jest bardzo kosztowne i nawet Microsoft nie może sobie na to pozwolić – tym bardziej, że jak pokazuje praktyka z odraczaniem premiery 64-bitowego Windows XP, wystarczająco dużo kłopotów sprawia opracowanie jednego wariantu systemu. Co więcej, bez przeznaczonego na masowy rynek komercyjnego systemu operacyjnego nie ma nawet co myśleć o prawdziwej przesiadce na 64 bity.

Oczywiście na modelu programowym podobieństwa między 64–bitowymi układami AMD i Intela się kończą. Procesory obu producentów mają inną architekturę, a co za tym idzie, w inny sposób realizują swoje zadania. Niemniej nie można powiedzieć, że – jak sugerują niektóre serwisy internetowe – 64-bitowe rozszerzenia Intela są gorsze od tych zastosowanych w Athlonach 64 lub zostały “zapożyczone” od AMD. Jak już wspomniałem, obie firmy opracowały je razem i dlatego w obu wypadkach mamy do czynienia z identycznymi rozkazami, jednakową liczbą rejestrów i tym samym ich przeznaczeniem.

Porównanie 64-bitowych układów P4 z procesorami Athlon 64
ProducentAMDIntel
ModelAthlon 64OpteronPentium 4 FXeon EM64T
Nazwa kodowaClawHammer, NewCastleSledgeHammerPrescottNocona
Częstotliwość pracy1,8-2,4 MHz1,4-2,4 GHz3,2-3,6 GHz3,6 GHz
Magistrala FSB 1)1600 lub 2000 MHz2)1600 MHz800 MHz800 MHz
GniazdoSocket 754, Socket 939Socket 940FCLGA 775Socket 604
Obsługa trybu wieloprocesorowego+ +
Zintegrowany kontroler pamięci+ +
Pamięć cache L1 (dane)64 KB64 KB16 KB16 KB
Pamięć cache L1 (instrukcje)64 KB64 KB12 KmOps12 KmOps
Pamięć cache L21 MB1 MB1 MB1 MB
Instrukcje SIMDSSE/SSE2/3DNow!SSE/SSE2/3DNow!SSE/SSE2/SSE3SSE/SSE2/SSE3
ArchitekturaAMD64AMD64IA-32eIA-32e
Liczba tranzystorów68,5 mln105,9 mln125 mln125 mln
Proces technologiczny130 nm130 nm90 nm90 nm
Wydajność
SPECint_base200012751354bd.1085
SPECfp_base200012181243bd.1107
+ – jest; – – nie ma; 1) dla układów AMD podano częstotliwość magistrali HyperTransport; 2) 2000 MHz dla układów z rdzeniem NewCastle; bd. – brak danych
Więcej:bezcatnews