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ě

Architektura Mercedu podrobněji (1)

13.10.1999, Jindřich Šaršon, zpráva
Architektura Mercedu podrobněji (1)
Jak to v tom novém procesoru vlastně bude fungovat? To se dozvíte v našem seriálu.
Intel začíná od píky
Pokud se podíváme na historii procesorů od Intelu, nemůžeme si nepovšimnout, že se jeho architektura od dob 8-bitové 8080 téměř nezměnila. Většinu instrukcí, které má současné Pentium III najdeme i v 20 let starém předchůdci. Samozřejmě, byl přidán 32-bitový mód, MMX a SSE rozšíření, ale požadavek zpětné kompatibility Intelu značně svazoval ruce. Pro pokročilý pipelining nebo předpovídání podmínek se procesor typu CISC příliš nehodí (RISC má výhodu např. ve stejné délce všech instrukcí). Proto se Intel rozhodl k revolučnímu kroku – opustit architekturu x86 (IA-32) a vytvořit nový procesor úplně od základů. Podobnou proměnou prošly před několika lety například procesory od Motoroly.

Itanium nebo Merced?
První intelovský 64-bitový procesor byl do nedávné doby znám pod jménem Merced, proto jsem ho použil i ve jménu článku. Jak je u Intelu zvykem, pracovní verze procesoru je pojmenována podle řeky v Kalifornii nebo Oregonu a ve chvíli, kdy se přiblíží uvedení na trh, je rozhodnuto o oficielním názvu. Ten byl oznámen minulý týden na Mikroprocesorovém fóru v San José a zní Itanium (tolik očekávaného Sextia jsme se tedy bohužel nedočkali :-).

Dvě cesty ke zvýšení rychlosti procesoru
V současné době existují dvě možnosti, jak zrychlit činnost procesoru. První je tzv. metoda “hrubé síly” a spočívá ve zvyšování pracovního kmitočtu a celkovém urychlování komunikace mezi procesorem a ostatními komponentami (pamětí, sběrnicí). Tato metoda je sice účinná, ale nelze ji používat donekonečna. V druhém způsobu zrychlení se vývojáři nechali inspirovat přírodou, konkrétně mozkem. Náš mozek totiž “běží” na frekvenci řádově kilohertzů, ale to, co ho činí tak výkonným je (mimo jiné) značný paralelismus. Proto je v novějších procesorech zabudován pipelining, předpovídání podmínek a podobně (podrobně jsou tyto metody popsány v článku o Apple G4).

Co nemůžeš udělat ty, přenechej jiným
Algoritmy pro zpracování pipeliningu nebo předvídání podmínek jsou poměrně složité, proto bylo najednou zpracováváno maximálně 10 instrukcí, spíše méně. Musíme si uvědomit, že procesor analyzuje několik instrukcí dopředu, zkoumá, zda při současném zpracování nedojde ke konfliktu, což je časově značně náročné. Intel se proto rozhodl, že problém konfliktů při paralelním zpracování instrukcí přesune o úroveň výše – a to na kompilátor. Je to dle mého názoru poměrně dobrý nápad, protože právě kompilátor může ze zdrojového textu (např. C++) zjistit logickou strukturu části programu a uspořádat instrukce tak, aby jich mohlo být prováděno i několik desítek najednou. Kompilátor dokonce do strojového kódu Itania předá informaci, kolik a které instrukce v dané části programu mohou být současně provedeny. Procesor se zařídí podle těchto informací a nemusí provádět žádné složité analyzování kódu. Konstrukce procesoru se tím pádem značně zjednoduší a pokud se objeví nějaký nový revoluční algoritmus pro podporu paralelního zpracování instrukcí, nebude nutné vyměňovat procesor – pouze program překompilujete pod novým kompilátorem.

Ani RISC, ani CISC – EPIC
O Mercedu se tvrdilo, že bude plně RISC procesor. Architektura IA-64 sice RISC připomíná, ovšem Intel přišel s několika novými myšlenkami, takže zde máme další název – EPIC (Explicitly Parallel Instruction Code). S instrukcemi procesoru je to totiž trochu složitější, než jsme byli doposud zvyklí. Všechny instrukce v programu pro IA-64 jsou umístěny v 128 bitových balíčcích (bundles). Každý balíček obsahuje 3 41-bitové instrukce a 5-bitový informační kód. Myšlenka je jednoduchá – balíček je načten najednou a podle informačního kódu je zjištěno, kterého typu (celočíselné operace, operace s reálnými čísly apod.) jsou jednotlivé instrukce. Pokud jsou jiného typu, mohou být všechny poslány příslušné výkonné jednotce a zpracovány najednou. Krom toho může být libovolný počet balíčků seskupen do “superbalíčků”. Každý superbalíček se vyznačuje tím, že se v něm instrukce vzájemně neovlivňují, tj. mohou být prováděny paralelně v libovolném pořadí.

Jak funguje konstrukce balíčků a superbalíčků a jaké jsou další vlastnosti Mercedu se dozvíte v příštím pokračování.

Dle FiringSquad