Iedereen gaat tegenwoordig voor ARM – Amazon en Apple leveren beide interne CPU’s met waanzinnige prestatieverbeteringen, en het gerucht gaat dat Microsoft hun eigen CPU’s ontwikkelt. ARM wordt van oudsher gebruikt voor mobiele chips met een laag stroomverbruik, dus waarom verplettert ARM x86 precies op de desktop- en serverruimte?
Iedereen gaat tegenwoordig ARM
De processorwereld is een complexe industrie en slechts een paar ontwerpen van een paar bedrijven zijn in staat om te concurreren op het gebied van hoge prestaties. Meestal hebben Intel of AMD de kroon op het gebied van prestaties, waarbij ze allebei x86-CPU’s produceren. Maar onlangs hebben CPU’s van Apple en Amazon op basis van ARM Intel (en de x86-architectuur) een run voor hun geld gegeven.
Amazon heeft hun Graviton2-CPU, die niet sneller is dan de servers van Intel, maar goedkoper is en minder stroom verbruikt. Met hoeveel verbetering het was ten opzichte van Graviton1, zal hun volgende iteratie waarschijnlijk hevige concurrentie in de serverruimte zijn.
Apple raakte het park uit met hun eerste niet-mobiele CPU, de Apple Silicon M1-processor, die sneller werkt dan desktop-Intel-CPU’s en bijna net zo snel als AMD’s Ryzen 5000-serie, de huidige prestatiekroon. Het is op maat gemaakt silicium dat Apple Macbooks tot de huidige snelste laptops ter wereld maakt, tot grote ergernis van pc-enthousiastelingen (inclusief ikzelf).
Ze lopen zelfs zo ver voor op de laptopruimte dat Windows op de M1 Macbook sneller werkt dan de Surface Pro X, ondanks dat Windows op ARM alleen draait via een emulator. En alsof dat nog niet vernederend genoeg was, verplettert het het absoluut met een Geekbench Single-Core-score van 1.390 in vergelijking met de Surface’s 802, wat in vergelijking belachelijk slecht is. De M1 is serieus snel.
Het gerucht gaat ook dat Microsoft hun eigen interne ARM-processor ontwikkelt, en hoewel dat gerucht afkomstig is van de Azure-serverruimte, zouden ze waarschijnlijk dezelfde chip voor de Surface gebruiken als ze de prestaties van Apple kunnen evenaren.
Wat is het verschil tussen ARM en x86?
Aan het eind van de dag is er niet al te veel verschil tussen ARM en x86. U kunt nog steeds Google Chrome gebruiken en YouTube op beide bekijken. In feite doet u dit nu misschien, aangezien bijna alle Androids en elke iPhone een ARM-processor gebruiken.
Het grootste verschil voor de meeste mensen is dat oudere applicaties die bedoeld zijn voor x86, opnieuw moeten worden gecompileerd om ook op ARM te kunnen draaien. Voor sommige dingen is dit eenvoudig, maar niet alles wordt ondersteund, met name oudere software. Maar zelfs dat kan meestal verlopen via x86-emulatie, die Windows begint te ondersteunen.
Voor ontwikkelaars zijn er veel verschillen in hoe applicaties worden gecompileerd, maar tegenwoordig ondersteunen de meeste compilers de belangrijkste instructiesets goed en hoef je niet echt veel wijzigingen aan te brengen om het voor meerdere platforms te laten compileren. .
Maar hoe werkt ARM sneller?
Om deze vraag te beantwoorden, zullen we dieper moeten ingaan op hoe CPU’s onder de motorkap werken.
ARM en x86 zijn beide instructiesets, ook gekend als architecturen, wat in feite een lijst is van microcode “programma’s” die de CPU ondersteunt. Daarom hoef je je geen zorgen te maken over het draaien van een Windows-app op een specifieke AMD- of Intel-CPU; het zijn beide x86 CPU’s, en hoewel de exacte ontwerpen verschillen (en anders presteren), ondersteunen ze allebei dezelfde instructies. Dit betekent dat elk programma dat voor x86 is gecompileerd, in het algemeen beide CPU’s ondersteunt.
CPU’s voeren bewerkingen in feite opeenvolgend uit, zoals een machine die een lijst met taken moet uitvoeren. Elke instructie staat bekend als een opcode, en architecturen zoals x86 hebben veel opcodes, vooral als je bedenkt dat ze al tientallen jaren bestaan. Vanwege deze complexiteit staat x86 bekend als een “Complex Instruction Set” of CISC.
CISC-architecturen nemen over het algemeen de ontwerpbenadering van veel dingen in een enkele instructie. Een instructie voor vermenigvuldiging kan bijvoorbeeld gegevens van een geheugenbank naar een register verplaatsen, vervolgens de stappen voor de vermenigvuldiging uitvoeren en de resultaten in het geheugen schudden. Alles in één instructie.
Onder de motorkap wordt deze instructie echter uitgepakt in vele “micro-ops”, die de CPU uitvoert. Het voordeel van CISC is geheugengebruik, en aangezien het vroeger duur was, was CISC vroeger beter.
Dat is echter niet meer de bottleneck, en hier komt RISC om de hoek kijken. RISC, of Reduced Instruction Set, maakt in feite een einde aan complexe meerdelige instructies. Elke instructie kan meestal in een enkele klokcyclus worden uitgevoerd, hoewel veel lange bewerkingen moeten wachten op resultaten van andere delen van de CPU of het geheugen.
Hoewel dit achteruit lijkt te gaan, heeft het enorme gevolgen voor het CPU-ontwerp. CPU’s moeten al hun instructies uit RAM laden en deze zo snel mogelijk uitvoeren. Het blijkt dat het veel gemakkelijker is om dat te doen als je veel eenvoudige instructies hebt in plaats van veel complexe. De CPU werkt sneller als de instructiebuffer kan worden gevuld, en dat is een stuk gemakkelijker te doen als de instructies kleiner en gemakkelijker te verwerken zijn.
RISC heeft ook het voordeel van iets dat Out-of-Order-uitvoering of OoOE wordt genoemd. In wezen heeft de CPU een eenheid erin die de instructies die erin komen opnieuw rangschikt en optimaliseert. Als een applicatie bijvoorbeeld twee dingen moet berekenen, maar ze zijn niet van elkaar afhankelijk, kan de CPU beide parallel uitvoeren. Gewoonlijk is parallelle code erg ingewikkeld voor ontwikkelaars om te schrijven, maar op de laagste niveaus van de CPU kan het gebruik maken van multi-tasking om dingen te versnellen. De Apple M1-chip gebruikt OoOE met groot succes.
Als je geïnteresseerd bent in de innerlijke werking, zou je dit fantastische artikel van Erik Engheim moeten lezen over wat de Apple M1-chip zo snel maakt. Kortom, het maakt veel gebruik van gespecialiseerd silicium, uitvoering buiten de bestelling en heeft veel meer instructiedecoders om zijn snelheid te ondersteunen.
Gaat ARM x86 vervangen?
Het eerlijke antwoord is: waarschijnlijk. Intel voelt al jaren het einde van de wet van Moore, en hoewel AMD de afgelopen jaren in staat is geweest om prestaties te verbeteren, zijn ze niet ver vooruit.
Dit wil niet zeggen dat x86 binnenkort zal uitsterven, maar het is duidelijk dat ARM meer potentieel heeft dan alleen een mobiele architectuur te zijn – een stigma dat niet langer geldig is gezien de huidige richting van de industrie. De voordelen van RISC-architecturen zijn duidelijk, en met hoeveel de Apple M1-chip al is verbeterd, ziet de toekomst van de industrie er veelbelovend uit.
Bovendien is ARM niet de enige RISC-architectuur die er is. Het is nog steeds eigendom, hoewel ARM zijn ontwerpen in licentie geeft aan externe ontwerpers, zoals Qualcomm, Samsung en Apple. RISC-V is open source en is eveneens veelbelovend. Het is een gestandaardiseerde instructiesetarchitectuur, waarbij de exacte implementaties aan de fabrikant worden overgelaten. Als de industrie in het algemeen richting RISC gaat, zullen er open en closed source-implementaties beschikbaar zijn.