是否可以在Raspberry Pi中添加RAM?


26

是否可以向Raspberry Pi 添加RAM



2
标签上标有“ pi-2”,其硬件与早期的pis不同,而ram芯片实际上是分开的。我已经更新了你的问题,以更好地反映标签,但随时回复,并删除标签,如果你不只是在谈论PI 2
亚当戴维斯

2
@ Jacobm001由于发布该文章时未发布Pi 2,所以我认为这个问题可能不会重复。
pydsigner '16

@AdamDavis标题上应该已经明确提及。否则,它是重复的。
PNDA '16

?这就是为什么允许您使用单独的答案,以便在需要时填写上下文。
Braiam '16

Answers:


29

不可以。没有方法可以将RAM添加到Pi。请参见本次讨论的raspberrypi.org论坛的更多细节,但基本上RAM和CPU是难解难分,难得连接。没有物理方法可以有效地添加RAM,除非您要开始酸剥离CPU芯片,将显微镜拿出并追踪微米级的烙铁。


4
请参阅此处以快速了解它们之间的“紧密连接”。
goldilocks

3
Pi 2有一个单独的RAM芯片,这个问题上的标签是Pi 2的。您的答案对早期的Pi版本是好的,但是它适用于Pi 2吗?
亚当·戴维斯

3
我正在对此进行调查-这显然令人难以置信。该内存芯片是168球SMD,比我的缩略图小一些。我可以肯定地说,试图把旧的和新的放在一起是没有意思的。joan的答案也许可以更准确地涵盖该用例-即使您可以物理处理该芯片,也不会有任何区别。每个SoC都已用尽。
goobering's

3
您可以添加一个SSD并将其用作交换。第二件事
Darth Egregious

2
虽然卸下存储芯片肯定是“无聊的”,但它应该具有正确的设备和技能(在pi2上比pi1上容易)。真正的问题是SoC无法支持更大的功能。
彼得·格林

12

没有。

通常,每个Pi型号都已经安装了最大支持的RAM。

某些早期的模型B仅具有256MB,而可以具有512MB。但是,不破坏主板就无法更新RAM芯片(除非您有专门的实验室)。


Pi 3也是如此吗?
PythonNut

@PythonNut是的,Pi2和Pi3已安装最大1GB。
2016年

这里不是要判断极端情况,而是如果Pi3上的当前1GB内存不足,并且您可能无法与其他Pi3共享负载,则您可能做错了……
WorseDoughnut

不,这取决于您要执行的操作。例如,如果您想将其用于某些服务器应用程序,则需要更多RAM可能是完全正常的。
亚历克西斯·杜夫洛诺伊

5

从理论上讲,在256MB Pi上,应该可以用512MB Pi替换该芯片,但这并不容易。您必须仔细加热PoP堆栈,然后以某种方式将处理器与ram芯片分开。然后清理一堆旧球,并焊接新的ram芯片。

还有一个问题是固件是否可以应对,512MB型号的ID代码与256MB型号的SoC上的OTP刻录的ID代码不同,而且我不确定如果情况不匹配,引导代码是否可以正常工作。

在基于512MB BCM2835的pis上,无法升级,该内存控制器设计为支持1GB,但是存在一个错误,使该控制器无法在该大小下正常工作。

在树莓派2 Mdoel B和树莓派3 B型1GB的限制上,Soc中的总线结构和内存控制器的设计根本不支持更多。

如果我们看到基于512MB BCM2837的Pi(例如Raspberry pi 3模型A),那么我希望理论上可以升级到1GB,但是再次需要进行BGA返工(尽管您不会享受PoP的乐趣),但我没有不知道是否会有固件问题。


3

如果其他人指出,如果SoC可以支持更多功能,那么设计人员可能会包括更多的内存。不过,还有一个更重要的原因:成本控制。

512M和1G之间此类产品的价格差在1美元以下;两者的价格都在5美元左右。即使是该类别的8G IC也在14美元左右,所以您可能会认为,大不了,价格有些上涨。没那么简单。

