Il Power Computing

processore

Siamo ormai abituati a utilizzare computer e smartphone per le più svariate funzioni: navigare in internet, giocare, scrivere testi, ascoltare musica e tanto altro. In realtà, la funzionalità chiave di ogni dispositivo dotato di CPU è quella di elaborare dati eseguendo specifiche istruzioni. Questo processo di elaborazione combina diversi meccanismi hardware e software al fine di eseguire il proprio compito con determinate prestazioni. Comprendere a pieno le potenzialità di calcolo del proprio elaboratore è un passo fondamentale per ogni progettista al fine di definire l’architettura del proprio progetto ottimizzandola per le prestazioni desiderate.

Avete presente il solito confronto che si ripropone tra CPU prodotte da Intel e quelle prodotte da AMD? Quali sono le migliori? Quali presentano una potenza di calcolo superiore? Quali consumano meno? Una risposta certa non esiste e, quando si parla di potenza computazionale, sono tantissimi gli aspetti che devono essere considerati, non da meno le funzionalità finali che devono svolgere.

Ogni tipologia di CPU, o per chiamarla in maniera ancora più generica, unità di elaborazione, è caratterizzata da diversi fattori e proprietà che influenzano le prestazioni del sistema. Tra le principali caratteristiche possiamo sicuramente individuare le seguenti:

  • l’architettura: caratteristiche come numero di core e di thread, nonché l’architettura effettiva della CPU, sono aspetti fondamentali di un confronto. In realtà, anche le soluzioni tecnologiche di come è realizzata possono essere già un elemento di paragone per il potere computazionale;
  • la velocità di clock: con l’avanzare del progresso tecnologico è aumentata a dismisura anche la velocità di clock delle unità di elaborazione. Tuttavia, come vedremo nel dettaglio nel corso di questo articolo, non sempre un valore più alto della velocità di clock corrisponde a prestazioni migliori;
  • la memoria cache: oltre alla memoria centrale di una architettura standard di un elaboratore, sempre di più la memoria cache sta assumendo un ruolo importante per l'incremento delle prestazioni di elaborazione;
  • consumo energetico: alcune volte il consumo energetico ha un ruolo chiave per quelle applicazioni dove si deve risparmiare energia;
  • dissipazione di calore: è un altro aspetto fondamentale in quanto la necessità di gestire correttamente il calore generato può influenzare le prestazioni del processore.

L’architettura

L’architettura del processore è una delle caratteristiche fondamentali che, anche per uno stesso fornitore, evolve nelle diverse generazioni di prodotti. Parlare di architettura significa tanto e nulla. Ci sono tantissimi aspetti quali ad esempio la microarchitettura (ossia il core utilizzato), il numero di core, il numero di thread, l’esistenza di co-processori, la tecnologia di fabbricazione e il set di istruzioni. Ogni tipologia di architettura presenta vantaggi e svantaggi che la possono favorire o sfavorire per determinate funzionalità. Ad esempio, l’architettura di una GPU è ben diversa da quella di una CPU ed è orientata principalmente ad operazioni grafiche, quindi vettoriali e in maniera parallela.

Troviamo larga diffusione ultimamente dei core ARM in dispositivi mobile a basso consumo grazie alla loro efficienza e personalizzazione rispetto alle CPU AMD o Intel, concepite per applicazioni desktop. Tuttavia, dove vediamo due differenti architetture è sicuramente tra unità di elaborazione per applicazioni grafiche (le bene note GPU) e le classiche CPU per applicazioni generaliste. Infatti, possiamo identificare le due aree di utilizzo delle stesse come segue:

  • La CPU (Central Processor Unit) gestisce attività informatiche del tutto generali e le operazioni di base del sistema come l’interfacciamento con le periferiche, la memoria e le altre risorse. In combinazione con sistemi operativi, la CPU consente di svolgere funzioni e applicazioni di varia natura come ad esempio la navigazione web, la videoscrittura e altro.
  • La GPU (Graphical Processor Unit) è concepita per svolgere in maniera ottimizzata determinate tipologie di elaborazione dei dati, che trovano principale applicazione nella grafica vettoriale e nelle elaborazioni matematiche avanzate. Infatti, in linea generale, le GPU sono adatte per eseguire molteplici calcoli in parallelo su dati più o meno complessi o di tipo matriciale.

Dunque, mentre le CPU sono progettate per la versatilità e il controllo di funzioni complesse e diversificate, le GPU sono progettate per gestire attività semplici e ripetitive in modo efficiente e in massa.

La velocità di clock

La velocità di clock del nostro processore è sicuramente un parametro che ci indica quanto veloce possa andare. In realtà, la teoria ci dice che all’aumentare della velocità aumentano anche i consumi energetici in quanto la potenza dissipata è dinamica e strettamente legata alla frequenza di commutazione dei circuiti. Tuttavia, la frequenza di clock non è un parametro affidabile per indicare le prestazioni della CPU ma bisogna far riferimento ad altre metriche che sono:

  • istruzioni per ciclo IPC (ossia quante istruzioni possono essere eseguite ogni colpo di clock)
  • istruzioni al secondo IPS indicano quante operazioni possono essere eseguite nell’unità di tempo
  • FLOPS: quante operazioni a virgola mobile possono essere eseguite
  • Latenza: tempo impiegato dalla CPU per rispondere ad una richiesta

La memoria cache

La CPU utilizza una cache per ridurre il tempo e la potenza necessari per recuperare i dati dalla memoria. La cache è pensata per essere più veloce, più compatta e vicina alle altre parti della CPU rispetto alla memoria principale. Ci sono molti livelli nella cache della CPU. Tutti i core della CPU condividono il livello più lontano dal core, mentre il livello più vicino al core viene utilizzato solo da quel core. Le CPU contemporanee eseguono automaticamente la gestione della cache. Ciascun livello determina se il frammento di memoria deve essere conservato o rimosso in base alla frequenza di utilizzo. La memoria locale della GPU è simile alla cache della CPU in termini di struttura. Tuttavia, la differenza più importante è che la memoria della GPU presenta un'architettura di accesso alla memoria non uniforme. Consente ai programmatori di decidere quali pezzi di memoria mantenere nella memoria della GPU e quali eliminare, permettendo una migliore ottimizzazione della memoria.
Il trend della cache nelle CPU moderne è caratterizzato da un costante miglioramento delle prestazioni e dell'efficienza, con un'enfasi particolare sulla riduzione dei tempi di accesso e sull'ottimizzazione dell'utilizzo della memoria cache per massimizzare le prestazioni dei processori. Ecco alcuni dei principali sviluppi e tendenze:

[...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2143 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend