Microcontrollori / microprocessori e diverse versioni di bit, qual è la differenza?


20

Come appassionato di ingegneria generale, sto imparando di più sul mondo dei microcontrollori ogni giorno. Una volta cosa che non capisco bene è il significato della versione bit di un microcontrollore.

Uso ATmega8 da diversi mesi e sembra funzionare perfettamente per i miei scopi. So come cose come la velocità di clock, la memoria, il numero di pin IO, i tipi di bus di comunicazione, ecc. Differenziano un microcontrollore da un altro. Ma non capisco bene il significato, per esempio, di 8 bit contro 16 bit contro 32 bit. Capisco che una versione a bit superiore consente al dispositivo di memorizzare numeri più grandi, ma, di nuovo, che impatto ha sulla mia decisione? Se sto progettando un prodotto, in base a quale ipotetico scenario deciderei che un processore a 8 bit semplicemente non funzionerà e che avrei bisogno di qualcosa di più elevato.

C'è qualche motivo per credere che una variante teorica a 32 bit di ATmega8 (tutte le altre cose uguali) sarebbe superiore a una versione a 8 bit (se un tale dispositivo fosse possibile)?

Potrei dire sciocchezze, ma immagino sia il risultato della mia confusione.


Risposte:


24

Non è la larghezza del numero che può memorizzare, è la larghezza con cui può lavorare in una singola operazione. Solitamente (ma non necessariamente) questo ha anche un certo grado di correlazione con la larghezza dell'indirizzamento della memoria nativa, e quindi la quantità di memoria che può essere facilmente mappata senza brutte soluzioni come la segmentazione o il cambio di banco.

I core a 32 bit di oggi sono superiori agli 8-design per la maggior parte degli aspetti (flessibilità, modello di memoria piatta e ovviamente prestazioni), con le principali eccezioni sono i sistemi legacy, le applicazioni con volume estremo e la pressione dei prezzi (altrimenti i prezzi tendono a correlarsi meglio con sulla dimensione della memoria del chip rispetto alla larghezza del nucleo) e gli effetti collaterali del processo / densità. Il successivo può fornire cose come il funzionamento a 5 v, o possibilmente in alcuni casi una maggiore durezza delle radiazioni o un vantaggio di semplicità se si tenta di dimostrare che il design della CPU stessa è privo di errori logici. Un effetto collaterale finale di valore / valore per molti hobbisti è che i core a 8 bit nei pacchetti DIP sono comuni, mentre i dispositivi a 32 bit in tali pacchetti sono più rari (sebbene esistano).


3
La larghezza che può gestire in una singola operazione può essere importante durante la sincronizzazione di parti asincrone del programma. Se è necessario leggere atomicamente un valore a 16 bit su un micro a 8 bit, probabilmente è necessario disabilitare prima gli interrupt che è possibile evitare per mantenere basso il tempo di risposta ISR.
ndim,

Un altro aspetto in cui alcuni micro a 8 bit possono essere superiori a ARM (l'architettura a 32 bit più popolare) è con i bit di I / O twiddling. Un PIC 18Fxx (8 bit) può impostare o cancellare qualsiasi bit nello spazio I / O con una singola istruzione, indipendentemente da ciò che contengono tutti i registri, mentre un ARM generalmente richiede un processo in più fasi. I chip ARM possono eseguire più istruzioni al secondo rispetto ai chip PIC attualmente disponibili (alcuni piccoli chip compatibili con PIC 100MHz erano disponibili da Scenix, ma penso che siano fuori produzione) ma anche i PIC disponibili possono ancora fare alcuni tipi di bit-bang Più veloce.
supercat

1
Sebbene meno universali, alcuni dispositivi ARM hanno cose come i registri GPIOx_BSRR / GPIOx_BRR su cui è possibile scrivere per impostare o cancellare singoli bit GPIO.
Chris Stratton,

8

Il valore del bit è la dimensione del bus di dati o del data pipe, il che significa che un MCU a 8 bit può (per la maggior parte) funzionare solo con valori compresi tra 0 e 255 per ogni ciclo di clock. Pensa a come il processore ha 8 linee digitali in parallelo. E un 16 bit ha 16 linee e 32 bit ha 32 linee. Quindi, per ogni ciclo di clock, legge queste righe di dati e più righe sono maggiori è il valore con cui è possibile lavorare per ogni ciclo di clock.

28256

21665,536

2324,294,967,296

Bus dati più grandi consentono inoltre al processore di accedere a indirizzi di memoria più grandi.

Questo fa una grande differenza durante le operazioni matematiche. Un numero a 16 bit offre una precisione molto maggiore rispetto ai numeri a 8 bit. I microcontrollori a 16 bit sono anche più efficienti nell'elaborazione delle operazioni matematiche su numeri più lunghi di 8 bit. Un microcontrollore a 16 bit può funzionare automaticamente su due numeri a 16 bit, come la definizione comune di un numero intero. Ma quando si utilizza un microcontrollore a 8 bit, il processo non è così semplice. Le funzioni implementate per operare su tali numeri richiederanno cicli aggiuntivi. A seconda dell'intensità di elaborazione dell'applicazione e del numero di calcoli effettuati, ciò potrebbe influire sulle prestazioni del circuito.

Differenza tra microcontroller 8 bit e 16 bit

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.