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.