VPP高性能从何而来之一:cache优化

本文深入探讨VPP如何通过Cache优化提升性能,包括CacheLine对齐、避免Cache一致性问题、I-cache与D-cache优化及内存池管理。解析时间与空间局限性原理,展示VPP如何利用这些原则进行高效数据预取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


cache的哲学:时间局限性和空间局限性
时间局限性:程序即将用到的指令/数据可能就是目前正在用到的指令/数据,因此当前用到的指令或数据将会继续放在cache中以备将来继续使用;如循环语句的终止条件满足之前,处理器会反复用到循环语句中的指令;
这就是双层循环时候为什么尽量把循环次数更大的放在内层的原因
空间局限性:程序即将用到的指令/数据可能与目前正在用到的指令/数据在空间上相邻或接近。因此处理器在处理当前指令或数据时候,可以从内层中把相邻区域的指令或数据预取到cache中。这就是VPP向量报文的秘密。

cache优化包括如下几个方面

1.cache line 对齐

cache line bytes是指一次性从内存读到cache中的字节数。cache line对齐的目的,可减少CPU访问cache、cache访问内存的次数。因为数据跨越两个cache line,就意味着两次load或者两次store。如果数据结构是cache line对齐的, 就有可能减少一次读写。


 /*
 * Allow CFLAGS to override the configured / deduced cache line size
 */
#ifndef CLIB_LOG2_CACHE_LINE_BYTES
 
/* Default cache line size of 64 bytes. */
#ifndef CLIB_LOG2_CACHE_LINE_BYTES
#define CLIB_LOG2_CACHE_LINE_BYTES 6
#endif
 
#endif /* CLIB_LOG2_CACHE_LINE_BYTES defined */
 
#if (CLIB_LOG2_CACHE_LINE_BYTES >= 9)
#error Cache line size 512 bytes or greater
#endif
 
#define CLI
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值