See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
AMD64 - Wikipedia, wolna encyklopedia

AMD64

Z Wikipedii

AMD Athlon 64
AMD Athlon 64

AMD64 (x86-64 lub x64) to 64-bitowa architektura procesorów firmy AMD, przeznaczona dla komputerów osobistych (procesory AMD Athlon 64, Athlon 64 FX, Athlon 64 X2, najnowsze wersje procesorów Sempron), komputerów przenośnych (Sempron, Turion 64, Turion 64 X2) oraz serwerów i wydajnych stacji obliczeniowych (AMD Opteron). Jest ona rozszerzeniem architektury x86 głównie o 64-bitowe rozkazy oraz rejestry. Umożliwia także bezpośrednie wykonywanie 16- i 32-bitowego kodu x86.

Spis treści

[edytuj] Opis architektury

Zestaw instrukcji x86-64 (nazwę zmieniono później na AMD64) jest rozszerzeniem zestawu instrukcji x86 głównie o rozkazy operujące na 64-bitowych operandach. Główną techniczną motywacją rozszerzenia tego najpopularniejszego w świecie procesorów zestawu instrukcji, było zapotrzebowanie ze strony użytkowników zaawansowanego oprogramowania operującego na dużych ilościach danych, na zwiększoną przestrzeń adresową – w klasycznej już architekturze x86 liniowa przestrzeń adresowa ma wielkość 232 bajtów = 4 GB. Wraz z PAE procesory x86 mają 36-bitową szynę adresu, czyli mogą adresować 64 GiB pamięci, jednak oprogramowanie korzysta z pamięci powyżej 4GB prawie jak kiedyś z rozszerzeń EMS. Poniżej wymieniono najważniejsze zmiany wprowadzone przez AMD64:

  • Nowe rejestry procesora. Liczba rejestrów ogólnego przeznaczenia (General Purpose Registers – GPR) została zwiększona z 8 w architekturze x86 do 16, a maksymalna wielkość operandów - do 64 bitów. Dodatkowo, liczba 128-bitowych rejestrów MMX (używanych w instrukcjach SIMD) została zwiększona z 8 do 16. Powiększenie liczby widocznych dla użytkownika rejestrów pozwoliło na 5-15% zwiększenie wydajności.
  • Większa przestrzeń adresowa. Architektura AMD64 definiuje przestrzeń adresową ograniczoną do 48 bitów (w aktualnych implementacjach używa się 40 bitów, co przekłada się na możliwość zaadresowania do 1 TiB pamięci operacyjnej). Architektura x86 pozwala na zaadresowanie jedynie 4GiB, z czego dostępne dla użytkownika (i aplikacji) jest najczęściej 2GiB lub 3GiB (podział ten zależny jest od systemu operacyjnego). Z uwagi na rozszerzenia wprowadzone w Pentium Pro możliwe jest zainstalowanie do 64GiB RAM, jednak nie jest to pamięć liniowo równocześnie dostępna. W przyszłości, implementacje architektury AMD64 mogą używać pełnych 48 bitów, co pozwoli na bezpośredni dostęp do 256 TiB pamięci operacyjnej. Przy użyciu systemu operacyjnego korzystającego z architektury AMD64 możliwe jest zwiększenie dostępnej pamięci operacyjnej dla pojedynczego 32-bitowego procesu do 4GiB, bez potrzeby rekompilacji i zmian w kodzie programu.
  • Adresowanie "RIP-relative". Rozkazy AMD64 mogą odwoływać się do danych zawartych pod adresami określonymi względem wskaźnika programu (Instruction Pointer – IP), co pozwala na zwiększenie efektywności kodu odwołującego się do bibliotek dzielonych. Adresowanie to pozwala również na umieszczanie odwołań do bibliotek dzielonych pod dowolnym adresem wirtualnym dostępnym w przestrzeni adresowej.
  • Rozkazy SSE. Architektura AMD64 zawiera zestawy instrukcji SIMD Intela pod nazwą SSE i SSE2. Nowsze implementacje AMD64 (od wersji E) zawierają również instrukcje SSE3. Wszystkie implementacje architektury AMD64 są kompatybilne jednocześnie z zestawami instrukcji MMX, x87 – a w przypadku procesorów AMD również 3DNow! i 3DNow! Enhanced.
  • NX-bit. Bit ten (NX - No Execute) jest odpowiedzialny za włączenie/wyłączenie zabezpieczenia obszaru pamięci operacyjnej przed traktowaniem go przez procesor jako zbioru instrukcji do wykonania (z reguły zarządzaniem pamięcią operacyjną powierza się systemowi operacyjnemu). W architekturze AMD64 ochrona obszaru pamięci jest dostępna zarówno w trybie 32-bitowym, jak i 64-bitowym, i jest wspierana przez Linux, Solaris, Windows XP SP2, Windows Server 2003 SP1 oraz nowsze ich wersje. Wraz z systemem operacyjnym korzystającym z ochrony obszaru pamięci przed wykonywaniem, bit NX jest opisywany przez AMD jako rozszerzona ochrona antywirusowa (EVP - Enhaced Virus Protection). Mimo iż technologia ta blokuje możliwość uruchamiania dużej części programów typu malware (korzystających często z błędu przepełnienia bufora), nie rozwiązuje ona całkowicie problemu ochrony antywirusowej komputerów (podobnie jak żadna inna obecnie istniejąca technologia). Istotnym jest fakt, że funkcjonalność bitu NX była obecna od dawna w 32-bitowej architekturze x86 w trybie PAE (Physical Address Extension), wprowadzonym wraz z procesorem Pentium Pro Intela. Tryb PAE jest jednak od dawna traktowany jako relikt przeszłości przez większość producentów i twórców systemów operacyjnych (głównie ze względu na skomplikowane adresowanie i związaną z nim niską wydajność). AMD jako pierwszy producent wprowadziło tryb ochrony obszaru pamięci przed wykonywaniem w trybie adresowania liniowego. Wkrótce potem pozostali producenci procesorów x86 (w tym Intel) również wprowadzili tego typu rozwiązania do swoich produktów.

