Skip to content
Tech News
← Back to articles

A third world engineer responds to “RISC-V: They should have known better”

read original more articles
Why This Matters

This article highlights the challenges and criticisms faced by RISC-V architecture from a developer in Trinidad and Tobago, emphasizing the importance of considering global and resource-constrained perspectives in the tech industry. It underscores that technological advancements must be accessible and practical for developers worldwide, not just in well-connected regions. The debate also reflects ongoing concerns about RISC-V's design choices and ecosystem maturity, which impact its adoption in diverse environments.

Key Takeaways

Dmitry Grinberg published a long piece explaining his distaste for RISC-V, you can read his article here: RISC-V: They Should Have Known Better - Dmitry.GR. It went to the front page of Hacker News and it started a good argument on Lobsters. It is the most substantial criticism the architecture has had in a while and though I switched my entire stack away from STM32 and ARM to RISC-V and did a video on it about a year ago Goodbye STM32 ARM – Meet the CH32 RISC-V Chips That Replaced It! , part of me is infuriated because so much of what he said seems like a biased perspective.

Look, I am not going to defend the ISA committee, RISC-V international denied me membership to their golden tower. On the architecture itself, the compressed store offsets really are strange, Zicsr really should not be a separate thing you have to remember to ask for, I have hit every one of these and I have written a book thats about 80% complete about hitting them on the CH32V003, which is one of the very "RV32E" type chip he mentions.

Maybe I should say where I am writing from, because it changes which parts of this argument look important from my perspective.

I work out of Trinidad and Tobago, a small island nation off the coast of Venezuela. When I want a development board I am not clicking through to next day delivery, I am checking whether the seller ships here at all, what customs will do to it (if I get it at all), and what the total lands at in TT dollars. "Free Shipping" from Digikey, Mouser or any US or European manufactuer dosen't apply to me. I pay anywhere from US $60 to US $200 to ship one dollar chips that people everywhere else get free shipping on. In fact a well known PCB company who reached out to me considering sponsorship turned me down soley based on shipping to my location. Have a look here:

The students I want to teach are in the same position, and so are the ones in Nigeria and Bangladesh and everywhere else the people in the industry does not think about when it writes its blog posts. From that position, the difference between a ten cent part and a one dollar part is not a rounding error and it is not a detail you get to wave past on the way to the interesting discussion about encodings. It is the difference between a class of thirty students each having their own chip and a class of thirty students watching one demo board if any at all. Instruction set elegance is a thing you can afford to care about once the hardware is already on your desk. Whether the hardware can get to your desk at all comes first. That is why the paragraph most people scrolled past is, to me, the most important one in the article.

Grinberg missed that part that RISC-V creates a space for the other 99% outside of "the world" (which in this space "world" is mainly the US and Europe) and it has nothing to do with architecture.

He Derives the Requirements and Lands on RV32EC

Before the interrupt arithmetic, before the encoding complaints, he does something careful. He asks what a cheap microcontroller core is actually for. His answer is that it sits inside a larger chip prodding registers and configuring hardware blocks, in an "MP3 player, an SD card, a USB stick". The real work is done by custom silicon around it. From that he derives what such a core needs. Low interrupt latency a small die area and good code density, because the code lives in ROM or SRAM and both are expensive per byte. No hardware divider, possibly not even a multiplier, since you are not doing much arithmetic. No privilege separation, because nothing untrusted ever runs there.

Then he writes the line himself:

"But," you might say, "you just described RV32IC (or RV32EC)!"

... continue reading