Compilation and Architecture Exploration for Network Processors
Typical network processors have a set of programmable processors designed to efficiently execute an instruction set specifically designed for packet processing and forwarding. Overall performance is further enhanced with the inclusion of specialized coprocessors (e.g. for table lookup or checksum computation) and by expanding the data flow, supporting necessary packet modifications. Due to the specialized architectures of network processing units (NPUs), classical compiler technology is often insufficient and so, more dedicated code generation and optimization techniques are needed to fully exploit the processors' capabilities and demands, e.g. by Bit Packet Addressing. Furthermore, the huge number of programmable cores demands for automated task-partitioning algorithms to fully exploit the high computing potential of network processors.