40 votos

¿Por qué los microcontroladores tienen tan poca RAM?

Quizá sea más un problema de percepción, pero parece que los microcontroladores han avanzado a pasos agigantados en los últimos 20 años, en casi todos los aspectos, mayor velocidad de reloj, más periféricos, mayor facilidad de depuración, núcleos de 32 bits, etc.

Todavía es común ver RAM en los 10's de KB (16/32 KB).

No parece que pueda ser un problema de coste o tamaño directamente. ¿Es un problema de complejidad con el controlador de RAM por encima de algún umbral?

¿O es que generalmente no se requiere?

Revisando una matriz de piezas en un popular proveedor de Internet, veo una Cortex M4 con 256 KB por menos de 8 dólares, y luego por unos pocos dólares más puedes encontrar algunos más que no tienen ROM, pero parece bastante escaso...

No tengo exactamente la necesidad de un microcontrolador con un MB de almacenamiento volátil, pero parece que alguien podría...

2voto

jose.angel.jimenez Puntos 1064

Todas las razones ya mencionadas son, por supuesto, técnicamente válidas y precisas. Sin embargo, no hay que olvidar que la electrónica es una negocio y MCU es uno de los nichos de mercado más competitivos dentro de la industria electrónica.

Me atrevo a decir que las razones reales para vincular el precio de una MCU a la cantidad de SRAM incorporada son principalmente razones de marketing, no de coste:

  • En la mayoría de los diseños, la máxima frecuencia de reloj alcanzable no es el factor limitante. En su lugar, lo es la cantidad de SRAM disponible. Sin embargo, no me malinterpretes, la frecuencia de la CPU es enormemente importante, dentro de un determinado segmento de la familia MCU En la actualidad, no se suelen ofrecer diferentes modelos de dispositivos a diferentes precios en función de la frecuencia máxima de la CPU. Además, el almacenamiento de programas en Flash es el otro factor limitante clave, sin embargo, no me centraré demasiado en Flash (la pregunta está dirigida específicamente a la SRAM).

  • La cantidad de SRAM disponible está directamente relacionada con el nivel de complejidad que podrás integrar en tu MCU, ya sea con librerías de terceros o con tu propio código desplegado. Por tanto, es una métrica "natural" para segmentar y basar los precios de las MCU. Es comprensible que un cliente técnico acepte que una MCU capaz de realizar tareas más complejas (más SRAM, más almacenamiento Flash) debería costar más. El precio, en este caso, es un reflejo del valor subyacente (la capacidad de entrega) de la MCU. El almacenamiento flash suele ofrecerse en una cantidad proporcional a la SRAM.

  • Por el contrario, si tomamos el mercado de las CPUs para ordenadores de sobremesa y móviles, normalmente no se puede encontrar una MCU/CPU específica con muchos tamaños diferentes de SRAM. En su lugar, el esquema de precios suele basarse en las capacidades de ejecución/rendimiento de la MCU/CPU: frecuencia, número de núcleos, eficiencia energética...

1voto

user56328 Puntos 111

Así que primero hay que tener en cuenta que 16 KB o 32 KB son una cantidad enorme de memoria y la mayoría de los microcontroladores que se venden hoy en día no tienen cantidades tan grandes de RAM.

Muchos programas de microcontroladores necesitan 10 o 50 Bytes de memoria. Incluso los más complejos necesitan sobre todo cientos de Bytes.

Básicamente hay tres casos de uso en los que se necesita una memoria RAM del orden de los KBytes: a) Cuando tu microcontrolador hace gráficos b) cuando usas el microcontrolador para grandes cálculos arbitrarios c) cuando se interactúa con interfaces de PC

En segundo lugar hay que tener en cuenta que si se habla de la RAM del microcontrolador se habla de la caché de nivel 0 / nivel 1. Si consideras que un Intel Haswell tiene "sólo" 64 KByte de caché de Nivel 1 te replantearás el tamaño de la RAM de un microcontrolador.

En tercer lugar, se puede conectar cualquier cantidad de RAM externa a un microcontrolador, sobre todo más de lo que se puede conectar a una CPU.

Personalmente estoy desarrollando muchas aplicaciones de microcontroladores y nunca he necesitado 1 KB de memoria ni siquiera más. Tampoco he utilizado nunca una RAM externa.

Las cosas son diferentes si llegamos a la ROM (hoy en día Flash), ya que su programa y datos están en la ROM. Realmente hay muchas aplicaciones en las que adjuntas una ROM externa a tu microcontrolador, porque tienes muchos datos.

Examinemos un ejemplo: Analicemos una aplicación de microcontrolador y tomemos un reproductor de MP3 portátil con pantalla y 4 gigabytes de Flash.

Para esta aplicación necesitas quizás 1 KB de RAM. Eso es suficiente para hacer el trabajo. Sin embargo, podrías usar algo más de memoria RAM para tener búferes más grandes y acelerar la escritura de USB a Flash.

Ahora ves la diferencia: Un PC típico guarda todos los programas y datos en la memoria RAM. Por lo tanto, necesita mucha RAM. Para el microcontrolador todo está en la Flash/ROM.

-1voto

Sempie Puntos 117

Al diseñar una MCU, hay que afrontar condiciones que no son tan importantes en los PC.

  1. Durabilidad

    Para elegir los componentes, no hay que tomar necesariamente las mejores piezas o las de mayor rendimiento, sino aquellas que han demostrado funcionar correctamente después de varios años de uso, estarán disponibles durante varios años y son capaces de funcionar 24 horas al día durante años. Debido a esta circunstancia, si un controlador está en el mercado durante varios años, haciendo su trabajo bien, parece tener una pobre RAM, en comparación con el estándar de PC hoy en día. Pero de todos modos, hace su trabajo bien, y no debería haber necesidad de reemplazo, si la ingeniería estaba bien.

  2. Espacio

    Los microprocesadores son literalmente micros. Hay que reducir el espacio necesario al mínimo absoluto. Por supuesto, se puede conseguir un 256 MB con el mismo espacio que los chips de 64 KB de hace 10 años. Aquí es donde el número 1 entra en juego.

  3. Precio

    No sólo el precio de compra, sino también el consumo de energía. No querrás diseñar una MCU que tenga control sobre un sistema de entrada, que necesite 1000 W, si tu rival en el negocio tiene una que sólo necesita 25 W. Y, por supuesto, un precio de compra más barato (con la misma calidad) siempre es mejor.

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