ARM, RISC-V en x86: instructiesetarchitecturen vergeleken
ARM, RISC-V en x86 zijn drie instructiesetarchitecturen (ISA's): de afspraken tussen software en processor. ARM en RISC-V zijn RISC-ontwerpen, x86 is een CISC-ontwerp dat decennialang is gegroeid. De grootste verschillen zijn wie ze mag bouwen en hoe groot de softwareomgeving is. x86 domineert pc's en servers, ARM domineert smartphones en groeit ook in laptops en servers. RISC-V is een open standaard die snel groeit in embedded toepassingen.
| Kenmerk | ARM | RISC-V | x86 |
|---|---|---|---|
| Ontwerpfilosofie | RISC. Load/store-architectuur | RISC. Load/store-architectuur en modulair | CISC. Veel complexe instructies en geheugenoperanden |
| Instructielengte | Vast 32 bits in 64-bitsmodus (AArch64) | 32 bits, met optionele gecomprimeerde instructies van 16 bits | Variabel, 1 tot 15 bytes |
| Algemene registers | 31 (AArch64) | 32 (x0 leest altijd als 0) | 16 (x86-64) |
| Licentie | Gesloten. Bedrijven nemen een licentie bij Arm en betalen vergoedingen en royalty's | Open standaard. Iedereen kan chips bouwen zonder licentiekosten | Gesloten. In de praktijk maken alleen Intel en AMD x86-processors |
| Modulariteit | Profielen voor applicaties (A), realtime (R) en microcontrollers (M) | Een kleine basis met optionele extensies (vermenigvuldigen, floating point, vectoren enzovoort) | Decennialang uitgebreid met extensies (SSE, AVX enzovoort). Oude software blijft werken |
| Softwareomgeving | Volwassen. Mobiel, Linux, Macs met Apple silicon, Windows on Arm | Snel groeiend. Vooral sterk in embedded en Linux | De grootste. Vooral Windows en traditionele desktop- en serversoftware |
| Belangrijkste sterke punten | Energie-efficiëntie en een groot bereik van microcontroller tot server | Aanpasbaarheid en geen licentiekosten | Hoge single-threadprestaties en softwarecompatibiliteit |
| Belangrijkste toepassingen | Smartphones, tablets, Macs van Apple, cloudservers, embedded | Embedded en IoT, accelerators, onderwijs, nieuwe servers | Pc's, servers, workstations |
De getalswaarden zijn typische ordegroottes en variëren per procesgeneratie en product.