在计算机硬件当中,主要有运算器,控制器,存储器,输入输出设备几种。存储器大致有高速缓存(cache),内存,辅存这样的体系架构.而cpu在工作时,主要从内存中获取指令或数据进行操作,而缓存存在于cpu与内存之间,是一个小容量,高速的存储器。
一。 为什么会有缓存的存在呢?原因大概有两点:
1.除了cpu之外,I/O设备同样可以申请访问内存,如果两者同时申请访问,那么I/O设备优先级高于cpu,这就会出现cpu等待的情况。这会降低cpu 的工作效率。为此可以在内存与cpu之间添加缓存,将cpu可能即将访问的信息提前送到缓存,一旦内存被I/O设备占用,cpu可以先从缓存中取数据,不必空等降低其效率。
2.随着集成电路发展,cpu运行速度越来越快,而内存的发展远远跟不上cpu,两者之间速度差异过大会影响到效率。我们很自然的想到可以在两者之间添加一个缓存,缓存速度高于内存而低于cpu,缓存提取内存数据,cpu访问缓存,这样可以提升效率。
二。缓存基本原理
缓存处于内存与cpu之间,不断在两者之间交换数据。cpu与缓存交换数据以字节为单位,而内存与缓存交换数据以块为单位。任何时刻都会有一些内存块存在于缓存中。当cpu欲访问内存中某字节时,会先去到缓存中寻找。这时就会有两种情况:
1.所需要的字在缓存当中,这种情况称为缓存命中。
2.所需要的字不在缓存中,成为缓存未命中。
若缓存命中,则此字立刻传送给cpu。不命中时,则从内存读出送到cpu,并且把含有这个字节的整个数据块