slab为什么要进行染色处理

结论

         先说一下结论哈!slab中着色区的作用,是用来避免cache行的地址争用(跟缓存命中率的意思差不多),因为cache是一个固定映射,一次只能映射64k的空间,也就是说,如果两个访存操作(A,B),并不在同一片区(64k)。那么就必须要先让A完成访存操作,再切换cache的映射区间,再完成B的访问操作。然而染色区就是一个地址偏移,让A,B访问的地址位于同一片区间,防止频繁切换带来的效率低下

Cache结构

         cache总共就32K,每个缓存行为64个字节,一共512行。为什么说cache行是一个固定映射呢,以内存物理地址是0x1000000为例,从0x1000000 —— 0x1008000 属于同一片空间(0x8000 = 2^14 =32K)。从0x1008000 —— 0x1010000 属于另一片空间。cache大小只有32k,也就是一次只能代表一片空间。如果两个访存操作,位于两片不同的空间,那么cache就需要进行切换,才能满足两个访存操作的要求

image-20220710192331345

所以说slab为啥要进行着色

         操作A要对0x10000008地址进行读写操做,而操作B要对0x10008008地址进行读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值