Xbox 360 Cpu = IBM Xenon
VŠB TUO Ostrava
Zdeněk Dubnický Architektura procesoru IBM Xenon a její přínosy
7.11.2008
-architektura -CPU -FSB -testování a ladění
IBM Xenon
Vývoj tohoto procesoru začal v roce 2003 a společně se na něm podílely firmy IBM a Microsoft. Procesor byl od začátku určen exkluzivně pro herní přístroj Xbox360. Vývoj trval dva roky a první procesory byly vyrobeny ve výzkumném centru v Singapuru. Od začátku vývoje byl kladen důraz na využití v herním systému Xbox360 a inženýři z IMB a Microsoftu hledali takové řešení, které by uspokojilo požadavky zákazníků. Jako základ posloužil existující PowerPC procesor.
Architektura Xbox360 má jeden čip, který obsahuje 165 milionů tranzistorů. Tento čip je ve své podstatě 3 stranně symetrický – obsahuje 3 identické jádra. Tyto jádra jsou shodné, vyjma faktu, že jsou fyzicky souměrné podle X a Y osy (viz. Obrázek). Každé z jader je specializovaný PowerPC čip s rozšířenou sadou instrukcí VMX128 (tyto instrukce jsou částečně shodné či vycházejí z instrukcí VMX které obsahují procesory G4 a G5). Tyto 3 jádra sdílejí 1MB L2 cache paměť. Každé z jader má vlastní 32kb L1 cache paměť. Rozhraní čipu je schopno komunikovat přes FSB rychlostí 21.6GB/s a je taktováno na 5.4Ghz Xbox360 procesor má testovací a debugovací funkce, včetně stopování, možnosti nastavení a monitorování výkonu. Původní čipy byly vyráběny 90nm technologií, dnešní se již vyrábějí modernější 65nm technologií.
CPU Každé z jader běží na frekvenci 3.2Ghz. Všechny jádra využívají rozšíření časování obvodů, které umožňuje nechat uzavřené pipeliny dokud nejsou instrukce zpracovány což značně redukuje spotřebu. Základní návrh vychází z 64bitového PowerPC
Instrukční jednotka je více-vláknová, konkrétně dokáže zpracovat dvě vlákna najednou. Instrukční cache je velká 32KB. Najednou se zpracovávají dvě instrukce s tím, že jsou prováděny v sekvenčním pořadím. L1 instrukční cache je 32KB velká s kontrolou chybné parity. 2 vydané instrukce mohou jít jednou z pěti cest – Branch (je vážně součástí instrukční jednotky), Load/Store, Fixed Point, Floating Point a VMX. Složité instrukce jsou implementovány pomocí mikro-kódu . Část Fixed Point se skládá ze dvou jednotek: první se stará o jednoduché operace (sčítání/odčítání, logické operace a rotaci) a druhá se stará o operace typu násobení/dělení. Část Load/Store se stará o přístup do L1 Data paměti. I tato cache má velikost 32KB s kontrolou chybné parity. Pro překlad jak dat tak instrukcí se používá TBL (překlad
s nahlédnutím do bufferu) který může být řešen buď na úrovni hardware nebo software.
Operace s plovoucí čárkou jsou poslány do kombinované VMX/FPU jednotky, která zvládne najednou řešit 2 vlákna pro VMX a dvě pro FPU.
Již dříve zmiňované VMX instrukce jsou příbuzné PowerPC rodině procesorů, implementace v Koxu 360 je dost rozdílná. Nová sada byla pojmenována VMX128 a je zvlášť zaměřena na akceleraci 3d grafiky a herní fyziky. Počet vektorových registrů byl navýšen z 32 na 128. Byly také přidány zcela nové instrukce. Přibyly také instrukce zpracovávají či přesněji rozbalují data, která byla sbalena kvůli přílišné velikosti. Například: instrukce pro rotaci a vkládání, balící/rozbalovací instrukce pro řešení Direct3D datových typů, instrukce pro ukládání a nahrávání nevyřízených dat. Level 2 cache poskytuje 1MB paměti pro všechny tři procesorové jednotky. Využívá MESI protokol pro zachování paměťové souvislosti. Cache samotná poskytuje jednobitovou opravu a dvoubitovou detekci ECC platnosti.
Tři procesorová jádra nahoře komunikují s cache pomocí můstku, který pracuje na plné frekvenci procesoru. Zbytek L2 cache procuje na poloviční frekvenci. Data se dělí na nacachované pro které je určeno 8 úložných bufferů pro každé jádro (non sekvenční pro zvýšení výkonu), nebo necachované data, pro která jsou určeny 4 úložné buffery na jádro (sekvenční zpracování pro zjednodušení pořadí). Celá L2 cache podporuje širokopásmové streamování. Využívá se instrukce zvaná Extended Data Cachce Block Touch, která má za úkol předběžně načítat data z hlavní paměti do L1 cache. Procesní symetrie je technologie, která umožňuje vývojářům snížit nároky na paměť a propustnost. Grafické objekty jsou reprezentovány sadou trojúhelníků. Ale co v případě koule či zakřivených povrchů? Ty mohou být reprezentovány právě rovnicí. CPU využije této rovnice a na jejím základě vygeneruje dané objekt reprezentovaný trojúhelníky. Toto značně odlehčí hlavní paměti a zmožní číst upravené data přímo z L2 cache. FSB FSB architektura Xbox360 je speciálně navržena aby odpovídala požadavkům herní konzole. FSB přijímá požadavky nejen od CPU ale i od GPU, řadí je, stopuje a zajišťuje
korektní vyřízení jednotlivých požadavků. Fyzická vrstva má šírku pásma 10,8GB/vteřinu. Přenosová vrstva poskytuje běžné funkční rozhraní dvěma čipům. Spravuje protokol spojové vrstvy pro spolehlivé doručení paketů. Také řadí a spravuje dva virtuální kanály. Tyto virtuální kanály jsou užívány pro požadavky (request) a odpovědi (response). Tím je zamezeno zablokování a zároveň umožňuje volitelný výkon díky nastavitelné prioritě kanálu. Spojová vrstva navazuje spojení, detekci problémů a znovuvysílání a stejně tak kontrolu toku. Detekce a oprava problémů byla navržena tak, aby se ušetřily náklady a navazování spojů bylo spolehlivé bez softwarových zásahů. Fyzická vrstva je složena ze dvou jednosměrných spojů, každý spoj se skládá ze dvou jednobytových cest, s hodinami pro každou z nich. Tyto linky jsou zdrojově synchronizovány, takže časová značka pro přijímač je zasílána společně s daty. Hodiny pracují na frekvenci 5,4Ghz a propustnost linek je také 10,8GB/vteřinu. Fyzická vrstva je napájena odděleně od CPU a je napájena stabilním napětím 1,1V. Testování a ladění Tento CPU má široké pole testovacích a ladících možností. Konzolové hry se vyznačují vysokou kvalitou grafiky a nelítostnými termíny, z čehož Xbox těží. Dovoluje totiž provoz v plné rychlosti bez omezení se spuštěnými testy a stopováním vláken, toto pomáhá značně při vývoji. Navíc CPU poskytuje externím sběrnici pro ladění – ta samotná pracuje na ¼ frekvenci CPU, ale na druhou stranu umožňuje CPU běžet plnou rychlostí . Navíc Xbox poskytuje 16 32-bitových čítačů pro monitoring výkonu a je schopno sledovat stovky událostí napříč celým funkčním procesem běhu procesoru.