Tyto články mám rád, je zajímavé sledovat jakou cestou se návrháři ubírají. My se ve škole učili, že prodlužovat pipeline nejde do nekonečna kvůli komplikacím s branch prediktorem. ARMu očividně taky začalo vycházet, že kratší bude lepší. Nevím kolik má intel nebo AMD, ale dobře ukrmit 20 stupňovou pipelinu musí být peklo.
Jestli to znamená tolik diskutovaný konec x86, těžko.. ARM umí sice úsporné a efektivní procesory, výkonově a technologicky je za mě ale AMD a Intel o generace napřed. ARM je stále docela jednoduché jádro (soudě podle stupňů pipeline a užívání RISC instrukcí), Intel a AMD mají ale o několik řádů složitější architekturu kvůli CISC instrukcím a stejně dokáží konkurovat efektivitou, ani nemluvě o výkonu.
Co se týče ARM vs X86 v budoucnu. Při té jednoduchosti RISC instrukcí je
zajímavé, že stále nemáme RISC procesory s frekvencemi 5/6 GHz. Udělat dlouhou pipeline pro RISC by mělo být jednodušší než pro CISC. Z podstaty věci by tedy RISC (ARM) měly být schopné při správné architektuře dosahovat vyšších frekvencí, než CISC (x86). Jestli se někdy ARM překlopí nad x86 je ale fakt otázka, za mě spíš ne, právě kvůli tomu generačnímu náskoku co AMD a Intel mají. Apple sice ukázal co se s RISCem dá udělat, každopádně to vypadá spíš jako že udělali gigantický bastl a výkonu dosáhli masivním paralelizmem uOP uvnitř procesoru.
Ono je možné, že u toho ARMu je ta krátká pipeline částečně znouzectnost (nebo teda přesnější by asi bylo říct "prostředek, jak si zjednodušit práci"), umožňuje jim dosáhnout vysokého IPC snáz/levněji, než by se dalo s delší pipeline. Podobně jako třeba u jejich L2 cache s netypicky extrémně nízkou latencí to asi rychle vede k vysokému IPC, ale budou tam ty negativní efekty na maximální frekvenci.
ARMu to asi nevadí, protože kvůli tomu, kam ta jádra cílí, se ty frekvence jen lehce nad 3 GHz snesou a může to být možná i optimální při těch tlacích na nízkou spotřebu jádra a co nejmenší plochu.
Nemůžu se ale zbavit dojmu, že mít tu pipeline o něco delší pro možnost dosáhnout vyšších frekevencí a zároveň toho vyššího IPC je ambicióznější, náročnější (ale taky potenciálně výnosnější) cesta. Nejsem si úplně jistý, ale myslím, že Apple má těch stupňů víc, asi kvůli tomuhle.
"Intel a AMD mají ale o několik řádů složitější architekturu kvůli CISC instrukcím a stejně dokáží konkurovat efektivitou, ani nemluvě o výkonu."
"Z podstaty věci by tedy RISC (ARM) měly být schopné při správné architektuře dosahovat vyšších frekvencí, než CISC (x86)."
Ono ten rozdíl je vpodstatě měnit do té fázi dekódování, dál už ne (plus to, že kvůli náročnosti dekódování se používá micro-op cache), pak už to ve stádiu micro-opů funguje stejně jako ty ARMy. Oboje dekóduje relativně komplexní instrukční sadu se stovkami instrukcí (které u ARMu nejsou úplně v duchu původního konceptu RISC) na jiné interní "jakoRISC" operace. Říká se že rozdělení na CISC a RISC už dneska nemá smysl (kromě microcontrollerů), všechno je postRISC. U toho x86 versus ARM dneska fakticky záleží na jiné věci, a to že jedno je ISA s variabilní délkou instrukcí, což je zdroj většiny komplikací, zatímco ARM má fixní délku instrukcí, což hodně usnadňuje paralelní dekódování, protože CPU ví automaticky, kde začínají instrukce.
Respektive teda, kde má x86 "složitější instrukce" i dál v pipeline je AVX-512, z hlediska té šířky vektoru. To by u ARMu mohlo být taky, ale zatím většinou zůstávají u 128bitového zpracování i u SVE/SVE2.
"každopádně to vypadá spíš jako že udělali gigantický bastl a výkonu dosáhli masivním paralelizmem uOP uvnitř procesoru."
Tak to je jedna z nejpokročilejších možných cest, jak toho dosáhnout. A energetická efektivita je u toho přístupu patrně lepší než u frekvencí (ty mají výhodu asi v menší zabrané ploše/výrobní ceně).
5. 6. 2023, 19:46 editováno autorem komentáře
"Ono ten rozdíl je vpodstatě měnit do té fázi dekódování, dál už ne (plus to, že kvůli náročnosti dekódování se používá micro-op cache), pak už to ve stádiu micro-opů funguje stejně jako ty ARMy"
S tím +- souhlasím, ale myslím že důležitá je právě ta variabilní délka u instrukcí x86. To ve své podstatě zesložiťuje pipeline, protože její design musí počítat jak s dlouhými, tak krátkými instrukcemi. Takže ty delší instrukce můžou být v pipeline vedeny o pár bloků zpátky nebo zůstat v jedné ALU více taktů, aby byla komplexní operace dokončena. V tom bude mít ARM větší výhodu, i když i u něj samozřejmě existují instrukce, které jsou třeba 8 taktů v jedné ALU, typicky dělení doublů apod.
Neřekl bych že AMD a Intel jsou nějak na výši, prostě používají jinou platformu. Armové CPU dnes mají i 192 jader a využívají se i v super compute.
Pro spotřební uživatele je dnes Arm naprosto Ok alternativa k x86 platformě, SoC v mobilech dnes mají větší výkon než většina počítačů na světě (při 3mld počítačů a průměrném stáří 7 let, je nejméně polovina horší než Skylake i7, které překonají vlajkové SoC v telefonech, nebál bych se ale říct 2mld počítačů).
Jediný problém je, že Windows zařízení na Armu je málo a stojí vzhledem k výkonu dost peněz. Část uživatelů se může bát nedostatku SW, byť u typického použití počítače to není problém.
V mobilních zařízeních má Arm jasně navrch právě kvůli efektivitě a laptopy se prodají cca 4 na jeden desktop a v těch je také nemalá řada různých micro form factorů, kde se také skvěle uplatní.
Jakmile Armové SoC pro počítače dosáhnou rozumného výkonu a budou za stejnou nebo nižší cenu než x86, tak se s tím roztrhne pytel. Bohužel zatím ty SoC byly poměrně slabé i pro běžné uživatele a když byly výkonem OK, tak byly v prémiových zařízeních jako Surface pro. Chce to dostat do střední třídy v ceně kolem 1000 dolarů kde se to bude prodávat jak rohlíky.
Nejsem mi jistý ale že ARM potažmo RISC přístup jako takový drží až tak velkou výhodu oproti x86 jako ve své podstatě. Většina lidí prezetuje ARM jako nějaký revoluční přístup který je prostě o tisíc procent lepší a automaticky znamená výhru. Za mně za tím spíš stojí tvrdá a dobrá práce společnosti ARM jako takové, ne až tak paradigmatu instrukcí, pokud to tak nazveme.
Věřím, že pokud AMD nebo Intel budou chtít dělat efektivní procesory stejně jako ARM, nebudou s tím mít problém. Vždy je jednodušší udělat ze složitého systému, kde honíte každý MHz a IPC systém jednodušší, než naopak. Dle mého názoru je ta energetický "neefektivita" x86 oproti ARM daná právě čistě tím honěním posledního ždibečku výkonu. A levnější procesory byly většinou v podstatě jen deriváty toho nejvýkonnějšího taktovány dolů (ať už z jakýchkoliv důvodů). Pokud ale Intel nebo AMD budou chtít dělat čistě efektivní x86 jádro, myslím že toho budou schopni. První náznaky jsou teď efektivní jádra Intelu nebo architektura Ryzen 4c od AMD.
Že ARMy mají až 192 jader a používají se v cloudových řešeních je mi známo, opět to ale není z podstaty věci výsada RISC instrukční sady, dá se to "na všem".