¿Por qué los microcontroladores funcionan a 100 MHz mientras que las CPU funcionan a GHz? [cerrado]

Whoopie, tengo una Raspberry Pi. Cuando hace cosas, funciona a 1,2 GHz y hay overclockers de Uber que los han aumentado a 1,5 GHz (con enfriadores de cambio de fase). Hoy en día, la CPU más barata de Amazon (Intel E7300 Core 2 Duo - £ 8,99) funciona a 2,66 GHz.

Un Arduino Uno funciona a 16 MHz y el microcontrolador Microchip de primera línea (SAM 7) solo llega a 300 MHz.

Parece que un microprocesador funciona diez veces más rápido que un microcontrolador y, al mismo tiempo, es mucho más complejo. ¿Por qué? ¿Es que AMD e Intel son más inteligentes que los demás o es algo más fundamental? ¿Cuál es la diferencia entre un microcontrolador y un microprocesador? no cubre este aspecto en particular.

¿Cuántas toneladas puedes transportar en un auto inteligente? ¿Cuál es la velocidad máxima de un camión volquete en relación con un automóvil deportivo? Casi todo lo que tiene un interruptor de encendido en estos días (no es necesario enumerar excepciones) tiene un procesador. Varios tamaños. Los AVR (arduinos) a 16 Mhz son bastante lentos según algunos estándares de MCU, puede obtener MCU en pequeños cientos de mhz donde mi primera computadora era solo unos pocos mhz.
El raspberry pi utiliza un procesador/sistema diseñado para ejecutar un sistema operativo, consume considerablemente más energía que unos pocos (docenas) mhz mcu. Cuesta significativamente más, aunque en realidad no puedes ver la diferencia de precio entre un arduino de marca y un pi-zero, por ejemplo.
una mcu generalmente lleva gran parte de su equipaje de sistema básico en chip, almacenamiento de programas, memoria, periféricos primarios y E/S. donde un sistema uniforme que no es mcu en un chip normalmente no lleva todo ese equipaje, el decodificador y los procesadores de teléfonos celulares como los que usa pi, llevan bastante y se llaman sistema en un chip, pero todavía hay un gran chip. (o paquete en paquete) y el almacenamiento principal está fuera del chip. en el caso del pi, la red no tiene chip y algunos otros elementos pequeños.
Todo tiene su propio propósito. El fabricante de retrocargadoras no es "más inteligente" que un fabricante de palas. Es solo que no necesita un cargador trasero para limpiar la nieve de su camino de entrada.
la velocidad del reloj ya no es, si alguna vez ha sido, un aspecto principal en el que centrarse, los procesadores que ejecutan sistemas operativos inflados/voluminosos necesitan más Hz que mcus que no están tan inflados, pero ciertamente puede encontrar a alguien que ejecute un sistema operativo en un procesador que funcione más lento que un mcu que puedo encontrar.
Los Ardunos de marca son demasiado caros, donde los pis tienen un precio inquietantemente bajo, o al menos el pi-cero. Algo así como la píldora azul stm32, que es más baja que el precio que la mayoría de nosotros puede comprar solo el microcontrolador en lugar de toda la placa. Así que tampoco puedes comparar precios.
Tome dos / pocas baterías AA y vea cuánto tiempo funciona cualquiera de los pis con eso como su fuente. Luego tome un mcu y vea cuánto tiempo funciona con la misma configuración de baterías. ¿Cuánto duran las pilas del mando a distancia de tu tv? ¿Un reloj atómico alimentado por batería en la pared?
@old_timer, ¿por qué no escribir una respuesta en lugar de diez comentarios que cubran lo mismo?
@old_timer, toneladas de cosas buenas aquí, aunque en demasiados comentarios. ¿Puedes convertirlos en una respuesta?
¿ Esta pregunta no tiene suficiente respuesta?
¿Tu horno de microondas necesita un procesador de 1GHz?
@immibis no, necesita 2,4 GHz para calentar las moléculas de agua ;-)
¡Megahercio! ¡Megahercio! No mHz o mhz. /gruñón
@immibis ¿Por qué hablas de un microondas? Estaba pensando en un Global Hawk UAV, Trident SLBM o un BMW 5 AMG. Y solo espere hasta que la gente de marketing invente un microondas en línea con interfaz web que caliente su comida preparada cuando lo llamen cuando regrese a casa. ¿No sería eso bueno?
@old_timer ¿Qué te confunde con la pregunta? Parece bastante específico al preguntar por qué una marca de componente se ejecuta >> 10 veces más rápido que otra, pero contiene exactamente los mismos bits de silicona...
@PaulUszak ¿Está diciendo que los microondas fabricados ahora deberían desperdiciar energía, espacio y costo en caso de que los futuros microondas lo necesiten? En cualquier caso, probablemente no desee que la CPU principal (que ejecuta muchos programas complejos) controle el magnetrón por razones de seguridad y confiabilidad. Todavía usaría un microcontrolador separado o un circuito de hardware para eso.

