¿Es posible agregar RAM a Raspberry Pi?

26

¿Es posible agregar RAM a una Raspberry Pi?

Dortík
fuente
2
La etiqueta dice "pi-2", que tiene un hardware diferente al del pis anterior, y el chip ram es, de hecho, separado. He actualizado su pregunta para reflejar mejor la etiqueta, pero siéntase libre de revertirla y eliminar la etiqueta si no está hablando solo del PI 2.
Adam Davis
2
@ Jacobm001 Dado que Pi 2 no se lanzó cuando se realizó esa publicación, creo que esta pregunta podría no ser un duplicado.
pydsigner
@AdamDavis Debería haberse mencionado explícitamente en el título. De lo contrario, es un duplicado.
PNDA
Wut? Es por eso que se le permite tener respuestas separadas, para llenar el contexto si es necesario.
Braiam

Respuestas:

29

No. No hay ningún método por el cual se pueda agregar RAM a la Pi. Vea esta discusión en los foros de raspberrypi.org para más detalles, pero básicamente la RAM y la CPU están inextricablemente conectadas de manera inaccesible. No existe un método físico por el cual se pueda agregar RAM de manera útil, a menos que desee comenzar a eliminar el ácido del chip de la CPU, sacar el microscopio y rastrear un soldador a escala micrométrica.

goobering
fuente
44
Vea aquí una ilustración rápida de cuán "inextricablemente conectados" están.
Ricitos de oro
3
El Pi 2 tiene un chip RAM separado, y la etiqueta en esta pregunta es para el Pi 2. Su respuesta está bien para versiones anteriores de Pi, pero ¿se aplica al 2?
Adam Davis
3
Estoy investigando eso, ciertamente parece muy inverosímil. El chip RAM es un SMD de 168 bolas, y es un poco más pequeño que mi miniatura. Podría decir con certeza razonable que no será divertido tratar de quitar el viejo y el nuevo. La respuesta de Joan tal vez cubra este caso de uso con mayor precisión: incluso si pudiera manejar físicamente el chip, no habría ninguna diferencia. Cada SoC ya está al máximo.
goobering
3
Puede agregar un SSD y usarlo como intercambio. Siguiente mejor cosa.
Darth Egregious
2
Si bien eliminar el chip de memoria ciertamente no sería "divertido", debería ser posible con el equipo y las habilidades adecuadas (y más fácil con el pi2 que con el pi1). El verdadero problema es que el SoC no puede soportar nada más grande.
Peter Green
12

No.

En general, cada modelo de Pi ya ha sido equipado con la cantidad máxima de RAM admitida.

Algunos de los primeros modelos B solo tenían 256 MB y podrían haber tenido 512 MB. Sin embargo, no habría forma de actualizar el chip RAM sin destruir la placa (a menos que tenga un laboratorio especial).

joan
fuente
¿Esto también es cierto para el Pi 3?
PythonNut
@PythonNut Sí, las Pi2 y Pi3 ya tienen instalado el máximo de 1 GB.
joan
No para juzgar casos extremos aquí, pero si el actual 1GB en un Pi3 no es suficiente, y no puede compartir la carga con otro Pi3, probablemente lo esté haciendo mal ...
WorseDoughnut
No, depende de lo que intentes hacer. Por ejemplo, si quisiera usarlo para algunas aplicaciones de servidor, podría ser perfectamente normal querer más RAM.
Alexis Dufrenoy
5

En un Pi de 256 MB, en teoría debería ser posible reemplazar el chip por uno de 512 MB, pero no sería fácil. Tendría que calentar cuidadosamente la pila de PoP y luego de alguna manera separar el procesador del chip ram. Luego, limpie el desorden de las bolas viejas y suelde el nuevo chip ram.

También está la cuestión de si el firmware funcionaría, los modelos de 512 MB tienen códigos de identificación diferentes grabados en la OTP en el SoC de los modelos de 256 MB y no estoy seguro de si el código de arranque funcionaría correctamente si las cosas no coinciden.

En 512 MB de BCM2835 basado en pis no es posible la actualización, el controlador de memoria fue diseñado para admitir 1 GB, pero hubo un error que impidió que funcionara correctamente en ese tamaño.

En The raspberry pi 2 Mdoel B y raspberry pi 3 modelo B 1GB es el límite, el diseño de la estructura del bus y el controlador de memoria en el Soc simplemente no admite más.

Si vemos un Pi basado en BCM2837 de 512 MB (por ejemplo, un Raspberry pi 3 modelo A), entonces espero que una actualización a 1 GB sea teóricamente posible, pero nuevamente se necesitaría un reprocesamiento de BGA (aunque no te divertirías con PoP) y yo no No sé si habría problemas de firmware.

Peter Green
fuente
3

Si el SoC pudiera soportar más, los diseñadores probablemente habrían incluido más memoria, como señalaron otros. Sin embargo, hay una razón mucho más importante: el control de costos.

La diferencia de precio, para ese tipo de parte, entre 512M y 1G es inferior a USD 1; ambos cuestan alrededor de USD 5. Incluso un IC 8G en esa categoría cuesta alrededor de USD 14, por lo que podría pensar, gran cosa, subir un poco el precio. No es tan simple.

Los 3 minoristas por USD40; su lista de materiales probablemente sea inferior a $ 15, por lo que incluso un dólar adicional impactaría significativamente el precio minorista, en términos de porcentaje. Y aunque algunas personas pueden comprar un pi más caro por más dinero, el simple hecho de tener dos versiones disponibles aumenta los costos (diseño, prueba, distribución, almacenamiento, etc.), y su modelo 1G de $ 40 podría tener que venderse por $ 45. Es posible que a usted y a mí no nos importe, pero eso marca una gran diferencia en el mercado educativo, al que apunta principalmente el Pi.

