硬件机制--高速缓存

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

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

write-through机制

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

硬件机制--高速缓存_第1张图片
image.png

特点如下:

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

write-back机制

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


硬件机制--高速缓存_第2张图片
write-back.png

特点如下:

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

高速缓存结构

硬件机制--高速缓存_第3张图片
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个数量级

你可能感兴趣的:(硬件机制--高速缓存)