树莓派计算模块4述评

2020-10-19 20:56:23

六年前,树莓派基金会推出了计算模块:这是广受欢迎的树莓派B型电路板的一个极小的版本。

从那时到现在,Compute Module已经有了多次版本,就像我在我的Raspberry Pi Cluster YouTube系列中使用的3+版一样,但它们都有相同的基本外形规格和非常有限的功能集。

但是今天,随着第四代计算模块--计算模块4的问世,一切都改变了!下面是与上一代计算模块3+、其他一些常见PI型号以及SD和microSD卡的大小比较(还记得最初的PI使用全尺寸SD卡的时候吗?):

我还发布了一个Compute Module4的视频评论,嵌入在下面(滚动浏览博客文章版本的评论):

计算模块4基本上是一个Raspberry PI 4型号B,所有端口都被切断。您可以使用其特殊的板对板连接器将计算模块插入另一个板,而不是端口。但是,Compute模块还有其他一些诀窍:

更快的eMMC:它有可选的板载eMMC存储,现在比我测试过的任何microSD卡都快得多。

PCI Express:它去掉了PCI Express接口的USB3.0接口,这意味着你可以做一些非常酷的事情,而不是只有几个USB3.0端口。

WiFi和u.fl:它有一个外部天线接口用于连接无线接口。那是什么?哦,是的,现在有一个版本的带蓝牙和WiFi的计算模块!

更多选项:现在有32种不同的计算模块风格可供选择,无论您是否想要板载WiFi,无论您想要eMMC存储,还是想要1 GB、2 GB、4 GB甚至8 GB的RAM!

你可以在Raspberry Pi网站上找到所有细节,但以下是亮点:

最便宜的CM4是精简版,有1 GB的内存,没有无线,也没有板载存储,售价只有25美元。

最贵的奶油版,配有WiFi、蓝牙、8 GB内存和更快的32 GB eMMC存储,售价90美元。

但是要使用计算模块4,你要么需要自己建造一块板来集成它,要么需要购买Pi Foundation的新的计算模块4 IO板,这需要额外支付35美元。这块板把你的计算模块4变成了类固醇上的PI 4,因为它有一个标准的B型PI上的所有端口,然后还有一些端口。唯一缺少的就是内置的USB3.0端口,这也是让我仔细考虑的不同之处之一。

我记得今年早些时候,埃本·厄普顿(Eben Upton)在一次播客中提到,树莓PI有一天会直接暴露它的PCIe1x接口。现在就是了!

IO板上有这个漂亮的PCIe端口,您可以插入任何PCIe设备,只要它只使用一个通道的容量即可。例如,如果您只想像在型号B上一样拥有几个USB 3.0端口,则可以插入像我使用的Syba USB 3.1 PCI Express卡那样的适配器:

或者..。如果您想要从磁盘存储中获得最先进的性能,请使用带NVMe的NVMe适配器,并享受有史以来最快的磁盘IO-至少在Raspberry PI上是这样:

我将在我的YouTube频道上发布一段视频,介绍Compute Module 4的所有新磁盘选项,因此请务必订阅我的频道,但我将在本文稍后讨论性能。

首先,我想稍微谈谈为什么计算模块是对过去版本的完全重新设计:

我在图灵PI集群评估中注意到的几件事包括,缺乏足够的电源和电路板空间来容纳PI 4塞进它的小封装中的所有功能,特别是PI 4的系统芯片的不加节流的1.5 GHz时钟。

此外,由于DIMM外形的物理限制,(至少在我看来)不可能包括所有功能,如内置天线、eMMC存储和以太网控制器芯片的WiFi。

由于所有这些原因,为了更容易地将计算模块固定到不同的主板上,使用了更专业的主板到主板的连接器。它们中有两个,每个都有100个引脚,用于将电源、IO和GPIO引脚连接到计算模块:

与CM3 Plus及更早版本相比,CM4最大的变化之一是现在包括一个板载千兆以太网控制器,因此您可以获得尽可能最佳的网络性能,而无需制造商将其包含在外部IO板上或使用外部适配器。

不过,头条新闻的特点,特别是对我来说,是PCIe插槽。但需要明确的是,这是最小的PCIe风格,只有1个通道或1x#39;个带宽可用。所以,我不想让你的泡沫破灭,但是你不可能在你的树莓圆周率上使用NVIDIA RTX 3080。它仍然不能在8K分辨率和240fps下运行你最喜欢的电脑游戏。

