緩存是指臨時檔案交換區,電腦把最常用的檔案從存儲器裡提出來臨時放在緩存裡,就像把工具和材料搬上工作台一樣,這樣會比用時現去倉庫取更友善。因為緩存往往使用的是RAM(斷電即掉的非永久儲存),是以在忙完後還是會把檔案送到硬碟等存儲器裡永久存儲。電腦裡最大的緩存就是記憶體條了,最快的是CPU上鑲的L1和L2緩存,顯示卡的顯存是給GPU用的緩存,硬碟上也有16M或者32M的緩存。千萬不能把緩存了解成一個東西,它是一種處理方式的統稱!

緩存隻是記憶體中少部分資料的複制品,是以CPU到緩存中尋找資料時,也會出現找不到的情況(因為這些資料沒有從記憶體複制到緩存中去),這時CPU還是會到記憶體中去找資料,這樣系統的速率就慢下來了,不過CPU會把這些資料複制到緩存中去,以便下一次不要再到記憶體中去取。随着時間的變化,被通路得最頻繁的資料不是一成不變的,也就是說,剛才還不頻繁的資料,此時已經需要被頻繁的通路,剛才還是最頻繁的資料,又不頻繁了,是以說緩存中的資料要經常按照一定的算法來更換,這樣才能保證緩存中的資料是被通路最頻繁的。
緩存的工作原理是當CPU要讀取一個資料時,首先從緩存中查找,找到就立即讀取并送給CPU處理;沒有找到,就用相對慢的速率從記憶體中讀取并送給CPU處理,同時把這個資料所在的資料塊調入緩存中,可以使得以後對整塊資料的讀取都從緩存中進行,不必再調用記憶體。正是這樣的讀取機制使CPU讀取緩存的命中率非常高(大多數CPU可達90%左右),也就是說CPU下一次要讀取的資料90%都在緩存中,隻有大約10%需要從記憶體讀取。這大大節省了CPU直接讀取記憶體的時間,也使CPU讀取資料時基本無需等待。總的來說,CPU讀取資料的順序是先緩存後記憶體。
硬碟的緩存主要起三種作用:一是預讀取。當硬碟受到CPU指令控制開始讀取資料時,硬碟上的控制晶片會控制磁頭把正在讀取的簇的下一個或者幾個簇中的資料讀到緩存中(由于硬碟上資料存儲時是比較連續的,是以讀取命中率較高),當需要讀取下一個或者幾個簇中的資料的時候,硬碟則不需要再次讀取資料,直接把緩存中的資料傳輸到記憶體中就可以了,由于緩存的速率遠遠高于磁頭讀寫的速率,是以能夠達到明顯改善性能的目的;二是對寫入動作進行緩存。當硬碟接到寫入資料的指令之後,并不會馬上将資料寫入到盤片上,而是先暫時存儲在緩存裡,然後發送一個“資料已寫入”的信号給系統,這時系統就會認為資料已經寫入,并繼續執行下面的工作,而硬碟則在空閑(不進行讀取或寫