Home Connectivity Software
Customer Case Studies
Boeing PCI-based Generic Processing Engine
Boeing/Sunnyvale has developed a Generic Processing Engine (GPE) on a PCI card. The
product had to fit to as many markets as possible, and the Boeing team's design goal was to
have the GPE designed to support Windows 98, NT, 2000, Linux, Solaris SPARC, and
Solaris on x86.
It was obvious that writing hardware access code for each platform type, would be a time
and resources consuming process. "There would also be software maintenance problems,
since future changes to the software would effect numerous versions of the code" Said Mr.
Ronald Wallace, Boeing's Senior Software Engineer.
Boeing needed a robust development tool, that would enable quick and easy development of
cross platform hardware access code, without requiring the developers to have
preliminary kernel knowledge.
An Internet search resulted in Jungo's WinDriver as the desired solution.
Boeing's GPE Program
Boeing/Sunnyvale has been in the business of providing high-speed signal processing and signal intelligence solutions for government and commercial applications for many years. These solutions employ massive parallel processing and re-programmable hardware to achieve computationally intensive processing solutions.
Using their knowledge and experience in this field, Boeing/Sunnyvale developed a Generic
Processing Engine (GPE) on a PCI card, targeted for the commercial market. It is
designed to provide a high-speed parallel-processing platform for applications requiring
high performance processing capability. As companies continue to embrace the Internet
they simultaneously push network solutions to achieve higher performance, greater
security, and reliability. All of these present opportunities for the GPE in providing
robust next-generation solutions.
The GPE lends itself well to process intensive applications by
performing the intensive processes in hardware as opposed to on the host CPU. Network
applications can be greatly optimized by assigning certain processes to the GPE while
maintaining others on the host CPU. Striking a good balance between the resources of the
GPE and Host CPU enable applications originally developed for 10Mb networks to perform
optimally at much greater speeds (155-622Mbps or more).
WinDriver in the GPE Project
The GPE utilizes FPGAs (Field Programmable Gate Arrays) which are located on the PCI
board; Hence, the GPE can provide many different solutions by simply loading different
bit files into it.
Boeing also developed the application controlling the GPE. This application must download
configuration files to each of the FPGA chips, and control operation of the GPE PCI board
by utilizing Bus Master DMA and Interrupts.
Boeing's engineers chose to use WinDriver
for their PCI hardware access. The GPE project took advantage of WinDriver's Kernel
PlugIn feature to achieve optimal performance.
Why WinDriver?
In order for the GPE to be more attractive and to fit to as many markets as possible,
the Boeing team's design goal was to have the GPE control software designed in such a way
as to support Windows 98, NT, 2000, Linux, Solaris SPARC, and Solaris on x86.
In order to do this, Boeing's engineers would need to write a separate driver for each
of the different operating systems from scratch. This process would require the team to
study each of the separate operating system's kernel and device driver architecture, and
would also require maintaining several different code bases for their project.
"It was obvious that writing hardware access code for each platform type, would be a
time and resources consuming process. There would also be a software maintenance
problems, since future changes to the software would effect numerous versions of the code"
Said Mr. Ronald Wallace, Boeing's Senior Software Engineer. "Since time to
market was an important factor in the GPE project, we considered, limiting the number of
supported operating systems to Windows NT and either Linux or Solaris" said Mr.
Stephen Cagliostro, Boeing's Sunnyvale Site Engineering Manager.
Boeing needed a robust development tool, that would enable quick and easy development of
a cross platform hardware access code, without requiring the developers to have
preliminary kernel knowledge.
An Internet search resulted with Jungo's WinDriver as the desired solution.
WinDriver development tool complied
completely with Boeing's requirements. As a first step, Boeing engineers used WinDriver
diagnostic utilities to immediately access and diagnose the GPE hardware, allocating its
required resources, and debugging it before writing a single line of the hardware access
code.
The next step was to use WinDriver to automatically generate a skeleton hardware access
code. The entire development process was done in user-mode without Boeing engineers being
required to having any DDK or kernel knowledge, which is normally required when writing
device drivers.
Using WinDriver dramatically shortened the initial driver development time.
Thanks to WinDriver's powerful Wizard, graphical tools and automatic code generation,
development time was dramatically cut down, and in just 40% of the firstly estimated
development time, Boeing engineers had accomplished the development of complete compiled
and running device drivers for Linux and Windows.
More time is to be saved when Boeing will port the hardware access code
developed using WinDriver into other operating systems said Mr. Ronald Wallace.
Due to WinDriver's unique cross platform architecture, Boeing engineers were able to
generate one driver code, common to all platforms (instead of developing different code
for each platform).
Now we use only one platform specific file that defines synchronization objects for
the user code, such as thread blocking, while all other driver code is common for all
platform types said Mr. Wallace.
Using WinDriver also saved the Boeing team
from having to debug the driver in the kernel mode using unfamiliar tools. The driver
code was debugged in the user-mode, using the Microsoft developer's studio.
Later, optimal performance was achieved by moving the interrupt handler into WinDriver's
Kernel PlugIn , thus achieving DMA of 4.6 Mbytes per second, without even optimizing the
user-mode application (by optimizing DMA transfer size, buffer management, etc.).
Conclusion
Boeing's GPE project engineers chose WinDriver in order to gain high performance, multi platform support for their GPE hardware in record time. Without acquiring any DDK /
kernel knowledge, a complete multi platform hardware access code was developed within
only 4 man weeks, thus shortening time-to-market and saving valuable development
resources.
If all goes well in the sales department, your product will be a life
saver!!! said Mr. Ronald Wallace.
Boeing's Commercially available GPE product uses WinDriver to provide a high-performance,
cross platform application.
|