Linux之CPU缓存

CPU 缓存

系统中最快的存储是处理器中的寄存器。但寄存器由于造价比较昂贵,提供的空间也非常有限。因此系统中必须使用存储量大但速度慢的主存(内存)。

高速缓存的速度都比主存快。主存的访问时间是8纳秒以上,而缓存的访问时间只有几个CPU时钟周期。在标准的 X86 平台下,一般有L1 L2 L3 三级缓存。
L1 是速度最快的但容量极小,一般位于 CPU 里面。L2比L1速度慢,但容量稍大一些,L3 是容量最大的般会有几 M,一般位于主板上,速度最慢。但依然比主存要快。

通过使用 lscpu 可以查看到 CPU 的缓存情况。

缓存架构

缓存被组织成缓存线(cacheline)。可以缓存特定的位置。一般都会有指令缓存和数据缓存。
在多核处理器系统中,每个CPU 都有独立的缓存并且有独立的缓存控制器,当处理器引用缓存时,缓存控制器先检查请求的地址是否存在于缓存中。

  • Cache-hit:缓存命中。

  • Cache-miss:请求的内存不在cache中,需要从主存中读取。

  • Cache line fill:处理器将数据存储在高速缓存的过程。

多处理器系统中,需要保持缓存一致性。如果一个处理器更新了缓存。它必须让系统中其他处理器知道缓存的更新,这种被称为 cache-snoop。

缓存写回策略

Wirte-through:立刻同步到主存。
Wirte-back:在重新分配缓存之前,缓存不会被立刻写入主存中。效率更高

缓存关联

  • 直接映射:最便宜的缓存类型,缓存的每一行只能缓存主存中的特定位置。

  • 全关联映射:最昂贵的缓存类型,可以缓存主存中的任意位置,这需要更多电路来实现。

  • 组关联映射:是前两者的折中。也被称为N路关联。其中N是2的幂。

使用 Valgrind 分析 CPU 缓存
Valgrind 提供了一组用于内存调试和分析的工具,其中提供了 cachegrind 工具,它是进行缓存模拟。此工具记录一下内容:

  • L1:指令缓存的读和丢失(misses)

  • L2:数据缓存的读加载,读丢失,写加载和写丢失

  • L2:缓存的读加载和读丢失,以及写加载和写丢失

使用 valgrind 命令时,追加--tool=cachegrind 选项。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/840910.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不干啥,吐槽一下Cloudflare

Cloudflare,毫无疑问是非常优秀的云服务提供商。But官方提供的一些优化项,真是很让人摸不着头脑! 长话短说,官方提供一种 route-matching 的功能,根据其介绍可知,当请求URL中含有.html时,CF会自动把后缀去掉,形成只有path的干净模样.... 然而有的时候,真的是需要保留后…

typora 0.11.18 最后的免费版安装方法(含 windows 和 archlinxu)

目录故事介绍archlinx 安装windows 安装注册表修改验证 typora故事介绍typora 从 1.0 版本开始收费了,最后一个免费版本是 0.11.18下面的地址是 typora 官方下载页面https://typora.io/windows/dev_release.htmlarchlinx 安装aur 的 typora-free 下载 deb 包也许未来会失效,我…

Linux:fdisk指令

学习自: fdisk命令详解 - 知乎 Linux fdisk命令详解:给硬盘分区_fdisk -l-CSDN博客 初始化Linux数据盘(fdisk)|华为云_fdisk 华为云 初始化云盘-CSDN博客 1、说明 新添加硬盘之后,需要用fdisk指令来完成分区。 不要在当前硬盘上使用fdisk,这会删除整个系统。 2、用法 输入…

GaussDB整体性能慢分析

@目录问题描述问题现象告警业务影响原因分析分析步骤分析定位方法步骤一步骤二步骤三步骤四CPU满I/O满或者I/O异常内存满网络异常步骤五并发问题数据库配置问题异常等待事件长时间性能下降短时性能抖动不优SQL 问题描述 整体性能慢。不满足客户作业对时延要求或者不满足客户预期…

LED芯片/点阵数码显示IC-VK16K33A SOP28大电流数码管驱动,I2C通讯接口

产品品牌:永嘉微电/VINKA 产品型号:VK16K33A 封装形式:SOP28 概述 VK16K33A是一种带按键扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有数据 锁存器、键盘扫描、LED 驱动模块等电路。数据通过I2C通讯接口与MCU通信。SEG脚接LED阳 极,GRID脚接LED阴极,可支持16SEG…

GaussDB数据库存储过程介绍

@目录一、前言二、GaussDB中的定义三、存储过程的使用场景四、存储过程的使用优缺点五、存储过程的示例及示例解析1、GaussDB存储过程语法格式2、GaussDB存储过程语法示例3、存储过程的调用方法七、总结 一、前言 华为云数据库GaussDB是一款高性能、高安全性的云原生数据库,在…

GaussDB数据库SQL系列-游标管理

一、前言 在数据库中,游标(cursor)是一种非常重要的工具,用于在数据库查询结果集中进行定位和操作。游标提供了一种在多行数据结果集中逐行处理每一行的机制,允许开发人员对每一行的数据进行操作,如检索、过滤、修改等。本文将结合GaussDB数据库,简单的给大家做一介绍。…

以学校数据模型为例,掌握在DAS下使用GaussDB

@目录题目具体操作一、表的创建二、表数据的插入三、数据查询 目的: 这里以学校数据库模型为例,介绍GaussDB数据库、表等常见操作,以及SQL语法使用的介绍。 题目 假设A市B学校为了加强对学校的管理,引入了华为GaussDB数据库。 在B学校里,主要涉及的对象有学生、教师、班级…

RGB565小工具

RGB565颜色显示和编码 使用PySide6, UI使用Qt designer生成。 在项目中驱动显示屏,使用的是RGB565的颜色格式。 有些在线的工具,可以进行RGB565颜色的选取和复制颜色值编码,但是不能实时查看字符和背景的颜色效果。 于是做了个小工具,可单独选择RGB三个颜色通道的值,指定字…

GaussDB SQL基础语法示例-常见的条件表达式

一、前言 SQL是用于访问和处理数据库的标准计算机语言。GaussDB支持SQL标准(默认支持SQL2、SQL3和SQL4的主要特性)。 本系列将以《云数据库GaussDB—SQL参考》为主线进行介绍。 二、条件表达式的概念及GaussDB中的常见条件表达式 条件表达式是指在数据库中进行SQL语句查询时,…

GaussDB SQL基础语法示例-数组表达式

一、前言 SQL是用于访问和处理数据库的标准计算机语言。GaussDB支持SQL标准(默认支持SQL2、SQL3和SQL4的主要特性)。 本系列将以《云数据库GaussDB—SQL参考》在线文档为主线进行介绍。 欢迎使用GaussDB数据库数组表达式。在本文中,我们将介绍GaussDB数据库中数组表达式的概…

周蕊、王聪的第三次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc这个作业的目标 以小组为单位,完成一个电梯演讲作业姓名-学号 周蕊-2022329301039、王聪2022329301036视频链接: http://xhslink.com/a/EbZ16dimtNp0 1.产品介绍 1.1. 产品简介实验室是高校开展教学科研和自主…