From Saturday, Nov 23rd 7:00 PM CST - Sunday, Nov 24th 7:45 AM CST, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI CompactRIO控制器:性能吞吐量基准测试

概览

CompactRIO控制器基于LabVIEW RIO架构,采用了功能强大的64位Intel Atom E3800片上系统(SoC)和Xilinx Kintex7 FPGA等最新技术。Intel Atom SoC提供了极高的性能和丰富的功能,包括集成式GPU和多核处理器。比起其他CompactRIO控制器的FPGA,Kintex-7 325T FPGA包含大约3倍的复杂逻辑块和超过13倍的DSP片。FPGA与处理器使用PCI Express总线进行通信,大大提高了吞吐量,并可访问16个DMA通道。

全新CompactRIO控制器采用的LabVIEW RIO架构提供了软件灵活性,可将人机界面和控制任务整合到同一个终端和同一个操作系统中。这主要归功于多核Intel Atom SoC和NI Linux Real-Time操作系统提供的特性。NI Linux Real-Time操作系统可将任务优先级显示给开发人员,为控制任务分配的优先级应高于同一应用中运行的人机界面软件任务。

这些技术的结合大大提高了闭环控制应用的系统吞吐量并降低了延迟。CompactRIO控制器为嵌入式设计人员提供了灵活强大的硬件,同时还有助于降低系统复杂性和成本。

为了证明CompactRIO控制器的性能,NI研发部编制了一系列控制和监测应用基准测试。这些测试同样适用于CompactRIO控制器(NI cRIO-903x)的所有双核和四核变体。

内容

基准测试设置测量

我们选择了具有代表性的常见控制和监测应用以及这些应用中常见的主要任务进行基准测试。下表列出了本次研究要进行的测试。

 

表1:在NI CompactRIO控制器上进行测试,以测量应用的性能和吞吐量

本研究的测试对象是以下硬件终端:

  • NI cRIO-9025 | 800 MHz,PowerPC
  • NI cRIO-9068 | 667 MHz,ARM Cortex-A9双核
  • NI cRIO-903x | 1.33 GHz,Intel Atom双核
  • NI cRIO-903x | 1.91 GHz,Intel Atom四核
  • NI cRIO-9082 | 1.33 GHz,Intel Core i7双核

虽然本研究重点关注的是CompactRIO控制器及其与同一产品系列中其他现有控制器的性能对比,例如双核变体的cRIO-9025和四核变体的cRIO-9082,但是其他CompactRIO产品系列的代表性硬件终端,如cRIO-9068,也包含在测试中,以便读者更全面地了解CompactRIO系统所提供的各种可能性。

CPU使用率作为通用指标,用以比较这些CompactRIO控制器的相对性能。对于每个测试,我们通过在稳定的状态下,改变数据传输的通道数或控制循环速率来测量CPU使用率。这些指标可以帮助我们了解可用于添加代码、提高循环速率或增加数据传输通道的资源。


其他考量因素:

  • 对于搭载多核处理器的CompactRIO系统,取每个内核测试结果的平均值。
  • 对于CompactRIO控制器,分别在启用和禁用嵌入式用户界面的条件下进行测试,以测量该功能对系统整体性能的影响。

 

测试1LabVIEW FPGA控制示例项目性能基准测试

全新高性能CompactRIO系统采用的技术组合为复杂的实际应用带来了无可比拟的性能提升。针对控制应用测试,我们选择基于CompactRIO的LabVIEW FPGA控制示例项目。以该示例项目为基础,我们在实时控制器上执行8通道三次样条轨迹生成算法进行扩展,进一步增大CPU的负荷。

 

图1:基于CompactRIO的LabVIEW FPGA控制示例项目的架构框图,其中包含了一个8并联通道三次样条轨迹生成算法

 

下图显示的数字表示控制循环速率为1.5 kHz时的CPU使用率。在该速率下,双核高性能控制器使用约15%的处理器资源。相对于需要70%处理器资源的cRIO-9025控制器,这是一个重大改进。类似地,四核高性能控制器只使用5%的处理器资源,可以看到这与cRIO-9082控制器的性能非常相似。


图2:当控制循环速率为1.5 kHz时,控制应用运行包含8通道三次样条轨迹生成算法所需的处理器资源比较

 

对于CompactRIO控制器,我们在启用嵌入式用户界面选项的设置下又重复进行了该测试,由于本次测试没有涉及基于CompactRIO的LabVIEW FPGA控制示例项目的人机界面部分,因此CPU使用率并没有明显的变化。

 

测试2监测应用吞吐量基准测试

监测应用中一个常见的任务是将数据从I/O通道移动到实时处理器进行进一步处理、记录或可视化。我们设计了一个简单的测试来重现这一场景,并测量数据传输通道数发生变化时的CPU使用率。每个通道以100 kHz的控制循环速率传输16位采样数据。测试不包含任何数据流盘或在线处理。

 

图3:监测应用中一个简化的数据流盘任务的架构框图

 

下图显示了以100 kHz的控制循环速率读写100个通道数据的测试结果。在这个测试中,我们必须意识到硬件架构之间的细微差别可能会给测试带来瓶颈。例如,虽然cRIO-9068和CompactRIO控制器都使用不同的总线技术实现16个DMA通道,但它们仍然具备较高的理论最大带宽速率:cRIO-9068控制器为320 MB/s,CompactRIO控制器为250 MB/s。然而,CompactRIO控制器因其处理器具备更好的性能,能够以较低的CPU利用率维持较多数量的数据流。

 

