slab着色,可以减少cache conflict miss概率么?
以内部slab为例,管理区 + object总大小+left_over size = 1page,我们做个极端假设,cache为 direct-mapped caches.
1、没有采用slab着色:
页面起始为slab管理区,后接所有object,后接left_over大小空间。如果有两个slab管理区,一个是A,一个是B,那么对于A、B中给出相同的索引时,必定发生conflict miss.
2、采用slab着色:
首先看下代码片段:
struct kmem_cache *kmem_cache_create(const char *name, size_t size, size_t align,
unsigned long flags, void (*ctor)(void*))
{
......
left_over = caculate_slab_order(cachep, size, align, flags);
cachep->colour_off = cache_line_size();
cachep->colour = left_over / cachep->colour_off;
} void kmem_list3_init(struct kmem_list3 *parent)
{
......
parent->colour_next = ;
} int cache_grow(struct kmem_cache *cachep, gfp_t flags, int nodeid, void *objp)
{
.......
l3 = cachep->nodelists[nodeid];
offset = l3->colour_next;
l3->colour_next++;
if(l3->colour_next > cachep->colour)
l3->colour_next = ;
offset *= cachep->colour_off; slabp = alloc_slabmgmt(cachep, objp, offset, .....)
|-->slabp = objp + offset;
|-->offset += cachep->slab_size;
|-->slabp->colour = offset;
|-->slabp->s_mem = objp + offset; //!!!!!!!!!!!!!着色
.......
}
页面起始是一个offset大小的着色量,后接slab管理区,后接所有的object,后接部分剩余空间。那么对于A、B中给出相同的索引时,不会发生conflict miss。问题在于:对于先同的索引这是可以避免的,但是对于不同的索引仍会发生conflict miss,当然对于cache 而言,conflict miss无法避免。在采用着色后,不同的索引也会导致conflict miss。那么我们面对的问题是:对于A、B总给出相同索引的概率有多大,如果概率很大,自然减少了conflit miss,如果给出相同索引的概率较小,则conflict将会趋于平均化。
我不知到A、B中给出相同索引的概率会有多大,但是对于采用着色可以减少conflict miss概率,我持怀疑态度……
slab着色,可以减少cache conflict miss概率么?的更多相关文章
- TMS320C64x DSP L1 L2 Cache架构(1)——C64x Cache Architecture
[前沿]研究生阶段从事于DSP和FPGA技术的相关研究工作,学习并整理了大量的技术资料,包括TI公司的官方文档和网络上的详细笔记,花费了大量的时间和精力总结了前人的工作成果.无奈工作却从事于嵌入式技术 ...
- 求解第N个素数
任务 求解第 10,0000.100,0000.1000,0000 ... 个素数(要求精确解). 想法 Sieve of Eratosthenes 学习初等数论的时候曾经学过埃拉托斯特尼筛法(Sie ...
- Flink 核心技术浅析(整理版)
1. Flink简介 Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink流执行引擎(streaming dataflow engine),提供支 ...
- 深入理解Apache Flink
Apache Flink(下简称Flink)项目是大数据处理领域最近冉冉升起的一颗新星,其不同于其他大数据项目的诸多特性吸引了越来越多人的关注.本文将深入分析Flink的一些关键技术与特性,希望能够帮 ...
- Spark/Storm/Flink
https://www.cnblogs.com/yaohaitao/p/5703288.html Spark Streaming与Storm的应用场景 对于Storm来说:1.建议在那种需要纯实时, ...
- Flink的入门
Apache Flink(下简称Flink)项目是大数据处理领域最近冉冉升起的一颗新星,其不同于其他大数据项目的诸多特性吸引了越来越多人的关注.本文将深入分析Flink的一些关键技术与特性,希望能够帮 ...
- [软工课程博客] 求解第N个素数
任务 求解第 10,0000.100,0000.1000,0000 ... 个素数(要求精确解). 想法 Sieve of Eratosthenes 学习初等数论的时候曾经学过埃拉托斯特尼筛法(Sie ...
- 深入理解Apache Flink核心技术
深入理解Apache Flink核心技术 2016年02月18日 17:04:03 阅读数:1936 标签: Apache-Flink数据流程序员JVM 版权声明:本文为博主原创文章,未经博主允许 ...
- 脱离JVM? Hadoop生态圈的挣扎与演化
本文由知乎<大数据应用与实践>专栏 李呈祥授权发布,版权所有归作者,转载请联系作者! 新世纪以来,互联网及个人终端的普及,传统行业的信息化及物联网的发展等产业变化产生了大量的数据,远远超出 ...
随机推荐
- One-hot 编码/TF-IDF 值来提取特征,LAD/梯度下降法(Gradient Descent),Sigmoid
1. 多值无序类数据的特征提取: 多值无序类问题(One-hot 编码)把“耐克”编码为[0,1,0],其中“1”代表了“耐克”的中 间位置,而且是唯一标识.同理我们可以把“中国”标识为[1,0],把 ...
- python pandas ---Series,DataFrame 创建方法,操作运算操作(赋值,sort,get,del,pop,insert,+,-,*,/)
pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包 pandas 也是围绕着 Series 和 DataFrame 两个核心数据结构展开的, 导入如下: from panda ...
- hadoop 大数据 介绍
1.Hadoop是一个大家族,是一个开源的生态系统,是一个分布式运行系统,是基于Java编程语言的架构.不过它最高明的技术还是HDFS和MapReduce,使得它可以分布式处理海量数据. 2.HDFS ...
- [转]请用fontAwesome代替网页icon小图标
原文地址:https://www.cnblogs.com/wangfupeng1988/p/4129500.html 1. 引言 网页小图标到处可见,如果一个网页都是干巴巴的文字和图片,而没有小图标, ...
- Python MQTT 最简单例程搭建
MQTT 不是普通的 client server 模型,他还加了一个 代理者. 根据剑锋的提示,先下载了 paho-mqtt 模块, ubuntu 14.04 上下载方法如下: sudo apt-ge ...
- [serial]基于select/poll/epoll的串口操作
转自:http://www.cnblogs.com/darryo/p/selectpollepoll-on-serial-port.html In this article, I will use t ...
- at91sam9260 笔记1
http://wenku.baidu.com/link?url=pK0w3c6oYX_phtiYN7PD97TivWFnwnu9yrie5b7HofmDXDVbuRciB35Izx_NGDiYz1U5 ...
- php 验证码代码
1.js代码 function fleshVerify(type){ //重载验证码 var timenow = new Date().getTime(); if (type) { $('verify ...
- android开发(39) 使用android系统的账户中心管理账
在android的系统设置页,有个“账户”分组,里面有很多的账户,很多app都使用了这个账户系统,比如“谷歌”,“淘宝”,“微信”,“华为”等.这些都是大公司呢,有没有可能我们也使用这个,让我们的软件 ...
- android适配pad和部分手机底部虚拟按键+沉浸式状态栏
在使用沉浸式状态栏设置界面全屏时发现pad和部分手机(华为和魅族系统自带)屏幕底部会带有虚拟按键,遮挡住界面本身的一部分. 为了设置隐藏,在网上找了一些方法,设置Activity主题再在布局加fits ...