É possível adicionar RAM ao Raspberry Pi?

26

É possível adicionar RAM a um Raspberry Pi?

Dortík
fonte
10
Possível duplicação de É possível instalar um chip de RAM maior no Raspberry Pi?
27916 Jacobd001
2
A etiqueta diz "pi-2", que possui um hardware diferente do que o pis anterior, e o chip ram é, de fato, separado. Eu atualizei a sua pergunta para refletir melhor a tag, mas fique à vontade para revertê-lo e remover a tag se você não está falando apenas sobre a PI 2.
Adam Davis
2
@ Jacobm001 Como o Pi 2 não foi lançado quando a publicação foi feita, acho que essa pergunta pode não ser uma duplicata.
precisa saber é o seguinte
@AdamDavis Deveria ter sido mencionado explicitamente no título. Caso contrário, é uma duplicata.
PNDA
Wut? É por isso que você pode ter respostas separadas, para preencher o contexto, se necessário.
Braiam

Respostas:

29

Não. Não existe um método pelo qual a RAM possa ser adicionada ao Pi. Veja esta discussão nos fóruns raspberrypi.org para obter mais detalhes, mas basicamente a RAM e a CPU estão inextricavelmente conectadas inacessivelmente. Não existe um método físico pelo qual a RAM possa ser útil, a menos que você queira iniciar a remoção de ácido do chip da CPU, retirando o microscópio e rastreando um ferro de solda à escala de micrômetro.

goobering
fonte
4
Veja aqui uma rápida ilustração de quão "inextricavelmente conectados" eles são.
goldilocks
3
O Pi 2 possui um chip de RAM separado, e a tag dessa pergunta é para o Pi 2. Sua resposta é válida para versões anteriores do Pi, mas se aplica ao 2?
21416 Adam Davis
3
Estou analisando isso - certamente parece profundamente implausível. O chip de RAM é um SMD de 168 bolas e é um pouco menor que a minha miniatura. Eu poderia dizer com razoável certeza que não vai ser nada divertido tentar tirar a velha e a nova. a resposta de joan talvez cubra esse caso de uso com mais precisão - mesmo se você pudesse lidar fisicamente com o chip, isso não faria diferença. Cada SoC já está no máximo.
goobering
3
Você pode adicionar um SSD e usá-lo como swap. Próxima melhor coisa.
Darth Egregious
2
Embora remover o chip de memória certamente não seja "divertido", deve ser feito com o equipamento e as habilidades corretas (e mais fácil no pi2 do que no pi1). A verdadeira questão é que o SoC não suporta nada maior.
Peter Green
12

Não.

Geralmente, cada modelo Pi já foi equipado com a quantidade máxima de RAM suportada.

Alguns dos primeiros modelos B tinham apenas 256 MB e poderiam ter 512 MB. No entanto, não haveria maneira de atualizar o chip de RAM sem destruir a placa (a menos que você tivesse um laboratório especial).

joan
fonte
Isso também é verdade para o Pi 3?
precisa saber é o seguinte
@PythonNut Sim, o Pi2 e o Pi3 têm o máximo de 1 GB já instalado.
Joan
Não para casos extremos juiz aqui, mas se a corrente de 1GB em um Pi3 não é suficiente, e você não pode compartilhar a carga com outro Pi3, provavelmente você está fazendo errado ...
WorseDoughnut
Não, depende do que você está tentando fazer. Por exemplo, se você quiser usá-lo para alguns aplicativos de servidor, pode ser perfeitamente normal desejar mais RAM.
Alexis Dufrenoy
5

Em um Pi de 256 MB, teoricamente, seria possível substituir o chip por um de 512 MB, mas não seria fácil. Você precisaria aquecer cuidadosamente a pilha PoP e, de alguma forma, separar o processador do chip ram. Depois limpe a bagunça das bolas velhas e solde o novo chip de memória RAM.

Há também a questão de saber se o firmware suportaria, os modelos de 512 MB têm códigos de identificação diferentes gravados no OTP no SoC dos modelos de 256 MB e não tenho certeza se o código de inicialização funcionaria corretamente se as coisas não coincidissem.

No pis baseado em BCM2835 de 512 MB, nenhuma atualização é possível, o controlador de memória foi projetado para suportar 1 GB, mas houve um erro que o impedia de funcionar adequadamente naquele tamanho.

No raspberry pi 2 Mdoel B e raspberry pi 3 modelo B 1GB é o limite, o design da estrutura de barramento e do controlador de memória no Soc simplesmente não suporta mais.

Se virmos um Pi baseado em BCM2837 de 512 MB (por exemplo, um Raspberry pi 3 modelo A), espero que uma atualização para 1 GB seja teoricamente possível, mas novamente o retrabalho BGA seria necessário (embora você não se divirta com o PoP) e eu não saber se haveria problemas de firmware.

Peter Green
fonte
3

Se o SoC pudesse suportar mais, os designers provavelmente teriam incluído mais memória, como outros apontaram. Há uma razão muito mais importante: controle de custos.

A diferença de preço, para esse tipo de peça, entre 512M e 1G está abaixo de US $ 1; ambos custam cerca de US $ 5. Mesmo um IC 8G nessa categoria custa US $ 14, então você pode pensar, grande coisa, aumentar um pouco o preço. Não é tão simples assim.

