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.