x86 je prostě děravý šrot. Ono to ani, vzhledem k jeho vývoji, jinak být nemůže.
To se takhle vezme CISC s různě dlouhýma a pomalýma instrukcema, a začne se zrychlovat. Až se narazí na nějaký limit a dál to nejde. No a co uděláme? Rychlý RISC a instrukce je vlastně různě dlouhý podprogram.
Jenomže ono to nejde jako u klasickýho RISCu udělat tak, že stejná ALU mimo svou práci inkrementuje PC a připočítává offsety. Nene. My tady máme oddělený program counter od registrů (ze základní architektury) a chceme zrychlit, tak mu dáme vlastní ALU. A takhle to nasekáme, aby se to nehádalo. A pak najednou zjistíme, že se hlavní ALU 2/3 času fláká. No a co s tím? Sdílet ji budeme, ušetří to plochu čipu a dovolí vyšší rychlost.
No a že se tam na fyzické úrovni míchají data, který se nemají potkat, že se sdílí i překlad adres, prediktor skoků a další věci okolo? Že se potkává cache? Že je vidět, kolik která instrukce vykoná instrukcí v mikrokódu? Že někde zůstane nějaký flag nebo mezivýsledek mikrokódu ve skrytým registru? Že je tam plno dalších podobných průšvihů? Who cares?
Spíš než do HT měli jít do vyhození prediktoru skoků a ten výkon použít na to, že se vykonávají spekulativně instrukce z obou větví jednoho vlákna a po podmíněným skoku se polovina práce, vykonaná od načtení instrukce, zahodí. Sice to nezvýší výkon tak razantně, ale bezpečnost to zvýší drasticky.
Anebo hodit bobek na x86, ušetřit si paměti mikrokódu a infrastrukturu kolem, místo toho tam nasekat víc čistě RISCových jader s vyšším výkonem a hotovo. Každej svou L1 cache, aby nebylo podle přístupu ke sběrnicím vidět, čím se aktuálně zabývá a je to vyřešeno.
1. To vůbec není CISC vs RISC problém.
2. I v RISC architektuře můžou mít instrukce různou délku a časování (např. Thumb, RISC-V).
3. Oddělěný PC (program counter) je výhoda a např. ARM64 i RISC-V to má taky tak. U ARM32 je dnes vidět, že považovat PC za obyčejný registr byla chyba v návrhu.
4. Jednotku pro počítání adres (AGU) mají snad všechny procesory a není to problém.
Zbytek nestojí za komentář. Takže pár mýtů jsem dnes vyvrátil a můžu jít pracovat :)