Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

Intel Tera-scale a Platforma 2015: kam směřuje Intel?

31.10.2006, Lukáš Petříček, článek
Intel Tera-scale a Platforma 2015: kam směřuje Intel?
Vývoj počítačových architektur prochází revolucí. Plány na 10GHz čipy na bázi křemíku ustupují do pozadí a růst výkonu procesorů se v dalších letech bude ubírat cestou více jader. Proto se podíváme na problémy současných architektur a budoucí platformy Intelu.
Kapitoly článku:
Růst výkonu osobních počítačů v posledních desetiletích šel ruku v ruce s růstem frekvence procesorů. Z hlediska jádra samozřejmě nešlo jen o růst frekvence samotné - řada změn byla nezbytně provedena také na úrovni jádra samotného. Procesory postupně dostaly několik úrovní vyrovnávací paměti typu SRAM (Static Random Access Memory). Díky stále větší integraci a poptávce po vyšším výkonu směřovaly postupně všechny úrovně cache přímo do jádra procesoru. Několik megabytů cache na procesor dnes není nic neobvyklého. To vše v zájmu výkonu a za stálého snižování cen.

Vyšší efektivitu jádra přinesl pipelining, později superskalární architektura, vykonávání instrukcí mimo určené pořadí a spekulativní vykonávání, předvídání skoků, atd. Z novějších technik můžeme jmenovat změny na úrovni dekódování instrukcí, fúzování makroinstrukcí, slučování microOPs nebo poměrně velice sofistikované techniky sdílení dat mezi jádry na úrovni cache a řadu dalších technik, viz například následující články:

Intel Core - pohled na architekturu (1. část)
Intel Core - pohled na architekturu (2. část)

Opět tedy dochází ke zvyšování počtu IPC (instrukcí vykonaných za takt) a větší paralelizaci, namísto pouhé honby za gigahertzy. Rychlejší jsou také sběrnice a operační paměti, ale přes to všechno to v budoucnosti stejně nebude dostačující...


Problémy současných architektur

Po menším oživení trendu růstu IPC (s uvedením architektury Core) si můžeme položit otázku, jak daleko lze současné architektury ještě dovést a jak je co nejefektivněji zdokonalit. U Intelu je možným dalším krokem integrace paměťového řadiče přímo do jádra procesoru, který výrazně snižuje latence přístupu do paměti a zvyšuje výkon procesoru i bez velké vyrovnávací paměti (díky zmiňovaným nízkým latencím a tedy i vysoké efektivitě paměťového řadiče). U AMD64 se tak s rostoucí frekvencí procesoru propustnost poměrně slušně přibližuje teoretickému maximu.

Ale jak dál? Směr zvyšování výkonu jader má však také své limity a s rostoucí složitostí moderních procesorů to již přestává být, vzhledem k nákladům a spotřebě elektrické energie, efektivní. Ačkoliv se počet tranzistorů a integrace neustále zvyšuje (i o stovky procent v případě jediné architektury během několika let), růst výkonu samotného jádra (i přes relativně velkou a rychlou cache a řadu chytrých zasahů do architektury) je stále pomalejší. Pokud se ohlédneme za průkopníky a oživení architektur posledních deseti let, na řadu se dostaly i multiprocesorové systémy (a ve středním proudu stále rozšířenější „dvoujádra“), které jasně ukazují na nutný a nevyhnutelný směr, kterým se další vývoj bude ubírat.


Kam se bude ubírat vývoj v následujících letech?

Jedním z nejpalčivějších problémů současných architektur je jejich škálovatelnost výkonu vzhledem k počtu tranzistorů a již pouze mírné zvyšování frekvencí. Na druhou stranu, podle projekcí je zřejmé, že dále bude výrazným způsobem narůstat počet tranzistorů, které budou vzhledem k stále menší a menší výrobní technologii (a větší integraci) k dispozici. Podle současných odhadů bude možné v růstu integrace pokračovat přibližně stejným tempem alespoň do roku 2020 - to představuje značné možnosti růstu výkonu procesorů, pakliže samozřejmě budou další a další tranzistory „navíc“ efektivně využity.


Tranzistorů, které budou na čip k dispozici, bude čím dál víc

Dalším problémem je růst spotřeby stále složitějších čipů. Ačkoliv nárůst výkonu s každým přidaným tranzistorem je menší a menší, spotřeba těchto čipů se nevyhnutelně zvyšuje. A to i přes veškeré snahy, jak na úrovni výrobních technologií, tak na úrovni power managementu jádra (a „uspávání“ právě nepoužívaných částí čipu).

Mezi současné problémy patří, víc než kdy jindy, také škálovatelnost výkonu pamětí - s každým dalším jádrem na čipu procesor musí dělit propustnost paměti mezi více jader. Dvou a více kanálový přístup do paměti je sice částečným řešením, ale poté roste výrazně složitost a cena základních desek. V případě vícejádrových procesorů, a zejména u systémů s více sockety, může být problémem také rychlost systémové sběrnice, což je kritické, pokud si procesory mají vyměňovat nějaká data a sběrnice je například zahlcena další komunikací.


Výkon sběrnic (a stejně tomu je u pamětí) roste, oproti procesoru, příliš pomalu


Kde si vzít příklad?

