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字节)
相关推荐
西门啐血23 分钟前
Vue 缓存之坑,变量赋值方式和响应式数据
前端·vue.js·缓存
難釋懷5 小时前
Nginx外置缓存-nginx + memcached
nginx·缓存·memcached
llwszx6 小时前
Redis ZSet 完全指南:从应用场景到核心原理
数据库·redis·缓存·跳表·哈希表·zset
難釋懷7 小时前
Nginx外置缓存-nginx + redis
redis·nginx·缓存
踏着七彩祥云的小丑1 天前
忘记Redis是否安装过时查看
数据库·redis·缓存
麻瓜code1 天前
【Redis 】数据类型、持久化与过期删除
数据库·redis·缓存
changshuaihua0011 天前
Redis 详解:Redis 与 MySQL 的区别、数据类型与缓存三大问题
数据库·redis·缓存
love530love1 天前
Windows 原生编译 SGLang(4/8):环境关——VS 版本、venv 顺序、CUDA 多版本、生成器缓存
windows·缓存·sglang
梅孔立2 天前
两种免费的翻译API调用方式详解 - Edge官方API与个人缓存服务
前端·缓存·edge
gwf2162 天前
SSD读写速度深度解析:顺序读写vs随机读写、IOPS、延迟,你的硬盘性能到底怎么看?
git·嵌入式硬件·缓存·github·智能硬件