AMD Opteron - 64bitový procesor nové generace

22. 4. 2003
Doba čtení: 8 minut

Sdílet

Dnes, 22. dubna 2003, uvádí firma AMD na trh 64bitový procesor nové generace zvaný Opteron, který je založen na architektuře x86-64, nedávno přejmenované na AMD64. Možná je vám též povědomé jméno Hammer nebo SledgeHammer. Ale ať se dnes jmenuje jakkoliv, podívejme se, co nového nám přináší.

Architektura AMD64

V zásadě lze říct, že architektura AMD64 je pouhým 64bitovým rozšířením konceptu ia32, na kterém jsou založeny všechny procesory od obstarožního 386SX až po nejnovější Pentium IV či Athlon XP.

Zpětná kompatibilita

Z nějakého důvodu se lidé zpočátku neptají, co nového AMD64 přináší, ale zda je kompatibilní s jejich starými programy.
Odpověď je jednoduchá: Ano, je.

Procesory řady AMD64 jdou se zpětnou kompatibilitou tak daleko, že po zapnutí systému začnou pracovat ve starém dobrém 16bitovém reálném módu, který známe již od dob procesoru i8086, neboli PC XT, z doby před mnoha a mnoha lety. Z toho plyne, že můžete vzít svou starou bootovací disketu a nejnovější výkřik techniky v podobě AMD Opteronunabootovat do MS DOSu :-)

Jelikož reálný mód dnes již nikoho nenadchne, jistě záhy zatoužíte po 32bitovém protected módu. K tomuto účelu vám dobře poslouží jakákoliv běžná distribuce Linuxu, kterou prostě vezmete, nainstalujete a spustíte. Jenže to pořád není ono – komu by dnes kupříkladu stačily 4GB RAM, že?

Takže vaším cílem bude 64bitový long mode. Samozřejmě musíte mít operační systém, který tento režim podporuje. V případě Linuxu je potřeba jádro – nejnovější verze v řadách 2.4 i 2.5 již podporu pro AMD64 obsahují (ovšem pod starším jménem x86–64) – a pár základních systémových utilit portovaných na 64 bitů. Zbytek klidně může zůstat 32bitový.

Takže se podívejme, co v long módu mimo jiné najdeme…

Více větších registrů

Jelikož se zdvojnásobila velikost adresy ze 32 na 64 bitů, muselo AMD zvětšit registry procesoru, aby tyto adresy bylo kam dát. Aby bylo možné rozlišit mezi 32bitovou a 64bitovou verzí toho kterého registru, změnilo se lehce jejich značení. Například registr, který se v dobách i8086 jmenoval AX, byl s příchodem i386 přejmenován na EAX. Pokud ho nyní budete chtít využít v celé jeho 64bitové kráse, nazvěte hoRAX. Obdobně se změnilo jméno všech dalších registrů, takže adresa aktuální instrukce již není v IP nebo v EIP, ale v RIP, a adresu konce zásobníku najdeme v RSP.

A protože se tvůrcům nového procesoru zdálo, že 8 GPRs (General Purpose Registers – tedy obecné registry) je málo, připravili nám jako bonus dalších osm se jmény R8 až R15.

Pokud nám ale stačí počítání se 32 bity, nic nám nebrání i v long módu používat jména „kratších“ verzí. Takže odkazovat se na EAX, AX, nebo dokonce jen na AL je v mnoha případech zcela v pořádku.

SSE & SSE2

Stejně jako se rozšířil počet registrů pro obecné použití, máme k dispozici i více registrů pro počítání v plovoucí řádové čárce. Preferovaným způsobem je nyní používání instrukcí SSE2, které mohou využívat šestnáct 128bitových registrů XMM0 až XMM15, což je o osm více, než na Pentiu IV, které jako jediný procesor řady ia32 také nabízí SSE2 instrukce. Samozřejmě je stále dostupný i matematický koprocesor x87 FPU, ale jeho požití je až na výjimky méně výhodné.

Non-eXecutable pages

Pěknou vlastností v oblasti bezpečnosti je možnost nastavit každé paměťové stránce tzv. Executable flag. Tím je možné zabránit spuštění kódu na stacku a tedy zajistit ochranu před většinou současných exploitů. Samozřejmě vždy existuje způsob, jak se do systému neoprávněně vlámat, ale s použitím tohoto mechanismu to bude o něco složitější.

