知识卡片

Burst批量收发为何利用Cache更充分

专业/工作 · 1110.a

内容

如果每次只收发一个包,读取描述符时Cache Line会顺带加载相邻的几个描述符,但处理完当前包后这些”顺带”数据往往已被挤出Cache,下一个包到来时又得重新访问——白白浪费了这次预取。Burst模式一次处理8个、16个甚至32个包,让”顺带加载”的相邻数据正好是接下来要用的数据,一次Cache Line搬运可以服务好几个包,用更少的内存/低级缓存访问次数完成更多收发。这不是靠新算法取胜,而是把处理节奏和硬件按Cache Line搬数据的方式对齐。

参考来源

《深入浅出DPDK》第7章《网卡性能优化》