cacheline基本理论
一.cacheline
1.cache:解决cpu频率与内存访问之间速度差距越来越大的问题

2.cacheline:cpu cache的最小单位,主流为64B
3.指导:访问数组数据在同一个cacheline内速度很快,若跨cacheline,则速度会慢很多,因为可能存在cache miss,需要将内存数据写入cache中
二.cacheline与内存之间的映射策略
1.hash策略:hash值的计算需要10K个cycle,无法满足cache访问几个或者几十个cycle的要求
2.Fully Associative:时间问题
3.Direct Mapped:对每块内存的访问是等概率的,否则cache使用率很低,并且冲突很多
4.N-Way Set Associative:高效
a.将N个cacheline分为一组
b.每个cacheline中,根据偏移进行寻址,所以64B,需要6bit进行表示
如下:4M cache,设N=16,则
①4M内存,16个64B的cacheline为一组,共有2^12组Set,用中间12bit表示
②最后6bit表示64B的cacheline内偏移
实际cache寻址过程如下:
①根据64bit表示的addr的12bit计算出set号,这样的话,只需要在本set内比较16个cacheline即可
②根据最后6bit表示的cacheline偏移,计算偏移地址
③对于set内的16个cacheline,结合前46bit,挨个比较每个cacheline中对应偏移的地址是否与addr相等
④若找到,则命中;否则cache miss

三.cacheline替换策略LRU/Random
1.LRU:最近最少使用算法,核心思想是最近被使用的内存在将来也有很大可能被使用
四、cacheline与内存对齐之间的性能问题
参考:
http://cenalulu.github.io/linux/all-about-cpu-cache/
https://en.wikipedia.org/wiki/Cache_placement_policies
cacheline基本理论的更多相关文章
- 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法
若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...
- Atitit.软件研发团队建设原理与概论 理论
Atitit.软件研发团队建设原理与概论 理论 培训 团队文化建设(内刊,ppt,书籍,杂志等) 梯队建设 技术储备人才的问题 团队建设--小红花评比. 团队建设--文化墙.doc 户外拓展 1. 团 ...
- 我的“第一次”,就这样没了:DDD(领域驱动设计)理论结合实践
写在前面 插一句:本人超爱落网-<平凡的世界>这一期,分享给大家. 阅读目录: 关于DDD 前期分析 框架搭建 代码实现 开源-发布 后记 第一次听你,清风吹送,田野短笛:第一次看你,半弯 ...
- 分布式理论之一:Paxos算法的通俗理解
维基的简介:Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是 LaTeX 中的"La",此人现在在微软研究院)于1990年提出的一种基于消息传递且具有高度容错特性 ...
- 仓位管理 – 1.理论篇
看到文章标题中的"仓位管理",读者可能会认为它只适用于股市投资.其实不然.只要是投资都涉及到风险.回报率.投资额度,都会涉及到仓位管理.再者,人生本身就带着无数的抉择.风险和回报, ...
- UI-初识君面之理论篇
一个好的app不光要用好的功能,还要有好的界面,这样内外兼修才算得上是一个好的App.其实跟人一样,不能只刷帅,要有内涵(看清楚哦,内涵不是指闷骚).不知不觉在园子里已经晃了八年,来深也八年了,.NE ...
- JSP动作元素——————理论篇
JSP动作元素的组成及作用 JSP使用Action来控制Servlet引擎的行为,可重复使用JavaBean组件. 常用Action: jsp:param 在 jsp:include.js ...
- 企业SOA架构设计理论
SOA简介 SOA(Service-Oriented Architecture,面向服务架构)是一种将信息系统模块化为服务的架构风格.拥有了服务之后,我们就可以迅速地将这些服务按不同方式重新组合,从而 ...
- js中函数的一些理论知识
函数的一些理论知识 1. 函数: 执行一个明确的动作并提供一个返回值的独立代码块.同时函数也是javascript中的一级公民(就是函数和其它变量一样). 2.函数的 ...
随机推荐
- ScheduledThreadPoolExecutor Usage
refs: https://blog.csdn.net/wenzhi20102321/article/details/78681379 对比一下Timer和ScheduledThreadPoolExe ...
- 酷痞运行于openwrt路由系统
欢迎你进入酷痞的物联网世界.这里有着自由的空气和自然的气息.接下来我将告诉你如果一步步建立一个自己专属的物联网平台. 酷痞官网地址:http://icoolpy.com 由于openwrt系统复杂 ...
- Service的绑定过程
--摘自<Android进阶解密> 第一步:ContextImpl到AMS的调用过程 第二步:Service的绑定过程 1)几个与Service相关的对象类型 * ServiceRecor ...
- 《团队作业第一周》五小福团队作业——UNO
<团队作业第一周>团队作业--UNO 一.团队展示 队员学号 队名:五小福 (真是个红红火火恍恍惚惚的队名)> 拟作的团队项目描述 基于安卓开发的有趣味性的UNO纸牌小游戏 队员风采 ...
- Numpy初步
1,获取矩阵行列数 Import numpyasnp #创建二维的naaray对象 a=np.array([[1,2,3,4,5],[6,7,8,9,10]]) print(a.shape) #返 ...
- IDEA激活方式(亲测有效)加汉化方式
2018/12/3 最新破解方法 将0.0.0.0 account.jetbrains.com保存到本地host文件中 然后使用注册码 K71U8DBPNE-eyJsaWNlbnNlSWQiOiJLN ...
- ajax多图上传
百度云代码 参考:https://segmentfault.com/q/1010000004218827
- ELK 5.5.0 安装
Preparation 假设当前为root用户,并已有jdk1.8环境. cd /opt/package useradd sealion ElasticSearch wget https://arti ...
- 安装Percona版本的MySQL主从复制
准备两台虚拟机,按顺序执行1.1节的公共部分 1.1 首先安装 cmake # yum –y install cmake //也需要安装gcc-c++,openssl openssl-deve ...
- css 控制文字显示两行,多余用省略号 手机端
p { width:100px; position:relative; line-height:20px; /*行高为高度的一半,这样就是两行*/ height:40px; overflow:hidd ...