Da quando sono stati presentati i nuovi MacBook Air, MacBook Pro e Mac Mini con il potentissimo processore M1, si leggono tante stupidaggini sulla nuova architettura. Stupidaggini di ogni tipo, sulla potenza, sul fatto che la tecnologia sia ancora acerba… Quelle che vanno per la maggiore, però, riguardano la memoria. Qui gli esperti si dividono in due fazioni: coloro i quali pensano che il nuovo M1 abbia poca memoria per l’uso in ambito professionale ed i loro rivali che sostengono che l’M1 con soli 8 GB di Ram sia in grado di superare i 415,5 petaflops del Fugaku, il supercomputer giapponese, con oltre 7,2 milioni di core. Forse è il caso di capire da che parte sta la verità.
Unified memory, (memoria unificata)
Nei processori tradizionali la memoria ram è gestita con rigidità. Ogni processo ne alloca la porzione necessaria alla sua stessa esecuzione ed un’altra parte necessaria all’elaborazione dei dati scambiati con gli altri processi e con la scheda video. Quando osserviamo un moderno computer multitasking al lavoro, abbiamo la sensazione che tutto funzioni contemporaneamente, che ogni applicazione in esecuzione sia portata avanti con continuità. In realtà non le cose non stanno proprio così.
In funzione del carico complessivo che grava sulla CPU, dato dai processi relativi all’esecuzione dei moduli attivi del Sistema Operativo e dai processi instanziati dalle applicazioni in esecuzione, ad ogni processo viene assegnato un tempo di esecuzione molto breve e variabile in funzione della sua priorità e della quantità di processi in esecuzione denominato time slice. Allo scadere del time slice, il processore passerà all’esecuzione del processo successivo, nella coda circolare dei processi gestita dallo scheduler, effettuando quello che si chiama commutazione del contesto o content switch. I dati relativi al processo precedente, vale a dire il program counter e I dati dei registri, vengono memorizzati in blocco di memoro denominata PCB (Process Control Block) che verrà memorizzata in un’area dedicata tra le strutture riservate al Sistema Operativo. I dati relativi al prossimo processo vengono prelevati dal suo PCB e caricati nel program counter e nei registri della CPU per la sua esecuzione: passato il time slice relativo, si effettuerà un altra commutazione del contesto e così via. Quando un’applicazione viene terminata, i dati relativi ai suoi processi vengono eliminati dalla coda circolare dei processi in esecuzione.
Con queste premesse è facile capire come più veloce sarà l’accesso alla memoria centrale da parte del processore e più saranno elevate le prestazioni del sistema.
La Unified Memory è velocissima per diversi motivi:
1. È vicinissima al processore, addirittura dentro al SOC. Per arrivare al processore, i dati che saranno elaborati, devono percorrere un insieme di linee chiamate BUS. Più il bus è corto più l’operazione di trasferimento è veloce.
2. Ha una latenza bassissima. Quando preleva un dato dalla memoria, la CPU scrive sul BUS degli indirizzi l’indirizzo della cella che lo contiene, i segnali sul BUS di controllo specificano che si tratta di un’operazione di lettura, sul BUS dei dati viene riversato il contenuto della cella e, solo a questo punto, il dato viene letto dalla CPU. Una latenza bassa indica che i segnali sui BUS interessati si stabilizzano molto velocemente e l’operazione sarà compiuta in un numero minore di cicli di Clock.
3. Ha una larghezza di banda ampissima. La larghezza di banda misura quanti dati possono essere scambiati tra la CPU e la memoria nell’unità di tempo. Dipende dalla tecnologia di costruzione, dal numero di canali e dalla velocità del Clock di sistema.
4. La memoria RAM è unificata. Nel System on a Chip M1 la memoria è condivisa tra processore, scheda video e Neurale Engine. Nei sistemi di elaborazione tradizionali, quando la CPU richiede un elaborazione grafica, invia i dati alla memoria della scheda grafica, sia essa integrata o discreta. I dati vengono elaborati dalla GPU e, successivamente, l’area di memoria grafica contenente il risultato viene ricopiata nella memoria ad uso della CPU. Con l’Unified Memory questo non avviene, i dati vengono immediatamente utilizzati senza essere ricopiati tra un’area memoria e l’altra.
5. gli SSD delle macchine con processori M1 sono velocissimi, più di 3300 GigaByte al secondo, per evitare che durante lo swap sul disco si creino colli di bottiglia che vadano a penalizzare le eccezionali performance della CPU. È per questo che quando si parla di memoria RAM dei sistemi equipaggiati dal processore M1 ha poco senso paragonare le dimensioni della RAM che equipaggiano queste macchine con quelle della RAM in dotazioni ai sistemi basati su intel.
Scopri i nuovi Mac con SoC M2 e M2 Pro: i prezzi ti stupiranno
Contenuto originale ApplePhilosophy, riproduzione consentita linkando la fonte.
SUPPORTA Apple Philosophy a costo zero
Ti sarai reso conto di quanto siano particolari gli articoli pubblicati su ApplePhilosophy. Sono il frutto di un lavoro serio di approfondimento che richiede tempo, impegno e passione. Se stai per fare un acquisto su Amazon e desideri supportare Applephilosophy, clicca sul banner qui sotto. Per ogni acquisto il blog riceverà una piccolissima percentuale. Ovviamente NON spenderai un centesimo di più di quanto avresti speso per gli stessi acquisti andando direttamente su Amazon.