Hva er et instruksjonssett?
Et instruksjonssett, eller en instruksjonssettarkitektur, er det kollektive sett med kommandoer som en datamaskinprosessor kan utføre. Alt som en datamaskin gjør, fra å kjøre et tekstbehandlingsprogram til å kode videofiler, kan reduseres til en kombinasjon av disse kommandoene. Programmerere lager ikke direkte programmer gjennom disse instruksjonene, men bruker en spesiell type programvare kjent som en kompilator som oversetter programmeringskode til maskininstruksjoner. De fleste personlige datamaskiner bruker et instruksjonssett som først ble brukt på 1970-tallet, mens smarttelefoner, nettbrett og andre enheter bruker enklere instruksjonssett som er optimalisert for miljøer med lite strøm.
Datamaskiner kan virke i stand til ubegrensede oppgaver, men mikroprosessorene inni dem er bare i stand til å utføre et begrenset antall forhåndsdefinerte kommandoer, kjent som instruksjoner. På egen hånd er hver instruksjon relativt enkel, og kanskje fortelle prosessoren å legge til to tall eller å flytte et stykke data fra ett sted til et annet. Når de kombineres, blir disse grunnleggende instruksjonene ganske kraftige og brukes som grunnlag for all type programvare. Ytelsen og kompatibiliteten til en CPU er direkte relatert til antall og type instruksjoner CPU støtter, noe som gjør instruksjonen til et kritisk element i kommersiell suksess eller fiasko med noe nytt design.
En CPU kan bare utføre funksjoner som er en del av instruksjonssettet, men veldig få dataprogrammerere legger inn disse kommandoene i programvaren. I stedet brukes et mellomtrinn kjent som kompilering. I denne prosessen oversetter et program kjent som en kompilator menneskevennlig kode som brukes av programmerere til en "maskinkode" som prosessoren forstår. Siden forskjellige datamaskinprosessorer støtter forskjellige instruksjonssett, må en kompilator være designet for den prosessortypen programmet er ment å kjøre på. Med moderne mikroprosessorer som er i stand til å utføre så mange som hundrevis av millioner eller til og med milliarder av instruksjoner på et enkelt sekund, har kompilatorer blitt det eneste praktiske middelet til å lage programvare for datamaskiner.
Mikroprosessorene som ble brukt i nesten alle personlige datamaskiner som er solgt siden 1980-tallet, bruker et instruksjonssett kalt x86, som opprinnelig var designet for en Intel®-prosessor som debuterte på midten av 1970-tallet. Ønsket om bakoverkompatibilitet har bidratt til å holde x86 dominerende i PC-markedet, selv om nye instruksjoner noen ganger legges til gjennom utvidelser. Mange smarttelefoner, nettbrett og andre typer forbrukerelektronikk bruker mikroprosessorer basert på ARM-instruksjonssettet, som er enklere og mer strømeffektivt enn x86. High end-servere, superdatamaskiner og andre spesialiserte enheter som spillkonsoller kan bruke forskjellige instruksjonssett.