高级检索

    Neptune:一种通用网络处理器微结构模拟和性能仿真框架

    Neptune: A Framework for Generic Network Processor Microarchitecture Modeling and Performance Simulation

    • 摘要: 网络包处理是网络设备的基本功能,涉及报文修改、校验和与哈希计算、数据包镜像或过滤、统计限速等多项任务. 作为网络包处理的重要部件,网络处理器(network processor,NP)基于处理器结构,为网络设备提供线速的性能和充分的可编程能力,但其架构多样,可分为单段式和多段式架构,现有模拟方法无法同时对二者性能进行模拟仿真. 因此,提出一种通用网络处理器的结构模拟和性能仿真框架Neptune,采用多段式架构作为硬件抽象,使用事件链表、核间队列结构为数据通路和多段式架构模拟提供保障,同时满足单段式架构模拟需求. 另外,借助同步图计算模式进行准确的并行模拟,并采用混合事件与时间驱动方法保障模拟高效性. 实际测试中,Neptune以95%以上精确度支持2种架构的模拟,并以3.31MIPS的性能对网络处理器进行模拟,相较PFPSim取得一个数量级的性能提升. 最后,展示了3个运用该框架进行网络处理器优化分析的应用案例.

       

      Abstract: Network packet processing is a fundamental function of network devices, involving tasks such as packet modification, checksum and hash computation, mirroring, filtering, and packet metering. As a domain-specific processor, Network Processors (NP) can provide line-rate performance and programmability for network packet processing. However, due to different design requirement, architecture of NP differs, including single-phase NP and multi-phase NP, posing challenges for NP designers. Existing simulation methods mainly target single NP or single architecture and are not available to explore both of the architectures. This paper proposes Neptune, an analyzing framework for generic network processor microarchitecture modeling and performance simulation. Based on detailed analysis, Neptune adopts multi-phase NP architecture as the hardware model while providing ability to simulate single-phase architecture. Besides, Neptune employs event list mechanism and inter-core queues to support simulation of different data paths and various scheduling strategies in multi-phase NP. Furthermore, Neptune utilizes bulk synchronous parallel graph computing mechanism and takes advantage of both event-driven and time-driven simulation, ensuring accuracy and efficiency. Our experiment shows that Neptune achieves over 95% accuracy in simulating both of the architectures and simulates network processors at a performance of 3.31MIPS, achieving an order of magnitude improvement over PFPSim. We illustrate the universality and capability of the Neptune simulation framework through three specific cases. Firstly, we evaluated multi-phase and single-phase NP, showing that single-phase NP can achieve up to a 1.167x performance improvement. Secondly, we optimize the packet parsing module using a programmable pipeline and analyze its performance differences. Finally, we use Neptune to test the performance of the packet processing engine under different thread counts, providing insights for software and hardware multi-threading optimization.

       

    /

    返回文章
    返回