但是它会运行很多东西。首先,如果你喜欢USB3.0,并为这里没有USB3.0而难过,你可以买一块USB3PCIe扩展卡,但要确保它使用的是VLI VL805芯片组,否则它可能不能完全兼容Raspberry Pi OS,你就会陷入USB2.0的速度。

我实际上买了三块不同的PCIe USB3.0卡,看看它们是怎么工作的,三块卡中有两块没有为我的大多数设备提供USB3.0吞吐量。他们一直以USB2.0的速度安装驱动器,这非常烦人。

(从左至右:)第一张是ADWITS的通用PCI-Experss卡--不,我不是打字错误,盒子上是这么拼的--里面有VL805芯片,但它只按这个速度安装了我的几个USB 3.0驱动器。其他的,比如我在PI 4上测试过的最快的一个,安装在USB2.0设备上,速度很慢,但除此之外工作得很好。

我对2端口的Inateck卡寄予了更高的期望,但对上面的Fresco Logic芯片感到紧张。事实证明,它也有类似的问题,有时会以USB3.0的速度安装一些驱动器,但并不总是如此。

我测试的最好的USB3.0卡是Syba SD-PEX20199,它甚至包括一个USB Type-C插槽!它以USB3.0的速度安装我所有的设备,并且与树莓PI完美配合。只需小心插入耗电设备;由于它与IO板本身共用12V电源,因此只能接通少量电源!

我最兴奋的是NVMe的支持。我必须弄清楚,直接连接到Raspberry PI的PCIe总线上的NVMe驱动器是否会比通过USB3.0插槽连接的驱动器速度更快。

所以我把我的XPG SX6000驱动器插入这个PCIe转NVMe适配器,然后...。没什么。

我应该在这里指出,在Raspberry PI OS上没有启用开箱即用的NVMe支持。您必须运行命令modProbe NVMe-core,然后重新引导以启用NVMe内核模块。

无论如何,我可以使用命令lspci来查看来自Realtek的NVMe控制器至少可以识别,但是驱动器本身不会出现,而且我在使用dmesg:的系统日志中发现了一些奇怪的错误:

所以我买了另一个备用的NVMe光驱进行测试,三星970EVO Plus,它比XPG光驱要贵一点。我把它插进适配器,然后启动PI。

对啰!。我可以使用lsblk查看设备,所以我对其进行了格式化并挂载以供测试。

让我告诉你,它是很快的。你先在这里听到这句话。Raspberry PI计算模块4提供迄今所有Raspberry PI中最快的磁盘IO。

您可以看到,USB 3.0或NVMe驱动器的性能远远超过板载eMMC或microSD卡。对于大文件的顺序写入,固态硬盘的速度快得令人难以置信,但真正让这款PI与众不同的是获得原生NVMe性能的能力,这比连接USB 3.0的驱动器的4K性能提高了一倍多-来看看4K的随机写入速度吧!

遗憾的是,您不能将NVMe驱动器用作启动卷,至少现在还不能。我认为如果我能在一个很小的集群中使用几个带有NVMe驱动器的LiteCM4,那就太棒了,这绝对会让我在今年早些时候构建的图灵PI集群大吃一惊。

说到这里,我从图灵机那里听说,他们确实计划建造一个完全支持计算模块4的新版本2&39;板,我迫不及待地想知道结果会是什么!

好的,那么你可以通过PCIe总线获得USB或NVMe,但是升级后的视频卡呢?

当然,也有一些速度较慢的PCI显卡只在1X总线上运行,但它们中的大多数要么没有Linux驱动程序(因此它们不能在Raspberry PI OS上运行),要么如果它们有Linux驱动程序,那么这些驱动程序只适用于x86处理器。PI使用ARM处理器,该处理器不能与x86驱动程序一起使用。

无论如何,在我所有的搜索中,我只能找到一块PCI显卡,看起来它似乎与计算模块4-Zotac GeForce GT710硬件兼容。请注意,我说的是硬件兼容。图形芯片有Linux驱动程序,但仅适用于X86。也许有办法让它运行起来,但我不确定。你认为如何?如果您想让我尝试购买其中一张卡并在PI上进行测试,请留下您的评论!

您还可以为PCIe购买许多其他适配器,包括用于硬盘和SSD的SATA适配器、声卡、打印机端口、网络适配器,甚至是旧的并行端口适配器!需要查看的最重要的事情是该卡是否支持Linux。有些东西是开箱即可支持的,但对于其他东西,您需要安装一个驱动程序,它不仅必须与Linux兼容,而且还必须与ARM处理器体系结构兼容。

