简介
数据缓冲,即Cache技术,是计算机领域的一项重要技术。由于它最初是为了解决高速的CPU与慢速内存之间的速度矛盾而产生的,所以一般的文献中所提到的Cache大多指处理器Cache。实际上,随着计算机技术的发展,Cache的应用领域已经得到了大大的扩展了,它不仅包括处理器Cache,还包括存储Cache、文件系统Cache、网络Cache等多个领域。
基本原理Cache的作用从本质上是匹配一种速度差异。如图所示,其中原始存储指数据初始位置,“处理”则是指需要数据的位置。当原始存储提供数据的速度不能满足“处理”的需要时,Cache作为两者的过渡部分便出现了。因此,与原始存储相比,Cache需要提供更快的速度和一定的存储量。但仅仅这一点是不够的,更重要的是要保证“处理”能从Cache中去的所需的数据,而这些数据本来是保存在原始存储中的。
实际上,Cache技术之所以能广泛地应用于计算机的软、硬件领域,主要是因为“处理”对数据要求的“局部性”,具体而言就是时间局部性和空间局部性。在处理器领域和存储系统中,局部性的意义是不一样的,从处理器的角度理解,时间局部性是一旦一个指令被执行了,在不久的将来它可能被再执行;空间局部性是指一旦一个指令的一个存储单元被访问,那么它附近的存储单元也将很快被访问。从存储系统的角度理解,时间局部性是当前被访问的部分,很可能在短时间内被再次访问,空间局部性指与当前访问相邻的部分很可能被访问。1