簡介
數據緩衝,即Cache技術,是計算機領域的一項重要技術。由於它最初是為了解決高速的CPU與慢速記憶體之間的速度矛盾而產生的,所以一般的文獻中所提到的Cache大多指處理器Cache。實際上,隨著計算機技術的發展,Cache的套用領域已經得到了大大的擴展了,它不僅包括處理器Cache,還包括存儲Cache、檔案系統Cache、網路Cache等多個領域。
基本原理
Cache的作用從本質上是匹配一種速度差異。如圖所示,其中原始存儲指數據初始位置,“處理”則是指需要數據的位置。當原始存儲提供數據的速度不能滿足“處理”的需要時,Cache作為兩者的過渡部分便出現了。因此,與原始存儲相比,Cache需要提供更快的速度和一定的存儲量。但僅僅這一點是不夠的,更重要的是要保證“處理”能從Cache中去的所需的數據,而這些數據本來是保存在原始存儲中的。
實際上,Cache技術之所以能廣泛地套用於計算機的軟、硬體領域,主要是因為“處理”對數據要求的“局部性”,具體而言就是時間局部性和空間局部性。在處理器領域和存儲系統中,局部性的意義是不一樣的,從處理器的角度理解,時間局部性是一旦一個指令被執行了,在不久的將來它可能被再執行;空間局部性是指一旦一個指令的一個存儲單元被訪問,那么它附近的存儲單元也將很快被訪問。從存儲系統的角度理解,時間局部性是當前被訪問的部分,很可能在短時間內被再次訪問,空間局部性指與當前訪問相鄰的部分很可能被訪問。