1. Koprocesory se opouštějí, spěje to k integraci koprocesorů jako standardní exekuční jednotky. Bylo by zajímavé zjistit, jakou cestu v RISC-V zvolili.
6. Quadruple hned tak nebude, není poptávka ze strany zákazníků. Ta ostatně není ani na 80-bit rozšíření 64-bit double, které mají k dispozici již 35 let.
7. Load-Reserved + Store-Conditional není podpora pro atomické instrukce, ale pro Lock-Elision a to je něco jiného. Funguje to tak, že jádro si načte cache line, provede v ní nějaké změny a ty se pokusí propagovat do dalších jader. Výsledkem operace je true/false, zda se to podařilo. Naproti tomu atomická operace skončí vždy úspěchem.
8. Sám pojem atomická operace je zmatečný, už děcka na základce se učí o štěpení atomů, proto je nutné ho rychle opustit :-)
Díky za doplnění, o 1 a 6 si myslím to samé, proto je taky "Q" volitelné a uvidíme, kdo si dovolí "obětovat" tolik plochy čipu pro tuto jednotku. Určitě to nebude ve spotřební elektronice (ale mě osobně se hodně líbí half, kdyby byl nativní a ještě k tomu podporovaný v jazycích, ušetřilo by to v hodně aplikacích hodně zbytečných triků).
7-pravda, měl jsem to napsat jasněji (a asi se i zmínit, jak to dělá konkurence, protože u ní již známe implementaci, kdežto zde ne)
8-kvarkové operace? nebo leptonové? :-)
Spíš se mi nelíbí prohlašovat že podpora Store-Conditional je ekvivalentní/stačí k podpoře Lock-Elision. Alespoň v dnešní době si představuji takovou podporu trochu sofistikovanější, to je podporu monitorování většího rozsahu adres (transactional memory) a automatické přenesení toku instrukcí zpět/na druhou větev, pokud operace selže. Autoři RISC-V to vidí možná podobně, protože LR/SC je v sekci A atomic a pro instrukce s transakční pamětí rezervují rozšíření T.
Jednoduché LR/SC s těmi omezeními, která jsou (rozumně) specifikovaná (mezi LR/SC jen operace mezi registry), je opravdu dobré především pro konstrukci atomicky se jevících operací na úrovni SW. Z nich lze někdy/často vystavit operace pro lock-free algoritmy. Ale při délce rovné jen jednomu ukazateli je použitelnost omezená. Pokud by detekování kolize bylo garantované alespoň na řádku cache nebo 128 bitů (i třeba s omezením na zarovnání - ignorování posledních bitů adres), tak by šlo i k složitějším strukturám (prioritní fronty, stromy) použít. Ovšem muselo by být povolené provést na rozsah po LR provést alespoň jednu LW. Ale protože instrukční sadu nechtějí omezovat jen na čipy s cache a přidávat výjimky, tak garance na rozsah vetší než velikost přístupu není a tím pádem je to podle mě spíš jen klasické RISCové řešení atomických operací než nějaká pokročilá technika.