ARM versus x86, waarom is de ene energiezuiniger dan de andere?

ARM versus x86

Met de aankondiging deze week van de eerste Apple Macintosh gebaseerd op processors met ISA ARM, na de overgang door Apple een paar maanden geleden aangekondigd te hebben, is het onderwerp ARM vs x86 verschenen en de vraag waarom er geen CPU's zijn met ISA x86 op apparaten met een laag stroomverbruik is opnieuw verschenen. Maar wat zijn de motieven en mythen rond deze kwestie?

Als je je ooit hebt afgevraagd waarom je smartphones, tablets en allerlei apparaten die x86-processors gebruiken met een verbruik onder 10 W en zelfs 5 W niet kunt zien, laat ons je dan vertellen dat dit niet komt door een gebrek aan interesse in Intel or AMD, maar daar zijn een aantal redenen voor, een reeks onoverkomelijke barrières die te maken hebben met de aard van de x86-architectuur.

ARM versus x86 of CISC versus RISC

RISC versus CISC

ARM staat voor Advanced RISC Machines, terwijl elke x86-gebaseerde CPU zou een CISC-achtige instructieset hebben. Maar wat betekent dit? RISC staat voor Reduced Instruction Set Computing of Computing with a Reduced Instruction Set, terwijl CISC staat voor Complex Instruction Set Computing, daarom is het een manier om de sets instructies die door verschillende processors worden gebruikt, te classificeren.

Het belangrijkste verschil is dat omdat RISC een beperkte set instructies heeft, het uiteindelijk nodig is om verschillende eenvoudigere instructies te gebruiken om een ​​meer complexe instructie uit te voeren, terwijl in het geval van een CISC-eenheid veel complexe instructies in één instructie kunnen worden uitgevoerd. , dus CISC-schijven besparen ruimte in termen van de hoeveelheid geheugen.

Processor Render Generico

De machinecode van een som in RISC zou bijvoorbeeld de volgende zijn:

  1. Slaat de eerste operand op in het accumulatorregister
  2. Laad de tweede operand en doe de optelling.
  3. Slaat het resultaat op in het accumulatorregister.

In plaats daarvan op een CISC-processor:

  1. Voeg de eerste en tweede operand toe.

Wat betreft machinecode, a RISC binair heeft meer instructies en daarom neemt veel meer geheugen in beslag , terwijl in het CISC-binaire bestand de code veel lichter is.

De instructiecyclus van processors

Ophalen Decoderen Uitvoeren

Elke processor, of het nu CISC of RISC is, moet vier verschillende fasen doorlopen, namelijk:

Ophalen: De volgende instructie wordt in het geheugen opgehaald.

Decoderen: De instructie wordt gedecodeerd en voorbereid voor uitvoering.

Voer uit: De instructie wordt uitgevoerd door een van de uitvoeringseenheden van de CPU. en het resultaat van de instructie wordt naar de corresponderende geheugenbank of register geschreven.

In RISC-processors een instructie die door de CPU wordt uitgevoerd, is gelijk aan een instructie in binaire code, terwijl in CISC een instructie in machinecode kan zijn opgesplitst in verschillende micro-instructies, wat betekent dat de Decodeer eenheid van CISC-processors is veel complexer en is een andere van de belangrijkste factoren voor x86 om een ​​hoger verbruik te hebben.

Segmentatie op x86 versus ARM

segmentatie

Een van de eigenaardigheden die alle CPU's hebben sinds het begin van de jaren 90 is segmentatie, wat inhoudt dat in plaats van te wachten tot een instructie volledig in de processor is uitgevoerd om plaats te maken voor de volgende, deze worden vooruitgeschoven door elke fase van de instructie. cyclus, die kan worden onderverdeeld in verschillende subfasen elk.

Aangezien RISC-processors een directe correlatie hebben tussen het aantal instructies in de binaire code en de instructies die door de CPU worden uitgevoerd, is het heel gemakkelijk om de instructies in verschillende fasen te segmenteren. Maar in een x86 is het buitengewoon moeilijk , aangezien de segmentatie gebeurt op basis van de micro-instructies die worden gegenereerd tijdens de decoderingsfase, wat zelfs meer betekent extra schakelingen lopen en verbruiken continu stroom.

Niet alleen dat, maar hoewel bijvoorbeeld de opcodes van elke instructie in ARM een vaste grootte hebben in het geval van x86, zijn ze variabel, wat het decoderen van instructies in micro-instructies veel complexer maakt in het geval van x86-processors.

Minder records is gelijk aan minder energie-efficiëntie

Records

De ISA x86 heeft veel minder registers binnenin dan andere ISAS, betekent dit dat veel instructies moeten worden uitgevoerd in het geheugen of de caches, waardoor u uiteindelijk veel meer energie verbruiken bij het uitvoeren. Dit is een klassiek probleem van de x86-architectuur en niet omdat het een CISC-architectuur is.

Om het te begrijpen, moet u er rekening mee houden het energieverbruik van elke operatie hangt af van de afstand tussen de data en de processor .

x86 versus ARM op apparaten met een zeer laag stroomverbruik.

Intel-smartphone

Intel probeerde het een paar jaar geleden met de defecte Intel Medfield-processor.

Bovendien is een van de mogelijkheden die zijn overwogen, het creëren van een gemengde CPU , die bestaat uit een x86 die intern zijn instructies decodeert in ARM-instructies en volledige compatibiliteit mogelijk maakt tussen de twee ISAS, wat de definitieve processor zou zijn.

Maar helaas zijn noch ARM, noch Intel en AMD, vooral de laatste, geïnteresseerd in het maken van deze gemengde processor werken in beide modi zou het erg moeilijk te bereiken zijn, Afgezien daarvan zou het decoderen van x86-instructies een probleem blijven, dus zouden we een processor hebben die maar op één manier zou kunnen werken en waar het grootste deel van het circuit verloren zou gaan.