Mikroprocesory firmy AMD z rodziny K8 są zbudowane według technologii znanej pod nazwą Hammer. Podstawowe cechy technologii Hammer to: 64-bitowa architektura AMD64 (wewnętrzna i zewnętrzna) wbudowany kontroler pamięci obsługa kodu 32-bitowego praca wieloprocesorowa
Opis technologii 64-bitowa architektura AMD64
thumb|300px|Architektura procesorów AMD z serii K8 thumb|300px|Schemat rejestrów wewnętrznych procesora wykonanego w architekturze AMD64 Szyna danych i wszystkie rejestry wewnętrzne mają długość 64 bitów, w porównaniu do 32 bitów w architekturze IA-32. Umożliwia to przetwarzanie 64-bitowych liczb przy pomocy jednego rozkazu kodu maszynowego oraz pozwala zaadresować 4294967296 razy więcej pamięci (nawet do 256 TB; fizyczna przestrzeń adresowa ma wielkość 264, przestrzeń adresowa pojedynczego procesu – 248). Obecnie produkowane procesory AMD mają szyne adresową szerokości 40 bitów, co pozwala zaadresować 1 terabajt pamięci.
Rejestry ogólnego przeznaczenia rozszerzono o dodatkowe 32 bity, dostępne jedynie w 64-bitowym trybie pracy. Dodano również 8 dodatkowych, 64-bitowych rejestrów ogólnego przeznaczenia oraz 8 dodatkowych 128-bitowych rejestrów SSE (również dostępnych jedynie w trybie 64-bitowym). Rozszerzenie rejestrów dokładniej wyjaśnia schemat. Dwukrotnie większa liczba rejestrów pozwala procesorowi rzadziej odwoływać się do pamięci podręcznej (gdyż więcej danych można przechowywać w rejestrach), co znacznie przyspiesza wykonanie programów (nawet samo przekompilowanie kodu nie używającego 64-bitowych danych tak, aby wykorzystywał dodatkowe rejestry, powoduje znaczny wzrost szybkości wykonywania).
Technologia NX-bit
Wbudowany kontroler pamięci W celu skrócenia czasu dostępu do pamięci, a tym samym skrócenia czasu gdy procesor nie wykonuje żadnych rozkazów czekając na dane z pamięci, w rdzeniach procesorów rodziny K8 zintegrowano kontroler pamięci. Eliminuje to pośrednictwo mostka północnego płyty głównej (chipsetu) i przyspiesza czas odczytu i zapisu z i do pamięci.
Wadą takiego rozwiązania jest uzależnienie stosowanego rodzaju pamięci od procesora. O ile w przypadku, gdy kontroler pamięci znajduje się w mostku północnym wystarczy nowy model mostka, aby przygotować procesor do pracy z innym rodzajem pamięci, o tyle kontroler wbudowany w procesor obsługuje tylko jeden rodzaj pamięci. Różne modele procesorów K8 wymagają jednego lub dwóch kanałów pamięci DDR SDRAM.
Obsługa kodu 32-bitowego Procesory K8 mogą pracować w jednym z 3 trybów: Legacy Mode, Long 64-bit Mode oraz Long Compatibility Mode. W domyślnym trybie Legacy są one całkowicie zgodne z 16- i 32-bitowym oprogramowaniem i systemami operacyjnymi. W tym trybie dodatkowe 64-bitowe rejestry nie są używane, a rejestry ogólnego przeznaczenia ograniczone są do 32 bitów. Również dodatkowe rejestry SSE oraz rozkazy trybu 64-bitowego są zablokowane – nie potrzeba więc emulować pracy procesora 32-bitowego, jak w procesorach o architekturze IA-64 (Intel Itanium oraz Itanium 2). Emulacja musiałaby być dokonywana pod kontrolą 64-bitowego systemu operacyjnego, a wydajność sprzętowego emulatora mniejsza niż prawdziwego procesora 32-bitowego.
Rozszerzenia 64-bitowe AMD64 można wykorzystać dopiero w trybie Long, wymagającym 64-bitowego systemu operacyjnego. System narzuca procesorowi Long 64-bit Mode, wymagający wyłącznie aplikacji 64-bitowych, lub Long Compatibility Mode, w którym można wykonywać programy zarówno 64- jak i 32-bitowe (również bez konieczności emulacji ani tłumaczenia rozkazów). W trybie Long Compatibility Mode oprogramowanie 32-bitowe może korzystać z pełnej przestrzeni adresowej trybu 64-bitowego.
Biorąc pod uwagę zgodność z x86 w trybie Legacy oraz małą dostępność oprogramowania (szczególnie systemów operacyjnych) 64-bitowego, można procesory K8 traktować jako niezwykle szybkie procesory 32-bitowe. Dzięki ulepszonej architekturze serii K7 są one wydajniejsze od K7 nawet w ograniczającym trybie Legacy.
Praca wieloprocesorowa Dzięki zastosowaniu łącza HyperTransport procesory AMD K8 są dobrze przystosowane do pracy w konfiguracjach wieloprocesorowych. W porównaniu do Athlona MP, który wymagał oddzielnego układu mostkującego na każdą parę procesorów oraz prowadzenia mnóstwa skomplikowanych ścieżek (co utrudniało zaprojektowanie i zwiększało koszty płyty głównej), zastosowanie kilku procesorów K8 jest bardzo proste i tanie w implementacji. Procesory komunikują się ze sobą przez łącze HyperTransport, które składa się z niewielkiej liczby połączeń elektrycznych, co nie wymaga drogich, wielowarstwowych płyt głównych. Tylko jeden z procesorów musi mieć połączenie z układami płyty głównej, takimi jak mostek północny (a za jego pośrednictwem magistrale PCI-Express, PCI, kontrolery dysków, karty sieciowe itp.). Ponieważ każdy z procesorów ma wbudowany kontroler pamięci, każdy ma własną magistralę danych, co eliminuje konieczność dzielenia pasma przepustowości pamięci między procesory (jak w konfiguracjach wieloprocesorowych firmy Intel), teoretycznie przepustowość podsystemu pamięci rośnie liniowo z każdym dodatkowym procesorem.
Opis układów Poniżej znajduje się klasyfikacja procesorów AMD K8 według jąder, na których zostały zbudowane.
Jądro Clawhammer (Athlon 64, Athlon 64 FX, Mobile Athlon 64) zestaw instrukcji: RISC – IA-32 – x86-64 – MMX – 3DNow! – SSE – SSE2 pamięć podręczna: 128 kb L1, 1024 kb L2 (w niektórych procesorach połowa pamięci L2 jest fabrycznie zablokowana, zwykle z powodu wad produkcyjnych w drugiej połowie; takie procesory mają tylko 512 kb L2) procesor częstotliwość pamięćpodręczna¹ FSB mnożnik napięcie energia² wymiary³ podstawka DDR Athlon 64 2800+ 1800 MHz 128/512 200 MHz 9,0x 1,5V 57.8A89W70 °C 105,9M130 nm193mm² Socket 754 SC Athlon 64 3000+ 2000 MHz 128/512 200 MHz 10,0x 1,5V 57.8A89W70 °C 105,9M130 nm193mm² Socket 754 SC Athlon 64 3200+ 2000 MHz 128/1024 200 MHz 10,0x 1,5V 57.8A89W70 °C 105,9M130 nm193mm² Socket 754 SC Athlon 64 3700+ 2400 MHz 128/1024 200 MHz 12,0x 1,5V 57.8A89W70 °C 105,9M130 nm193mm² Socket 754 SC Athlon 64 3500+ 2200 MHz 128/512 200 MHz 11,0x 1,5V 54.8A89W70 °C 105,9M130 nm193mm² Socket 939 DC Athlon 64 4000+ 2400 MHz 128/1024 200 MHz 12,0x 1,5V 54.8A89W70 °C 105,9M130 nm193mm² Socket 939 DC Athlon 64 FX-53 2400 MHz 128/1024 200 MHz 12,0x 1,5V 54.8A89W70 °C 105,9M130 nm193mm² Socket 939 DC Athlon 64 FX-55 2600 MHz 128/1024 200 MHz 13,0x 1,5V 54.8A89W70 °C 105,9M130 nm193mm² Socket 939 DC Athlon 64 FX-51 2200 MHz 128/1024 200 MHz 11,0x 1,5V 54.8A89W70 °C 105,9M130 nm193mm² Socket 940 DC Athlon 64 FX-53 2400 MHz 128/1024 200 MHz 12,0x 1,5V 54.8A89W70 °C 105,9M130 nm193mm² Socket 940 DC Athlon 64 M 2800+ 1600 MHz* 128/1024 200 MHz 8,0x* 0,95~1,4V 11,4~42,7A11,4~42,7A95,0 °C 105,9M130 nm193mm² Socket 754 SC Athlon 64 M 2800+ DTR 1600 MHz* 128/1024 200 MHz 8,0x* 1,1~1,5V 15,3~52,9A19,0~81,5W95,0 °C 105,9M130 nm193mm² Socket 754 SC Athlon 64 M 3000+ 1800 MHz* 128/1024 200 MHz 9,0x* 0,95~1,4V 11,4~42,7A11,4~42,7A95,0 °C 105,9M130 nm193mm² Socket 754 SC Athlon 64 M 3000+ DTR 1800 MHz* 128/1024 200 MHz 9,0x* 1,1~1,5V 15,3~52,9A19,0~81,5W95,0 °C 105,9M130 nm193mm² Socket 754 SC Athlon 64 M 3200+ 2000 MHz* 128/1024 200 MHz 10,0x* 0,95~1,4V 11,4~42,7A11,4~42,7A95,0 °C 105,9M130 nm193mm² Socket 754 SC Athlon 64 M 3200+ DTR 2000 MHz* 128/1024 200 MHz 10,0x* 1,1~1,5V 15,3~52,9A19,0~81,5W95,0 °C 105,9M130 nm193mm² Socket 754 SC Athlon 64 M 3400+ 2200 MHz* 128/1024 200 MHz 11,0x* 0,95~1,4V 11,4~42,7A11,4~42,7A95,0 °C 105,9M130 nm193mm² Socket 754 SC Athlon 64 M 3400+ DTR 2200 MHz* 128/1024 200 MHz 11,0x* 1,1~1,5V 15,3~52,9A19,0~81,5W95,0 °C 105,9M130 nm193mm² Socket 754 SC Athlon 64 M 3700+ DTR 2400 MHz* 128/1024 200 MHz 12,0x* 1,1~1,5V 15,3~52,9A19,0~81,5W95,0 °C 105,9M130 nm193mm² Socket 754 SC
¹ – pierwsza liczba oznacza rozmiar pamięci cache L1 zaś druga rozmiar cache L2 (w kilobajtach)
² – pierwsza liczba oznacza średni pobór prądu, druga – moc, trzecia – maksymalną temperaturę pracy
³ – pierwsza liczba oznacza ilość tranzystorów (w mln), druga proces technologiczny (szerokość ścieżki), trzecia powierzchnię jądra SC – Single-Channel DC – Dual-Channel – procesory Athlon 64 M (Mobile) pracują z mnożnikiem zmiennym w zależności od obciążenia procesora i możliwości zasilania; liczba w tabelce określa maksymalna nominalną częstotliwość/mnożnik. † – QDR, w odróżnieniu od DDR dla pozostałych procesorów
Jądro Newcastle (Athlon 64) zestaw instrukcji: RISC – IA-32 – x86-64 – NX-bit – MMX – 3DNow! – SSE – SSE2 pamięć podręczna: 128 kb cache L1, 512 kb cache L2 procesor częstotliwość pamięćpodręczna¹ FSB mnożnik napięcie energia² wymiary³ podstawka DDR Athlon 64 2800+ 1800 MHz 128/512 200 MHz 9,0x 1,5V 57,8A89,0W70,0 °C 68,5M130 nm144mm² Socket 754 SC Athlon 64 3000+ 2000 MHz 128/512 200 MHz 10,0x 1,5V 57,8A89,0W70,0 °C 68,5M130 nm144mm² Socket 754 SC Athlon 64 3200+ 2200 MHz 128/512 200 MHz 11,0x 1,5V 57,8A89,0W70,0 °C 68,5M130 nm144mm² Socket 754 SC Athlon 64 3400+ 2400 MHz 128/512 200 MHz 11,0x 1,5V 57,8A89,0W70,0 °C 68,5M130 nm144mm² Socket 754 SC Athlon 64 3500+ 2200 MHz 128/512 200 MHz 11,0x 1,5V 57,4A89,0W70,0 °C 68,5M130 nm144mm² Socket 939 DC Athlon 64 3800+ 2400 MHz 128/512 200 MHz 12,0x 1,5V 57,4A89,0W70,0 °C 68,5M130 nm144mm² Socket 939 DC
Jądro Winchester (Sempron, Athlon 64) zestaw instrukcji: RISC – IA-32 – x86-64 – NX-bit – MMX – 3DNow! – SSE – SSE2 pamięć podręczna: 64 kb cache L1, 512 kb cache L2 (niektóre procesory – 128 kb cache L2 – patrz nota dot. jądra Clawhammer)
procesor częstotliwość pamięćpodręczna¹ FSB mnożnik napięcie energia² wymiary³ podstawka DDR Sempron 2600+ 1600 MHz 64/128 200 MHz 8,0x 1,4V 42,7A62,0W69,0 °C 68,5M90 nm84mm² Socket 754 SC Athlon 64 3000+ 1800 MHz 64/512 200 MHz 9,0x 1,4V 45,8A67,0W65,0 °C 68,5M90 nm84mm² Socket 939 DC Athlon 64 3200+ 2000 MHz 64/512 200 MHz 10,0x 1,4V 45,8A67,0W65,0 °C 68,5M90 nm84mm² Socket 939 DC Athlon 64 3500+ 2200 MHz 64/512 200 MHz 11,0x 1,4V 45,8A67,0W65,0 °C 68,5M90 nm84mm² Socket 939 DC
Jądro Venice (Athlon 64) zestaw instrukcji: RISC – IA-32 – x86-64 – NX-bit – MMX – 3DNow! – SSE – SSE2 – SSE3 pamięć podręczna: 128 kb cache L1, 512 kb cache L2
procesor częstotliwość pamięćpodręczna¹ FSB mnożnik napięcie energia² wymiary³ podstawka DDR Athlon 64 3000+ 2000 MHz 128/512 200 MHz 10,0x 1,4V ? A51,0W65,0 °C 76,0M90 nm84mm² Socket 754 SC Athlon 64 3200+ 2200 MHz 128/512 200 MHz 11,0x 1,4V ? A59,0W69,0 °C 76,0M90 nm84mm² Socket 754 SC Athlon 64 3000+ 1800 MHz 128/512 200 MHz 9,0x 1,35~1,4V 47,5A67,0W65,0 °C 76,0M90 nm84mm² Socket 939 DC Athlon 64 3200+ 2000 MHz 128/512 200 MHz 10,0x 1,35~1,4V 47,5A67,0W65,0 °C 76,0M90 nm84mm² Socket 939 DC Athlon 64 3500+ 2200 MHz 128/512 200 MHz 11,0x 1,35~1,4V 47,5A67,0W65,0 °C 76,0M90 nm84mm² Socket 939 DC Athlon 64 3800+ 2400 MHz 128/512 200 MHz 12,0x 1,35~1,4V ? A89,0W65,0 °C 76,0M90 nm84mm² Socket 939 DC
Jądro San Diego (Athlon 64, Athlon 64 FX) zestaw instrukcji: RISC – IA-32 – x86-64 – NX-bit – MMX – 3DNow! – SSE – SSE2 – SSE3 pamięć podręczna: 128 kb cache L1, 1024 kb cache L2 (niektóre procesory – 512 kb L2, patrz jądro Clawhammer)
procesor częstotliwość pamięćpodręczna¹ FSB mnożnik napięcie energia² wymiary³ podstawka DDR Athlon 64 3700+ 2200 MHz 128/1024 200 MHz 11,0x 1,35~1,4V ? A89,0W65,0 °C 114,0M90 nm115mm² Socket 939 DC Athlon 64 4000+ 2400 MHz 128/1024 200 MHz 12,0x 1,35~1,4V ? A89,0W65,0 °C 114,0M90 nm115mm² Socket 939 DC Athlon 64 FX-55 2600 MHz 128/1024 200 MHz 13,0x 1,35~1,4V ? A104,0W65,0 °C 114,0M90 nm115mm² Socket 939 DC Athlon 64 FX-57 2800 MHz 128/1024 200 MHz 14,0x 1,35~1,4V ? A110,0W65,0 °C 114,0M90 nm115mm² Socket 939 DC
Jądro Orleans zestaw instrukcji: RISC – IA-32 – x86-64 – NX-bit – MMX – 3DNow! – SSE – SSE2 – SSE3 pamięć podręczna: 128 kb cache L1, 512 kb cache L2