Nog niet eens zo heel lang geleden was de wereld heel simpel: in desktops en laptops zaten complexe maar snelle x86-chips, en in smartphones en tablets zaten simpele maar zuinige Arm-chips. Tegenwoordig kun je bij de aanschaf van een laptop of desktop kiezen tussen beide architecturen en is die tegenstelling 'snel versus zuinig' een stuk minder hard dan voorheen.
Het fundamentele verschil tussen x86 en Arm is de instructieset. X86 is een zogenaamde CISC-architectuur en gebruikt op het diepste niveau complexe, maar daardoor potentieel krachtige instructies. Arm-processors gebruiken simpelere instructies, waardoor ze traditioneel uitblinken in zuinigheid.
Arm en x86 in het kort
- De x86-architectuur is complex, potentieel krachtig en vaak minder zuinig. AMD en Intel zijn de belangrijkste gebruikers van de x86-architectuur.
- De Arm-architectuur is simpeler, maar traditioneel zuiniger dan x86. Onder meer Apple, Qualcomm en Samsung gebruiken de Arm-architectuur.
| x86 | Arm | |
| Type instructies | Complex | Simpel |
| Lengte instructies | Variabel | Vast |
| Traditionele sterkte | Prestaties | Energiezuinigheid |
| Beschikbaarheid | Alleen AMD en Intel | Vrij te licenseren |
Ieder een ander principe: CISC en RISC
De x86-architectuur werd in de jaren '70 ontworpen volgens het CISC-principe: het is een Complex Instruction Set Computer. Complex betekent hier dat instructies kunnen verschillen in lengte (maximaal 15 bytes) en meerdere handelingen kunnen bevatten, bijvoorbeeld niet alleen optellen, maar ook de benodigde data ophalen en weer wegschrijven.
Bij een RISC-processor zijn al die stappen losse instructies, die per stuk simpeler zijn. De afkorting staat dan ook voor Reduced Instruction Set Computer. Alle Arm-instructies zijn altijd even groot (32 bits oftewel 4 bytes), waardoor ze voorspelbaar en makkelijk decodeerbaar zijn in de frontend van een processor.
Een ander voorbeeld van de traditioneel simpelere frontend is dat instructies pas sinds 2007 out of order kunnen worden uitgevoerd, terwijl x86-cpu's deze techniek al sinds midden jaren '90 gebruikten.
Arm is bovendien nieuwer dan x86; het stamt uit de jaren '80 en heeft mede daardoor minder legacy. X86 heeft bijvoorbeeld een nog altijd bruikbare 16bit-modus, die niet in Arm zit.
Ontwerpers van cpu-cores, zoals AMD, Intel en (het bedrijf) Arm, bedenken zelf hoe een chip moet werken om zo efficiënt mogelijk x86- dan wel Arm-instructies uit te voeren. Deze werking speelt zich eigenlijk een niveau dieper af dan de architectuur zelf. Officieel spreken we over bijvoorbeeld AMD Zen dan ook niet als een architectuur, maar als een microarchitectuur.
Is Arm zuiniger dan x86?
Traditioneel is de Arm-architectuur energiezuiniger dan x86. Dat komt vooral door de kleine, simpele en voorspelbare instructies van 4 bytes waarmee deze architectuur werkt. Doordat x86-instructies onderling veel meer kunnen verschillen in lengte en complexiteit, heeft de frontend van een x86-processor een stuk meer werk aan het decoderen en slim indelen van de binnenkomende instructies. Meer werk vertaalt zich hier in een hoger energiegebruik.
Is Arm dus per definitie zuiniger dan x86? Zo simpel zit het niet. Je zou kunnen zeggen dat dat per instructie geldt, maar doordat de instructies bij x86 complexer kunnen zijn, komt het vaak voor dat je op een x86-processors minder instructies nodig hebt om hetzelfde te bereiken. Dat levert snelheidswinst op en kan ook een hoger energiegebruik per instructie goedmaken.
Licentiemodel
Er zit nog altijd een x86-cpu in bijna elke laptop, desktop en server, maar deze architectuur is eigenlijk maar voorbehouden aan een klein clubje. Intel heeft x86 uitgevonden en het is uitgebreid door AMD; die twee fabrikanten hebben een licentieovereenkomst met elkaar. Om historische redenen heeft ook VIA Technologies een x86-licentie, maar buiten zijn Chinese joint venture Zhoaxin doet het daar weinig mee.
In theorie is het mogelijk om een x86-licentie te nemen. Behalve dat je dan met meerdere bedrijven tot overeenstemming moet komen, zijn er ook tal van gepatenteerde uitbreidingen op de x86-architectuur die nog niet beschikbaar zijn. In de praktijk ligt de instapdrempel te hoog om vanaf niets x86-chips te gaan maken.
Arm heeft juist een open licentiemodel en maakte tot voor kort niet eens zelf processors. In ruil voor toegang en een royalty op elke verkochte cpu kunnen cpu-ontwerpers als Qualcomm en Apple hun eigen processors baseren op de Arm-architectuur. Zelfs AMD en Intel hebben licenties op Arm.
Processorontwerpers kunnen kiezen om Arms referentieontwerpen voor cores over te nemen, bijvoorbeeld een Cortex-core. Onder meer Samsung en MediaTek doen dit. Het is ook mogelijk om alleen de architectuur te licenseren en op basis daarvan een eigen coreontwerp te maken. Apple en Qualcomm zijn de belangrijkste voorbeelden daarvan.
Wat is beter: Arm of x86?
In de publieke opinie doet Arm het goed. Onder meer de succesvolle M-serie van Apple gebruikt Arm en ook de Snapdragon X-chips van Qualcomm maakten indruk met hun energiezuinigheid. Toch is het op basis van zowel x86 als Arm mogelijk om een zuinige, snelle processor te maken.
Toen Apple stopte met het gebruik van Intel-processors, koos het voor Arm omdat het al lange tijd ervaring had opgebouwd met het ontwerpen van Arm-chips voor zijn smartphones en tablets, de A-serie. Daarnaast was het ontwerpen van x86-chips helemaal geen realistische optie, vanwege het hierboven besproken licentiemodel.
Je kunt niet zomaar stellen dat de ene of de andere architectuur beter is; als Apple dezelfde knappe koppen evenveel tijd had gegeven om een heel goede x86-chip te maken, was die processor misschien wel net zo snel en zuinig geweest. Ook Intel zelf maakt inmiddels weer veel betere x86-chips dan toen Apple besloot om de overstap te maken.
Wat merk je in de praktijk van Arm of x86?
In de praktijk merk je vaak weinig van welk type processor je gebruikt. Android-apparaten gebruiken bijna per definitie Arm. Ook Apple heeft de keuze al voor je gemaakt door alle softwareontwikkelaars te verplichten om de overstap van x86 naar Arm te maken.
Alleen bij Windows-laptops kun je echt kiezen. Laptops met een AMD- of Intel-cpu gebruiken de vertrouwde x86-architectuur, maar er is ook een Windows-versie voor Arm-cpu's. Dat zijn in elk geval de Qualcomm Snapdragon X-chips en er gaan al lange tijd geruchten dat ook Nvidia eigen Arm-cpu's voor Windows gaat uitbrengen.
Traditioneel werd alle Windows-software voor x86 geschreven. Hoewel van steeds meer apps ook Arm-versies beschikbaar zijn, kan het voorkomen dat een x86-programma geëmuleerd moet worden. Dat kost hoe dan ook extra energie en bij sommige specifieke software, zoals games met anticheat, werkt het niet altijd vlekkeloos. Ook zijn er voor oudere randapparatuur soms geen Arm-drivers beschikbaar. De compatibiliteit van Windows-programma's met Arm kun je bijvoorbeeld vinden op WindowsonARM.org.
Tot slot
Arm en x86 zijn chiparchitecturen met een ieder een eigen werkwijze en herkomst. Toch lukt het processorontwerpers om op basis van beide architecturen competitieve processors te maken. Terwijl x86 een vrijwel gesloten ecosysteem van Intel en AMD is, biedt Arm een open model dat fabrikanten als Apple en Qualcomm in staat stelt om eigen geoptimaliseerde chips te ontwikkelen.
Belangrijker dan of de architectuur x86 of Arm is, is tegenwoordig het product dat bijvoorbeeld Intel en Qualcomm op basis ervan ontwikkelen. Je kunt je dus het beste baseren op daadwerkelijke testresultaten en reviews om voor jou de beste keuze te bepalen.