RISC versus CISC: instructiesetfilosofie en voorbeelden vergeleken

RISC (reduced instruction set computer) en CISC (complex instruction set computer) zijn twee ontwerpfilosofieën voor instructiesets. RISC gebruikt een klein aantal eenvoudige instructies van vaste lengte en is gemakkelijk te pipelinen. CISC gebruikt veel complexe instructies van variabele lengte, waarbij één instructie meer werk kan doen. Tegenwoordig is de grens vaag: moderne x86-processors zetten CISC-instructies intern om in eenvoudige bewerkingen. Het verschil is daarom vooral van belang voor de instructieset en de softwareomgeving.

KenmerkRISCCISC
FilosofieWeinig eenvoudige instructies. Elke instructie doet weinig werk en is ontworpen om snel te worden uitgevoerdVeel krachtige instructies. Sommige instructies voeren meerdere stappen uit
InstructielengteVast (bijvoorbeeld 32 bits in de basisinstructiesets van RISC-V en AArch64)Variabel (x86-instructies zijn 1 tot 15 bytes)
GeheugentoegangLoad/store-architectuur. Alleen load- en store-instructies raken het geheugen aan en rekenen gebeurt tussen registersVeel instructies kunnen data in het geheugen rechtstreeks als operand gebruiken
RegistersVeel algemene registers (32 bij RISC-V en AArch64)Minder (16 algemene registers bij x86-64)
DecoderingEenvoudig, geschikt voor pipelining en met kleinere hardwareComplex. Moderne x86-cores zetten instructies intern om in micro-ops
CodegrootteGroter. Te verkleinen met extensies voor gecomprimeerde instructies (Thumb, de C-extensie van RISC-V)Compacter, omdat elke instructie meer werk doet
VoorbeeldenARM, RISC-V, MIPS, PowerPCx86 en x86-64 (Intel, AMD), IBM z/Architecture
Belangrijkste toepassingenSmartphones, embedded apparaten en steeds vaker laptops en serversPc's en servers, waar softwarecompatibiliteit belangrijk is

De getalswaarden zijn typische ordegroottes en variëren per procesgeneratie en product.

Wanneer welke variant?

RISC
Geschikt wanneer energie-efficiëntie telt en een eenvoudig, uitbreidbaar ontwerp gewenst is. Smartphones, embedded apparaten, eigen processors. RISC-V is een open standaard, dus iedereen kan zonder licentiekosten een core bouwen.
CISC
De reden om nu voor CISC te kiezen is softwarecompatibiliteit. Het enorme aanbod aan x86-software ondersteunt de positie van x86 bij pc's en servers.
In de praktijk
De prestaties worden meer bepaald door de microarchitectuur, de caches en het productieproces dan door de keuze tussen RISC en CISC.

Veelgestelde vragen

Is ARM RISC of CISC?

ARM is een RISC-architectuur. RISC-V is ook RISC en x86 is CISC.

Is RISC sneller dan CISC?

Dat is niet alleen daarvan afhankelijk. Moderne x86-processors zetten CISC-instructies intern om in eenvoudige bewerkingen, dus de prestaties worden bepaald door de microarchitectuur, de caches en het productieproces en niet door RISC of CISC.

Waarom domineert x86 nog steeds op de pc?

Door compatibiliteit. Een enorm aanbod aan bestaande Windows- en desktopsoftware is voor x86 gemaakt, wat de positie bij pc's en servers ondersteunt.

Wat is een load/store-architectuur?

Een architectuur waarbij alleen load- en store-instructies het geheugen benaderen en rekenbewerkingen tussen registers plaatsvinden. RISC-ontwerpen zoals ARM en RISC-V werken zo.

Test uw begrip

Welke uitspraak over RISC (reduced instruction set computer) is juist?

  1. AHet heeft veel complexe instructies van verschillende lengte
  2. BHet beperkt zich tot een klein aantal eenvoudige instructies, zodat pipelining gemakkelijker is
  3. CHet heeft helemaal geen instructies
Antwoord en toelichting tonen

Antwoord: B. Het beperkt zich tot een klein aantal eenvoudige instructies, zodat pipelining gemakkelijker is

RISC is een ontwerpfilosofie waarbij de instructies beperkt zijn tot eenvoudige instructies van gelijke lengte, bewerkingen tussen registers plaatsvinden en gegevensuitwisseling met het geheugen beperkt is tot load- en storeinstructies. Doordat de verwerkingstijd per instructie gelijk is, is het geschikt voor pipelining; ARM en RISC-V zijn bekende voorbeelden. Ook CISC (zoals x86), met complexe instructies, splitst instructies intern in eenvoudige µOP's, zodat het verschil kleiner is geworden.

Waarvoor staan namen als ARM, x86 en RISC-V in de eerste plaats?

  1. ADe generatie van het productieproces
  2. BDe instructiesetarchitectuur (ISA)
  3. CHet type behuizing
Antwoord en toelichting tonen

Antwoord: B. De instructiesetarchitectuur (ISA)

ARM, x86 en RISC-V zijn namen van instructiesetarchitecturen (ISA). Een ISA legt de afspraken tussen software en hardware vast, zoals de soorten instructies die de processor begrijpt, de registers en de omgang met het geheugen. Bij dezelfde ISA draait hetzelfde programma, ook als een ander bedrijf de processor heeft ontworpen. x86 wordt door Intel en AMD gebruikt in pc's en servers, ARM in smartphones en de Mac van Apple, en RISC-V breidt zich vooral uit in embedded toepassingen.

Welke uitspraak over RISC-V is juist?

  1. AHet is een eigen instructieset die slechts door één bedrijf mag worden gebruikt
  2. BHet is een instructieset die uitsluitend voor GPU's bestemd is
  3. CHet is een instructiesetarchitectuur waarvan de specificatie openbaar is en die zonder licentiekosten kan worden gebruikt
Antwoord en toelichting tonen

Antwoord: C. Het is een instructiesetarchitectuur waarvan de specificatie openbaar is en die zonder licentiekosten kan worden gebruikt

RISC-V is een open ISA waarvan de ontwikkeling in 2010 begon aan de University of California, Berkeley; de specificatie is openbaar en iedereen kan het zonder licentiekosten implementeren. De basis-geheleninstructies zijn met circa 40 klein in aantal, en afhankelijk van de toepassing kunnen uitbreidingen zoals drijvende komma en vectoren worden gekozen en gecombineerd. Omdat ook eigen instructies kunnen worden toegevoegd, breidt het gebruik zich uit in embedded microcontrollers, storagecontrollers en AI-versnellers.

  1. Welke eigenschap van een load-store-architectuur zoals RISC-V is juist?
  2. Welke volgorde is de juiste basisvolgorde waarin een CPU een instructie verwerkt?

Oefenvragen over CPU en architectuur

Belangrijke termen uitgelegd

Instructiesetarchitectuur (ISA)
Specificatie van de processor zoals die voor software zichtbaar is, zoals de uitvoerbare instructies en registers. Voorbeelden: x86, Arm, RISC-V.

Verwante vergelijkingen