ITNEXT

ITNEXT is a platform for IT developers & software engineers to share knowledge, connect…

Follow publication

You're reading for free via Erik Engheim's Friend Link. Become a member to access the best of Medium.

Member-only story

RISC vs CISC Microprocessor Philosophy in 2022

Erik Engheim
ITNEXT
Published in
15 min readMay 4, 2022

--

Few Instructions Doesn’t Mean RISC

Few Transistors Doesn’t Mean RISC

Comparison of transistors and instruction count for popular RISC and CISC processors in the early 1990s
Comparison of transistors and instruction count for popular RISC and CISC processors in the early 1990s

RISC and CISC are Different Transistor Budgeting Philosophies

The Problem With CISC Design Philosophy

Priorities of a RISC Processor Designer

Characteristics of Modern RISC and CISC Processors

; 68k Assembly code

MOVE.B 4, 12 ; mem[4] → mem[12]
MOVE.B (A1), (A2) ; mem[A1] → mem[A2]
With a superscalar processor you have multiple instruction decoders working in parallel.
Arithmetic Logic Unit (ALU) in a RISC processor can only get inputs from registers, not from memory
Arithmetic Logic Unit (ALU) in a RISC processor can only get inputs from registers, not from memory

Load/Store Architecture

Shows how each bit in a 32-bit word is used to encode an instruction for the RISC-V instruction-set
; 68k assembly
ADD.L D3, 4(A2) ; D3 + mem[4 + A2] → mem[4 + A2]
# RISC-V assembly
LW x4, 4(x2) # x4 ← mem[x2+4]
ADD x3, x4, x3 # x3 ← x4 + x3
SW x3, 4(x2) # x3 → mem[x2+4]
; 68k assembly
ADD.L 400, D4 ; mem[400] + D4 → D4
# RISC-V assembly
LW x2, 400(x0) # x3 ← mem[x0 + 400]
ADD x4, x4, x3 # x4 ← x4 + x3
# RISC-V assembly
LUI x3, 0x42 # x3[31:12] ← 0x42 put in upper 20-bits
ADDI x3, x3, 0x12 # x3 ← x3 + x3 + 0x12

LW x4, 0(x3) # x4 ← mem[x3+0]
# RISC-V assembly with pseudo instructions
LI x3, 0x00042012 # Expands to a LUI and ADDI
LW x4, 0(x3)

RISC Processors have lots or Registers

// C code
int data[4] = {4, 8, 1, 2, -1};
int *src = data;

while (*xs > 0)
*dst++ = *src++;
; 68k assembly

MOVE.L (A0)+,(A1)+ ; mem[A1++] → mem[A2++]

A RISC/CISC Perspective on Complexity

“But Modern CISC Processors Have Complex Micro-Architecture!”

Different ways in which instructions can be combined or split up in different CPU designs.

Arm vs RISC-V Design Philosophy

If you sat down a design team today and told them to design a high-performance processor from scratch then you would not end up with a traditional CISC design.

Resources and Related Articles

Published in ITNEXT

ITNEXT is a platform for IT developers & software engineers to share knowledge, connect, collaborate, learn and experience next-gen technologies.

Written by Erik Engheim

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

Responses (5)

Write a response