
Le differenze tra microprocessore e microcontrollore sono molte. Siete sicuri di conoscerle tutte? La più importante è che un microprocessore è la parte centrale di un computer, ma ha bisogno di altre integrazioni per poter funzionare, tra cui le periferiche di ingresso e uscita; un microcontrollore, invece, non ha bisogno di altri componenti, ma ha capacità di calcolo ridotte. Scopri in questo articolo le altre differenze…
Microprocessori e microcontrollori: qualche definizione
Quali sono le differenze tra microprocessore e microcontrollore? Il primo potrebbe essere definito come il “cuore” di un computer, fisso o portatile che sia. Dal punto di vista tecnico è l'integrazione di una serie di funzioni in un unico pacchetto IC ed è un componente che ha bisogno di numerose integrazioni esterne aggiuntive per poter funzionare, tra le quali la memoria, un oscillatore di clock, periferiche di ingresso e uscita. Inventato nel 1971, il microprocessore è attualmente l'implementazione fisica più comune di una CPU, ed è utilizzato su quasi tutti i computer e i dispositivi digitali come telefoni cellulari e scanner.
Un microcontrollore, invece, riunisce tutti gli elementi all'interno di un unico piccolo contenitore, e in teoria non ha bisogno di altri componenti esterni per poter funzionare. Tutto è infatti racchiuso in un unico chip, compresa la memoria per il programma, la memoria RAM, l'oscillatore di clock, il circuito di reset e le periferiche.
Le capacità di calcolo di un microcontrollore sono estremamente ridotte. Ad esempio la memoria RAM è formata da qualche centinaio di celle, e di solito non è espandibile. I microprocessori, al contrario, possono essere usati per effettuare elaborazioni complesse su grandi quantità di informazioni. Tra le tipiche applicazioni di un microcontrollore ci possono essere gli antifurti, gli strumenti di misurazione, quelli per la regolazione della luminosità, i carica batterie e i trasmettitori/ricevitori. Per questi motivi, i microcontrollori sono progettati per eseguire un piccolo insieme di funzioni specifiche, ad esempio nel caso di un Digital Signal Processor, che svolge un piccolo insieme di funzioni di elaborazione del segnale ed è ampiamente utilizzato per regolare i freni su tutte e quattro le ruote, o per regolare l’aria condizionata in auto.
Invece un microprocessore esegue una vasta gamma di compiti in un PC e può essere considerato il "motore" di elaborazione dei dati, racchiuso in un unico circuito integrato, capace di leggere, elaborare e scrivere informazioni in una memoria o in altri dispositivi digitali. La costruzione dei microprocessori fu resa possibile dall'avvento della tecnologia LSI, fondata sulla nuova tecnologia "Silicon Gate Technology" sviluppata nel 1968 da un italiano, Federico Faggin della Fairchild. Con l’integrazione di una CPU completa in un solo chip permise di ridurre di molto il costo dei computer. Secondo la legge di Moore, il numero di transistor integrabili sullo stesso chip dovrebbe raddoppiare ogni 18 mesi e l'evoluzione del microprocessore ha seguito con buona approssimazione questa regola.
Altre differenze tra microprocessori e microcontrollori
Il microcontrollore, quindi, è un dispositivo elettronico integrato su singolo chip e viene utilizzato generalmente in sistemi cosiddetti “embedded”, cioè per applicazioni specifiche di controllo digitale. È progettato per interagire direttamente con il mondo esterno tramite un programma residente nella propria memoria interna e mediante l'uso di pin specializzati o configurabili dal programmatore. I microcontrollori sono disponibili in tre fasce di capacità elaborativa: 8 bit, 16 bit e 32 bit. Per i microcontrollori sono rilasciati sistemi di sviluppo amatoriali e professionali anche in modalità open source. A differenza dei microprocessori, il microcontrollore è progettato per avere la massima autosufficienza funzionale ed ottimizzare il rapporto tra il costo e le prestazioni in uno specifico settore di utilizzo.
Anche l'esecuzione delle applicazioni si basa su un'architettura hardware diversa da quella che utilizzano i microprocessori. Mentre questi ultimi eseguono i programmi applicativi sfruttando dispositivi di memoria di massa o a memoria volatile, i microcontrollori eseguono il programma applicativo che è solitamente memorizzato su un dispositivo di memoria ROM.

