当前位置: 首页 > news >正文

【Cache缓存】基本概念 - 实践

目录

为什么需要cache

Cache的局部性

cache结构

多级cache的配合

直接映射缓存(Direct mapped cache)

直接映射缓存的优缺点


为什么需要cache

对于没有接触过底层技术的朋友来说,或许从未听说过cache。毕竟cache的存在对程序员来说是透明的。在接触cache之前,先看看下面的代码。

int arr[10][128];
for (i = 0; i < 10; i++)
        for (j = 0; j < 128; j++)
                arr[i][j] = i+j; 1;

学习过C语言对这段code不会陌生。将arr数组所有元素置1。 这段code还有下面的一种写法。​​​​​​​

int arr[10][128];
for (i = 0; i < 128; i++)
        for (j = 0; j < 10; j++)
                arr[j][i] = i+j; 1;

功能完全一样,但是我们一直在重复着第一种写法(或许很多的书中也是建议这么编码),你是否想过这其中的缘由?文章的主角是cache,那cache是如何影响这2段code的呢?

Cache的局部性

1、时间局部性:当前正在提取的数据或指令可能很快就需要使用,因此将数据或指令存储在缓存中,这样可以避免再次在主存中搜索相同的数据。例如代码循环里的数据等

2、空间局部性:主要是指存储在最近执行的指令附近的所有指令都有很高的执行机会。同时指的是对存储位置相对较近的数据元素(指令)的使用

在思考为什么需要cache之前,我们首先先来看看另一个问题:程序是如何运行起来的?

我们知道程序是运行在 RAM中的,RAM 就是我们常说的DDR(例如: DDR3、DDR4等)。我们称之为main memory(主存)。当我们需要运行一个进程的时候,首先会从磁盘设备(例如,eMMC、UFS、SSD等)中将可执行程序加载到主存中,然后开始执行。在CPU内部存在一堆通用寄存器(register)。如果CPU需要将一个变量(假设地址是A)加1,一般分为以下3个步骤:

(1)CPU 从主存中读取地址A的数据到内部通用寄存器 x0(ARM64架构的通用寄存器之一)。

(2)通用寄存器 x0 加1。

(3)CPU 将通用寄存器 x0 的值写入主存。

我们将这个过程可以表示如下:

0

其实现实中,CPU通用寄存器的速度和主存之间存在着太大的差异。两者之间的速度大致如下关系:

0

CPU register的速度一般小于1ns,主存的速度一

http://www.zskr.cn/news/81876.html

相关文章:

  • 苏州装修性价比大揭秘!这些公司省钱又省心 - 品牌测评鉴赏家
  • Alientech KESS3 Slave Marine PWC Bench-Boot Protocol Activation for Mechanics Owners
  • Cell | 本周最新文献速递
  • 苏州二手房装修公司怎么选?这5家口碑好、避坑指南请收好 - 品牌测评鉴赏家
  • 苏州厂房装修哪家好?2025实力派榜单与避坑指南(附全维度筛选攻略) - 品牌测评鉴赏家
  • 贪心算法
  • 苏州装修公司前十强攻略:口碑、性价比、设计力全解析(2025避坑指南) - 品牌测评鉴赏家
  • 苏州装修哪家强?口碑榜单大曝光!盛世和家登顶第一! - 品牌测评鉴赏家
  • 达梦数据库创建用户
  • Flink学习笔记:窗口
  • 《程序员修炼之道》阅读笔记7
  • 冬天补肾三注意:一辨、二用、三调理!别让“瞎补”伤了肾 - 资讯焦点
  • 2025年PMP培训机构真实综合测评排名TOP10 - 资讯焦点
  • Ai元人文构想:大行为模型2024—2025在技术与哲学中相遇
  • 深圳城市更新律师钱冲:城市更新重大项目的核心法律推手 - 资讯焦点
  • 广州中教互联好吗?公司是可靠的吗? - 资讯焦点
  • 完整教程:invalidate(),postInvalidate()和requestLayout()区别
  • 二手房翻新不踩坑!苏州本土 3 家口碑公司帮你实现老房逆袭(附 2025 避坑指南) - 品牌测评鉴赏家
  • 揭秘!这些整装服务强到逆天,新房装修闭眼选 - 品牌测评鉴赏家
  • 装修公司大揭秘:售后服务哪家强? - 品牌测评鉴赏家
  • 2025年12月成都电商小程序开发,预订服务小程序开发,活动报名小程序开发公司推荐:看综合实力 - 品牌鉴赏师
  • 算法第四次作业
  • 二手房翻新怎么选?这3类靠谱公司帮你避坑(附2025口碑榜单) - 品牌测评鉴赏家
  • re入门
  • 能工智人
  • 第三天—C++语法基础
  • 2025年12月超级充电桩,欧标充电桩,日标充电桩厂家推荐:行业权威盘点与品质红榜发布​ - 品牌鉴赏师
  • 2025新房整装服务哪家强?这份避坑指南+口碑榜单请收好 - 品牌测评鉴赏家
  • DSU on array - 反向操作区间合并
  • 关于Visual Studio 2022 Git无法使用的解决办法