¿Cómo se conectan las MCU y la RAM para el acceso programático?

Soy nuevo en la electrónica y la programación de microcontroladores y necesito confirmación de que mi comprensión de algunos elementos es correcta, ¡o necesito desesperadamente una corrección en ellos!

Tengo un servidor basado en C que requiere unos 2 GB de RAM para funcionar correctamente. Estoy interesado en ver si hay alguna forma de actualizar este programa a una MCU basada en ARM, como Raspberry Pi o STM32. Si mi comprensión de los componentes de MCU es correcta, Raspberry Pi simplemente no puede manejar esta demanda de RAM, porque es un chip Broadcom/ARM adherido a un SoC con circuitos integrados de memoria fijos.

Sin embargo , también tengo entendido que los no SoC, como el STM32, se pueden conectar a cualquier tipo de chip de memoria. Encontré estas tarjetas de memoria de 4 GB y me pregunto si es posible colocar una de estas en una PCB junto con una MCU basada en ARM, lo que permite que el chip ARM ejecute un programa muy grande.

Entonces pregunto: ¿es esto posible de hacer? Si no, ¿ por qué ? ¿Cómo son incompatibles entre sí? Si es así, ¿cómo se conectan normalmente? ¿Un ingeniero mira las hojas de datos de ambos chips y descubre el cableado/IO entre ellos?

Supongo que al final del día, me pregunto por qué no hay más MCU con una gran memoria; y estoy pensando que es porque la mayoría de los programas integrados/MCU no necesitan tanta memoria, o porque, por alguna razón, no pueden.

Si bien ciertamente hay chips ARM diseñados para memoria externa, la serie STM32 no es realmente un ejemplo; por lo general, tienen unas pocas decenas de K de RAM en el chip, y hablar fuera del chip implicaría compromisos reales. Puede buscar placas de desarrollo basadas en chips de teléfonos inteligentes moderadamente actuales, pero no está claro si ahorraría dinero en una placa base de PC de factor de forma pequeño.

Respuestas (3)

La respuesta es economía.

Los procesos óptimos para la CPU y la RAM son diferentes, por lo que cuando ambos están en el mismo chip, se debe encontrar algún compromiso. Para un chip pequeño (sin tanta RAM), esto no duele tanto, menos que agregar una RAM externa y usar muchos pines IO para conectarse. Para una memoria RAM grande (actualmente, el cambio parece estar en ~ 100 Kb), tiene más sentido colocar la CPU y la RAM en diferentes chips. La fabricación de memorias RAM grandes es un negocio de gran volumen muy especializado, por lo que es mejor utilizar lo que hay en el mercado que desarrollar un nuevo chip.

La RAM a la que se vincula es un módulo de RAM dinámico DDR3 estilo PC. Dicho módulo tiene una interfaz específica que no es compatible con las (antiguas) líneas de dirección estándar + líneas de datos + bus de control que se encuentran en la mayoría de las MCU. Creo que necesitarías un chip de pegamento (puente) para hacer esa conexión. Y sí, los ingenieros leen las especificaciones y hacen el cableado (incluidos los chips de pegamento necesarios, las fuentes de alimentación, la sincronización cuidadosa, etc.). Esto puede sonar simple, pero no lo es.

Los módulos DRAM necesitan un controlador de memoria para activar actualizaciones y arbitrar el acceso. Ese controlador tiene un costo en bienes raíces de obleas, consumo de energía y número de pines.

Los módulos SRAM existen, pero pierden frente a DRAM tanto en capacidad (las celdas SRAM necesitan 6 transistores frente a un transistor y un condensador de DRAM) como en economía (menor demanda = mayor costo). Pero es mucho más fácil interactuar con ellos y casi todas las familias de MCU tienen al menos un dispositivo con un bus de memoria externo simple.

Con 2 GB, eso dejó de ser "micro" (en la actualidad). Hay muchos teléfonos que se envían con menos que eso. ¿Estás seguro de que realmente tienes 2 Gb de datos en vivo? ¿Puedes cambiarlo a Flash? ¿Qué diablos está haciendo?

Eche un vistazo a ¿Cuál es una buena opción para que un ARM interactúe con la memoria externa? - pero creo que su mejor opción es obtener una computadora de placa única de algún tipo.

Puede obtener SoC con interfaces DRAM. Suelen no estar disponibles en pequeñas cantidades y en paquetes BGA.