專利名稱:具有動態(tài)隨機存取存儲器和閃存的硬盤驅動器的制作方法
技術領域:
本發(fā)明涉及硬盤驅動器。
背景技術:
硬盤驅動器(HDD)通常既包括盤存儲器又包括用于臨時保持在盤和主機之間傳輸?shù)臄?shù)據(jù)的被稱作“緩存”的固態(tài)存儲器。按照慣例,緩存是動態(tài)隨機存取存儲器(DRAM),一種可以經(jīng)歷大量寫/擦除周期并且具有通向和來自盤的非常高的數(shù)據(jù)傳輸速率的易失形式的存儲器。
隨著電池供電的移動計算機的出現(xiàn),已提供了一些HDD,其中當HDD在一段時間中不活動時盤停轉(spin down)(停止旋轉)。這樣做的主要目的是為了延長計算機的電池壽命。當使盤驅動器停轉到備用模式而只有電子裝置活動(electronics active)時,節(jié)約了電池電力。但是,如本文認識到的,當必須將數(shù)據(jù)寫到盤中時,盤必須起轉(spin up)以使得該寫操作能夠發(fā)生,這消耗大量的電池電力。如果這頻繁發(fā)生,則不能實現(xiàn)節(jié)電。
據(jù)此,本發(fā)明理解一種解決方案是將該寫數(shù)據(jù)緩存到DRAM,并然后在某稍后時間將緩存數(shù)據(jù)離臺(destage)到盤。如本發(fā)明進一步理解的,因為DRAM是易失性存儲器,所以如果HDD在將緩存數(shù)據(jù)離臺到盤之前掉電則可能不幸地丟失DRAM中的數(shù)據(jù)。
據(jù)此,已經(jīng)提出了在移動盤驅動器中用非易失性閃存代替DRAM存儲器。因為閃存是非易失性的,所以如果掉電,存儲在閃存中的數(shù)據(jù)將不會丟失。此外,閃存通常比類似尺寸的DRAM存儲器具有顯著更多的存儲容量,例如,與小DRAM芯片的約8MB的容量相比,小閃存芯片目前可以存儲約128MB,這意味著當使用閃存時,延長了盤可以停留在備用模式的時間周期。
但是,如本文挑剔認識到的,在移動HDD中用閃存代替DRAM存在兩個缺點。首先,閃存的數(shù)據(jù)傳輸速率比可以超過100到200MB/s的驅動器-主機接口總線帶寬的DRAM的速率慢得多。相反,閃存的典型數(shù)據(jù)傳輸速率可以慢到2MB/s。結果,當使用閃存替代DRAM時,大大降低了盤驅動器性能。第二個缺點是閃存具有有限次的寫周期。如果閃存用作常規(guī)寫緩存,則其壽命可以很快耗盡。盡管美國專利第6,295,577號描述了一種在掉電的情況下將DRAM數(shù)據(jù)保存到閃存的方法,但是其未能理解依賴于這里預期的環(huán)境,可能出現(xiàn)在盤操作期間和/或沒有掉電時也使用閃存的需求。
發(fā)明內容
一種硬盤驅動器(HDD)包括至少一個存儲數(shù)據(jù)的盤和盤控制器。該HDD還包括動態(tài)隨機存取存儲器(DRAM)設備和閃存設備。盤控制器通過執(zhí)行下述邏輯管理數(shù)據(jù)存儲,該邏輯包括接收寫請求,并且響應地確定DRAM設備是否滿。如果DRAM設備沒有滿,則將數(shù)據(jù)寫到DRAM設備以滿足該寫請求。否則,至少在某個時間,該邏輯可以包括確定該閃存設備是否滿,并且如果沒有滿,則將數(shù)據(jù)從DRAM設備離臺到閃存設備,并且然后將數(shù)據(jù)寫到DRAM設備以滿足該寫請求。否則,如果閃存設備滿了,則如果盤還沒有轉,則使盤起轉并且將數(shù)據(jù)從閃存設備離臺到盤。然后,可以將數(shù)據(jù)從DRAM設備離臺到閃存設備以釋放DRAM設備,從而可以將數(shù)據(jù)寫到DRAM設備以滿足寫請求。
如果需要,則在確定閃存設備是否滿之前,可確定該盤是否在轉,應該理解在一些實現(xiàn)中可以由用戶選擇是否執(zhí)行該選項。這些實現(xiàn)中,如果盤在轉,則可以將數(shù)據(jù)從DRAM設備離臺到盤,并且然后將數(shù)據(jù)寫到DRAM設備以滿足寫請求。
此外,當沒有I/O請求未決(pending)時,控制器可以確定該盤是否在轉,并且如果該盤沒有在轉,則將存儲在DRAM設備中的數(shù)據(jù)離臺到閃存設備。否則,如果該盤在轉,則控制器將存儲在DRAM設備中的數(shù)據(jù)離臺到盤。相反,如果該盤在轉并且DRAM設備為空,則可以將存儲在閃存設備中的數(shù)據(jù)直接離臺到盤。
在另一方面,一種芯片被配置為放置在具有至少一個盤的硬盤驅動器(HDD)中。該芯片包括用于如果該盤沒有在轉則將數(shù)據(jù)從DRAM設備離臺到閃存設備的部件。該芯片還包括用于如果該盤在轉則將數(shù)據(jù)從閃存設備離臺到盤的部件。
在另一方面,一種計算機程序產(chǎn)品可由處理裝置執(zhí)行,以在電力可用于硬盤驅動器(HDD)時,既在盤轉時也在盤不轉時,管理HDD中的數(shù)據(jù)存儲,該HDD具有至少一個可轉動的盤、非易失性固態(tài)存儲設備、和易失性固態(tài)存儲設備。
通過參考附圖可以極好地理解關于本發(fā)明的結構和操作方面的細節(jié),附圖中相同的附圖標記表示相同的部分,并且其中圖1是本硬盤驅動器(HDD)的方框圖;圖2是寫邏輯的流程圖;以及圖3是當沒有寫操作未決時的數(shù)據(jù)離臺邏輯的流程圖。
具體實施例方式
首先參考圖1,示出了一般以10標示的硬盤驅動器(HDD),該HDD具有外殼11,該外殼11保持可以包括微控制器和/或由微控制器實現(xiàn)的硬盤驅動器控制器12。該控制器12可以訪問計算機程序設備或者產(chǎn)品中的電子數(shù)據(jù)存儲器,例如但不限于可以用固態(tài)存儲設備實現(xiàn)的微碼存儲器14。微碼存儲器14可以存儲包含下述邏輯的微碼。
HDD控制器12控制包括用于將數(shù)據(jù)寫到一個或多個盤18上的一個或多個頭的讀/寫機構16。HDD 10的非限制性的實現(xiàn)包括多個頭和多個盤18,并且每個頭與其中用于讀取盤18上的數(shù)據(jù)的相應讀元件和用于將數(shù)據(jù)寫到盤18上的相應寫元件相關聯(lián)。
HDD控制器12通過內部HDD總線24與優(yōu)選是動態(tài)隨機存取存儲器(DRAM)設備20的固態(tài)易失性存儲器和優(yōu)選是閃存設備22的固態(tài)非易失性存儲器通信。HDD控制器12還根據(jù)本領域公知的HDD原理通過主機接口模塊26與外部主機25通信。該主機25可以是可由電池供電的便攜式計算機,使得HDD 10可以是移動HDD。
如上所述,可以將下面公開的邏輯包含在與HDD控制器12分開的代碼存儲器14中,或者可以將存儲器14集成到控制器12中。或者,可以將存儲器14包含在讀/寫機構16中、或在DRAM 20或閃存設備22上。該邏輯可以通過上述組件分布,并且可以以硬件邏輯電路和/或軟件邏輯電路實現(xiàn)。
圖2示出了本寫邏輯。在狀態(tài)28開始,寫命令到達HDD控制器。作為響應前進到判決菱形30,確定DRAM 20是否滿了。確定存儲設備是否“滿”意味著確定該設備是否容量滿了、和/或確定該設備是否剩余有足夠未使用的容量來保持所請求要寫的數(shù)據(jù)。如果DRAM沒有滿,則通過在框32將要寫的數(shù)據(jù)寫到DRAM 20而滿足該寫操作。
另一方面,如果DRAM 20滿了,則該邏輯可以前進到判決菱形34,以判斷盤18是否在轉?!稗D”意味著盤18是否在轉、或者盤18是否只是沒有以正常運轉速度在轉、或者進行另外的適當?shù)霓D動測試。在任何情況下,如果盤在轉,則該邏輯轉到框36以將數(shù)據(jù)從DRAM 20離臺到盤18,并然后在框32使用DRAM 20滿足該寫請求。“離臺”意味著移動數(shù)據(jù),使得一旦從一個設備移走數(shù)據(jù),以前被該數(shù)據(jù)占據(jù)的設備中的空間就可用于存儲。
如果在判決菱形34確定該盤沒有在轉,或者如果在一些實施例中,給予用戶跳過判決34的選項,并且用戶已進行了該選擇,則該邏輯進行到判決菱形38以確定閃存設備22是否滿了。如果其沒有滿,則邏輯前進到框40以將數(shù)據(jù)從DRAM 20離臺到閃存設備22,并然后在框32使用DRAM滿足該寫請求。另一方面,如果在判決菱形38處確定閃存設備滿了,則邏輯進行到框42以便如果盤還沒有轉的話(如果用戶選擇跳過判決菱形34并且該盤過去一直在轉,則盤可能在轉)則使盤起轉并且將數(shù)據(jù)從閃存設備22離臺到盤18。該邏輯然后在框40將數(shù)據(jù)從DRAM 20離臺到閃存設備22,并且在框32處使用DRAM 20滿足該寫請求??蛇x地,該邏輯可以在框36處直接使DRAM 20離臺到盤18并且在框32處使用DRAM 20滿足該寫請求。
圖3示出了當在狀態(tài)44滿足預定的輸入/輸出(I/O)條件時,諸如在隊列中沒有任何I/O命令時,可以被執(zhí)行來管理HDD 10中的數(shù)據(jù)存儲的邏輯。前進到判決菱形46,確定盤18是否在轉。如果其沒有轉,則邏輯進行到判決菱形48以確定DRAM 20是否為空,并且如果其為空,則什么也不做并且邏輯在狀態(tài)50結束。否則,在框52將DRAM 20中的所有數(shù)據(jù)離臺到閃存設備22。
另一方面,如果在判決菱形46確定盤18在轉,則邏輯進行到判決菱形54以確定DRAM 20是否為空,并且如果其不為空,則在框56將DRAM 20中的數(shù)據(jù)離臺到盤18。但是,如果盤在轉并且DRAM 20為空,則邏輯前進到判決菱形58以確定閃存設備22是否為空,并且如果其為空,則什么也不做并且邏輯在狀態(tài)60結束。否則,在框62將閃存設備22中的數(shù)據(jù)離臺到盤18。該邏輯可以從框50、52、56和62返回到狀態(tài)44。
應該理解,在將數(shù)據(jù)從閃存22離臺到盤18的處理中,可以首先將數(shù)據(jù)從閃存設備22離臺到DRAM 20并然后將數(shù)據(jù)從DRAM 20離臺到盤18。可以在閃存22的數(shù)據(jù)速率低于盤驅動器18的介質速率的情況下,執(zhí)行該處理。
盡管這里詳細示出并描述的特定的既具有DRAM又具有閃存的HDD完全能夠達到本發(fā)明的上述目的,但是應該理解,其是本發(fā)明的當前優(yōu)選實施例并從而代表本發(fā)明廣泛預期的主題,本發(fā)明的范圍完全包括可能對本領域技術人員而言顯而易見的其它實施例,并且本發(fā)明的范圍據(jù)此只由所附權利要求來限定,在權利要求中以單數(shù)引用元件除非明確說明否則并不意欲表示“一個且只有一個”,而是“一個或多個”。一種設備或方法不必要說明由本發(fā)明尋求解決的每個問題,因為在本權利要求書中囊括了這些。此外,本公開中沒有任何元件、組件或方法步驟意欲獻給公眾,不管該元件、組件或方法步驟是否在權利要求中精確細述。所有權利要求中的元件都不應按照35U.S.Cξ112第六段的規(guī)定解釋,除非該元件使用短語“部件用于”來明確表述,或者在方法權利要求的情況下,該元件被陳述為“步驟”而不是“動作”。在沒有明確定義的情況下,權利要求的術語應被賦予不與本說明書和文件歷史抵觸的所有普通和習慣的含義。
權利要求
1.一種硬盤驅動器(HDD),包括至少一個存儲數(shù)據(jù)的盤;至少一個動態(tài)隨機存取存儲器(DRAM)設備;至少一個閃存設備;以及至少一個通過執(zhí)行下述邏輯至少部分管理數(shù)據(jù)存儲的盤控制器,該邏輯包括接收寫請求;確定該DRAM設備是否滿了,并且如果沒有滿,則將數(shù)據(jù)寫到DRAM設備以滿足該寫請求;否則至少在某個時間確定該閃存設備是否滿了,并且如果沒有滿,則將數(shù)據(jù)從DRAM設備離臺到閃存設備并且然后將數(shù)據(jù)寫到DRAM設備以滿足該寫請求,否則如果閃存設備滿了,則如果盤還沒有在轉則使盤起轉并且將數(shù)據(jù)從閃存設備離臺到盤,然后將數(shù)據(jù)從DRAM設備離臺到閃存設備,然后將數(shù)據(jù)寫到DRAM設備以滿足該寫請求。
2.如權利要求1所述的硬盤驅動器,還包括,在所述確定閃存設備是否滿了的動作之前,確定該盤是否在轉,并且如果盤在轉,則將數(shù)據(jù)從DRAM設備離臺到盤,并且然后將數(shù)據(jù)寫到DRAM設備以滿足寫請求,否則執(zhí)行所述確定閃存設備是否滿了的動作。
3.如權利要求2所述的硬盤驅動器,其中,用戶可以選擇是否執(zhí)行所述確定該盤是否在轉的動作。
4.如權利要求1所述的硬盤驅動器,其中,所述硬盤驅動器是移動硬盤驅動器。
5.如權利要求1所述的硬盤驅動器,包括訪問所述硬盤驅動器的電池供電的主機。
6.如權利要求1所述的硬盤驅動器,其中,所述盤控制器至少部分通過執(zhí)行下述邏輯來管理數(shù)據(jù)存儲,所述邏輯包括確定是否滿足輸入/輸出(I/O)條件,并且如果滿足則確定該盤是否在轉,并且如果該盤沒有在轉,則將存儲在DRAM設備中的數(shù)據(jù)離臺到閃存設備,否則,如果該盤在轉,則將存儲在DRAM設備中的數(shù)據(jù)離臺到盤;如果該盤在轉并且DRAM設備為空,則將存儲在閃存設備中的數(shù)據(jù)離臺到盤。
7.如權利要求6所述的硬盤驅動器,其中,所述輸入/輸出條件是沒有未決的輸入/輸出請求。
8.一種被配置為放置在具有至少一個盤的硬盤驅動器(HDD)中的芯片,所述芯片包括用于如果該盤沒有在轉、則將數(shù)據(jù)從DRAM設備離臺到閃存設備的部件;以及用于如果該盤在轉、則將數(shù)據(jù)從閃存設備離臺到盤的部件。
9.如權利要求8所述的芯片,其中,只有當已滿足了預定輸入/輸出條件時,才調用用于離臺的兩個部件。
10.如權利要求8所述的芯片,其中,所述輸入/輸出條件是沒有未決的輸入/輸出請求。
11.如權利要求8所述的芯片,其中,如果所述DRAM設備為空并且盤在轉,則所述用于將數(shù)據(jù)從閃存設備離臺到盤的部件運行。
12.如權利要求11所述的芯片,還包括用于如果所述DRAM設備不為空并且盤在轉、則將數(shù)據(jù)從DRAM設備離臺到盤的部件。
13.如權利要求8所述的芯片,還包括用于接收寫請求的部件;用于響應于該寫請求而確定該DRAM設備是否滿了、并且如果沒有滿、則將數(shù)據(jù)寫到DRAM設備以滿足該寫請求的部件;否則至少對于某些寫請求執(zhí)行用于確定該閃存設備是否滿了、并且如果沒有滿、則將數(shù)據(jù)從DRAM設備離臺到閃存設備并且然后將數(shù)據(jù)寫到DRAM設備以滿足該寫請求、否則如果盤還沒有在轉則使盤起轉、將數(shù)據(jù)從閃存設備離臺到盤、然后將數(shù)據(jù)從DRAM設備離臺到閃存設備、然后將數(shù)據(jù)寫到DRAM設備以滿足寫請求的部件。
14.如權利要求13所述的芯片,還包括確定該盤是否在轉、并且如果在轉、則將數(shù)據(jù)從DRAM設備離臺到盤、并且然后將數(shù)據(jù)寫到DRAM設備以滿足寫請求的部件。
15.如權利要求14所述的芯片,包括用于使得用戶能夠選擇性地調用用于確定盤是否在轉的部件的部件。
16.一種可由處理裝置執(zhí)行來采取方法動作的計算機程序產(chǎn)品,該方法動作包括至少在電力可用于硬盤驅動器(HDD)時,既在盤轉時也在盤不轉時,管理硬盤驅動器中的數(shù)據(jù)存儲,該硬盤驅動器具有至少一個可轉動的盤、至少一個非易失性固態(tài)存儲設備、和至少一個易失性固態(tài)存儲設備。
17.如權利要求16所述的計算機程序產(chǎn)品,其中,所述易失性存儲設備是DRAM設備并且所述非易失性存儲設備是閃存設備,并且所述管理動作包括接收寫請求并響應于此而確定該DRAM設備是否滿了,并且如果沒有滿,則將數(shù)據(jù)寫到DRAM設備以滿足該寫請求;否則在至少某個時間確定該閃存設備是否滿了,并且如果沒有滿,則將數(shù)據(jù)從DRAM設備離臺到閃存設備并且然后將數(shù)據(jù)寫到DRAM設備以滿足該寫請求,否則如果盤還沒有在轉則使盤起轉,并且將數(shù)據(jù)從閃存設備離臺到盤,然后將數(shù)據(jù)從DRAM設備離臺到閃存設備,然后將數(shù)據(jù)寫到DRAM設備以滿足寫請求。
18.如權利要求17所述的計算機程序產(chǎn)品,還包括在所述確定閃存設備是否滿了的動作之前,確定該盤是否在轉,并且如果在轉,則將數(shù)據(jù)從DRAM設備離臺到盤,并且然后將數(shù)據(jù)寫到DRAM設備以滿足寫請求,否則執(zhí)行所述確定閃存設備是否滿了的動作。
19.如權利要求18所述的計算機程序產(chǎn)品,其中,用戶可以選擇是否執(zhí)行所述確定該盤是否在轉的動作。
20.如權利要求16所述的計算機程序產(chǎn)品,其中,所述硬盤驅動器是移動硬盤驅動器。
21.如權利要求16所述的計算機程序產(chǎn)品,包括訪問所述硬盤驅動器的電池供電的主機。
22.如權利要求17所述的計算機程序產(chǎn)品,其中,所述管理數(shù)據(jù)存儲的動作包括確定是否已滿足輸入/輸出(I/O)條件,并且如果滿足,則確定該盤是否在轉并且如果該盤沒有在轉,則將存儲在DRAM設備中的數(shù)據(jù)離臺到閃存設備,否則,如果該盤在轉,則將存儲在DRAM設備中的數(shù)據(jù)離臺到盤;如果該盤在轉并且DRAM設備為空,則將存儲在閃存設備中的數(shù)據(jù)離臺到盤。
23.如權利要求22所述的計算機程序產(chǎn)品,其中,所述輸入/輸出條件是沒有未決的輸入/輸出請求。
全文摘要
一種移動計算硬盤驅動器既具有閃存設備也具有DRAM設備,既在寫請求到達時也在HDD空閑時,利用HDD控制器管理盤、DRAM和閃存之間的數(shù)據(jù)存儲,以優(yōu)化閃存設備壽命和系統(tǒng)性能。
文檔編號G11B20/10GK1766857SQ20051010693
公開日2006年5月3日 申請日期2005年9月22日 優(yōu)先權日2004年10月12日
發(fā)明者丹尼爾·奧爾巴克, 喬爾格·坎佩洛, 朱瑞鋒, 斯潘塞·W·恩格 申請人:日立環(huán)球儲存科技荷蘭有限公司