A concrete explanation of how a cache works
4 days ago
- 处理器速度超过内存速度,因此CPU内部有一个小而快的缓存,用于存储频繁使用的数据,以减少慢速主存访问。
- 局部性原理——时间局部性(重新访问最近的数据)和空间局部性(访问附近的数据)——指导哪些数据被缓存。
- 缓存层次结构包括L1(分为指令缓存I$和数据缓存D$)、L2(更大、统一)和L3(在多核系统中跨核心共享)。
- 缓存性能通过命中延迟、未命中延迟和平均访问时间来衡量;改进来自改变缓存大小、速度或组织方式。
- 缓存本质上是硬件中的哈希表,使用SRAM,通过地址的一部分索引块,使用标签减少冲突,并有一个有效位。
- 标签开销(空间和时间)通过并行访问来管理:标签数组被检查的同时,数据数组被提前访问。
- 关联缓存(直接映射、全关联、组关联)平衡命中延迟和冲突率;组关联(例如2路)是常见的。
- 写策略包括写直达(立即更新内存)和写回(在块替换时更新,使用脏位);写未命中通常使用写分配。
- 软件重构(例如,交换循环以获得空间局部性,分块数据以获得时间局部性)可以提高缓存效率,尽管现代编译器会处理这个。