与较旧的计算模块相比,另一个主要功能是包含板载WiFi和千兆以太网。你可以选择是否使用Wifi和蓝牙,但所有版本都内置了千兆位以太网,由这个小小的Broadcom芯片提供:

在我的测试中,CM4的性能和PI4型B一样好。

有线网络的速度为942 Mbps,这大约是我在我家千兆网络上看到的速度,而且比老式的计算模块板快得多--后者根本没有板载网络!即使使用图灵PI集群板,它也只为每个计算模块提供100 Mbps,因此仅此一项就是一个巨大的改进。

而无线,这在较旧的计算模块版本上也是完全不可用的,在我家的802.11ac网络上最高可达80 Mbps。现在,这里是它变得更有趣的地方。CM4是第一个提供U.FL天线连接器的任何类型的PI。因为许多将CM4集成到设备中的人可能会把它放在金属外壳内,如果他们想让WiFi正常工作,他们需要附加一个外部天线。

PI基金会将向您出售一种经过认证的天线,您可以将其插入到这个小小的连接器中,然后将该天线安装在某个地方,以便PI仍然可以获得稳定的WiFi连接。

但从技术上讲(你不是从我这里听到的!),你可以拿起任何标准的ufl天线,比如我拥有的Highfineufl天线,然后使用它。

要启用天线连接器(并禁用内置PCB天线),您需要编辑PI上的/boot/config.txt文件,并添加以下行,然后重新启动PI:

我用这个天线做了一些测试,只是为了比较PCB上的微型内置三角形天线,结果让我大吃一惊。

使用内置PCB天线,信号电平为-43dBm(用cat/proc/net/Wireless测量),质量等级为67/70(用iwlist wlan0扫描测量)。虽然我的路由器只有20英尺远,但这是相当体面的。用外置天线,我可以得到-40dBm(质量等级为70/70),但那是在我稍微调整了一下它的位置以获得尽可能好的信号之后。

如果我拔下天线,信号很糟糕,是-74dBm,质量是36/70,只能做到大约6 Mbps。因此,机载天线是一个伟大的设计-只要你没有把圆周率的圆周率封装在一个金属盒子或法拉第笼子里!

因此,无论是无线网络还是有线网络,CM4都与普通的PI 4不相上下,远远超过了早期的计算模块的能力-让我惊讶的是,这么小的电路板上塞满了这么多功能。

如果你用过PI 4,你就知道CM4在性能上会得到什么。但是如果你使用的是Compute Module 3+或更老的版本,由于几个不同的原因,Compute Module 4在性能上有了巨大的飞跃。

首先,CPU时钟从欠频的1.2 GHz增加到1.5 GHz。其次,CPU从Cortex A53升级到A72,这意味着即使在相同的时钟速度下,也会有更多的带宽、更多的缓存和全面更好的性能。

但是不要轻信我的话。以下是计算模块版本之间的一些基准测试:

这三个基准代表了一些需要良好的CPU性能才能正常运行的真实场景。在每种情况下,计算模块4的速度都是前3+的两倍。这甚至算不上是一场比赛。

在实际使用中,比如浏览网页和玩游戏,两者之间的区别通常不会那么明显,但感觉上要快得多,而且每次我回到我的3+版时,我都会意识到性能差距有多大。

有些人花了一些时间处理外部存储,并试图尽可能获得最佳的磁盘性能。但对于大多数考虑使用计算模块(尤其是嵌入式使用)的人来说,内置的eMMC提供了最划算的性能。

PI工程师将eMMC总线从4位增加到8位,因此您可以从eMMC存储中获得更多带宽。我运行的基准测试确实显示了这一点:

CM4上的随机IO速度是CM3上的两倍。顺序性能也是一种更好的方式。与我测试的最快的microSD卡相比,Compute Module 3的eMMC的顺序性能较慢,但CM4并驾齐驱,这意味着计算模块上的eMMC存储不再有任何折衷。

由于随机IO对于大多数计算任务更加重要,这使得内置eMMC成为大多数人的最佳选择,特别是因为它使整个计算模块包变得很小,所以它几乎可以适用于任何地方。

现在,如果你需要将新的操作系统闪存到eMMC上,这比用microSD卡做同样的事情要复杂一些,但多亏了Raspberry PI的usbboot实用程序,只要你手边有另一台电脑或PI,就不会太难。我将在后面的视频中介绍如何做到这一点。

