專利名稱:磁盤高速緩存裝置的制作方法
技術(shù)領(lǐng)域:
本實用新型涉及一種磁盤高速緩存裝置。
在現(xiàn)有計算機(jī)存儲體系結(jié)構(gòu)中,磁盤(尤其是硬磁盤)是作為一種大容量、持久性的外部存儲而被廣泛使用。由于磁盤對于基于大規(guī)模集成電路的主機(jī)部分而言是一個緩慢的機(jī)械式設(shè)備,現(xiàn)有的計算機(jī)系統(tǒng)普遍使用了高速半導(dǎo)體存儲器來緩存(動態(tài)和暫時地保存)部分磁盤數(shù)據(jù),以此匹配主機(jī)系統(tǒng)與磁盤驅(qū)動器之間的數(shù)據(jù)處理速率。目前周知的緩存磁盤數(shù)據(jù)的方式有(1)在系統(tǒng)主內(nèi)存RAM中劃出一部分空間,以保存最近或最頻繁使用的磁盤數(shù)據(jù)(這一般由操作系統(tǒng)負(fù)責(zé),以文件為緩存管理單位);(2)使用磁盤高速緩沖存儲器(Disk Cache,以下簡稱為“磁盤高速緩存”或“磁盤Cache”),它是一個專用的硬件一級控制的存儲器,對系統(tǒng)的軟件而言是透明不可見的?,F(xiàn)有的磁盤Cache是由一個Cache控制器和一個RAM存儲器組成,其中控制器具有與外部地址和數(shù)據(jù)線相連接的總線接口并負(fù)責(zé)對存儲器進(jìn)行管理。緩存管理一般使用組相聯(lián)映射(Set-Associative Mapping),將整個Cache存儲區(qū)劃分成為Cache槽數(shù)目相同的多個組、將所有磁盤扇區(qū)劃分成與Cache槽相同大小的塊,再將特定的扇區(qū)塊映射到某個特定Cache組中的Cache槽,以使得整個Cache存儲區(qū)盡可能填滿和有效。
磁盤高速緩存對整個系統(tǒng)的性能具有十分重要的作用。實際使用的磁盤Cache裝置都具有比較高的命中率和平均響應(yīng)速度,其效果是非常顯著的,速度提高一般都在一個數(shù)量級以上,從而使得慢速的磁盤對于主機(jī)而言可以用類似RAM一般的速度來讀寫(有局域訪問特性的)磁盤扇區(qū)。文獻(xiàn)Caching Strategies to Improve Disk System Performance(R.Karedla et al.Computer,Vo1.27,No.3,pp.38-46,1994)說明了當(dāng)前所運用的各種磁盤Cache裝置的特點與效率。這類磁盤Cache裝置可以設(shè)置在主機(jī)板磁盤接口總線上一個專門增設(shè)的接口芯片內(nèi),使得該接口上連接的所有磁盤驅(qū)動器都可由同一個磁盤Cache來加速;它們也可以設(shè)置在硬磁盤控制器(Hard Disk Controller,簡稱為HDC)中,其中對于IDE接口的系統(tǒng),其磁盤Cache和HDC是一起集成在IDE磁盤驅(qū)動器上(IDEDisk Drive,包括了HDC、驅(qū)動器接口電路和磁頭-磁盤總成HDA,即Head-Disk Assembly)。兩種方式各有其特點和優(yōu)缺點(詳見上述文獻(xiàn))。目前市場上多數(shù)的并行或串行ATA IDE磁盤或SCSI磁盤都采用了把磁盤Cache結(jié)合在其HDC中的方式。
不過所有已知的這類磁盤Cache裝置都不能在加快計算機(jī)啟動或重啟動(或稱為系統(tǒng)引導(dǎo)/重引導(dǎo),System Booting/Rebooting)過程方面有效地發(fā)揮作用。這是因為目前的磁盤Cache使用的是易失性的RAM存儲器(包括各種動態(tài)刷新的DRAM和靜態(tài)/無刷新的SDRAM),而RAM存儲器中的數(shù)據(jù)在關(guān)閉電源后即完全失效。因此,在系統(tǒng)復(fù)位(Reset)之后,磁盤Cache內(nèi)并沒有保存任何有效的上一次系統(tǒng)引導(dǎo)所使用的磁盤數(shù)據(jù),因而Cache控制器必須對整個Cache存儲器做初始化和清空,以便做重新裝載。計算機(jī)啟動(或重啟動)通常是一個復(fù)雜、緩慢的過程,系統(tǒng)引導(dǎo)需要做大量和頻繁的磁盤訪問,而現(xiàn)有磁盤Cache裝置不能保存系統(tǒng)引導(dǎo)過程所需的磁盤數(shù)據(jù)使得磁盤訪問時間占據(jù)了整個啟動時間的很大一部分。
本技術(shù)的目的在于提供一種磁盤高速緩存裝置,它持久地保存系統(tǒng)引導(dǎo)所需的(大部分)磁盤數(shù)據(jù),從而提高系統(tǒng)引導(dǎo)過程中的Cache命中率、減少磁盤訪問時間,由此加快計算機(jī)啟動/重啟動過程。
為實現(xiàn)上述目的,本實用新型的磁盤高速緩存裝置包括Cache控制器和RAM存儲器,其特征在于它還包括非易失性存儲器,該非易失性存儲器設(shè)置在緩存區(qū)首先被訪問的位置,所述Cache控制器在系統(tǒng)復(fù)位之后只對該非易失性存儲器進(jìn)行訪問,在發(fā)生Cache填充沖突之后不對其中的數(shù)據(jù)進(jìn)行替換;所述非易失性存儲器由閃存(Flash Memory)構(gòu)成;所述Cache控制器的外部總線接口可以同硬磁盤控制器HDC相連接以取得磁盤扇區(qū)的地址和數(shù)據(jù),也可以同一個接口HDC相連接以取得磁盤扇區(qū)的地址和數(shù)據(jù),所述接口HDC設(shè)置在主機(jī)板上的磁盤接口總線上。
同現(xiàn)有的磁盤高速緩存裝置相比,本實用新型使用非易失性的閃存持久地保存系統(tǒng)引導(dǎo)過程所需訪問的磁盤扇區(qū),因而在隨后的啟動或重啟動過程中可以直接將這些數(shù)據(jù)塊復(fù)制到主存中,極大地減少對磁盤的直接訪問,從而有效地加快系統(tǒng)引導(dǎo)過程。
本說明書以下部分將結(jié)合附圖和實施例對上述技術(shù)方案作進(jìn)一步的說明。
圖1是本實用新型的基本構(gòu)成圖。
圖2是本實用新型第一種實施例的示意圖。
圖3是本實用新型第二種實施例的示意圖。
在圖1所示的磁盤Cache裝置中,除了常規(guī)的Cache控制器(1)和RAM存儲器(3)外,它還包括一個非易失性存儲器(2)。本實施例選用以存儲塊(Memory Block)為內(nèi)部組織結(jié)構(gòu)的閃存(Flash Momory)來構(gòu)成非易失性存儲器(2)。閃存的塊狀結(jié)構(gòu)與磁盤扇區(qū)的Cache槽(或行)組織正好是相容的。該閃存(2)設(shè)置在系統(tǒng)復(fù)位后由Cache控制器(1)首先訪問的第一緩存區(qū)位置,通常這是在整個Cache存儲區(qū)中地址較低的一端。在以組相聯(lián)映射(Set-Associative Mapping)方式組成的Cache中,這也就是號碼較小的Cache槽分組。在開機(jī)或重新啟動過程中讀取磁盤扇區(qū)時,Cache控制器(1)首先讀取和填充閃存(2)中的Cache槽。初次系統(tǒng)引導(dǎo)之后,閃存(2)中各組Cache槽基本被系統(tǒng)引導(dǎo)過程所讀取的磁盤扇區(qū)數(shù)據(jù)填充。即使在關(guān)機(jī)斷電之后,其中的扇區(qū)數(shù)據(jù)仍然能夠保持有效,可以在下一次開機(jī)或重新啟動時使用。
Cache控制器(1)可使用全相聯(lián)映射或組相聯(lián)映射對閃存(2)進(jìn)行管理。常規(guī)的Cache管理方式在可用的Cache存儲空間被填滿之后,便運用一定的淘汰替換機(jī)制將某些Cache槽的舊的(或不常使用的)數(shù)據(jù)清除,以便存放新的、隨后可能會被反復(fù)使用的數(shù)據(jù)(即對Cache槽沖突作替換)。在閃存(2)中保存的磁盤扇區(qū)都是系統(tǒng)引導(dǎo)所需要的數(shù)據(jù),而常規(guī)的Cache管理方式會把一部分扇區(qū)塊不必要地清除,從而會降低閃存(2)在加速下一次系統(tǒng)引導(dǎo)過程的效用。為此Cache控制器(1)可以對閃存(2)使用一種簡化的Cache管理,即在系統(tǒng)復(fù)位(Reset)之后首先將RAM(3)部分屏蔽、只對閃存(2)部分進(jìn)行訪問,優(yōu)先填充和寫更新閃存(2)內(nèi)的Cache槽,直到在閃存(2)中發(fā)生了Cache槽沖突,之后在讀盤過程中就不再對閃存(2)作數(shù)據(jù)淘汰或替換(即在讀盤時被當(dāng)作一個只讀Cache)、僅保持寫盤時的扇區(qū)塊更新,并轉(zhuǎn)而使用RAM(3)部分進(jìn)行常規(guī)的填充和讀取替換,一直到下一次系統(tǒng)復(fù)位。由于在系統(tǒng)引導(dǎo)時較少發(fā)生寫盤操作,對閃存(2)的寫策略可以使用簡單、低速的寫穿(Write-Through)方式。磁盤Cache的常規(guī)RAM(3)部分在對閃存(2)部分的訪問和填充完成(發(fā)生Cache槽填充沖突)之后使用,其使用與常規(guī)方式完全相同,因而在系統(tǒng)引導(dǎo)過程完成對閃存(2)的訪問之后,整個磁盤Cache的行為就與常規(guī)磁盤Cache一致,并且對于主機(jī)系統(tǒng)的軟件而言是完全透明的。
圖2所示的實施例是本磁盤Cache裝置在ATA IDE磁盤驅(qū)動器上的設(shè)置方案。ATA IDE磁盤驅(qū)動器集成了硬磁盤控制器HDC(6),后者一方面通過專門的線纜與主機(jī)板上的ATAIDE接口(5)相連接,另一方面又通過向驅(qū)動器接口電路(7)傳送磁盤扇區(qū)的地址和數(shù)據(jù)信息,指導(dǎo)磁頭-磁盤總成(Head-Disk Assembly)HDA(8)完成實際的磁盤數(shù)據(jù)讀寫。在此實施例中,整個磁盤Cache裝置(4)與HDC(6)一起設(shè)置在磁盤驅(qū)動器的電路板上。Cache控制器(1)的外部總線接口同HDC(6)相連接,從后者取得磁盤扇區(qū)的地址和數(shù)據(jù)。目前流行的ATA標(biāo)準(zhǔn)(100MB/s接口速率的ATA-6)使用48bit(LBA)扇區(qū)地址。Cache控制器(1)從HDC(6)取得此地址,完成對Cache存儲器中各扇區(qū)的檢索和緩存控制。
圖3所示的實施例是本磁盤Cache裝置在計算機(jī)主板上的集成設(shè)置方案。目前主板上的磁盤總線接口都是由主板芯片組的南橋芯片(SouthBridge)或ICH芯片(I/O Control Hub)提供的,該芯片(10)同時還提供其它設(shè)備的總線接口(例如USB接口,以及集成了鍵盤、鼠標(biāo)、串/并口等多種標(biāo)準(zhǔn)接口的Super I/O接口等)。磁盤Cache(4)的Cache控制器(1)的外部總線接口同一個接口HDC(9)相連接,從后者取得磁盤扇區(qū)的地址和數(shù)據(jù)。該接口HDC(9)是一個簡化的磁盤控制器,它與常規(guī)的HDC功能相似、有完全相同的磁盤總線接口,但只需具備常規(guī)HDC的一部分基本的功能。該接口HDC(9)設(shè)置在主機(jī)板上的磁盤接口總線上,其作用是監(jiān)測磁盤接口總線上所傳送的主機(jī)發(fā)給外接磁盤HDC(6)的磁盤操作命令以及HDC(6)返回的結(jié)果(其中包括相關(guān)的磁盤扇區(qū)地址和扇區(qū)數(shù)據(jù)),以協(xié)助磁盤Cache(4)進(jìn)行工作。主機(jī)通過向HDC發(fā)送操作命令對磁盤進(jìn)行訪問,接口HDC(9)則從磁盤操作命令中取得磁盤扇區(qū)的地址和數(shù)據(jù),將其傳給磁盤Cache控制器,以便根據(jù)磁盤Cache返回的結(jié)果確定是否需要由外接磁盤的HDC(6)進(jìn)行操作如果Cache控制器返回的結(jié)果為命中,則將Cache控制器輸出的扇區(qū)數(shù)據(jù)直接返回給主機(jī)(通過設(shè)置DMA將扇區(qū)數(shù)據(jù)塊傳送至系統(tǒng)主存的磁盤緩沖區(qū));如果Cache控制器返回的結(jié)果為未命中,則將該磁盤操作命令原封不動地輸出給外接磁盤的HDC(6),并在磁盤HDC(6)成功返回數(shù)據(jù)時將包含此扇區(qū)的數(shù)據(jù)塊傳給Cache控制器(1),以便對此地址上的Cache槽進(jìn)行填充。實際系統(tǒng)在系統(tǒng)主存和/或磁盤控制器中都設(shè)有RAM磁盤緩存,因而本集成在主板上的磁盤Cache(4)可以被簡化,即只包含閃存(2)部分,而將其RAM(3)部分略去(其存在與否對主機(jī)的磁盤操作沒有實質(zhì)影響)。接口HDC(9)僅在系統(tǒng)復(fù)位之后通過Cache控制器(1)對閃存(2)進(jìn)行訪問,而在Cache槽填充發(fā)生沖突之后Cache控制器(1)即屏蔽閃存(2)的讀扇區(qū)替換(只保持寫扇區(qū)更新),此時接口HDC(9)就可以在所有讀盤操作中將整個磁盤Cache(4)屏蔽,使得外接磁盤HDC直接與磁盤接口總線通信。
集成在主板磁盤接口總線上的磁盤Cache可以以最高的接口速率運行,有利于充分發(fā)揮接口總線的性能,并可以對常規(guī)的磁盤驅(qū)動器實現(xiàn)系統(tǒng)引導(dǎo)加速;而集成在驅(qū)動器HDC上的磁盤Cache的運行速度通常受限于驅(qū)動器電路的實際速率,一般(大大)低于標(biāo)稱的磁盤接口速率,但它可以適用于常規(guī)的計算機(jī)主板。上述兩種磁盤Cache也可以同時在系統(tǒng)中使用,此時它們形成一種二級高速緩存的結(jié)構(gòu)。與常規(guī)計算機(jī)體系結(jié)構(gòu)中的分級RAM高速緩存相似,分級的非易失性閃存Cache也可以有效地提高系統(tǒng)引導(dǎo)過程中磁盤扇區(qū)的命中率。
以上實施例使用的都是并行方式的ATA IDE磁盤驅(qū)動器和IDE接口主機(jī)板。對于使用串行ATA磁盤接口或SCSI磁盤接口的系統(tǒng),上述技術(shù)方案經(jīng)過簡單調(diào)整即可同樣地運用。
本說明書的技術(shù)方案還可以用其它不同于上述實施例的方式實現(xiàn)。所附的權(quán)利要求書涵蓋了對以上所描述的各要素的諸多變形與替換。
權(quán)利要求1.一種磁盤高速緩存裝置,包括Cache控制器(1)和RAM存儲器(3),其特征在于它還包括非易失性存儲器(2),該非易失性存儲器(2)設(shè)置在緩存區(qū)首先被訪問的位置,所述Cache控制器(1)在系統(tǒng)復(fù)位之后只對該非易失性存儲器(2)進(jìn)行訪問,在發(fā)生Cache填充沖突之后不對其中的數(shù)據(jù)進(jìn)行替換。
2.根據(jù)權(quán)利要求1所述的磁盤高速緩存裝置,其特征在于所述非易失性存儲器(2)由閃存構(gòu)成。
3.根據(jù)權(quán)利要求1或2所述的磁盤高速緩存裝置,其特征在于所述Cache控制器(1)的外部總線接口同硬磁盤控制器HDC(6)相連接,從后者取得磁盤扇區(qū)的地址和數(shù)據(jù)。
4.根據(jù)權(quán)利要求1或2所述的磁盤高速緩存裝置,其特征在于所述Cache控制器(1)的外部總線接口同一個接口HDC(9)相連接,從后者取得磁盤扇區(qū)的地址和數(shù)據(jù),所述接口HDC(9)設(shè)置在主機(jī)板上的磁盤接口總線上。
專利摘要本實用新型公開了一種磁盤高速緩存裝置,它包括設(shè)置在緩存區(qū)被首先訪問的位置上的非易失性存儲器(例如閃存),其Cache控制器在系統(tǒng)復(fù)位之后只對該非易失性存儲器進(jìn)行訪問,并在發(fā)生Cache填充沖突之后不對其中的數(shù)據(jù)進(jìn)行替換,Cache控制器可以同硬磁盤控制器HDC相連、或者同一個接口HDC相連接,以取得磁盤扇區(qū)的地址和數(shù)據(jù)。該裝置使用非易失性的閃存持久地保存系統(tǒng)引導(dǎo)過程所需訪問的磁盤扇區(qū),在隨后的啟動或重啟過程中可有效地減少對磁盤的直接訪問、加快系統(tǒng)引導(dǎo)。
文檔編號G06F12/00GK2603974SQ02294149
公開日2004年2月18日 申請日期2002年12月27日 優(yōu)先權(quán)日2002年12月27日
發(fā)明者孫斌 申請人:孫斌