Le differenze tra ARM e Intel x86-64

Le differenze tra ARM e Intel x86-64
Differenza tra Intel Arm in evidenza

Con i chip ARM ormai onnipresenti nei laptop ad alte prestazioni e nei server edge, è legittimo chiedersi se questi nuovi dispositivi valgano il tuo prossimo acquisto. È tempo di comprendere le differenze tecniche tra i processori ARM e i predecessori x86-64 più muscolosi che in precedenza gestivano il mercato dei chip senza ostacoli.

Cosa significa x86-64?

I processori Intel presenti nei computer desktop e laptop sono talvolta chiamati processori “x86”. L’architettura a 64 bit che tutti i computer moderni usano oggi si basa sul modello x86, che ora è chiamato “x86-64”.

Tutto ciò può sembrare un po’ confuso, ma aiuta a spiegare perché ci sono due diverse cartelle Programmi in Windows.

File di programma X86arm

Per semplificare le cose, tutte le applicazioni a 32 bit vanno nella cartella x86 e quelle a 64 bit nell’altra cartella. Questa è una convenzione da quando Microsoft ha rilasciato la sua versione a 64 bit di Windows XP nel 2001.

Per semplificare un po’ le cose, faremo riferimento a “x86-64” come “x86”, poiché ci sono sufficienti somiglianze tra i chip a 32 bit e quelli a 64 bit per raggrupparli insieme.

L’etichetta “x86” deriva dal nonno dell’elaborazione moderna, un microprocessore creato da Intel chiamato 8086. Questo chip a 16 bit funzionava con un set di istruzioni ancora oggi utilizzato in gran parte dai processori moderni per eseguire attività di elaborazione avanzate.

Tutto, dall’editor di testo al software di rendering video avanzato, è ancora in grado di funzionare con un’architettura nata nel 1978!

Sin dal rilascio del microprocessore 8086, Intel ha continuato a usare la convenzione di denominazione per modelli futuri come 80286 e 80386 finché non ha rotto con la tradizione rilasciando la serie Pentium. Tuttavia, rendiamo omaggio a quei vecchi chip categorizzando tutti i processori successivi che usano il suo set di istruzioni come “x86”.

Anche i processori a 64 bit più moderni, lanciati per la prima volta da AMD nella serie Opteron negli anni 2000, hanno ricevuto la stessa denominazione, poiché la stragrande maggioranza dei processori a 64 bit nei sistemi desktop e nei server continua a basarsi sull’ormai umile 8086.

Set di istruzioni

Tutte le funzionalità di un processore si basano su quello che viene chiamato un set di istruzioni. Si tratta di un set cablato di operazioni rudimentali che un chip può eseguire. Ogni istruzione dice al chip di fare cose come matematica di base e spostare dati. In fondo a ogni bit di codice in ogni programma che esegui sulla tua macchina c’è uno strato che parla con il processore. Questo strato usa anche il suo codice noto come linguaggio assembly, che traduce un passaggio più in basso nelle istruzioni di base che sono spesso chiamate codice macchina o linguaggio macchina.

L'IHS di un Intel i386
Fonte dell’immagine: Wikimedia Commons

Ed è qui che arriviamo alla differenza fondamentale tra i chip ARM e quelli x86.

I chip x86 utilizzano il CISC (complex instruction set computing) , mentre i chip ARM utilizzano il RISC (reduced instruction set computing) . Mentre i chip CISC cercano di mettere più “lavoro” in un’istruzione sacrificando cicli di clock per portare a termine questo compito, i chip RISC hanno (come suggerisce il nome) un set di istruzioni molto più piccolo che suddivide tutto in passaggi più semplici che possono essere eseguiti in un singolo ciclo di clock.

CISC vs. RISCHIO