Además, cuando trabaja con un presupuesto limitado, debe tomar decisiones sobre qué incluir. Yo, por mi parte, estoy mucho más feliz de tener wifi y bt en el 3 de lo que estaría con memoria extra. Su experiencia puede variar, pero hasta ahora nunca he necesitado más memoria, pero todo lo que he usado para pi necesita WiFi, por lo que ahorrarme $ 5 en un dongle wifi fue una opción que me gustó.

Si realmente necesita más memoria que eso, hay otras opciones (más caras).

JayEye
fuente
2

No puede agregar RAM a una frambuesa pi, pero los clústeres de frambuesa pi son otra cosa

Verifique: http://www.zdnet.com/article/build-your-own-supercomputer-out-of-raspberry-pi-boards/

ACTUALIZAR:

Como alguien solicitó, resumiré el enlace de arriba. Aunque yo mismo no estoy familiarizado con los detalles, parece que es posible "conectar" la (s) frambuesa Pi (s).

"Kiepert ejecutó el High Performance Linpack (HPL), el punto de referencia estándar de la supercomputadora en su computadora casera y descubrió que su RPiCluster con sus 32 procesadores Broadcom BCM2708 ARM11 funcionando son de 1GHz y 14.6GB de RAM utilizable con un rendimiento máximo de HPL de 10.13 GFLOPS "

Aung Khant Ko
fuente
¡Bienvenido a Raspberry Pi! Si bien esto puede responder teóricamente la pregunta (de hecho, sin embargo, la respuesta es solo tangencial a la pregunta), sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
Ghanima
2

Si solo necesita más memoria para trabajar y ejecuta una distribución de Linux, es posible ampliar el intercambio. Para esto, siga las instrucciones aquí http://www.thegeekstuff.com/2010/08/how-to-add-swap-space/ . En mi Rasp encontré un archivo de intercambio, /var/swappero esto es solo 100 MB. Así que lo reemplacé por uno más grande. Ahora mi Rasp tiene 1 GB de RAM y 4 GB de intercambio.

La velocidad disminuye si realmente se necesita el intercambio. En funcionamiento normal, esto no afecta el rendimiento. Eche un vistazo aquí en.wikipedia.org/wiki/Swappiness para obtener más información. Esta solución debería usarse si necesita memoria por poco tiempo o picos de memoria. Cambiar a la SSD disminuye la vida útil de la SSD. Recuerde que el intercambio no tiene la intención de ampliar la memoria para el uso normal de la operación.

Si busca permanentemente más RAM y velocidad, debería echar un vistazo aquí http://www.digitaltrends.com/computing/c2-offers-competitive-specs-to-raspberry-pi/ .


Con respecto a la discusión a continuación, algunos ejemplos de casos de uso, en los que preferiría cambiar en lugar de cambiar el hardware:

  1. Desarrolle software en el objetivo. Aquí hay dos posibilidades:

    1. Usando un solo núcleo para reducir la cantidad de memoria necesaria. En mi ejemplo, esto lleva a un uso máximo de memoria de 370 MB por un tiempo transcurrido de 9h 45min.

    2. Usando compilación paralela. En mi ejemplo, esto lleva a un uso máximo de memoria de 1400 MB por un tiempo transcurrido de 4h 30min. Pero en casi el 98% de este tiempo la memoria utilizada está por debajo de 1024 MB.

  2. Una aplicación con un proceso de inicialización pesado: entonces se sabe que la parte principal de la aplicación necesita menos RAM que la existente, pero la rutina de inicialización, que ocurre solo una vez que la vida del programa, tiene algunos picos de memoria más grandes, el intercambio es una forma apropiada de manejar la necesidad de memoria.

Para examinar los requisitos de hardware que puede usar:

/usr/bin/time -v <program invocation>

esto te da esta información

Command being timed: "program invocation"
User time (seconds): 33164.02
System time (seconds): 1560.20
Percent of CPU this job got: 98%
Elapsed (wall clock) time (h:mm:ss or m:ss): 9:45:12
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 379092
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 354
Minor (reclaiming a frame) page faults: 47740772
Voluntary context switches: 1049855
Involuntary context switches: 482091
Swaps: 0
File system inputs: 170240
File system outputs: 3477064
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
Alex44
fuente
1
El RPi ya es lento. Dejarlo intercambiar lo hará aún más lento.
Thomas Weller
Hasta ahora todo bien. Pero en algunos casos, la memoria es más importante que la velocidad. Para mí, por ejemplo: tengo que construir una gran cantidad de fuentes y la compilación se rompe porque no hay suficiente memoria. Entonces agrando el intercambio. Y la velocidad solo disminuye si el intercambio es realmente necesario. En funcionamiento normal, esto no afecta el rendimiento. Eche un vistazo aquí en.wikipedia.org/wiki/Swappiness para obtener más información.
Alex44
¿Realmente necesitas construir sobre el RPi mismo? ¿No quieres hacer una compilación cruzada en un sistema más rápido?
Thomas Weller
Se trata del rendimiento de la aplicación al final. En el caso de una aplicación en tiempo real, es diferente usar un crossbuild-essential-armelcompilador del estante en el dispositivo de destino. Pero con respecto al rendimiento de la compilación, puede tener sentido cruzar la compilación, por supuesto.
Alex44
Esta es una buena respuesta: me hiciste el caso y no soy fanático del intercambio. Aunque no es una respuesta precisa a la pregunta, probablemente tenga un valor más pragmático para más personas que algunos de los demás ...
goldilocks