Skip to main content
QUICK REVIEW

[论文解读] The nanoPU: Redesigning the CPU-Network Interface to Minimize RPC Tail Latency

Stephen Ibanez, Alex Mallery|arXiv (Cornell University)|Oct 23, 2020
Interconnection Networks and Systems参考文献 36被引用 8
一句话总结

nanoPU 是一种领域专用的 CPU 核心,它绕过内存层次结构和缓存,将 RPC 数据包直接路由至 CPU 寄存器文件,实现最低仅 65ns 的端到端延迟——比当前最先进的系统快 13 倍。通过将核心选择、线程调度和可靠传输等功能卸载至硬件,它实现了低于 1μs 的有界尾部延迟,从而为微服务和分布式应用提供了高吞吐量、亚微秒级的 RPC 性能。

ABSTRACT

The nanoPU is a new networking-optimized CPU designed to minimize tail latency for RPCs. By bypassing the cache and memory hierarchy, the nanoPU directly places arriving messages into the CPU register file. The wire-to-wire latency through the application is just 65ns, about 13x faster than the current state-of-the-art. The nanoPU moves key functions from software to hardware: reliable network transport, congestion control, core selection, and thread scheduling. It also supports a unique feature to bound the tail latency experienced by high-priority applications. Our prototype nanoPU is based on a modified RISC-V CPU; we evaluate its performance using cycle-accurate simulations of 324 cores on AWS FPGAs, including real applications (MICA and chain replication).

研究动机与目标

  • 降低云原生微服务架构中的 RPC 尾部延迟,当前其性能受限于响应时间的高波动性。
  • 解决传统 CPU-NIC 通信路径中内存与缓存层次结构带来的根本性瓶颈,该瓶颈导致延迟不可预测。
  • 设计一种硬件优化的 CPU 核心,可直接在寄存器文件中处理网络数据包,消除软件栈开销和内存访问延迟。
  • 通过硬件级调度与拥塞控制实现高优先级 RPC 的有界尾部延迟,确保确定性性能。
  • 通过重新设计 CPU-网络接口,将数据包视为与内存数据同等重要的第一类公民,实现高效、低开销的亚微秒级 RPC。

提出的方法

  • 通过将传入的 RPC 数据包直接路由至 CPU 的寄存器文件,绕过缓存和主内存层次结构,消除内存访问延迟。
  • 采用类似 JBSQ 的负载均衡策略,在硬件中实现线程调度与核心选择,避免软件引入的调度开销。
  • 在 NIC 中集成可编程 P4 流水线,实现头部和传输层处理的并行化,支持流水线式数据包处理。
  • 在硬件中实现 NDP 拥塞控制协议,以减少网络拥塞并改善端到端延迟。
  • 以修改后的 RISC-V 核心作为原型,在 AWS FPGA 上进行周期精确仿真,评估 324 个核心的性能表现。
  • 用硬件实现的可靠传输层替代传统的软件网络栈,确保消息完整交付至 CPU。

实验结果

研究问题

  • RQ1是否可以通过消除内存与缓存层次结构瓶颈,重新设计 CPU 核心,以最小化 RPC 的端到端延迟?
  • RQ2硬件卸载核心选择、线程调度和传输协议在高吞吐 RPC 工作负载中,能在多大程度上降低尾部延迟?
  • RQ3是否可行通过硬件优化的、以寄存器文件为先的架构,实现 RPC 的有界尾部延迟(例如 <1μs)?
  • RQ4与传统的基于内存的数据包处理相比,直接将数据包路由至寄存器文件在中位延迟和尾部延迟方面表现如何?
  • RQ5领域专用的 nanoPU 核心是否能在真实分布式应用中保持可编程性和可扩展性的同时,实现亚微秒级的 RPC 性能?

主要发现

  • nanoPU 实现了 65ns 的端到端延迟,相比当前最先进的系统(中位延迟 850ns)提升了 13 倍。
  • 通过绕过缓存和内存层次结构,nanoPU 消除了应用程序内存访问带来的干扰,显著降低了尾部延迟。
  • 硬件级核心选择与线程调度减少了调度开销,实现了确定性且低延迟的 RPC 处理。
  • nanoPU 在硬件中实现了 NDP 拥塞控制,提升了拥塞情况下的性能,并减少了网络引起的延迟波动。
  • 该系统实现了有界尾部延迟,保证任何符合规范的 RPC 在到达 NIC 后 1μs 内完成。
  • 在 324 核心的 AWS FPGA 平台上的周期精确仿真结果表明,nanoPU 可在持续 10Tb/s 吞吐量下实现每秒超过 5 亿次 RPC。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。