4 ms·
I don't really see the advantage of using RISC-V as the ISA for a specialised processor. Yes you can have some tooling advantages because the basic stuff is don
by gchadwick 6y ago
I don't really see the advantage of using RISC-V as the ISA for a specialised processor. Yes you can have some tooling advantages because the basic stuff is done for you but such ISAs are often hyper specialised. You may not want everything in the RV32I/RV64I (the basic RISCV instruction set) and you'll certainly want a whole bunch of stuff that isn't in an existing extension and you may want to do things in a way that's fundamentally incompatible with the existing ISA (maybe you want flags or condition codes, maybe you want a giant register file with indirect addressing, auto increments and weird memory addressing modes, maybe you want variable length instructions or fixed width that's greater than 32 bit etc).
The complexity is in the specialised stuff anyway so having a RISC-V base is unlikely to save you a huge amount of effort.
The author attempts to point to Nvidia as an example
> Because RISC-V has such a small and simple instruction-set it beat all the competition, including ARM. Nvidia found they could make smaller chips by going for RISC-V than for anybody else. They also reduced watt usage to a minimum.
As I understand it Nvidia's use of RISC-V was for controller cores, its not the main ISA doing the important work (i.e. Whatever they use for the shader cores in a GPU). I suspect they chose RISC-V primarily because there were no arm cores that precisely fit their requirements, so RISC-V gives the opportunity for a custom design that does.
So yes RISC-V is great when you have a need for a CPU that doesn't fit nicely with what arm already provides. In a coprocessors these are likely to provide control and coordination. You'll still want to build a custom ISA for the custom accelerator side of it.
- simonh 6y ago> As I understand it Nvidia's use of RISC-V was for controller cores, its not the main ISA doing the important work… Isn’t that exactly the use case the article is talking about?
- gchadwick 6y agoNot as I read it: > Going for custom proprietary instruction-sets is thus not a good idea (In reference to why you'd use RISCV for co-processors in general) I'm arguing the custom ISA is essential to building the co-processor (or at least makes it easier). The fact your application is super specialised means the existing RISC-V software ecosystem doesn't really help you. Nvidia's use of RISC-V is incidental, not a key part of their GPU architecture.
- simonh 6y agoIsn't that the whole point of RISC-V's ISA extensions system though, so you can use a minimal base of standardised instructions for generic stuff with established developer tooling, but still have custom application specific instructions tuned to your design?
- socialdemocrat 6y agoI would be curious what you think of these examples. Isn’t this accelerators using RISC-V rather than custom ISA? https://www.european-processor-initiative.eu/accelerator/ https://www.european-processor-initiative.eu/accelerator/ https://www.embedded.com/extending-the-risc-v-architecture-with-domain-specific-accelerators/ https://www.embedded.com/extending-the-risc-v-architecture-w...