Co umí skutečné Opterony

Takže některé zajímavé obecné vlastnosti architektury AMD64 už známe a nyní se podíváme, jak může vypadat systém s procesory AMD Opteronv praxi.

Integrovaný NorthBridge

Současné procesory jsou tak rychlé (a Opteron není výjimkou), že je v rozletu omezuje jejich okolí. Často musí čekat na paměť nebo dokonce i jen na přístup k řadiči paměti (memory controller). Aby toto zpoždění bylo co nejmenší, integrovalo AMD tzv. NorthBridge spolu s memory controllerem přímo do procesoru. Z toho plyne, že z Opteronu již nečouhá pomalý Front Side Bus, ale přímo dráty připojující paměť. Tento přístup má jeden zajímavý důsledek pro víceprocesorové systémy…

NUMA

… každý procesor má vlastní paměť. Nejedná se tedy o klasickou SMP architekturu, kde se mnoho procesorů pere o jeden memory controller a o jednu paměť, ale připomíná spíše tzv. NUMA architekturu (NUMA znamená Non uniform memory access).

Pokud se na klasickém SMP systému spustí proces na procesoru A a po čase je přemístěn na procesor B, celkem nic se neděje – paměť je v obou případech přístupná stejně rychle přes FSB, NorthBridge a memory controller.

Ovšem v NUMA systému je to jinak. Pokud proces spustíte na procesoru A, budou jeho data, kód atd. nejspíš také v paměti náležící procesoru A. K této paměti bude mít proces rychlejší přístup než v ne-NUMA systému, protože se nebude muset prát s procesy z ostatních procesorů. Problém nastane, když proces odmigruje na procesor B – aby se dostal ke svým datům, obrátí se samozřejmě na svůj procesor (B), ten se ale bude muset spojit s procesorem A a vyhádat si u něj přístup do jeho paměti. Z hlediska uživatelského procesu je tento postup transparentní, ale pochopitelně pomalejší. Slušný operační systém by tedy měl udržovat procesy na jejich procesorech a zbytečně je nemigrovat pryč.

SUMO

Bohužel má NUMA jeden problém – běžný operační systém, který byl až doposud zvyklý běhat na SMP systémech, by z ní nebyl příliš nadšen. Takže AMD přišlo s jakýmsi hybridem zvaným SUMO (Sufficiently uniform memory organization) – fyzická architektura je podobná jako NUMA, ale pro operační systém se tváří jako SMP. Vhodným nastavením v BIOSu lze určit, zda se systém má tvářit víc jako SMP, nebo víc jako NUMA. Pokud zvolíte druhou variantu a budete mít vhodný kernel se zapnutouNUMA optimalizací, můžete dosáhnout vyššího výkonu. Výhodou je, že i ne-NUMA kernel bude fungovat.

HyperTransport

Z předchozích odstavců je jasné, že je vhodné spojit procesory co nejrychlejším způsobem. Aby v procesoru těch novinek nebylo málo, vymyslelo AMD sběrnici zvanou HyperTransport.

HyperTransport (HT) je full-duplexní sběrnice připojená na integrovaný NorthBridge, která je schopná provést až 1.6GT/s (tedy GigaTransakcí za sekundu) v každém směru. Transakce znamená přenos jednoho bitu po jednom drátu. V případě 16bitové sběrnice se tedy jedná o rychlost 3.2GB/s v každém směru. „Jednotkou“HT sběrnice je právě tato 16bitová linka. Každý Opteron má k dispozici tři a půl HT sběrnice, tedy tři 16bitové a jednu 8bitovou (což je ta půlka :-). Desktopový Athlon64 bude mít k dispozici pravděpodobně jeden a půl sběrnice a díky tomu bude možné stavět dvouprocesorové desktopy bez nutnosti používání dražších Opteronů.

Poloviční, 8bitová sběrnice se používá pro připojení SouthBridge, plnokrevnými, 16bitovými sběrnicemi jsou vzájemně spojeny procesory. Pokud systém obsahuje jen dva Opterony, lze dvě sběrnice spojit a tak získat 32bitové full-duplexní propojení s celkovou propustností 12.8GB/s, což je, jak jistě uznáte, celkem fofr.

