Život po x86 aneb kam dále s procesorovými architekturami?
i Zdroj: PCTuning s využitím DALL-E (AI)
Procesory, Paměti, Desky Článek Život po x86 aneb kam dále s procesorovými architekturami?

Život po x86 aneb kam dále s procesorovými architekturami? | Kapitola 2

Michal Rybka

Michal Rybka

36

Seznam kapitol

1. x86 stokrát jinak 2. Cache pro cache 3. ARM nebyl jediný 4. Intel a Itanic 5. Pomůže nám AI?

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ší.

Reklama

Cache pro cache

Základní rozdíl mezi optimalizací procesorů a pamětí je v tom, že procesor předpokládá, že může číst a zapisovat data náhodně, zatímco paměti jde dobře jenom čtení po celých řádcích. Navíc všechny součástky nejsou stejně kvalitní a některé mohou vracet data pomaleji než jiné, což je problém, který narůstá s počtem použitých elementů. Zatímco procesorový výkon se dá poměrně dobře škálovat, u pamětí je to problém – a navíc nám s postupem technické evoluce narůstá latence v počtu procesorových cyklů, kdy se procesor dotáže a potom čeká na odpověď. Přes paměťově orientované architektury tedy cesta nevede, na to se přišlo poměrně rychle.

Intel se pokoušel vylepšit situaci větším počtem registrů, protože to znamenalo, že můžete provádět komplikovanější výpočty bez nutnosti oslovovat paměť pro data. Pojmenované registry (EAX, EBX, ECX, EDX) sice dočasně problém zlepšily, ale zase zkomplikovaly instrukční sadu, protože ty samé operace na různých registrech jsou vlastně různé instrukce – a to ještě musíte brát v potaz, že máte instrukce pro práci s jejich 32bitovými verzemi, pak „se šestnáctibitovými půlkami“ a „osmibitovými čtvrtkami“. Paráda! Navíc se poměrně rychle ukázalo, že tohle situaci dlouhodobě neřeší.

Intel se ve skutečnosti v letech 1981–1985 pokoušel o revoluční architekturu paměťově orientovaného procesoru Intel iAPX 432, který byl označován za „micromainframe“ a vyznačoval se tím, že byl zaměřený na vyšší jazyky, neexponoval programátorům přímo registry a byl zaměřený na práci se zásobníkem (stackem) v paměti. Byl to zajímavý, ale složitý projekt, který byl vytvořen s ohledem na objektově orientované programování. Obsahoval věci jako paměťovou garbage collection a obecně to byl ambiciózní a složitý, ale také pomalý a neefektivní procesor. Představoval komerční neúspěch, protože ho výkonem překonávaly i levné procesory – a oproti nastupujícímu 80286 nabízel na stejném kmitočtu asi čtvrtinu jeho výkonu.

Přichází éra cache, která začíná zpočátku jako jedna, ale rychle se ukáže, že to nestačí, takže přichází sekundární a potom terciární cache, která musí mít svou vlastní logiku (vyhledává se v ní podle obsahu) a navíc zabírá dost místa na čipu a docela dost to peče. Plus, poměrně rychle se ukázalo, že se musí udělat určité kompromisy, protože ona není úplně pravda, že procesor přistupuje k paměti náhodně: Data víceméně vypadají, že jde o náhodné přístupy, ale pokud jde o kód, je tam zcela nenáhodný přístup, provádíme pouze čtení, která se řídí logikou vykonávání programu. 

Proto se udělal krok, který vypadá jako krok zpět – a od čisté von Neumannovy architektury (paměť obsahuje data i program jako speciální formu dat) se přešlo na modifikovanou harvardskou architekturu, která odděluje paměť pro program a pro data. „Modifikovaná“ je proto, že v hlavní paměti se stále program nachází jako speciální forma dat, to jenom cache je rozdělená na cache pro program a pro data – a každá z nich se chová jinak.

Tohle otevřelo prostor pro vyšší magii vykonávání instrukcí, jako instruction reordering (pokud na sobě instrukce nezávisí, může je procesor vykonat nezávisle anebo dokonce pořadí vykonávání instrukcí změnit) anebo register renaming (procesor má k dispozici větší množství fyzických registrů než logických registrů – a pokud zjistí, že série instrukcí na sobě nezávisí, může v kódu „přejmenovat“ registry, se kterými se pracuje). 

Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama