硬件机制--高速缓存

CPU和高速缓存、主内存之间的关系

  1. CPU只直接跟L1高速缓存交互,CPU不会直接操作主内存;每个CPU只直接操作各自的高速缓存,不能直接操作其他CPU的高速缓存;
  2. 高速缓存中的数据均来源于主内存,即是主内存中的数据的拷贝;
  3. 当高速缓存中的数据被CPU修改后,有两种机制来实现高速缓存和主内存的通信:一个是write-through,另一个是write-back

write-through机制

write-through机制描述的是当CPU对高速缓存进行写操作时,高速缓存如何跟主内存交互的。

image.png

特点如下:

  • 写命中
    既写高速缓存,也写主内存;
  • 写不命中
    使用非写分配 not-write-allocat,即避开高速缓存,直接写到主存;

write-back机制

write-back机制描述的是当CPU对高速缓存进行写操作时,高速缓存如何跟主内存交互的。


write-back.png

特点如下:

  • 写命中
    每个缓存行有一个有效位:0表示dirty/空, 1表示有效;只写高速缓存,将相应的缓存行标记为脏,即dirty;只有当这个脏的缓存行要被替换掉时,才会写到内存中去;
  • 写不命中
    首先使用write-allocate的方式:从下一层存储加载相应的块到高速缓存,然后更新这个缓存块;然后就使用写命中机制了;

高速缓存结构

Intel-i7-cache-hierarchy.png
  1. CPU只直接和寄存器、L1缓存交互;
  2. 现代的L1缓存分为两个单独的物理块:
    i-cache存储指令,是read-only的;
    d-cache存储数据,是read/write的;
  3. L2和L3缓存存储指令和数据;
  4. 高速缓存的大小:Core i7的L1缓存大小为64KB, L2缓存是256KB,L3是8MB;
  5. 缓存是分块,分组的;
  6. L1的访问周期是4, L2是L1的3倍,L3是L2的3倍;一次内存访问的时钟周期是L3的3倍左右,和L1差2个数量级
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容