Definizione
Un microprocessore è un'implementazione fisica della CPU in un singolo circuito integrato. Per CPU si intende l'unità centrale di elaborazione dei moderni computer, basati sulla macchina di Von Neumann.
I microprocessori sono utilizzati in moltissimi dispositivi digitali. A seconda del loro utilizzo si distinguono in categorie:
-General purpose, sono i microprocessori utilizzati nei personal computer. Hanno alte prestazioni e molto flessibili.
-Special purpose, sono microprocessori che hanno compiti precise. Si trovano all'interno di schede video.
-Embedded, sono microprocessori che hanno come unico scopo quello di far girare una singola applicazione.
Accanto ai processori in un sistema di elaborazione moderno è presente un sistema di memoria gerarchizzata e un insieme di dispositivi di I/O, che possono interconnettere altri sistemi o altri dispositivi.
Per ogni sistema si possono fare diverse classificazioni a seconda dei parametri utilizzati:
-potenza di calcolo (scientifici)
-potenza grafica (giochi)
-tansazioni gestite nell'unità di tempo (database)
Un altro aspetto fondamentale è l'affidabilità del sistema.
Prestazioni e affidabilità
A seconda delle caratteristiche i microprocessori hanno prezzi decisamente diversi. Per i sistemi embedded il prezzo dei microprocessori è molto limitato, in quanto normalmente essi devono svolgere pochissime operazioni e a una bassa velocità. Per i microprocessori dei sistemi desktop si hanno prezzi abbastanza contenuti in base alle prestazioni nella velocità di calcolo. Per i server, invece, si hanno costi altissimi a seconda della loro velocità e affidabilità, in quanto il mancato funzionamento del sistema per un determinato periodo di tempo, può provocare una grossa perdita di denaro (in particolare il costo di un malfunzionamento si calcola come tempo di individuazione del guasto + tempo di riparazione).
I principali parametri per determinare la velocità di un processore sono:
-il throughput, che indica la quantità di operazioni eseguite in un determinato periodo di tempo. Banda=Operazioni/Tempo.
-la latenza, che indica il tempo medio di esecuzione di un'operazione.
Un altro fattore importante, soprattutto per i sistemi portatili è il consumo di potenza.
La CPU non è però l'unico parametro da tenere in considerazione per la valutazione delle possibilità di un sistema a microprocessore, in quanto le prestazioni dipendono anche e soprattutto da:
-Architettura del sistema (BUS, organizzazione delle memorie, I/O...)
-Prestazioni delle periferiche (rete, memorie di massa...)
-Software di base (gestione dei multithread…)
-Gestione dei periferici (DMA/Interrupt, livelli di interrupt...)
Ad esempio nella realizzazione di server il costo maggiore non è dato dal microprocessore ma dalle memorie. Infatti in un sistema orientato ad applicazioni web il 40% del tempo è impiegato per l'esecuzione delle istruzioni, mentre ben il 60% è svolto per eseguire operazioni di I/O: se si sostituisce il processore con uno 10 volte più veloce si ha un aumento delle prestazioni (speed up) di circa una volta e mezza.
I parametri per valutare lo sviluppo e le prestazioni di un dispositivo sono:
-throughput, cioè il numero di operazioni svolte nell'unità di tempo. Esso rappresenta quindi l'intensità di lavoro del sistema.
-latenza, il tempo che intercorre tra una richiesta e la sua effettiva realizzazione.
Un esempio può essere quello delle memorie DRAM, che negli ultimi anni hanno avuto un notevole incremento di capacità, ma il tempo di accesso è rimasto all'incirca costante. Questo ha portato all'invenzione delle cache, che sono diventate una delle cose più importanti per gestire velocemente grosse quantità di dati. Sia DRAM, sia cache, tentano di diminuire la latenza tra CPU e memoria. Un altro esempio è rappresentato dalle cache onboard, montate sui dischi.
Un altro aspetto critico dei sistemi moderni è la potenza dissipata, sia a livello di elaboratore, sia di microprocessore. Infatti circa il 70% dell'energia utilizzata da un normale pc desktop è utilizzata per il raffreddamento. La potenza dissipata è data da 0.5*capacità di carico*(tensione^2)*frequenza.
I processori multicore cercano di lavorare ad una frequenza minore (per diminuire la potenza dissipata), consentendo una capacità di calcolo uguale.
Componenti dei microprocessori
Un microprocessore è composto da diverse parti, alcune di esse sono:
-Unità di controllo.
-ALU (Algebrical Logic Unit).
-Unità di decodifica delle istruzioni (controlla la tempistica per fetch, decode e execute).
-Unità di gestione degli indirizzi (trasforma indirizzi logici in indirizzi reali)
-Registri (immagazzinano i dati sui quali eseguire le operazioni)
-Unità di gestione del BUS (regola a chi dare il comando del BUS)
Un elemento esterno al microprocessore, ma comunque vitale per il suo corretto funzionamento è il chipset, il quale si occupa della gestione delle periferiche, del DMA…
Per migliorare le prestazioni, si sono adottate diverse modifiche strutturali nei microprocessori moderni, come l'inserimento della BIU (Bus Interface Unit), di code di prefetch o cache per la gestione del codice. In più è stato molto spesso aumentato il parallelismo di esecuzione, inserendo pipeline o utilizzando architetture superscalari, eseguendo quindi più operazioni in parallelo. Un ultimo modo per migliorare le prestazioni è stato quello di inserire più core all'interno dello stesso microprocessore, aumentando quindi il parallelismo tra parti di programmi indipendenti (threads).
| Succ. > |
|---|