Respuestas (2)

Paul, imagina que quisieras aumentar la velocidad máxima de tu automóvil. Ignorando los problemas de "¿cuánto estás remolcando también?" o "¿Eso es cuesta arriba, cuesta abajo o en un llano de inmediato?" ... podría decir: "Necesito un motor más capaz" como una conjetura de primer orden sobre el siguiente paso.

Pero. Se daría cuenta de que necesita más caballos de fuerza para superar la resistencia del viento a cualquier velocidad (lo que, según los números de Reynolds, puede estar relacionado con v o v 2 o alguna función de velocidad más compleja.) Probablemente terminará con más torque en el proceso también. Y luego comienza a trabajar en cómo reducir la resistencia del viento (flujos laminares versus turbulentos, etc.) y luego en el nuevo sistema de transmisión que puede soportar una mayor entrega de par y caballos de fuerza a los ejes y diferentes relaciones de transmisión. Y luego tienes que lidiar con la tracción: la capacidad de las ruedas para entregar lo que se necesita al suelo. (Las ruedas giratorias que se deslizan por el suelo no te llevan a ninguna parte).

En resumen, todo es un proceso de diseño increíble. Todo en el sistema tiene que estar diseñado para aplicar los cambios necesarios para lograr esa mayor velocidad.

Es así aquí. Es una analogía razonable.

El núcleo básico de la CPU puede funcionar, digamos, a 3 GHz con un proceso FAB determinado y limitaciones de disipación de calor. Puede apilar 12 núcleos, digamos, en un solo dado. Cada núcleo puede decodificar individualmente, digamos, hasta 3 instrucciones por reloj (hasta, no siempre, aquí estamos hablando de x86). Entonces, técnicamente en este escenario propuesto, puedo lograr 3 12 3 GHz o tasas de alrededor 144 × 10 9 Instrumento s . Bastante genial, ¿verdad?

Sí. Pero.

¿Cómo alimentas a ese monstruo?

Bueno, agrega algo de caché L1. Pegue justo en el mismo dado, de hecho. (No puede permitirse retrasos fuera del chip). Pero necesita lo suficiente para importar. Y si ingresa lo suficiente, tiene muchos detalles sobre los requisitos de almacenamiento en caché N-way y el direccionamiento, etc. Resulta, digamos, que su caché L1 no puede funcionar mejor que alrededor de 4 relojes por recuperación por núcleo. Lo que significa que cada vez que un núcleo necesita algo, ¡tiene que sentarse y esperar!

Ahora, puede mejorar esto aumentando su caché L1 por un factor importante: más caché es mejor porque está encontrando más datos necesarios allí. Pero esto aumenta el tiempo del ciclo y tal vez ahora eso signifique 5 relojes por recuperación, en lugar de 4. ¿Vale la pena el precio pagado por cada recuperación por la mejor tasa de encontrar los datos allí? (Usualmente no.)

Entonces agrega un caché L2. Es más grande... pero más lento aún. Tampoco puede colocarlo en el troquel original. Así que haces un segundo troquel y los unes con alambre sobre un bus trasero. Y ahora hay más retrasos. No solo la memoria es más lenta en sí misma, sino que también lo son los retrasos involucrados en el salto de señales a través de dos troqueles a través de enlaces por cable.

Entonces agregas un caché L3 .....

Y finalmente llegas al sistema de memoria externa.

Oh. Pero no realmente. Esas tarjetas de memoria externas tampoco son tan rápidas. Y necesitan ayuda. Por lo tanto, crea un conjunto de chips que acepta lecturas y escrituras y las coloca en colas FIFO que van entre las CPU centrales y las tarjetas de memoria externas. (Con el caché ayudando, con suerte).

Pero incluso eso no es suficiente. Puede tener sentido permitir que se realice una lectura sin tener que esperar a que se escriba. Entonces agrega una capacidad de "lectura y escritura" a sus FIFO.

Y así continúa.

Eventualmente, después de un ENORME ESFUERZO e increíbles recursos de diseño, además de cachés, predicción de bifurcaciones y conversión de instrucciones a instrucciones RISC, y agregando múltiples unidades funcionales adjuntas a algunas estaciones de registro, y ejecución fuera de servicio seguida de unidades de retiro en orden, y caché, y....

Tienes un sistema de GHz. Tiene una increíble cantidad de diseño elaborado, construido en los FAB más caros del mundo, junto con enormes recursos tanto dentro del chip como en chips y sistemas circundantes agregados, todo diseñado para admitir la alimentación de ese conjunto increíblemente rápido de núcleos de CPU. .


