Cache是一种容量小、速度快的存储器阵列,它位于主存和处理器内核之间,保存着最近一段时间处理器涉及到的主存块内容,主要是为了缓解慢速存储器和处理器之间的速度不匹配造成的访问瓶颈问题。write buffer经常和Cache配合使用。用来缓解处理器和Cache等高速设备和慢速存储器之间的写速度匹配问题。除了处理器和write buffer之外,与cache相关的还有MMU、总线架构等。如如果总线是冯.诺依曼结构,因为数据和指令走同一个通道,则只有一个Cache,如果总线是哈佛结构,因为数据和指令走不同的通道,则采用2个cache。
既然是为了缓解读写速度匹配问题,需要解决的或者需要提供的解决方案就包括:访问算法、写算法。
1.访问算法
访问算法涉及到处理器、Cache、慢速存储器等三个部件,具体就是在处理器和Cache中如何访问、Cache和慢速存储器之间如何访问。
处理器和Cache间的访问算法:如果Cache中没有处理器请求的内容,则发生Cache失效,Cache控制器从主存中copy相应的内容到Cache存储器,称为Cache行填充。这个时候如果Cache是满的,则就需要进行替换,采用的不同的替换策略,就是Cache的替换算法,arm下的Cache的替换算法有轮转法和伪随机替换法。
2.写算法
当有计算结果需要存储时,就因为涉及到处理器、Cache、慢速存储器等三个部件,为了更好地提高写的速度,就另加了一个write buffer部件,处于与Cache并行的位置,尽可能的将慢速的串行传输数据化为并行传输数据,加快了写的节奏、拉长了写的时间。是空间和时间的平衡。
总结算法的本质,主要是化串行为并行。评价读写算法的优劣的标准是命中率。