硬盤緩存的含義及作用
硬盤緩存的含義及作用
緩存(Cache memory)是硬盤控制器上的一塊內存芯片,具有極快的存取速度,它是硬盤內部存儲和外界接口之間的緩沖器。由于硬盤的內部數(shù)據(jù)傳輸速度和外界介面?zhèn)鬏斔俣炔煌?,緩存在其中起到一個緩沖的作用。緩存的大小與速度是直接關系到硬盤的傳輸速度的重要因素,能夠大幅度地提高硬盤整體性能。當硬盤存取零碎數(shù)據(jù)時需要不斷地在硬盤與內存之間交換數(shù)據(jù),如果有大緩存,則可以將那些零碎數(shù)據(jù)暫存在緩存中,減小外系統(tǒng)的負荷,也提高了數(shù)據(jù)的傳輸速度。
硬盤的緩存主要起三種作用:一是預讀取。當硬盤受到CPU指令控制開始讀取數(shù)據(jù)時,硬盤上的控制芯片會控制磁頭把正在讀取的簇的下一個或者幾個簇中的數(shù)據(jù)讀到緩存中(由于硬盤上數(shù)據(jù)存儲時是比較連續(xù)的,所以讀取命中率較高),當需要讀取下一個或者幾個簇中的數(shù)據(jù)的時候,硬盤則不需要再次讀取數(shù)據(jù),直接把緩存中的數(shù)據(jù)傳輸?shù)絻却嬷芯涂梢粤?,由于緩存的速度遠遠高于磁頭讀寫的速度,所以能夠達到明顯改善性能的目的;二是對寫入動作進行緩存。當硬盤接到寫入數(shù)據(jù)的指令之后,并不會馬上將數(shù)據(jù)寫入到盤片上,而是先暫時存儲在緩存里,然后發(fā)送一個“數(shù)據(jù)已寫入”的信號給系統(tǒng),這時系統(tǒng)就會認為數(shù)據(jù)已經寫入,并繼續(xù)執(zhí)行下面的工作,而硬盤則在空閑(不進行讀取或寫入的時候)時再將緩存中的數(shù)據(jù)寫入到盤片上。雖然對于寫入數(shù)據(jù)的性能有一定提升,但也不可避免地帶來了安全隱患——如果數(shù)據(jù)還在緩存里的時候突然掉電,那么這些數(shù)據(jù)就會丟失。對于這個問題,硬盤廠商們自然也有解決辦法:掉電時,磁頭會借助慣性將緩存中的數(shù)據(jù)寫入零磁道以外的暫存區(qū)域,等到下次啟動時再將這些數(shù)據(jù)寫入目的地;第三個作用就是臨時存儲最近訪問過的數(shù)據(jù)。有時候,某些數(shù)據(jù)是會經常需要訪問的,硬盤內部的緩存會將讀取比較頻繁的一些數(shù)據(jù)存儲在緩存中,再次讀取時就可以直接從緩存中直接傳輸。
緩存容量的大小不同品牌、不同型號的產品各不相同,早期的硬盤緩存基本都很小,只有幾百KB,已無法滿足用戶的需求。2MB和8MB緩存是現(xiàn)今主流硬盤所采用,而在服務器或特殊應用領域中還有緩存容量更大的產品,甚至達到了16MB、64MB等。
大容量的緩存雖然可以在硬盤進行讀寫工作狀態(tài)下,讓更多的數(shù)據(jù)存儲在緩存中,以提高硬盤的訪問速度,但并不意味著緩存越大就越出眾。緩存的應用存在一個算法的問題,即便緩存容量很大,而沒有一個高效率的算法,那將導致應用中緩存數(shù)據(jù)的命中率偏低,無法有效發(fā)揮出大容量緩存的優(yōu)勢。算法是和緩存容量相輔相成,大容量的緩存需要更為有效率的算法,否則性能會大大折扣,從技術角度上說,高容量緩存的算法是直接影響到硬盤性能發(fā)揮的重要因素。更大容量緩存是未來硬盤發(fā)展的必然趨勢