Cambie ahora a incrustado.

¿Vas a incluso "ir allí"? ¿Quién usaría tus partes? ¿Tienen las herramientas para usarlos en su laboratorio? (¿Cada pieza a veces cuesta $ 100k?) ¿Tienen las habilidades?

Es bastante fácil para la mayoría de las personas hacer una tarjeta de circuito que funcione bien en 10 megahercio . Las reglas de diseño no son terriblemente difíciles y las herramientas que necesita son modestas.


Por supuesto, está lo obvio. Volumen, también. Esto ayuda a pagar todo el trabajo requerido. Pero, francamente, este es un argumento más débil porque también se fabrican muchos de los chips integrados simples. Quizás "beneficio" podría ser una mejor medida aquí.

Pero se trata más de vender al por menor. Los consumidores regulares compran estas computadoras rápidas una a la vez y no pueden obtener "precios al por mayor". Pagan lo suficiente para pagar las ganancias de los distribuidores grandes, las ganancias de los distribuidores más pequeños, las ganancias de las tiendas minoristas, etc. Todo eso financia una gran cantidad de infraestructura de apoyo. Y también paga por esas herramientas y los conjuntos de habilidades para usarlas.

En comparación, un aficionado podría pagar $ 1 por una MCU Microchip integrada, pegarla en una placa protoboard, programarla con herramientas de compilación gratuitas y usar bibliotecas gratuitas.

Creo que somos increíblemente afortunados con lo que tenemos disponible. Y además, no quiero ni PENSAR en lo que necesitaría gastar aquí (ni en la capacitación adicional que necesitaría) para manejar procesadores integrados de GHz.


¿Línea de fondo? ¿Cómo planearía usar una MCU de 3 GHz, incluso si tuviera una? ¿Podría pagar el precio requerido para brindar todo el apoyo necesario solo para alimentarlo? Flash es muy lento en comparación con una MCU de este tipo. Entonces, necesitaría mucho hardware de soporte interno (caché, predicción, ejecución fuera de orden, ......) ¿Pagaría por todo ese espacio de matriz? ¿En realidad? ¿Solo para hacer parpadear un LED usando uno?

¿Cómo usarías exactamente algo tan rápido en un protoboard?

Realmente necesitas pensar en esto. Sea lo que sea, tiene que funcionar tanto para el fabricante como para ti. Y tiene que haber algún valor entregado al usuario final por el que el usuario final pague lo suficiente para que funcione para ambas partes.

En este momento, mientras ese acto de equilibrio siempre está en movimiento, ha encontrado un punto de equilibrio razonable en el mercado. Y estoy bastante impresionado de cuánto nos están dando por unos pocos centavos.

Estoy más que impresionado. Estoy atónito. En este momento, junto a mí, hay una placa de pruebas con un PIC16 (32MHz) y 128k de RAM que ni siquiera estoy usando, pero que dejé allí, que eran las especificaciones de la máquina de ensueño cuando comencé como adolescente en la década de 1980 Tacha eso, una velocidad vertiginosa como esa ni siquiera era un sueño. Y son tan baratos que dañar uno significa simplemente agarrar otro y empujarlo en el tablero.
Esta debería ser la respuesta definitiva a todas las preguntas sobre por qué no estamos diseñando demasiado cada producto: con pantallas táctiles y procesadores de GHz, cuando las Raspberry Pi son tan baratas y los microcontroladores son tan lentos

Hay dos diferencias importantes entre un microprocesador y un microcontrolador:

  1. Costo por unidad, cuando se compra a granel.
  2. El consumo de energía. Cuanto más lento es el reloj, menos energía consume.

Los microcontroladores de gama baja pueden costar solo unos pocos centavos cada uno, en la medida en que a menudo se usan para controlar juguetes baratos que solo cuestan un par de dólares al por menor.

Los microcontroladores pueden funcionar durante horas con baterías. El mismo juguete barato puede funcionar con dos pilas AA. Una computadora portátil requiere un paquete de baterías LiIon grande y costoso.

@TonyM A nadie más que a los fabricantes les importa eso. Sin embargo, podría agregar tamaño físico.
@immibis Cierto. Los pequeños microcontroladores de 8 pines son diminutos.
No estoy de acuerdo. El costo de la lista de materiales afecta directamente el precio de venta, por lo que el precio es definitivamente un problema, también para el cliente final. Lo mismo ocurre con el consumo de energía. Eso también se combina con el consumo de energía: más energía suele ser más compleja, por lo que también podría ser un factor de precio. Además, es menos probable que el mercado acepte un dispositivo integrado que consume mucha energía solo porque tiene procesadores de GHz (con una excepción impresionante, los teléfonos celulares)