專利名稱:使用第一及第二存儲(chǔ)裝置的磁盤加速的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般而言涉及數(shù)據(jù)存儲(chǔ)裝置,且更具體而言涉及雙媒體存儲(chǔ)。
背景技術(shù):
通用計(jì)算機(jī)需要一海量存儲(chǔ)系統(tǒng)。不同于用于直接調(diào)處數(shù)據(jù)的主存儲(chǔ)器,海量存 儲(chǔ)器是用來保存數(shù)據(jù)。通常, 一程序存儲(chǔ)于海量存儲(chǔ)器內(nèi)且,當(dāng)執(zhí)行所述程序時(shí),將 所述整個(gè)程序或所述程序的部分復(fù)制至主存儲(chǔ)器內(nèi)。 一系統(tǒng)能夠?qū)⑺龀绦蚣捌湎嚓P(guān) 數(shù)據(jù)定位且從海量存儲(chǔ)裝置傳輸至主存儲(chǔ)器的速度是與所述系統(tǒng)的整體速度成一體。
常見的海量存儲(chǔ)裝置包括軟盤、硬盤、光盤及磁帶。每種裝置均在容量、價(jià)格、 速度及方便性方面各具有其強(qiáng)點(diǎn)及弱點(diǎn)。
此外,諸如快閃存儲(chǔ)器的其它裝置能夠提供非易失性存儲(chǔ)??扉W存儲(chǔ)器是一種電
可擦可編程只讀存儲(chǔ)器(EEPROM)。盡管快閃存儲(chǔ)器通常不像易失性主存儲(chǔ)器那樣快, 但其仍快于硬盤。
本發(fā)明人先前已研究過將多個(gè)單獨(dú)裝置整合至一海量存儲(chǔ)系統(tǒng)來最大化每一裝置 的強(qiáng)點(diǎn)及最小化每一裝置的弱點(diǎn)的概念。例如,本發(fā)明人也是1997年12月31日公開 的WO97/50035號(hào)PCT申請(qǐng)案"存儲(chǔ)器裝置"的發(fā)明人,此案以引用的方式并入本文 中。所述PCT申請(qǐng)案闡釋一種既包括一相對(duì)慢存取的海量存儲(chǔ)裝置(諸如一硬盤〉也 包括一相對(duì)快存取的數(shù)據(jù)存儲(chǔ)裝置(諸如一快閃存儲(chǔ)器)的存儲(chǔ)器系統(tǒng)。 一類似概念 業(yè)已揭示于2000年1月18日頒予Daniel Auclair及Eliyahou Harari的第6,016,530號(hào)"既 具有固態(tài)也具有旋轉(zhuǎn)磁盤型存儲(chǔ)器的計(jì)算機(jī)海量存儲(chǔ)系統(tǒng)"的美國(guó)專利中,所述申請(qǐng) 案的全文以引用的方式并入本文中。
通過將一非易失性快閃存儲(chǔ)器裝置與一非易失性硬盤相組合, 一合成海量存儲(chǔ)系 統(tǒng)的總?cè)萘磕軌虼笥谄淙坎考娜萘恐?。然而,以往,此一存?chǔ)器系統(tǒng)被限制于 始終保持每一數(shù)據(jù)區(qū)段的唯一版本的情形。所述數(shù)據(jù)區(qū)段即可存儲(chǔ)在高速存儲(chǔ)器內(nèi)也 可存儲(chǔ)在一慢存取海量數(shù)據(jù)存儲(chǔ)裝置內(nèi),由此使邏輯地址空間等于高速存儲(chǔ)器及慢存 取海量數(shù)據(jù)存儲(chǔ)裝置的容量的和。
當(dāng)今,存在多種正使用的在商業(yè)上取得成功的非易失性存儲(chǔ)器產(chǎn)品,其通常采用 一形成于一個(gè)或一個(gè)以上集成電路芯片上的快閃單元陣列。 一通常位于一單獨(dú)集成電 路芯片上的存儲(chǔ)器控制器(但非必須)控制所述存儲(chǔ)器陣列的運(yùn)作。此一控制器通常 包括一微處理器、某一非易失性只讀存儲(chǔ)器(ROM)、一易失性隨機(jī)存取存儲(chǔ)器(RAM)及一個(gè)或一個(gè)以上特殊電路,諸如, 一個(gè)在數(shù)據(jù)于程序化及讀取運(yùn)作期間穿過所述控 制器時(shí)計(jì)算所述數(shù)據(jù)中的錯(cuò)誤修正碼(ECC)的電路。
一典型快閃陣列的存儲(chǔ)器單元可劃分為多個(gè)能夠一起擦除的離散存儲(chǔ)器單元區(qū) 塊。亦即,所述擦除區(qū)塊是所述擦除單元-一可同時(shí)擦除的最小數(shù)量的存儲(chǔ)器單元。每 一擦除區(qū)塊通常存儲(chǔ)一個(gè)或一個(gè)以上數(shù)據(jù)頁,可在不同的子陣列或平面內(nèi)并行編程或 讀取所述頁。每一平面通常存儲(chǔ)一個(gè)或一個(gè)以上數(shù)據(jù)區(qū)段,所述區(qū)段的大小是由主機(jī) 系統(tǒng)來決定。按照一磁盤驅(qū)動(dòng)器所建立的標(biāo)準(zhǔn), 一實(shí)例性區(qū)段包括512個(gè)字節(jié)的使用 者數(shù)據(jù)。此等存儲(chǔ)器通常配置為每一擦除區(qū)塊內(nèi)具有16、 32或更多個(gè)頁,且每一頁存 儲(chǔ)一個(gè)或幾個(gè)主數(shù)據(jù)區(qū)段。
為提高并行度, 一般會(huì)將所述陣列劃分為通常稱作平面的子陣列。每一平面均可 包括其自己的數(shù)據(jù)寄存器及允許并行運(yùn)作的其它電路,以便可將所述數(shù)據(jù)區(qū)段同時(shí)編 程至所有平面內(nèi)或從所有平面讀取。 一單個(gè)集成電路上的陣列可物理上劃分為多個(gè)平 面,或每一平面可由單獨(dú)的一個(gè)或一個(gè)以上集成電路芯片形成。此一存儲(chǔ)器構(gòu)建方案 的實(shí)例闡釋于1998年8月25日頒予Lee等人的第5,798,968號(hào)美國(guó)專利"平面解碼/ 虛擬區(qū)段構(gòu)造",及1999年3月30日頒予Lee等人的第5,890,192號(hào)美閨專利"將多 個(gè)資料區(qū)塊并行寫入快閃EEPROM的多個(gè)子陣列"中,所述兩個(gè)專利的全文以引用的 方式并入本文中。
為進(jìn)一步有效管理存儲(chǔ)器,擦除區(qū)塊可連接在一起形成虛擬區(qū)塊或元區(qū)塊。亦即, 可規(guī)定每一元區(qū)塊包括一來自每一平面的擦除區(qū)塊。所述元區(qū)塊的使用闡釋于2002年 7月25日公開的第WO02/058074號(hào)PCT專利申請(qǐng)案"一非易失性存儲(chǔ)器內(nèi)的部分區(qū) 塊數(shù)據(jù)編程及讀取運(yùn)作"中,所述申請(qǐng)案的全文以引用的方式并入本文中。所述元區(qū) 塊由一主機(jī)邏輯區(qū)塊地址識(shí)別為一編程及讀取數(shù)據(jù)的目的地。同樣, 一元區(qū)塊的全部 擦除區(qū)塊能夠一起擦除。 一存儲(chǔ)器系統(tǒng)內(nèi)由這些大區(qū)塊及/或元區(qū)塊運(yùn)作的控制器需執(zhí) 行大量功能,其中包括接收自一主機(jī)的邏輯區(qū)塊地址(LBAs)與存儲(chǔ)器單元陣列內(nèi)物 理區(qū)塊編號(hào)(PBNs)之間的轉(zhuǎn)換。所述區(qū)塊內(nèi)的個(gè)別頁通常是通過所述區(qū)塊地址內(nèi)的 偏置來識(shí)別。
此類型的快閃存儲(chǔ)器系統(tǒng)通常在可攜式應(yīng)用中用作海量存儲(chǔ)裝置。所述快閃存儲(chǔ) 器裝置使用一諸如ATA的協(xié)議經(jīng)由一邏輯接口與一主機(jī)系統(tǒng)進(jìn)行通訊,且常常呈一可 移動(dòng)卡的形式。某些市面出售的卡是CompactFlashTM(CF)卡、多媒體卡(MMC)、安 全數(shù)字(SD)卡、智能媒體卡、個(gè)人信息卡(P-Tag)及存儲(chǔ)器卡。主機(jī)包括個(gè)人計(jì)算 機(jī)、筆記本計(jì)算機(jī)、個(gè)人數(shù)字助理(PDAs)、各種數(shù)據(jù)通訊系統(tǒng)、及類似形式的設(shè)備。 除存儲(chǔ)器卡實(shí)施方案外,此類型的存儲(chǔ)器也可嵌裝于各種類型的主機(jī)系統(tǒng)內(nèi)。
至今,人們?nèi)栽诓粩嗯Ω倪M(jìn)海量存儲(chǔ)裝置
發(fā)明內(nèi)容
本發(fā)明提供一種數(shù)據(jù)存儲(chǔ)系統(tǒng),其通常包括 一第一存儲(chǔ)裝置、 一第二存儲(chǔ)裝置 及一存儲(chǔ)控制器。所述第二存儲(chǔ)裝置具有一比所述第一存儲(chǔ)裝置慢的平均存取時(shí)間及 一高的容量。平均存取時(shí)間是所述裝置能夠開始讀取或?qū)懭霐?shù)據(jù)之前必需的平均延遲。
于一實(shí)施例中,所述存儲(chǔ)控制器可運(yùn)作以將數(shù)據(jù)的第一部分引導(dǎo)至所述第一存儲(chǔ) 裝置及將數(shù)據(jù)的第二部分引導(dǎo)至所述第二存儲(chǔ)裝置。于另一實(shí)施例中,存儲(chǔ)控制器可 運(yùn)作以從所述第一存儲(chǔ)裝置檢索數(shù)據(jù)的第一部分及從所述第二存儲(chǔ)裝置檢索數(shù)據(jù)的第 二部分。
通常,所述數(shù)據(jù)的第.部分是-連續(xù)數(shù)據(jù)流內(nèi)數(shù)據(jù)的第一部分。同樣,所述數(shù)據(jù) 的第二部分是來自所述數(shù)據(jù)流的剩余數(shù)據(jù)。通常使用一表來包含關(guān)于所述數(shù)據(jù)的第一 部分的位置及所述數(shù)據(jù)的第二部分的位置的信息。
于另一實(shí)施例中,首先通過從一主機(jī)系統(tǒng)總線接收一寫入指令將數(shù)據(jù)寫入至一數(shù) 據(jù)地址來存儲(chǔ)所述數(shù)據(jù)。然后,將所述數(shù)據(jù)的第一部分存儲(chǔ)于所述第一存儲(chǔ)裝置內(nèi)。 在所述數(shù)據(jù)的第一部分完全存儲(chǔ)入所述第一裝置內(nèi)之前,所述第二存儲(chǔ)裝置業(yè)己做好 寫入數(shù)據(jù)的準(zhǔn)備。在所述第二存儲(chǔ)裝置準(zhǔn)備就緒后,將所述數(shù)據(jù)的剩余部分存儲(chǔ)入所 述第二存儲(chǔ)裝置內(nèi)。
于再一實(shí)施例中,首先從所述主機(jī)系統(tǒng)總線接收一讀取指令。然后,所述數(shù)據(jù)存 儲(chǔ)系統(tǒng)決定所述數(shù)據(jù)的第一部分是否駐存于所述第一存儲(chǔ)裝置上。如果所述數(shù)據(jù)確實(shí) 駐存于所述第一存儲(chǔ)裝置上,貝IJ:從所述第一存儲(chǔ)裝置讀取所述數(shù)據(jù)的第一部分;在 完成讀取所述數(shù)據(jù)的第一部分之前,所述第二存儲(chǔ)裝置做好讀取所述數(shù)據(jù)的剩余部分 的準(zhǔn)備;及從第二存儲(chǔ)裝置讀取所述數(shù)據(jù)的剩余部分。否則,如果所述數(shù)據(jù)的一部分 并未駐存于所述第一存儲(chǔ)裝置上,則從所述第二存儲(chǔ)裝置讀取所述數(shù)據(jù)的第一部分及 所述數(shù)據(jù)的剩余部分二者。
通過結(jié)合以舉例方式圖解說明本發(fā)明原理的附圖來閱讀下述詳細(xì)說明,本發(fā)明的 其它方面及優(yōu)點(diǎn)將顯而易見。
結(jié)合附圖參照以下說明可最佳地理解本發(fā)明,圖式中-圖1A描繪一能夠使用本發(fā)明的實(shí)例性通用計(jì)算機(jī)系統(tǒng); 圖1B描繪一圖1A的通用計(jì)算機(jī)系統(tǒng)的抽象示意圖; 圖2A描繪根據(jù)本發(fā)明一實(shí)例性實(shí)施例的改進(jìn)型海量存儲(chǔ)裝置; 圖2B描繪根據(jù)本發(fā)明另一實(shí)例性實(shí)施例的改進(jìn)型海量存儲(chǔ)裝置; 圖3A描繪一硬盤驅(qū)動(dòng)器地址空間及一快閃地址空間內(nèi)的磁頭數(shù)據(jù)及主體數(shù)據(jù)的 抽象示意圖3B描繪一硬盤驅(qū)動(dòng)器地址空間及一快閃地址空間與整個(gè)改進(jìn)型海量存儲(chǔ)裝置 的地址空間關(guān)系的抽象示意圖;圖4A是一時(shí)序圖,其描繪當(dāng)一未使用磁盤加速的系統(tǒng)接收一寫入指令時(shí)所發(fā)生的
傳統(tǒng)寫入處理。
圖4B是一時(shí)序圖,其描繪根據(jù)本發(fā)明一實(shí)例性實(shí)施例當(dāng)一使用磁盤加速的系統(tǒng)接
收一寫入指令時(shí)所發(fā)生的寫入處理;
圖5A描繪一圖解說明當(dāng)快閃容量增加時(shí)系統(tǒng)性能益處的圖表;
圖5B描繪一圖解說明當(dāng)所述改進(jìn)型海量存儲(chǔ)裝置的利用率降低時(shí)系統(tǒng)性能益處
的圖表;
圖6描繪一環(huán)形緩沖區(qū)的仿效示意圖7是一根據(jù)本發(fā)明 -實(shí)例性實(shí)施例的實(shí)例性寫入技術(shù)的流程圖8是一根據(jù)本發(fā)明的一實(shí)例性實(shí)施例的實(shí)例性讀取技術(shù)的流程圖;及
圖9是一圖6環(huán)形緩沖區(qū)內(nèi)一區(qū)段存儲(chǔ)位置圖的示意圖。
應(yīng)了解,在這些附圖中,相同的參考編號(hào)代表相同的結(jié)構(gòu)性元件。同樣,應(yīng)了解 這些圖式中的描繪未必按照比例尺。
具體實(shí)施例方式
在下文說明中,列舉了大量具體細(xì)節(jié)以使人們能夠徹底了解本發(fā)明。當(dāng)然,所屬
領(lǐng)域的技術(shù)人員應(yīng)明了無需這些具體細(xì)節(jié)的某些或全部細(xì)節(jié)也可實(shí)施本發(fā)明。在其 它示例中,為避免對(duì)本發(fā)明產(chǎn)生不必要的混淆,本文不再贅述眾所周知的過程步驟。
通常,本發(fā)明是通過組合兩個(gè)各具有其強(qiáng)點(diǎn)及弱點(diǎn)的單獨(dú)存儲(chǔ)裝置來改進(jìn)先前的
海量存儲(chǔ)裝置(一般也稱為輔助存儲(chǔ)器)。例如,盡管快閃比一硬盤驅(qū)動(dòng)器具有更快的 存取時(shí)間,但其一般不具備硬盤驅(qū)動(dòng)器的存儲(chǔ)容量。如那些所屬領(lǐng)域的技術(shù)人員所了 解的,任何兩個(gè)非易失性存儲(chǔ)裝置均能夠用于本發(fā)明中,只要其中一個(gè)比另一個(gè)具有 更快的存取時(shí)間。應(yīng)用于存儲(chǔ)裝置的存取時(shí)間通常是定義為一存儲(chǔ)裝置接收一數(shù)據(jù)請(qǐng) 求與所述存儲(chǔ)裝置實(shí)際開始讀取及/或?qū)懭胨鰯?shù)據(jù)之間的時(shí)間。例如,對(duì)于位于一硬 盤或軟盤上的數(shù)據(jù)而言,存取時(shí)間一般等于指令耗用時(shí)間、搜尋時(shí)間、穩(wěn)定時(shí)間及等 待時(shí)間的總和。
搜尋時(shí)間及等待時(shí)間決定--磁盤的整體存取時(shí)間。 一磁盤的搜尋時(shí)間是一讀/寫磁 頭從一個(gè)磁道移動(dòng)至另一個(gè)磁道所花費(fèi)的時(shí)間。對(duì)于一硬盤而言,搜尋至一相鄰磁道 通常需要lmSec, 一全程搜尋(一從內(nèi)磁道至外磁道的搜尋,或反之亦然)需要15mSec, 且隨機(jī)搜尋的平均時(shí)間為10mSec。等待時(shí)間是指在磁頭定位于一地址磁道上后所述盤 片上的一已尋址區(qū)段轉(zhuǎn)動(dòng)至磁頭的時(shí)間,且是磁盤旋轉(zhuǎn)速度的函數(shù)。對(duì)于一 7200rpm 的旋轉(zhuǎn)速度,平均等待時(shí)間是4.14mSec,而最大等待時(shí)間是8.3 mSec。
相反地,于一典型的快閃磁盤裝置上,可將一數(shù)據(jù)區(qū)段以約30)aS的速度轉(zhuǎn)移至所 述裝置,且可以20(VS將八個(gè)區(qū)段并行編程至所述快閃存儲(chǔ)器內(nèi)。此可提供一約16MB/s 的叢發(fā)寫入速度,其中每25(VS可將八個(gè)區(qū)段寫至裝置。然而,由于所述裝置偶爾也須執(zhí)行某些內(nèi)務(wù)運(yùn)作,諸如垃圾收集、再定位數(shù)據(jù)區(qū)段來完成一數(shù)據(jù)區(qū)塊、及區(qū)塊擦 除;因此,編程八個(gè)區(qū)段的有效時(shí)間有時(shí)相當(dāng)長(zhǎng)。由此, -快閃的維持寫入速率大約 為15MB/Sec。當(dāng)然,也可于一快閃磁盤裝置內(nèi)使用其它區(qū)段轉(zhuǎn)移及并行編程方案,以 提供一不同的運(yùn)作速度。
圖IA描繪一能夠使用本發(fā)明的實(shí)例性通用計(jì)算機(jī)系統(tǒng)100。所述系統(tǒng)的組件包括 一計(jì)算機(jī)105、諸如一鼠標(biāo)110及鍵盤115等各種輸入裝置、及諸如一監(jiān)視器120及一 打印機(jī)125等各種輸出裝置。
圖1B —描繪圖1所示計(jì)算機(jī)系統(tǒng)100的抽象視圖,圖中僅描繪系統(tǒng)的基本組件。 一單個(gè)組件130表示允許一使用者與計(jì)算機(jī)系統(tǒng)100交作的輸入裝置,例如一鼠標(biāo)及 鍵盤。同樣, 一單個(gè)組件135表示能夠顯示計(jì)算機(jī)系統(tǒng)100所完成任務(wù)的輸出裝置, 例如一監(jiān)視器及打印機(jī)。計(jì)算機(jī)系統(tǒng)100的核心是一中央處理單元(CPU) 140及執(zhí)行 指令的組件。主存儲(chǔ)器145 —般為易失性且給CPU140提供供執(zhí)行的指令及供所述指令 調(diào)處的數(shù)據(jù)兩者。此等組件B0、 135、 140及145均在所屬技術(shù)領(lǐng)域中眾所周知。
-改進(jìn)型海量存儲(chǔ)裝置150允許計(jì)算機(jī)系統(tǒng)100永久保存海量數(shù)據(jù)。組件130、 135、 140、 145及150能夠經(jīng)由主機(jī)總線155相互交換信息。
圖2A描繪一根據(jù)本發(fā)明一實(shí)施例的改進(jìn)型海量存儲(chǔ)裝置150A。其中兩個(gè)存儲(chǔ)裝 置,即一快閃存儲(chǔ)器系統(tǒng)205及一硬盤驅(qū)動(dòng)器210為并行連接。所述快閃存儲(chǔ)器系統(tǒng) 205包括一快閃存儲(chǔ)器陣列215及一快閃控制器220。硬盤驅(qū)動(dòng)器210包括-'硬磁盤225 及一磁盤控制器230。每一控制器220及230各負(fù)責(zé)相應(yīng)類型存儲(chǔ)器的特定作業(yè)。例如, 快閃控制器220控制所有數(shù)據(jù)區(qū)段的邏輯-至-物理映像及所有快閃存儲(chǔ)器的管理,以使 快閃控制器220與快閃存儲(chǔ)器陣列215間的接口 250是-一物理接口。磁盤控制器230 管理硬磁盤225的讀取及寫入作業(yè)。控制器220及230兩者經(jīng)由一邏輯接口 260及265 連接至路由器235。
--主機(jī)接口 240及一存儲(chǔ)控制器245雙雙定位于路由器235的h游,以允許數(shù)據(jù) 及控制信息于主機(jī)接口 240與磁盤控制器230或快閃控制器220之間的任一方向卜.通 行。此外,路由器235能夠控制于磁盤控制器230與快閃控制器220之間任一方向上 的數(shù)據(jù)轉(zhuǎn)移。此等轉(zhuǎn)移可作為一獨(dú)立作業(yè)實(shí)施。另一選擇是,此等轉(zhuǎn)移可結(jié)合主機(jī)接 口 240與海量存儲(chǔ)控制器220及230之間的任一方向上的數(shù)據(jù)轉(zhuǎn)移來實(shí)施。路由器235 可含納用-T數(shù)據(jù)轉(zhuǎn)移的控制邏輯。
主機(jī)接口 240給主機(jī)總線155提供一直接接口,且能夠給主機(jī)總線155上使用的 特定協(xié)議提供全部支持。所述由主機(jī)接口 240、磁盤控制器230及硬磁盤225構(gòu)成的子 系統(tǒng)及由主機(jī)接口 240、快閃控制器220及快閃存儲(chǔ)器陣列215構(gòu)成的子系統(tǒng)各構(gòu)成完 整的數(shù)據(jù)存儲(chǔ)系統(tǒng)。路由器235可使數(shù)據(jù)及控制信號(hào)通過而無需主機(jī)接口 240的修改, 或可建立一用于與控制器220及230通訊的替代協(xié)議。路由器235與海量存儲(chǔ)控制器 220或230之間的接U 260及265可是一標(biāo)準(zhǔn)協(xié)議,例如ATA,或可是一規(guī)定用于改進(jìn) 型海量存儲(chǔ)裝置150的特殊接LJ。接口 260及265通常是提供對(duì)快閃存儲(chǔ)器系統(tǒng)205及硬盤驅(qū)動(dòng)器210內(nèi)單獨(dú)數(shù)據(jù)區(qū)段的隨機(jī)讀取及寫入存取的邏輯接口,且不相依于各 自存儲(chǔ)媒休的物理特征。
此外,快閃控制器220也可支持接口 260上的特殊指令或作業(yè),以便直接存取快 閃存儲(chǔ)器陣列215的保留區(qū)域,所述區(qū)域可用來存儲(chǔ)供存儲(chǔ)控制器245A使用的表及信 息記錄。另一選擇是,存儲(chǔ)控制器245A可具有自己的非易失性存儲(chǔ)器供存儲(chǔ)這些表及 記錄。
存儲(chǔ)控制器245A是 一能夠指揮主機(jī)接口 240與海量存儲(chǔ)控制器220及230之間信 息轉(zhuǎn)移的智能型控制單元。存儲(chǔ)控制器245A可協(xié)調(diào)至或自快閃存儲(chǔ)器系統(tǒng)205或硬盤 驅(qū)動(dòng)器210內(nèi)數(shù)據(jù)的存儲(chǔ)或數(shù)據(jù)的讀取。存儲(chǔ)控制器245A能夠?yàn)榇鎯?chǔ)于快閃存儲(chǔ)器陣 列215中的信息維持地址列表。
易失性存儲(chǔ)器可在諸多改進(jìn)型海量存儲(chǔ)裝置150的組件中擔(dān)當(dāng)一緩沖區(qū)或高速緩 沖存儲(chǔ)器,所述組件包括主機(jī)接U 240、路由器235、快閃控制器220及磁盤控制器230。 或可排定一單個(gè)易失性存儲(chǔ)器運(yùn)作于不同組件內(nèi),或可將單獨(dú)的易失性存儲(chǔ)器專用于 每一組件。
于另一實(shí)施例中,可將控制器220及230的功能與路由器235 —起合并于一集成 式控制裝置內(nèi)。此裝置也可包括存儲(chǔ)控制器245及主機(jī)接口 240。然而,此一配置需要 產(chǎn)生新的控制器單元。相應(yīng)地,控制器220及230中的任--個(gè)或其兩者均不會(huì)再包括 在存儲(chǔ)器裝置內(nèi)。雖然此配置將需要開發(fā)新的控制電路,但此也可減少所需組件的總數(shù)量。
圖2B描繪一根據(jù)本發(fā)明另一實(shí)施例的改進(jìn)型海量存儲(chǔ)裝置150B。所述改進(jìn)型存 儲(chǔ)裝置150B保留與圖2A中改進(jìn)型海量存儲(chǔ)裝置I50A內(nèi)相同的硬盤驅(qū)動(dòng)器210紐件, 但其使用一包含路由器235及主機(jī)接口 240的功能以及圖2A中存儲(chǔ)控制器245A的主 要功能的存儲(chǔ)控制器245B。邏輯接口 260被去除并由一直接連接至一快閃存儲(chǔ)器陣列 215B的物理接口 275所替代。于此一配置中, 一磁盤加速器250宜為一位于硬盤驅(qū)動(dòng) 器210的ATA接口上的前端高速緩沖存儲(chǔ)器或?yàn)槔糜脖P驅(qū)動(dòng)器210的既有組件而集 成于硬盤驅(qū)動(dòng)器210組合件中。于此實(shí)施例中,不再需要快閃控制器220的功能且快 閃存儲(chǔ)器陣列215B也不再構(gòu)成一邏輯數(shù)據(jù)存儲(chǔ)裝置的部分,但其可直接用作一物理存 儲(chǔ)器。此配置特別適合臨時(shí)存儲(chǔ)數(shù)據(jù)流。
無論使用何種具體構(gòu)造,磁盤加速通常均可通過在一第二存儲(chǔ)裝置正經(jīng)歷等待的 同吋將一 "磁頭"數(shù)據(jù)寫至一第一存儲(chǔ)裝置及/或從所述第-存儲(chǔ)裝置讀取所述"磁頭" 數(shù)據(jù)來實(shí)現(xiàn)。在圖2A及圖2B中所示的實(shí)施例中,快閃存儲(chǔ)器陣列215所經(jīng)歷的等待 時(shí)間明顯小于硬磁盤225。將數(shù)據(jù)流的一初始部分("磁頭數(shù)據(jù)")寫入至快閃存儲(chǔ)器系 統(tǒng)205的快閃存儲(chǔ)器陣列215,而非等待硬磁盤225的讀/寫磁頭合適定位。 一旦硬磁 盤225已準(zhǔn)備接收數(shù)據(jù),即將剩余部分("主體數(shù)據(jù)")寫入至硬盤驅(qū)動(dòng)器210的硬磁盤 225。同時(shí),所述磁頭數(shù)據(jù)及主體數(shù)據(jù)形成一單個(gè)資料片段。 一數(shù)據(jù)片段可定義為一能 夠?qū)е滤龅诙鎯?chǔ)裝置經(jīng)歷一非一般存取時(shí)間的數(shù)據(jù)簇。如果是一硬磁盤225,則可將一數(shù)據(jù)片段闡釋為一非鄰接先前數(shù)據(jù)的順序數(shù)據(jù),由此可迫使硬盤驅(qū)動(dòng)器210經(jīng)歷 搜尋時(shí)間及/或等待時(shí)間。
取決于如何利用改進(jìn)型海量存儲(chǔ)裝置150,所述磁頭數(shù)據(jù)的大小或可基于需要來計(jì) 算或可是一標(biāo)準(zhǔn)大小。 一標(biāo)準(zhǔn)大小可取決于多個(gè)因素,包括一硬盤驅(qū)動(dòng)器210的平均 搜尋吋間、快閃存儲(chǔ)器陣列215的大小、及/或在因一垃圾收集運(yùn)作而出現(xiàn)一顯著延長(zhǎng) 的有效編程時(shí)間之前可寫入的邏輯上相鄰區(qū)段的數(shù)量。
圖3A是一描繪一硬盤驅(qū)動(dòng)器地址空間315及快閃地址空間320內(nèi)磁頭數(shù)據(jù)305 及主體數(shù)據(jù)310的抽象視圖。存儲(chǔ)控制器245A或245B使用一磁頭映像表325來協(xié)調(diào) 磁頭數(shù)據(jù)305及主體數(shù)據(jù)310的存儲(chǔ)。如果快閃存地址空間320足夠大,則磁頭數(shù)據(jù) 305能夠永久駐存于快閃存儲(chǔ)器陣列215內(nèi)。然而,如果所述快閃空間有限,則需要構(gòu) 建機(jī)理以允許從快閃存儲(chǔ)器陣列215中移除磁頭數(shù)據(jù)305,從而給新磁頭數(shù)據(jù)騰出空間。
一種此類機(jī)理可包括將磁盤地址空間305內(nèi)的空間330保留用于磁頭數(shù)據(jù)305。當(dāng) 快閃存儲(chǔ)器陣列215內(nèi)需要空間時(shí),可將磁頭數(shù)據(jù)305復(fù)制至保留空間330,以使整個(gè) 數(shù)據(jù)片段在硬磁盤225上鄰接。較佳地,在未使用改進(jìn)型海量存儲(chǔ)裝置150A或150B 時(shí),磁頭數(shù)據(jù)305的復(fù)制可作為一背景作業(yè)予以實(shí)施。這一區(qū)段再定位的頻率較佳是 根據(jù)磁盤裝置與快閃存儲(chǔ)器裝置的存儲(chǔ)器容量的比率,及根據(jù)能夠?qū)懼粮倪M(jìn)型海量存 儲(chǔ)裝置150的單獨(dú)鄰接區(qū)段序列的數(shù)量而定。
同樣,圖3B是一描繪所述整個(gè)改進(jìn)型海量存儲(chǔ)裝置的一地址空間350與磁盤地址 空間315及快閃地址空間320之間關(guān)系的抽象視圖。由于磁盤地址空間315內(nèi)保留有 用于磁頭數(shù)據(jù)的空間,所以用于所述改進(jìn)型海量存儲(chǔ)裝置的地址空間350等于磁盤地 址空間315。
從圖4A與圖4B的差異可看出系統(tǒng)性能因使用改進(jìn)型海量存儲(chǔ)裝置而提高。圖 4A是一時(shí)序圖,其描繪當(dāng)從一海量存儲(chǔ)系統(tǒng)接收到一寫入指令405時(shí)所發(fā)生的傳統(tǒng)寫 入處理,此處,所述海量存儲(chǔ)系統(tǒng)未使用本發(fā)明所提供的磁盤加速。通常,大約在硬 盤驅(qū)動(dòng)器210的讀/寫磁頭開始移動(dòng)415至適當(dāng)位置的同時(shí),數(shù)據(jù)410開始轉(zhuǎn)移至一磁 盤高速緩沖存儲(chǔ)器。 一旦所述讀/寫磁頭及硬磁盤225均已進(jìn)入位置,即可開始將數(shù)據(jù) 420寫至硬磁盤225。通常,將數(shù)據(jù)420從所述高速緩沖存儲(chǔ)器寫至硬磁盤225所花費(fèi) 置時(shí)間長(zhǎng)于將進(jìn)入數(shù)據(jù)410轉(zhuǎn)移至高速緩沖存儲(chǔ)器內(nèi)所花費(fèi)的時(shí)間。
圖4B是一描繪根據(jù)本發(fā)明實(shí)施例在一使用磁盤加速的海量存儲(chǔ)系統(tǒng)接收到一寫 入指令405時(shí)所發(fā)生的寫入處理的時(shí)序圖。 一旦接收到寫入指令405,數(shù)個(gè)不同的運(yùn)作 即可開始。例如,可開始將磁頭數(shù)據(jù)425及430轉(zhuǎn)移至快閃存儲(chǔ)器內(nèi)。易失性緩沖存 儲(chǔ)器無需快閃所需的內(nèi)務(wù)運(yùn)作。因此,將磁頭數(shù)據(jù)430存儲(chǔ)于快閃存儲(chǔ)器系統(tǒng)205內(nèi) 通常包括將磁頭數(shù)據(jù)425轉(zhuǎn)移至一緩沖區(qū),且隨后將磁頭數(shù)據(jù)425從所述緩沖區(qū)轉(zhuǎn) 移至快閃存儲(chǔ)器系統(tǒng)205以于快閃存儲(chǔ)器系統(tǒng)205內(nèi)產(chǎn)生磁頭數(shù)據(jù)430。在存儲(chǔ)磁頭數(shù) 據(jù)425及430的同時(shí),硬盤驅(qū)動(dòng)器210準(zhǔn)備接收數(shù)據(jù)。如果正為所述磁頭數(shù)據(jù)保留空 間,則給硬盤驅(qū)動(dòng)器210提供-一新的寫入指令435。所述新的寫入指令435不會(huì)將讀/寫磁頭引導(dǎo)至所述數(shù)據(jù)片段地址,而是引導(dǎo)至所述主體數(shù)據(jù)地址,而所述主體數(shù)據(jù)地 址僅是偏置開分配給所述磁頭數(shù)據(jù)的分配空間的片段地址。在硬盤驅(qū)動(dòng)器210接收到 新的寫入指令435之后,即可將讀/寫磁頭及硬盤適當(dāng)定位440。
一旦磁頭數(shù)據(jù)425全部轉(zhuǎn)移至快閃緩沖區(qū)425,則開始將主體數(shù)據(jù)445存儲(chǔ)于改進(jìn) 型海量存儲(chǔ)裝置的磁盤高速緩沖存儲(chǔ)器內(nèi),因此, 一主機(jī)系統(tǒng)將數(shù)據(jù)轉(zhuǎn)移至改進(jìn)型海 量存儲(chǔ)裝置150內(nèi)的速度與一未使用磁盤加速的系統(tǒng)的轉(zhuǎn)移速度相同。當(dāng)讀/寫磁頭及 硬盤均已進(jìn)入位置時(shí), 一旦所述主體數(shù)據(jù)可用,即可開始將主體數(shù)據(jù)450寫至硬磁盤。 寫入圖4B中的數(shù)據(jù)片段所花費(fèi)的總時(shí)間明顯小于圖4A中所需的總時(shí)間。
然而,系統(tǒng)性能的整體提高既取決于快閃存儲(chǔ)器陣列215的容量也取決于存取改 進(jìn)型海量存儲(chǔ)裝置150的頻率。如圖5A所示,當(dāng)快閃存儲(chǔ)器陣列215的容量增加時(shí), 系統(tǒng)性能會(huì)顯著獲益??扉W存儲(chǔ)器陣列215越大,在具有多個(gè)數(shù)據(jù)片段的叢發(fā)行動(dòng)期 間可存儲(chǔ)的數(shù)據(jù)越多。
同樣地,圖5B顯示當(dāng)利用更多改進(jìn)型海量存儲(chǔ)裝置150時(shí),系統(tǒng)性能會(huì)降低。 如果持續(xù)不斷地存取海量存儲(chǔ)裝置150,則將沒有足夠的時(shí)間將磁頭數(shù)據(jù)從快W存儲(chǔ)器 陣列215轉(zhuǎn)移至硬磁盤225 (假設(shè)必須轉(zhuǎn)移)。最后,根據(jù)其錯(cuò)誤處理例程,海量存儲(chǔ) 裝置150或必須在接收新磁頭數(shù)據(jù)之前轉(zhuǎn)移舊磁頭數(shù)據(jù),或必須停止使用快閃存儲(chǔ)器 陣列215而將硬盤驅(qū)動(dòng)器210專用于新數(shù)據(jù)片段。如圖5B所示,假若采用后一錯(cuò)誤處 理例程,則系統(tǒng)性能應(yīng)與一僅使用一硬盤驅(qū)動(dòng)器210的系統(tǒng)相同。如果快閃存儲(chǔ)器陣 列215暫時(shí)不可用,則也可利用此一錯(cuò)誤處理例程(例如,快閃存儲(chǔ)器陣列215參與 一垃圾收集過程)。如果在主機(jī)數(shù)據(jù)正被寫入至硬盤驅(qū)動(dòng)器210的同時(shí),執(zhí)行垃圾收集 作業(yè),則會(huì)減少與垃圾收集的沖突,其原因是此時(shí)通常為快閃存儲(chǔ)器陣列215的待用 時(shí)間。
圖6描繪一種以環(huán)形緩沖區(qū)600形式組織快閃存儲(chǔ)器陣列215B的數(shù)據(jù)流中的區(qū)段 存儲(chǔ)的方式。供寫入一數(shù)據(jù)區(qū)段的當(dāng)前位置由一寫入指針605來界定,所述寫入指針 以一無終點(diǎn)循環(huán)在圖6所示的地址空間內(nèi)順時(shí)針移動(dòng)。所述地址空間是由元區(qū)塊來界 定(例如,610及615),所述元區(qū)塊以一預(yù)定次序或以寫入指針605從一全元區(qū)塊移 動(dòng)至一新擦除元區(qū)塊時(shí)動(dòng)態(tài)決定的次序鏈接(例如620)。同樣地, 一擦除指針625以 一無終點(diǎn)循環(huán)在圖6所示的地址空間內(nèi)順時(shí)針移動(dòng)。為存儲(chǔ)新的數(shù)據(jù)區(qū)段,以一能夠 確保在寫入指針605前維持少量備用已擦除元區(qū)塊的速率,擦除由擦除指針625識(shí)別 的元區(qū)塊。所述正被擦除的區(qū)塊包含最少量最近寫入環(huán)形緩沖區(qū)600內(nèi)的數(shù)據(jù)。
磁頭數(shù)據(jù)存儲(chǔ)于一循環(huán)地址空間內(nèi),亦即, 一于其內(nèi)可通過提供一從最高地址返 回至最低地址的遞增步驟,連續(xù)實(shí)施遞增地址變遷的地址空間。于圖2A中所描繪的改 進(jìn)型海量存儲(chǔ)裝置150A的實(shí)施例中,快閃存儲(chǔ)器系統(tǒng)205的邏輯地址空間的一部分內(nèi) 的循環(huán)緩沖區(qū)提供所述循環(huán)地址空間。于圖2B中所描繪的改進(jìn)型海量存儲(chǔ)裝置150B 的實(shí)施例中,快閃存儲(chǔ)器陣列215B的物理地址空間內(nèi)的環(huán)形緩沖區(qū)600提供所述循環(huán) 地址空間。為保持快閃存儲(chǔ)器的成本盡可能低,快閃存儲(chǔ)器陣列215的容量通常小于存儲(chǔ)與改進(jìn)型海量存儲(chǔ)裝置150的整個(gè)地址空間350相關(guān)的全部磁頭數(shù)據(jù)所需的容量。由此,為了在快閃存儲(chǔ)器陣列215內(nèi)騰出空間供繼續(xù)存儲(chǔ)磁頭數(shù)據(jù),需要將磁頭數(shù)據(jù)從快閃存儲(chǔ)器陣列215復(fù)制至硬磁盤225上適合的保留空間。執(zhí)行此作業(yè)的方法對(duì)通過改進(jìn)型海量存儲(chǔ)裝置150而實(shí)現(xiàn)的系統(tǒng)性能的整體提高具有重要作用。
圖9描繪一與將磁頭數(shù)據(jù)復(fù)制至硬盤驅(qū)動(dòng)器210的管理方法相關(guān)的環(huán)形緩沖區(qū)600內(nèi)的區(qū)段存儲(chǔ)位置圖。所述環(huán)形緩沖lx: 600具有一從其最后物理地址至其第一物理地址呈環(huán)繞狀的環(huán)形地址空間。所述環(huán)形緩沖區(qū)600包括元區(qū)塊960、 965、 970、 975、980、 985、 9卯及995。區(qū)段數(shù)據(jù)在由遞增寫入指針605所界定的位置處寫至所述緩沖區(qū)。圖9將此循環(huán)地址空間描繪為-一移動(dòng)線性地址空間,其中包括寫入指針605的元區(qū)塊960被指配為緩沖區(qū)910的頂部。循環(huán)緩沖區(qū)600內(nèi)寫入指針605前面的元區(qū)塊995被指配為緩沖區(qū)940的底部。擦除指針625界定供擦除的下一目標(biāo)區(qū)塊,且也界定所述緩沖區(qū)內(nèi)磁頭數(shù)據(jù)輸入項(xiàng)的尾部。擦除指針625與緩沖區(qū)底部940之間的元區(qū)塊均處于被擦除狀態(tài)。
自擦除指針625所識(shí)別的元區(qū)塊990復(fù)制有效磁頭數(shù)據(jù),以允許擦除元區(qū)塊9卯。如果磁頭數(shù)據(jù)305自其寫至環(huán)形緩沖區(qū)600后尚未被讀取,則將其復(fù)制至硬磁盤225上對(duì)應(yīng)的保留空間330。然而,如果磁頭數(shù)據(jù)305自寫入后已被讀取,則也可將其在寫入指針605處復(fù)制回快閃存儲(chǔ)器,且因此保存在環(huán)形緩沖區(qū)600內(nèi)。此可允許可能供主機(jī)系統(tǒng)讀取的磁頭數(shù)據(jù)仍會(huì)在環(huán)形緩沖區(qū)600內(nèi)保持可用??墒褂么蓬^映像表325及數(shù)據(jù)區(qū)段自身的一標(biāo)頭內(nèi)的邏輯地址信息來識(shí)別有效磁頭數(shù)據(jù)。如果有效磁頭數(shù)據(jù)重疊元區(qū)塊990與另一元區(qū)塊間的邊界,則完整地復(fù)制整個(gè)磁頭數(shù)據(jù)。
然而,磁頭數(shù)據(jù)可能因相同邏輯地址的更新磁頭數(shù)據(jù)存在于環(huán)形緩沖區(qū)600內(nèi)的其它地方而無效。于此情形下,無需在擦除元區(qū)塊990之前復(fù)制所述磁頭數(shù)據(jù)。
在除所述由擦除指針625識(shí)別的元區(qū)塊外的元區(qū)塊上執(zhí)行提前復(fù)制作業(yè)。此可允許,例如,在主機(jī)所需的一磁盤存取臨時(shí)阻止對(duì)硬磁盤225的復(fù)制作業(yè)時(shí),繼續(xù)實(shí)施對(duì)快閃存儲(chǔ)器陣列115的復(fù)制作業(yè)。 一快閃復(fù)制指針915及一磁盤復(fù)制指針905均可用于識(shí)別下一需要復(fù)制作業(yè)的位置。位于擦除指針625與復(fù)制指針905及915之間的有效磁頭數(shù)據(jù)均應(yīng)已執(zhí)行其所要求的復(fù)制作業(yè)。由于人們期望在環(huán)形緩沖區(qū)600內(nèi)存儲(chǔ)盡可能多的有效磁頭數(shù)據(jù),因此,對(duì)此等提前復(fù)制作業(yè)的程度設(shè)定若干限制。 一磁盤復(fù)制限制920及一快閃復(fù)制限制930界定磁盤復(fù)制指針卯5及快閃復(fù)制指針915可在擦除指針625前移動(dòng)的最大限度。
無需將擦除元區(qū)塊限定于指針625所識(shí)別的元區(qū)塊。例如,如果擦除指針625處的元區(qū)塊990需要進(jìn)一步快閃復(fù)制作業(yè),同時(shí)擦除指針625與磁盤復(fù)制指針905之間的元區(qū)塊980不包含未復(fù)制的有效數(shù)據(jù),則可立即擦除元區(qū)塊980。于此情形下,可修改一規(guī)定元區(qū)塊鏈接次序形成環(huán)形緩沖區(qū)的區(qū)塊鏈接表,以將新擦除元區(qū)塊980移至擦除指針625下方。在任何可能的地方,將磁頭數(shù)據(jù)的復(fù)制作為一背景任務(wù)予以實(shí)施。 一至快閃存儲(chǔ)器陣列215的復(fù)制可與主機(jī)-至-磁盤或磁盤-至-主機(jī)的數(shù)據(jù)轉(zhuǎn)移同時(shí)實(shí)施。另一選擇是,假如果復(fù)制一完整的元區(qū)塊,則無需移動(dòng)一實(shí)際數(shù)據(jù)??蓛H修改區(qū)塊鏈接表來再定位緩沖區(qū)內(nèi)的數(shù)據(jù)。當(dāng)主機(jī)接口非現(xiàn)用時(shí),可在環(huán)形緩沖區(qū)600與硬盤高速緩沖存儲(chǔ)器之間實(shí)施一快速磁盤復(fù)制。如果主機(jī)開始活動(dòng),則會(huì)安全地終止一磁盤復(fù)制,且所述磁盤復(fù)制可在一隨后時(shí)間恢復(fù)或重復(fù)實(shí)施。
存儲(chǔ)在快閃存儲(chǔ)器陣列215內(nèi)的管理表可包括一磁頭映像表325及一區(qū)塊鏈接表。于一實(shí)施例中,所述磁頭映像表325僅能為存儲(chǔ)于快閃存儲(chǔ)器陣列215內(nèi)的每一有效磁頭數(shù)據(jù)片段提供一個(gè)輸入項(xiàng)。隨后,所述輸入項(xiàng)將以一非連續(xù)邏輯地址次序存儲(chǔ)于一專用區(qū)塊內(nèi)的一磁頭映像表區(qū)段集合內(nèi),以允許借助一己界定的邏輯地址來搜尋一輸入項(xiàng)。每一輸入項(xiàng)可具有單獨(dú)字段用于 一改進(jìn)型海量存儲(chǔ)裝置內(nèi)的邏輯地址、一環(huán)形緩沖區(qū)內(nèi)的物理地址、 一磁頭數(shù)據(jù)的大小(如果未使用一固定磁頭大小)、 一指示所述磁頭數(shù)據(jù)自寫入后已被讀取的讀取旗標(biāo)、及一指示所述磁頭數(shù)據(jù)已復(fù)制至硬盤驅(qū)動(dòng)器210的復(fù)制旗標(biāo)。所述區(qū)塊鏈接表給環(huán)形緩沖區(qū)600內(nèi)的每一鏈接元區(qū)塊提供一個(gè)輸入項(xiàng)。所述輸入項(xiàng)以區(qū)塊鏈接次序存儲(chǔ)在-專用區(qū)塊內(nèi)的一鏈接表區(qū)段集合內(nèi)。可添加新的鏈接表區(qū)段,并可修改其次序。每一區(qū)段無需滿載,且可添加新輸入項(xiàng)。所述最后寫入的鏈接表區(qū)段可包括界定所述專用區(qū)塊內(nèi)所有有效鏈接表區(qū)段的位置及其次序的信息。
圖7是一本發(fā)明實(shí)例性實(shí)施例的實(shí)例性寫入技術(shù)的流程圖。在705處,從主機(jī)系統(tǒng)總線155接收一在某個(gè)地址X寫入數(shù)據(jù)的指令。在710處,改進(jìn)型海量存儲(chǔ)裝置150決定地址X是否鄰接于先前已存取的地址且因此是一現(xiàn)有數(shù)據(jù)片段的部分、或是非鄰接于先前地址并界定一新數(shù)據(jù)片段的開始。如果所述地址是鄰接,則所述數(shù)據(jù)在715處被直接寫入至硬盤驅(qū)動(dòng)器210并續(xù)接所述現(xiàn)有數(shù)據(jù)片段。如果快閃存儲(chǔ)器陣列215是非鄰接,則嘗試將所述數(shù)據(jù)作為新數(shù)據(jù)片段的磁頭數(shù)據(jù)寫入至快閃存儲(chǔ)器陣列215。
如果欲寫入磁頭數(shù)據(jù),則所述系統(tǒng)在720處決定快閃存儲(chǔ)器陣列215是否已準(zhǔn)備就緒。如果因任何原因快閃存儲(chǔ)器陣列215不可用,則所述系統(tǒng)可在715處簡(jiǎn)單地將磁頭數(shù)據(jù)寫入至硬盤驅(qū)動(dòng)器210且不對(duì)所述片段執(zhí)行加速。如果快閃存儲(chǔ)器陣列215可用,則接下來的三個(gè)作業(yè)可大致同時(shí)進(jìn)行。
三個(gè)作業(yè)中的第一個(gè)是在725處發(fā)送一搜尋指令至硬盤驅(qū)動(dòng)器210。如果數(shù)據(jù)最終將從快閃存儲(chǔ)器陣列215轉(zhuǎn)移至硬盤驅(qū)動(dòng)器210,則所述搜尋指令應(yīng)考慮一等同于所述磁頭數(shù)據(jù)大小的偏差。因此,硬盤驅(qū)動(dòng)器210應(yīng)接收一搜尋指令以將讀/寫磁頭定位至地址X+H,其中H是所述磁頭數(shù)據(jù)偏差的大小。在730處,將所述磁頭數(shù)據(jù)寫入至快閃存儲(chǔ)器陣列215。如果使用一環(huán)形緩沖區(qū),則在寫入指針處寫入所述磁頭數(shù)據(jù)。在735處,更新所述區(qū)塊映像表以指示磁頭數(shù)據(jù)被獨(dú)fi存儲(chǔ)在快閃存儲(chǔ)器陣列215內(nèi)。為適當(dāng)?shù)貐f(xié)調(diào)數(shù)據(jù),存儲(chǔ)控制器245應(yīng)具有關(guān)于硬磁盤225內(nèi)邏輯地址及快閃存儲(chǔ)器陣列215內(nèi)物理地址的信息。另一選擇是,其它信息也可存儲(chǔ)在區(qū)塊映像表內(nèi)。例如,如果所述磁頭大小是可變,則也應(yīng)存儲(chǔ)所述磁頭的大小。下文將結(jié)合圖8討論其它旗標(biāo)。
在所述磁頭數(shù)據(jù)正被寫入至快閃存儲(chǔ)器陣列215且所述區(qū)塊映像表被更新的同時(shí),硬盤驅(qū)動(dòng)器210在740處等待硬磁盤225適當(dāng)定位。 一旦進(jìn)入合適位置,假若改進(jìn)型海量存儲(chǔ)裝置150已從主機(jī)系統(tǒng)總線155接收到主體數(shù)據(jù),則在745處,所述主體數(shù)據(jù)開始被寫入至硬磁盤225。
圖8是本發(fā)明一實(shí)施例的實(shí)例性讀取技術(shù)的流程圖。在805處,從主機(jī)系統(tǒng)總線155接收一在某個(gè)地址X讀取數(shù)據(jù)的指令。在810處,存儲(chǔ)控制器245決定在區(qū)塊映像表內(nèi)是否存在一地址X的輸入項(xiàng)。如果所述地址未在區(qū)塊映像表內(nèi),則所述系統(tǒng)在815處從硬盤驅(qū)動(dòng)器210讀取所述數(shù)據(jù)。隨后,在820處,系統(tǒng)決定快閃存儲(chǔ)器陣列215是否準(zhǔn)備寫入。如果因某個(gè)原因(例如,垃圾收集)快閃存儲(chǔ)器陣列215不可用,則可結(jié)束所述過程,從而擔(dān)當(dāng)一無磁盤加速的系統(tǒng)。然而,如果快閃存儲(chǔ)器215是可用,則在825處,可在從硬盤驅(qū)動(dòng)器210讀取數(shù)據(jù)的同時(shí),將磁頭數(shù)據(jù)復(fù)制至快閃存儲(chǔ)器陣列215。隨后,在830處,可更新所述區(qū)塊映像表來指示現(xiàn)在駐存于快閃存儲(chǔ)器陣列215 h的磁頭數(shù)據(jù)。
旦一輸入存在于所述區(qū)塊映射表內(nèi),則在805處接收一讀取指令后,存儲(chǔ)控制器245將遵循一不同的路徑。如果在810處所述地址是在區(qū)塊映像表內(nèi),則存儲(chǔ)控制器245將給硬盤驅(qū)動(dòng)器210發(fā)送一搜尋指令來搜尋硬盤驅(qū)動(dòng)器210內(nèi)主體數(shù)據(jù)的地址。在本發(fā)明的實(shí)施例中,所述主體數(shù)據(jù)的地址將是偏置磁頭數(shù)據(jù)大小的地址X。隨后,在840處,存儲(chǔ)控制器245通常等待快閃存儲(chǔ)器陣列215準(zhǔn)備就緒。然而,某些實(shí)施例可具有額外的錯(cuò)誤處理例程,所述額外的錯(cuò)誤處理例程可決定在硬盤驅(qū)動(dòng)器210內(nèi)是否也存在所述磁頭的一副本,且如果適合,如果其在快閃存儲(chǔ)器陣列215之前可用,則僅從硬盤驅(qū)動(dòng)器210讀取所述數(shù)據(jù)。在某些專使用讀取技術(shù)的實(shí)施例中,所述磁頭數(shù)據(jù)的一副本始終存在丁'所述硬盤驅(qū)動(dòng)器內(nèi)。 一且快閃存儲(chǔ)器陣列215可用,則在845處從所述快閃讀取磁頭數(shù)據(jù)。在850處,可在所述區(qū)塊映射表內(nèi)設(shè)置一旗標(biāo)來指示已讀取對(duì)應(yīng)于表輸入項(xiàng)的數(shù)據(jù)。假若使用一環(huán)形緩沖區(qū)布置,在必須擦除含有所述輸入項(xiàng)的元區(qū)塊時(shí),此一旗標(biāo)將允許所述輸入項(xiàng)通過復(fù)制至所述緩沖區(qū)的頂部而非硬盤驅(qū)動(dòng)器而得以保存在所述環(huán)形緩沖區(qū)內(nèi)。
當(dāng)所述磁頭數(shù)據(jù)完全從快閃存儲(chǔ)器陣列215讀出后,則在855處,所述系統(tǒng)可能需要等待硬磁盤225正確定位。 一旦合適定位,則在860處從硬磁盤225讀取所述主體數(shù)據(jù)。
盡管本文以其當(dāng)前所設(shè)想的最佳模式闡釋本發(fā)明,但應(yīng)了解本發(fā)明可具有諸多修改、運(yùn)作模式及實(shí)施例,且這些均在所屬領(lǐng)域技術(shù)人員的能力范圍內(nèi)且無需進(jìn)一步實(shí)施發(fā)明性行動(dòng)。例如,其它改進(jìn)型存儲(chǔ)裝置可使用除快閃或硬盤驅(qū)動(dòng)器外的技術(shù),且可包括電池支持型RAM、光盤、相變化存儲(chǔ)器(OUM)、磁性RAM(MRAM)、鐵電聚合物、鐵電RAM (FeRAM)、絕緣體上覆硅(Sol)等。相應(yīng)地,意欲受到專利保護(hù)的內(nèi)容陳述于權(quán)利要求且包括屬于權(quán)利要求精神及范圍內(nèi)的所有改變及修改。
權(quán)利要求
1、一種提高從旋轉(zhuǎn)磁盤驅(qū)動(dòng)器讀取數(shù)據(jù)性能的方法,其包括從主機(jī)系統(tǒng)接收第一指令以讀取所述旋轉(zhuǎn)磁盤驅(qū)動(dòng)器中具有已界定初始地址的數(shù)據(jù)簇;決定所述第一指令的所述數(shù)據(jù)簇的所述地址是否鄰接于先前已存取的地址;如果所述地址確定為非鄰接,則從所述旋轉(zhuǎn)磁盤驅(qū)動(dòng)器讀取所述已請(qǐng)求的數(shù)據(jù),并拷貝所述數(shù)據(jù)的初始部分至非易失性存儲(chǔ)器裝置;隨后從所述主機(jī)系統(tǒng)接收第二指令以讀取所述旋轉(zhuǎn)磁盤驅(qū)動(dòng)器中具有所述同樣初始地址的數(shù)據(jù)簇;決定所述第二指令的所述數(shù)據(jù)簇的所述地址是否鄰接于先前已存取的地址;如果所述地址確定為非鄰接,則從所述非易失性存儲(chǔ)器裝置中讀取所述已請(qǐng)求的數(shù)據(jù)的所述初始部分,并從所述旋轉(zhuǎn)磁盤驅(qū)動(dòng)器中讀取所述已請(qǐng)求的數(shù)據(jù)的剩余部分,從而消除由所述旋轉(zhuǎn)磁盤驅(qū)動(dòng)器中的搜尋時(shí)間引起的,向所述主機(jī)系統(tǒng)提供數(shù)據(jù)的延遲。
2、 如權(quán)利要求1所述的方法,其中所述旋轉(zhuǎn)磁盤驅(qū)動(dòng)器以及所述非易失性存儲(chǔ)器裝置是計(jì)算機(jī)系統(tǒng)的一部分,并且其中所述非易失性存儲(chǔ)器裝置是可從計(jì)算機(jī)系統(tǒng)移除的。
3、 如權(quán)利要求l所述的方法,其中所述非易失性存儲(chǔ)器裝置為固態(tài)存儲(chǔ)器。
4、 如權(quán)利要求1所述的方法,其中所述固態(tài)存儲(chǔ)器是快閃存儲(chǔ)器,并且其中所述旋轉(zhuǎn)磁盤驅(qū)動(dòng)器是磁硬盤驅(qū)動(dòng)器。
5、 一種提高從計(jì)算機(jī)系統(tǒng)提供的硬盤驅(qū)動(dòng)器中讀取數(shù)據(jù)的性能的方法,其包括從主機(jī)系統(tǒng)接收請(qǐng)求以讀取所述硬盤驅(qū)動(dòng)器中的具有巳界定初始地址的數(shù)據(jù);決定所述已請(qǐng)求的數(shù)據(jù)的所述地址是否鄰接于先前已存取的數(shù)據(jù);如果所述已請(qǐng)求的數(shù)據(jù)的所述地址鄰接于先前已存取的數(shù)據(jù),則從所述硬盤驅(qū)動(dòng)器中讀取所述已請(qǐng)求的數(shù)據(jù);以及如果所述已請(qǐng)求的數(shù)據(jù)的所述地址非鄰接于先前已存取的數(shù)據(jù)。則決定所述已請(qǐng)求的數(shù)據(jù)的第一部分是否駐存于非易失性海量存儲(chǔ)裝置中;如果所述已請(qǐng)求的數(shù)據(jù)的第一部分駐存于非易失性海量存儲(chǔ)裝置中,則從所述非易失性海量存儲(chǔ)裝置中讀取所述已請(qǐng)求數(shù)據(jù)的所述第部分并且從所述硬盤驅(qū)動(dòng)器中讀取所述已請(qǐng)求的數(shù)據(jù)的剩余部分;如果所述己請(qǐng)求的數(shù)據(jù)的第一部分并未駐存于非易失性海量存儲(chǔ)裝置中,則 從所述硬盤驅(qū)動(dòng)器中讀取所述已請(qǐng)求的數(shù)據(jù),并且拷貝所述已請(qǐng)求的數(shù)據(jù)的第 一部分至所述非易失性海量存儲(chǔ)裝置中。
6、 - 一種數(shù)據(jù)存儲(chǔ)系統(tǒng),其包括 第一非易失性存儲(chǔ)裝置;具有比所述第一存儲(chǔ)裝置慢的平均存取時(shí)間及高的容量的第二非易失性存儲(chǔ)裝 置,其中所述較慢的平均存取時(shí)間是所述第二非易失性存儲(chǔ)裝置開始寫入數(shù)據(jù)之前必 須的平均延遲;及可運(yùn)作用來將數(shù)據(jù)的一第一部分引導(dǎo)至所述第一存儲(chǔ)裝置及將數(shù)據(jù)的一第二部 分引導(dǎo)至所述第二存儲(chǔ)裝置的存儲(chǔ)控制器;從主機(jī)系統(tǒng)接受第一指令以讀取在所述第二存儲(chǔ)裝置中具有己界定初始地址的 數(shù)據(jù)片段;決定所述第一指令的所述數(shù)據(jù)片段的所述地址是否鄰接于先前已存取的地址;以及如果所述地址確定為非鄰接,則從所述第二存儲(chǔ).裝置中讀取所述已請(qǐng)求的數(shù)據(jù), 并拷貝所述數(shù)據(jù)的初始部分至所述第一存儲(chǔ)裝置。
7、 如權(quán)利要求6所述的數(shù)據(jù)存儲(chǔ)系統(tǒng),其中所述存儲(chǔ)控制器可進(jìn)一步運(yùn)作以 隨后從所述主機(jī)系統(tǒng)接收第二指令以讀取所述第二存儲(chǔ)裝置中的具有所述同樣地址的數(shù)據(jù)片段;決定所述第二指令中的所述數(shù)據(jù)片段的所述地址是否鄰接于先前已存取的地址;如果所述地址確定為非鄰接,則從所述第一存儲(chǔ)裝置中讀取所述己請(qǐng)求的數(shù)據(jù) 的所述初始部分,并從所述第二存儲(chǔ)裝置中讀取所述己請(qǐng)求的數(shù)據(jù)的剩余部分。
8、 如權(quán)利要求7所述的數(shù)據(jù)存儲(chǔ)系統(tǒng),其中所述第一存儲(chǔ)裝置為固態(tài)存儲(chǔ)器,并且所述第二存儲(chǔ)裝置為硬盤驅(qū)動(dòng)器,并且其中,如果所述地址確定為非鄰接,則從所述第一存儲(chǔ)裝置中讀取所述已請(qǐng)求的 數(shù)據(jù)的所述初始部分,以減小向所述主機(jī)系統(tǒng)提供數(shù)據(jù)的延遲,否則所述硬盤驅(qū)動(dòng)器 的搜尋延遲在非鄰接地址的地址變遷中,將會(huì)引起所述延遲。
9、 一種用于存儲(chǔ)數(shù)據(jù)的方法,其包括 從一主機(jī)系統(tǒng)總線接收一寫入指令以寫至一數(shù)據(jù)地址; 從所述主機(jī)系統(tǒng)總線接收一數(shù)據(jù)片段;將所述數(shù)據(jù)的一第一部分存儲(chǔ)于一第一存儲(chǔ)裝置內(nèi);在完成將所述數(shù)據(jù)片段的所述第一部分存儲(chǔ)于所述第一存儲(chǔ)裝置前,使一第二存 儲(chǔ)裝置做好寫入數(shù)據(jù)的準(zhǔn)備;及在所述第二存儲(chǔ)裝置已做好準(zhǔn)備后,將所述數(shù)據(jù)片段的一剩余部分存儲(chǔ)于所述第 二存儲(chǔ)裝置內(nèi);.更新一包含關(guān)于所述數(shù)據(jù)的第一部分及所述數(shù)據(jù)的剩余部分的所述位置信息的 磁頭表;以及隨后將所述數(shù)據(jù)片段的所述第一部分從所述第一存儲(chǔ)裝置復(fù)制至所述第二存儲(chǔ) 裝置內(nèi)的所述數(shù)據(jù)地址。
10、 如權(quán)利要求9所述的存儲(chǔ)數(shù)據(jù)的方法,其進(jìn)一步包括更新包含關(guān)于所述數(shù)據(jù) 的第一部分及所述數(shù)據(jù)的剩余部分的所述位置信息的磁頭表。
11、 如權(quán)利要求9所述的存儲(chǔ)數(shù)據(jù)的方法,其中在所述主機(jī)系統(tǒng)總線未請(qǐng)求存取 所述包含在所述第一或所述第二存儲(chǔ)裝置內(nèi)的數(shù)據(jù)期間,實(shí)施所述復(fù)制。
12、 如權(quán)利要求9所述的存儲(chǔ)數(shù)據(jù)的方法,其中如果所述第一存儲(chǔ)裝置不可用, 則將所述整個(gè)數(shù)據(jù)片段都存儲(chǔ)于所述第二存儲(chǔ)裝置內(nèi)。
13、 一種檢索數(shù)據(jù)的方法,其包括 從主機(jī)系統(tǒng)總線接收讀取指令以在數(shù)據(jù)地址讀取數(shù)據(jù); 決定所述數(shù)據(jù)的第一部分是否駐存于第一存儲(chǔ)裝置上; 如果所述數(shù)據(jù)的第一部分駐存于所述第一存儲(chǔ)裝置上,則 從所述第一存儲(chǔ)裝置讀取所述數(shù)據(jù)的所述第一部分;在完成讀取所述第一存儲(chǔ)裝置內(nèi)的所述數(shù)據(jù)片段的所述第一部分之前,使一第二 存儲(chǔ)裝置準(zhǔn)備讀取所述數(shù)據(jù)的剩余部分;及在所述第二存儲(chǔ)裝置已準(zhǔn)備好讀取所述數(shù)據(jù)的所述剩余部分后,從所述第二存儲(chǔ)裝置讀取所述數(shù)據(jù)的剩余部分;及如果所述數(shù)據(jù)的第一部分并未駐存于所述第一存儲(chǔ)裝置上,則從所述第二存儲(chǔ)裝 置讀取所述數(shù)據(jù)的所述第一部分且讀取所述數(shù)據(jù)的所述剩余部分。
14、 如權(quán)利要求13所述的檢索數(shù)據(jù)的方法,其中如果所述第一存儲(chǔ)裝置不可用, 則從所述第二存儲(chǔ)裝置讀取所述數(shù)據(jù)的第一部分及所述數(shù)據(jù)的剩余部分。
15、 一種至少包括用來檢索數(shù)據(jù)的計(jì)算機(jī)程序碼的計(jì)算機(jī)可讀媒體,所述計(jì)算機(jī) 可讀媒體包括用于從主機(jī)系統(tǒng)總線接收讀取指令以在數(shù)據(jù)地址上讀取數(shù)據(jù)的計(jì)算機(jī)程序碼; 用于決定所述數(shù)據(jù)的第一部分是否駐存在第一存儲(chǔ)裝置上的計(jì)算機(jī)程序碼; 計(jì)算機(jī)程序碼,如果所述數(shù)據(jù)的所述第一部分駐存在第一存儲(chǔ)裝置上,所述計(jì)算 機(jī)程序碼用于從所述第一存儲(chǔ)裝置中讀取所述數(shù)據(jù)的所述第一部分;在完成讀取所述第一存儲(chǔ)裝置內(nèi)的所述數(shù)據(jù)片段的所述第一部分之前,使一第 二存儲(chǔ)裝置準(zhǔn)備讀取所述數(shù)據(jù)的剩余部分;及在所述第二存儲(chǔ)裝置已準(zhǔn)備好讀取所述數(shù)據(jù)的所述剩余部分后,從所述第二存 儲(chǔ)裝置讀取所述數(shù)據(jù)的剩余部分;及計(jì)算機(jī)程序碼,如果所述數(shù)據(jù)的所述第一部分并未駐存在第一存儲(chǔ)裝置上,所述 計(jì)算機(jī)程序碼用于從所述第二存儲(chǔ)裝置中讀取所述數(shù)據(jù)的所述第一部分以及所述數(shù)據(jù) 的所述剩余部分。
全文摘要
本發(fā)明涉及使用第一及第二存儲(chǔ)裝置的磁盤加速。本發(fā)明提供一種數(shù)據(jù)存儲(chǔ)裝置。一磁盤裝置與一非易失性存儲(chǔ)器裝置結(jié)合以提供較一單獨(dú)磁盤裝置所能實(shí)現(xiàn)的寫入存取時(shí)間及數(shù)據(jù)寫入速度更短的寫入存取時(shí)間及更高的數(shù)據(jù)寫入速度。兩個(gè)存儲(chǔ)裝置之間的區(qū)段寫入交錯(cuò)叢發(fā)能夠有效消除對(duì)所述磁盤裝置的搜尋時(shí)間的影響。依據(jù)一來自一主機(jī)系統(tǒng)的非鄰接邏輯地址變遷,所述存儲(chǔ)控制器能夠在所述磁盤裝置上實(shí)施一先行搜尋作業(yè),同時(shí)將當(dāng)前數(shù)據(jù)寫入至所述非易失性存儲(chǔ)器裝置。此一系統(tǒng)能夠利用一非易失性存儲(chǔ)器裝置固有的快速寫入存取特性,消除通常由磁盤搜尋時(shí)間所導(dǎo)致的停滯時(shí)間。
文檔編號(hào)G06F3/06GK101685382SQ20091020662
公開日2010年3月31日 申請(qǐng)日期2005年1月5日 優(yōu)先權(quán)日2004年2月4日
發(fā)明者艾倫·韋爾什·辛克萊 申請(qǐng)人:桑迪士克股份有限公司