AMD Dual-Core Opteron

paměť & spol.

Martin Chládek
chladm1@fel.cvut.cz


Procesory Opteron fy. AMD s dvěma jádry (dual-core) v jediném čipu vycházejí z jednojádrového předchůdce, u kterého se dle prohlášení AMD už při návrhu počítalo s rozšířením na vícejádrovou variantu. Tyto dvě varianty jsou konstrukčně podobné, dual-core varianta obsahuje dvakrát samotné jádro a cache paměti L1 a L2. Na obr. 1 je fotografie čipu a odpovídající zjednodušené blokové schéma procesoru. Jádra sdílejí společný řadič paměti, řadiče HyperTransport linek a další části (např. logiku snižující rychlost a napájecí napětí v době malého zatížení atp.)


Obr. 1: struktura dvoujádrového Opteronu

Direct Connect Technology

Uspořádání procesoru a chipsetu základové desky se odlišuje od dosud běžného schématu procesor – northbridge – southbridge na obr. 2. V tomto uspořádání je řadič paměti součástí northbridge, ke kterému je procesor připojen pomocí front side bus (FSB).

Obr. 2: uspořádání s NorthBridge u ostatních procesorů (AMD Athlon, Intel, …)


V případě Opteronů pozměnilo AMD tuto obvyklou strukturu a používá uspořádání označované jako Direct Connect Technology (obr. 3). Řadič paměti (128 bitový) je integrován přímo na čip k jádru a northbridge i southbridge jsou nahrazeny obvody AMD-81xx připojené jednou ze tří dostupných HyperTransport sběrnic. AMD dodává několik typů těchto obvodů:

Obr. 3: uspořádání systému používané u procesorů Opteron (Direct Connect Technology)


Výhodou tohoto uspořádání je vyšší datová propustnost mezi procesorem a pamětí. Ještě výraznější výhody má toto uspořádání v případě víceprocesorových systémů.

Cache paměti

Procesory Opteron obsahují dvakrát L1 cache o velikosti 128 kB a dvakrát L2 cache velikosti 1 MB. Z tohoto pohledu není prakticky rozdíl mezi dvouprocesorovým systém a jednoprocesorovým s dvěma jádry.

Cache L1 je rozdělena na 64 kB instrukční a 64 datové cache. Je složena z osmi bank. Pokud procesor přistupuje k datům v různých bankách. lze provést zápis a/nebo čtení dvakrát během jednoho cyklu. Sousední data jsou proto ukládána do různých bank.

Data uložená v cache pamětech jsou spravována pomocí MOESI protokolu, který je rozšířením MESI. MESI protokol zajišťuje tzv. cache coherency. Znamená to, že programátor nemusí „ručně“ zajišťovat, aby všechna jádra pracovala s platnými daty (toto tvrzení platí jen do určité míry: ve speciálních případech je nutné zajistit „zneplatnění“ (invalidation) dat pomocí speciálních instrukcí procesoru.)

Na začátku jsou data přenesena z vnější RAM paměti do cache a označena jako Exclusive. Pokud jsou data uložena i v cache druhého jádra, jsou označena jako Shared. Po jejich změně prvním jádrem jsou označena jako Modified, v cache druhého jádra jsou označena jako Invalid. U procesorů používajících pouze protokol MESI je k získání platných dat nutno Modified data zapsat zpět do externí paměti a z ní do cache druhého procesoru.

Protokol MOESI rozšiřuje MESI o další stav: Owned. Díky němu se jedno z jader procesoru může stát „vlastníkem“ dat. Při změně dat označených jako Shared (tj. uložených i v cache druhého jádra) je označení změněno na Owned u prvního a na Invalid u druhého jádra. Potřebuje-li druhé jádro aktuální hodnotu Invalid dat, může je získat od jejich vlastníka – tj. data jsou přenesena z cache, ve které jsou označena jako Owned. Tento přenos je velmi rychlý, protože probíhá uvnitř procesoru přes tzv. System Request Interface.

Schematicky jsou možné stavy dat naznačeny na obr. 4.

Obr. 4: stavy dat uložených v cache podle protokolu MOESI

Externí paměť RAM

Integrovaný řadič paměti umožňuje připojit k Opteronu 128-bit DDR SRAM paměti (DDR200 ... DDR400). Architektura AMD64 používá obecně 64-bitové adresování virtuální paměti a 52-bitové adresování fyzické paměti. Její realizace – Opterony – ale používají menší počet bitů z celkem 64-bitového far pointeru.

Protože se AMD rozhodlo vytvořit AMD64 architekturu jako zcela x86 kompatibilní, lze na Opteronu spustit i Windows 3.11 nebo zůstat v reálném módu. Adresování paměti se pak řídí pravidly v těchto režimech včetně případných omezení velikosti paměťového prostoru.

V 64-bitovém režimu (long-mode) používá Opteron spodních 48 bitů k adresování v 256 TB velkém virtuálním paměťovém prostoru. Fyzická adresa má 40 bitů, lze tedy připojit až 1 TB paměti. Ke každému řadiči lze připojit až 8 DIMM modulů.

Víceprocesorové systémy

Výhody Direct Connect Technology se plně projeví ve víceprocesorovém systému. Na obr. 5 jsou srovnány dvouprocesorová uspořádání s Opterony proti systému s northbridge.



Obr. 5: srovnání dvouprocesorových systémů


Uspořádání s Northbridge (vpravo) je typu SMP (Symmetric MultiProcessor systém). Trpí malou datovou propustností. Procesory se dělí o kapacitu FSB sběrnice, která je připojuje k řadiči pamětí a soupeří o přístup k paměti. Další rozšíření o více procesorů je obtížné a je omezeno kapacitou FSB.

Přístup AMD (obr. 5 vlevo) umožňuje snadnější rozšiřování systému o další procesory. Každý z nich má vlastní řadič paměti, vzájemné propojení procesorů je zajištěno HyperTransport sběrnicemi. Ty jsou taktované na 800 MHz nebo 1 GHz. Jedná se o NUMA systém (non-uniform memory access), přesněji ccNUMA (cache-coherent NUMA) díky protokolu MOESI. Přístupová doba k lokální RAM (připojené k řadiči CPU) se od doby potřebné k přístupu k remote RAM podstatně neliší a AMD proto někdy používá označení SUMO (Sufficiently Uniform Memory Organization). Z pohledu aplikací používá Opteron lineárně uspořádaný paměťový prostor. O tom, na kterém procesoru a ve které z pamětí budou uložena data používaná procesem rozhoduje operační systém.

AMD uvádí ve svých materiálech rychlost přístupu k pamětem v 4-cestném systému (4 procesory „do čtverce“) s taktem procesorů 2 GHz a s pamětmi 333DDR: 100 ns k paměti přímo u procesoru, 118 ns k paměti u sousedního a 136 ns k paměti u protilehlého procesoru. Propustnost (špičková) 5,3 GB/s u přilehlé paměti, 3,2 GB/s k paměti u sousedního CPU přes HyperTransport sběrnici.