Abstract
Network processors (NPs) typically contain multiple concurrent processing cores. State-of-the-art programming techniques for NPs are invariably low-level, requiring programmers to partition code into concurrent tasks early in the design process. This results in programs that are hard to maintain and hard to port to alternative architectures. This paper presents a new approach in which a high-level program is separated from its partitioning into concurrent tasks. Designers write their programs in a high-level, domain-specific, architecturally-neutral language, but also provide a separate Architecture Mapping Script (AMS). An AMS specifies semantics-preserving transformations that are applied to the program to re-arrange it into a set of tasks appropriate for execution on a particular target architecture. We (i) describe three such transformations: pipeline introduction, pipeline elimination and queue multiplexing; and (ii) specify when each can be safely applied.
As a case study we describe an IP packet-forwarder and present an AMS script that partitions it into a form capable of running at 3Gb/s on an Intel IXP2400 Network Processor.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Allen, J.R., Bass, B.M., Basso, C., Boivie, R.H., Calvignac, J.L., Davis, G.T., Frelechoux, L., Heddes, M., Herkesdorf, A., Kind, A., Logan, J.F., Peyravian, M., Sabhikhi, M.A.R.R.K., Siegel, M.S., Waldvogel, M.: PowerNP network processor: Hardware, software and applications. IBM Journal of research and development 47(2–3), 177–194 (2003)
Barros, E., Sampaio, A.: Towards provably correct hardware/software partitioning using occam. In: Proceedings of the 3rd international workshop on Hardware/software co-design, pp. 210–217. IEEE Computer Society Press, Los Alamitos (1994)
Burstall, R.M., Darlington, J.: A transformation system for developing recursive programs. In: JACM, vol. 24(1) (1977)
Ennals, R., Sharp, R., Mycroft, A.: Linear types for packet processing. In: Proceedings of the European Symposium on Programming, ESOP (2004)
Feather, M.: A system for assisting program transformation. ACM Transactions on Programming Languages and Systems 4(1), 1–20 (1982)
Freescale. C-5 Network Processor Architecture Guide (2001)
George, L., Blume, M.: Taming the IXP network processor. In: Proceedings of the ACM SIGPLAN 2003 conference on Programming Language Design and Implementation, pp. 26–37 (2003)
Hwang, C.-T., Hsu, Y.-C., Lin, Y.-L.: Scheduling for functional pipelining and loop winding. In: Proceedings of the 28th conference on ACM/IEEE design automation, pp. 764–769. ACM Press, New York (1991)
Ikinci, M.: Multilevel heuristics for task assignment in distributed systems. Master’s thesis, Bilkent University, Turkey (1998)
Intel Corporation. Intel IXP2400 Network Processor: Flexible, high-performance solution for access and edge applications. Available from, http://www.intel.com/design/network/papers/ixp2400.htm
Intel Corporation. PacLang, http://sourceforge.net/projects/paclang/
Intel Corporation. Microengine C Language Support Reference Manual (2003)
Lam, M.: Software pipelining: An effective scheduling technique for VLIW machines. In: Proceedings of the ACM SIGPLAN conference on Programming Language Design and Implementation, pp. 318–328 (1988)
Lam, M.: Compiler optimizations for asynchronous systolic array programs. In: Proceedings of the ACM SIGPLAN-SIGACT symposium on Principles of Programming Languages (1998)
Lo, V.M.: Heuristic algorithms for task assignment in distributed systems. IEEE Transactions on Computers, 1384–1397 (1988)
Marinescu, M.-C.V., Rinard, M.: High-level automatic pipelining for sequential circuits. In: Proceedings of the 14th international symposium on Systems Synthesis, pp. 215–220. ACM Press, New York (2001)
Mycroft, A., Sharp, R.: A statically allocated parallel functional language. In: Welzl, E., Montanari, U., Rolim, J.D.P. (eds.) ICALP 2000. LNCS, vol. 1853, p. 37. Springer, Heidelberg (2000)
Network Working Group. RFC1812: Requirements for IP version 4 routers
Papaefthymiou, M.C.: On retiming synchronous circuitry and mixed integer optimization. Master’s thesis, Massachusetts Institute of Technology (1990)
Radisys. ENP-2611 network processor board, http://www.radisys.com
Teja. Teja NP: The first software platform for multiprocessor system-on-chip architectures, http://www.teja.com
Winskel, G.: The formal semantics of programming languages: an introduction. Foundations of computing. MIT Press, Cambridge (1993)
Yavatkar, R., Vin, H.: IEEE Network Magazine. Special issue on Network Processors: Architecture, Tools, and Applications 17(4) (July 2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ennals, R., Sharp, R., Mycroft, A. (2005). Task Partitioning for Multi-core Network Processors. In: Bodik, R. (eds) Compiler Construction. CC 2005. Lecture Notes in Computer Science, vol 3443. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-31985-6_6
Download citation
DOI: https://doi.org/10.1007/978-3-540-31985-6_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25411-9
Online ISBN: 978-3-540-31985-6
eBook Packages: Computer ScienceComputer Science (R0)