从 I/O 生命周期推导资源预算
问题
“达到 100 Gbps”不是一个足以指导实现的性能目标。它没有说明数据经过哪些阶段,也没有回答瓶颈会落在 DDR、SRAM、PCIe、网络还是计算流水线上。
当前结论
性能设计应从单个 I/O 的完整生命周期开始:
接收 → 解析 → 查表 → 排队 → 搬运 → 完成 → 回收
对每个阶段分别记录:
- 每个 I/O 读写多少字节;
- 占用多少片上状态;
- 执行多少 Cycles;
- 最多允许多少并发项;
- 背压出现在哪里;
- 失败后由谁释放资源。
一个粗略换算
100 Gbps 的线速约等于 12.5 GB/s。若数据在 DDR 中经历一次写入和一次读取,仅负载数据就需要约 25 GB/s 带宽,还未计入描述符、元数据、缓存行放大和协议开销。
因此,带宽预算至少应写成:
DDR 带宽 = 线速 × 搬运次数 × 放大系数 + 元数据流量
SRAM 预算则应从并发深度推导:
SRAM 占用 = 单 I/O 状态大小 × 最大在途 I/O 数
未决
- 小包场景中,Cycles 预算是否比带宽预算更早成为瓶颈?
- 跨 NUMA 访问和 PCIe Read Completion 应如何纳入统一模型?
- 哪些指标可以在仿真环境与真实硬件上使用同一套采集方法?