3DNews.ru的技术记者Igor
Oskolkov最近使用代号为BFK 3.1的俄文SoC Baikal-T1,基于MIPS测试了评估板的公开版本,或按供应商的说法测试了开发人员的软件-硬件组合。 P5600战士架构。 这是他的文字的英语翻译,
该书最初由servernews.ru用俄语发行 。
首先,我们应该强调BFK 3.1是一个开发人员软件-硬件复合体(我们将其继续称为董事会),而不是构建最终产品的基础。 没有人理智地使用此板来构建系统。 首先,这样的系统将不合理地昂贵。 其次,这样的想法是毫无意义的。 需要该板才能开发和调试软件,以及评估处理器性能及其与其他设备的兼容性。 将BFK 3.1与Raspberry Pi或Cubieboard等单板微型计算机进行比较是不正确的,尽管从形式上来说,它们非常接近它们。

其他处理器供应商也提供类似的开发板。 根据它们的类型和嵌入式设备,这种板的价格可能从数百美元到数千美元不等。 对于BFK 3.1板而言,重要的是它是第一款具有Baikal-T1 SoC的板,几乎每个人都可以使用,而不仅限于个人和组织的狭窄圈子,因为它以前曾在俄罗斯处理器中使用过。 。 它的价格相当可观-650美元-价格昂贵,但考虑到该板生产的相对较小,卖方无法提供更低的价格。
客户在注册产品后得到的是对受限访问工程文档库的访问以及Altium Designer格式的印刷电路板设计的访问权。 这将大大加快和简化基于BFK 3.1板和Baikal-T1 SoC的创建自己的硬件和软件解决方案的过程。
评估板本身配备了带有基本捆扎带的处理器。 几乎所有处理器接口都有输出到板,只有10GbE端口没有。 评估板本身的尺寸为229×191 mm(FlexATX)。 它具有两个SATA-3端口(控制器版本3.1),一个用于DDR3-1600内存模块的SO-DIMM插槽,两个千兆以太网RJ-45端口,一个USB 2.0 Type A连接器,两个调试所需的Mini-B USB端口。 ,一个PCI-E 3.0 x4连接器。 还有一个40引脚GPIO(其主控制器为32位)。


对于电源,需要任何200瓦或更高的ATX 2.0模块。 显然,即使考虑到PCI-E和SATA设备的消耗,该值也具有可观的利润。 评估板上有单独的“开/关”和“电源重置”按钮。 启动电路板非常简单:安装内存模块,连接PSU,将PC与上层mini-USB端口连接,运行支持COM端口的您喜欢的终端仿真器(
您可能需要网桥本身的驱动程序-使用此链接 )。 好了,就是这样,按下“ on”按钮,然后在启动菜单中选择所需的项目。


该评估板具有两个NOR内存模块:16 MB和32 MB。 第一个是可引导的,它包含固件本身。 这里的一切都是标准的:U-Boot + Linux内核+最小的BusyBox映像。 可以通过NFS或TFTP服务器从网络引导。 对于嵌入式系统,这已经足够了。 在这种情况下,最终产品是相对紧凑的电路板,具有已焊接的所需容量的RAM和ROM,以及针对特定任务范围进行了预编程和优化的软件环境。 例如,可以想到SOHO路由器。

使用该板的第二个选择是启动成熟的OS。 这就是我们要进行的测试。
供应商提供了带有SDK内核的Debian 9的略微修改版本。 请注意,他们自己不会重新组装所有软件。 使用了现成的Debian mipsel分支存储库,因此没有针对此特定处理器的优化。 但是,也有用于带有相同Baikal-T1 SoC的Tavolga Terminal 2BT1设备的Astra Linux特别版程序集。 但是,遗憾的是,它们尚未公开可用。 此外,预计将支持Alt Linux和Buildroot,并且有可能运行OpenWRT / LEDE。

要启动Debian OS,需要从SDK中获取内核映像,固件和ramdisk。 SDK本身还包括用于交叉编译的辅助工具,用于构建ROM映像的脚本以及用于QEMU的准备好的VM,您可以在其中预调试程序。 在BFK 3.1上使用Debian 9的体验仍然不是很流畅:安装后,您必须深入研究设置并安装一些软件,但是这样做没有任何特殊问题。 可惜的是,该板还没有完整的文档:必须通过反复试验找出答案,或者直接询问供应商。

为了运行测试,将板子连接到采用今天标准的操作系统的金士顿SSDNow V和4 GB三星DDR3L-1600内存模块。 这足以使您熟悉SoC功能。 还有一点细微差别-由于控制器的功能,并非SO-DIMM模块的所有内存都是可见的。 另一个要点是从源代码处理测试程序的基本构建:所有这些都直接在BFK 3.1上完成。 必要时指定编译器密钥。

