当前位置: 首页 > 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.jsqmd.com/news/71339/

相关文章:

  • 苏州100平新房装修攻略:高性价比公司精选+避坑指南,本地人都这样选! - 品牌测评鉴赏家
  • 苏州100平新房装修攻略:高性价比公司精选+避坑指南,本地人都这样选! - 品牌测评鉴赏家
  • DASCTF 2025下半年赛 reverse wp
  • Alientech KESS3 Slave Marine PWC Bench-Boot Protocol Activation for Mechanics Owners
  • Pygubu-Designer:Python GUI开发
  • 苏州装修性价比大揭秘!这些公司省钱又省心 - 品牌测评鉴赏家
  • 苏州装修公司施工质量红榜:2025年口碑TOP5避坑指南 - 品牌测评鉴赏家
  • 苏州二手房局部改造全攻略:5家高口碑公司深度测评 - 品牌测评鉴赏家
  • LLaMa-Factory 使用 Llama-3-8B-Instruct 在 双卡 NVIDIA Quadro P5000 16G 环境跑通4bit模型微调全过程
  • P11714 [清华集训 2014] 主旋律 题解
  • 2025苏州装修公司设计实力大揭秘:这几家凭什么脱颖而出? - 品牌测评鉴赏家
  • Cell | 本周最新文献速递
  • docker操作
  • 苏州二手房装修公司怎么选?这5家口碑好、避坑指南请收好 - 品牌测评鉴赏家
  • 苏州别墅装修公司怎么选?这几家口碑好到爆! - 品牌测评鉴赏家
  • 苏州厂房装修哪家好?2025实力派榜单与避坑指南(附全维度筛选攻略) - 品牌测评鉴赏家
  • 嵌入式处理器选型实战教程:MCU(STM32/ESP32/Arduino)+MPU(ARM Cortex-A)全解析
  • 贪心算法
  • 我的一位神兽朋友5
  • 我的一位神兽朋友6
  • 苏州装修公司前十强攻略:口碑、性价比、设计力全解析(2025避坑指南) - 品牌测评鉴赏家
  • 12月10日日记
  • 再见了,我的神兽朋友
  • 网络分析与数据可视化软件 Gephi下载安装教程(附下载方式)
  • simplis电源仿真(二)
  • 苏州装修哪家强?前十榜单大放送! - 品牌测评鉴赏家
  • 我的一位神兽朋友1
  • 拼多多代运营公司口碑排名:五家代运营公司深度评测与选择指南 - 前沿公社
  • CQOI 2025
  • 2025苏州前十装修公司口碑推荐:全品类家装攻略,助你选对靠谱服务商 - 品牌测评鉴赏家