¿Cuál es la diferencia entre una CPU utilizada en computadoras y un microcontrolador utilizado en dispositivos integrados?

Los microcontroladores vienen en muchos sabores diferentes, pero generalmente podemos clasificarlos como CPU diseñadas para integrarse en otros sistemas con circuitos de soporte externos limitados o sin ellos. He visto microcontroladores de 4, 8, 16, 32 y 64 bits. En estos días, la demanda de un 4 bit ha desaparecido con los precios y el consumo de energía de los más grandes. Algunas arquitecturas de 8 bits todavía están en uso (¿morirá alguna vez el 8051?), Pero las CPU de 32 bits están comenzando a consumir el extremo inferior del mercado.

Puede preguntar cómo pueden hacer esto. En primer lugar, el tamaño de la característica de los chips se ha reducido, lo que disminuye el tamaño, el costo y el consumo de energía. En segundo lugar, muchos de estos diseños funcionan a velocidades de reloj mucho más bajas, tienen poca o ninguna memoria caché y, a menudo, descartan características como el reordenamiento de instrucciones y el punto flotante en lugar de chips más pequeños / más baratos con circuitos de soporte en el dado. Al no tener que conducir buses para gráficos, el almacenamiento de memoria grande o la conexión en red de alta velocidad hace que los circuitos de interfaz sean relativamente simples. En muchos casos, la memoria y algunos buses de red / serie limitados se trasladan al chip para facilitar el uso por parte de los diseñadores.

Las CPU en las computadoras son grandes chips de bocina diseñados para exprimir hasta el último cálculo de un ciclo de reloj y ejecutar tantos como sea posible. Para hacer esto, necesita un entorno limpio de chips de soporte para realizar las tareas más básicas. Solo la interfaz de memoria de una CPU Intel moderna es más complicada que muchos microcontroladores, pero al mismo tiempo pocas CPU pueden competir en una tarea de uso intensivo de memoria. Esto requiere muchos controladores para el uso óptimo de DRAM (que la mayoría de los microcontroladores no pueden tocar) sin mencionar la lógica para admitir cachés de varios niveles.

Las CPU modernas han alcanzado su punto más alto de la marca de 100 vatios para un solo chip. Esto es una locura desde una perspectiva de ingeniería y obligó a los fabricantes a encontrar formas de ahorrar energía. Velocidades de reloj dinámicas, potencia selectiva para diferentes componentes y motores de cálculo parcial para paralelismos ligeros (hyperthreads). Estos han hecho de la CPU moderna una verdadera maravilla de logros de ingeniería, pero no algo que pueda integrarse en dispositivos pequeños, de baja potencia o de mano.

Estamos viendo una pequeña convergencia con las últimas líneas ARM e Intel Atom. ARM siempre ha mantenido sus chips con un pie en el espacio incrustado, pero en los últimos años han aterrizado en el espacio de 64 bits con un buen rendimiento. Ahora puedo obtener una placa pequeña de baja potencia con un procesador de 64 bits y una memoria decente por alrededor de $ 100. Al mismo tiempo, Intel ha tomado sus CPU y ha hecho algunos intentos de integrar diseños reducidos con el Atom. Algunos de esos diseños se han movido mucho en el chip y proporcionan un rendimiento realmente bueno para el intercambio de potencia.

Al mismo tiempo, los aficionados utilizan tablas baratas de ambos campamentos que no se podrían haber hecho antes.

Esta imagen muestra un Intel Edison y Raspberry Pi 2. Cada uno ejecuta Linux, tiene múltiples núcleos, miles de millones de bytes de almacenamiento y mil millones de bytes de memoria. Puedo alimentar cualquiera de las baterías durante horas. Estos son tiempos interesantes en los que puede lanzar lo que hubiera sido un escritorio de alta gama hace 15 años con un problema en un pequeño paquete de $ 50 con algún software estándar.

Desde el advenimiento de la arquitectura de Harvard, los sistemas informáticos han diferido en las implementaciones de programas y memorias de datos. Estos detalles de implementación son la mayor diferencia en CPU y MCU. Existen muchas otras diferencias que pueden tabularse, pero tales diferencias surgen de los diferentes requisitos que plantean sus dominios de aplicación.

En la mayoría de las líneas de productos populares de MCU, hay una memoria flash en chip para almacenar y ejecutar el programa. Esto significa un tiempo de inicio más corto y el código comienza a ejecutarse sin mucho retraso. La desventaja es que solo puede haber tanta memoria disponible en el chip. La mayoría de los productos tienen un máximo de 2 MB de flash en chip. Dependiendo de la aplicación, podría ser un factor limitante.

