Ten závěr zase tak moc správný není. Těžko někdo bude na exotické (sorry příznivci) architektuře prošlapávat teoretické vulnerability, souhlas, cost/benefit nesedí.
Ale když už se něco jednou prošlape na Intelech, tak je řádově méně pracné to zkusit zmodifikovat pro AMD, ARM a třeba i pro ten riscv, co kdyby...
Tak ono model-specific bugu neni mnoho - vetsinu jich najdete rovnou v errata od vyrobce, protoze to jsou spis chyby, ktere ubiraji na funkcionalite (ze neco nefunguje).
Ty timing utoky, zda je/neni neco v cache, v kombinaci se spekulativnim vykonavanim pak slo samozrejme aplikovat na ruzne architektury - protoze to je spis otazkou navrhu toho, jak se procesory dali zrychlit.
Na model specific me napda jenom nejaky TLB bug na amd - ktery snad umoznoval uniknout z VM do hypervisoru. To je celkem prukak :)
Tak v prvni rade, dnesni amd/intel je spis "amd64" (resp. dle intelu "x86-64") + mnozstvi dalsich "extensions" (mmx, sse, aes, avx, atd). Tam je uz na povazenou, jestli to neni blize RISC (minimalne poctem registru).
Jenze pokud zustaneme u puvodni instrukcni sady x86, tak to mame nakejch ~80 instrukci jez se daji povazovat za komplexni (jedna instrukce nacte data, vykona operaci, i ulozi vysledek, a trva nekolik cyklu) a jen pouho-pouhe 4 "vseobecne" registry ax, bx, cx, dx (v uvozovkach, protoze ta "vseobecnost" taky neni univerzalni). To se rozhodne za RISC povazovat neda.
Pro srovnani, treba puvodni MIPS ze stejneho obdobi (~80 leta minuleho stoleti) mel jiz 32 vseobecnejch registru, a kazda jednoducha instrukce trvala 1 clock-cyklus. To je chovani typicke pro RISC.
Dnešní CPU jsou všechny v podstatě RISC podle původní definice, protože instrukce se rozloží na uops a ty jsou právě jednoduché (load, store, ALU, atd...). X86 dnes má 16 GP registrů a 32 SIMD registrů (AVX10/AVX-512), s APX má X86 32 GP registrů - toto je i podle tvých slov "typické pro RISC". Na druhou stranu nevím proč by mělo mít smysl počítat adresovatelné registry, když CPU jich má třeba 150, protože renaming... Ani původní ARMy neměli 32 registrů (až AArch64).
Já osobně bych CISC vs RISC už definitivně opustil, protože to dnes už nedává smysl takto porovnávat. Kódování je prostě frontend, ze kterého se dnes naprosto nedá odvodit mikroarchitektura, kde probíhají ty největší změny. X86_64 i ARM64 mají tisíce instrukcí a obě tyto architektury jsou víceméně porovnatelné, takže nechápu proč jedna by měla být CISC a druhá RISC, kvůli nějaké historické definici.
Neni to hybrid.
x86 je univerzalni oznaceni pro instrukcni sadu, a ta je vzdy CISC
Pak mame treba Intel Core, coz je implementace tehoz, ale pro interni funkce se CISC operace prekladaji na mikro-operace, ktere navic pracuji s "virtualnimi" registry, takze tyhle mini operace lze vykonat i mimo poradi. Jako RISC bych to vazne neoznacoval, protoze ta pipeline neni vubec jednoducha jako by to mel cistokrevni RISC (primitivni pipeline, s 1 op/takt).
Dokonce ani Transmeta Crusoe neni interne RISC, ale preklada externi operace na interni VLIW molekuly.
Kde by se dalo uvazovat o tom, ze je vevnitr RISC, je AMD-K5 z ery prvnich Pentii - ale to spis beru za nazvoslovni selhani, protoze to byla defakto uz architektura s mikrooperacema.
Proste pouzivejte odborne terminy spravne - RISC a CISC jsou druhy instrukcnich sad, do kterych si muzete zaspsat svuj strojovy kod. Popisuje to vzdy kod, ktery cpu dokaze cist a vykonavat.
Ze je to interne jinak.. ? na to se tyto terminy nevztahuji (leda ze by slo o cross-platform virtualizaci - to co se ted prevadi s x86 on ARM, jak apple tak qualcomm/microsoft).
RISC-V je hlavně primitivní a kvůli ideologii tam nechcou některé instrukce, které má třeba AArch64 a jsou hodně praktické - třeba load/store pair of registers, atd... Podle mě není možné udělat dobrou instrukční sadu pro microkontroléry a servery zároveň.
RISC-V je možná nejvíc promarněná šance v oblasti HW, která se kdy stala.
HW neni promarnena sance - me se libi ze existuje ruzna uroven slozitosti - od "mcu" jader po plnotucna, od in-order po out-of-order.
To, co to realne brzi je SW podpora. Dospely linux vic a vic zapomina na sve koreny - kdy bezel na ledascem, a byl proste optimalni. Se slzou v oku vzpominam na distribuce na 1 FDD vcetne grafickeho rozhrani :D Dnes na disketu nedate ani moderni bootloader :D
Nektere veci proste nemaji low-profile alternativu v linuxu (aby treba sitovej stack byl malej, a ne takovy slozity moloch). V userspace alespon existuje uclibc, ale "uc" kernel uz nikoliv.
Pokud myslíš jako SW podporu Kernel, tak tam přece podpora je.
Pokud myslíš jako SW podporu userspace, který bude optimalizovat pro nějakou architekturu, tak první je potřeba aby se to vyplatilo a ta architektura něco nabídla, a v tomto případě je na tom RISC-V prostě špatně. RICV-V V sucks, a toto je proč to nazývám promarněnou šancí. Designéři RISC-V měli dekády vývoje CPU přímo na dlani, a udělali obrovskou chybu v návrhu SIMD pro RISC-V.
A mimochodem je zajímavé, že třeba v LoongArch tu chybu neudělali.
Nejvíc špatně je podle mě to, že RISC-V V jde cestou AArch64/SVE, a to všechno hlavně kvůli tomu, že 32-bit instruction space je prostě omezený, takže každého donutíme přepsat SIMD kód tak, aby byl vector-length agnostic. Nikdo ale už neřeší, kolik toho SIMD kódu takto přepsat vůbec jde. AArch64 má alespoň NEON, kde se člověk může spolehnout na to, že SIMD registr má přesně 128 bitů a kupodivu to pro řešení hodně problémů naprosto stačí. A kód použíívající SVE? Ten skoro neexistuje a i Apple nám celkem ukazuje, že o SVE vlastně zájem moc nemá (Apple M4 má jen Streaming SVE+SME a to snad jen kvůli tomu, aby ARMu ukázali, že jejich AMX je mnohem výkonnější a tam se chcou soustředit).
No a pak tu máme čínský Loongarch, kde si řekli fuck AArch64/RISC-V a přidali do jejich CPU podporu pro 256-bit vektory, protože to je 1000x praktičtější než SVE a můžou v podstatě zkompilovat AVX/AVX-2 kód přimo pro jejich CPU.
Jako by v minulosti bylo jenom x86 a ARM. Mnohé architektury možná neuspěly ne proto, že by byly horší, ale proto, že byly dražší (málo masově vyráběné). A dnes by cena mohla být nižší. Doufám, že jejich vývojáři měli ještě sílu, když ne přispívat, tak alespoň inspirovat vývoj RISC-V. Chybí minimálně jedna generace mezi, které by udržovala kontinuitu.
15. 7. 2024, 16:11 editováno autorem komentáře
Wow, hezká tichá pošta :-) (Tom's Hardware –> Slashdot –> Root)
To není "rozhovor s Mastery Learning" (pokud to není tajný kanál Dirka Hohndela :-) ), ale 3 měsíce stará "Keynote: Linus Torvalds, Creator of Linux & Git, in Conversation with Dirk Hohndel" z OSS 2024. Na tom kanále "Mastery Learning" je to jenom rozsekané na klipy podle tématu.
Originál (monolit bez timestampů a se zakázanými komentáři):
https://www.youtube.com/watch?v=cPvRIWXNgaM