ARM vs x86, perché uno è più efficiente dal punto di vista energetico dell'altro?

ARM contro x86

Con l'annuncio di questa settimana del primo Apple Macintosh basato su processori con ISA ARM, dopo aver annunciato la transizione da parte di Apple qualche mese fa, è comparso l'argomento ARM vs x86 e la domanda sul perché non ci siano CPU con ISA x86 su dispositivi a basso consumo è ricomparso. Ma quali sono i motivi e i miti che circondano questo problema?

Se ti sei mai chiesto perché non puoi vedere smartphone, tablet e tutti i tipi di dispositivi che utilizzano processori x86 con un consumo inferiore a 10 W e anche 5 W. Allora lascia che ti diciamo che non è dovuto a mancanza di interesse per Intel or AMD, ma ci sono una serie di ragioni per questo, una serie di barriere insormontabili che hanno a che fare con la natura dell'architettura x86.

ARM contro x86 o CISC contro RISC

RISC vs CISC

ARM sta per Advanced RISC Machines, mentre ogni x86 CPU si dice che abbia un set di istruzioni simile a CISC. Ma cosa significa questo? RISC sta per Reduced Instruction Set Computing o Computing with a Reduced Instruction Set, mentre CISC sta per Complex Instruction Set Computing, pertanto, è un modo di classificare i set di istruzioni utilizzati da diversi processori.

La differenza principale è che poiché RISC ha un set ridotto di istruzioni, finisce per essere necessario utilizzare diverse istruzioni più semplici per eseguirne una più complessa, mentre nel caso di un'unità CISC molte istruzioni complesse possono essere eseguite in una singola istruzione , quindi le unità CISC risparmiano spazio in termini di quantità di memoria.

Processore Render Genérico

Ad esempio, il codice macchina di una somma in RISC sarebbe il seguente:

  1. Memorizza il primo operando nel registro dell'accumulatore
  2. Carica il secondo operando e fai l'addizione.
  3. Memorizza il risultato nel registro dell'accumulatore.

Invece, su un processore CISC:

  1. Aggiungi il primo e il secondo operando.

Per quanto riguarda il codice macchina, a Binario RISC ha più istruzioni e quindi occupa molta più memoria , mentre nel binario CISC il codice è molto più leggero.

Il ciclo di istruzioni dei processori

Recupera Decodifica Esegui

Ogni processore, indipendentemente dal fatto che sia CISC o RISC, deve passare attraverso quattro diverse fasi che sono:

· XNUMX€ Recupera: La seguente istruzione viene recuperata in memoria.

· XNUMX€ Decodificare: L'istruzione viene decodificata e preparata per l'esecuzione.

· XNUMX€ Esegui: L'istruzione viene eseguita da una delle unità di esecuzione della CPU. e il risultato dell'istruzione viene scritto nel banco o registro di memoria corrispondente.

In Processori RISC un'istruzione eseguita dalla CPU è equivalente a un'istruzione in codice binario, mentre in CISC un'istruzione in codice macchina può essere suddiviso in diverse microistruzioni, il che significa che il Decodifica unità di I processori CISC lo sono molto più complesso ed è un altro dei fattori più importanti per x86 per avere un consumo maggiore.

Segmentazione su x86 vs ARM

segmentazione

Una delle peculiarità che hanno tutte le CPU dall'inizio degli anni '90 è la segmentazione, consistente nel fatto che invece di aspettare che un'istruzione venga eseguita per intero nel processore per far posto alla successiva, queste vengono anticipate da ogni fase dell'istruzione ciclo, che può essere suddiviso in più sottofasi ciascuna di esse.

Poiché i processori RISC hanno una correlazione diretta tra il numero di istruzioni nel codice binario e quelle eseguite dalla CPU, è molto facile segmentare le istruzioni in più fasi. Ma in un x86 è estremamente difficile , dal momento che la segmentazione avviene sulle microistruzioni generate durante la fase di Decode, il che significa anche di più circuiti aggiuntivi correre e consumare energia continuamente.

Non solo, ma mentre ad esempio gli opcode di ciascuna istruzione in ARM sono di dimensione fissa nel caso di x86, sono variabili, il che rende la decodifica delle istruzioni in microistruzioni molto più complessa nel caso di processori x86.

Meno record equivalgono a una minore efficienza energetica

Records

L'ISA x86 ha molti meno registri al suo interno rispetto ad altri ISAS, questo significa che devono essere eseguite molte istruzioni sulla memoria, o sulle cache, il che fa sì che tu finiscono per consumare molta più energia durante l'esecuzione. Questo è un classico problema dell'architettura x86 e non perché è un'architettura CISC.

Per capirlo, è necessario tenerne conto il consumo di energia di ogni operazione dipende dal distanza tra i dati e il processore .

x86 vs ARM su dispositivi a bassissima potenza.

Smartphone Intel

Intel l'ha provato alcuni anni fa con il processore Intel Medfield guasto.

Inoltre, una delle possibilità che sono state considerate è la creazione di un file CPU mista , che consiste in un x86 che decodifica internamente le sue istruzioni in istruzioni ARM e consente la piena compatibilità tra i due ISAS, che sarebbe il processore definitivo.

Ma purtroppo né ARM né Intel e AMD, specialmente quest'ultima, sono interessati a realizzare questo processore misto da allora a realizzarlo lavorare in entrambe le modalità sarebbe molto difficile da raggiungere, a parte questo, la decodifica delle istruzioni x86 continuerebbe ad essere un problema, quindi avremmo un processore che potrebbe funzionare solo in un modo e dove la maggior parte del circuito andrebbe sprecata.