Caratteristiche e differenza tra architettura x86-64 e Arm

Caratteristiche e differenza tra architettura x86-64 e Arm

Processori x86-64 e Arm

Attualmente, il mercato delle CPU è dominato da due architetture: l’architettura x86-64 e l’architettura Arm. I principali produttori di processori x86-64 sono, attualmente, solamente due, AMD ed Intel. I produttori di processori Arm sono invece molto più numerosi, fra questi, Broadcom, Texas Instruments, Qualcomm, Samsung, Apple e molti altri.

Caratteristiche di x86-64

L’architettura x86-64 venne introdotta, per la prima volta nel 2003, come evoluzione a 64 bit dell’architettura x86, introdotta nel 1978. La specifica iniziale di x86, nelle varianti a 16 e 32 bit, fu definita da Intel; nel 2003, AMD rilasciò un’architettura compatibile con x86 ma con estensioni a 64 bit, denominata AMD64. Tale architettura ebbe molto successo e costrinse Intel ad adottarla nei propri processori. I processori x86 sono sempre stati realizzati da questi due produttori, Intel e AMD. Intel realizzò la specifica iniziale dell’ISA x86 attraverso i propri processori; fu poi AMD a copiare tale ISA con una propria implementazione compatibile. Accadde invece il contrario nella definizione dell’ISA x86 a 64 bit: fu AMD la prima a realizzarla ed Intel fu costretta, a sua volta, ad implementarla. Questi produttori hanno il completo controllo del mercato di questo tipo di processori, poiché sono loro stessi a progettarli ed a realizzarli nelle proprie fabbriche, come frutto di vari decenni di ricerca e sviluppo.

Nel corso degli anni, l’architettura x86 e, successivamente x86-64, divenne sempre più diffusa in ambito desktop. Poiché la gran parte degli sviluppatori possedeva una macchina x86, il software iniziò ad essere sviluppato quasi esclusivamente per quell’architettura. Questo causò la diffusione di x86 e x86-64 anche in ambito server e, più recentemente nel cloud computing. L’architettura x86 non divenne quindi la tecnologia predominante in ambito server per le sue caratteristiche tecniche. Negli anni Novanta, infatti esistevano altre architetture altrettanto prestanti, come PowerPC, che potevano offrire prestazioni alla pari, se non superiori, di x86. Fu, invece, la vasta diffusione di x86 in ambito desktop, la presenza di una vasta comunità di sviluppatori e di software compatibile a permettere ad Intel di migliorare costantemente i propri prodotti e di ridurre i costi, rendendo x86 l’architettura più conveniente per l’ambito server.

Attualmente, il mercato dei PC desktop e server è dominato dall’architettura x86-64. La totalità dei sistemi operativi, sia server che desktop, come Linux e Windows, e dei software in circolazione, supportano, come prima scelta, questa architettura. La stessa situazione si verifica in ambito cloud: ad esempio, Google Cloud Platform, che è uno dei maggiori cloud provider, fornisce, attualmente, solamente macchine con architettura x86-64.

Caratteristiche e differenza tra architettura x86-64 e Arm

Caratteristiche di Arm

L’architettura Arm, a differenza di x86, non è frutto della realizzazione di processori da parte di un particolare produttore, come nel caso di Intel. Al contrario, Arm Ltd, cioè l’azienda che progetta queste architetture, si limita a venderne le licenze d’utilizzo, a chiunque volesse realizzare il proprio processore Arm. Arm Ltd, quindi, non gestisce la produzione dei processori Arm, e non vende prodotti finiti. L’acquirente, inoltre, può scegliere fra più pacchetti di licenze, per poter acquistare solamente le componenti di cui necessita: ad esempio, se intendesse realizzare un processore personalizzato che rispettasse l’ISA di Arm, potrebbe limitarsi ad acquistare l’ISA; se invece non volesse realizzare la propria implementazione, potrebbe acquistare dei design realizzati da Arm, come le CPU Cortex o le GPU Mali. Successivamente all’acquisto della licenza, il produttore potrà quindi personalizzare il sistema che vuole realizzare, aggiungendo o rimuovendo componenti per adattarlo alle necessità.

L’architettura Arm, come x86, non è recente: venne introdotta nel 1985. In quegli anni però, prese il sopravvento l’architettura x86, per la diffusa convinzione, nei primi anni 2000, che con il passaggio dei PC Apple ad Intel, l’era dei processori non x86, in ambito desktop, fosse finita. Nel 1990 furono venduti circa 20 milioni di personal computer, e la produzione aumentò del 15% ogni anno fino al 2011, quando si raggiunsero i 365 milioni e ognuno di questi PC possedeva un processore con architettura x86. I processori Arm erano comunque presenti sul mercato, ad esempio nei cellulari, ma non erano in competizione con i personal computer.

