Microcontrollori vs microprocessori: quali sono le principali differenze?

I microcontrollori e i microprocessori presentano molte differenze tra loro in termini di potenza di elaborazione, in termini di costi e di consumo energetico. Differenti sono anche le applicazioni in cui le due architetture possono essere adoperate.

Microcontrollori microprocessori differenze
Microprocessor vs Microcontroller. Credits https://components101.com

Microcontrollori e microprocessori: differenze nei campi d’impiego

Un’applicazione classica del microprocessore è un personal computer. Tramite l’ausilio di un PC si possono fare moltissime cose: possiamo usarlo per giocare con un videogioco o per la navigazione web, per la creazione di documenti, per effettuare dei calcoli matematici o streaming multimediali. Dunque, il microprocessore viene sostanzialmente utilizzato in tutte quelle applicazioni in cui l’attività non è predefinita, ma dipende dall’utente. Inoltre, è impiegato in tutte le applicazioni in cui è richiesta una potenza di calcolo elevata.

Un microcontrollore invece viene impiegato in attività specifiche. Un microcontrollore esegue alcune elaborazioni e fornisce dei risultati in uscita in base agli input in ingresso. Un input potrebbe essere fornito da un utente oppure proveniente da un sensore. Un’applicazione del microcontrollore è il sistema di gestione dei programmi in una lavatrice. Questa possiede delle attività predefinite e, una volta impostato il programma, avrai dei vestiti puliti. 

Microcontrollori vs microprocessori: differenze in termini di struttura interna

Il microprocessore può essere utilizzato per un’applicazione molto leggera come la creazione di documenti o applicazioni molto intense come giochi o streaming multimediale. Pertanto, la quantità di memoria richiesta dipende dall’applicazione. Il chip del microprocessore contiene solo la CPU, cioè l’unità centrale di elaborazione, mentre tutti gli elementi di memoria e le interfacce sono esterne al chip. Perciò, tutti gli elementi come porte I/O, RAM, ROM, interfacce seriali e timer sono collegati esternamente.

Microcontrollori microprocessori differenze
Strutture di un Microprocessore e di un Microcontrollore. Credits: https://eeeproject.com

Poiché un microcontrollore viene utilizzato per attività specifiche, la quantità di memoria e le porte di I/O sono limitate. In un microcontrollore tutti gli elementi di memoria e le porte di I/O sono integrati insieme alla CPU all’interno di un singolo chip. Pertanto, la dimensione complessiva del sistema è molto piccola. Infatti, nel caso di un microprocessore, poiché tutti gli elementi di memoria e le porte di I/O sono collegati esternamente, le dimensioni complessive del sistema sono maggiori del microcontrollore.

Microcontrollori microprocessori differenze
Microcontroller. Credits: www.electronicsforu.com

Confronto in termini di potenza di elaborazione

Per capire le differenze in termini di potenza di elaborazione, consideriamo alcuni parametri interni nei due chips.

  • Velocità del clock: un microprocessore funziona a velocità molto più elevate di un microcontrollore. La velocità del clock di un microprocessore è generalmente di qualche gigahertz, mentre in un microcontrollore la velocità di clock è in genere nell’intervallo dei megahertz. Pertanto, la velocità del clock di un microcontrollore può variare da 1 MHz a fino a 300 MHz per i microcontrollori di fascia alta.
  • Capacità di memoria: poiché un microprocessore deve eseguire un sistema operativo, la quantità di memoria (RAM e ROM) che richiede è piuttosto elevata. La RAM, che è la memoria volatile del sistema, varia dai 512 MB ai 32 GB. Similmente, la memoria ROM nel microprocessore può variare da 128 GB fino a 2 TB. Poiché i microcontrollori sono impiegati in un compito specifico, la quantità di memoria richiesta è decisamente inferiore. La dimensione di una RAM all’interno del microcontrollore è nell’intervallo dei Kilobyte e generalmente può variare da 2 KB a 256 KB. Invece, le dimensioni di una memoria flash del microcontrollore varia da 32 KB a 2 MB.
  • Interfacce per le periferiche: le interfacce comuni in un microprocessore sono l’USB, l’Ethernet e la seriale UART. Le periferiche comuni che si trovano all’interno dei microcontrollori sono I2C, SPI e UART, quest’ultime sono sostanzialmente delle interfacce seriali.
  • Dimensione dei registri: di solito la quantità di dati che può essere gestita da un microprocessore in un singolo ciclo è superiore a quella dei microcontrollori. Un microprocessore moderno può avere dei registri interni a 32 o 64 bit. Un microprocessore a 64 bit può gestire contemporaneamente dati a 64 bit: ciò significa che i suoi registri interni, il bus degli indirizzi e il bus dati sono a 64 bit. La dimensione dei registri nei moderni microcontrollori sono 8, 16 e 32 bit, pertanto 32 bit è la massima dimensione dei dati che un microcontrollore riesce a gestire in un singolo ciclo.

Differenze in termini di consumo energetico e costi

Nel caso di un sistema a microprocessore, poiché tutte le periferiche sono collegate esternamente, il costo complessivo del sistema è maggiore rispetto ad un microcontrollore. Ad esempio, in commercio si possono trovare dei microcontrollori a 8 bit ad un prezzo inferiore ai 50 centesimi di euro. Ma esistono anche dei microcontrollori di fascia alta il cui costo può superare quello di un microprocessore. Poiché il microprocessore viene usato in applicazioni in cui è richiesta un’elevata capacità di elaborazione, il suo consumo energetico risulta maggiore rispetto a quello di un microcontrollore. Oggi esistono microcontrollori low power a 32 bit, adoperati in tutte quelle applicazioni che richiedono un consumo energetico ultra basso: è il caso dei dispositivi indossabili e dei dispositivi per le reti IoT.