Atd…

Mezi další lahůdky, se kterými se budete moci setkat v systémech s Opterony, patří např. 64-bitová PCI-X HotPlug sběrnice s možností výměny karet za běhu nebo vylepšený power management s podporou ACPI 2.0.

Linux

Abyste mohli ochutnat všechna lákadla, která vám AMD se svým Opteronem přináší, musíte mít operační systém, který je dokáže zpřístupnit. Ačkoliv již i Microsoft oznámil, že zanedlouho vydá své Windows XP pro architekturuAM­D64, vás jistě zajímá, jak vypadá podpora v Linuxu. Stručně řečeno: velice dobře :-)

Základní systém

Pro základní nabootování Opteronu potřebujete alespoň kernel. Můžete si vybrat mezi řadou 2.4 a 2.5. Kernel umí všechno, na co jste zvyklí ze svých 32bitových strojů, včetně všech libůstek typu Frame buffer, SW suspend nebo podpora 64bitových PCI karet.

Běžící kernel je príma, ale chtělo by to něco víc – co třeba XFree86 v 64 bitech s akcelerací? Grafika na AGP 8X jistě nezklame, takže nyní je jen na vás, zda se rozhodnete pro 64bitová KDE, nebo jako já zůstanete u svého oblíbeného WindowMakeru.

Takže co vám ještě chybí? Aha, Mozilla… Je pravda, že na www.mozilla.org ještě 64bitovou verzi neseženete, ale zkompilovat sami si ji můžete. Nebo si ji pusťte ve 32 bitech – i tak funguje v 64bitových X-kách moc pěkně.

Podpora 32bitových procesů

Kernel pochopitelně umí spouštět jak 64bitové, tak staré 32bitové aplikace. Aby však ty starší programy mohly běžet, je nutné jim poskytnout 32bitové sdílené knihovny, např. /lib/libc.so.6­. Předpokládám, že linuxové distribuce budou obsahovat alespoň základní sadu těchto knihoven. Mimochodem, aby nedocházelo ke konfliktům, žijí nové knihovny v adresářích /lib64 a /usr/lib64.

64bitový SuSE Linux

O portování Linuxu na AMD64 se starali především vývojáři firmy SuSE a jistě není bez zajímavosti, že první prototyp počítače s procesorem řady AMD64, který se objevil v Evropě, dorazil právě do německé centrály této společnosti (i když tenkrát se těm procesorům ještě říkalo Hammery a architektura se jmenovala x86–64 :-)

Díky těsným vztahům s firmou AMD má nyní SuSE jako jediná linuxová firma k dispozici plně 64bitovou distribuci pro AMD64 s názvem SuSE Linux Enterprise Server 8, kde pomalu nezavadíte o 32bitový program (až na pár closed-source výjimek typu Acrobat Reader). Jakmile AMD představí desktopové procesory Athlon64, bude na trh pravděpodobně uvedena i desktopová verze SuSE Linuxu.

bitcoin školení listopad 24

A co dál?

Zájemcům o další informace doporučuji především následující odkazy:

x86–64 Technology
Stránky na serveru firmy AMD věnované procesorům AMD64 (nebo x86–64? Kdo se v tom má vyznat…). Je zde též online dostupný pětisvazkový AMD x86–64 Architecture Programmer's Ma­nual.
x86–64.org
Stránka věnovaná Open Source projektům podporujícím AMD64. Najdete zde třeba popis ABI (Application binary interface), což je souhrn konvencí, jak volat funkce v programu, jak jim předávat parametry nebo jak jsou stavěny sdílené knihovny. Pokud hodláte pro AMD64 programovat, měli byste si tento dokument alespoň prolistovat.
SledgeHammer
Jedno pěkné video, které mohlo být využito v marketingové kampani. Škoda, že AMD nakonec opustilo úderný název Hammer a zavedlo nicneříkající slovo Opteron.

A nyní nám již nezbývá, než se těšit, až každý budeme mít svého Opterona, nebo Athlona64 doma pod stolem :-)