Las CPU, como se refirió a ellas, no tienen esa limitación y tienen un máximo de hasta 3 cachés (L1, L2, L3) que son bancos de memoria muy pequeños, para asegurar la carga del código y los tiempos de ejecución, pero el programa se almacena en un programa externo y almacenamiento de datos (flash NAND no volátil o tecnologías similares). Lo mismo se aplica a la RAM; la mayoría de las arquitecturas admitirían cientos de MB o GB de RAM y flash, dependiendo de la capacidad de direccionamiento del procesador.

Además de estos, las CPU, en general, son arquitecturas mucho más potentes y pueden hacerse más con frecuencias de reloj normalizadas, o si se comparan en términos de DMIPS. En la lista de otras diferencias, la mayoría de las veces, las implementaciones de sistemas basados ​​en CPU tendrían algún tipo de sistema operativo, y las implementaciones de sistemas basadas en MCU tendrían un firmware de propósito fijo que ejecuta el mismo programa con repetición. Todo esto se puede elaborar a profundidades mucho mayores, pero me detendré aquí.

Permítanme también agregar analogías simples para ayudar a explicar lo anterior. Cuando alguien pregunta la configuración de su PC, usted le dice su CPU, RAM, HDD, tarjeta gráfica y otros dispositivos de E / S. En esto, la CPU es solo CPU, y tiene una memoria caché muy limitada, pero no tiene memoria de programa o datos, o RAM. MCU, por otro lado, tiene la mayoría de estas piezas críticas (CPU, flash, RAM, periféricos específicos de la aplicación) en un solo chip.

Para lectores más sintonizados, otras diferencias clave incluyen el número de rieles de alimentación (generalmente uno en MCU y mayor en CPU), el consumo de energía (las CPU generalmente serían más intensivas en energía, pero hay valores atípicos en las alineaciones modernas si consideramos las MPU) como CPU).

Tres veces 1.) Arquitectura Harvard vs Von Neuman, y 2.) Falta de unidad de punto flotante (FPU) y 3.) falta de caché L3. Una MCU tendrá caché L1 y L2, pero la caché L3 solo se usa en sistemas con altos requisitos de memoria. Y MCU se conoce generalmente como un procesador que no incluye DDR RAM, unidad de arranque de tamaño considerable y una FPU. Un procesador de señal digital es un procesador con una FPU de ciclo único que no tiene que alternar entre el modo entero y el modo FPU. Realmente ya no usamos la CPU / MPU, y nos referimos a él como un sistema integrado (tradicional o de muy bajo consumo), sistema móvil, computadora portátil, computadora de escritorio o supercomputadora (más una jerga de sistema distribuido al azar). Todo se volvió borroso. Técnicamente integrado significa que no puede cambiar el firmware, ya que el software está integrado en el sistema. Si puede actualizar el firmware, técnicamente no es un sistema integrado, pero nadie lo llamará. La línea se ha vuelto borrosa recientemente. Ahora las CPU integradas son más potentes que mi primera CPU Pentium de 120MHz. CPU significa procesador central. Una computadora moderna tiene docenas de procesadores integrados, pero están integrados y no son centrales. Realmente se reduce a si este es el procesador principal o no.

MCU consta de CPU, RAM, memoria, (ADC,….)

More Interesting

Con respecto a la ingeniería informática (sistemas integrados), ¿cuáles son los pros y los contras de la Universidad Estatal de Arizona y la Universidad de Florida?

¿Qué admisión de la universidad para una maestría en Ingeniería Eléctrica e Informática debería uno aceptar: Carnegie Mellon o Georgia Tech? ¿Por qué?

¿Qué tengo que aprender para ser un ingeniero integrado?

¿Cuál es el concepto principal de los sistemas integrados y cómo se relacionan con un proyecto?

¿Es necesario usar una antena con un chip Wi-Fi -N 135 con Intel Galileo?

¿Dónde puedo aprender programación C incrustada para Arduino?

¿Cuál es la diferencia entre los ingenieros de software integrados y los ingenieros de hardware integrados?

¿Cuál es la diferencia entre una instrucción y una directiva en lenguaje ensamblador?

¿Qué sucede realmente dentro de un Arduino Uno R3 cuando ejecuto el código para parpadear un LED?

¿Cómo podemos grabar un programa en un microcontrolador AVR en Linux?

¿Cuáles son las preguntas en tiempo real de un microcontrolador 8051 para la práctica de laboratorio?

¿Cuál es la mejor manera de comenzar con la programación de firmware / sistemas integrados?

¿Debo ir a aprender sistemas integrados en Ahmedabad?

¿Qué todos los temas básicos debería saber si estoy entrevistando a un desarrollador C incorporado (4+ experiencia)?

A pesar de la popularidad entre los aficionados, ¿por qué Atmel AVR rara vez se usa en electrónica industrial y de consumo?