...
首页> 外文期刊>ACM SIGPLAN Notices: A Monthly Publication of the Special Interest Group on Programming Languages >Optimizing software cache performance of packet processing applications
【24h】

Optimizing software cache performance of packet processing applications

机译:优化数据包处理应用程序的软件缓存性能

获取原文
获取原文并翻译 | 示例

摘要

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.
机译:网络处理器(NP)由于其高性能和灵活性而被广泛用于许多类型的网络设备中。对于大多数NP,由于芯片面积,成本和功率限制,使用软件缓存而不是硬件缓存。因此,程序员应该对软件缓存管理负全部责任,这对大多数人来说既不直观也不容易。实际上,如果没有有效使用它,长的内存访问延迟将成为整个应用程序的关键限制因素。诸如硬件多线程,宽字访问和用于缓存的数据包访问组合之类的先前研究已经被应用来帮助程序员克服这一瓶颈。但是,它们中的大多数都没有充分利用包处理应用程序的特性,并且通常仅执行过程内优化。结果,由这些技术生成的二进制代码通常比针对某些应用程序的手工调试汇编程序所获得的性能要低。在本文中,我们提出了一种包括两种技术的算法-基于关键路径的分析(CPBA)和全局自适应定位(GAL),以优化数据包处理应用程序的软件缓存性能。数据包处理应用程序通常具有多个热路径,CPBA会根据其执行频率尝试插入本地化指令。对于进一步的优化,GAL通过过程间分析和优化消除了一些多余的本地化指令。我们的算法应用于一些代表性的应用程序。实验结果表明,它可以使平均速度提高1.974倍。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号