Život po x86 aneb kam dále s procesorovými architekturami? | Kapitola 4
Seznam kapitol
Tvrzení, že architektura x86 je „stará“ anebo „přežilá“ architektura, jsou přehnaná. Faktem ale je, že si tato architektura táhne až příliš bohaté dědictví – a vývojáři se opakovaně pokouší o něco jiného a lepšího. Otázka ale je, zda to je opravdu o tolik lepší.
Intelu to nevyšlo
Pak je tu ještě další problém – a sice že délka instrukcí VLIW závisí na tom, kolik jednotek chcete řídit najednou, takže když v další generaci nějaké přidáte, nemáte binárně kompatibilní kód, což je prostě problém. A to byl, plus mínus, konec architektury VLIW.
Nebyl to ale konec pokusů o explicití paralelismus. Intel se nevzdal pokusů a spolu s HP investovali obrovské peníze do architektury EPIC (Explicitly Parallel Instruction Computing) a dal vzniknout procesoru, který známe pod názvem Itanium. Tato architektura se myšlenkově podobá VLIW, jenom na to tentokrát šli od lesa a udělali dvě zajímavé změny: Za prvé místo velkých mezi procesory navzájem nekompatibilních instrukcí pouštěli současně vykonatelné instrukční „balíčky“ (batch), což zlepšilo kompatibilitu – a aby se zlepšila dostupnost dat, dali procesorům opravdu obrovské množství cache.
Výsledkem byly velké, drahé a horké procesory, které měly z důvodů zpětné kompatibility do sebe ještě „navíc zašitou x86“, což vedlo k obřímu maléru nazývanému „Itanic“. Procesory se nabízely v letech 2001 až 2020 – a predikce jejich prodejů, která rok od roku klesala jen proto, aby nakonec realita byla horší i než ty nejčernější vize marketérů, je jedním z nejsmutnějších obrázků technologických dějin.
By Arch dude - http://en.wikipedia.org/wiki/Image:Itanium_Sales_Forecasts_edit.png, CC BY-SA 3.0, Link
A to, podotýkám, Intel počítal s tím, že nejprve ovládne s Itaniem trh se servery, pak s výkonnými stanicemi, a nakonec jím nahradí x86 úplně! Kromě přehnaného optimismu pod jejich kotel přiložilo AMD, které prostě vylepšilo svoje procesory instrukční sadou x86-64, která byla zpětně kompatibilní, nežádala změny kódu a výkonově běhala kolem Itania kolečka, takže nakonec Intel musel akceptovat porážku a licencovat si 64bitové extenze od AMD.
Jednou ze součástí katastrofy byl i stav kompilátorů Intelu, který se považuje za obecného spolupachatele fiasek iAPX 432, i960 i Itanií. Kompilátory Intelu prostě nebyly dobré, negenerovaly kvalitní kód – a je dost možné, že tam narazili právě na limity toho, co kompilátor může zoptimalizovat a co už opravdu zoptimalizovat nelze. Později vznikly lepší kompilátory, například u Transmety se zjistilo, že dokáže celkem efektivně emulovat x86 tím, že její runtime neustále profiluje běžící kód a upravuje ho – protože jenom za běhu překladač zjistí, jak je na tom kód reálně s přístupem k datům.
No a teď jsme tady: Máme x86, což je vysoce optimalizovaný RISC s hardwarovou emulací CISC kódu, potom tu máme moderní softwarovou emulaci kódu x86 na ARMu (jak u Apple Rosetty 2, tak u Microsoft Prism) – a velkou neznámou RISC-V, který si dnes v počítačové podobě můžete leda tak dovézt z Číny. RISC-V má podle všeho velkou budoucnost v průmyslových aplikacích a v auto moto, ale zatím se nezdá, že by udělal velkou díru do mainstreamového světa. Opět netuším přesně, proč, ale slyšel jsem drby o tom, že není ani instrukčně, ani architekturálně vyzrálý, což obvykle znamená, že tu věc prostě nejsou schopní rozběhat efektivně a rychle. Je to ale Open Source a Open Hardware, což je dost stěžejní výhoda.