3个零售价为40美元;其BOM可能低于15美元,因此,即使多花一点钱,也会对零售价格产生很大的影响。尽管有些人可能会花更多的钱购买更昂贵的pi,但仅提供两个版本就增加了成本(设计,测试,分发,库存等),而40美元的1G型号可能不得不以45美元的价格出售。您和我可能不在乎,但这确实对Pi瞄准的教育市场产生了很大的影响。

同样,当预算有限时,您必须决定要包含的内容。我想,比起有了额外的内存,在3上安装wifi和bt会更快乐。您的体验可能会有所不同,但到目前为止,我从来不需要更多的内存,但是我使用pi进行的所有操作都需要WiFi,因此,我喜欢在WiFi软件狗上节省5美元。

如果您绝对需要更多的内存,那么还有其他(更昂贵的)选择!


2

您无法将RAM添加到树莓派,但树莓派群集是另一回事

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

更新:

由于有人要求,我将总结以上链接。尽管我本人并不熟悉这些细节,但是似乎可以“连接”树莓派。

“ Kiepert运行了高性能Linpack(HPL),这是他家用计算机上的标准超级计算机基准,发现他的RPiCluster及其32个Broadcom BCM2708 ARM11处理器运行在1GHz和14.6GB可用RAM上,HPL的峰值性能为10.13。 GFLOPS”


欢迎来到Raspberry Pi!尽管从理论上讲这可以回答问题(但实际上,答案仅与问题相切),但最好在此处包括答案的基本部分,并提供参考链接。
加尼玛

2

如果只需要更多内存即可工作,并且运行Linux发行版,则可以扩大交换空间。为此,请按照http://www.thegeekstuff.com/2010/08/how-to-add-swap-space/中的说明进行操作。在我的Rasp上,我找到了一个swapfile,/var/swap但这只是100 MB。所以我换了一个更大的。现在我的Rasp有1 GB RAM和4 GB交换空间。

如果确实需要交换,则速度会降低。在正常操作中,这不会影响性能。在此处查看en.wikipedia.org/wiki/Swappiness了解更多信息。如果您需要短时间的内存或内存高峰,则应使用此解决方案。交换到SSD会缩短SSD的寿命。提醒您,交换并非旨在扩大用于常规操作的内存。

如果您永久寻求更多的RAM和速度,请访问http://www.digitaltrends.com/computing/c2-offers-competitive-specs-to-raspberry-pi/


关于下面的讨论,一些示例用例,在这种情况下,我宁愿交换而不是更改硬件:

  1. 在目标上构建软件。这里有两种可能性:

    1. 使用单核减少所需的内存量。在我的示例中,经过9小时45分钟,这导致了370 MB的峰值内存使用。

    2. 使用并行构建。在我的示例中,经过4小时30分钟后,这导致了1400 MB的峰值内存使用量。但是在将近98%的时间中,已用内存低于1024 MB。

  2. 一个具有繁重的初始化过程的应用程序:众所周知,应用程序的主要部分需要的内存比现有RAM少,但是初始化例程(仅在程序生命周期发生一次)具有更大的内存峰值,因此交换是一种合适的方法处理内存需求。

要检查硬件要求,可以使用:

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

这给你这些信息

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

1
RPi已经很慢。放掉它会使其变慢。
Thomas Weller

到目前为止,一切正确。但是在某些情况下,内存比速度更重要。以我为例:因为没有足够的内存,所以我必须构建大量的源代码和构建片段。所以我扩大了交换空间。并且只有在确实需要交换时,速度才会降低。在正常操作中,这不会影响性能。在此处查看en.wikipedia.org/wiki/Swappiness了解更多信息。
Alex44 '16

您真的需要基于RPi本身吗?您是否不想在更快的系统上进行交叉编译?
托马斯·韦勒

最后是应用程序性能的问题。如果是实时应用程序,则crossbuild-essential-armel在目标设备上使用或架子的编译器会有所不同。但是,就构建性能而言,交叉构建当然是有意义的。
Alex44 '16

这是一个很好的答案-您向我提出了要求,我不喜欢交换。尽管这不是一个精确的答案,但它对更多的人可能比其他一些人更具务实的价值……
goldilocks
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.