Hacker News new | ask | show | jobs
by brucehoult 1012 days ago
Since RISC-V already has standard extensions for pretty much every feature that any other mainstream ISA has, it is pretty hard to see what is left for generally-applicable custom extensions that make enough difference to be worth getting locked in to.

The only Balkanization that has occurred so far is companies implementing draft versions of standard extensions because they don't want to wait years for the final version: e.g. the Kendryte K210 with priv ISA 1.9.1 [1], THead C906 and C910 implementing draft 0.7.1 of the Vector specification [2], THead implementing Physical Memory Attributes which didn't even have an official draft spec yet, THead and Andes implementing equivalents to (mostly) the eventual Zb or Zc extensions [3]

None of that has much in the way of lock-in as affected code can be either simply recompiled using the relevant official extension or else trivially ported.

[1] they appear to have simply used the current Berkeley Rocket snapshot at the time, 1.10 is what was ratified

[2] which document said "we think we're really really close to being ready to ratify this" but there turned out to be three more major revisions over 1.5 years. Nevertheless, many important library functions such as memcpy() are binary compatible between them, and forward-porting other 0.7.1 code to 1.0 is trivial.

[3] e.g. clz and popcount, shift-and-add for addressing calculations, byteswap, short opcodes for simple forms of byte load/store