涉及到ARM架构下的内存管理系统;
1.cache和write buffers的概念:
cache是高速缓冲存储器,write buffers是写缓冲区,这两个东西位于主存储器和CPU之间,主要用来提高存储系统的性能;
2.cache和write buffers的作用原理:
cache与主存之间以块(cache line)为单位进行数据交换,一个cache块的大小与系统有关,通常一个块为几个字;
例如一个 cache Line 大小为4字节,当CPU从主存中读取地址为 n 的数据时,会同时将地址为 n、n+1、n+2、n+3 的四个字的数据都读取到cache的一个块中,这样当CPU需要读取地址为 n+1、n+2、n+3 的数据时,就可以从cache中快速读取到,系统的性能随之得到很大的提升!!!!
在实际工作时,CPU访问相邻的存储空间的数据的概率非常大,这种规律称之为空间局部性。这种空间局部性使得系统采用cache后通常性能都得到了很大的提升;
当CPU读取到一个数据时该数据会保存在相应的cache中,当CPU第二次读取时效率会非常高,系统的整体性能得到很大的提升。在程序中通常相邻的一段时间内CPU访问相同数据的概率非常高,这种规律成为时间局部性,性能提升,
写缓冲区有一些高速存储器构成。写缓冲区的访问速度非常高,CPU向主存储器写入数据时,先写入write buffers(非常快),然后write buffers在适当的时候再以较低的速度将数据写入主存储器,CPU就可以继续进行下面的操作。
3.缺点:
引入cache 和 write buffers后,系统的性能得到了很大的提升,但是有以下问题:1.由于数据存在于系统不同的位置,可能造成数据的不一致性;2.由于写缓冲区的优化作用,可能造成有些写操作的执行顺序不是用户想要的;