A number of companies are developing software and sytems which rely on packet processing at high speeds to deliver their respective functionality. This includes companies in the networking and security space. The debate over custom ASICs versus off-the-shelf components has raged on over the years. Over the last five years a new class of chip has arrived on the scene called the network processor. It is supposed to give the engineer the speed of ASICs with the flexibility of software. If you are interested in learning more about NPUs and the debate over the merits of NPUs versus ASICs, I suggest reading this article by Douglas Comer in the Internet Protocol Journal (link via Martin Tobias). Douglas sums up the debate as follows:
Although the demand for speed pushed engineers to use ASIC hardware in third-generation designs, the results were disappointing. First, building an ASIC costs approximately US$1 million. Second, it takes 18 to 22 months to generate a working ASIC chip. Third, although engineers can use software simulators to test ASIC designs before chips are manufactured, networking tasks are so complex that simulators cannot handle the thousands of packet sequences needed to verify the functionality. Fourth, and most important, ASICs are inflexible.
The inflexibility of ASICs impacts network systems design in two ways. First, changes during construction can cause substantial delay because a small change in requirements can require massive changes in the chip layout. Second, adapting an ASIC for use in another product or the next version of the current project can introduce high cost and long delays. Typically, a silicon respin takes an additional 18 to 20 months.
Given the need for flexibility and speed to market (particularly in the security space), a number of companies I have seen over the last few years have taken advantage of NPUs to deliver product with good enough performance with more up-to-date functionality than their ASIC brethren. As we move on, I expect to see further improvements in NPUs in terms of speed and programmability as we all continue to recognize that the value is in the software.