In modern telecommunications networks, information is transferred as packet data which is in contrast to older telecommunications networks that carried information as analog signals such as in the public switched telephone network or analog TV/Radio networks. The processing of these packets has resulted in the creation of integrated circuits that are optimised to deal with this form of packet data. Network Processors have specific features or architectures that are provided to enhance and optimise packet processing within these networks. Network processors have evolved into ICs with specific functions. This evolution has resulted in more complex and more flexible ICs being created. The newer circuits are programmable and thus allow a single hardware IC design to undertake a number of different functions, where the appropriate software is installed. Network processors are used in the manufacture of many different types of network equipment such as:
In the generic role as a packet processor, a number of optimised features or functions are typically present in a network processor, which include:
Pattern matching – the ability to find specific patterns of bits or bytes within packets in a packet stream.
Key lookup – the ability to quickly undertake a database lookup using a key to find a result, typically routing information.
Computation
Data bitfield manipulation – the ability to change certain data fields contained in the packet as it is being processed.
Queue management – as packets are received, processed and scheduled to be sent onwards, they are stored in queues.
Control processing – the micro operations of processing a packet are controlled at a macro level which involves communication and orchestration with other nodes in a system.
Quick allocation and re-circulation of packet buffers.
Architectural paradigms
In order to deal with high data-rates, several architectural paradigms are commonly used:
Pipeline of processors - each stage of the pipeline consisting of a processor performing one of the functions listed above.
Specialized microcoded engines to more efficiently accomplish the tasks at hand.
With the advent of multicore architectures, network processors can be used for higher layer processing.
Additionally, traffic management, which is a critical element in - network processing and used to be executed by a variety of co-processors, has become an integral part of the network processor architecture, and a substantial part of its silicon area is devoted to the integrated traffic manager. Modern network processors are also equipped with low-latency high-throughput on-chip interconnection networks optimized for the exchange of small messages among cores. Such networks can be used as an alternative facility for the efficient inter-core communication aside of the standard use of shared memory.
Applications
Using the generic function of the network processor, a software program implements an application that the network processor executes, resulting in the piece of physical equipment performing a task or providing a service. Some of the applications types typically implemented as software running on network processors are:
Packet or frame discrimination and forwarding, that is, the basic operation of a router or switch.
Quality of service enforcement – identifying different types or classes of packets and providing preferential treatment for some types or classes of packet at the expense of other types or classes of packet.
Access Control functions – determining whether a specific packet or stream of packets should be allowed to traverse the piece of network equipment.
Intel – Intel has ceased all development in the area of network processors in 2006, but its market share still grew in 2007 and 2008, topping at 38%, due to previously developed products. Netronome currently has the license to develop and manufacture IXP processors with more than 16 cores.