一图看懂cache直接映射(涉略全相联、组相联)
本文只为更好理解规则逻辑,不包含计算。
直接映射就是主存与cache间的对应规则。
如何把相对很多块的主存放入相对较少行(块)的cache里面,直接映射采取的就是一一对应。
难理解的话可以把主存捋直分成和cache一样大小来看。
这里假设要把有多块的主存映射入只有6行(行号0-5)的cache里,主存的前6块(块号0-5)与cache﹣一对应。当主存的第7块(块号6)超过cache行数时标记加1,然后放入cache的第0行中,以此类推。
简单来说就是主存每一块循环地一一对应地放入cache里,而标记理解成第几次循环,cache行号如字面意思。
因为主存的每一块位置都限死了,如果主存块放入时,cache的行里有东西只能把它踢走,所以直接映射是冲突率最高。而全相联映射是随便放,因此冲突率最小。
而组相联映射的冲突率在两者之间,是因为把cache的几行划分成一组,与直接映射类似的规则把主存块放入cache这一大组里,但是在组内随便放,所以冲突率在两者之间。
