硬盤的緩存主要有以下作用:
一、是對寫入動作進行緩存。
當(dāng)硬盤接到寫入數(shù)據(jù)的指令之后,它不會馬上將數(shù)據(jù)寫入到硬盤片上,而是先暫時存儲在緩存里,然后發(fā)送一個“數(shù)據(jù)已寫入”的信號給系統(tǒng),這時系統(tǒng)就會認為數(shù)據(jù)已經(jīng)寫入,并繼續(xù)執(zhí)行下面的工作,而硬盤則在空閑(不進行讀取或?qū)懭氲臅r候)時再將緩存中的數(shù)據(jù)寫入到盤片上。由于對于寫入數(shù)據(jù)的性能有提升,所以不可避免地帶來了安全隱患——假如數(shù)據(jù)還在緩存里的時候突然掉電,那么這些數(shù)據(jù)則會丟失。
二、是預(yù)讀取。
當(dāng)硬盤受到CPU指令控制開始讀取數(shù)據(jù)時,硬盤上的控制芯片會控制磁頭把正在讀取的簇的下一個或者幾個簇中的數(shù)據(jù)讀到緩存中(由于硬盤上數(shù)據(jù)存儲時是比較連續(xù)的,所以讀取命中率較高),假如需要讀取下一個或者幾個簇中的數(shù)據(jù)的時候,硬盤并不需要重新讀取數(shù)據(jù),只需要把緩存中的數(shù)據(jù)傳輸?shù)絻?nèi)存中就可以了,由于緩存的速度大于磁頭讀寫的速度,因此能夠達到明顯改善性能的作用。
三、臨時存儲最近訪問過的數(shù)據(jù)。
有時某些數(shù)據(jù)需要經(jīng)常訪問的,硬盤內(nèi)部的緩存則將讀取比較頻繁的一些數(shù)據(jù)存儲在緩存中,下次讀取時就可以直接從緩存中直接傳輸。
最后,還有個緩存算法問題。如果算法不夠優(yōu)秀,命中率就不會高,這樣大容量緩存形同虛設(shè),甚至?xí)霈F(xiàn)掉速問題。除此之外,還要結(jié)合硬盤本身的單碟容量、轉(zhuǎn)速來決定。比方說傳輸持續(xù)讀寫速度在150MB/s左右、單碟不超過1TB容量的機械硬盤,緩存64MB就足夠,128MB顯然有些浪費;只有那些單碟容量超過1TB、持續(xù)讀寫性能在200MB/s左右的機械硬盤,128MB的緩存才有意義哦。