AMD K8

Mikroprocesory AMD z rodziny K8

Mikroprocesory AMD z serii K8 są oparte na technologii znanej jako Hammer. Główne cechy tej technologii obejmują:

  • 64-bitowa architektura AMD64 (zarówno wewnętrzna, jak i zewnętrzna)
  • wbudowany kontroler pamięci
  • obsługa kodu 32-bitowego
  • praca wieloprocesorowa

Opis technologii

64-bitowa architektura AMD64

W architekturze AMD64 szyna danych oraz wszystkie rejestry wewnętrzne mają długość 64 bitów, w przeciwieństwie do 32 bitów w IA-32. To umożliwia przetwarzanie 64-bitowych liczb za pomocą jednego rozkazu kodu maszynowego oraz pozwala na adresowanie 4294967296 razy większej ilości pamięci (nawet do 256 TB; fizyczna przestrzeń adresowa wynosi 264, a przestrzeń adresowa pojedynczego procesu to 248). Obecnie produkowane procesory AMD dysponują szyną adresową o szerokości 40 bitów, co pozwala na adresowanie 1 terabajta pamięci.

Rejestry ogólnego przeznaczenia zostały rozszerzone o dodatkowe 32 bity, które są dostępne jedynie w 64-bitowym trybie pracy. Wprowadzono także 8 nowych 64-bitowych rejestrów ogólnego przeznaczenia oraz 8 dodatkowych 128-bitowych rejestrów SSE (dostępnych w trybie 64-bitowym). Rozszerzenie rejestrów jest szczegółowo wyjaśnione w schemacie.

Większa liczba rejestrów pozwala procesorowi na rzadsze odwoływanie się do pamięci podręcznej, co przyspiesza wykonanie programów. Nawet przekompilowanie kodu, który nie używa 64-bitowych danych, w celu wykorzystania dodatkowych rejestrów, prowadzi do znacznego wzrostu wydajności.

Technologia NX-bit

Wbudowany kontroler pamięci

Aby skrócić czas dostępu do pamięci oraz zredukować czas, w którym procesor nie wykonuje żadnych rozkazów oczekując na dane z pamięci, w rdzeniach procesorów K8 zintegrowano kontroler pamięci. Eliminacja pośrednictwa mostka północnego płyty głównej (chipsetu) przyspiesza czas odczytu i zapisu pamięci.

Wadą tego rozwiązania jest uzależnienie rodzaju pamięci od procesora. Gdy kontroler pamięci znajduje się w mostku północnym, wystarczy nowy model mostka, aby umożliwić procesorowi pracę z innym rodzajem pamięci. Z kolei kontroler wbudowany w procesor obsługuje tylko jeden typ 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ą działać w jednym z trzech trybów: Legacy Mode, Long 64-bit Mode oraz Long Compatibility Mode. W trybie Legacy są one w pełni zgodne z oprogramowaniem i systemami operacyjnymi 16- i 32-bitowymi. W tym trybie dodatkowe 64-bitowe rejestry są nieaktywne, a rejestry ogólnego przeznaczenia ograniczone do 32 bitów. Dodatkowe rejestry SSE oraz rozkazy 64-bitowe są zablokowane, co eliminuje potrzebę emulacji pracy procesora 32-bitowego, jak ma to miejsce w procesorach IA-64 (Intel Itanium oraz Itanium 2).

Rozszerzenia 64-bitowe AMD64 mogą być wykorzystywane dopiero w trybie Long, który wymaga 64-bitowego systemu operacyjnego. System narzuca procesorowi tryb Long 64-bit Mode, wymagający wyłącznie aplikacji 64-bitowych, lub Long Compatibility Mode, w którym można uruchamiać programy zarówno 64-, jak i 32-bitowe (bez potrzeby emulacji ani tłumaczenia rozkazów). W trybie Long Compatibility Mode oprogramowanie 32-bitowe ma dostęp do pełnej przestrzeni adresowej trybu 64-bitowego.

Biorąc pod uwagę zgodność z x86 w trybie Legacy oraz niewielką dostępność oprogramowania 64-bitowego, procesory K8 można uznać za niezwykle wydajne procesory 32-bitowe. Dzięki ulepszonej architekturze serii K7, są one bardziej efektywne niż K7, nawet w ograniczającym trybie Legacy.

Praca wieloprocesorowa

Dzięki zastosowaniu łącza HyperTransport, procesory AMD K8 są doskonale przystosowane do pracy w konfiguracjach wieloprocesorowych. W przeciwieństwie do Athlona MP, który wymagał dedykowanego układu mostkującego dla każdej pary procesorów oraz skomplikowanego prowadzenia ścieżek (co podnosiło koszty i komplikowało projektowanie płyty głównej), użycie kilku procesorów K8 jest znacznie prostsze i tańsze w implementacji. Procesory komunikują się przez łącze HyperTransport, które składa się z minimalnej liczby połączeń elektrycznych, eliminując potrzebę stosowania drogich, wielowarstwowych płyt głównych. Tylko jeden procesor musi być połączony z układami płyty głównej, takimi jak mostek północny (a przez niego magistrale PCI-Express, PCI, kontrolery dysków, karty sieciowe itd.). Ponieważ każdy procesor ma wbudowany kontroler pamięci, każda jednostka dysponuje własną magistralą danych, co eliminuje konieczność dzielenia pasma pamięci między procesory (jak w przypadku konfiguracji wieloprocesorowych Intela), teoretycznie przepustowość podsystemu pamięci zwiększa się liniowo z każdym dodatkowym procesorem.

