本文是对游戏引擎架构第三章第四节内容的补充性笔记。
本节讲述了一种内存/缓存管理机制,由于从主存中调用相关内容是一件开销非常高昂的行为,因此使用缓存线方式从主存中调用一块内存放入缓存,而相应的缓存对主存的一对多的取模映射关系称为直接映射。
本文补充2路组关联缓存部分内容(2-way set-associative cache)。
组关联缓存(set-associative cache)
组关联缓存是一种直接映射(direct-mapped)与全连接缓存(fully associative cache)的折衷解决方案。
他将内存表示为一个n*m的矩阵,也就是将每个内存块映射到m个缓冲路中的一条。
类似于二分图匹配。
给与每个内存两个缓存位置选择,如果两个位置都被占领,优先选择可能索引开销小的(通常采用LRU,具体参考操作系统的内存调度算法)。如下图所示:
主干为取模与多分支选择,实质就是二分图匹配的加强版。不命中操作为检查下一级缓存,否则调取主存。