Os 3 são vendidos por US $ 40; sua lista técnica está provavelmente abaixo de US $ 15, portanto, mesmo um dólar extra impactaria significativamente o preço de varejo, em termos percentuais. E embora algumas pessoas possam comprar um pi mais caro por mais dinheiro, apenas disponibilizar duas versões aumenta os custos (design, teste, distribuição, estoque, etc.), e seu modelo 1G de US $ 40 pode ter que ser vendido por US $ 45. Você e eu talvez não nos importemos, mas isso faz uma grande diferença no mercado educacional, para o qual o Pi é direcionado principalmente.

Além disso, quando você trabalha com um orçamento restrito, precisa tomar decisões sobre o que incluir. Eu, por exemplo, estou muito mais feliz em ter wifi e bt nos 3 do que estaria com memória extra. Sua experiência pode variar, mas até agora eu nunca precisei de mais memória, mas tudo que usei o pi precisa de WiFi, então me poupou US $ 5 em um dongle wifi foi uma escolha que eu gosto.

Se você precisar de mais memória do que isso, existem outras opções (mais caras) por aí!

JayEye
fonte
2

Você não pode adicionar RAM a um raspberry pi, mas os clusters de raspberry pi são outra coisa

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

ATUALIZAR:

Como alguém solicitou, vou resumir o link acima. Embora eu próprio não esteja familiarizado com os detalhes, parece que é possível "conectar" Pi (s) de framboesa.

"Kiepert executou o High Performance Linpack (HPL), a referência padrão de supercomputador em seu computador caseiro e descobriu que seu RPiCluster com seus 32 processadores Broadcom BCM2708 ARM11 em execução tem 1GHz e 14,6GB de RAM utilizável, com um desempenho máximo de HPL de 10,13 GFLOPS "

Aung Khant Ko
fonte
Bem-vindo ao Raspberry Pi! Embora isso possa teoricamente responder à pergunta (na verdade, porém, a resposta é apenas tangencial à pergunta), seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
Ghanima
2

Se você precisar apenas de mais memória para trabalhar e executar uma distribuição Linux, é possível aumentar a troca. Para isso, siga as instruções aqui http://www.thegeekstuff.com/2010/08/how-to-add-swap-space/ . No meu Rasp, encontrei um arquivo de troca para ela, /var/swapmas este é apenas 100 MB. Então substituí-o por um maior. Agora meu Rasp tem 1 GB de RAM e 4 GB de swap.

A velocidade diminui se a troca for realmente necessária. Em operação normal, isso não afeta o desempenho. Dê uma olhada aqui en.wikipedia.org/wiki/Swappiness para mais informações. Esta solução deve ser usada se você precisar de memória por pouco tempo ou com picos de memória. Trocar para o SSD diminui a vida útil do SSD. Lembre-se de que a troca não se destina a aumentar a memória para uso normal.

Se você procurar permanentemente mais RAM e velocidade, consulte aqui http://www.digitaltrends.com/computing/c2-offers-competitive-specs-to-raspberry-pi/ .


Em relação à discussão abaixo, alguns exemplos de casos de uso, nos quais eu preferiria trocar ao invés de mudar de hardware:

  1. Crie software no alvo. Aqui existem duas possibilidades:

    1. Usando um único núcleo para reduzir a quantidade de memória necessária. No meu exemplo, isso leva a um pico de uso da memória de 370 MB por um tempo decorrido de 9h 45min.

    2. Usando construção paralela. No meu exemplo, isso leva a um pico de uso de memória de 1400 MB por um tempo decorrido de 4h 30min. Mas em quase 98% desse tempo a memória usada está abaixo de 1024 MB.

  2. Um aplicativo com um processo de inicialização pesado: então, sabe-se que a parte principal do aplicativo precisa de menos que a RAM existente, mas a rotina de inicialização - que ocorre apenas uma vez na vida do programa - tem alguns picos de memória maiores, a troca é uma maneira apropriada de lidar com a necessidade de memória.

Para examinar os requisitos de hardware, você pode usar:

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

isso fornece essas informações

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
fonte
11
O RPi já está lento. Deixá-lo trocar tornará ainda mais lento.
Thomas Weller
Até aqui tudo bem. Mas, em alguns casos, a memória é mais importante que a velocidade. Para mim, por exemplo: eu tenho que criar uma grande quantidade de fontes e a compilação rasga porque não há memória suficiente. Então eu amplio a troca. E a velocidade só diminui se a troca for realmente necessária. Em operação normal, isso não afeta o desempenho. Dê uma olhada aqui en.wikipedia.org/wiki/Swappiness para mais informações.
precisa saber é
Você realmente precisa desenvolver o próprio RPi? Você não deseja cruzar a compilação em um sistema mais rápido?
22616 Thomas Weller
É uma questão de desempenho do aplicativo no final. No caso de um aplicativo em tempo real, é diferente usar um crossbuild-essential-armelou o compilador da prateleira no dispositivo de destino. Mas em relação ao desempenho da compilação, pode fazer sentido cruzar a compilação, é claro.
precisa saber é
Esta é uma boa resposta - você fez o meu caso e eu não sou fã de trocas. Embora não seja uma resposta precisa à pergunta, ele provavelmente tem um valor mais pragmática para mais pessoas do que alguns dos outros ...
goldilocks