[edytuj] Tryby pracy

Tryb pracy Wymagany system operacyjny Wymagana rekompilacja aplikacji Domyślny rozmiar adresów Domyślny rozmiar operandów Rozszerzenia rozkazów Typowy rozmiar GPR
Tryb
Long
Tryb 64-bit 64-bitowy tak 64 32 tak 64
Tryb
Compatibility
nie 32 nie 32
16 16 16
Tryb
Legacy
Tryb
Protected
32-bitowy nie 32 32 nie 32
16 16
Tryb wirtualny 8086 16 16 16
Tryb
Real
16-bitowy


[edytuj] Wyjaśnienia dot. trybów pracy

Architektura AMD64 przewiduje dwa główne tryby pracy:

Long
Tryb ten jest podstawowym trybem działania procesora w architekturze AMD64, jest kombinacją 64-bitowego trybu pracy i zgodnego wstecz trybu 32-bitowego. W trybie long pracują 64-bitowe systemy operacyjne, wśród których można na dziś wymienić różne wersje Linuksa, BSD, Solaris 10, Windows XP Professional x64 Edition, Microsoft Windows 2003 Server x64 Edition, Windows Vista.
Jako że zbiór rozkazów AMD64 zawiera wszystkie rozkazy x86, wykonywanie kodu x86 nie jest obciążone żadnym narzutem. W konkurencyjnej architekturze Intela IA-64, różnice w architekturze procesora i implementowanych rozkazach powodują, że kod 32-bitowy musi być tłumaczony (drogą programową lub sprzętową), co pociąga za sobą bardzo znaczący spadek wydajności. 32-bitowe aplikacje rekompilowane z użyciem zestawu rozkazów AMD64 mogą odnieść korzyść ze stosowania przez kompilator optymalizacji wykorzystujących dodatkowe rejestry dostępne w trybie long.
W trybie long, 64-bitowy system operacyjny może uruchamiać równocześnie aplikacje 32- i 64-bitowe. Architektura AMD64 przewiduje również możliwość uruchamiania w tym trybie aplikacji 16-bitowych. W przypadku systemów operacyjnych Microsoftu, takich jak Windows XP Professional x64 Edition, możliwość taka nie istnieje (prawdopodobnie ze względu na trudności w implementacji warstwy zapewniającej kompatybilność z aplikacjami 16-bitowymi podsystemu WoW64).
Legacy
Tryb ten jest używany przez 16-bitowe systemy operacyjne (takie jak MS-DOS), jak również systemy 32-bitowe (takie jak Windows XP). W trybie tym mogą być uruchamiane jedynie aplikacje 16- i 32-bitowe. Programy 64-bitowe (takie jak instalator Windows XP Professional x64 Edition i Windows Server 2003 x64 Edition uruchamiany w trybie graficznym) nie będą działały.

[edytuj] Analiza rynku