我们必须说,构建过程并不总是那么轻松。 为了获得更好的结果,我们不得不在某个地方挖掘优化参数。 一切正常,但执行时失败或无法正常运行。 有时,人们普遍感觉到该供应商并不怀疑x86平台以外的其他设备的存在。 这不仅适用于软件。 特别是在PCI-E中,现代GPU最有可能无法工作,因为据供应商称,几乎所有GPU都需要UEFI / BIOS x86。 同样,使用PCI PCI-E桥的设备可能存在问题。
贝加尔湖T1 SoC特性让我们简要地回顾一下处理器本身。 Baikal-T1具有两个基于P5600 Warrior(MIPS32版本5)架构的32位内核,并具有对虚拟化的硬件支持。 每个内核都收到一个64 KB的L1高速缓存,用于存储数据和指令。 两个内核都有一个公共的1 MB L2缓存。 此外,每个内核都有自己的FPU,支持128位SIMD。 所有内核L2和FPU都在相同的1.2 GHz频率下运行。 该处理器最多可以执行四个整数运算,对于双精度浮点数最多可以执行两个运算,或者每个时钟周期可以执行四个单精度。 这使其理论峰值性能为4.8 GFlops FP64(2个内核1.2 GHz×2 FP64)或9.6 GFlops FP32。 但是,从实际的角度来看,要开发SoC的潜力(人们喜欢在评论中发帖),手动优化代码和编译器,“了解” FPU / SIMD的功能是必要的。

实际上,例如,由开放GCC编译的未优化版本的Linpack产生的结果比预期结果要少。 对于新的或特定的(如Elbrus)架构,这种情况是很正常的。 在评估以下给出的结果时,应考虑到这一点。 另一个值得关注的重要问题是臭名昭著的Meltdown和Spectre漏洞。 MIPS32r5中的计算模块是超标量的,能够执行非凡的指令执行,但是显然没有关于深度推测的讨论。
核心供应商发出警告 ,称“干净的” P5600 / P6600内核中可能存在Spectre(而非Meltdown)。 根据供应商的说法,在贝加尔湖T1的情况下,官方的漏洞验证代码不会产生结果,但是现在绝对确定SoC不受此漏洞影响还为时过早。 供应商计划组织一次黑客马拉松来再次检查SoC安全性。

SoC的内核通过AXI总线与其余组件进行通信。 所有高速接口均具有DMA支持。 单通道内存控制器本身支持带ECC的DDR3-1600。 RAM的最大支持CPU容量为8 GB。 还有另一个细微差别-存储控制器具有32位和8位ECC的数据总线,并支持与8到32位宽度的存储芯片一起工作。 对于已经焊接了合适模块的成品,它没有问题,但是板卡只能看到传统SO-DIMM声明的体积的一半,因为它们通常通过64位接口“向外看”。 显然,它的速度会更低-高达6.4 GB / s。
SoC的内部可以
在此链接中欣赏 。
SoC需要0.95 V的电压用于供电,要求的功耗不超过5瓦。 在测试过程中,CPU的温度升高了60摄氏度。 不需要主动冷却,但是在封闭的情况下,散热器不会多余。 内核的频率可以在200到1500 MHz的范围内动态调整,但这需要操作系统支持,到目前为止,在当前的Debian版本中,可以在系统启动时设置频率。 无论如何,在低负载运行期间,一个内核可以自动关闭。 Baikal-T1的价格为65美元,是在台积电28纳米工厂生产的。
芯标现在,让我们直接进入基准测试。 排在第一位的CoreMark是专门的基准测试,用于评估嵌入式系统的处理器和SoC的性能。 直白地说,正是由于发布了新的CoreMark记录,Imagination Technologies才开始讲述MIPS P5600 Warrior内核的优势。 事实是,那时它是一个以20 MHz运行的FPGA仿真内核。 然后,这就是每核CoreMark的兆赫兹值5.61的记录,但实际上值得一看。约为5。核心供应商甚至指出,与台式机Intel CPU相比,P5600的效率更高。 。 从形式上讲,Baikal-T1在兆赫兹和每核兆赫兹方面处于领先地位。 实际上,为了获得绝对的性能,供应商使用了广泛的方法,从而增加了频率和内核数量。

