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 | ||||
Producent | AMD | Intel | ||
Model | Athlon 64 | Opteron | Pentium 4 F | Xeon EM64T |
Nazwa kodowa | ClawHammer, NewCastle | SledgeHammer | Prescott | Nocona |
Częstotliwość pracy | 1,8-2,4 MHz | 1,4-2,4 GHz | 3,2-3,6 GHz | 3,6 GHz |
Magistrala FSB 1) | 1600 lub 2000 MHz2) | 1600 MHz | 800 MHz | 800 MHz |
Gniazdo | Socket 754, Socket 939 | Socket 940 | FCLGA 775 | Socket 604 |
Obsługa trybu wieloprocesorowego | – | + | – | + |
Zintegrowany kontroler pamięci | + | + | – | – |
Pamięć cache L1 (dane) | 64 KB | 64 KB | 16 KB | 16 KB |
Pamięć cache L1 (instrukcje) | 64 KB | 64 KB | 12 KmOps | 12 KmOps |
Pamięć cache L2 | 1 MB | 1 MB | 1 MB | 1 MB |
Instrukcje SIMD | SSE/SSE2/3DNow! | SSE/SSE2/3DNow! | SSE/SSE2/SSE3 | SSE/SSE2/SSE3 |
Architektura | AMD64 | AMD64 | IA-32e | IA-32e |
Liczba tranzystorów | 68,5 mln | 105,9 mln | 125 mln | 125 mln |
Proces technologiczny | 130 nm | 130 nm | 90 nm | 90 nm |
Wydajność | ||||
SPECint_base2000 | 1275 | 1354 | bd. | 1085 |
SPECfp_base2000 | 1218 | 1243 | bd. | 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 | ||||