ARM vs x86, hvorfor er den ene mere energieffektiv end den anden?

ARM vs x86

Med meddelelsen i denne uge om den første Apple Macintosh baseret på processorer med ISA ARM, efter at have annonceret overgangen fra Apple for et par måneder siden, har emnet ARM vs x86 dukket op, og spørgsmålet om, hvorfor der ikke er nogen CPU'er med ISA x86 på enheder med lavt strømforbrug, har det dukket op igen. Men hvad er motiverne og myterne omkring dette emne?

Hvis du nogensinde har spekuleret på, hvorfor du ikke kan se smartphones, tablets og alle slags enheder, der bruger x86-processorer med et forbrug under 10 W og endda 5 W. Så lad os fortælle dig, at det ikke skyldes manglende interesse for Intel or AMD, men der er en række grunde til dette, en række uoverstigelige barrierer, der har at gøre med arten af ​​x86-arkitekturen.

ARM vs x86 eller CISC vs RISC

RISC vs CISC

ARM står for Advanced RISC Machines, mens alle x86-baserede CPU siges at have et CISC-lignende instruktions sæt. Men hvad betyder dette? RISC står for Reduced Instruction Set Computing eller Computing with a Reduced Instruction Set, mens CISC står for Complex Instruction Set Computing, Derfor er det en måde at klassificere de sæt instruktioner, der bruges af forskellige processorer.

Hovedforskellen er, at fordi RISC har et reduceret sæt instruktioner, ender det med at være nødvendigt at bruge flere enklere instruktioner til at udføre en mere kompleks, mens i tilfælde af en CISC-enhed kan mange komplekse instruktioner udføres i en enkelt instruktion , så CISC-drev sparer plads med hensyn til mængden af ​​hukommelse.

Procesador gengiver Genérico

For eksempel vil maskinkoden for et beløb i RISC være følgende:

  1. Gemmer den første operand i akkumulatorregistret
  2. Indlæs den anden operand og udfør tilføjelsen.
  3. Gemmer resultatet i akkumulatorregistret.

I stedet for på en CISC-processor:

  1. Tilføj den første og anden operand.

Hvad angår maskinkode, a RISC binær har flere instruktioner og derfor tager meget mere hukommelse , mens koden i CISC binær er meget lettere.

Instruktionscyklus for processorer

Hent afkode udfør

Hver processor, uanset om det er CISC eller RISC, skal gennemgå fire forskellige faser, som er:

Hent: Følgende instruktion hentes i hukommelsen.

Afkode: Instruktionen afkodes og forberedes til udførelse.

Udfør: Instruktionen udføres af en af ​​CPU'ens eksekveringsenheder. og resultatet af instruktionen skrives til den tilsvarende hukommelsesbank eller det tilsvarende register.

In RISC-processorer en instruktion udført af CPU'en svarer til en instruktion i binær kode, mens der i CISC kan være en instruktion i maskinkode opdelt i flere mikroinstruktioner, hvilket betyder, at Afkode enhed af CISC-processorer er meget mere kompleks og er en anden af ​​de vigtigste faktorer for x86 at have et højere forbrug.

Segmentering på x86 vs ARM

Segmentering

En af de særegenheder, som alle CPU'er har siden begyndelsen af ​​90'erne, er segmentering, der består i, at i stedet for at vente på, at en instruktion udføres fuldt ud i processoren for at give plads til den næste, avanceres disse af hvert trin i instruktionen. cyklus, som hver især kan opdeles i flere underfaser.

Da RISC-processorer har en direkte sammenhæng mellem antallet af instruktioner i den binære kode og dem, der udføres af CPU'en, er det meget let at segmentere instruktionerne i flere faser. Men i en x86 er det ekstremt svært , da segmenteringen udføres på mikroinstruktionerne, der genereres under dekodningsfasen, hvilket betyder endnu mere yderligere kredsløb kører og forbruger strøm kontinuerligt.

Ikke kun det, men mens for eksempel opkoderne for hver instruktion i ARM er af fast størrelse i tilfælde af x86, er de variable, hvilket gør dekodningen af ​​instruktioner i mikroinstruktioner meget mere kompleks i tilfælde af x86-processorer.

Færre poster er lig med mindre energieffektivitet

Records

ISA x86 har meget færre registre inde i det end andre ISAS betyder det, at der skal udføres mange instruktioner på hukommelsen eller cacherne, hvilket får dig til at ender med at forbruge meget mere energi ved udførelse. Dette er et klassisk problem med x86-arkitekturen og ikke fordi det er en CISC-arkitektur.

For at forstå det er det nødvendigt at tage højde for det energiforbruget af hver operation afhænger af afstanden mellem dataene og processoren .

x86 vs ARM på enheder med meget lav effekt.

Intel smartphone

Intel prøvede det for et par år siden med den mislykkede Intel Medfield-processor.

Hvad mere er, er en af ​​de muligheder, der er blevet overvejet, oprettelsen af ​​en blandet CPU , som består af en x86, der internt afkoder sine instruktioner til ARM-instruktioner og tillader fuld kompatibilitet mellem de to ISAS, som ville være den endelige processor.

Men desværre er hverken ARM eller Intel og AMD, især sidstnævnte, interesseret i at lave denne blandede processor siden for at gøre det arbejde i begge tilstande, det ville være meget vanskeligt at opnå, bortset fra at dekodning af x86-instruktioner fortsat ville være et problem, så vi ville have en processor, der kun kunne arbejde på en måde, og hvor det meste af kredsløbet ville blive spildt.