Software To The Rescue
The concept behind NPUs is sound, but engineers have discovered that design is now a software problem rather than a hardware problem. Many blame the software problem as one of the key reasons for the rather slow adoption of NPUs in networking equipment. NPU vendors and several new companies are addressing this software problem, and the obvious opportunity.
NPU suppliers are upgrading their software. Newer, more sophisticated software features simulators, debuggers, and other tools. Also, a few vendors have added C/C++ compilers. The programming effort is typically faster and simpler if the programmer can use C. But the resulting code is commonly much less efficient than hand-coded programs using an assembler. Nevertheless, some newer NPUs have sufficient headroom in performance to accommodate C code inefficiencies. C also makes faster prototyping possible to prove a design that can be fine-tuned later with an assembler.
NPU vendors are beginning to provide libraries of common packet-processing routines and APIs too. Designers get a head start because they don't have to reinvent the packet-processing wheel for common protocols.
Also getting involved are third-party vendors, such as LVL7 Systems with its recently announced FASTPATH software. FASTPATH implements a nearly complete set of networking software already ported to and integrated on popular NPU platforms. It includes the critical NP microcode and device drivers as well as various protocols and applications code. The software is modular and verified in real-life environments.
With FASTPATH, network vendors can begin their designs with 75% to 95% of the necessary software, and that can shave six months or more from design time. As Eric Dixon, vice president of business development at LVL7 Systems, says, networking equipment vendors are getting smarter as they're now looking at what software is available before committing to a vendor's NPU chip. FASTPATH is currently available for both AMCC/MCC and Vitesse NPUs. FASTPATH for other NPUs will be available in the near future.
Another fresh approach to the software problem comes from Teja Technologies. Its recently announced Network Processing Operating System (NPOS) promises to cut software development time by as much as 50% when working with selected target NPUs. The NPOS provides an environment for developing both control plane and data plane software. NPOS runs primarily on the embedded control plane processor, typically a PowerPC, MIPS, or other RISC processor under an RTOS like Linus or VxWorks. Code produced by the software runs on both the control plane processor and on the multiple data plane processors.
Teja's value-added solution is that NPOS allows developers to express their network application logic as state machines independent from the target NPU. Programming is in a graphical flow format. The state machine logic is then mapped to target hardware by generating C, C++, or assembler code for the target NPU, resulting in a relatively fast, painless way to create code for the system. The company's initial version of NPOS is designed to support the Intel IXP1200 NPU. But Teja expects to offer versions for the most widely used NPU from Motorola C-Cube, IBM, and others.