Abstract
The demand for ever-increasing performance and flexibility in today's networks has led to the development of network processors. Network processors combine the flexibility of a microprocessor with the performance of one or more Application Specific Integrated Circuits (ASICs) to provide efficient packet processing. Network processors differ greatly in their architectural designs as they are targeted for a wide range of applications and are they must be designed and implemented to maintain trade-offs between performance and flexibility. In this paper, we attempt to identify the key aspects of network processor architectures, to evaluate these key aspects, and to outline the most important current and future architectural trends. Our evaluation directly relates the key architectural features identified to specific network processor products currently available in the market. The main conclusion of the paper is that network processor manufacturers are trying to build a common programmable framework across a large number of applications. It is not yet entirely clear whether or not this approach will be entirely viable.