图4:每通道控制循环速率为100 kHz时,读写100个通道的16位采样数据所需的处理器资源

 

类似于控制应用性能测试,由于本测试没有涉及人机界面,因而CompactRIO控制器的嵌入式用户界面选项对测试并没有太大的影响。如需了解嵌入式用户界面功能的影响,请查看测试3。

 

测试3复杂真实应用性能基准测试

充分发挥cRIO高性能控制器功能的最佳方式也许是进行基于复杂真实应用的测试。大型应用通常结合了不同类型的常见监测和控制任务,包括具有多速率控制的多个处理循环、数据处理、从I/O通道读写数据、数据流盘、通过网络将数据传送到远程人机界面以及执行非时间关键型健康和状态监测任务。

我们开发了一个包含上述任务的复杂应用,使用RT FIFO、定时循环以及网络流等常见的LabVIEW架构组件来协调各种应用组件并实现它们之间的通信。此外,我们还设计了一个任务,专门以较高的速度将数据发布到前面板显示控件,充分发挥cRIO高性能控制器的嵌入式用户界面功能。

 

图5:复杂真实控制和监测应用的架构框图

 

使用这一应用,NI cRIO-9025可实现大约950 Hz的最大控制循环速率。在该速率下,NI cRIO-9025的CPU使用率是91%,而双核高性能控制器仅使用可用处理器资源的15%就能达到相同的速率。这为增加额外的应用任务保留了大量的可用CPU资源,或者对于这个复杂的控制和监测应用,循环速率可提高到2 kHz以上。另一方面,可以看到四核变体在所有循环速率上都显示出与cRIO-9082非常相似的性能。

图6:在不同控制循环速率下,运行包含多个常见控制和监测任务的复杂应用所需的CPU使用率。

嵌入式用户界面影响

CompactRIO控制器通过实现具有嵌入式用户界面支持的本地人机界面,以降低系统成本和复杂性。这主要归功于这款全新的控制器采用了最新的Intel Atom处理器,该处理器及其具有的显卡支持为使用NI LabVIEW构建控制系统逻辑和触摸式用户界面提供了高性能基础。为了实现该集成,LabVIEW开发环境和NI Linux Real-Time操作系统会将任务优先级显示给开发人员,为控制任务分配的优先级应高于同一应用中运行的人机界面软件任务。

在该方法中,终端的资源用于系统控制和驱动用户界面的显卡。这降低了系统的硬件成本和维护负担,简化了软件开发的复杂性,但相对于其他显示选项会消耗更多的控制器资源。

为了测量嵌入式用户界面对处理器资源的影响,我们对测试3进行修改,在高速率下更新其组件,以连续运行人机界面。下图显示了在测试3的活跃用户界面下使用嵌入式用户界面功能的影响。

图7:启用嵌入式用户界面功能后,在高速率下更新用户界面,可以看到增加的CPU使用率大约恒定在3%-10%。

 

在满负荷下,使用嵌入式用户界面功能会导致双核高性能控制器的CPU使用率增加约10%,四核高性能控制器的CPU使用率增加约3%。类似于测试1和2,无论数据传输通道数如何变化,嵌入式用户界面功能的影响保持恒定。

为了支持嵌入式界面的图形处理能力,Intel Atom SoC采用了板载GPU来增强CPU。GPU通过频繁的处理器中断调用来与处理器进行通信,中断调用需要占用一定的LabVIEW Real-Time应用处理时间。由于采用高性能Intel Atom CPU,更新GPU所需的可变处理时间会持续增加,在测试3的应用基准测试中,控制循环速率低于6 kHz。为了实现更高的控制循环速率,同时仍然利用嵌入式用户界面,我们可以禁用GPU或将LabVIEW控制代码转移至板载FPGA,详情可参考以下链接。

对于嵌入式用户界面可能会影响系统性能的应用,请遵守以下建议:

  • 通过LabVIEW中的处理器内核分配任务执行来进一步隔离任务。  阅读详情
  • 如果需要进一步的隔离和更高的硬件可靠性,将LabVIEW控制代码转移至板载FPGA的硬件逻辑。
  • 禁用Intel Atom SoC的GPU,以牺牲CPU利用率来减小抖动。

结论

嵌入式应用可执行的功能越来越多,如运动控制、数据记录、视觉采集和人机界面。由于NI CompactRIO控制器集成了最先进技术和独特的功能,可大幅加快开发时间并降低系统复杂性和成本,因而成为这些应用的理想选择。

相对于其他控制器产品系列,CompactRIO控制器有了显著的性能提升,而且扩展了可兼容NI Linux Real-Time等关键技术的终端范围。NI CompactRIO控制器基于LabVIEW RIO架构提供了灵活、功能强大的硬件和软件技术,适用于各种嵌入式控制和监测应用。

通过这一系列基准测试,证明CompactRIO控制器比同类CompactRIO控制器产品系列中的​现有​产品(如cRIO-9025),性能​大约​提升​了​4到8​倍。此外,四核变体控制器的性能与cRIO-908x非常相似。