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

cache的基本原理

cache的基本原理

cpu从内存一条一条取指令

但是cpu速度很快,内存速度很慢

我们把使用频率高的代码读取到cache里与cpu交互,因为cache速度很快,这样内存和cpu的速度矛盾会被缓和

内存大概37GB/s

cache大概1000GB/s

如今的cache被集成在cpu内部,用sram实现,由于集成度不高,没法做的很大,因此容量肯定不会很大

空间局部性

在最近的未来要用到的信息,可能是与现在正在使用的信息在存储空间上邻近

时间局部性

在最近的未来要用到的信息,可能是现在正在用到的信息

cache命中率

cpu要找到某个功能的代码,

有两种情况

会同时在cache和内存中找

此时设cache的命中率为H

查找时间为t

那么查找时间为

\[t=Ht_c+(1-H)t_m \]

如果不是同时,而是先找cache,再去内存找

\[t=Ht_c+(1-H)(t_c+t_m) \]

![image-20250910211036273](/Users/tusier/Library/Application Support/typora-user-images/image-20250910211036273.png)

局部性的规则

将主存分,如每1KB为1块,主存和cache之间以块为单位进行信息交换

在操作系统中,这样一个也被称为“页/页面/页框” cache的也被叫做cache行

![image-20250910211605436](/Users/tusier/Library/Application Support/typora-user-images/image-20250910211605436.png)

http://www.rkmt.cn/news/2074.html

相关文章:

  • 如何用 vxe-table 实现2个树表格可以互相拖拽数据
  • CSP 初赛必背
  • 最新安卓版16音轨简谱编辑器软件使用说明
  • 【URP】Unity超分辨率优化实践
  • 0125_命令模式(Command)
  • 通过 GitHub 仓库下载微信 Mac Windows 历史版本(Rodert 提供)
  • 使用GoLang执行Shellcode的技术解析
  • cidr Not Available
  • mongodb 慢查询模拟
  • [序列化/JSON/Java/Utils] JACKSON 概述
  • P11696 [JRKSJ ExR] 七影蝶 题解
  • P11967 [GESP202503 八级] 割裂 题解
  • OpenSSH漏洞修复
  • some plan
  • 复杂背景验证码的识别思路与图像处理方法
  • Symfony学习笔记 - The Symfony Framework Best Practices
  • UniApp 自定义导航栏
  • NOIP2024复盘
  • 题解:CF351B Jeff and Furik
  • js和vue的数据类型
  • python解释器位数与电脑的关系
  • 高级模糊测试技术:挖掘隐藏端点的漏洞挖掘实战
  • 02020213 .NET Core重难点知识13-配置日志邮件服务案例、DI读取、DI与扩展方法、VS配置项目环境变量
  • 向量数据库
  • 2111111
  • 【模板】平面最近点对
  • 第01周 预习、实验与作业:绪论与Java基本语法
  • 删除字符串中的所有相邻重复项
  • Iframe 全屏嵌入实验
  • VMWare Esxi防火墙添加白名单访问及ip异常无法登录解决办法