Quest’estate l’azienda di Cupertino ha annunciato che passerà dai processori Intel a processori ARM e che quindi passerà dalla tecnologia CISC a quella RISC. A novembre 2020 Apple ha poi presentato M1, il primo processore ARM di Apple per MacBook Air, MacBook Pro e Mac Mini. Ma cosa implica tutto questo?
La sigla CISC sta per “Complex Instruction Set Computer” (computer con istruzioni complesse), mentre RISC per “Reduced Instruction Set Computer” ( computer con numero di istruzioni ridotto) e rappresentano due modi diversi di affrontare uno stesso problema.
Supponiamo di voler trovare il prodotto di due numeri: uno memorizzato nella posizione 2:3 e un altro nella posizione 5:2 della memoria e di voler poi scrivere il risultato nuovamente nella posizione 2:3.
In un processore CISC vi è un’istruzione apposita (che a titolo esemplificativo chiameremo MOLTIPLICA) che permette di effettuare l’operazione; quando viene eseguita, questa istruzione carica i due valori in registri separati, moltiplica gli operandi nell'unità di esecuzione e quindi memorizza il prodotto nel registro appropriato (MOLTIPLICA 2:3, 5:2). MOLTIPLICA è quindi la nostra funzione complessa che agisce direttamente sui banchi di memoria del computer e non obbliga chi scrive il programma a chiamare esplicitamente alcuna funzione di caricamento o memorizzazione dei dati nei registri o nella memoria. Poiché la lunghezza del codice è molto breve questo ha come principale conseguenza che viene utilizzata pochissima RAM per memorizzare le istruzioni.
In un processore RISC, invece, vengono utilizzate solo semplici istruzioni che possono essere eseguite all'interno di un ciclo di clock. La stessa operazione di moltiplicazione che in un processore CISC veniva eseguita in un unico comando, viene suddivisa in quattro differenti operazioni che possono essere, ad esempio CARICO nel registro A il valore della cella di memoria 2:3, CARICO nel registro B il valore della cella di memoria 5:2, MOLTIPLICO A e B, SCRIVO il risultato in 2:3 e che vengono eseguite ognuna in un differente ciclo di Clock.
Anche se il sistema RISC sembra più macchinoso porta anche alcuni vantaggi molto importanti: queste "istruzioni ridotte" richiedono meno transistor di spazio hardware rispetto alle istruzioni complesse, lasciando più spazio per i registri di uso generale e di conseguenza hanno meno bisogno di energia e producono meno calore. Poiché tutte le istruzioni vengono eseguite in un periodo di tempo uniforme (CLOCK), è possibile il pipelining (una tecnica che consiste nel suddividere il lavoro svolto da un processore in passi, che richiedono una frazione del tempo necessario all’esecuzione dell’intera istruzione) il che rende le operazioni eseguite su processori RISC veloci quanto quelle su processori CISC.
Il fatto che poi i processori RISC utilizzino meno energia per eseguire le operazioni e scaldino di conseguenza meno li ha resi i processori ideali per i computer portatili e per i dispositivi mobili.
Ad onor del vero è da segnalare che negli ultimi anni nei processori CISC sono state introdotte alcune funzioni tipiche dei processori RISC e AMD (maggior produttore i processori RISC per computer desktop e notebook) così che nei sistemi desktop e server le differenze non sono più così marcate.
I processori CISC, che sono utilizzati principalmente sui computer e sui server, sono prodotti da una sola azienda, l’Intel, ed utilizzano un proprio set di istruzioni X86 (a 32 bit) e X86-64 (a 64 bit), mentre i processori che fanno uso di della tecnologia RISC sono utilizzati principalmente sui dispositivi mobili quali smartphone o tablet, e si basano su architettura ARM e sono prodotti da diverse aziende. ARM, è un’azienda fondata a Cambridge nel 1990 nata da una collaborazione tra Apple e Acorn Computers che non produce direttamente i suoi processori e, nella maggior parte dei casi, non li progetta, ma concede in licenza la proprietà intellettuale che serve ad altre aziende come Samsung, Qualcomm, Apple, eccetera per progettare e costruire microchip con la sua architettura.
La differenza tra RISC e CISC meriterebbe da sola una trattazione a parte e non essendo lo scopo di questo articolo possiamo fermarci qua una volta chiarite le principali differenze.
Abbiamo detto che Apple quest’estate ha annunciato che passerà a produrre computer non più con processori Intel ma con ARM che produrrà lei stessa, ma non è la prima volta che l’azienda di Cupertino fa un cambiamento così radicale: a parte i computer basati sul leggendario MOS 6502 che utilizzava un set di istruzioni proprio, i primi processori importanti utilizzati da Apple appartenevano alla famiglia del Motorola 68000, che andavano a caratterizzare la famiglia di Macintosh dal 1984 (chi si ricorda il famoso spot ispirato a Orwell?) e che erano bassati su tecnologia CISC. Nel 1994 Apple decide di utilizzare i processori IBM Power PC, che utilizzano la tecnologia RISC ed un set di istruzioni proprietarie e questa sinergia tra Apple e IBM proseguì fino al 2006 quando con l’introduzione sul mercato del iMac oltre che presentare un look nuovo ai suoi prodotti l’azienda di Cupertino inizia ad utilizzare i processori CISC di Intel.
Vista la differenza di programmazione utilizzata a livello macchina tra processori CISC e RISC il passaggio tra PowerPc e iMac non fu completamente indolore e nel sistema operativo Mac Os 10 che accompagnava le nuove macchine venne inserito un emulatore che permetteva di utilizzare i software precedenti.
Il problema del software disponibile infatti, oggi giorno, è uno dei fattori determinanti per il buon successo di un computer o di un sistema operativo come nel caso dell’azienda canadese BlackBerry o del sistema operativo per dispositivi mobili Windows Phone.
Per ovviare a questo, anche questa volta, Apple ha predisposto una sorta di macchina virtuale chiamata Rosetta2 che permetterà di far funzionare i software precedentemente sviluppati, mentre per i programmatori mette a disposizione un kit di sviluppo che consiste in un Mac mini speciale, dotato dello stesso processore A12Z degli ultimi iPad e 16GB di RAM.
Tuttavia è da sottolineare che l’utilizzo di Rosetta2 è solamente una “pezza virtuale” in quanto non permetterà mai di sfruttare al massimo le caratteristiche del nuovo processore di Apple anzi, molto probabilmente, i software che gireranno tramite Rosetta2 saranno meno performanti che non se lavorassero su di un vecchio computer. Rimane poi il problema di tutti quei software specifici che non hanno un grande mercato e che non conviene convertire.
La transizione, secondo Apple, per i suoi prodotti da processori Intel a processori ARM durerà circa due anni e nel frattempo Intel (per la quale Apple rappresenta il 10% del mercato) ha assicurato di continuare a fornire i suoi prodotti; ma questo lasso di tempo indica probabilmente il periodo che passerà tra il lancio del primo Mac con processore ARM e il pensionamento commerciale dell’ultimo Mac ancora dotato di processore Intel, mentre la sua transizione completa che si concluderà con la dichiarazione di obsolescenza dell’ultimo Mac Intel disponibile si prevede possa durare fino al 2030.
Ma cosa spinge Apple a voler fare un passaggio così radicale?
I motivi sono molti. Per prima cosa è interessante osservare che mentre i dispositivi mobili apple come Ipad o Iphone utilizzano processori ARM i suoi computer utilizzano invece processori Intel; come abbiamo visto all’inizio non vi è compatibilità tra software creati per un Iphone ad esempio e un iMac. Utilizzare un unico processore per tutti i dispositivi permetterà di creare una ecosistema virtuale dove un’utente Apple avrà la stessa applicazione sia sul telefono che sul computer con gli stessi dati e lo stesso utilizzo.
Per gli sviluppatori di software sarà possibile sviluppare un’ App che funzionerà sia su smartphone che su computer senza dover apportare alcuna modifica.
Ma le migliorie non si fermano qua, i processori ARM di Apple avranno delle customizzazioni specifiche che ne migliorano sensibilmente le performace e poter scrivere un software specifico per un sistema che integra sia l’hardware che il software a livello così profondo non è certo da trascurare.
Un altro motivo che ha portato l’azienda di Cupertino a passare a processori che lei stessa sviluppa è quella di affrancarsi da Intel e potrà così riprendere il totale controllo dei piani di sviluppo e aggiornamento dei suoi computer, mentre l’aver sviluppato un proprio processore ha permesso a Apple di integrare in un unico chip di 5nm (come nel caso del M1) 16 miliardi di transistor che comprendono: una CPU a 8 core, motore neurale (leggi I.A.) a 16 core, GPU a 8 core, controller I/O, controller Thunderbolt e USB, nonché la memoria RAM. Per finire l’utilizzo della tecnologia RISC abbiamo visto necessita meno energia e porta quindi a poter creare computer che consumano molto meno e che non necessitano di grandi dissipatori o ventole di raffreddamento.
Ma alla fine Apple ha veramente sviluppato un nuovo processore per personal computer che surclasserà tutti i precedenti?
La risposta non è facile. In realtà quello che ha fatto Apple è di sviluppare un processore che a parità di consumi è più performante e veloce di processori per PC esistenti. Se noi prendessimo, ad esempio, un processore Intel I7 di nona generazione a 8 Core e 16 Thread (processi che vengono eseguiti contemporaneamente) ma che arriva a picchi di 235 - 255 Watt e lo abbiniamo ad una buona scheda madre e video, questo non ha nulla da invidiare alle performance di un computer basato su di un unico processore M1; la vera novità sta nel fatto che Apple ha integrato le stesse caratteristiche in un unico processore di minor consumo.
Sembra di tornare un po’ agli albori dei PC, quando ogni computer aveva un suo processore specifico (o famiglia di processori) e un suo hardware specifico che si programmava e permetteva di sfruttare al massimo ogni singolo Hz del clock e bit di memoria.
Conviene quindi comprare il nuovo Mac con processore ARM?
La risposta non è anche qua facile. Certo per un amante dei prodotti Apple il lancio di un nuovo computer è come il lancio di un nuovo Iphone o Ipad e, indipendentemente dal fatto che serva o meno, lo si compra. Diverso per chi lo utilizza per lavoro. Fino a che non vi sarà un parco software appositamente scritto per queste macchine non conviene, anzi meglio tenersi il proprio vecchio computer e aspettare nel caso si voglia acquistare un Apple.
Per chi invece è appassionato di Gaming non è certo uno degli acquisti consigliati (ad oggi) visto che normalmente su Mac i giochi non sono mai stati uno dei motori di sviluppo del computer e che oggi esiste la possibilità di noleggiare in remoto un computer da Gaming.