本文有些内容是对网上各种资料的翻译和整理
ARM926的Cache和Write buffer
一、基本概念
Cache是位于CPU和主存储器(SDRAM)之间的高速缓冲存储器(一般使用SRAM),可以加速系统的性能。Cache是按照cache line组织的,当访问主存储器的时候,有可能数据或者指令位于cache line中,我们称之cache hit,这种情况下,不需要访问外部慢速的主存储器,从而加快了存储器的访问速度。也有可能数据或者指令没有位于cache line中,我们称之cache miss,这种情况下,需要从外部的主存储器加载数据或指令到cache中来。由于时间局部性(tmpporal locality)和空间局部性(spatial locality)原理,load 到cache中的数据和指令往往是最近要使用的内容,因此可以提高整体的性能。
Write buffer用于优化写主存储器的性能。当CPU要保存数据的时候,首先写入write buffer,之后write buffer再在适当的时候写入主存储器。通过write buffer,CPU可以全速运行。
二、Cache的组织
Cache按照cache line组织,每个cache line由下面的内容组成:
1、Flag(是否有效)
2、地址高位(一般是地址的若干MSB部分组成)
3、数据块(具体的数据或者指令)
ARM926的cache line是32字节,也就是说cache line中的数据块地址的低5bit都是一样的,因此地址高位就是由地址的[31:5]组成。当CPU访问一个地址的时候,如