Se un chip CISC deve moltiplicare due numeri, potrebbe eseguire un singolo comando: MULT 2, 3. Questo singolo comando coprirà il caricamento dei numeri dalla memoria, la loro moltiplicazione e la memorizzazione del risultato nella posizione di memoria corretta. Un chip RISC che esegue la stessa operazione richiederebbe molti più passaggi. Innanzitutto, un’istruzione LOADper spostare i numeri dai registrar all’unità di esecuzione. Quindi, un’istruzione PRODper moltiplicare i numeri. Infine, STORun’istruzione per posizionare il risultato nel registro corretto.

Apple M1 SoC montato su un MacBook
Fonte dell’immagine: Wikimedia Commons

Anche se il chip CISC potrebbe sembrare più efficiente perché i suoi comandi sembrano più semplici, bisogna tenere a mente alcune importanti differenze:

  • Innanzitutto, i chip CISC eseguono comandi su più cicli di clock, mentre ogni istruzione in un chip RISC viene eseguita su un singolo ciclo di clock. Per questo motivo, il nostro MULTcomando ipotetico potrebbe essere eseguito nello stesso numero di cicli del set di istruzioni RISC che eseguono lo stesso compito.
  • In secondo luogo, tutte le istruzioni e la logica del CISC devono essere memorizzate nei transistor. I chip RISC possono usare meno transistor perché devono memorizzare meno istruzioni.
  • In terzo luogo, il minor numero di transistor richiesti dal RISC consente un consumo energetico inferiore.

CISC presenta alcuni vantaggi. Innanzitutto, il computer non deve fare molto lavoro per convertire un linguaggio di programmazione di livello umano come C in un linguaggio assembly di livello processore. Infatti, il MULTcomando menzionato sopra è molto simile al comando C foo = foo * bar.

I chip RISC chiedono al compilatore di fare molto più lavoro per trasformare il codice in linguaggio assembly. I chip CISC possono anche eseguire le loro operazioni direttamente sulla memoria di sistema, mentre i chip RISC devono estrarre i dati dalla memoria sui registri del processore prima di lavorarci.

In una gara di prestazioni testa a testa tra i due, per quanto riguarda i consumatori, non c’è un vincitore chiaro. Tuttavia, RISC ha un altro asso nella manica per ottenere davvero un vantaggio su CISC.

Consumo di energia

Tra CISC e RISC, non c’è assolutamente competizione quando si tratta di consumo energetico. RISC si aggiudica categoricamente la corona in questo caso. Un set di istruzioni ridotto fornisce un ingombro wafer ridotto, rendendo il chip più piccolo e quindi meno affamato di energia.

Componenti interni di un tradizionale alimentatore desktop ATX
Fonte dell’immagine: Wikimedia Commons

I chip più piccoli con meno componenti microscopici hanno anche una minore resistenza elettrica da gestire e non richiedono così tanti watt per funzionare. Il miglior caso di studio per questo è la tecnologia comprovata dello smartphone, un dispositivo “computer-lite” che esercita un’immensa quantità di prestazioni per le sue dimensioni relativamente piccole, ma riesce a sopravvivere in molti casi per oltre 24 ore con una batteria relativamente piccola.

Detto questo, non significa che tutti i computer inizieranno a usare chip ARM per ridurre il consumo energetico. Nel mercato desktop, dove il sistema in genere dipende da una connessione diretta a una presa a muro anziché da una batteria, l’efficienza energetica non è una priorità così grande. I chip CISC continuano a funzionare in modo sorprendente in queste situazioni e non c’è alcun segno che ciò cambi a breve, davvero.

Dovrei scegliere un sistema ARM o x86?

Tuttavia, tutto si riduce a una domanda molto semplice: stai cercando di spremere ogni bit di prestazioni per wattora di potenza fornita dalla tua batteria? O sei più propenso a spingere più prestazioni grezze possibile attraverso il tuo dispositivo a scapito della durata della batteria?

Per la maggior parte dei casi d’uso per cui qualcuno acquisterebbe un sistema, la decisione è così semplice. Alla fine, assicurati solo di non dimenticare di portare con te il cavo di ricarica!

Credito immagine: un ingegnere in tuta sterile tiene in mano un microchip di DepositPhotos

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *