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


20

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.


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. 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).


3
El ancho que puede manejar en una sola operación puede ser importante al sincronizar partes asincrónicas del programa. Si necesita leer atómicamente un valor de 16 bits en un micro de 8 bits, es probable que primero deba desactivar las interrupciones, lo que quizás desee evitar para mantener bajo el tiempo de respuesta de ISR.
ndim

Otro rasgo en el que algunos micros de 8 bits pueden ser superiores al ARM (la arquitectura más popular de 32 bits) es con el giro de bits de E / S. Un PIC 18Fxx (8 bits) puede establecer o borrar cualquier bit en el espacio de E / S con una sola instrucción, independientemente de lo que contenga cualquier registro, mientras que un ARM generalmente requiere un proceso de varios pasos. Los chips ARM pueden ejecutar más instrucciones por segundo que los chips PIC disponibles actualmente (algunos chips pequeños compatibles con PIC de 100MHz solían estar disponibles en Scenix, pero creo que están descontinuados), pero incluso los PIC disponibles aún pueden hacer algunos tipos de golpes de bits Más rápido.
supercat

1
Si bien son menos universales, algunos dispositivos ARM tienen elementos como los registros GPIOx_BSRR / GPIOx_BRR en los que se puede escribir para establecer o borrar bits GPIO individuales.
Chris Stratton

8

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.

28256

2dieciséissesenta y cinco,536

2324 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 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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.