Wprowadzenie architektury AMD64 oznacza zerwanie przez AMD ze strategią podążania za standardami ustanawianymi przez firmę Intel. Jest jednak przykładem podobnej do intelowskiej strategii rozszerzania istniejącej architektury bez pozbywania się kompatybilności wstecz (Intel rozszerzył architekturę x86 do 32-bitów wraz z wprowadzeniem zgodnego wstecz procesora 80386). Architektura AMD64 rozszerza 32-bitową architekturę x86 (nazywaną później przez Intela IA-32) o 64-bitowe rejestry ogólnego przeznaczenia, zachowując 16- i 32-bitowe tryby działania procesora. Tryb 64-bitowy również posiada mechanizmy zapewniające w dużej mierze zgodność wstecz z istniejącym oprogramowaniem, ułatwiając przejście twórcom oprogramowania z tradycyjnej architektury x86 do AMD64.

Odpowiednikiem architektury AMD64 jest opracowana przez firmę Intel architektura EM64T. Mimo że są one ze sobą w dużej mierze kompatybilne, to przyrost wydajności w trybie 64-bitowym w przypadku procesorów firmy AMD jest znacznie większy w stosunku do procesorów produkowanych przez Intela. Wynika to głównie z bardzo krótkiego okresu, w jakim Intel musiał zaimplementować rozszerzenia architektury w procesorach z linii Pentium 4. Powszechnie sądzi się również, że było to przyczyną trudności technicznych z uzyskaniem przez Intela wysokich częstotliwości pracy tych procesorów (synteza układu została ze względu na pośpiech powierzona algorytmom automatycznej optymalizacji).

Niechęć Intela do projektowania rozszerzeń 64-bitowych dla architektury x86 spowodowana była bardzo dużymi inwestycjami w linię procesorów wykorzystujących koncepcję EPIC (patrz IA-64). Ze względu na obwarowanie architektury EPIC wieloma kluczowymi patentami, niezwykle trudne byłoby stworzenie konkurencyjnego, ale kompatybilnego procesora przez konkurentów Intela. Stąd też Intel starał się maksymalnie spowolnić rozwój procesorów x86, aby zapewnić dobre warunki nowo wprowadzanej architekturze. Strategia ta poniosła porażkę w latach 2000-2002, w których AMD często posiadało produkty bardziej wydajne niż Intel. Obawy Intela przed konkurencją powiększyło zaprezentowanie w roku 2003 procesorów SledgeHammer i ClawHammer (AMD K8). Architektura IA-64 mimo ogromnych nakładów na promocję i rozwój, wbrew przewidywaniom Intela, nie zaoferowała znacznie większej wydajności niż istniejące produkty RISC (np. seria IBM Power) czy szybko rozwijające się popularne implementacje architektury x86. Decydujące okazało się jednak wsparcie dla architektury AMD64 ze strony twórców oprogramowania (w tym ze strony Sun, Microsoft czy twórców Linuksa). Intel został więc zmuszony przez rynek do zaoferowania konkurencyjnych produktów zgodnych z AMD64. Na dziś, Intel oferuje procesory jedno- i dwurdzeniowe z technologią EM64T przeznaczone dla desktopów w różnych przedziałach cenowych, ma jednak problemy z wprowadzeniem dwurdzeniowych procesorów na rynek serwerów i stacji obliczeniowych (głównie ze względu na pobór mocy i mocno wyeksploatowaną koncepcję dzielonej szyny FSB).

Według wielu obserwatorów rynku, przed architekturą EPIC rysuje się niepewna przyszłość: jej współtwórca, firma HP wycofała z oferty stacje robocze oparte na IA-64, IBM wycofuje się w całości ze wspierania tej architektury - koncentrując się na rodzinie Power i procesorach zgodnych z AMD64. Wydaje się, że prawdopodobieństwo wprowadzenia IA-64 na rynek inny niż dużych komputerów korporacyjnych (mainframe), czy rynek klastrów obliczeniowych i komputerów równoległych (HPC - High Performance Computing) maleje z każdym dniem. Wprowadzanie dwurdzeniowych (w przyszłości wielordzeniowych) procesorów zgodnych z AMD64 przez AMD i Intela już w tej chwili prowadzi bowiem do zastępowania małych i średnich serwerów RISC przez maszyny zbudowane na bazie AMD64 (Sun Microsystems, HP, Tyan).

[edytuj] Implementacje architektury

Następujące procesory są implementacjami architektury AMD64 (w przypadku EM64T kompatybilność nie jest pełna):

[edytuj] Zobacz też

[edytuj] Linki zewnętrzne


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -