Skip to main content

Why Not Build on OpenRISC?

By October 12, 2014October 1st, 2020No Comments

We’ve just returned from a great meeting at the OpenRISC Conference at TU Munich. Thanks to everyone there for a thoroughly stimulating and enjoyable workshop. We hear the videos and slides will soon be posted online.
A question we were often asked there, and previously in blog postings and emails, is why we didn’t just build on the OpenRISC project? We were very aware of OpenRISC and carefully studied the ISA in 2010 before deciding not to use it. The following technical problems were behind our decision to start from scratch rather than improve OpenRISC:
1) The 16-bit immediate field takes up too much of the encoding space, making it difficult to add extensions. There’s also no support for extended-length instructions, which is another way to support extensions.
2) There was no 64-bit address space version. While there has been some work since 2010 towards the 64-bit address space version of OpenRISC, hardware implementations and software stacks are still not available.
3) Branch delay slots. At the time we investigated OpenRISC, the architecture still had mandatory delay slots, though recent variants of OpenRISC allow the branch delay slot to be optionally removed.
4) There was no support for compressed instructions. We wanted to support a dense instruction encoding to reduce static code size in embedded systems, and to reduce dynamic instruction traffic in high-end servers.
If we had made these changes to OpenRISC, we’d have effectively designed a new ISA in any case.

Leave a Reply

Stay Connected With RISC-V

We send occasional news about RISC-V technical progress, news, and events.