Het gelinkte artikel is interessant, maar de conclusie dat wanneer je de RISC-V ISA implementeerd een vector processor maakt is te kort door the bocht. In de community zijn tientallen, zoniet honderden voorbeelden van RISC-V processor cores die de vector extensies niet ondersteunen (
https://github.com/olofk/serv) en gebruik maken van een klassieke scalar of superscalar architectuur (
https://github.com/SpinalHDL/VexRiscv,
https://boom-core.org/,
https://github.com/chipsalliance/Cores-VeeR-EH1). Zowel de Arm als de RISC-V ISA kan gebruikt worden om een general purpose CPU te implementeren.
De SiFive en WD cores zijn prima voorbeelden van general purpose CPU cores die zich richten op een specifiek applicatie segement. Het verschil in prestaties wat Arm kan leveren t.o.v. een SiFive zit met name in niet-ISA specifiek IP zoals re-order buffers, cache and memory controllers, cache-coherency en compiler optimalizaties. Al deze zaken zullen dichter bij elkaar komen zolang bedrijven geld blijven pompen in te ontwikkeling van deze componenten.
De reden dat RISC-V zo zichtbaar is in de aankomende golf van AI accelerators etc. is dat het (kleine) bedrijven in staat stelt zelf hun pad te bepalen zonder een dure ISA licentie van Arm af te hoeven nemen welke behoorlijk limiteerd wat wel en niet geimplementeerd kan worden. En met name in een markt die nog volledig open ligt is het belangrijk om designers de vrijheid te geven om te bepalen wat wel en niet werkt.
Hier is het grote verschil zichtbaar tussen Arm en RISC-V; iedereen kan en mag de RISC-V ISA gebruiken en uitbouwen zoals dat het beste past voor jouw applicaties of applicaties van de klant met de belofte dat gestandaardiseerde extensies hardware en software compatible maakt. Arm laat het simpelweg niet toe dat derden extensies toevoegen aan de ISA en dit staat derden in de weg om te experimenteren met zowel klassieke als nieuwe ideeen. Het is dan ook niet gek dat vector instructies weer van stal gehaald zijn en compiler technologie nu mogelijk voldoende ver ontwikkeld is om deze instructies goed te benutten. Maar de P spec voor RISC-V (
https://github.com/riscv/riscv-p-spec), welke klassieke SIMD instructies toevoegd, is al een tijd in ontwikkeling (
http://www.jhauser.us/RIS...-20220911-P-extension.pdf) en toekomstige RISC-V cores gericht op high performance implementeren mogelijk beide extensies en laten het aan de compiler en software ontwikkelaar over om te kiezen wanneer wat gebruikt wordt.