RISC-V Is Coming…
I first heard about RISC-V machines a year or two ago, and was very interested in the technology. Why? Well a couple of reasons:
- First, I’ve always like the idea of RISC architectures.
- Second, RISC-V is the first architecture that has an open specification behind it.
So, maybe I should explain a little bit about these items before I move on to explain what is exciting to me.
CISC versus RISC
First a couple of definitions: RISC stands for Reduced Instruction Set Computing, while CISC stands for Complex Instruction Set Computing. These terms are used to describe how the processor in your computer, phone, and many other devices have been designed. Typically most desktop computers and laptops have been using processors that are based on CISC design, while phones and tablets typically use RISC based processors.
Now, we are getting into the territory where there could be a very long-winded technical explanation of the difference between these types of processors. However, I am not the right person to provide a major technical discussion, and I don’t want to make this article into a technical treatise. However, I will provide a grossly simplified explanation of the difference, with a bit of technical information thrown in as needed.
Computer processors execute a single instruction at a time. That time is generally measure in Hertz, or cycles. Today’s computers function frequencies in the Gigahertz range (literally billions of hertz per second). The time to execute an instruction is a fraction of a a single hertz in most cases. This has lead to one of the key measures for processors to be listed as Instructions Per Clock, or IPC. (Note: while IPC is a key measure of a CPU’s performance, it is by no means the only factor in measuring the performance of a processor in a modern device.)
And this is where the difference comes into play with CISC and RISC designs. In CISC processors instructions typically vary from simple to complex. Because of this variance, the instructions take a varying amount of time (clocks) to execute. Whereas with a RISC based processor, all of the instructions are simple, and as a rule they all take the same amount of time execute.
That might be confusing because both types of processors are capable of performing the same operations, right? Yes, both of them can perform the same operations. However, with a RISC processor it may have to execute many more instructions compared to a lower number of instructions in a CISC processor. So, doesn’t that make CISC processors better? No, not really because of the question of complexity of the instructions.
There honestly, isn’t a winner between the CISC and RISC architectures when looked at from the aspect of their performance abilities. However, there is another factor that is important with regards to the differences between these processor architectures: predictability. And predictability has important attributes that are very useful.
Why Predictability Is Important
What do I mean by predictability? Remember above when I said that CISC architecture processors have instructions that range from simple to complex, while RISC processors have simple instructions? This means it’s possible to predict things with a RISC processor that aren’t as easily predicted with the CISC processor.
For example, say you wanted to know precisely how long it would take to execute 1000 instructions. With a RISC processor all 1000 instructions would take the same amount of time because all the instructions are simple, and they use a consistent amount of time. With a CISC processor this isn’t as easily measured because not all of the instructions use the same amount of time, the more complex the instruction the more time it takes to execute (again, this is a gross generalization, it’s a far more complicated topic that I don’t have the engineering background to speak to).
This predictability of RISC processors has another effect: power usage predictability. Since all the instructions are the same, all of them require the same amount of power to be performed (note: we are only talking within the processor itself, not about interactions with anything else like memory, storage, displays, etc.). CISC processors aren’t as tidy in this regard: more complex instructions take more time, and also take more power. (Again, the same disclaimer: we’re only talking about instructions within the processor, not interactions with other devices.)
Now, when you think about power consumption, and being able to measure it on a consistent basis because of the predictability of RISC based processors, you might understand why most phones and tablets using RISC based processors. Or (put another way) you might understand why a laptop’s battery may last 8 hours when you are reading / writing emails, and doing general work, but when watching videos the battery only lasts 5 or 6 hours instead. Most laptops use CISC based processors (typically x86 processors from AMD or Intel), and some operations (like watching videos) use more complex instructions that require more power.
Note: I may sound like a broken record: but these examples are extreme simplifications that only account for a portion of the overall question of power consumption. For example, watching a video on YouTube requires more interaction with the display and network connection, which affects the power consumption of a tablet or laptop. The processor alone isn’t the whole story when it comes to measuring these things. What does matter is the fact that it is predictable, which allows better engineering.
This predictability can be important even when it comes to working with a desktop computer. Currently each new generation of CISC processors tends to require more power because (a) they are trying to increase the clock speed in order to increase the amount of instructions that can be execute with a specific number of clock cycles, and (b) because of changes (typically) additions to the instruction set with increased complexity.
Some companies (like AMD) do make the effort to optimize the IPC (instructions per clock) of their processors, and therefore improve the efficiency of their processors. Intel also pays attention to this, however they tend to have not done as good of a job, which has lead to their recent shift to a hybrid processor model where they have “efficiency” cores which can run at lower clocks, and use less power.
But the way AMD and Intel have approached their CISC processor designs up until now is likely to change with the emergence of RISC-V as a potential general use platform. (Yes, I know I haven’t explained why I’m so excited about this now…I’ll get to it soon…)
But the potential of RISC-V isn’t just based on the RISC versus CISC architecture shift.
Up until the advent of RISC-V all of the platform architectures have been closed. This meant that manufacturers had to license either buy processors produced by AMD, Intel, ARM, Snapdragon, etc. or license the right to use the architecture in their products. This posed a fairly high barrier of entry to any company / manufacturer that wanted to produce a product. This is about to change with RISC-V.
RISC-V is an open architecture. This means that anyone that wants to use the architecture as the basis for their processors can. There’s no threshold or barrier to using the ISA (Instruction Set Architecture) from the Open Standard for RISC-V. This also has the added benefit of meaning that any company that wants to extend the ISA of RISC-V is free to do so.
Recently, Apple made the move to producing their own processors with the M1. While initially there were rumors that it was going to be RISC-V based, they instead turned to ARM and licensed the ARMv8 ISA. However, there are still rumors that many companies like Apple, Facebook, Google and Amazon have been looking at RISC-V for their servers and other applications.
And, as the adoption of RISC-V grows, there will likely be other companies that will embrace it for many reasons: scalability, efficiency, predictability, being a few of them. But the most important is likely to be the ability to modify and add things to the architecture. This means that companies can use the RISC-V ISA and add support for, say, cryptography, or real-time signal processing (DSP), and other functions. That’s a big point in the favor of RISC-V: not only are they getting an ISA, but they aren’t restricted in how they modify it, which isn’t the case with any of their other ISA’s that exist now (x86, ARM, etc).
If this starts to happen, we will see the first real competition to enter into the computer processor market for literally decades. That poses major disruptive potential, and makes me as excited for the upcoming possibilities of future computers.
What Made Me Really Excited
Up to this point, I’ve talked about the technical differences between RISC and CISC architectures, and why I’ve been a fan of RISC for a long time (despite it not being a force in the desktop or laptop market). And I’ve talked about the disruptive potential of an Open ISA in the market. But all of this is (mostly) theoretical, right? Yes, up until recently it was theoretical. But now the theoretical is starting to become reality.
There are now two single board computers (SBC’s) that have RISC-V based processors available on the market. That is a big indicator that RISC-V is starting to find it’s way into the market. These two single board computers are the Allwinner D1, and the VisionFive from StarFive. (Explaining Computers on YouTube has done videos on these two SBC’s. That’s where I learned about them.)
Understand, these aren’t the types of systems that you are going to run out to Best Buy or Micro Center to buy in place of your desktop or laptop computer (or your phone for that matter). These are computers for people that want to experiment with the new technology, or need to do development work on applications in specific fields that they are working in (the VisionFive, for example, includes NVidia open AI platform).
However, the thing that really got me excited is that these SBCs share attributes of the RaspberryPi and other SBC computers. In particular they include the GPIO header as found on the RaspberryPi, which means that they will be good computers for students to start learning coding and controlling devices with. And that’s definitely going to be one of the keys to broader adoption of the RISC-V ISA: getting it to a younger generation who will embrace it.
However, I am not seeing all of this rose colored glasses. There are still things that these current RISC-V SBC’s are lacking. First is performance: they are several generations behind where current ARM processors like the RaspberryPi is right now. However, that is something that will likely improve quickly as more manufacturers find different implementations of the ISA.
The second thing that these computer are behind on is device support: you won’t find PCIe or NVMe support on these computers. So you are limited to using SD Cards and USB sticks for storage. Most likely this is due to licensing issues, at least that would be my guess. hopefully as more manufacturers get into the RISC-V space we’ll see improvements in this area.
This means, also, that the handling of video is limited to what the vendors were able to supply on these boards. You won’t be adding your RTX 3090 Ti to one of these systems to play Cyber Punk 2077 any time soon.
The introduction of RISC-V based single board computers into the market marks a major milestone, and a potential for a sea-change in the computing landscape. Yes, the current systems are limited, and don’t approach the performance of the current phones and laptops that we carry around on a daily basis, but the first steps to getting this technology to the people that can make the improvements necessary to make them more mainstream is happening.
Not to mention, now that there are a couple of companies that have invested in the technology, many of their competitors are likely to enter the space as well. This is even more true with RISC-V given it’s Open ISA, which removes one of the biggest barriers that many companies – especially startups – face when trying to make a move in the technology sector.
When I first learned about RISC-V a year or two ago I said in comments on several videos that I thought we’d be seeing RISC-V in the PC market in 5-10 years. These two SBC’s are right on the schedule that I was thinking of when I made those statements, in fact they might even be a bit ahead of what I was thinking at the time.
I am now excited for the future of technology in a way that I haven’t been in over a decade.