02. 缓存行

1.缓存行


1.缓存行

csharp 复制代码
CPU读取内存时, 并不是直接一个字节一个字节地读, 而是按照内存总线的位宽(比如64位, 即8字节)来传输数据; 但是CPU的

缓存系统(Cache)在从内存中加载数据时, 是以缓存行(Cache Line)为单位的

a.内存总线的传输单位: "每次内存读写操作通过总线传输的数据量, 通常是64位(8字节)或128位(16字节)"

b.缓存行的加载单位: "当CPU缓存未命中时, 会从内存中加载整个缓存行, 现代CPU的缓存行通常是64字节"
csharp 复制代码
CPU需要读取一个字节时, 实际上会发生以下步骤:

a.检查该字节所在的缓存行是否在缓存中

b.如果在, 则直接从缓存中读取

c.如果不在, 则缓存系统会从内存中加载整个缓存行(比如: 64字节), 然后从缓存行中读取所需要的字节

例如: 对于64字节的缓存行, CPU通过总线每次传输的数据块可能是8字节, 但为了填充这个缓存行, 可能需要多次传输; 在

64位总线上需要8次传输(每次8字节)
相关推荐
万象.3 小时前
redis持久化:AOF和RDB
数据库·redis·缓存
cheungxiongwei.com3 小时前
深入解析 DNS 缓存与 TTL:工作原理、修改生效机制与优化策略
缓存
!chen4 小时前
Redis快速实现布隆过滤器
数据库·redis·缓存
xxxmine5 小时前
Redis 持久化详解:RDB、AOF 与混合模式
数据库·redis·缓存
what丶k6 小时前
SpringBoot3 缓存抽象深度实践:Caffeine+Redis多级缓存,穿透/雪崩/击穿防御全方案
数据库·redis·缓存
咖啡の猫6 小时前
Redis简单介绍
数据库·redis·缓存
爱吃大芒果6 小时前
Flutter for OpenHarmony 实战: mango_shop 购物车模块的状态同步与本地缓存处理
flutter·缓存·dart
源代码•宸7 小时前
Redis 攻略(Redis Object)
数据库·redis·后端·缓存·字符串·哈希表·type
heartbeat..8 小时前
Redis常见问题及对应解决方案(基础+性能+持久化+高可用全场景)
java·数据库·redis·缓存
Marshmallowc8 小时前
强缓存失效了怎么办?深度解析浏览器内存缓存与硬盘缓存的存储逻辑
http·缓存·浏览器原理