Sat. Jan 21st, 2023

Instruction Sets

A CPU can be defined as being one of two designs:

  • CISC – Complex Instruction Set Computer
  • RISC – Reduced Instruction Set Computer

Examples of CISC processor designs include Intel x86 CPUs (up to and including current Intel Core CPUs), and AMD equivalents. Many historical PC CPUs are also CISC-based (Motorola 68000 for example).

RISC processors are predominantly those based on ARM designs – that means Qualcomm mobile CPUs, Apple’s mobile CPUs (and in the future, used for their PC products as well) and so on.

CISC is a newly invented category – although most historical processors fall into this category, the term was only more recently created in order to differentiate them from the newer RISC designs.

CISC v RISC

At it’s core, the design philosophy of CISC and RISC are directly opposed:

“RISC favours CPU simplicity over coding simplicity, whereas CISC favours coding simplicity over CPU simplicity”.

From a technical standpoint, RISC CPUs contain hardware circuits for every operation that they can process, and this ensures that each operation completes in the same number of CPU cycles. The drawback is that more complex operations will require several instructions.

A CISC CPU does not contain dedicated hardware for every instruction that it can process. Instead, it contains microcode which can feed data through a series of different operations to obtain the end result. While this means that more complex operations can be achieved with a single command, the operating time for different instructions varies, as some may require routing through several circuits.

Due to these differences, CISC designs are not as power efficient as RISC designs, because they are necessarily more complex. On the flip side, RISC designs require more RAM, because equivalent programs will be made up of more instructions.

Here is a table that summarises the differences:

Note – although the RISC design results in more complex software (more instructions), this is generally handled by the compiler, and does not affect the developer, unless they are programming directly in assembly language.

Of particular note is that on June 22 2020, Apple announced that they would cease using Intel CPUs in their future Mac computers, and instead use the RISC designs they had been working on for mobile devices. They state that use of XCode (the Apple equivalent of Visual Studio) would be able to re-compile code with few (if any) modifications required to enable it to run on the new hardware.