- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
虚拟仪器技术日新月异,如何提升并行处理能力
总言之,PCI Express技术的诞生使得虚拟仪器技术可以实现对于数据吞吐率有高要求的应用,例如汽车碰撞测试的高速图像采集或高速数字I/O应用等等。
图6:处理器速度的发展趋势。
多核处理器技术
PCI Express技术提高了总线带宽和数据吞吐率,使得工程师可以获得原始数据,并通过专业的分析工具拿到可靠的测试结果。不过近年的数据量快速增长,导致对这些数据进行处理和分析成为摆在工程师们面前的又一个问题。
多核处理器技术能够提高传统的测试算法的运行速度,Intel已经许诺了在2011年会推出80个芯核的CPU。但是不同于以往的单核,为了实现性能的提高,开发人员需要在应用软件里配置线程。从图7中可以看到,即使是在四核的处理器上,如果其应用只是单线程的话,操作系统仍旧会将所有的任务分配到其中的一个核上运行。可见,为了实现在多核处理器上程序性能的提升,就必须将你的应用程序分成多个线程,再由OS协调分配在不同的核上运行,这样才能最大限度的利用多核处理器并行的优势来提升性能。
图7:使用多线程编程才能最大限度地利用多核处理器的性能。
然而,这对于许多习惯于开发单线程应用的开发者来说都是一个极大的挑战。如果工程师使用的是基于文本的编程语言,如C语言,那么在进行多线程应用软件的编写时,需要专门的语义创建和管理线程,并且在线程安全方式下进行数据的传送。
而NI LabVIEW,就非常适合于创建并行的多线程应用。首先,相比文本编程语言的至上而下的顺序结构,LabVIEW本身就是一种并行的编程结构;其次,早在LabVIEW 5.0时LabVIEW就已经支持多线程,在LabVIEW程序编写完毕后,LabVIEW编译器可以自动地识别线程并创建线程到不同的任务和循环上,再由OS分配到不同的核上运行(图8)。而最新的LabVIEW 8.5更针对多核技术进行了全面的支持;此外,在实时操作系统中,用户还可以自己分配特定的线程在特定的核上运行,如图9所示。
图8:使用LabVIEW方便实现多线程编程。
图9:LabVIEW 8.5允许用户手动分配线程在指定的核上运行。
而且,随着更多的核的运用,LabVIEW可以自动创建更多的线程来自动提升程序的性能。简单来说,就是当你把测试系统的控制器升级为更多核的处理器时,不需要对程序做任何修改,测试系统就能自动达到更高的处理性能。
因此说,多核处理器使用了并行拓扑架构可以提高处理能力,但利用真正的多线程编程语言,如LabVIEW,才可以轻松实现运算性能的真正提高。
FPGA技术
虚拟仪器技术最初的一个重要特性就是可以使用软件来定制硬件的功能。随着LabVIEW作为并行化的编程语言的地位逐渐稳固,它的应用也得到了不断的扩展,并对强大的并行硬件技术FPGA提供了强有力的支持。
通常来说,FPGA的软件开发平台是使用VHDL语言来实现,但是这种语言需要很长的学习时间,并且也需要深厚的硬件技术背景,因此只有少数的一些专业人员掌握。随着可编程硬件的需求日益增长,FPGA已成为一种主流的技术,这种趋势需要能够有方法降低FPGA编程的门槛,从而将FPGA技术带给更多的工程师。
LabVIEW的并行化的编程方式以及图形化的编程环境可以允许工程师们能以直观的方式来实现FPGA的逻辑功能。例如,使用LabVIEW,在FPGA中实现图10所示的逻辑功能就变得相对简单。
图10:使用LabVIEW实现FPGA逻辑功能。
当然,如果要搭建一个完整的测控平台,还需要有很多不同的IO模块来选择。NI提供给工程师们完整的基于FPGA的商用型平台以供选择,让工程师们能够利用这一技术实现更高性能的测试应用。
结论
目前,虚拟仪器技术已经根植于许多领域。PCI Express总线的高带宽将虚拟仪器技术的应用范围扩展到更多新兴的应用,从而使工程师们能够在享受高通道、高采样率的好处的同时,又可根据自身需要灵活定制相关功能;利用真正的多线程编程语言,如LabVIEW,可以轻松实现多核并行运算性能的真正提高;随着LabVIEW并行化的编程语言的快速发展,工程师们可以灵活地根据待测单元、软件或者是测试需求的变化来对硬件进行重新配置,从而对FPGA提供了强有力的支持。
作者:周斌
中国技术市场工程师
朱君
中国市场经理
NI公司