slab着色与cpu硬件高速缓存
来源:互联网 发布:手机淘宝中的一元抢拍 编辑:程序博客网 时间:2024/06/03 11:19
同一硬件高速缓存行可以映射RAM中多个不同的块,相同大小的对象倾向于存放在高速缓存内相同的偏移量处。在不同slab内具有相同偏移量的对象最终很可能映射到同一高速缓存行中。而使用slab分配器的对象通常是频繁使用的小对象,高速缓存的硬件可能因此而花费内存周期在同一高速缓存行与RAM内存单元之间来来往往的传送两个对象。 如下例:假设cache行为32Bytes,CPU包含512个cache行(缓存大小16K)。 假设对象A,B均为32B,且A的地址从0开始,B的地址从16K开始,则根据组相联或直接相联映射方式(全相联方式很少使用),A,B对象很可能映射到cache的第0行,此时,如果CPU交替的访问A,B各50次,每一次访问cache第0行都失效,从而需要从内存传送数据。而slab着色就是为解决该问题产生的,不同的颜色代表了不同的起始对象偏移量,对于B对象,如果将其位置偏移向右偏移32B,则其可能会被映射到cache的第1行上,这样交替的访问A,B各50次,只需要2次内存访问即可。 这里的偏移量就代表了slab着色中的一种颜色,不同的颜色代表了不同的偏移量,尽量使得不同的对象的对应到不同的硬件高速缓存行上,以最大限度的提高效率。实际的情况比上面的例子要复杂得多,slab的着色还要考虑内存对齐等因素,以及slab内未用字节的大小,只有当未用字节数足够大时,着色才起作用。 http://blog.chinaunix.net/u2/87570/showart_2369813.html
- slab着色与cpu硬件高速缓存
- slab着色与cpu硬件高速缓存
- slab着色与cpu硬件高速缓存
- slab着色与cpu硬件高速缓存
- slab着色
- slab着色
- slab着色
- 进程与内存9-高速缓存4(硬件高速缓存)
- 硬件高速缓存
- 内存管理-SLAB(创建SLAB高速缓存kmem_cache_create())
- 内存管理-SLAB(销毁SLAB高速缓存kmem_cache_destroy())
- 进程与内存6-高速缓存1(每CPU页框高速缓存和内存高速缓存)
- slab 着色的理解
- slab着色理解
- slab 着色的理解
- 硬件高速缓存&TLB
- LDD3源码分析之slab高速缓存
- LDD3源码分析之slab高速缓存
- 全虚拟化下的超级调用
- Grails 查询分页 小试
- 引用 SQL语句大全
- 用Extjs框架搭建ArcGIS Server Web ADF开发环境
- send返回值
- slab着色与cpu硬件高速缓存
- 3Q之战
- 时间倒计时 JS
- 讲解如何利用NT Native API获取NT系统的CPU使用率(支持多核)
- 地址联动选择 JS
- js正则表达式教程
- 一个简单的单摆
- 123
- PIVOT详解