Open-source software is everywhere – in the global IT infrastructure, in our PCs and in our cars. On the other hand, open-source hardware is far less visible. With the emergence of RISC-V that may be about to change. While we see great potential for open-source architectures, it does mean that compiler qualification and validation will become even more critical.
RISC-V was originally developed at UC Berkeley in 2010 as an academic project, but quickly caught the attention of industry. Open source and therefore free to use, it was designed to facilitate innovation in processor design through greater collaboration, breaking the limitations of proprietary hardware architectures. With the ever-increasing pace of innovation in IoT, mobile and ADAS applications, companies need highly adaptable instruction set architectures (ISAs) so they can differentiate themselves from the competition. Adaptability is a key feature of RISC-V that together with royalty-free licensing makes it a very attractive option.
Compilers are not static
RISC-V includes an open-source software development environment, one of its most important elements being a GCC-based compiler. However, because the inherent adaptability of RISC-V allows you to add new instructions specific to your application, every time you want to exploit these new instructions you need to modify the compiler. Otherwise it becomes very difficult for software developers to use them. This puts you in a position of immense responsibility. Having changed the ISA, you now have to change the compiler, but modifying compilers is notoriously hard. One small mistake can easily break them.
This additional responsibility for adapting the compiler is one of the big differences between using an open-source and a proprietary ISA. If an industry heavyweight makes a change to their instruction set, you can be assured that it will keep its compilers in sync, even if they are open source like GCC. These companies employ large teams dedicated to keeping their LLVM and GCC compilers up to date with hardware architecture changes. They are as much the custodian of the software development tools as they are for the architecture. For open-source ISAs, no similar single-entity exists. That’s the price you pay for instruction set flexibility.
SuperTest – high integrity compiler validation for open-source ISAs
As a modifier/developer of a compiler for an open-source ISA, you need to make sure that your changes do not introduce new regressions. As a user of a compiler for an open-source architecture, modified or not, you want to make sure that the compiler is compliant, because it’s quite possible that no one else has taken on that responsibility – doubly so if your application is mission, safety or security critical. Fortunately, whether you’re a compiler modifier or user, it’s good to know that Solid Sands’ SuperTest compiler validation suite can verify any C or C++ compiler, not just standard ones, and what’s more, it can do it quickly and efficiently. Problem solved.
The ability to change a processor’s ISA gives you tremendous power to differentiate yourself from your competitors. But with power comes responsibility. Unless you can provide a program development environment that allows users to exploit the new features of your custom ISA, and make your tool set as reliable as today’s application developers expect, you won’t be successful. When it comes to the compiler, let SuperTest be your guide to success.
On December 10-12, Solid Sands will be attending the second RISC-V Summit in San Jose, California, where we will discuss the importance of compiler validation and the ease of use of SuperTest. If you want to know more, meet us there!