AMD poodhalilo detaily o nástupci architektury K8
Prezentace AMD se nesla v duchu obecného povídání o trendech ve vývoji procesorů. Asi nejdůležitějším prvkem povídání je přístup, který firma volí k vícejádrovým řešením. Je zřejmé, že v současnosti jsou výrobci v problémech. Za poslední tři roky se výkon zvýšil maximálně o několik desítek procent. Intel proto zvolil cestu přidávání dalších jader a nucení programátorů vyvíjet vícevláknové aplikace.
U vícejádrových procesorů obecně klesá výkon dostupný jednovláknovým programům. Důvod? Čip musí být taktován na nižší frekvenci, jinak by měl neúnosnou spotřebu elektřiny.
Značný důraz na vícejádrové procesory se u Intelu projevuje tím, že firma tlačí na trh ohromná množství dvoujádrových čipů. Celý střední proud a high-end tak jsou dvoujádrové. Jedině v segmentu levných počítačů se kvůli výrobním nákladům stále drží jednojádrové procesory. Dříve dominující Pentium 4 patrně brzo zanikne, protože se jeho tržní segment kompletně rozpadne.
Problém spojený s vícejádrovými procesory je ale jejich využití. Přestože je mnou před rokem vydaný článek Dual-core: proč nemůže uspět stále terčem kritiky za pesimistický pohled, faktem zůstává, že ani po roce přítomnosti vícejádrových procesorů se počet aplikací schopných využívat jejich výkon nijak razantně nezvětšil.
Prakticky jediný za každých okolností viditelný přínos dual-core je svižnější reakce operačního systému vyplývající z toho, že uživateli zůstává dostupný dostatečný výkon i v situaci, kdy je druhé jádro plně zatíženo.
Trochu paradoxní je, že tato svižnost se dá dobře řešit pomocí priorit procesů. Jednojádrový procesor může být podobně svižný jako dvoujádrový, stačí jen mít promyšlený řídící software operačního systému.
Intel na konec letošního roku nebo na začátek toho příštího plánuje uvedení prvních čtyřjádrových modelů pro servery a stolní počítače. Jak zobrazuje obrázek od AMD výše a jak již delší dobu tvrdím, lze vcelku s úspěchem pochybovat o tom, že více než dvě až tři jádra přinesou typickému uživateli nějaký benefit, co se svižnějších reakcí týče. I pro samotný Intel jsou čtyřjádrové procesory otázkou především serverů a jejich pronikání do stolních počítačů nevidí nějak dramaticky. Hodlá je totiž nabízet jako Extreme Edition za nadstandardní cenu.
Klasické vícevláknové aplikace mohou při nasazení na příliš rozsáhlé počítače zaznamenat pokles výkonu způsobený problémy se synchronizací dat.
Pouze plně nezávislá (ideální) vlákna některých programů mohou plně využít síly vícejádrových čipů. Přesto je i zde zřejmé, že výkon neporoste lineárně.
Využití čtyř a více jádrových procesorů je dost problematické. AMD zdůrazňuje známá fakta - vývoj vícevláknových aplikací je obtížný, nákladný a nikdo ho nechce dělat. Mimo to takové programy obsahují více chyb, které je výrazně obtížnější vychytat.
Z pohledu AMD se tedy situace jeví jasně - dvoujádrové procesory mají jakž takž ještě nějaké využití, ale čtyřjádrové v nejbližší době určitě nebudou v kursu. Programátorům a uživatelům nelze vnucovat něco, co jim nepřinese kýžený efekt. Cesta vede jedině přes navyšování výkonu jednovláknových aplikací a to buďto zvyšováním frekvence nebo zlepšováním paralelismu. A to je právě oblast, ve které by měla inovovaná architektura K8L přinést oproti té současné něco navíc.
Nová architektura K8L
K8L je plánována na první pololetí roku 2007. Bude z velké části zakládat na současné K8, samotní zaměstnanci AMD o ní hovoří jako o evoluční, nikoli revoluční. Nějaké novinky ale samozřejmě přinese. Očekává se, že na letos uváděný Intel Core nebudou produkty AMD výkonem a patrně ani spotřebou stačit, tudíž AMD nutně potřebuje razantní obnovení modelů a bez K8L se prostě neobejde.
Zatím nejsou poskytovány nějaké detailní informace, finální produkt je proto stále ještě otázkou spekulací. Novinky z hlediska platformy jsou plánovány následující:
- Zlepšení datových toků - implementace 2.6 GHz HyperTransportu verze 3, přidání mezi jádra sdílené L3 cache a rozšíření datových cest pro umožnění většího paralelismu
- Nezávislý PowerNow! - jádro(a) a řadič pamětí budou používat separátní napětí; zatím není jasné, zda bude možné každé jádro napájet individuálně, to by ale znamenalo značné náklady pro výrobce motherboardů, neboť tito by museli u čtyřjádrového procesoru implementovat pět napěťových okruhů (současné procesory používají jeden)
- Nový paměťový řadič - podpora DDR2 a s výhledovou podporou DDR3, podpora Fully Buffered DIMM v případě potřeby, 48bit fyzické adresování paměti (262144 GB RAM), 1 GB stránky pro paměťově náročné programy
- Příprava na použití specializovaných koprocesorů připojených přes HyperTransport a HTX slot (využití zejména pro kryptování)
Čtyřjádrový procesor K8L s 512kB L2 cache na jádro
Mnohem důležitější vlastností jsou pro nás, typické zákazníky, úpravy v jádře. Jedině ty totiž dokáží zvýšit výkon a přinést potřebnou konkurenci novému Intel Core. Pomiňme v tomto okamžiku, že K8L by měla být první architekturou, na které bude postaven první čtyřjádrový monolitický procesor, který beztak bude určen především pro servery.
AMD se u novinky jistě nezaměří na implementaci velkého počtu jader, naopak půjde cestou zvyšování výkonu jednovláknových aplikací. Zlepšení paralelismu je ostatně také důvodem, proč jsou do Intel Core vkládány takové naděje - více jader není to, co stojí za výkonem nové architektury Intelu, naopak je to zlepšený paralelismus, co má vliv.
Nejvýznamnější změnou, kterou AMD plánuje, je obdoba Intelova Memory Disambiguation, tedy přeřazování čtení v pipeline tak, aby mohlo předcházet zápisům. Současné procesory K8 musí v případě možného aliasování čekat. K8L bude, stejně jako Core, obsahovat jednotku pro odhad aliasování a bude řadit tyto instrukce v pipeline out-of-order. Tato vlastnost by měla za jistých okolností nabídnout až desítky procent výkonu navíc.
Druhým nejvýznamnějším prvkem je rozšíření FPU/SSE jednotek na 128bit. K8L tak následuje Intel Core a jeho schopnost zpracovávat SSE instrukce v jediném hodinovém cyklu. Díky tomu by AMD mohlo Core dohnat a možná i předehnat v SIMD operacích s desetinnou čárkou, tedy v oblasti, kde má současná K8 dost výraznou ztrátu. Otázkou zůstává, jak to bude s celočíselnými operacemi. Dostupné informace nehovoří o tom, zda se bude FPU jednotka starat také o celočíselné SSE nebo zda tato činnost připadne nějaké jiné části procesoru a jaký tato část bude mít výkon. Faktem zůstává, že Core dosahuje v celočíselných SSE téměř trojnásobného výkonu oproti stejně taktovanému Athlonu 64 X2:
Sandra Multimedia Benchmark - Conroe E6600 (2.4 GHz, 4 MB L2 cache) - test od VictorWang
V prezentaci bylo také zmíněno, že procesor bude umožňovat duální 128bit čtení za hodinový cyklus. Těžko říct, co je touto větou myšleno. Možná to, že datová L1 cache bude nějakým způsobem segmentovaná, a tak bude umožňovat nezávislé vyřizování dvou požadavků za hodinový cyklus a to při velikosti 128bit každý. To by pak znamenalo značné navýšení rychlosti L1 cache a splnilo nutnou podmínku na zásobování SSE jednotek. Pokud tomu tak skutečně bude, byla by zde zřejmá inspirace Intelovým Core, který bude mít patrně ultra rychlou L1 datovou cache:
Povšimněte si testu Intel Core proti procesoru Pentium 4 530. Tří GHz jádro Prescott má L1 cache schopnou poskytnout data každé čtyři cykly. Výkon je zde nějakých 30000 MB/s. Procesor Conroe přitom poskytuje zhruba 57000 MB/s a to i přes nízkou frekvenci 2.4 GHz. Kdybychom čistě "překonvertovali" výkon Pentia 4 530 na 2.4 GHz (což si můžeme u tohoto syntetického testu dovolit), vyjde nám výkon cca. 24000 MB/s. To je ale skoro 2,5x méně než u Conroe. To nutně znamená, že architektura Core má buďto ultra-rychlou cache s latencí dva hodinové cykly nebo používá nějaký trik pro více simultárních přístupů. Pokud by K8L umožňovalo něco podobného, může to razantně zvýšit výkon a to ve všech situacích. Není totiž tajemstvím, že u současných procesorů často výpočetní jednotky pracují na plný výkon jen v situaci, kdy jsou všechna data dodávána z registrů. Jakmile je něco z cache, rychlost jde rapidně dolů.
Významnou novinkou u architektury K8L bude také zvětšení prefetch do instrukční cache ze současných 16byte na 32byte. Intenzivnější datové přenosy naznačují, že dekodéry budou pracovat rychleji, popřípadě jich bude více. Je tak možné, že se potvrdí nedávné objevy o přítomnosti čtvrtého dekodéru v prvních 65nm čipech od AMD. I kdyby ale AMD implementovalo další dekodér a přizpůsobilo mu celý front-end, zůstává otázkou, kolik microOPs za takt bude schopná zpracovat pipeline. Změna ze současných tří na čtyři by si vyžádala razantní zásahy do celého procesoru. A přesně to si AMD nejspíše, vzhledem k časovému omezení, nemůže dovolit.
Konečně bude také čip obsahovat detektor nepřímého větvení (podobně jako Intel Core) a také by měl přinést nějaké nové instrukce, které ale zřejmě budou v programech využity jen velmi zřídka.
Celkově vzato nelze zatím dělat nějaké přehnané závěry. AMD se bude snažit pomocí vylepšení smazat obrovský rozdíl ve výkonu SSE vůči Conroe a zároveň se ho také bude snažit dohnat v paralelismu. Je však otázkou, nakolik se to podaří. Další otázkou je také to, kolik toho ze současného K8 zůstane. Čip zjevně nebude od základu nový jako Core, ale bude na současném návrhu hodně stavět. To by ve výsledku mohlo být limitující. Přidání dalších Issue Portů a zvětšení počtu microOPs zpracovaných za takt a zvětšení Instruction window sice zvyšuje složitost čipu, zároveň ale také zvyšuje výkon. Razantní změny v této oblasti ale vyžadují překopání celého čipu a na to AMD nemá čas. Leda že by již dlouho něco skrývali...