Opis układów

Poniżej przedstawiono klasyfikację procesorów AMD K8 według rdzeni, 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, zazwyczaj z powodu wad produkcyjnych w drugiej połowie; takie procesory mają tylko 512 kb L2)

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

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)

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

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)

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

Jądro Odessa (Mobile 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

Jądro Oakville (Mobile 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

Jądro Newark (Mobile Athlon 64)

  • 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

Jądro Paris (Sempron)

  • zestaw instrukcji: RISC – IA-32 – NX-bit – MMX – 3DNow! – SSE – SSE2
  • pamięć podręczna: 128 kb cache L1, 256 kb cache L2

Jądro Palermo (Sempron)

  • zestaw instrukcji:
  • stepping D0: RISC – IA-32 – NX-bit – MMX – 3DNow! – SSE – SSE2
  • stepping E3: RISC – IA-32 – NX-bit – MMX – 3DNow! – SSE – SSE2 – SSE3
  • stepping E6: RISC – IA-32 – x86-64 – NX-bit – MMX – 3DNow! – SSE – SSE2 – SSE3
  • pamięć podręczna: 128 kb cache L1, 256 mb cache L2 (nie zależy od steppingu; w niektórych procesorach L2 ograniczone o połowę z powodu wad produkcyjnych w drugiej połowie)

Jądro Manila

  • zestaw instrukcji: RISC – IA-32 – NX-bit – MMX – 3DNow! – SSE – SSE2 – SSE3
  • pamięć podręczna: 128 kb cache L1, 256 kb cache L2

Jądro Sledgehammer (Opteron)

  • zestaw instrukcji: RISC – IA-32 – x86-64 – MMX – 3DNow! – SSE – SSE2
  • pamięć podręczna: 128 kb cache L1, 1024 kb cache L2
  • MP – zdolny do pracy wieloprocesorowej

Procesory generacji K8

Nazwa procesora, (rdzeń/redzenie, data premiery)

Serwerowe

  • Opteron (SledgeHammer, 22 kwietnia 2003)
  • Opteron (Venus, Troy, Athens, 14 lutego 2005)
  • Opteron (Denmark, Italy, Egypt, 2005)
  • Opteron (Santa Clara, Santa Ana, 2006)

Desktopowe

  • Athlon 64 FX (SledgeHammer, 23 września 2003)
  • Athlon 64 (ClawHammer, 23 września 2003)
  • Athlon 64 FX (ClawHammer, 1 czerwca 2004)
  • Athlon 64 (Newcastle, 2004)
  • Athlon 64 (Winchester, 2004)
  • Sempron (Thoroughbred A/B, 28 lipca 2004)
  • Sempron (Thorton, sierpień 2004)
  • Sempron (Barton, 17 września 2004)
  • Sempron (Paris, 15 lutego 2005)
  • Athlon 64 (Venice, 4 kwietnia 2005)
  • Sempron (Palermo, kwiecień 2005)
  • Athlon 64 (San Diego, 4 maja 2005)
  • Athlon 64 X2 (Manchester, 31 maja 2005)
  • Athlon 64 FX (San Diego, 27 czerwca 2005)
  • Athlon 64 FX (Toledo, 9 stycznia 2006)
  • Athlon 64 X2 (Toledo, 1 kwietnia 2006)
  • Athlon 64 X2 (Windsor, 23 maja 2006)
  • Athlon 64 FX (Windsor, 23 maja 2006)
  • Athlon 64 (Orleans, 23 maja 2006)
  • Sempron (Manila, 23 maja 2006)
  • Athlon 64 X2 (Brisbane, 5 grudnia 2006)
  • Athlon 64 (Lima, 20 stycznia 2007)
  • Athlon X2 (Brisbane, 5 czerwca 2007)
  • Sempron (Sparta, 20 sierpnia 2007)

Mobilne

  • Mobile Sempron (Dublin, 28 czerwca 2004)
  • Mobile Sempron (Georgetown, 2004)
  • Mobile Sempron (Sonora, 2004)
  • Mobile Athlon 64 (ClawHammer, 2004)
  • Mobile Athlon 64 (Odessa, 2004)
  • Mobile Athlon 64 (Oakville, 17 kwietnia 2004)
  • Mobile Athlon 64 (Newark, 17 kwietnia 2005)
  • Mobile Sempron (Albany, 15 czerwca 2005)
  • Mobile Sempron (Roma, 15 czerwca 2005)
  • Mobile Sempron (Keene, 17 maja 2006)

Zobacz też