Arm versus x86, wat is eigenlijk het verschil?

Inhoudsopgave
  1. 1. Inleiding
  2. 2. CPU-architectuur uitgelegd
  3. 3. Moderne 64bit-CPU-architecturen
  4. 4. Heterogene computing wint het van mobiel
  5. 5. Aangepaste Arm-kernen en instructiesets
  6. 6. Software-compatibiliteit
  7. 7. Arm vs x86: tot slot

CPU-architectuur uitgelegd

Hoewel de central processing unit (cpu) het brein is van je apparaat, kun je hem niet echt slim noemen. Een cpu werkt immers alleen wanneer hij zeer specifieke instructies krijgt (ook wel de instructieset genoemd) die de processor opdragen om gegevens tussen registers en geheugen te verplaatsen of een berekening uit te voeren met behulp van een specifieke uitvoeringseenheid. Voor unieke cpu-hardwareblokken zijn verschillende instructies nodig en deze worden vaak groter naarmate de cpu complexer en krachtiger wordt. Gewenste instructies kunnen ook het hardware-ontwerp beïnvloeden, zoals we verderop zullen zien.

Applicaties die op je telefoon draaien, zijn niet geschreven in cpu-instructies. In plaats daarvan zijn ze in verschillende programmeertalen op hoger niveau (zoals Java of C++) gecompileerd voor specifieke instructiesets, zodat ze correct werken op Arm, x86 of andere cpu's. Deze instructies worden verder gedecodeerd tot microcode-ops in de cpu, wat siliciumruimte en vermogen vraagt. Wanneer je een zo energiezuinig mogelijke cpu wenst, is het dus van het grootste belang de instructieset eenvoudig te houden. Hogere prestaties kunnen echter worden verkregen met complexere hardware en instructies die meerdere bewerkingen tegelijk kunnen uitvoeren, ten koste van het vermogen. Dit is een fundamenteel verschil tussen Arm en x86 en hun historische benadering van cpu-ontwerp.

Arm is immers gebaseerd op RISC (Reduced Instruction Set Computing), terwijl Intel (x86) CISC (Complex Instruction Set Computing) is. Arm's cpu-instructies zijn redelijk atomair, met een nauw verband tussen het aantal instructies en micro-ops, terwijl CISC veel meer instructies biedt en meer bewerkingen kan uitvoeren. Dit leidt tot betere prestaties, maar ook tot meer energiegebruik bij het decoderen van complexe instructies. De grenzen tussen RISC en CISC zijn tegenwoordig wat minder strak omlijnd, vanwege ideeën die van elkaar zijn geleend en een breed scala aan cpu-kernen die op architectuurvarianten zijn gebouwd. Daarnaast betekent de mogelijkheid om de Arm-architectuur aan te passen dat partners, waaronder Apple, hun eigen complexere instructies kunnen toevoegen.

Belangrijk in dit hele verhaal is dat het de koppeling tussen instructies en processorhardware-ontwerp is die een cpu-architectuur maakt. Zo kunnen deze architecturen worden ontworpen voor verschillende doeleinden, zoals bijvoorbeeld een laag energiegebruik of minimaal siliciumoppervlak. Dit is dus een belangrijk verschil wanneer we kijken naar Arm versus x86 in termen van cpu's, temeer daar de eerste is gebaseerd op een instructieset en hardware met een lager energiegebruik.

Advertentie
0