專利名稱:分析來自具有有限耐久性和/或保持性的存儲器設備的監視數據信息的制作方法
技術領域:
本發明一般涉及存儲器設備,更具體地涉及分析來自具有有限耐久性 (endurance)和/或保持性(retention)的存儲器設備的監視數據信息。
背景技術:
如NAND快閃存儲器設備的一些存儲器設備擁有有限的寫入/擦除耐久性和/或有限的數據保持性。通常希望跟蹤寫入/擦除耐久性和數據保持性,以識別這樣存儲器的當前有用性和可靠性。然而,迄今為止,提出的解決方案未能為與這樣的存儲器設備關聯的這些和/或其它問題提供可接受的解決方案。
發明內容
根據一個實施例的方法包括從具有有限耐久性和/或保持性的多個存儲器設備收集監視數據信息,所述監視數據是存儲在已知寫入循環計數的專用存儲器單元中的已知內容的數據;分析監視數據信息;以及基于分析采取與設備中的至少一個相關的動作。根據一個實施例的計算機程序產品包括具有與其體現的計算機可用程序代碼的計算機可用介質。計算機可用程序代碼包括計算機可用程序代碼,配置為從具有有限耐久性和/或保持性的多個存儲器設備收集監視數據信息,所述監視數據是存儲在已知寫入循環計數的專用存儲器單元中的已知內容的數據;計算機可用程序代碼,配置為分析監視數據信息;以及計算機可用程序代碼,配置為基于分析采取與設備中的至少一個相關的動作。根據另一實施例的方法包括從具有有限耐久性和/或保持性的多個存儲器設備收集監視數據信息,所述監視數據是存儲在已知寫入循環計數的專用存儲器單元中的已知內容的數據;分析監視數據信息;以及基于分析為設備中的至少一個設置行為目標。根據另一實施例的系統包括具有有限耐久性和/或保持性的多個存儲器設備,每個存儲器設備具有多個存儲器塊,塊中的至少一個具有寫入其中的監視數據,其中在寫入監視數據之前,至少一塊已經被寫入多次;以及用于尋址塊的電路。所述系統還包括與存儲器設備通信的處理器;以及時鐘,處理器與所述時鐘通信。從以下結合附圖以示例的方式說明本發明的原理的詳細描述,本發明的其它方面和優點將變得明顯。
接下來,將參照附圖以示例的方式描述本發明的實施例,附圖中圖1圖示根據一個實施例的用于確定快閃存儲器設備的至少一塊的保持性行為的方法。圖2圖示根據一個實施例的示出閃存錯誤率面(flash error rate surface)的形狀的代表性圖。
圖3示出根據一個實施例的示例性累積分布函數(CDF),該累積分布函數圖示由于在某一數據年齡(data age)的磨損,給定塊將超過扇區級糾錯碼(CEC)的校正能力的概率。圖4圖示根據一個實施例的在某一數據年齡的存取分布和CDF之間的重疊的表
7J\ ο圖5示出根據一個實施例的在某一時間點的用戶和監視數據的代表性循環計數
直方圖。圖6示出來自監視數據系統的可能的一組測量。圖7圖示根據一個實施例的用于分析來自多個快閃存儲器設備的監視數據信息的方法。圖8圖示根據一個實施例的代表性存儲系統。圖9示出根據一個示例的結果的曲線圖。圖10圖示根據一個實施例的網絡架構。圖11示出根據一個實施例的可以與圖10的服務器和/或客戶端相關聯的代表性硬件環境。
具體實施例方式在此描述的方法和系統可以結合任何類型的具有有限耐久性和/或保持性的存儲器設備實現,或者包括任何類型的具有有限耐久性和/或保持性的存儲器設備。說明性類型的具有有限寫入/擦除耐久性或有限數據保持性的存儲器設備包括包含快閃存儲器、相變存儲器、鐵電存儲器等的設備。為了易于理解和將在此呈現的教導置于上下文中,按照閃存設備來闡述大量當前描述,要理解描述僅僅以示例的方式來進行,并且不解釋為限制。NAND閃存設備擁有有限的寫入/擦除耐久性和有限的數據保持性。當前用于檢測磨損和保持性的技術具有不足以用于信息技術(IT)、及一些消費者應用的換碼率(escape rate)。換碼的結果可能是嚴重的。例如,數據可能由于換碼而被破壞。由于閃存中的錯誤率依賴于寫入循環計數和數據的年齡,所以其是3D面。參見, 例如以下圖2及其討論。因為單元可能驅動為完全故障,所以錯誤率可能超過任何扇區級糾錯碼(ECC)的檢測能力。這可以導致破壞的數據作為有效在隨后的讀取操作上傳遞。在一些情況下,NAND存儲設備可以實施一些形式的磨損均衡(leveling),以增加首次磨損事件之前的時間。因為許多塊可能同時接近磨損,所以這樣方法(approach)的副作用是進一步提高磨損群集。使用扇區ECC來監視位錯誤率可能遭受混疊效應(aliasing effect),并且可能限制檢測磨損開始的能力。用于檢測磨損的一些其它技術類似地缺少精確性。這些包括對于成功擦除和成功編程的測試。這些技術不能檢測以下情況,其中數據保持時間長于IOOns的操作校驗時間, 但是顯著短于作為15個數量級擴展的3X IO1W 10年)的標稱耐久性。至少一些在此提供的實施例,通過提供用于確定快閃存儲器設備的保持性行為的技術,處理了這些和其他限制。圖1圖示根據一個實施例的用于確定快閃存儲器設備的至少一塊的保持性行為的方法100。如所示,監視數據寫入到快閃存儲器設備的至少一塊。見操作102。快閃存儲器設備可以包括具有存儲器塊的任何快閃存儲器設備。例如,在一個實施例中,快閃存儲器設備可以是NAND設備。在本說明的上下文中,由監視數據使用的數據模式可以參照已知的任何數據或數據模式。例如,在一個實施例中,監視數據可以包括其整個值對于存儲器系統已知的數據模式,系統包括存儲器或其它主機系統。在此情況下,可以根據數目、位置和模式表征錯誤。此外,在一個實施例中,可以生成監視數據。在此情況下,監視數據可以不作為用戶數據傳遞,而是可以通過主機系統內部生成。監視數據可以寫入到物理塊,繞過任何磨損均衡。以此方式,監視數據可以不經歷磨損均衡。此外,可以選擇快閃存儲器設備的多個塊用于存儲監視數據,其中至少兩個塊不是相互物理鄰近,例如,以提供設備的不同區域的行為的采樣。在任何情況下,監視數據可以寫入到多組塊,其中對于每組執行的寫入循環的數目是不同的。應該注意,至少一塊在寫入監視數據之前已經多次被寫入。例如,相同數據可以連續重寫,不同數據可以在每個重寫寫入,以上兩者的組合等。因此,最終存儲在設備上的監視數據可能并非必定是在寫入的每個循環期間使用的監視數據。在一時間段之后,讀取監視數據。見操作104。該時間段可以包括寫入監視數據的點之后的任何長度的時間(例如,幾秒、幾分鐘、幾小時、幾天等)。在一個實施例中,該時間段可以包括用戶或系統定義的時間段。作為選項,該時間段可以是可配置的。在任何方法中,運行時時鐘、實時時鐘、日歷等的輸出可以用于測量數據年齡、時間段等。使用實時時鐘是有利的,因為數據年齡可以容易地確定,而不管斷電、功率損耗的時段等。一旦讀取監視數據,就基于讀取確定至少一塊的保持性行為。見操作106。在監視數據對于主機系統已知的情況下,保持性行為的確定可以包括比較讀取的監視數據與其存儲的版本。此外,監視數據的讀取和至少一塊的保持性行為的確定可以以周期性間隔發生。 在此情況下,周期性間隔可以包括由用戶定義或由系統自動定義的間隔。一旦確定保持性行為,就輸出確定的結果。見操作108。在一個實施例中,可以基于至少一塊的保持性行為的確定結果,確定快閃存儲器設備或其部分的操作極限。作為選項,當滿足操作極限時,可以不再允許寫入到快閃存儲器設備或其一部分。優選地,通過本領域已知的任何方式,例如,通過將監視數據從可用數據空間的映射忽略寫保護監視數據。應注意到,在一個實施例中,可以寫保護具有監視數據的至少一塊的至少一部分。例如,可以寫保護具有監視數據的至少一塊的至少一部分,以避免用用戶數據蓋寫。在一個方法中,可以通過在存儲器控制器中將塊標記為不可寫來完成寫保護。在另一方法中,可以將受保護塊或部分受保護塊的指示存儲在快閃存儲器設備上。此外,在一個實施例中,監視數據可以包括小于大約的快閃存儲器設備的存儲器容量,并且更優選地小于大約0.5%。在其它實施例中,小于0. 的存儲器容量可以用于存儲監視數據。使用方法100,可以通過添加監視數據到快閃存儲器設備,測量閃存磨損和保持性。監視數據可以包括所有值對于主機系統已知的數據模式。因此,可以根據數目、位置和模式表征錯誤。
在任何用戶數據達到這些循環計數之前,一組塊可以位于高循環計數。可以使用該數據進行錯誤率面的采樣。一旦位于高循環計數,就可以按間隔檢查監視數據以測量保持性行為。作為選項,可以經由自身監視、分析和報告技術(S.M.A.R.T.)來報告測量的磨損和數據保持性極限。如上面所述的,NAND閃存設備可能遭受擦除/寫入循環的有限耐久性和有限數據保持性。這是驅動電荷通過絕緣體的數據存儲處理的不良可逆性的結果。結果,閃存中的位錯誤率可以表征為3D面。圖2圖示根據一個實施例的示出閃存錯誤率面的形狀的代表性圖示200。如所示, X軸以秒為單位示出從1毫秒到10年的數據年齡。深度軸示出從1到IX IO6循環的寫入循環計數。垂直軸是錯誤率乘數。大多數閃存設備的錯誤率面具有如圖2所示的一般特性。如果寫入單元足夠高的循環計數,則它們完全出故障(例如,1/2的錯誤率)。因此,在圖2所示的面的左后角的錯誤率在某一循環計數處增大為故障。此外,當數據的年齡增加時,在較低的循環計數處出現故障。因此,在右后角的錯誤率甚至更快地進入故障。設計ECC或加上循環冗余校驗(CRC)的ECC取決于知道錯誤率或面的形狀。許多NAND設備具有可能影響數據完整性的許多問題。這些可能包括電荷脫阱 (detrapping)、感生應力漏電流(SILC)、讀取干擾和寫入干擾、和/或其它問題。對于閃存的制造測試(例如,JEDEC、JESD47F等)對于IT數據完整性是不足的。 SILC測試僅使用每批38個設備500小時。零錯誤在這樣的測試中指示高達6%到90%置信度的換碼率。此外,500小時測試允許最大10%的設備測試到耐久性極限(假設剩下的設備完全沒有測試),但是處于僅IOOns的數據年齡。對于IT系統的數據完整性要求可能非常嚴格。返回破壞的數據通常不可接受。可以設置每IOM單元年一個事件的寬松目標。以IOkIOPS速率,這給出對于典型的4kB IO傳送的每位1 X 10_23的未校正錯誤率。因此,使用標稱的耐久性規范設計IT閃存系統可能承擔重大風險。可以利用磨損均衡來增加時間,直到不存在耐久性循環計數之下的自由塊。例如, 可以通過備件(spare)或者甚至通過移動靜態數據實現自由塊。靜態磨損均衡算法的一個目的是最大化循環計數,直到不存在耐久性極限之下的自由或可自由塊。理想的靜態磨損均衡算法將在任何時間點產生最窄的分布。這將為設備給出最大總循環計數。然而,在此情況下,磨損均衡假設存在用于確定塊已經磨損的健壯技術。也就是說,磨損均衡假設用于磨損的累積分布函數(CDF)具有突然的和以已知循環計數的開始。此外,假設所有塊具有相同的磨損特性。此外,忽略保持性的影響。圖3示出根據一個實施例的示例性⑶F 300,該⑶F 300圖示由于在某一數據年齡的磨損,給定塊將超過扇區級ECC的校正能力的概率。扇區級ECC可能在閃存中用于針對軟錯誤(soft error)和其它影響進行保護。然而,ECC的能力存在有限極限,并且該極限可能由于塊磨損在某一點被超過。當其出現時,可能返回破壞的數據。如CRC的額外扇區檢查移動其出現的點,但是可能不能消除該問題。圖3中的曲線是根據一個實施例的實際現場行為處于短數據年齡可以是什么的代表。假設具有IO5循環的耐久性規范的設備,給定JEDEC測試結果,這可能分配到6%概率。在該示例中,假設在IO8循環94%的塊出故障。在更長的數據年齡,曲線將移動到左邊。
可以在圖4中看到可靠性影響。圖4圖示根據一個實施例的在某一數據年齡的存取分布和⑶F之間的重疊的表示400,示出了關注的區域。使用圖4,可以看到存取分布和⑶F之間的重疊。存取分布越窄,大百分比的塊在通知磨損之前越可能處于磨損區。因此,更可能將超過扇區ECC的能力,并且將返回破壞的數據。為了處理這些和其它問題,可以采樣錯誤率面以輔助閃存設備的耐久性和保持性極限的確定。在一個實施例中,這可以通過保留許多沒有經過磨損均衡的物理塊來實現。這些塊可以包括對主機系統已知的數據,使得值可以完全驗證,避免在使用從ECC確定的錯誤率中固有的任何混疊問題。此外,可以在超過ECC能力的錯誤率使用這樣的塊,而不危害數據完整性。還可以按間隔驗證監視數據以測量錯誤率對保持性。在一個實施例中,位于接近⑶F的預期上升的一組完全擦除塊,可以用來輔助在磨損導致數據破壞之前確定磨損。例如,閃存設備可以具有16000個擦除塊。使用15個塊作為監視數據將占用小于0. 的設備容量。作為選項,可以利用在3個一組的5組中安排的15塊。每組可以具有相同的循環計數。在此情況下,在一組中具有多個塊可以改進測量的質量。可以選擇每組的位置(根據循環計數),以接近預期CDF開始具有可能影響數據完整性的大小的區域。作為示例,表1示出根據一個實施例的閃存設備的特性代表。
表 1
容量 8GB 頁面寫入800ps頁面4kB塊擦除1500ps擦除塊128頁頁面讀取塊16384塊讀取21ms耐久性IO5塊寫入116ms在該示例中,用于擦除/寫入/讀取塊的時間是138ms。因此,可以選擇5個監視組的監視數據目標布局。表2示出根據一個實施例的5個監視組的監視數據目標布局的代表。表 2
目標循環(K) 203663112 200 總計
部署時間(H) 2.34.17.312.9 23.0 50在此情況下,假設磨損具有對數正態行為,選擇循環計數為冪律分布。在各種實施例中,可以選擇其它分布來最大化監視數據的效率。在該示例中,將花費總計50小時來循環所有監視數據到最后計數。圖5示出根據一個實施例的在某一時間點的用戶和監視數據的代表性循環計數直方圖500。在此情況下,用戶數據和監視數據的直方圖示出為寫入循環計數的函數。此外,數據包括磨損均衡。
如所示的,監視數據位于接近預期的磨損循環計數。在一些情況下,循環所有監視數據塊需要的時間可能長于出貨之前希望執行的。在這樣的情況下,監視數據可以在出貨之前部分循環,循環的剩余部分出現在現場。一旦監視數據處于最后循環計數,就可以按間隔讀取塊,并且讀取數據可以與已知數據比較。這允許錯誤的完全識別,包括維持改變率的能力。圖6示出來自監視數據系統的可能的一組測量600。每個監視組示出為列組,并且該組中的每個代表不同的數據年齡。每列的高度是每扇區的錯誤數目,并且標注為“ECC極限”的較低區域代表可能的ECC校正極限。如所示的,一些測量可能超過ECC能力,因此對于數據完整性造成風險。在一個實施例中,可以從該數據得到操作極限。例如,表3示出根據一個實施例, 可以為圖6中的示例性數據生成的操作極限。表 3
最小循環計數最大循環計數最大數椐年齡<40k440k60k360k80k280k100k2100k120k1>120k不允許還可以選擇監視數據模式。在各種實施例中,這可以是靜態模式或者為特定塊計算。作為選項,可以利用強調耐久性和/或保持性的模式。在任一情況下,可以配置系統使得可以知道每個監視塊的預期內容,而不從閃存設備讀取任何內容。當到達極限之一時,可以通過如不再接受寫入(例如,返回關于寫入的錯誤等)S.M.A.R.T.標志或其它技術通知系統。雖然大量上述描述已經將監視數據單元描述為包括整個閃存塊,但是所討論的技術不限于使用整個閃存塊。例如,在一個實施例中,監視數據單元可以與扇區大小一樣小。盡管,使用扇區大小監視數據單元將保持監視特性,但是在一些情況下,這可能導致暴露在(exposure to)硬錯誤(hard error)下。例如,如果利用頁面大小監視,用戶數據在塊的剩余部分,則如果監視頁表現出接近ECC極限的錯誤率,用戶數據就可能被標記為丟失(即,硬錯誤)。這是因為扇區ECC在這種情況下可能不可靠。然而,使用該技術,破壞事件的概率將仍以較低的開銷減小。圖7圖示根據一個實施例的用于分析來自多個快閃存儲器設備的監視數據信息的方法700。如所示的,從多個快閃存儲器設備收集監視數據信息,監視數據是存儲在已知寫入循環計數的專用存儲器單元中的已知內容的數據。見操作702。監視數據可以包括已知的任何數據或數據模式。在一個實施例中,監視數據信息可以包括與監視數據的數據年齡和寫入循環計數中的至少一個相關的錯誤率信息。此外,可以使用多種技術收集監視數據和/或監視數據信息。在一個實施例中,可以生成監視數據。—旦收集監視數據信息,就分析監視數據信息。見操作704。此外,基于分析采取與設備中的至少一個相關的動作。見操作706。動作可以包括多種動作。在一個實施例中,采取動作可以包括為設備中的至少一個設置行為目標。在這種情況下,行為目標可以是對于數據寫入循環計數的限制。作為另一選項,行為目標可以是對于數據年齡的限制。在另一實施例中,采取動作可以包括為至少一個設備設置行為目標。在此情況下, 行為目標可以是對于數據寫入循環計數的限制。作為另一選項,行為目標可以是對于數據年齡的限制。應該注意,監視數據信息的收集和信息的分析可以發生任何次數。例如,收集和分析步驟可以執行至少兩次,并且可以基于此生成統計趨勢。此外,收集和分析步驟可以執行至少兩次,并且可以跟蹤監視數據的時間依賴性(time-cbpendence)。通過實施該技術,可以通過從一組設備收集監視數據信息、分析數據和為設備設置行為目標,提供用于增加基于閃存的存儲系統的可靠性的系統和方法。監視數據可以包括根據每個設備的循環計數和數據年齡的錯誤率信息。此外,行為目標可以包括對循環計數和數據年齡設置設備等級極限。集合來自多個設備的數據允許增加采樣大小,并且可以幫助識別統計趨勢。此外,集合還可以跟蹤數據的時間依賴性。可以在一時間段之后更新行為目標。在一個方法中,可以再次收集和分析監視數據,以便在從設置之前的行為目標時已經過去一時間段之后,生成更新的行為目標。這將因此考慮監視數據的較長年齡的影響,潛在地改進行為目標。在另一方法中,可以至少部分基于其它因素(如存儲器設備的故障事件、因為設置目標所以變得可用的額外信息或參數等)更新行為目標。在一個實施例中,可以利用監視數據方法來提供存儲系統中的一組閃存設備中的錯誤率面的測量。此外,可以為給定閃存設備提供錯誤率對循環計數和錯誤率對數據年齡的測量。圖8圖示根據一個實施例的代表性存儲系統800。如所示的,存儲系統800可以包括存儲控制器802和多個閃存設備804。可以響應于監視數據信息調節系統800的行為。 控制器802可以與遠程數據儲存庫806通信,遠程數據儲存庫806從這種存儲系統集合現場數據。控制器802可以基于該數據,確定該組本地閃存設備804的可能的初始循環計數目標,或確定為工廠預置。這些值可以傳遞到閃存設備804,閃存設備804將循環它們的監視數據以將其置于預定的循環計數。存儲控制器802然后可以收集在不同次數的監視數據的錯誤特性。在一個實施例中,存儲控制器802可以包括或訪問實時時鐘。該時鐘可以用于記錄監視數據的寫入次數(在監視數據中或在另一保留區域中),并且確定監視數據的年齡。由監視數據報告的錯誤特性可以通過接口收集到閃存設備,如經由S.M.A.R.T.。 存儲系統800可以從閃存設備804集合收集的數據以改進統計,并且識別離群值 (outlier)。
例如,存儲系統800可以包括16個閃存單元(例如,SSD),每個閃存單元可以包括 16個閃存設備。這提供256個閃存設備,因此改進采樣的質量16倍(假設泊松統計)。如果每個閃存設備具有每個數據組中的3塊,則系統數據組大小將是每組768塊采樣。因此, 可能獲得好的統計并且執行離群值檢測。監視數據可以報告每個監視數據組的錯誤配置。每組可以具有不同的循環計數。 因此,存儲控制器802可以使用它們來估計總體的錯誤率曲線。錯誤率曲線可以用于選擇耐久性和保持性極限標準。作為可以如何在系統800中使用數據的示例,可以執行蒙特卡洛模擬以生成每個設備上的監視數據的一組錯誤計數測量。在此情況下,假設監視數據至少報告每個監視數據塊的平均錯誤計數。合并每個循環計數的錯誤計數值以計算平均和標準偏差。假設高斯擴展,可以計算換碼極限目標,外部ECC將能夠超過該換碼極限目標來校正。還假設換碼的目標概率是1X10_6,其應該足以避免設備到設備校正壓制 (overwhelming)外部ECC。這對于該示例計算出4. 8標準偏差(假設高斯統計)。表4示出用于該示例的蒙特卡洛模擬的結果。表 4
循環計數(k)203663112200平均錯誤/扇區1.42.44.27.413.2Σ錯誤/扇區0.20.30.40.61.1Σ修剪曲線2.23.76.110.418.4離群值數11111在此情況下,以5個分開的循環計數采樣監視數據。“平均”行列出了每扇區的錯誤的平均數,并且“Σ”行列出相應的標準偏差。“Σ修剪(clip)曲線”行是在每個循環計數的4. 8標準偏差值。最后行是具有超過4. 8標準偏差的錯誤計數的設備數。在該示例中,僅存在單個設備超過修剪,因此假設這是離群值。此外,假設選擇每扇區8個錯誤的錯誤極限。這將由扇區級錯誤校正的能力確定。給出這樣的值,可以通過插值Σ修剪曲線為非離群值估計循環計數極限。對于該示例,極限值是8 寫入循環。類似地,在該示例中離群值極限可以計算為61k循環。還可以用離群值利用更保守的方法。例如,可以選擇較低循環計數,而不是簡單插值。類似地, 可以使用估計的其它技術,如曲線擬合。圖9示出根據該示例的結果的曲線圖900。曲線圖900圖示離群值完全超過分布的邊緣,因此應用正常修剪極限將可能導致錯誤暴露。一旦已經計算循環計數極限,它們就可以反饋回閃存設備或負責耐久性極限的控制器。這可以在不同的次數重復,因此反映不同的數據年齡。如此,可以為存儲系統生成一組耐久性和保持性目標。由于每個設備受益于總體統計,因此該方法對允許每個設備設置它自己的極限有改進,并且可以從采樣噪聲更精確地區分離群值。每個監視數據組可以包括多個擦除塊,每個擦除塊包括許多數據扇區。例如,典型的NAND設備可以具有528kB擦除塊,包括IOM扇區,每個扇區具有5 字節。假設每個監視組使用3個數據塊,對于整個256個設備的組,每組有3.3X109位。因此,因為避免了過度殺傷(overkill),所以可靠性增強,并且成本降低。應該注意,本發明可以采用整體硬件實施例、整體軟件實施例或包含硬件或軟件元素的實施例的形式。例如,在一個實施例中,系統可以包括具有多個存儲器塊的快閃存儲器設備,其中塊中的至少一個具有寫入其中的監視數據,并且至少一塊在寫入監視數據之前已經寫入多次。系統還可以包括用于尋址塊的電路和存儲監視數據的副本的次級存儲器。此外,系統可以包括存儲控制器和多個快閃存儲器設備。如本領域的技術人員將理解的,本發明可以體現為系統、方法或計算機程序產品。 因此,本發明可以采用以下的形式完全硬件實施例、完全軟件實施例(包括固件、駐留軟件、微代碼等),或通常可以在此稱為“電路”、“模塊”或“系統”的組合軟件和硬件方面的實施例。此外,本發明可以采用體現在任何有形表達介質中的計算機程序產品的形式,該有形表達介質具有在介質中體現的計算機可用程序代碼。可以利用一個或多個計算機可用或計算機可讀介質的任何組合。計算機可用或計算機可讀介質例如可以是但不限于電的、磁的、光的、電磁的、紅外線的或半導體的系統、 裝置、器件或傳播介質。計算機可讀介質的更具體的示例(非窮舉列表)將包括以下具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPR0M或快閃存儲器)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光學存儲器件、傳輸介質(如支持因特網或內聯網的傳輸介質)、或磁存儲器件。注意,計算機可用或計算機可讀介質可能甚至是上面印有程序的紙張或其他它合適的介質,由于可以例如經由光學掃描紙張或其它介質,以電子方式捕獲程序,然后以合適的方式編譯、解釋或其它的處理,如果必要,然后存儲在計算機存儲器中。在本文的語境中,計算機可用或計算機可讀介質可以是任何可含有、存儲、傳達、傳播、或傳輸供指令執行系統、裝置或器件使用的、或與指令執行系統、裝置或器件相聯系的程序的介質。計算機可用的介質可包括在基帶中或者作為載波一部分傳播的、由其體現計算機可用的程序碼的數據信號。 計算機可用程序代碼可以使用任何適當的介質傳輸,包括但不限于無線、有線、光纜、RF等。用于執行本發明的操作的計算機程序代碼,可以以一個或多個編程語言的任何組合書寫,編程語言包括面向對象的編程語言(如Java、Smalltalk, C++等)和常規的過程編程語言(如“C”編程語言或類似編程語言)。程序代碼可以完全地在用戶的計算機上執行、部分地在用戶的計算機上執行、作為一個獨立的軟件包執行、部分在用戶的計算機上和部分在遠程計算機上或完全地在遠程計算機或服務器上執行。在后一情形中,遠程計算機可以通過任何類型的網絡(包括局域網(LAN)或廣域網(WAN))連接到用戶的計算機,或者可以(例如,利用因特網服務提供商通過因特網)連接到外部計算機。在此參照根據本發明實施例的方法、裝置(系統)和計算機程序產品的流程示和/或框圖描述了本發明。將理解,流程示和/或框圖中的每一框、以及流程示和/或框圖中的各方框的組合,可以通過計算機程序指令實現。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數據處理裝置的處理器,以產生一種機器,使得通過計算機或其它可編程數據處理裝置的處理器執行的指令,產生實現流程圖和/或框圖框或各方框中規定的功能/動作的裝置(means)。這些計算機程序指令還可以存儲在計算機可讀介質中,其能指示計算機或其它可編程數據處理裝置,以特定方式起作用,使得存儲在計算機可讀介質中的指令產生一種包括指令裝置(instruction means)的制造品,該指令裝置實現流程圖和/或框圖的一個或多個方框中規定的功能/操作。計算機程序指令還可以加載到計算機或其它可編程數據處理裝置上,使得在計算機或其它可編程裝置上執行一系列操作步驟,以產生計算機實現的過程,從而在計算機或其它可編程裝置上執行的指令,提供用于實現在流程圖和/或框圖的一個或多個方框中規定的功能/動作的過程。附圖中的流程圖和框圖,圖示了根據本發明的各種實施例的系統、方法和計算機程序產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個或多個用于實現規定的邏輯功能的可執行指令。還應該注意,在一些替代實施例中,方框中所標注的功能也可以以脫離附圖中所標注的順序發生。例如,依所涉及的功能,兩個接連地表示的方框實際上可以基本并行地執行,或者該方框有時可以按相反的順序執行。還將注意,框圖和 /或流程示中的每個方框、以及框圖和/或流程示中的方框的組合,可以用執行規定的功能或操作的專用的基于硬件的系統、或者專用硬件與計算機指令的組合來實現。適于存儲和/或執行程序代碼的數據處理系統將包括至少一個處理器,該處理器通過系統總線直接或間接耦合到存儲器元件。存儲器元件可以包括在程序代碼的實際執行期間采用的本地存儲器、大容量存儲器和高速緩沖存儲器,該高速緩沖存儲器提供至少一些程序代碼的臨時存儲,以便減少在執行期間必須從大容量存儲器取回代碼的次數。輸入/輸出或I/O設備(包括但不限于鍵盤、顯示器、指向設備等)可以直接或通過居間I/O控制器耦合到系統。網絡適配器也可以耦合到系統,以使數據處理系統能夠變得通過居間專用或公用網絡耦合到其它數據處理系統、或遠程打印機、或存儲設備。調制解調器、線纜調制解調器和以太網卡正好是幾個當前可用類型的網絡適配器。圖10圖示根據一個實施例的網絡架構1000。作為選項,圖1-9的功能和架構可以在網絡架構1000的環境中實現。然而,圖1-9的功能和架構可以在任何希望環境中執行。 應該注意,前述限定可以在本描述期間應用。如圖10所示,提供多個遠程網絡1002,包括第一遠程網絡1004和第二遠程網絡 1006。網關1007可以耦合在遠程網絡1002和最近網絡1008之間。在本網絡架構1000的環境中,網絡1004、1006每個可以采取任何形式,包括但不限于LAN、如因特網、PSTN、內部電話網的WAN等。在使用中,網關1007用作從遠程網絡1002到最近網絡1008的進入點。如此,網關1007可以用作路由器和交換機,路由器能夠引導到達網關1007的給定數據分組,交換機提供用于給定分組的進出網關1007的實際路徑。還包括耦合到最近網絡1008的至少一個數據服務器1014,并且可經由網關1007 從遠程網絡1002訪問數據服務器1014。應該注意到,一個(或多個)數據服務器1014可以包括任何類型的計算設備/群件。多個用戶設備1016耦合到每個數據服務器1014。這樣的用戶設備1016可以包括桌面型計算機、膝上型計算機、手持計算機、打印機或任何其它類型的邏輯電路。應該注意,在一個實施例中,用戶設備1017還可以直接耦合到任何網
傳真機1020或一系列傳真機1020可以耦合到一個或多個網絡1004、1006、1008。 應該注意,數據庫和/或額外組件可以與耦合到網絡1004、1006、1008的任何類型的網絡元件一起利用,或者集成到耦合到網絡1004、1006、1008的任何類型的網絡元件中。在本描述的上下文中,網絡元件可以指網絡的任何組件。圖11示出根據一個實施例的與圖10的用戶設備1016相關聯的代表性硬件環境。 這樣的示工作站的典型硬件配置,該工作站具有如微處理器的中央處理單元1110、以及經由系統總線1112互連的許多其它單元。圖11所示的工作站包括隨機存取存儲器(RAM) 1114、只讀存儲器(ROM) 1116、用于將如磁盤存儲單元1120的外圍設備連接到總線1112的I/O適配器1118、用于連接鍵盤 IlM、鼠標11 、揚聲器11 、麥克風1132和/或其它用戶接口設備(如觸摸屏和數字相機 (未示出))到總線1112的用戶接口適配器1122、用于將工作站連接到通信網絡1135(例如,數據處理網絡)的通信適配器1134、以及用于將總線1112連接到顯示設備1138的顯示適配器1136。工作站可以具有駐留其上的操作系統,如Microsoft Windows 操作系統(OS)、 MAC OS或UNIX操作系統。將理解,優選實施例還可以在不同于上面提到的那些的平臺和操作系統上實現。優選實施例可以使用JAVA、XML、C和/或C++語言、或者其它編程語言連同面向對象的編程方法一起編寫。可以使用變得越來越多地用于開發復雜應用的面向對象的編程(00P)。雖然上面已經描述了各種實施例,但是應該理解的是它們僅僅通過示例而不是限制的方式呈現。因此,優選實施例的寬度和范圍不應由上述任何示例性實施例限制,而是應該根據權利要求和其等價來限定。
權利要求
1.一種方法,包括從具有有限耐久性和/或保持性的多個存儲器設備收集監視數據信息,所述監視數據是存儲在已知寫入循環計數的專用存儲器單元中的已知內容的數據; 分析監視數據信息;以及基于分析采取與設備中的至少一個相關的動作。
2.如權利要求1所述的方法,還包括生成監視數據。
3.如權利要求1所述的方法,其中監視數據信息包括與監視數據的數據年齡和寫入循環計數的至少一個相關的錯誤率信息。
4.如權利要求1所述的方法,還包括執行收集和分析步驟至少兩次,并且基于其生成統計趨勢。
5.如權利要求1所述的方法,還包括執行收集和分析步驟至少兩次,并且跟蹤監視數據的時間依賴性。
6.如權利要求1所述的方法,其中采取動作包括為設備中的至少一個設置行為目標。
7.如權利要求6所述的方法,其中行為目標是對于數據寫入循環計數的限制。
8.如權利要求6所述的方法,其中行為目標是對于數據年齡的限制。
9.如權利要求1所述的方法,其中監視數據不經歷磨損均衡。
10.如權利要求6所述的方法,還包括在已經過去一段時間之后為設備的至少一個更新行為目標。
11.如權利要求1所述的方法,其中存儲器設備是NAND設備。
12.如權利要求1所述的方法,其中監視數據包括小于大約的每個存儲器設備的存儲器容量。
13.如權利要求1所述的方法,其中每個存儲器設備中的監視數據寫入到多組塊,其中對每個組執行的寫入循環的數目不相同。
14.一種計算機程序產品,包括具有與其體現的計算機可用程序代碼的計算機可用介質,當由計算機執行所述計算機可用程序代碼時,所述計算機可用程序代碼使得計算機執行權利要求1到13的步驟。
15.一種系統,包括具有有限耐久性和/或保持性的多個存儲器設備,每個存儲器設備具有 多個存儲器塊,塊的至少一個具有寫入其中的監視數據,其中在寫入監視數據之前,至少一塊已經寫入多次;以及用于尋址塊的電路; 與存儲器設備通信的處理器;以及時鐘,所述處理器與所述時鐘通信。
16.如權利要求15所述的系統,還包括存儲監視數據的副本的次級存儲器。
17.如權利要求15所述的系統,還包括如權利要求14所述的計算機可用介質。
18.如權利要求15到17的任一所述的系統,其中存儲器設備是NAND設備。
全文摘要
根據一個實施例的方法包括從具有有限耐久性和/或保持性的多個存儲器設備收集監視數據信息,所述監視數據是存儲在已知寫入循環計數的專用存儲器單元中的已知內容的數據;分析監視數據信息;以及基于分析采取與設備中的至少一個相關的動作。還公開了另外的系統、方法和計算機程序產品。
文檔編號G11C16/34GK102301427SQ201080005997
公開日2011年12月28日 申請日期2010年3月25日 優先權日2009年4月8日
發明者S.R.赫茲勒, W.J.卡貝拉克 申請人:國際商業機器公司