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.
| Kenmerk | RISC | CISC |
|---|---|---|
| Filosofie | Weinig eenvoudige instructies. Elke instructie doet weinig werk en is ontworpen om snel te worden uitgevoerd | Veel krachtige instructies. Sommige instructies voeren meerdere stappen uit |
| Instructielengte | Vast (bijvoorbeeld 32 bits in de basisinstructiesets van RISC-V en AArch64) | Variabel (x86-instructies zijn 1 tot 15 bytes) |
| Geheugentoegang | Load/store-architectuur. Alleen load- en store-instructies raken het geheugen aan en rekenen gebeurt tussen registers | Veel instructies kunnen data in het geheugen rechtstreeks als operand gebruiken |
| Registers | Veel algemene registers (32 bij RISC-V en AArch64) | Minder (16 algemene registers bij x86-64) |
| Decodering | Eenvoudig, geschikt voor pipelining en met kleinere hardware | Complex. Moderne x86-cores zetten instructies intern om in micro-ops |
| Codegrootte | Groter. Te verkleinen met extensies voor gecomprimeerde instructies (Thumb, de C-extensie van RISC-V) | Compacter, omdat elke instructie meer werk doet |
| Voorbeelden | ARM, RISC-V, MIPS, PowerPC | x86 en x86-64 (Intel, AMD), IBM z/Architecture |
| Belangrijkste toepassingen | Smartphones, embedded apparaten en steeds vaker laptops en servers | Pc's en servers, waar softwarecompatibiliteit belangrijk is |
De getalswaarden zijn typische ordegroottes en variëren per procesgeneratie en product.