首先,计算机中主要有3种存储设备,磁盘,主存,寄存器。
计算机要运行程序,得让处理器cpu去访问存储设备,所以如何让处理器快速的与存储设备进行数据读取,就反应了计算机的性能和程序的运行效率。
磁盘存储空间大,但处理器从磁盘读取数据最慢。
主存,存储空间比磁盘小,但处理器访问速度比磁盘快
寄存器,存储空间最小,访问速度最快。
处理器的处理速度远高于从主存读取数据的速度,且他们之间的速度差距还在以为半导体技术的进步不断扩大。
从而有了高速缓存存储器cache,它是一种存储大小与读取速度均介于主存和寄存器之间的存储设备。存放了近期可能需要的信息。
cache中有一个位于CPU内部的L1高速缓存,访问速度几乎和访问寄存器一样。有一个通过一条特殊总线连接的L2,访问速度低于L1但比主存快。可能存在L3。
L1和L2高速缓存使用静态随机访问存储器(SRAM)的硬件技术实现.
它的实现原理是利用了高速缓存的局部性原理,即程序具有访问局部区域里的数据和代码的趋势。即通过让高速缓存存放可能经常访问的数据,让大部分的内存操作都能在快速的高速缓存中完成。
所以,在编写程序时,学会利用cache,可以让我们的程序性能提高一个数量级。