Microcontroladores / microprocesadores y diferentes versiones de bits, ¿cuál es la diferencia?

20

Como aficionado a la ingeniería general, estoy aprendiendo más sobre el mundo de los microcontroladores todos los días. Una cosa que no entiendo bien es la importancia de la versión de 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, la cantidad de pines IO, los tipos de buses de comunicación, etc., diferencian un microcontrolador de otro. Pero no entiendo muy bien el significado de, digamos, 8 bits frente a 16 bits frente a 32 bits. Entiendo que una versión de bit más alta 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, bajo qué hipotético escenario decidiría que un procesador de 8 bits simplemente no funcionará y que necesito algo más alto.

¿Hay alguna razón para creer que una variante teórica de 32 bits del ATmega8 (en igualdad de condiciones) sería superior a una versión de 8 bits (si ese dispositivo fuera posible)?

Puede que esté diciendo tonterías, pero supongo que es el resultado de mi confusión.

    
pregunta capcom

2 respuestas

24

No es el ancho del número que puede almacenar, es el ancho con el que puede trabajar en una sola operación. Por lo general (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 asignar fácilmente sin desagradables soluciones, como la segmentación o el cambio de banco.

Los núcleos de 32 bits de hoy en día son superiores a los 8 diseños en la mayoría de los aspectos (flexibilidad, modelo de memoria plana y, por supuesto, rendimiento), con las principales excepciones los sistemas heredados, las aplicaciones con un volumen extremo y la presión de los precios (de lo contrario, los precios tienden a correlacionar mejor con el tamaño de la memoria del chip que con el ancho del núcleo) y los efectos secundarios del proceso / densidad. Lo último puede proporcionar cosas como una operación de 5 V, 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 en sí no tiene errores lógicos. Un último efecto del efecto del proceso / edad del valor 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).

    
respondido por el Chris Stratton
8

El valor del bit es el tamaño del bus de datos o del conducto de datos, lo que significa que una MCU de 8 bits puede (en su mayor parte) trabajar solo con valores de 0 a 255 en cada ciclo de reloj. Piense en ello como el procesador tiene 8 líneas digitales en paralelo. Y un 16 bits tiene 16 líneas, y 32 bits tiene 32 líneas. Por lo tanto, para cada ciclo de reloj, lee estas líneas de datos, y cuantas más líneas, mayor es el valor con el que puede trabajar por ciclo de reloj.

8 bits = \ $ 2 ^ 8 \ $ = \ $ 256 \ $

16 bits = \ $ 2 ^ {16} \ $ = \ $ 65,536 \ $

32 bit = \ $ 2 ^ {32} \ $ = \ $ 4,294,967,296 \ $

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 da 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 tienen más de 8 bits. Un microcontrolador de 16 bits puede operar automáticamente en dos números de 16 bits, como la definición común de un entero. Pero cuando está utilizando 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 qué tan intensivo sea el procesamiento de su aplicación y cuántos cálculos realice, esto puede afectar el rendimiento del circuito.

Diferencia entre el microcontrolador de 8 bits y 16 bits

    
respondido por el Garrett Fogerlie

Lea otras preguntas en las etiquetas