Come scriveva su CQ Elettronica tanti, ma tanti anni fa 🙂 il Digitalizzatore (alias Ing Giardina) “al micro facce caso che ti prende per il naso”
Paolo Lencioni @Facebook
Certo le differenze sono tante e questo argomento potrebbe essere approfondito in moltissimi modi. L’importante è sapere almeno quali sono le differenze principali! =)
Salve,
vorrei dare una risposta sintetica e facilmente leggibile.
Prima di tutto dire che, i verbi, controllare e processare, non sono sinonimi,
e in elettronica si osserva cosi:
processore(CPU) = unità di processo dati
(la natura variabile dei dati, li rende dispositivi di tipo generico o ASSP)
controller(GA o FCC) = unità di controllo hardware
(genericamente identificati come ASIC o Driver hardware)
micro-controller(MCU) = unità di controllo hardware SoC
(se non sono ri-programmabili o sono disegnati per uno specifico compito,
esempio: LCD-MCU, MOTOR-MCU,ecc. Anch’essi possono essere identificati come ASIC di tipo SA o ASIC strutturati,invece nel caso di un uso generico, sono inquadrati come degli ASSP)
micro-processor(MPU) = unità di processo dati SoC
(molti affermano, che teoricamente quando i dati processati , pur mantenendo una certa variabilità, sono fine a se stessi , anche un MPU può rientrare nella grande famiglia degli ASIC, io personalmente non approvo questa generalizzazione,perché i dati in qualsiasi contesto e senza riprogrammazione del dispositivo, possono far variare il comportamento finale dello stesso dispositivo)
queste sono le differenze di base, però vorrei far notare che la maggior parte dei dispositivi programmabili, oggi in giorno, sono ibridi, anche se i fabbricanti, semplificano e li catalogano sotto le voci MPU o MCU , ecc.
Ed un altro aspetto, che causa confusione, è la versatilità dei dispositivi
“micro-embedded” (MCU e MPU)
quando un MPU controlla un periferico, è un controller, e viceversa,
quando un MCU processa dati, è un processore,
questo però, non deve far cadere in errore.
Ricordiamoci che entrambi garantiscono maggiori prestazioni nelle architetture e strutture hardware, per le quali sono stati disegnati.
Come bene fa notare Rossella , una delle più grandi differenze è la gestione dei bus di dati.
Il paradigma:
Molti esperti affermano che un processore e parte di un controller,
ed altri, che un controller è parte di un processore.
beh, io credo che siano, strutturalmente certe, ambi teorie(non ci piove),
e che fino quando, saranno cosi versatili, solo l’esperienza e la conoscenza, da parte dei progettisti micro-elettronici, potranno assegnarli, i ruoli adeguati.
Queste semplici osservazioni valgono anche per le famiglie dei dispositivi utilizati per trattamento, di segnali DSC e DSP,
e/o dei dispositivi per trattamento di dati digitali, encode/decode o pre/post,
ottimizzati a livello hardware, come nel caso delle GPU, MPEG encoder, ecc.
Un Saluto a tutti
Maurizio
Certo che non siamo sicuri di conoscere tutte le differenze ma fa piacere sapere di non essere gli unici.
Aliberto Maltagliati @Facebook
Secondo me è piu corretto dire: un microprocessore da solo non fa nulla perche deve caricare istruzioni da altri chip (rom-ram) e interagisce con l’utente attraverso dispositivi d’uscita esterni; il microcontrollore invece ha gia tutto al s…uo interno quindi si porta con se la memoria e ci possiamo collegare direttamente dispositivi di otput (led!, lcd, pwm). Ora però pensiamo ai SoC come il AMD Geode: è un microprocessore derivazione athlon usato per realizzare pc intel compatibile, solo che al suo interno c’è tutto, controllori della memoria, dma ecc… non per nulla è un sistem-on-chip (Soc). Oppure pensiamo ai tanti Z80 usati nelle schede di commutazione di linea rtg telecom: sono microprocessori con ram, rom e tante belle cose ma fanno solo quattro robe in croce come fossero microcontrollori.Sono gradite le critiche a quanto scritto, saluti!
Papadopol Lucian @Facebook
il mP(processore)svolge tante funzioni mentre il mC microcontrollore svolge una funzione ben precisa.
Mario Zara @Facebook
Se un ‘controllore’ ha la memoria integrata e le periferiche integrate, allora si può definire microcontrollore, infatti le varie case definiscono i loro dispositivi, microcontrollori ARM. Invece i microprocessori sono i dispositivi, anche romless, che necessitano di periferiche esterne. Meno diffusi nei sistemi embedded.
Direi che si può parlare di Microcontrollori ARM (se hanno le periferiche a bordo) basati su processore ARM (inteso come il core)
Mi sento di lasciare un commento perché l’articolo non mi ha convinto. Premetto che faccio parte di una organizzazione che progetta Microcontrollori.
Concordo con Maurizio quando cita <>, infatti i Microcontrollori sono unita hardware programmabili allo scopo di eseguire controlli in real time. Sono perciò un mix tra unità di elaborazione dati (CISC o RISC) e un mix di periferiche ad-hoc allo scopo di facilitare alcuni sezionamenti o interfacciamenti (es. PWM per Motor Cobtrol, interfacce dedicate per sensori quali encoders, segnali analogici, etc).
Non concordo affatto sull’opinione dell’autrice che i due di differiscono perché i Microcontrollori sono ormai venduti solo nella forma di SoC o per il fatto che i Microcontrollori hanno risorse limitate.
La scelta di proporre sul mercato Microcontrollori nella forma di SoC è dettata da logiche di mercato e capacità technologiche: i uC a 8-bit hanno potuto essere integrati su un singolo silicio ben 20 anni fa perché contenevano un numero limitato di transistors. Oggi, con le tecnologie di ultima generazione di possono integrare centinaia di migliaia di transistors, per cui anche un uP può essere fornito in forma di SoC quando il mercato lo richieda (es. tutte le applicazioni portabili che richiedono poco spazio: smartphone e tablet).
L’ultima precisazione sui Microcontrollori: non è vera l’affermazione che hanno risorse limitate o capacità di calcolo limitate. Vi sono infatti microcontrollori a 6 o 8 core, alcuni MB di memoria SRAM e decine di MB di memoria Flash.