ARM vs x86, de ce este unul mai eficient din punct de vedere energetic decât celălalt?

ARM vs x86

Cu anunțul din această săptămână a primului Apple Macintosh bazat pe procesoare cu ISA ARM, După ce a anunțat tranziția de către Apple cu câteva luni în urmă, a apărut subiectul ARM vs x86 și a reapărut întrebarea de ce nu există procesoare cu ISA x86 pe dispozitivele de consum redus. Dar care sunt motivele și miturile din jurul acestei probleme?

Dacă v-ați întrebat vreodată de ce nu puteți vedea smartphone-uri, tablete și tot felul de dispozitive care folosesc procesoare x86 cu un consum sub 10 W și chiar 5 W. Atunci permiteți-ne să vă spunem că nu se datorează lipsei de interes pentru Intel or AMD, dar există o serie de motive pentru aceasta, o serie de bariere insurmontabile care au legătură cu natura arhitecturii x86.

ARM vs x86 sau CISC vs RISC

RISC vs CISC

ARM înseamnă Mașini avansate RISC, în timp ce fiecare bazat pe x86 Procesor se spune că are un set de instrucțiuni asemănător CISC. Dar ce înseamnă asta? RISC înseamnă Reduced Instruction Set Computing sau Computing with a Reduced Instruction Set, în timp ce CISC înseamnă Complex Instruction Set Computing, Prin urmare, este un mod de clasificare a seturilor de instrucțiuni utilizate de diferiți procesoare.

Principala diferență este că, deoarece RISC are un set redus de instrucțiuni, ajunge să fie necesară utilizarea mai multor instrucțiuni mai simple pentru a executa una mai complexă, în timp ce în cazul unei unități CISC multe instrucțiuni complexe pot fi efectuate într-o singură instrucțiune , astfel încât unitățile CISC economisesc spațiu în ceea ce privește cantitatea de memorie.

Procesor Render Genérico

De exemplu, codul mașinii unei sume în RISC ar fi următorul:

  1. Stochează primul operand din registrul acumulatorului
  2. Încărcați al doilea operand și efectuați adăugarea.
  3. Stochează rezultatul în registrul acumulatorului.

În schimb, pe un procesor CISC:

  1. Adăugați primul și al doilea operand.

În ceea ce privește codul mașinii, a Binar RISC are mai multe instrucțiuni și, prin urmare ocupă mult mai multă memorie , în timp ce în binarul CISC codul este mult mai ușor.

Ciclul de instrucțiuni al procesoarelor

Preluare Decode Execute

Fiecare procesor, indiferent dacă este CISC sau RISC, trebuie să parcurgă patru etape diferite care sunt:

Aduceți: Următoarea instrucțiune este preluată în memorie.

Decodează: Instrucțiunea este decodată și pregătită pentru executare.

A executa: Instrucțiunea este executată de una dintre unitățile de execuție ale procesorului. iar rezultatul instrucțiunii este scris în banca sau registrul de memorie corespunzător.

In Procesoare RISC o instrucțiune executată de CPU este echivalentă cu o instrucțiune în cod binar, în timp ce în CISC poate fi o instrucțiune în codul mașinii împărțit în mai multe microinstrucțiuni, ceea ce înseamnă că Decodează unitatea de Procesoarele CISC este mult mai complex și este un alt factor important pentru ca x86 să aibă un consum mai mare.

Segmentarea pe x86 vs ARM

segmentarea

Una dintre particularitățile pe care le au toate procesoarele de la începutul anilor 90 este segmentarea, constând în faptul că, în loc să aștepte ca o instrucțiune să fie executată integral în procesor pentru a face loc următoarei, acestea sunt avansate de fiecare etapă a instrucțiunii. ciclu, care poate fi împărțit în mai multe subetape, fiecare dintre ele.

Deoarece procesoarele RISC au o corelație directă între numărul de instrucțiuni din codul binar și cele executate de CPU, este foarte ușor să segmentați instrucțiunile în mai multe etape. Dar într-un x86 este extrem de dificil , întrucât segmentarea se face pe microinstrucțiunile generate în etapa de decodare, ceea ce înseamnă și mai mult circuite suplimentare alergând și consumând curent continuu.

Nu numai asta, dar, de exemplu, opcodurile fiecărei instrucțiuni din ARM sunt de dimensiuni fixe în cazul x86, acestea sunt variabile, ceea ce face decodarea instrucțiunilor din microinstrucțiuni mult mai complexă în cazul procesorelor x86.

Mai puține înregistrări sunt mai mici decât eficiența energetică

Înregistrări

ISA x86 are mult mai puține registre în interiorul său decât alte ISAS, aceasta înseamnă că trebuie să se efectueze multe instrucțiuni asupra memoriei sau a cache-urilor, ceea ce face ca dvs. ajunge să consume mult mai multă energie la executare. Aceasta este o problemă clasică a arhitecturii x86 și nu pentru că este o arhitectură CISC.

Pentru a o înțelege, este necesar să ții cont consumul de energie fiecărei operații depinde de distanța dintre date și procesor .

x86 vs ARM pe dispozitive cu putere foarte mică.

Smartphone Intel

Intel a încercat-o acum câțiva ani cu procesorul eșuat Intel Medfield.

Mai mult, una dintre posibilitățile care au fost luate în considerare este crearea unui CPU mixt , care constă dintr-un x86 care decodează intern instrucțiunile sale în instrucțiuni ARM și permite compatibilitatea deplină între cele două ISAS, care ar fi procesorul definitiv.

Dar, din păcate, nici ARM, nici Intel și AMD, în special cele din urmă, nu sunt interesate să facă acest procesor mixt pentru a-l face să funcționeze în ambele moduri ar fi foarte greu de realizat, în afară de aceasta, decodarea instrucțiunilor x86 ar continua să fie o problemă, așa că am avea un procesor care ar putea funcționa doar într-un fel și unde ar fi irosit cea mai mare parte a circuitului.