写在前面

我们先来看一张图表,如下:

深入理解计算机系统一书将寄存器划分为L0级缓存,接着依次是L1,L2,L3,ARMv8最多可以支持7级的高速缓存,即L1级~L7级。接着是内存,本地磁盘。越往上的缓存存储空间越小,速度越快,成本也更高;越往下的存储空间越大,速度更慢,成本也更低。从上至下,每一层都可以看做是更下一层的缓存,即:L0寄存器是L1一级缓存的缓存,L1是L2的缓存,依次类推;每一层的数据都是来至它的下一层,所以每一层的数据是下一层的数据的子集。

一、高速缓存存在的意义

由于程序访问的局部性(包括时间局部性,某个内存单元在短时间内可能被再次访问;空间局部性,某个内存单元被访问后,相邻的内存单元在短时间内有可能被访问)。由于CPU和主存在性能上巨大的差异,我们在CPU和主存之间引入了高速缓存。在CPU访问数据时,如果缓存中存在该数据,则直接从缓存中读取,如果缓存中不存在,再从内存中读取数据。

二、高速缓存的原理

高速缓存Cache是非常小容量的存储器,它集

Linux内存从0到1学习笔记(3,高速缓存)相关推荐

  1. Linux内存从0到1学习笔记(4,TLB)

    一.TLB简介 Kernel初始化的时候,会在初始化内存中创建页表:而处理器读取指令和数据的时候需要首先通过MMU查表得到物理地址,然后在访问物理地址读取指令或数据.MMU查表过程汇中需要4次访问内存 ...

  2. Linux内存从0到1学习笔记(11.2 内存优化方案之内存压缩zram)

    写在前面 zram是Linux内核提供的一种虚拟内存压缩功能,通过在将一部分内存模拟成块设备,并将压缩后的内存写到这部分模拟的块设备中,直到必须使用硬盘上的交换空间,zram 本质是就是一个块设备. ...

  3. Linux内存从0到1学习笔记(6.6,物理内存初始化之预留内存)

    写在前面 前面的章节中有提到过,memblock分配器会将内存划分为动态管理的内存(保存在memblock的memory type的数组)和静态预留的内存(保存在memblock的reserved t ...

  4. Linux内存从0到1学习笔记(6.7,物理内存初始化之CMA初始化)

    写在前面 CMA (contiguous memory allocator)连续内存分配器,被开发用于分配大的.物理连续的内存块,其底层还是依赖内核伙伴系统这样的内存管理机制.通过这套机制,在设备驱动 ...

  5. Linux内存从0到1学习笔记(9.1,内存优化调试之kswapd0触发原理)

    写在前面 Linux内核中有一个非常重要的内核线程kswapd,它负责在内存不足时回收页面.kswapd内核线程初始化时会为系统中每个内存结点创建一个名为"kswapd%"内核线程 ...

  6. Linux内存从0到1学习笔记(8.5,CMA内存分配)

    CMA是通过cma_alloc分配的.cma_alloc() --> alloc_contig_range(..., MIGRATE_CMA,...),向刚才释放给buddy system的MI ...

  7. Linux与C++11多线程编程(学习笔记)

    多线程编程与资源同步 在Windows下,主线程退出后,子线程也会被关闭; 在Linux下,主线程退出后,系统不会关闭子线程,这样就产生了僵尸进程 3.2.1创建线程 Linux 线程的创建 #inc ...

  8. 【C#8.0 and .NET Core 3.0 高级编程学习笔记】

    @C#8.0 and .NET Core 3.0 高级编程学习笔记 前言 为了能精细地完成对C#语言的学习,我决定选择一本书,精读它,理解它,记录它.我想选择什么书并不是最重要的,最重要的是持之以恒的 ...

  9. 《嵌入式Linux内存使用与性能优化》笔记

    <嵌入式Linux内存使用与性能优化>笔记 这本书有两个关切点:系统内存(用户层)和性能优化. 这本书和Brendan Gregg的<Systems Performance>相 ...

  10. 2017-2-15从0开始前端学习笔记(HTML)-图片-表格-表单

    2017-2-15从0开始前端学习笔记-图片-表格-表单 标签 图片 图片<img src="#" alt="文本说明 不能加载图片时显示" title= ...

最新文章

  1. 自动驾驶解决方案架构
  2. FSWD_BootStrap
  3. 究竟应该怎么调用WCF服务?
  4. c监控进程发现未启动就启动进程_非常有用的16个Linux 服务器监控命令
  5. Redis java API ——Jedis的使用
  6. Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现
  7. javaone_JavaOne 2012:JavaOne技术主题演讲
  8. Spring框架中的控制反转和依赖注入
  9. (8)Linux内核中的hash与bucket
  10. CXF 生成Web Service Client(将WSDl 转化成 Java代码)
  11. 从对象创建和引用小议解耦
  12. [转]Microsoft SQL Server Management Studio Express 使用SQL验证登录sa
  13. Small game written by Python 2021/1/7
  14. Python数据分析与机器学习42-Python库分析科比生涯数据
  15. 使用OpenCV将一个三角形图形扭曲到另一个三角形
  16. [转载]千古真人张三丰
  17. 读《霍乱时期的爱情》第一章有感
  18. java代理模式教你中间商赚差价
  19. new Date在safair浏览器中不兼容
  20. 积分商城开发及小程序积分商城功能介绍

热门文章

  1. 企业支付宝 异名网银u盾快速充值功能开通方式(支付宝企业商户资金充值方法)
  2. android win8 磁贴效果第三方库,Win8巧用动态磁贴让浏览更轻松
  3. 语音合成 g2p 字典设计
  4. 什么是嵌入式操作系统?
  5. php图片颤抖,PHP-使用jquery 怎么做出图片的震荡效果
  6. C/C++中各类数值型数据间的混合运算法则
  7. SpringBoot整合WebSocket实现聊天室系统
  8. 在windows如何操控一些屌炸天的linux命令[利刃篇]
  9. android逻辑分辨率,移动端web页面知识小结之手机分辨率与手机像素
  10. 求大神帮助,感激不尽