Erik Engheim
3 min readMar 28, 2022

--

Thanks for the feedback Kaleberg! Hope you don't mind that I am going to go ahead and disagree with a lot with you ;-)

I still think RISC/CISC still matters and so does CPU architecture.

To me Apple choosing Arm is showing that CPU architecture matters. If it didn't matter they would have stuck with Intel. Yet different architectures give you different abilities. Arm lets Apple do things they could not possibly achieve with their Intel chips.

Fortunately for Apple they have done a good job of abstracting their software away from the hardware. However, even if you abstract away the hardware differences they still matter. They still impact your battery life and your performance. The abstractions are mainly there so you can at least continue to run all your old software. Whether it will be a good or bad experience is another matter.

I wouldn't call early processors RISC-y, that would imply that RISC is just about being simple as opposed to complex. However RISC pushed a number of key ideas missing from these early simple chips:

1. Fixed length instructions which could be cleanly divided into 4 steps: fetch, decode, execute and writeback.

2. Pipelining. With fixed number of steps where each step is done in one clock-cycle you could get throughput of 1 instruction per clock cycle.

3. Lots of registers. Reduce number of instructions by keeping more of the data you need in regsiters.

4. Separate Load/store instructions. Most instruction work only on registers.

If you look at a simple CPU such as 6502 it didn't work anything like that. It had a accumulator design with very few registers and many operations involved using memory addresses as operands to things like ADD, OR, AND.

CISC processors eagerly used microcode, which is pretty far away from the ideas of RISC. It meant complex instruction requiring lots of cycles to excute. Microcode is little programs inside the CPU you would run. That is quite different from micro-operations which modern CISC CPUs crack their long instruction into and feed into a RISC-like core.

Nothing is pure CISC or RISC, but I would say RISC-V is only of the most strongly RISC oriented designs we have seen in years. In fact that is a source of a lot of criticism against RISC-V. Many call the RISC extremists.

RISC-V is a fusion of two ideas really: The guys who came up with the first RISC CPU also came up with some of the first vector processing CPUs. Both vector processing and RISC is about embracing simplicity.

RISC-V is in many ways a merging of both of those ideas, at least if you consider RISC-V CPUs with the V extension.

I don't necessarily think you can judge something as RISC or CISC based on the transistor count. I think what has been important to the RISC-V guys is to have a design for which a minimal viable solution can be done in few transistors. However the also design specifically so that one can add billions of transistors to speed up things with fancy micro-architecture.

The problem with modern x86 or Arm AArch64 is that it is hard to make really simply and small designs if that is what you want.

RISC-V allows you to go both really small and really big.

500 picometer chips seem unlike. I think 1nm is like 10 atoms across or something.

I don't think CISC will ever be a thing again. CISC was never a philosphy. It was just a name they slapped the dominant engineering practice to contrast the new RISC designs from what was already done.

There is no clear unifying philosophy in CISC the way it is in RISC. Nobody who designs new chips make CISC chips. x86 is just a holdout which exist for legacy reasons.

I think the future will be much more about how you deal with heteregeonous computing. I suspec the battle will not be between RISC and CISC but between those aiming for monolithic instruction sets and those going for modular ones like RISC-V.

--

--

Erik Engheim
Erik Engheim

Written by Erik Engheim

Geek dad, living in Oslo, Norway with passion for UX, Julia programming, science, teaching, reading and writing.

No responses yet