说到USB启动,从USB驱动器启动计算模块怎么样?毕竟,我做了一整篇关于如何用PI 4引导USB的文章。你能在计算模块上做到吗?嗯,是的,但是如果你想要USB 3.0的速度,你需要把一块PCIe USB适配卡放在单个PCI express插槽中,然后通过它插入你的驱动器。IO板上PI本身的端口仅为USB 2.0。

但是,假设您使用的是USB3.0适配器,它在PI 4上的工作效果与PI4一样好。

我真的很希望能够通过NVMe启动PI并以这种方式进行更多测试,但可惜这还不受支持,如果您使用Lite Compute Module尝试,PI只是漫无目的地坐在那里看着microSD,然后是USB,然后是microSD,永远:

从技术上讲,你仍然可以从NVMe启动,但前提是你要把它放到USB3.0适配器上,插到USB3.0PCI适配器上……。但这与直接从NVMe驱动器启动不同,您会错过很多性能!

我想检查的另一件事是计算模块作为NFS(网络文件系统)服务器的性能如何。我目前有一台2011年的旧Mac mini,我仍然在用它来存储数TB的旧视频文件和电脑备份,但它太旧了,苹果甚至不再支持它了。

所以我想看看Compute Module在文件存储方面是否能比十年前的Mac mini更快,而且--剧透提醒--的确如此!

在Mac mini上,我能获得的最快一致写入速度约为每秒35MB,这主要是因为驱动器都连接到了旧的USB2.0端口。在PI上,如果我写入外部USB3.0驱动器或NVMe驱动器,我可以通过网络以大约每秒70MB的速度写入(比旧的Mac mini快2倍)。

现在,一台全新的Mac mini将使网络带宽饱和,每秒约为100MB,但那也至少要800美元,而要获得额外的每秒30MB,这是一笔很大的费用。

好了,用史蒂夫·乔布斯(Steve Jobs)的话说,计算模块本身已经足够了,与之前所有的PI相比,它简直就是一个尖叫者。

Compute Module 4 IO板也有一些新的诀窍。

它不仅具有与旧IO板相同的所有分支和连接,还具有标准的PoE(以太网供电)支持,因此您可以通过以太网电缆为该板供电。

我们已经覆盖了PCIe插槽,但就在它的正上方是一个可用于为附件供电的4针PSU连接器,以及一个可为风扇供电和控制风扇的4针风扇连接器。

沿着底部,有一个12V的桶插头电源插孔。我正在使用此插孔通过通用TMEZON 12V 2A电源适配器为IO板供电。任何电源适配器只要在2A或更高电压下提供12V电压,并且具有2.1 mm X 5.5 mm桶插头,即可正常工作。

然后还有一个用于Compute Module Lite版本的microSD卡插槽(该插槽在eMMC版本中根本无法识别)、两个USB 2.0端口(以及另外两个USB端口的接头)和RJ45网络插孔。

它还具有两个全尺寸HDMI端口,因此您最多可以驱动两个外部显示器。

有趣的是,它们都是全尺寸的,因为现在当我在PI项目之间切换时,我必须处理以下问题:

去想一想吧!抱怨USB-C加密狗的人不必忍受测试多代树莓PI:)

有一个内置的RTC或实时时钟,带有一个标准CR2032备用电池的插槽。

还有一个标准的HAT(硬件连接在顶部)连接器,它允许您与PI的GPIO接口。它在与标准PI B模型相同的位置有安装孔,因此您可以在板的占地面积内安装帽子。最后,在侧面和顶部边缘有一些显示器和摄像头连接器,以及一组跳线,帮助您在刷新eMMC模块或禁用固件更新时提供帮助。

对于IO板和计算模块板对板设计的缺点,我认为可以指出两点:第一,IO板非常大。我理解为什么,因为它支持CM4的所有功能,包括安装全尺寸PI帽子,但如果它占用的桌子空间少一点就好了,即使去掉了几个功能。

其次,将两个100针的板对板连接器靠得很近会使连接和移除计算模块比正常情况下稍微复杂一些。您应该拉直向上,以分离模块,但它几乎是不可能做到的,除非你使用推土机。用你的手指,你必须先撬开一侧,然后模块就会弹出来。插上插头会容易一些,因为你可以用两边相等的压力向下推。

还有很多其他的小细节我没有时间在这篇文章中传达,但我认为PI基金会在这个董事会上做得很好,考虑到形式因素和价格的限制。我敢肯定,保持新版本的起步价与旧版本相同是不小的壮举!

我对Compute Module 4真的很满意。它兑现了原生PCIe支持的承诺,并采用了非常适合嵌入式系统的外形规格,具有一些很棒的新功能,如板载WiFi、蓝牙和以太网。

.