码农知识堂 - 1000bd
Python
PHP
JS/TS
JAVA
C/C++
C#
GO
Kotlin
Swift
多级缓存与局部性原理
参考文献
《计算机组成与体系结构》-黑皮书,第六章 存储器
系统架构设计师教程–第一章
局部性原理
Cache改善系统性能的依据
使用少量速度非常快的存储器来加速对系统主要存储器的访问
计算机
程序
都具有局部性特征
引用的局部性
如果处理器在t时刻访问了存储单元X,那么在不久的将来访问存储单元X+1的可能性会非常高
三种基本形式
时间局部性
Temporal locality
最近访问过的内容很可能在不久的将来再次访问
空间局部性
Spatial locality
对存储器地址空间的访问形成团簇的集中倾向
例如:在数组或循环中操作
顺序局部性
Sequential locality
访问存取器的指令倾向于按顺序执行
一些术语
字域
world field
数据字的块内地址
命中
hit
请求的数据就驻留在指定访问的存储器层
缺失
miss
请求的数据不在要访问的存储层
高速缓存
高速缓存存储器有时也会被称为按内容寻址的存储器(content addressable memory, CAM)
主存和高速缓存都将按块划分
若CPU在高速缓存未发现,会将该数据存放的块加载到高速缓存
高速缓存映射模式
三种模式
直接映射的高速缓存
如图,按顺序映射到高速存储器,块0和块10都映射到高速存储器的块0,它们将通过竞争来决定谁将霸占整个坑位
全关联高速缓存
允许主存储器存放到高速缓存任意位置
专用硬件,比较昂贵
组关联高速缓存
上面两种方式的平衡,折衷方式
替换算法(淘汰算法)
当Cache已存满,且Cache miss hit,新数据将淘汰某些旧数据
三种
随机算法
FIFO
LRU
Least Recently Used, LRU算法
写操作
写直达
write through
同时写回Cache和主存
写回
write back
CPU修改Cache某一块,不直接写入主存,而是等Cache淘汰时写入主存
标记法
只需写入内存
若标志位为"1",则从Cache中取,若为“0”,则从主存中取
提示
内存与Cache之间的映射往往采用硬件完成,软件编程时,完全不用考虑Cache
相关阅读:
python面向对象
# Java 常用代码片段
基于导频的信道估计实现
AW2013芯片讲解
00Hadoop数据仓库平台
目标检测笔记(十五): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
Linux系统挂载SAS数据盘
Prometheus+Grafana实现监控报警
R语言caTools包进行数据划分、scale函数进行数据缩放、class包的knn函数构建K近邻分类器
数字化工厂管理系统的三个关键技术是什么
原文地址:https://blog.csdn.net/lanluyug/article/details/127462435
最新文章
攻防演习之三天拿下官网站群
数据安全治理学习——前期安全规划和安全管理体系建设
企业安全 | 企业内一次钓鱼演练准备过程
内网渗透测试 | Kerberos协议及其部分攻击手法
0day的产生 | 不懂代码的"代码审计"
安装scrcpy-client模块av模块异常,环境问题解决方案
leetcode hot100【LeetCode 279. 完全平方数】java实现
OpenWrt下安装Mosquitto
AnatoMask论文汇总
【AI日记】24.11.01 LangChain、openai api和github copilot
热门文章
十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
奉劝各位学弟学妹们,该打造你的技术影响力了!
五年了,我在 CSDN 的两个一百万。
Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
面试官都震惊,你这网络基础可以啊!
你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
心情不好的时候,用 Python 画棵樱花树送给自己吧
通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
13 万字 C 语言从入门到精通保姆级教程2021 年版
10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系
2656653265@qq.com
京ICP备2022015340号-1
正则表达式工具
cron表达式工具
密码生成工具
京公网安备 11010502049817号