Reduced Instruction Set Computer (RISC) is een type of categorie van de processor, oftewel de Instructieset-architectuur (ISA). Globaal gesproken is een ISA een medium waarmee een processor communiceert met de menselijke programmeur (hoewel er verschillende andere formeel geïdentificeerde lagen bestaan tussen de processor en de programmeur). Een instructie is een opdracht die aan de processor wordt gegeven om een actie uit te voeren. Een instructieset is de volledige verzameling instructies voor een bepaalde processor, en de term architectuur impliceert een bepaalde manier van bouwen van het systeem dat de processor maakt.
RISC verwijst in het algemeen naar een gestroomlijnde versie van zijn voorganger, de Complex Instruction Set Computer (CISC). Bij de ontwikkeling van processoren was er geen formele aanduiding voor CISC, maar sindsdien is de term bedacht om aan te geven dat zij verschillen van de RISC-architectuur. Enkele voorbeelden van CISC microprocessor instructie set architecturen (ISA’s) zijn de Motorola 68000 (68K), de DEC VAX, PDP-11, verschillende generaties van de Intel x86, en 8051.
Voorbeelden van processoren met de RISC architectuur zijn MIPS, PowerPC, Atmel’s AVR, de Microchip PIC processoren, Arm processoren, RISC-V, en alle moderne microprocessoren hebben ten minste enkele elementen van RISC. De evolutie van 8- en 16-bit naar 32-bit architecturen dwong in wezen de behoefte aan RISC-architecturen af. Toch duurde het een decennium voordat RISC-architecturen aansloegen, vooral door een gebrek aan software die op RISC-architecturen kon draaien. Intel was ook van invloed, omdat het de middelen had om de CISC-architectuur te blijven gebruiken en het niet nodig vond om vanaf de grond opnieuw te ontwerpen. De MIPS-architectuur was een van de eerste RISC-ISA’s en is op grote schaal gebruikt om de RISC-architectuur te onderwijzen.
Enige geschiedenis
De eerste geïntegreerde chip werd in 1958 ontworpen door Jack Kilby. Microprocessoren werden in de jaren 1970 geïntroduceerd, de eerste commerciële kwam van Intel Corporation. In het begin van de jaren tachtig werd de RISC-architectuur geïntroduceerd. Het RISC-ontwerp kwam tot stand als een totaal herontwerp omdat de CISC-architectuur complexer werd. De meeste mensen schrijven John Cocke van IBM toe als de bedenker van het RISC-concept. De geschiedenis leert ons dat, om een snellere computer te krijgen, enkele grote veranderingen in de microprocessorarchitectuur plaatsvonden die RISC werden, waaronder een uniform formaat voor instructies en gemakkelijk te pipelinen instructies. (Pipelining betekent dat de processor de volgende instructie begint uit te voeren voordat de huidige instructie is voltooid). In de jaren zeventig was geheugen kostbaar, zodat kleinere programma’s centraal stonden.
Wat zijn de verschillen tussen RISC en CISC?
Het korte antwoord is dat RISC door velen wordt gezien als een verbetering ten opzichte van CISC. Er is geen beste architectuur, omdat verschillende architecturen gewoon beter kunnen zijn in sommige scenario’s, maar minder ideaal in andere. Op RISC gebaseerde machines voeren één instructie per klokcyclus uit. CISC-machines kunnen speciale instructies hebben, alsmede instructies die meer dan één cyclus nodig hebben om te worden uitgevoerd. Dit betekent dat dezelfde instructie die op een CISC-architectuur wordt uitgevoerd, op een RISC-machine meerdere instructies nodig heeft om te worden uitgevoerd. De RISC-architectuur heeft meer werkgeheugen (RAM) nodig dan de CISC-architectuur om waarden vast te houden terwijl zij elke instructie laadt, erop reageert en vervolgens de volgende laadt.
De CISC-architectuur kan één, zij het complexere instructie uitvoeren, die dezelfde bewerkingen in één keer uitvoert, rechtstreeks in het geheugen. De RISC-architectuur heeft dus meer RAM nodig, maar voert altijd één instructie per klokcyclus uit voor een voorspelbare verwerking, wat goed is voor pipelining. Een van de belangrijkste verschillen tussen RISC en CISC is dat RISC de nadruk legt op efficiëntie in cycli per instructie en CISC op efficiëntie in instructies per programma. Een snelle processor is afhankelijk van hoeveel tijd het kost om elke klokcyclus uit te voeren, hoeveel cycli het kost om instructies uit te voeren, en het aantal instructies dat elk programma bevat. Bij RISC ligt de nadruk op een grotere omvang van de programmacode (als gevolg van een kleinere instructieset, zodat meerdere achter elkaar uitgevoerde stappen gelijk kunnen zijn aan één stap in CISC).
De RISC ISA legt de nadruk op software boven hardware. De RISC-instructieset vereist dat men efficiëntere software schrijft (b.v. compilers of code) met minder instructies. CISC-ISA’s gebruiken meer transistors in de hardware om meer instructies en ook complexere instructies te implementeren.
RISC heeft meer RAM nodig, terwijl CISC de nadruk legt op een kleinere codegrootte en over het geheel genomen minder RAM gebruikt dan RISC. Veel microprocessoren hebben tegenwoordig echter een mix van RISC- en CISC-achtige kenmerken, zoals een CISC-achtige ISA die instructies behandelt alsof het een reeks instructies van het RISC-type betreft.
Enkele belangrijke verschillen tussen CISC- en RISC-architecturen staan vermeld in tabel 1.