Cosa significa "N-Bit"?
Scusate se questo primo paragrafo è un po 'troppo di basso livello, ma è offerto nella speranza che possa aiutare i lettori futuri: numero A, rappresentata da N cifre in base M, non può che essere grande come . Ad esempio, con 9 cifre decimali (base 10), è possibile scrivere solo numeri fino a 10 ^ 9 o da zero a 999.999.999. Con 8 cifre binarie (base 2) (una "cifra binaria" è un "bit"), è possibile memorizzare 2 ^ 8 = 256 numeri.MN
Un microcontrollore o processore si chiama 'N-bit' perché controller e processori hanno una larghezza di dati fondamentale. Ogni registro potrebbe essere N bit, ogni istruzione potrebbe essere N bit, il bus dati potrebbe essere N bit, la memoria potrebbe essere indirizzata con N bit. Soprattutto al livello inferiore, ci sono eccezioni a questa regola: ad esempio, un controller a 8 bit potrebbe avere un bus di memoria a 12 bit, ma come si può immaginare è difficile lavorare con quando i registri contengono solo 8 bit. Tuttavia, tutti i processori hanno una larghezza del tipo di dati nativi fondamentale. Considera il seguente codice:
uint32_t x,y,z; // Declare 3 32-bit variables
z=x + y; // Add two of them to store in the third
Se puoi aggiungere solo numeri a 8 bit, come eseguiresti questa operazione? Dovresti suddividere ogni variabile in 4 numeri a 8 bit, fare le aggiunte e le trasporta singolarmente, quindi unirle per ottenere il risultato. Questo richiederebbe almeno 16 istruzioni! Tuttavia, su un processore a 32 bit, è una singola istruzione semplice come mul r0, r1, r2
. Come puoi vedere da questo semplice esempio, larghezze di bit del processore più grandi possono gestire più dati più velocemente.
Note storiche
La tendenza nel corso della storia è stata da larghezze di bit più piccole a quelle di dimensioni maggiori. Già nei primi anni '70, Intel ha rilasciato il 4004, il primo controller a chip singolo. Era un processore a 4 bit. Poiché i transistor erano grandi e affamati di potere, e poiché il design era rivoluzionario e complicato, questo era tutto ciò che poteva essere schiacciato sul chip. Poco dopo, hanno rilasciato l'8008, un processore a 8 bit. Esistono ancora pochi processori a 4 bit, ma ci sono molti controller a 8 bit, PIC e AVR sono esempi contemporanei ancora in uso comune. Sono stati realizzati più processori a 8 bit rispetto a qualsiasi altro tipo! Sono ancora i controller più popolari per attività di piccole dimensioni, semplici e sensibili ai costi. La successiva ovvia transizione è stata verso i controller a 16 bit, ma questi non hanno avuto la portata dei loro fratelli a 8 o 32 bit. Anziché, c'è stato un salto ai processori a 32 bit, come quelli progettati da ARM e progettati nelle CPU dei PC di alcuni anni fa. Non ci sono stati microcontrollori a 64 bit significativi di cui sono a conoscenza, anche se ora sono importanti nei PC.
8 bit contro 32 bit
Di gran lunga i tipi più popolari sono i processori a 8 e 32 bit. I processori a 32 bit stanno diventando sempre più popolari. Ogni anno, una rivista specializzata pubblica un articolo dal titolo "È morto a 8 bit?" I processori a 32 bit stanno diventando sempre più popolari, più potenti ed economici, lasciando solo tre motivi per scegliere un processore a 8 bit:
- Inerzia : se disponi di codice ed esperienza con un processore a 8 bit, potresti non ottenere un ROI sufficiente convertendo tutto in un'architettura a 32 bit.
- Bassa potenza : ogni transistor in un controller dissipa la potenza e, sebbene le dimensioni non siano più un problema, i processori a 32 bit hanno più transistor e quindi dissipano più corrente nel loro stato off. Questo è solo un problema nei progetti estremi, basati su celle a bottone.
- Basso costo : se sono necessarie solo una dozzina di istruzioni di assemblaggio e 2 pin IO, anche un processore a 8 bit è probabilmente eccessivo. Nella fascia bassa, i controller a 8 bit più economici sono meno di $ 0,40 in blocco, ma i processori a 32 bit più economici sono ancora $ 0,80 o giù di lì, ma sono abbondantemente più potenti delle alternative a 8 bit. Se stai cercando di costruire un giocattolo con un singolo LED lampeggiante per il prossimo milione di Happy Meals, questa è una riduzione dei prezzi convincente, altrimenti non fa davvero la differenza.
I processori a 32 bit stanno diventando sempre più onnipresenti, ma c'è poco segno che il processore a 8 bit scomparirà come i vecchi processori a 4 bit a causa di questi tre motivi.
Arduino come esempio
Prendi in considerazione un'applicazione come Arduino .
Arduino utilizza un controller Atmel, un ATmega32 a 8 bit . L'ATmega funziona a 20 MHz, ha 4k di RAM, comunicazioni SPI, I2C e UART, alcuni interrupt di processo e 8 ADC a 10 bit. Questo chip costa $ 3,90 in quantità di 100.
Un chip simile a 32 bit potrebbe essere un'altra parte Atmel, un AT-SAM3 a 32 bit che utilizza il core ARM Cortex-M3 condiviso. Questo chip funziona a 64 MHz (3 volte più veloce, ma ricorda che l'ATmega richiede 16 istruzioni per eseguire una singola aggiunta a 32 bit). Ha 16k di RAM, 4 volte di più di ATmega. Ha periferiche I²C, MMC, SPI, SSC, UART e persino USB. Ha DMA (accesso diretto alla memoria, lo rende anche più veloce ed efficiente), un set flessibile e potente di interrupt, 10 ADC a 12 bit e 2 DAC. Supera semplicemente l'ATmega in tutte le categorie. Ho provato a trovare un controller a 32 bit che avesse un set di funzioni comparabili, e questo è stato il migliore che potessi fare. Quanto costa questo chip? Sono $ 2,34 in quantità di 100: ottieni più prestazioni con meno soldi. Dovrebbe essere una decisione facile.
E il tuo esempio?
Per la tua situazione di esempio qui ,
È necessario contare il numero di auto in entrata e in uscita da un parcheggio e il numero visualizzato su uno schermo LCD. È consentito un massimo di dieci auto nel parcheggio.
hai una matematica molto semplice con piccoli numeri e un semplice display su un LCD (o davvero, un grande cartello fatto di numeri a 7 segmenti illuminati a LED sarebbe più visibile e più economico). Un controller a 8 bit è probabilmente perfettamente adeguato per questo compito. Tuttavia, quello che se davvero non vuole un LCD? Il controller a 8 bit farà fatica a pilotare anche un display VGA a bassa risoluzione, mentre puoi facilmente ottenere schede di sviluppo per controller a 32 bit con uscite HDMI. Che cosa succede se per ora vuoi visualizzarlo su uno schermo, ma successivamente vuoi collegarlo a un cavo Ethernet sulla LAN della tua attività e visualizzare i risultati sul computer del supervisore presso l'ufficio del parco? Puoi facilmente ottenere controller a 32 bit con bus di comunicazione Ethernet integrati, non puoi farlo con un controller a 8 bit.Xport , ma contiene al suo interno un processore a 32 bit.
Per progetti una tantum, consiglierei sempre un controller a 32 bit. Il tuo tempo è semplicemente più prezioso della differenza di prezzo tra controller a 8 e 32 bit.
Rispetto ai processori a 7 bit che hai citato, probabilmente non ci sono mai state e mai ci saranno macchine di questo tipo. Dal punto di vista architettonico, è più sensato utilizzare larghezze di bit che sono potenze di 2.