26 votos

¿Por qué son relativamente más simple de los dispositivos tales como microcontroladores mucho más lentas que la Cpu?

Dado el mismo número de canalización de las etapas y la fabricación de nodo (por ejemplo, de 65 nm) y la misma tensión, dispositivos sencillos que debe correr más rápido que los más complicados. También, la fusión de varias tuberías etapas en las que uno no debería frenar por un factor mayor que el número de etapas.

Ahora con cinco años de la CPU, la ejecución de 14 de canalización de las etapas del 2,8 GHz. Supongamos que fusiona las etapas; que se reduzca la velocidad por debajo de 200 MHz. Ahora aumentan la tensión y reducir el número de bits por palabra; que en realidad iba a acelerar las cosas.

Por eso no entiendo por qué muchos, actualmente se fabrican los microcontroladores, tales como la AVL, correr a velocidad abismal (como de 20 MHz a 5 V), aunque mucho más complicado Cpu fabricado años eran capaces de ejecutar 150x más rápido, o 10 veces más rápido que si sacas todas las etapas de pipeline en uno, en el 1,2 V-ish. De acuerdo a la más gruesa de vuelta-de-la-envoltura cálculos, microcontroladores—incluso si son fabricados utilizando límite de la tecnología obsoleta—se debe ejecutar al menos 10 veces más rápido que en una cuarta parte de la tensión que se suministra.

Por tanto, la pregunta: ¿cuáles son las razones del lento microcontrolador velocidades de reloj?

69voto

Al pacino Puntos 415

Hay otros factores que contribuyen a la velocidad.

  • Memoria: el rendimiento Real es a menudo limitada por la latencia de la memoria. Cpu Intel tienen grandes cachés para hacer esto. Microcontroladores normalmente no lo hacen. La memoria Flash es mucho más lento que la DRAM.

  • Consumo de energía: Esto es a menudo una gran oferta en aplicaciones embebidas. Real 200 MHz Cpu Intel consume más de 10 vatios (a menudo mucho más), y se necesita un gran disipador de calor y un ventilador. Que ocupa espacio y dinero, y no contar aún el exterior de la lógica y la memoria que se fue con ella. Un 20 MHz AVR toma alrededor de 0.2 vatios, que incluye todo lo que usted necesita. Esto también está relacionado con el proceso más rápido de los transistores tienden a ser leakier.

  • Condiciones de funcionamiento: Como Dmitry señala en los comentarios, muchos de los microcontroladores pueden funcionar a través de una gran tensión y el rango de temperatura. Que ATMega que he mencionado anteriormente funciona desde -40C a 85C, y puede ser almacenado en cualquier cosa, desde -65C a 150C. (Otros Mcu trabajo hasta 125C o incluso 155C.) El VCC de tensión puede ser cualquier cosa, desde 2.7 V a 5.5 V (5V +/- 10% para obtener el máximo rendimiento). Este Core i7 hoja de datos es difícil de leer, ya que recortar el permitido VCC durante la fabricación, pero el voltaje y la temperatura de las tolerancias son sin duda más estrecho -- ~3% tolerancia de tensión y 105 ℃ max temperatura de la unión. (5C mínimo, pero cuando usted está tirando de >100 amperios, las temperaturas mínimas no son realmente un problema).

  • La puerta del conde: más Simple no siempre es más rápido. Si lo fuera, Intel no necesita ninguna CPU arquitectos! No es sólo la canalización, también se necesitan cosas como un alto rendimiento de la FPU. Que eleva el precio. Un montón de gama baja Mcu han entero-sólo CPUs por esa razón.

  • Morir área de presupuesto: Microcontroladores tienen que adaptarse a una gran cantidad de funcionalidad en un dado, que a menudo incluye todos los de la memoria utilizada por la aplicación. (SRAM y confiable NI flash son bastante grandes.) PC Cpu hablar en off-chip de memoria y los periféricos.

  • Proceso: Los 5V AVRs se realizan en un antiguo y de bajo costo. Recuerde, ellos fueron diseñados desde el principio para ser barato. Intel vende productos de consumo en los márgenes altos, utilizando la mejor tecnología que el dinero puede comprar. Intel también la venta de puro CMOS. MCU los procesos de la necesidad de producir en el chip de memoria flash, que es más difícil.

Muchos de los factores antes mencionados están relacionados.

Usted puede comprar 200 MHz microcontroladores hoy (aquí un ejemplo). Por supuesto, cuestan diez veces más que aquellos de 20 MHz ATMegas...

La versión corta es que la velocidad es más complicada que la de la simplicidad, y hoteles de productos están optimizados para bajeza, no de velocidad.

26voto

introp Puntos 207

Una de las principales técnicas subyacentes razón de las velocidades lentas es que lo barato/pequeño Mcu sólo uso en el chip de memoria flash para el almacenamiento del programa (es decir, que no se ejecuta desde la RAM).

