The development of the hottest virtual instrument

  • Detail

The progress of virtual instrument technology and how to improve the parallel processing ability

the rapid development of science and technology and the increasingly fierce market competition have brought continuous pressure and challenges to engineers. One of the challenges is the diversification of protocols. For example, in the communication industry, compared with ten years ago, there are almost countless communication protocols (see Figure 1), and there is no obvious dominant protocol. Therefore, the final product needs to implement multiple protocols at the same time

the increasing integration of product functions is also one of the challenges. Take the newly launched iPhone as an example (see Figure 2). It brings together a variety of functions, not only for calling, but also for MP3, PDA, digital camera, etc. in order to maintain the competitiveness of the market, new functions will be added continuously

figure 1: there are various protocols in the communication industry

Figure 2: product functions are becoming increasingly integrated

obviously, if we want to keep up with this development and realize product coverage testing, the traditional testing methods with fixed functions can no longer meet the requirements of flexibility; The traditional method is that a set of test instruments are used for one protocol, and different instruments are used for different functions, which is simply unacceptable today

based on these challenges, test instruments are also undergoing a change in basic principles - from discrete instruments with fixed functions to Flexible Modular Instrument Architecture Based on software, which is the concept of "virtual instrument technology" proposed by Ni more than 20 years ago. Using the characteristics of virtual instrument technology, we can effectively solve the above challenges: the customized function based on software enables engineers to develop corresponding test programs for different protocols; The modular instrument architecture can select different module hardware according to different functional tests, and flexibly realize the integration of the test system on the same test platform

at present, virtual instrument technology has been applied in various fields of test measurement and automation, helping more and more engineers to create high-performance and high scalability test systems. At the same time, the virtual instrument technology itself is also constantly developing and innovating. Looking at its development process over the past 20 years, we can see that since the virtual instrument technology is based on the commercial technology, it can integrate the emerging science and technology, so that engineers can enjoy it in the most rapid and convenient way, so as to create a higher performance test system. The development of PC processor technology is a good example: in 1990, it took 1100 seconds to process 65000 point FFT with the then PC (Intel 386/16), but now it only takes about 0.8 seconds to implement the same FFT with a 3.4GHz P4 computer

these burgeoning Jinan new era assays want to tell you that technology is also a new driving force for the development of dynamic virtual instrument technology. For example, PCI Express bus, Dr. zhangxiaojun from Berkeley University of California, together with Dr. lizhefeng from the Department of chemistry of Harvard University and Dr. Dingbo from the University of Pittsburgh, form a high-throughput material R & D and preparation team. The technology can enable more raw data to be transmitted to PC at a higher speed; The multi-core technology can realize the real parallel operation, so as to improve the data processing performance of the system; Programmable logic gate array (FPGA) technology allows engineers to customize hardware functions through software according to different test requirements. Therefore, it can be predicted that these mainstream commercial technologies will open the door to many application fields that can only use expensive special equipment before. In addition, looking at the current mainstream commercial technology, it is obvious that its development trend is to achieve higher performance through parallel topology. The following are some examples of emerging technologies:

pci express bus technology

traditional instruments can only return one result value because the data processing and analysis process is placed in the specific tolerance value, which is confirmed by the basic size range. Although this method is convenient, it can not meet the flexibility requirements described earlier. Therefore, a better test method is to directly obtain the original data and then use professional analysis tools to analyze the data. This method allows engineers to analyze the original data many times, so that it is no longer necessary to do many tests to obtain different analysis results, saving time and cost

however, with the continuous improvement of sampling rate and the increase of channel number, whether the existing bus bandwidth can read the original data in real time is a problem that needs to be solved before many emerging test applications are realized

the data transmission throughput of the existing PCI bus can be as high as 132 MB/s, which is quite high compared with other buses, and also has the lowest delay (Figure 3). However, it is a bus sharing resources, that is, when multiple devices transmit data on the bus at the same time, the bandwidth that each device can enjoy will be reduced proportionally. With the improvement of i/o speed and application requirements, such an architecture has become a bottleneck. The new generation of PCI Express technology uses the topology of point-to-point bus, so that each instrument can transmit data to the processor through an independent channel, significantly improving the bandwidth of data transmission, minimizing the demand for memory, and accelerating the transmission of data streams (Figure 4)

Figure 3: comparison between bus bandwidth and delay

Figure 4: comparison between PCI and PCI Express bus

