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字节)
相关推荐
陌上丨31 分钟前
Redis的Key和Value的设计原则有哪些?
数据库·redis·缓存
时艰.3 小时前
Java 并发编程 — 并发容器 + CPU 缓存 + Disruptor
java·开发语言·缓存
惊讶的猫5 小时前
Redis持久化介绍
数据库·redis·缓存
生产队队长7 小时前
Redis:Windows环境安装Redis,并将 Redis 进程注册为服务
数据库·redis·缓存
清风拂山岗 明月照大江11 小时前
Redis笔记汇总
java·redis·缓存
消失的旧时光-194312 小时前
第十四课:Redis 在后端到底扮演什么角色?——缓存模型全景图
java·redis·缓存
消失的旧时光-194313 小时前
第十四课 · 实战篇:Redis 缓存系统落地指南(Spring Boot 从 0 到可用)
spring boot·redis·缓存
池央14 小时前
CANN Catlass 算子模板库深度解析:GEMM 核心优化、模板元编程与片上缓存策略的协同
缓存
这周也會开心15 小时前
Redis数据类型的底层实现和数据持久化
数据库·redis·缓存
My LQS16 小时前
使用 Redis Stack 向量索引构建大模型问答缓存系统
redis·缓存·ai