¿Qué significa "N-Bit"?
Perdonen si este primer párrafo es demasiado bajo, pero se ofrece con la esperanza de que pueda ayudar a futuros lectores: Un número, representado por N dígitos en base M, sólo puede ser tan grande como \$M^N\$ . Por ejemplo, con 9 dígitos decimales (base 10), sólo se pueden anotar números hasta 10^9, es decir, de cero a 999.999.999. Con 8 dígitos binarios (base 2) (un "dígito binario" es un 'bit'), puedes almacenar 2^8 = 256 números.
Un microcontrolador o procesador se denomina de "N bits" porque los controladores y procesadores tienen una anchura de datos fundamental. Cada registro puede ser de N bits, cada instrucción puede ser de N bits, el bus de datos puede ser de N bits, la memoria puede direccionarse con N bits. Especialmente en el nivel inferior, hay excepciones a esta regla: por ejemplo, un controlador de 8 bits puede tener un bus de memoria de 12 bits, pero, como puedes suponer, es difícil trabajar con eso cuando tus registros sólo contienen 8 bits. Sin embargo, todos los procesadores tienen un ancho de tipo de datos nativo fundamental. Considere el siguiente código:
uint32_t x,y,z; // Declare 3 32-bit variables
z=x + y; // Add two of them to store in the third
Si sólo puedes sumar números de 8 bits, ¿cómo realizarías esta operación? Tendrías que dividir cada variable en 4 números de 8 bits, hacer las sumas y las cargas individualmente, y luego fusionarlas para obtener el resultado. Esto llevaría al menos 16 instrucciones. Sin embargo, en un procesador de 32 bits, es una instrucción tan sencilla como mul r0, r1, r2
. Como se puede ver en este sencillo ejemplo, las mayores anchuras de bits del procesador pueden manejar más datos con mayor rapidez.
Notas históricas
La tendencia a lo largo de la historia ha sido la de pasar de una anchura de broca menor a una mayor. A principios de los años 70, Intel lanzó el 4004, el primer controlador de un solo chip. Era un procesador de 4 bits. Como los transistores eran grandes y consumían mucha energía, y como el diseño era revolucionario y complicado, esto era todo lo que se podía meter en el chip. Poco después, lanzaron el 8008, un procesador de 8 bits. Hay pocos procesadores de 4 bits que se sigan utilizando, pero hay muchos controladores de 8 bits, el PIC y el AVR son ejemplos contemporáneos que todavía se utilizan. Se han fabricado más procesadores de 8 bits que de cualquier otro tipo. Siguen siendo los controladores más populares para tareas pequeñas, sencillas y de bajo coste. La siguiente transición obvia fue a los controladores de 16 bits, pero éstos no han tenido el alcance de sus hermanos de 8 o 32 bits. En su lugar, se ha producido un salto a los procesadores de 32 bits, como los diseñados por ARM e incorporados a las CPU de los PC de hace unos años. Que yo sepa, no ha habido ningún microcontrolador de 64 bits importante, aunque ahora son prominentes en los PC.
8 bits vs. 32 bits
Los tipos más populares, con diferencia, son los procesadores de 8 y 32 bits. Los procesadores de 32 bits son cada vez más populares. Cada año, más o menos, alguna revista especializada publica un artículo con el título "¿Han muerto los 8 bits?". Los procesadores de 32 bits son cada vez más populares, más potentes y más baratos, por lo que sólo quedan tres razones para elegir un procesador de 8 bits:
- Inercia - Si tienes código para un procesador de 8 bits y experiencia con él, es posible que no obtengas una rentabilidad suficiente convirtiendo todo a una arquitectura de 32 bits.
- Baja potencia - Cada transistor de un controlador disipa energía y, aunque el tamaño ya no es un problema, los procesadores de 32 bits tienen más transistores y, por tanto, disipan más corriente en su estado desactivado. Esto sólo es un problema en los diseños extremos alimentados por pilas de botón.
- Bajo coste - Si sólo necesitas un par de docenas de instrucciones en ensamblador y 2 pines IO, incluso un procesador de 8 bits es probablemente excesivo. En el extremo inferior, los controladores de 8 bits más baratos cuestan menos de $0.40 in bulk, but the cheapest 32-bit processors are still $ 0,80 más o menos, pero son abundantemente más potentes que las alternativas de 8 bits. Si se trata de construir un juguete con un solo LED parpadeante para el próximo millón de Happy Meals, este es un precio de ruptura convincente, si no es así, no hace realmente la diferencia.
Los procesadores de 32 bits son cada vez más omnipresentes, pero hay pocos indicios de que el procesador de 8 bits vaya a desaparecer como los antiguos procesadores de 4 bits por estas tres razones.
Arduino como ejemplo
Considere una aplicación como la Arduino .
El Arduino utiliza un controlador Atmel, de 8 bits ATmega32 . El ATmega funciona a 20 MHz, tiene 4k de RAM, tiene comunicaciones SPI, I2C y UART, unas cuantas interrupciones de hardware y 8 ADC de 10 bits. Este chip cuesta 3,90 dólares en cantidades de 100.
Un chip similar de 32 bits podría ser otra pieza de Atmel, un AT-SAM3 utilizando el núcleo compartido ARM Cortex-M3. Este chip funciona a 64 MHz (3 veces más rápido, pero recuerda que el ATmega necesita 16 instrucciones para hacer una sola suma de 32 bits). Tiene 16k de RAM, 4 veces más que el ATmega. Tiene periféricos I²C, MMC, SPI, SSC, UART, e incluso USB. Tiene DMA (acceso directo a la memoria, también lo hace más rápido y eficiente), un conjunto flexible y potente de interrupciones, 10 ADCs de 12 bits y 2 DACs. Simplemente supera al ATmega en todas las categorías. Intenté encontrar un controlador de 32 bits que tuviera un conjunto de características comparables, y esto fue lo mejor que pude hacer. ¿Cuánto cuesta este chip? Cuesta 2,34 dólares en cantidades de 100: obtienes más rendimiento por menos dinero. Debería ser una decisión fácil.
¿Y su ejemplo?
Para su situación de ejemplo aquí ,
Hay que contar el número de coches que entran y salen de un aparcamiento y mostrarlo en una pantalla LCD. Se permite un máximo de diez coches en el aparcamiento.
tienes unas matemáticas muy sencillas con números pequeños y una simple pantalla en un LCD (o realmente, un gran cartel hecho con números de 7 segmentos iluminados por LEDs sería más visible y más barato). Un controlador de 8 bits probablemente sea perfectamente adecuado para esta tarea. Sin embargo, ¿qué pasa si realmente hacer ¿quieres un LCD? El controlador de 8 bits tendrá dificultades para manejar incluso una pantalla VGA de baja resolución, mientras que puedes conseguir fácilmente placas de desarrollo para controladores de 32 bits que tienen salidas HDMI. ¿Y si de momento quieres mostrarlo en una pantalla, pero más adelante quieres conectarlo a un cable Ethernet en la LAN de tu empresa y mostrar los resultados en el ordenador del supervisor en la oficina del parque? Puedes conseguir fácilmente controladores de 32 bits con buses de comunicación Ethernet a bordo, no puedes hacer eso con un controlador de 8 bits. Usted podría comprar algo como un Xport pero que contiene un procesador de 32 bits en su interior.
Para proyectos puntuales, recomendaría siempre un controlador de 32 bits. Tu tiempo es más valioso que la diferencia de precio entre los controladores de 8 y 32 bits.
Con respecto a los procesadores de 7 bits que mencionas, probablemente nunca ha habido ni habrá máquinas de este tipo. Desde el punto de vista arquitectónico, es más sensato utilizar anchos de bits que sean potencias de 2.