Cache的写操作(Cache与主存一致性问题)
写直达法:写操作数写到主存并写到Cache;保持了主存和Cache的一致性,可能会造成CPU对同一个单元进行反复写(效率低)。
写回法:允许一段时间内主存和Cache信息不一致,直到Cache数据被替换出去时才写回主存。
Cache改进
片内Cache(CPU内)
片外Cache(CPU外)
统一缓存和分立缓存
Cache与主存的映射
- 直接映射(某一个内存块只能固定的放在Cache中的一个指定位置)
将主存储体划分成与Cache相等大小的区,每个区的大小和Cache存储体大小相等,每个区中的字块数与Cache存储体中的字块数相等,每个区的子块号都可以从0开始,直到2^7-1;最后,每个区的第一块放在Cache中的第一块中,每个区的第i块放在Cache中的第i块中; - 全相联映射 (某一个主存块可以被放到Cache中的任何一个缓存块)
主存中的一个块可以被放到Cache中的任何一个块;速度慢,电路复杂,比较次数多。 - 组相联映射(某一主存块可以映射到给定的几个主存块中)
把Cache分成块,每个块分成若干个组;把主存分成与Cache的组数相同的区。主存中每个块在区里边的编号决定了可以放在Cache中的哪一个组,且一个块有多个位置。
Cache替换算法
先入先出法(FIFO)
最近最少使用算法(LRU)