DPDK关键技术学习笔记

cache预取技术技术

1.cache提升性能原理

cache对于大多数程序员是透明的,cache之所以对性能有提升,主要体现在:

  • 时间局部性:程序即将使用的数据,和当前的正在使用的数据有重叠,比如for循环中会重复使用相同的变量。所以将当前正在使用的数据,缓存在cache中一段时间,可以提升运行性能。
  • 空间局部性:程序即将使用的数据,和当前的数据可能在空间上是连续的,比如遍历数组,那么将相邻内存区域的数据进行cache缓存,能够提升运行性能。

2.硬件预取和软件预取

cache就是预测数据并将数据缓存到cache中。cahce预取包括:

  • 硬件预取:在程序访问数据出现一定规律,且硬件预取单元捕捉到这种规律,就会触发cache预取。
  • 软件预取:硬件预取单元捕捉的规律如果和程序实际的规律不一致,反而会出现性能下降的情况,比如为了cache不需要的数据,替换了需要的数据。为了实现软件对cache的控制,一些处理增加了预取指令,如下表:
PREFETCH0 将数据放在每一级缓存
PREFETCH1 将数据放在L1之外的每一级缓存
PREFETCH2 将数据放在L1、L2之外的每一级缓存
PREFETCHNTA 和PREFETCH0功能类似,区别在于数据使用一次之后,就可以被淘汰了

如果软件cache使用不当,会造成cache区填充了大量没用数据,反而导致程序性能下降,因此软件cache不应频繁使用,只

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值