Abstract
Network processors (NPs) are widely used in many types of networking equipment due to their high performance and flexibility. For most NPs, software cache is used instead of hardware cache due to the chip area, cost and power constraints. Therefore, programmers should take full responsibility for software cache management which is neither intuitive nor easy to most of them. Actually, without an effective use of it, long memory access latency will be a critical limiting factor to overall applications. Prior researches like hardware multi-threading, wide-word accesses and packet access combination for caching have already been applied to help programmers to overcome this bottleneck. However, most of them do not make enough use of the characteristics of packet processing applications and often perform intraprocedural optimizations only. As a result, the binary codes generated by those techniques often get lower performance than that comes from hand-tuned assembly programming for some applications. In this paper, we propose an algorithm including two techniques - Critical Path Based Analysis (CPBA) and Global Adaptive Localization (GAL), to optimize the software cache performance of packet processing applications. Packet processing applications usually have several hot paths and CPBA tries to insert localization instructions according to their execution frequencies. For further optimizations, GAL eliminates some redundant localization instructions by interprocedural analysis and optimizations. Our algorithm is applied on some representative applications. Experiment results show that it leads to an average speedup by a factor of 1.974.
- Product Brief -- Intel IXA SDK 4.3. http://download.intel.com/design/network/ProdBrf/30116605.pdf.Google Scholar
- Ageres PayloadPlus family of network processors. http://www.agere.com/telecom/network processors.html.Google Scholar
- AMCCs nP7xxx series of network processors. http://www.mmcnetworks.com/solutions/.Google Scholar
- J.-L. Baer and T.-F. Chen. Effective hardware-based data prefetching for high-performance processors. IEEE Trans. Comput., 44(5):609--623, 1995. Google Scholar
Digital Library
- J.-L. Baer, D. Low, P. Crowley, and N. Sidhwaney. Memory hierarchy design for a multiprocessor look-up engine. In PACT'03: Proceedings of the 12th International Conference on Parallel Architectures and Compilation Techniques, page 206, Washington, DC, USA, 2003. IEEE Computer Society. Google Scholar
Digital Library
- T. cker Chiueh and P. Pradhan. High performance IP routing table lookup using CPU caching. In INFOCOM (3), pages 1421--1428, 1999.Google Scholar
- CPort network processor family. http://www.windriver.com/cgibin/partnerships/directory/viewProd.cgi?id=1371.Google Scholar
- J. Dai, B. Huang, L. Li, and L. Harrison. Automatically partitioning packet processing applications for pipelined architectures. In PLDI '05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, pages 237--248, New York, NY, USA, 2005. ACM Press. Google Scholar
Digital Library
- J. W. Davidson and S. Jinturkar. Memory access coalescing: A technique for eliminating redundant memory accesses. In SIGPLAN Conference on Programming Language Design and Implementation, pages 186--195, 1994. Google Scholar
Digital Library
- B. C. J. J. E. Kohler, R. Morris and M. F. Kaashoek. The click modular router. In Transactions on Computer Systems, 2000. Google Scholar
Digital Library
- D. C. Feldemeir. Improving gateway performance with a routing-table cache. In Proceedings of IEEE INFOCOMM'88, March 1988.Google Scholar
Cross Ref
- D. Gay, P. Levis, R. von Behren, M. Welsh, E. Brewer, and D. Culler. The nesc language: A holistic approach to networked embedded systems, 2003.Google Scholar
- J. Hasan, S. Chandra, and T. Vijaykumar. Efficient use of memory bandwidth to improve network processor throughput, 2003.Google Scholar
- C. Hoare. Communicating sequential processes. In Prentice Hall International Series in Computer Science, 1985. Google Scholar
Digital Library
- IBM PowerNP network processors. http://www-3.ibm.com/chips/techlib/techlib.nsf/products/IBM PowerNP NP4GS3.Google Scholar
- Intel Internet Exchange Architecture Software Development Kit 4.3. http://www.intel.com/design/network/products/npfamily/sdk.htm.Google Scholar
- Intel IXP family of network processors. http://www.intel.com/design/network/products/npfamily/index.htm.Google Scholar
- Introduction to the Auto-Partitioning programming model. http://www.intel.com/design/network/papers/25411401.pdf.Google Scholar
- Intel C Compiler for Intel Network Processors -- Autopartitioning Mode User's Guide. http://www.intel.com.Google Scholar
- S. Iyer, R. Kompella, and N. McKeown. Analysis of a memory architecture for fast packet buffers, 2001.Google Scholar
- H. V. J. Mudigonda and R. Yavatkar. A Case for Data Caching in Network Processors. http://www.cs.utexas.edu/users/vin/pub/pdf/mudigonda04case.pdf.Google Scholar
- R. Jain. Characteristics of destination address locality in computer networks: A comparison of caching schemes. Computer Networks and ISDN Systems, 18(4):243--254, 1989/1990. Google Scholar
Digital Library
- L. Li, B. Huang, J. Dai, and L. Harrison. Automatic multithreading and multiprocessing of c programs for ixp. In PPoPP '05: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 132--141, New York, NY, USA, 2005. ACM Press. Google Scholar
Digital Library
- T. Liu, X.-F. Li, L. Liu, C.Wu, and R. Ju. Optimizing packet accesses for a domain specific language on network processors. In LCPC '05: International Workshop on Languages and Compilers for Parallel computing, 2005. Google Scholar
Digital Library
- Y. Luo, L. N. Bhuyan, and X. Chen. Shared memory multiprocessor architectures for software ip routers.Google Scholar
- E. B. M. Ruiz-Sanchez andW. Dabbous. Survey and Taxonomy of IP Address Lookup Algorithms. IEEE Network Magazine, March 2001.Google Scholar
- S. A. McKee, R. H. Klenke, K. L. Wright,W. A.Wulf, M. H. Salinas, J. H. Aylor, and A. P. Batson. Smarter memory: Improving bandwidth for streamed references. Computer, 31(7):54--63, 1998. Google Scholar
Digital Library
- J. Mudigonda, H. M. Vin, and R. Yavatkar. Overcoming the memory wall in packet processing: hammers or ladders? In ANCS '05: Proceedings of the 2005 symposium on Architecture for networking and communications systems, pages 1--10, New York, NY, USA, 2005. ACM Press. Google Scholar
Digital Library
- Network Processing Forum. IPSec Forwarding Application-Level Benchmark. http://www.oiforum.com/public/documents/IPSec Forward BM IA.pdf.Google Scholar
- Network Processing Forum. IPv4 Forwarding Benchmark. http://www.oiforum.com/public/documents/IPv4IARev.pdf.Google Scholar
- T. Sherwood, G. Varghese, and B. Calder. A pipelined memory architecture for high throughput network processors, 2003.Google Scholar
- S. Udayakumaran, A. Dominguez, and R. Barua. Dynamic allocation for scratch-pad memory using compile-time decisions. Trans. on Embedded Computing Sys., 5(2):472--511, 2006. Google Scholar
Digital Library
- T. Wolf and M. A. Franklin. Design tradeoffs for embedded network processors. In ARCS, pages 149--164, 2002. Google Scholar
Digital Library
- W. A. Wulf and S. A. McKee. Hitting the memory wall: Implications of the obvious. Computer Architecture News, 23(1):20--24, 1995. Google Scholar
Digital Library
- W. Zhang, G. Chen, M. Kandemir, and M. Karakoy. Interprocedural optimizations for improving data cache performance of array intensive embedded applications. In DAC '03: Proceedings of the 40th conference on Design automation, pages 887--892, New York, NY, USA, 2003. ACM Press. Google Scholar
Digital Library
- B. Zheng, J.-Y. Tsai, B. Y. Zhang, T. Chen, B. Huang, J. H. Li, Y. H. Ding, J. Liang, Y. Zhen, P.-C. Yew, and C.-Q. Zhu. Designing the agassiz compiler for concurrent multithreaded architectures. In Languages and Compilers for Parallel Computing, pages 380--398, 1999. Google Scholar
Digital Library
Index Terms
Optimizing software cache performance of packet processing applications
Recommendations
Optimizing software cache performance of packet processing applications
LCTES '07: Proceedings of the 2007 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systemsNetwork processors (NPs) are widely used in many types of networking equipment due to their high performance and flexibility. For most NPs, software cache is used instead of hardware cache due to the chip area, cost and power constraints. Therefore, ...
Cache Architecture for High-Speed Multidimensional Packet Processing
ICICSE '12: Proceedings of the 2012 Sixth International Conference on Internet Computing for Science and EngineeringIn this paper, we implement a multi-dimensional packet classification that is based on the hierarchical binary prefix search. We first implement the multi-dimensional binary prefix search packet classification on Intel IXP2400 Network Processor that ...







Comments