Z hlediska efektivity a výkonu na watt spotřebované energie si můžeme vzít příklad z více oblastí. Běžné mikroprocesory poskytují poměrně přijatelný výkon téměř ve všech oblastech, ale ve spotřebě vzhledem k výpočetnímu výkonu značně zaostávají za řadou více specializovaných řešení.
V průmyslu a řadě odvětví se s úspěchem používají například obvody typu FPGA (Field-Programmable Gate Array) nebo DSP (Digital Signal Processing) procesory nebo obvody ASIC (Application-Specific Integrated Circuit).

Oproti běžným procesorům všechna tato řešení poskytují jisté (ač velice malé) možnosti programovatelnosti, ale jejich spotřeba elektrické energie a výkon vzhledem ke spotřebě se také poměrně liší, vždy s ohledem na jejich nasazení a další potřebné parametry. Společným znakem je ale jejich mnohem vyšší efektivita na watt spotřebované energie (až o několik řádů). A případně také masivní paralelismus.

Procesory pro osobní počítače by jistě také mohly využít vyššího paralelismu, ale současné architektury a programové prostředky mají pár zásadních nedostatků. Tak například současné čipy postrádají rychlou a efektivní komunikaci mezi částmi čipu (a více jádry) s jejich případným narůstajícím počtem. Spojit dvě jádra? To jistě není takový problém. Ale co jich spojit například deset nebo sto? Větší paralelismus a menší a efektivnější výpočetní jednotky jsou jistě dobrý nápad, ale má také své úskalí - pokud nebude docházet k adekvátnímu zvyšování výkonu je to skutečně to, co uživatelé požadují? Co možný pokles výkonu, který v současnosti vyžadujeme a je pro nás standardem? Pravidelný a výrazný růst frekvence, jako dosud, již ale nelze očekávat, a proto je možná na čase se poohlédnout po jiném a dlouhodobě perspektivnějším řešení. Epocha vícejádrových procesorů již započala...


Součastnost a blízká budoucnost

Prvním milníkem bylo nepochybně uvedení „dvoujader“, které se pomalu, ale jistě stávají standardem. Mezi první střípky lze zařadit dvoujádrový Power4 z roku 1999 od IBM nebo později dvoujádro x86, respektive dvoujádrový procesor založený na architektuře AMD64 od firmy AMD. Dalším krokem je například procesor Cell od IBM, který jde ještě dále a na čipu integruje, kromě hlavního a řídícího jádra, dalších 8 superrychlých výpočetních jednotek. Pouhé zvyšování jader však bez dalších zásahů do architektury x86 není příliš efektivní a (všechno dobré) má také své stinné stránky, o kterých si povíme níže. Zejména až dojde na software a jeho vývoj, který má takové platformy efektivně využívat.


Nové archtitektury přinesou vyšší efektivitu vzhledem ke spotřebě elektrické energie

Není tomu tak dávno, co Intel ohlásil změnu architektury a výrobního procesu každé dva roky. Během následujících 4 let se tedy dočkáme architektury Nehalem, která přijde s 45 nm výrobní technologií v roce 2008 a v mírně vzdálenější budoucnosti architektury Gesher, která přijde s 32 nm, pravděpodobně v roce 2010. V tomto časovém horizontu je zmiňován velice často čip „Keifer“, který má na čip integrovat 32 jader.


Keifer je plánován na rok 2010 s 32 nm výrobní technologií

Jádra budou v případě „Keiferu“ sloučena do výpočetních jednotek po čtyřech se sdílenou 3 MB LLC (Last Level Cache) a každé jádro bude mít navíc vlastní L2 cache o velikosti 512 KB. Jednotlivé jednotky mají být propojeny pomocí ring topologie (kruhové topologie) a celkem tedy obsahovat až 24 MB L3 cache a zřejmě i integrovaný řadič paměti. Vzhledem k návrhu architektury bude možné odpojovat části vadné LLC nebo uvést procesor, kde budou některé jednotky deaktivovány. Intel očekává, že Keifer přinese až 15 krát vyšší výkon, než má v současnosti Xeon 5100 s jádrem Woodcrest na 2 GHz a výkonnostně dosáhne na konkurenty od Sunu v tomto velice lukrativním segmentu trhu.


Projekce výkonu jádra Intel Keifer a procesorů Niagara od Sun Microsystems


Jedná se samozřejmě o serverový procesor pro specifické nasazení - v případě desktopů a pro běžně uživatele je využití zatím v nedohlednu. Z dnešního hlediska je efektivní využití takového množství jader (které navíc umí i více vláken současně) poměrně stěží představitelné. Bude zde vyžadována masivní podpora na straně operačního systému a software, ale v serverové oblasti se s tím samozřejmě počítá. Z pohledu běžného uživatele je to pouze koncept, ale v dohledné budoucnosti se podobného, a ještě vyššího, počtu jader dočkáme i v případě osobních počítačů. Onu „vhodnost“ nasazení musíme vždy brát v kontextu a s ohledem na časový horizont, kdy k něčemu takovému dojde.

S CMP (Chip MultiProcessor) systémy, které se ale stávají stále více a více běžnými, můžeme tedy očekávat poměrně masivní růst počtu jader na čip a snahu maximalizování efektivity a výkonu vzhledem ke spotřebě procesoru. Vysoce škálující CMP s desítkami a stovkami jader jsou již „na cestě“. Jak ale optimalizovat takový procesor? Jakým způsobem spravovat cache a o kolika úrovních, když budou na jediném čipu desítky až stovky jader?