as we all know, the PCI bus added to the communication backplane is a key factor to promote the rapid application of PXI. Now, with the development of commercial PC technology from PCI bus to PCI Express, PXI has also integrated PCI Express into the PXI standard, namely PXI Express (Figure 5). PXI express not only retains the timing and synchronization features of PXI, but also adds many new synchronization features. It even provides differential system clock, differential signal and differential star trigger

figure 5:pxi express chassis

importantly, the PXI express standard also provides backward software compatibility, so that engineers can make full use of the achievements they have developed in existing software systems. In addition, the PXI express mixed slot provided by Ni can support both PXI and PXI express bus modules at the same time, thus better preserving the past investment

in a word, the birth of PCI Express technology enables the virtual instrument technology to realize applications with high requirements for data throughput, such as high-speed image acquisition for automobile crash testing or high-speed digital i/o copyright description, etc

Figure 6: development trend of processor speed

multi core processor technology

pci Express technology improves bus bandwidth and data throughput, enabling engineers to obtain original data and obtain reliable test results through professional analysis tools. However, with the rapid growth of data in recent years, the processing and analysis of these data has become another problem for engineers

multi core processor technology can improve the running speed of traditional test algorithms. Intel has promised to launch 80 core CPUs in 2011. But different from the previous single core, in order to improve the performance, developers need to configure threads in the application software. As can be seen from Figure 7, even on a four core processor, if its application is only a single thread, the operating system will still allocate all tasks to run on one of the cores. It can be seen that in order to improve the program performance on multi-core processors, your application must be divided into multiple threads, and then the OS will coordinate and allocate them to run on different cores, so as to maximize the advantage of multi-core processor parallelism to improve the performance

Figure 7: using multi-threaded programming can maximize the performance of multi-core processors

however, this is a great challenge for many developers who are used to developing single threaded applications. If engineers use a text-based programming language, such as C language, when writing multithreaded application software, they need to create and manage threads with special semantics, and transfer data in a safe way

NI LabVIEW is very suitable for creating parallel multithreaded applications. Firstly, compared with the top-down sequential structure of text programming language, LabVIEW itself is a parallel programming structure; Secondly, as early as LabVIEW 5.0, LabVIEW already supports multithreading. After the LabVIEW program is written, the LabVIEW compiler can automatically identify threads and create threads to different tasks and loops, and then the OS assigns them to different cores to run (Figure 8). The latest LabVIEW 8.5 provides comprehensive support for multi-core technology; In addition, in the real-time operating system, users can also allocate specific threads to run on specific cores, as shown in Figure 9

figure 8: use LabVIEW to facilitate multi-threaded programming

figure 9:labview 8.5 allows users to manually allocate threads to run on the specified core

and with the use of more cores, LabVIEW can automatically create more threads to automatically improve the performance of the program. Simply put, when you upgrade the controller of the test system to a processor with more cores, the test system can automatically achieve higher processing performance without any modification to the program

therefore, the parallel topology architecture used by multi-core processors can improve the processing capacity, but the real improvement of computing performance can be easily realized by using a real multi-threaded programming language, such as LabVIEW

fpga technology

an important feature of virtual instrument technology is that software can be used to customize the functions of hardware. As the status of LabVIEW as a parallel programming language is becoming more and more stable, its application has also been continuously expanded, and it provides strong support for the powerful parallel hardware technology FPGA

generally speaking, the software development platform of FPGA is implemented using VHDL language, but this language requires a long learning time and deep hardware technology background, so only a few professionals master it. With the increasing demand for programmable hardware, FPGA has become a mainstream technology. This trend requires a way to reduce the threshold of FPGA programming, so as to bring FPGA technology to more engineers

labview's parallel programming mode and graphical programming environment allow engineers to realize the logic functions of FPGA in an intuitive way. For example, using LabVIEW, it becomes relatively simple to implement the logic functions shown in Figure 10 in FPGA

Figure 10: using LabVIEW to realize FPGA logic functions

of course, if you want to build a complete measurement and control platform, you need to select many different IO modules. Ni provides engineers with a complete FPGA based commercial platform to choose from, so that engineers can use this technology to achieve higher performance test applications


at present, virtual instrument technology has been rooted in many fields. The high bandwidth of PCI Express Bus extends the application scope of virtual instrument technology to more emerging applications, so that engineers can enjoy the benefits of high channel and high sampling rate, and can flexibly customize relevant functions according to their own needs; Using real multi-threaded programming languages, such as LabVIEW, we can easily improve the performance of multi-core parallel computing; With the rapid development of LabVIEW parallel programming language, engineers

Copyright © 2011 JIN SHI