Pequeño Mcu, en general, no de la caché de memoria de programa, por lo que siempre es necesario leer las instrucciones del flash antes de ejecutarlo, cada ciclo. Esto le da determinista rendimiento y número de ciclos de funcionamiento, es sólo más barato/más simple, y evita PC-como cuestiones en las que el código y los datos se mezclan creando un nuevo conjunto de amenazas de desbordamientos de buffer, etc.

La latencia de lectura de la memoria flash (en el orden de 50-100 ns) es mucho más lenta que la lectura de SRAM o DRAM (en el orden de 10ns o abajo), y que la latencia debe incurrir cada ciclo, la limitación de la velocidad de reloj de la parte.

24voto

travis Puntos 260

¿Por qué la gente andar en bicicleta o una pequeña moto, cuando usted tiene un coche de Fórmula 1? Seguramente debe ser mejor para la unidad de decir 300 km/h y llegar a todas partes al instante?

Para ponerlo simplemente, no hay necesidad de ser más rápido que ellos. Quiero decir, seguro que hay un poco rápido y microcontroladores permiten hacer algunas cosas, pero ¿qué vas a hacer en decir una máquina expendedora que está en uso continuo para tal vez 1 hora al día? ¿Qué vas a hacer en un decir del controlador remoto para TV?

Por otro lado, tienen otras funciones importantes, como el bajo consumo de energía, siendo MUCHO más sencillo programa y así sucesivamente. Básicamente, ellos no son los procesadores y hacer cosas diferentes.

13voto

Spehro Pefhany Puntos 90994

Hay un montón de BRAZO controladores que se ejecutan en cientos de MHz o más. ¿Quién necesita un 500 MHz PIC y está dispuesto a pagar lo suficiente por parte para justificar millones de dólares máscaras para un estado-of-the-art proceso?

El popular ATmega328 es, según los informes, con 350 nm de la tecnología, que es un poco detrás de la más reciente producción de la Cpu Intel (14 nm para Skylake).

Incluso la baratito 8-bit controladores de poco a poco han ido aumentando en velocidad, y se puede obtener de 32 y 64 MHz PIC controladores (por ejemplo, PIC18F14K22) que todavía funcionan a 5 V (este último es un factor a considerar en el costo total del sistema).

Una consideración es que estos controladores tienen una arquitectura que está optimizado para los pequeños espacios de memoria y la lenta velocidad de reloj. Una vez que usted comienza a recibir altas velocidades de reloj tienes que rejig cosas con prescalers, etc.

Hubo un intento de hacerse camino de regreso (a finales de la década de 1990) para producir muy rápido PIC-como los controladores, con la idea de que el firmware se podría sustituir por los periféricos si el microcontrolador fue lo suficientemente rápido. Por ejemplo, usted podría bits-bang UART. No creo que ellos eran todo lo que comercialmente exitosa - Scenix->Ubicom->Qualcomm (game over).

3voto

Alex Andronov Puntos 178

Imaginar que uno quiere para producir automóviles. Un enfoque sería el uso de un montón de piezas de equipo en la fábrica de forma secuencial, la construcción de un coche en un momento. Este enfoque se puede hacer con una modesta cantidad de moderadamente equipo complicado, con muchas piezas de equipo puede ser utilizado para realizar más de un paso. Por otro lado, gran parte de los equipos en la fábrica todavía estaría sentado inactivo la mayor parte del tiempo.

Otro enfoque es establecer una línea de montaje, de modo que tan pronto como el equipo que manejó el primer paso de la producción se ha terminado, que la operación en el primer coche, a continuación, puede proceder a iniciar la operación correspondiente en el siguiente coche. Tratando de reutilizar una pieza de equipo en varias etapas en el proceso de fabricación sería complicado, por lo que en la mayoría de los casos sería mejor utilizar más piezas de equipo que son, cada uno optimizado para realizar una tarea muy específica (por ejemplo, si es necesario perforar 50 orificios de 10 diferentes tamaños, a continuación, una mínima configuración del equipo contaría con un taladro de 10 bits y un mecanismo de cambio rápido, pero una línea de montaje podría tener 50 ejercicios de cada uno de ellos con una permanentemente instalado bits y no hay necesidad de un cambio rápido).

Por cosas como DSPs o Gpu, es posible alcanzar velocidades muy altas relativamente barata, ya que la naturaleza del trabajo a realizar es muy consistente. Desafortunadamente, muchas Cpu necesita para ser capaz de manejar arbitraria mistures de instrucciones de diferente complejidad. Haciendo que de manera eficiente es posible, pero requiere de muy complejas de programación lógica. En muchas Cpu modernas, de la lógica necesaria para "hacer el trabajo" no es demasiado complicado o caro, pero la lógica necesaria para coordinar todo lo demás, es.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X