遗憾的是,CoreMark结果库的填写不是很仔细,因此我们必须手动选择频率特性接近贝加尔湖T1的双核芯片的测试,并且明确表明该测试使用了两个数据流。 为了进行比较,我们特意包括了一个四芯样品。 通常,可以通过几种标准对基准测试结果进行排名。 但是,它立即产生了许多细微差别:首先,ARM和MIPS IP内核已授权给第三方公司,因此,相同设计的实现可能会有很大差异。 其次,很大程度上取决于软件代码的优化,其构建和运行时间。
对于我们的基本测试,我们将GCC 6.3与以下选项一起使用:-O3 -DMULTITHREAD = 2 -DUSE_PTHREAD -funroll-all-loops -fgcse-sm-fgcse-las -finline-limit = 1000 -mhard-float -mtune = p5600 。
供应商的
测试还包括Sourcery CodeBench商业环境。 在下表中,以下名称被接受:“官方测试”-用于发布在供应商网站上的结果; “ Precomp”-用于运行CPU供应商提供的二进制基准文件; “ W /选择。” -我们自己从带有指示键的开源代码构建而成; “选择。” -由供应商的“配方”与SDK和商业实用程序进行交叉编译。 手动优化可以实现更好的性能,这在结果表中非常清晰可见。 但是,我们不需要对键进行排序并深入研究代码,而Baikal-T1软件开发人员肯定必须定期对其进行处理。
经典基准从
同一文档中,您可以选择“老派”经典基准测试的结果。 使用以下键为一个线程编译了内存带宽的流测试:-mtune = p5600 -O2 -funroll-all-loops。 其结果约占理论RAM速度的一半。

上面关于CoreMark的所有说明都适用于Dhrystone2(处理整数计算),该Dhrystone2是使用最少的键在基础中编译的:-O3 -funroll-all-loops -mtune = p5600。 las,就像上面的示例一样,测量基础不是准确性的示例。 为了进行比较,对32位计算采用了一些结果,并明确指出了优化。 不幸的是,他们没有发布特定的CPU型号或至少发布了几代。 另外,TurboBoost的存在或类似短期内(此测试只是一个短暂的)处理器基本频率的增加使问题变得复杂,从而润滑了总体情况。 同样,这种情况在用CoreMark进行的测试中也屡见不鲜-就兆赫兹而言,P5600的性能还不错。

但是其他现代CPU通过提高频率,支持64位指令以及同时增加内核数来提高性能。 磨刀石的结果几乎相同,只是通量增加和使用矢量指令的区别更加明显。 哦,是的,要构建所有这些东西,我们必须通过除去对x86-assembly和x86-extensions检查不必要的调用(仅用于CPU识别)来稍微调整代码。

为了快速检查千兆位以太网适配器,我们使用了iperf 3.1.3实用程序,该实用程序演示了单向连接所需的速度为940 Mb / s,但是在双工模式下,速度为1.2 Gb / s。 在解释这一事实时,请注意,需要在软件级别进行小的调整才能获得完整的性能。
Phoronix测试套件我们知道这个想法闻起来像疯了似的,因为PTS(https://www.phoronix-test-suite.com/)通常不是为此类系统设计的。 构建直接在测试机器上进行,因此对于Baikal-T1来说,这太长了,而且测试时间也很长。 我们排除了套件中排除的一些测试:这些测试无法编译,或者即使在“成人” PC上也无法长时间执行。 理论上,第一个问题可以通过自定义构建参数来手动处理。 但是同样,我们没有这样的任务,无论哪种方式,测试结果都不可能达到最大可能值。

所有测试结果都可以通过此
链接获得 。 严格来说,所有这些都是未来的储备,因为现在我们没有什么可比较的了。 稍后,我们将看到在修复构建和优化之后,结果会变得更好(或没有)。 出于好奇,我们只能提及中国处理器Loongson Godson 3A3000(4个内核@ 1.5 Hz,L2高速缓存1 MB,L3高速缓存8 MB,28 nm,30 W)的一些随机巧合基准测试配置。 两个CPU在新架构和该架构的软件优化问题上都相似。 到目前为止,中国人在绝对值上遥遥领先,但就核心,MHz和消费量而言,结果却毫不含糊。

结论
贝加尔湖T1作为现代产品而闻名,俄罗斯开发人员能够在一个行业认可的时间内由一个相对较小的团队来实施。 它的价格合理(与其他俄罗斯处理器相比),并且可以在市场上购买。 但是,它的成功(或失败)实际上只能在一两年后才能评估-这完全取决于谁将在其产品中使用此SoC以及使用的量。 目前,只有少数最终产品被公开宣布-https://baik.al/sdelano。 所有这些都是贝加尔湖T1应用领域的典型示例,我们还希望看到更多的NAS / SAN,IoT和SDR解决方案。 但是,它不再与硬件有关。 CPU本身非常好,尤其是在评估其相对性能而不是绝对性能时。 但是仍然存在许多软件问题和不完善之处。 谈到BFK3.1板时,它的文档非常薄弱。 全球范围内的问题是:谁将为此架构的软件提供工具? 谁来开发使该过程尽可能简单的工具? 会有足够强大的软件开发者社区吗? 例如,CPU说明中提到的对硬件虚拟化的支持仅在去年夏天随Linux内核4.12发行而出现。 通常,我们想知道MIPS架构旁边会发生什么。 五年前,为新产品选择这种特定体系结构非常合理。 现在呢? 问题是...