Wat is een instructieset?
Een instructieset of een instructiesetarchitectuur is de collectieve set opdrachten die een computerprocessor kan uitvoeren. Alles wat een computer doet, van het uitvoeren van een tekstverwerkingsprogramma tot het coderen van videobestanden, kan worden teruggebracht tot een combinatie van deze opdrachten. Programmeurs maken niet rechtstreeks programma's via deze instructies, maar gebruiken een speciaal type software dat compiler wordt genoemd en programmeercode vertaalt in machine-instructies. De meeste personal computers gebruiken een instructieset die voor het eerst werd gebruikt in de jaren 1970, terwijl smartphones, tablets en andere apparaten eenvoudigere instructiesets gebruiken die zijn geoptimaliseerd voor omgevingen met een laag stroomverbruik.
Computers lijken onbegrensde taken uit te voeren, maar de microprocessors erin kunnen slechts een beperkt aantal vooraf gedefinieerde opdrachten uitvoeren, de zogenaamde instructies. Op zichzelf is elke instructie relatief eenvoudig, waarbij de processor misschien wordt verteld om twee nummers toe te voegen of een stukje gegevens van de ene naar de andere locatie te verplaatsen. In combinatie worden deze basisinstructies behoorlijk krachtig en worden ze gebruikt als basis voor alle soorten software. De prestaties en compatibiliteit van een CPU hangen rechtstreeks samen met het aantal en het type instructies dat de CPU ondersteunt, waardoor de instructieset een cruciaal element vormt in het commerciële succes of falen van een nieuw ontwerp.
Een CPU kan alleen functies uitvoeren die deel uitmaken van zijn instructieset, maar zeer weinig computerprogrammeurs nemen deze opdrachten op in hun software. In plaats daarvan wordt een tussenstap gebruikt die bekend staat als compileren. In dit proces vertaalt een programma dat bekend staat als een compiler, mensvriendelijke code die door programmeurs wordt gebruikt in een "machinecode" die de processor begrijpt. Aangezien verschillende computerprocessors verschillende instructiesets ondersteunen, moet een compiler worden ontworpen voor het type processor waarop het programma moet worden uitgevoerd. Met moderne microprocessors die in staat zijn om honderden miljoenen of zelfs miljarden instructies in één seconde uit te voeren, zijn compilers het enige praktische middel geworden om software voor computers te maken.
De microprocessors die sinds de jaren tachtig in bijna alle pc's worden gebruikt, gebruiken een instructieset met de naam x86, die oorspronkelijk was ontworpen voor een Intel®-processor die halverwege de jaren zeventig debuteerde. Het verlangen naar achterwaartse compatibiliteit heeft ertoe bijgedragen x86 dominant te houden op de pc-markt, hoewel af en toe nieuwe instructies worden toegevoegd via extensies. Veel smartphones, tablets en andere soorten consumentenelektronica gebruiken microprocessors op basis van de ARM-instructieset, die eenvoudiger en energiezuiniger is dan x86. High-end servers, supercomputers en andere gespecialiseerde apparaten zoals gameconsoles kunnen verschillende instructiesets gebruiken.