一.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基本理论的更多相关文章

  1. 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法

    若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...

  2. Atitit.软件研发团队建设原理与概论 理论

    Atitit.软件研发团队建设原理与概论 理论 培训 团队文化建设(内刊,ppt,书籍,杂志等) 梯队建设 技术储备人才的问题 团队建设--小红花评比. 团队建设--文化墙.doc 户外拓展 1. 团 ...

  3. 我的“第一次”,就这样没了:DDD(领域驱动设计)理论结合实践

    写在前面 插一句:本人超爱落网-<平凡的世界>这一期,分享给大家. 阅读目录: 关于DDD 前期分析 框架搭建 代码实现 开源-发布 后记 第一次听你,清风吹送,田野短笛:第一次看你,半弯 ...

  4. 分布式理论之一:Paxos算法的通俗理解

    维基的简介:Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是 LaTeX 中的"La",此人现在在微软研究院)于1990年提出的一种基于消息传递且具有高度容错特性 ...

  5. 仓位管理 – 1.理论篇

    看到文章标题中的"仓位管理",读者可能会认为它只适用于股市投资.其实不然.只要是投资都涉及到风险.回报率.投资额度,都会涉及到仓位管理.再者,人生本身就带着无数的抉择.风险和回报, ...

  6. UI-初识君面之理论篇

    一个好的app不光要用好的功能,还要有好的界面,这样内外兼修才算得上是一个好的App.其实跟人一样,不能只刷帅,要有内涵(看清楚哦,内涵不是指闷骚).不知不觉在园子里已经晃了八年,来深也八年了,.NE ...

  7. JSP动作元素——————理论篇

    JSP动作元素的组成及作用 JSP使用Action来控制Servlet引擎的行为,可重复使用JavaBean组件. 常用Action: jsp:param       在 jsp:include.js ...

  8. 企业SOA架构设计理论

    SOA简介 SOA(Service-Oriented Architecture,面向服务架构)是一种将信息系统模块化为服务的架构风格.拥有了服务之后,我们就可以迅速地将这些服务按不同方式重新组合,从而 ...

  9. js中函数的一些理论知识

      函数的一些理论知识 1. 函数:                执行一个明确的动作并提供一个返回值的独立代码块.同时函数也是javascript中的一级公民(就是函数和其它变量一样). 2.函数的 ...

随机推荐

  1. 设计模式之架构型MVC,MVP,MVVM模式

    一.MVCMVC,Model View Controller,是软件架构中最常见的一种设计模式,简单来说就是通过Controller的控制去操作Model层的数据,并且返回给view层展示.View跟 ...

  2. Windows的四类消息

    Windows的三类消息1.标准消息宏名称 对映消息 消息处理函数(名称已由系统预设)ON_WM_CHAR WM_CAHR OnCharON_WM_CLOSE WM_CLOSE OnCloseON_W ...

  3. AGC016D - XOR Replace 置换/轮换

    目录 题目链接 题解 代码 题目链接 AGC016D - XOR Replace 题解 可以发现一次操作相当于一次置换 对于每个a上的位置映射到b对应 可以找到置换群中的 所有轮换 一个k个元素的轮换 ...

  4. 2017-11-4—稳态和暂态/瞬态(对运放积分电路的思考)[待仿真]

    先直接截图了,暂态或者说瞬态都是暂时的状态,是从一个稳定态到另一个稳定态的过程. 之所以要了解这个概念是因为对于使用运放搭建的模拟PID有很多的疑惑,比如负反馈没有电阻满不满足"虚短&quo ...

  5. Jupyter notbook& REVEAL.JS& nbconvert 使用jupyter notebook制作slides

    使用Jupyter notebook作为slide主要有两个方面: 在运行notebook 的时候可以幻灯片播放 这样幻灯片就有了notebook可交互的功能,而notebook就有了幻灯片全屏容易分 ...

  6. A network-related or instance-specific error occurred while establishing a connection to SQL Server

    今天同事给我发了个图片过来,  服务器环境 sql 2000 + IIS7 看到这张图片,我先自己试了下,确实是有这个问题的,而且不是偶然性的,那么再看报错意思,在跟sql建立连接的时候发生了一个错误 ...

  7. (18)0907_CSS选择器详解

    选择器的优先级(决定那个样式生效): important: > 内联样式 > id选择器> 类和伪类 > 元素选择器 > 通配选择器> 继承样式无优先级 最大    ...

  8. Git&Version Control

    Git Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理. [1]  Git 是 Linus Torvalds 为了帮助管理 Linux 内 ...

  9. 壁虎书1 The Machine Learning Landscape

    属性与特征: attribute: e.g., 'Mileage' feature: an attribute plus its value, e.g., 'Mileage = 15000' Note ...

  10. Java 线程池比较

    小结: 1. 高级面试题总结—线程池还能这么玩? - 这个时代,作为程序员可能要学习小程序 - CSDN博客https://blog.csdn.net/androidstarjack/article/ ...