Como aficionado a la ingeniería general, cada día aprendo más sobre el mundo de los microcontroladores. Sin embargo, una vez que no entiendo bien es el significado de la versión bit de un microcontrolador.
He estado usando el ATmega8 durante varios meses, y parece funcionar muy bien para mis propósitos. Sé cómo cosas como la velocidad del reloj, la memoria, el número de pines IO, los tipos de buses de comunicaciones, etc. diferencian un microcontrolador de otro. Pero no entiendo la importancia de, digamos, 8 bits frente a 16 bits frente a 32 bits. Entiendo que una versión de bits más altos permite que el dispositivo almacene números más grandes, pero nuevamente, ¿cómo afecta esto mi decisión? Si estoy diseñando un producto, ¿en qué escenario hipotético decidiría que un procesador de 8 bits simplemente no funcionaría y que necesito algo más alto?
¿Hay alguna razón para creer que una variante teórica de 32 bits del ATmega8 (todas las demás cosas iguales) sería superior a una versión de 8 bits (si tal dispositivo fuera posible)?
Puede que esté diciendo tonterías, pero supongo que es el resultado de mi confusión.
fuente
Respuestas:
No es el ancho del número que puede almacenar, es el ancho con el que puede trabajar en una sola operación. Habitualmente (pero no necesariamente) esto también tiene un grado de correlación con el ancho del direccionamiento de la memoria nativa y, por lo tanto, la cantidad de almacenamiento que se puede mapear fácilmente sin soluciones desagradables como la segmentación o el cambio de banco.
Los núcleos actuales de 32 bits son superiores a los diseños de 8 en la mayoría de los aspectos (flexibilidad, modelo de memoria plana y, por supuesto, rendimiento), con las principales excepciones como sistemas heredados, aplicaciones con volumen extremo y presión de precios (de lo contrario, los precios tienden a correlacionarse mejor con en el tamaño de la memoria del chip que con el ancho del núcleo) y los efectos secundarios del proceso / densidad. El último puede proporcionar cosas como la operación de 5v, o posiblemente en algunos casos una mayor dureza de radiación o una ventaja de simplicidad si se intenta demostrar que el diseño de la CPU está libre de errores lógicos. Un efecto secundario de valor final del proceso / edad para muchos aficionados es que los núcleos de 8 bits en los paquetes DIP son comunes, mientras que los dispositivos de 32 bits en dichos paquetes son más raros (aunque existen).
fuente
El valor de bit es el bus de datos o el tamaño de la tubería de datos, lo que significa que una MCU de 8 bits solo puede (en su mayor parte) trabajar con valores de 0 a 255 en cada ciclo de reloj. Piénselo como si el procesador tuviera 8 líneas digitales en paralelo. Y un 16 bits tiene 16 líneas, y 32 bits tiene 32 líneas. Entonces, para cada ciclo de reloj, lee estas líneas de datos, y cuantas más líneas, mayor será el valor con el que puede trabajar por ciclo de reloj.
Los buses de datos más grandes también permiten que el procesador acceda a direcciones de memoria más grandes.
Esto hace una gran diferencia durante las operaciones matemáticas. Un número de 16 bits le brinda mucha más precisión que los números de 8 bits. Los microcontroladores de 16 bits también son más eficientes en el procesamiento de operaciones matemáticas en números que son más largos que 8 bits. Un microcontrolador de 16 bits puede funcionar automáticamente en dos números de 16 bits, como la definición común de un entero. Pero cuando usa un microcontrolador de 8 bits, el proceso no es tan sencillo. Las funciones implementadas para operar en tales números tomarán ciclos adicionales. Dependiendo de cuán intensivo sea el procesamiento de su aplicación y cuántos cálculos realice, esto puede afectar el rendimiento del circuito.
Diferencia entre microcontrolador de 8 bits y 16 bits
fuente