La situazione iniziò a mutare dal 2008, con l’introduzione di iPhone da parte di Apple. IPhone possedeva un processore single-core Arm 32-bit @ 412MHz. Fino al 2008, l’unica modalità per accedere ai servizi digitali era attraverso un personal computer; con l’introduzione di iPhone si passò all’era degli smartphone.

Negli anni successivi, diversi altri produttori di cellulari realizzarono i propri smartphone, sempre basati su processori Arm, considerando la necessità di efficienza dal punto di vista energetico. Gli smartphone iniziarono a diffondersi sempre più, eliminando, per la maggior parte degli utenti, la necessità di possedere un personal computer. La crescente diffusione di questi dispositivi mobili incrementò le vendite, scatenando un processo di miglioramento continuo da parte dei produttori. Tale miglioramento, negli ultimi anni, ha avuto un’accelerazione notevole, permettendo ai processori Arm di superare, sotto alcuni aspetti, i processori di Intel e AMD. Ad esempio, il processore M1 di Apple è già stato realizzato con un processo di produzione a 5 nanometri, mentre Intel produce ancora processori a 14 nanometri. Di conseguenza, i processori Arm hanno raggiunto prestazioni paragonabili, se non superiori, ai processori desktop x86, garantendo minori consumi e costi inferiori.

Attualmente Arm domina solamente il mercato mobile ed embedded, costituito, ad esempio, da smartphone, tablet, smartwatch, smart tv o dispositivi di rete. Di questo passo, però, l’architettura Arm potrebbe diventare una valida alternativa anche in ambito desktop e server. I processori Arm possono infatti offrire un migliore rapporto consumi prestazioni rispetto a x86 e, vista la loro crescente diffusione, si assisterà probabilmente ad una costante diminuzione dei costi. Inoltre, l’architettura Arm può essere personalizzata dai produttori, permettendo di realizzare processori con componenti specifici per determinate elaborazioni. Tale possibilità ricade sotto il termine di heterogeneous computing, che indica la possibilità di realizzare un sistema composto da più core eterogenei, specifici per determinati compiti. Ad esempio, inserire nella CPU core ad alte prestazioni e core a risparmio energetico, per migliorare l’efficienza, o aggiungere core specifici per le operazioni di machine learning. Questa possibilità permetterebbe di superare di gran lunga, in determinati contesti, le prestazioni di x86.

Costi inferiori ed un miglior rapporto consumi prestazioni potrebbero giustificare la diffusione di Arm, nel prossimo futuro, anche in ambito desktop e server. Attualmente, server e desktop basati sull’architettura Arm sono già disponibili in commercio, ma non sono ancora minimamente diffusi quanto l’architettura x86. Anche alcuni cloud provider stanno iniziando a fornire macchine Arm, come AWS Graviton, ma questo tipo di soluzioni costituiscono comunque una minoranza.

La possibile diffusione di Arm in ambito desktop e server non sarà determinata, esclusivamente, dalla disponibilità hardware, ma anche dalla compatibilità software, che dovrà seguire questa tendenza. Infatti, se i sistemi operativi ed i software server non offriranno il supporto per Arm, si estingueranno i vantaggi appena descritti.

Il fatto che Arm sia un ISA completamente diverso da x86, comporta la necessità, per tutto lo stack del software, partendo dal firmware, il sistema operativo, fino ad arrivare alle singole applicazioni, di essere compatibili con tale architettura. Un’incompatibilità, anche parziale, che potrebbe rendere il sistema instabile, o determinare anche una minima deviazione del comportamento dello stesso software rispetto a x86, scoraggerebbe l’adozione di questa architettura. Per questo, il sistema operativo dovrà essere capace di sfruttare correttamente, attraverso i propri driver e tutto il software di basso livello, l’hardware del sistema Arm; sarebbe inoltre ideale riuscire ad utilizzare un generico sistema operativo, senza dover applicare correzioni o aggiungere componenti software per renderlo compatibile con la specifica piattaforma Arm. Per risolvere tale problema, Arm ha delineato un insieme di standard, sotto il nome di Arm SystemReady, che, se rispettati dai produttori di sistemi Arm e riconosciuti dai vari sistemi operativi, garantiscono la compatibilità, nativa, tra i due.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

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