RISC & CISC 12/20/22
Computer processors work on instruction sets, which are basically commands that tell the processor what to do. An example might be a command to move a value in to memory, or a command that multiples a value in one memory address with the value in another memory address. When operating systems are created they are usually created in a higher level, more complex programming language (usually C). For the processor to understand these instructions, a piece of software known as a Compiler needs to take that code and translate it in to machine code that the processor will understand.
There are two main types of processor architecture:
- CISC (Complex Instruction Set Computing) used by x86 processors.
- RISC (Reduced Instruction Set Computing) used by ARM processors.
CISC is designed to make complex operations easy for a programmer to achieve, giving greater flexibility and more features, but requiring more transistors on the chip (and therefore physically larger processors) and more power.
RISC is designed with a simple instruction set that doesn't offer the same flexibility or number of features as CISC processors, but requires less transistors, less power and physically smaller processor packages.
Due to the entirely different capabilities of the two architectures, its not just a case of re-compiling an operating system for a different architecture. The difference in features usually means that an operating systems kernel will need to be re-written. For example some of the security features available in the CISC architecture are not available at all in the RISC architecture, meaning that if the Ubuntu kernel took advantage of those security features, they would need to be re-written and emulated in software on the RISC architecture. RISC based (ARM) chips tend to be used in small, low power devices such as smart phones due to their low power usage, low footprint and relatively low cost - hence their use in the Raspberry Pi.