Uit 2020: https://tweakers.net/revi…-processors-tot-slot.html
dmantione
12 december 2020 13:32 • Rapporteer
Het is een beetje spijtig dat tegenwoordig niemand meer assembler kent, want de enige manier om een instructieset te bekijken is om naar de instructies zelf te kijken. Ik ben dan van oude stempel en “spreek” de assemblertalen van de nodige processoren, dus kan de instructieset wel op zijn merites beoordelen.
En mijn oordeel over RISC-V is niet postief, vernietigend zelfs: RISC-V maakt mijn inziens dezelfde fouten als MIPS. RISC-V is net als MIPS:
Een load-store-architectuur
Een architectuur met 32 registers
Een architectuur met zeer weinig adresseermodes
Een architectuur zonder voorwaardelijke instructies
Met name het gebrek aan adressseermodes is kwalijk: Het gevolg van het gebrek daaraan is dat voor veelvoorkomende bewerkingen in programmeertalen, zoals het indexeren van arrays, extra registers en instructies nodig is om het geheugenadres te berekenen waar gelezen moet worden. Als je dus in een lus arrays doorloopt en de compiler de index niet naar een pointer kan omzetten dan moet keer op keer binnen de lus de extra instructies uitgevoerd worden. De MIPS en RISC-V hebben dus lekker veel registers, maar ze hebben ze ook nodig ook.
Minder kwalijk doch zeker relevant: Processoren hebben tegenwoordig lange pijplijnen, het vermijden van brand-instructies brengt dan ook veel op. Voorwaardelijke instructies zijn dan ook een belangrijk middel om branches te voorkomen.
Het oorspronkelijk idee achter MIPS, was dat het gebrek aan rekenkracht per instructie de processor zover versimpelde dat dit door een hoge kloksnelheid gecompenseerd zou kunnen worden. Dit is nooit waargemaakt en daarmee was MIPS gedoemd de strijd te verliezen. Voor RISC-V geldt nu hetzelfde.
Als we kijken naar de dominante architecturen X86 en ARM dan hebben deze architecturen hun adresseermodes en voorwaardelijke instructies op orde. ARM deed dat reeds vanaf het begin, X86 heeft zich in de loop der tijd op orde gebracht. De enige kwestie waar RISC-V in het winnende kamp zit, is dat het een load-store-architectuur is. X86 is nog altijd een registergeheugenarchitectuur en dat levert X86 nog altijd een (relatief beperkt) nadeel op. ARM is wel load-store.
Kortom, ik zou als ik een berg geld had om te investeren nooit op RISC-V inzetten: Ja de architectuur is gratis, maar je hebt gewoon een architectuurnadeel t.o.v. X86 en ARM. Dat is wellicht met bruut geweld (kloksnelheid, heel veel kernen) enigszins te compenseren, maar als je voor een exotische architectuur kiest dan wil je dat die een voordeel is, geen nadeel.