cache的功能:为了解决CPU和主存之间速喥不匹配的一种技术其原理基于程序运行中具有的空间局部性和时间局部性
cpu和cache之间的数据交换是以字为单位的,而cache和主存之间的数据交換是以块为单位的
cache的命中率:h=cache中完成存取的总次数/(cache中的次数+主存中完成的次数)所以h越接近1则性能越好
主存与cache的地址映射:与主存相仳,cache的容量很小它保存的内容只是主存内容的一个子集,因此把主存地址定位到cache中,称为地址映射
地址映射的三种常用方式:全相联映射方式直接映射方式,组相联映射方式
全相联映射方式:当计算机要访问某个数据的时候通过访存指令指定一个内存地址(包括主存和cache),然后要在指令中的块号与cache中所有行的标记同时比较如果命中,则按字地址从cache中读取一个字否则,则按内存地址从主存中读取這个字缺点是比较器电路难于设计实现,因此使用与小容量的cache采用
直接映射方式:根据主存进行取模来地址映射比如主存有256块,而cache只囿8行则,cache的标记位数有8位其中3位作为行号,后面5位作为0-31的二进制表示举例,如果主存块数位256每个块有4个字,则内存地址为10位也僦是指令中必须给出10位的内存地址,这种方式比较电路简单但是容易发生冲突,因此适用于大容量cache的场合
组相联映射方式:就是前面两種方式的折中将cache进行分组,比如将8行的cache分成4组每组两行,cache的标记组成为2位的组号6位0-63的二进制表示,在每组的里面进行类似全相联映射的比较