專利名稱:用于混合非易失性固態(tài)存儲系統(tǒng)的疲勞管理系統(tǒng)和方法
技術(shù)領(lǐng)域:
本公開涉及固態(tài)存儲器,并且更具體地說,其涉及混合非易失性固態(tài)存儲器。
背景技術(shù):
本文提供的背景描述用于一般性地介紹本公開的背景。在背景部分描述的范圍內(nèi) 的當(dāng)前被稱作發(fā)明者的著作以及在提交時可能不像現(xiàn)有技術(shù)那樣符合條件的描述的方面 不會明顯地或隱晦地被認(rèn)為是本公開的現(xiàn)有技術(shù)。使用電荷存儲設(shè)備的閃存芯片已經(jīng)成為基于半導(dǎo)體的大容量存儲設(shè)備的主要芯 片類型。該電荷存儲設(shè)備特別適合于這樣的應(yīng)用,即將被存儲的數(shù)據(jù)文件包含音樂文件和 圖像文件。然而,電荷存儲設(shè)備可維持有限量的寫循環(huán),之后,電荷存儲設(shè)備不再能可靠地 存儲數(shù)據(jù)。有限量的寫循環(huán)可用于很多應(yīng)用,例如可移動的USB(通用串行總線)驅(qū)動、 MP3(MPEG層幻播放器和數(shù)字相機(jī)存儲卡。然而,當(dāng)用作計算機(jī)系統(tǒng)中的大容量非易失性存 儲的一般替換時,有限量的寫循環(huán)可能是不可接受的。每個存儲單元中存儲單個位的較低密度閃存設(shè)備通常具有100,000個寫循環(huán)量 級的使用壽命。為了減少成本,閃存設(shè)備可在每個存儲單元中存儲2位。然而,在每個存儲 單元中存儲2位可將設(shè)備的使用壽命減少至10,000寫循環(huán)量級的水平。閃存設(shè)備可能不具有足夠長的壽命以用于大容量存儲,特別是大容量存儲中的一 部分被用作虛擬內(nèi)存分頁空間。虛擬內(nèi)存分頁空間通常是由操作系統(tǒng)使用以當(dāng)RAM(隨機(jī) 存取存儲器)中的可用空間低時存儲來自于RAM的數(shù)據(jù)。僅為了舉例說明的目的,閃存芯 片可具有2GB (千兆字節(jié))的容量、可在每個單元中存儲2位并且可具有約4MB/s(每秒兆 字節(jié))的寫通量。在這樣的閃存芯片中,在理論上是可能每隔500秒在芯片中將每位寫入 一次(即:2E9字節(jié)/4E6字節(jié)/s)。然后,在理論上是可能在僅5E6秒(1E4循環(huán)*5E2秒)內(nèi)將每位寫10,000次,其 小于2個月。然而,實際上,大多數(shù)驅(qū)動存儲將不會在100%的占空比的情況下被寫入。更 實際的寫占空比可為10%,其可在計算機(jī)持續(xù)活動并且執(zhí)行虛擬內(nèi)存分頁操作時發(fā)生。當(dāng) 10%的寫占空比時,閃存設(shè)備的使用壽命可在約20個月內(nèi)耗盡。作為比較,磁性硬盤存儲 設(shè)備的預(yù)期壽命通常超過10年。圖1示出了傳統(tǒng)固態(tài)盤100的功能模塊圖。該固態(tài)盤100包括控制器102和閃存 104??刂破?02接收來自于主機(jī)(未示出)的指令和數(shù)據(jù)。當(dāng)請求存儲器存取時,控制器102讀取來自于閃存104的數(shù)據(jù)或者將數(shù)據(jù)寫入閃存104,并且將該信息通信至主機(jī)。在閃存104的區(qū)域(或存儲塊)已經(jīng)被寫入或者被刪除預(yù)定次數(shù)之后,該區(qū)域可 變得不能可靠存儲。預(yù)定次數(shù)被稱為閃存104的寫循環(huán)壽命。一旦閃存104的寫循環(huán)壽命 已經(jīng)被超出,那么控制器102不再能可靠地在閃存104中存儲數(shù)據(jù),并且固態(tài)盤100不再能 使用。
發(fā)明內(nèi)容
在各種實施方式中,本公開涉及固態(tài)存儲系統(tǒng)。該系統(tǒng)包括具有第一循環(huán)壽命和 第一組物理地址的第一非易失性半導(dǎo)體存儲器和具有第二循環(huán)壽命和第二組物理地址的 第二非易失性半導(dǎo)體存儲器。第一寫循環(huán)壽命大于第二寫循環(huán)壽命。該系統(tǒng)還包括產(chǎn)生多 個邏輯地址的寫頻率等級的疲勞管理模塊。疲勞管理模塊基于寫頻率等級將多個邏輯地址 中的每一個映射至第一組物理地址或第二組物理地址中的物理地址。在各種實施方式中,本公開涉及用于固態(tài)存儲系統(tǒng)的疲勞管理方法。該方法包括 提供具有第一寫循環(huán)壽命和第一組物理地址的第一非易失性半導(dǎo)體存儲器;和提供具有第 二寫循環(huán)壽命和第二組物理地址的第二非易失性半導(dǎo)體存儲器。第一寫循環(huán)壽命大于第二 寫循環(huán)壽命。該方法進(jìn)一步包括產(chǎn)生多個邏輯地址的寫頻率等級,和基于寫頻率等級將多 個邏輯地址中的每一個映射至第一組物理地址或第二組物理地址中的物理地址。在其它特征中,上述系統(tǒng)和方法是通過由一個或多個處理器執(zhí)行的計算機(jī)程序?qū)?現(xiàn)的。該計算機(jī)程序可存放在計算機(jī)可讀介質(zhì)中,例如但不局限于存儲器、非易失性數(shù)據(jù)儲 存器和/或其它合適的有形儲存介質(zhì)。在其它特征中,上述系統(tǒng)和方法是通過由一個或多個處理器執(zhí)行的計算機(jī)程序?qū)?現(xiàn)的。該計算機(jī)程序可存放在計算機(jī)可讀介質(zhì)中,例如但不局限于存儲器、非易失性數(shù)據(jù)儲 存器和/或其它合適的有形儲存介質(zhì)。在閱讀了此后提供的詳細(xì)描述后,本公開的適用性的其它方面可變得明顯。應(yīng)該 了解到,雖然詳細(xì)說明和具體實施例說明了本公開的優(yōu)選實施方式,但是它們僅僅是用于 說明的目的,而不期望限制本公開的范圍。
通過詳細(xì)說明和附圖,本公開將被更充分地理解,其中圖1是根據(jù)現(xiàn)有技術(shù)的固態(tài)盤驅(qū)動器的功能方框圖;圖2是根據(jù)本公開的固態(tài)盤驅(qū)動器的功能方框圖;圖3是包含損耗均衡模塊的固態(tài)盤驅(qū)動器的功能方框圖;圖4A是包含圖3的損耗均衡模塊和寫監(jiān)控模塊的固態(tài)盤驅(qū)動器的功能方框圖;圖4B是包含圖3的損耗均衡模塊和寫映射模塊的固態(tài)盤驅(qū)動器的功能方框圖;圖5是包含劣化測試模塊和圖3的損耗均衡模塊的固態(tài)盤驅(qū)動器的功能方框圖;圖6是包含映射模塊和圖3的損耗均衡模塊的固態(tài)盤驅(qū)動器的功能方框圖;圖7A至7E是用于操作圖2至圖5所示的固態(tài)盤驅(qū)動器的方法的示例性流程圖;圖8是用于操作圖6所示的固態(tài)盤驅(qū)動器的方法的示例性流程圖;圖9是包含固態(tài)盤驅(qū)動器的系統(tǒng)的功能方框圖10是根據(jù)本公開的包含疲勞管理模塊的固態(tài)盤驅(qū)動器的功能方框圖;圖11是根據(jù)本公開的包含疲勞管理模塊的固態(tài)盤驅(qū)動器的功能方框圖,該疲勞 管理模塊針對存儲器中的每一個具有獨立的損耗均衡模塊。圖12是根據(jù)本公開的示例性映射/寫頻率等級表;和圖13是用于操作圖10的固態(tài)盤驅(qū)動器的方法的示例性流程圖。
具體實施例方式下面的描述在本質(zhì)上僅僅是示例性的并且絕不期望限制本公開、其應(yīng)用或者使 用。為了清楚的目的,相同的參考號將在這些附圖中被使用以指示相似的組件。如本文所 用的,短語A、B和C中的至少一個應(yīng)該被理解為意味著通過使用非排他邏輯或的邏輯(A或 B或C)。應(yīng)該理解到,在不改變本公開的原則的情況下,方法內(nèi)的步驟可按照不同的順序被 執(zhí)行。如本文所使用的,術(shù)語“基于”或“實質(zhì)上基于”是指這樣的值,其為另一個值的函數(shù)、 與另一個值成比例、隨著另一個值而改變和/或與另一個值有關(guān)。該值也可為一個或多個 其它值的函數(shù)、與一個或多個其它值成比例、隨著一個或多個其它值而改變和/或與一個 或多個其它值有關(guān)。如本文所使用的,術(shù)語模塊是指專用集成電路(ASIC)、電子電路、處理器(共享 的、專用的或組)和執(zhí)行一個或多個軟件或固件程序的存儲器、組合邏輯電路和/或提供所 述功能的其它合適的構(gòu)件。如氮化物只讀存儲器(NROM)和NAND閃存等基于電荷存儲的閃存設(shè)備的成本已經(jīng) 在最近幾年不斷下降。同時,新的高密度存儲器技術(shù)一直在發(fā)展中。如相變存儲器(PCM)等 存儲器技術(shù)中的一些提供了比基于電荷存儲的閃存設(shè)備明顯更高的寫承受能力。然而,作 為更新的技術(shù),這些存儲器的存儲容量、存取時間和/或成本可能比閃存設(shè)備的存儲容量、 存取時間和/或成本具有更小的吸引力。為了將新存儲器技術(shù)的更長寫循環(huán)壽命與傳統(tǒng)技術(shù)的低成本相結(jié)合,固態(tài)存儲系 統(tǒng)能夠使用兩種類型的存儲器來構(gòu)造。大量低成本存儲器可與更少量具有更高寫循環(huán)壽命 的存儲器相結(jié)合。具有更高寫循環(huán)壽命的存儲器可被用于存儲頻繁變化的數(shù)據(jù),例如操作 系統(tǒng)分頁數(shù)據(jù)。圖2描繪了示例性的固態(tài)存儲系統(tǒng)。該固態(tài)存儲系統(tǒng)可被用作計算機(jī)系統(tǒng)或可需 要存儲數(shù)據(jù)的其它設(shè)備,例如手機(jī)、機(jī)頂盒、汽車部件、無線個人數(shù)字助理(PDA)等中的固 態(tài)盤。僅舉例說明,如2GB PCM芯片等PCM芯片可與NAND閃存設(shè)備或NROM閃存設(shè)備相結(jié) 合。PCM存儲器的寫循環(huán)壽命可不久為1E13寫循環(huán)量級。具有超過1E7的寫循環(huán)的寫循環(huán) 壽命的PCM芯片是可利用的。以1E7的寫循環(huán),PCM芯片具有比可經(jīng)受1E4寫循環(huán)的2位/ 單元閃存設(shè)備長1000倍的寫循環(huán)壽命。PCM芯片可提供比閃存設(shè)備更快的數(shù)據(jù)通量。例如,PCM芯片可提供比閃存設(shè)備快 100倍的數(shù)據(jù)通量。即使PCM芯片提供了比閃存設(shè)備快100倍的數(shù)據(jù)通量,但是超出1000 倍的寫循環(huán)壽命產(chǎn)生了比閃存設(shè)備長10倍的有效寫循環(huán)壽命。例如,以10%的寫占空比, 即使PCM芯片提供了比閃存設(shè)備快100倍的數(shù)據(jù)通量,但是仍將需要15. 9年來消耗PCM芯 片的壽命。圖2示出了根據(jù)本公開的一個執(zhí)行的示例性固態(tài)盤200的功能方框圖。該固態(tài)盤200包括控制器202以及第一固態(tài)非易失性存儲器204和第二固態(tài)非易失性存儲器206。在 本公開的剩余部分中,固態(tài)非易失性存儲器可被實現(xiàn)為集成電路(IC)??刂破?02接收來 自于主機(jī)220的存取請求??刂破?02將存取請求導(dǎo)向第一固態(tài)非易失性存儲器204或第 二固態(tài)非易失性存儲器206,如下面更詳細(xì)的描述。僅舉例說明,第一固態(tài)非易失性存儲器204可包括相對便宜的非易失性存儲器陣 列并且具有大容量。第二固態(tài)非易失性存儲器206可具有比第一固態(tài)非易失性存儲器204 更大的寫循環(huán)壽命,但更貴且具有更小的容量。在各種實現(xiàn)中,主機(jī)220可給控制器202指 定與將相對頻繁改變的數(shù)據(jù)相對應(yīng)的邏輯地址和與相對不頻繁改變的數(shù)據(jù)相對應(yīng)的邏輯 地址。控制器202可將與將相對頻繁改變的數(shù)據(jù)相對應(yīng)的邏輯地址映射至第二固態(tài)非 易失性存儲器206中的物理地址??刂破?02可將與將相對不頻繁改變的數(shù)據(jù)相對應(yīng)的邏 輯地址映射至第一固態(tài)非易失性存儲器204中的物理地址。第一固態(tài)非易失性存儲器204可包括單層單元(SLC)閃存或多層單元(MLC)閃 存。第二固態(tài)非易失性存儲器206可包括單層單元(SLC)閃存或多層單元(MLC)閃存。在詳細(xì)討論之前,將提供附圖的簡要描述。圖3描繪了包含損耗均衡模塊沈0的 示例性的固態(tài)盤250。在一個實現(xiàn)中,損耗均衡模塊260控制來自于主機(jī)220的邏輯地址與 第一固態(tài)存儲器204和第二固態(tài)存儲器206中的物理地址之間的映射。損耗均衡模塊260 可基于來自于主機(jī)的信息執(zhí)行該映射??蛇x擇地或額外地,損耗均衡模塊260可測量或估計固態(tài)非易失性存儲器204和 固態(tài)非易失性存儲器206的所有區(qū)域內(nèi)的損耗,并且改變該映射以對固態(tài)非易失性存儲器 204和固態(tài)非易失性存儲器206的所有區(qū)域內(nèi)的損耗進(jìn)行平衡。在一個實現(xiàn)中,損耗均衡模 塊260的目的是將固態(tài)非易失性存儲器204和固態(tài)非易失性存儲器206的所有區(qū)域內(nèi)的損 耗進(jìn)行均衡,以使沒有一個區(qū)域先于固態(tài)非易失性存儲器204和固態(tài)非易失性存儲器206 的其它區(qū)域用壞。在各種非易失性存儲器的情況下,將數(shù)據(jù)寫入存儲器塊可需要刪除或?qū)懭胝麄€存 儲器塊。在這樣的以塊為中心的存儲器中,損耗均衡模塊260可追蹤每個存儲器塊已經(jīng)被 刪除或?qū)懭氲拇螖?shù)。當(dāng)寫請求從主機(jī)到達(dá)時,損耗均衡模塊260可從可利用的存儲器塊中 選擇已經(jīng)被寫入最少的存儲器的存儲器塊。然后,損耗均衡模塊260將輸入邏輯地址映射 至該存儲器塊的物理地址。隨著時間的推移,這在存儲器塊中可產(chǎn)生近似均勻的寫操作分 布。圖4A和圖4B包括額外的模塊,其幫助控制損耗均衡。在圖4A中,損耗均衡模塊 260確定數(shù)據(jù)被寫入邏輯地址中的每一個的頻繁程度。在一個實現(xiàn)中,作為相對頻繁的寫或 刪除的目標(biāo)的邏輯地址被映射至還未經(jīng)歷過多損耗的物理地址。在圖4B中,寫映射模塊356接收來自于主機(jī)220的寫頻率信息。寫頻率信息指示 與被期望相對頻繁改變的數(shù)據(jù)相對應(yīng)的邏輯地址和/或與相對不頻繁改變的數(shù)據(jù)相對應(yīng) 的邏輯地址。此外,寫映射模塊356可確定數(shù)據(jù)實際上被寫入邏輯地址的頻繁程度,如圖4A 所示。圖5示出了固態(tài)盤400,其中除了基于寫或刪除的次數(shù)估計剩余壽命以外或者作為其 替換,存儲器的劣化和因此產(chǎn)生的剩余壽命被經(jīng)驗地確定。圖6示出了固態(tài)盤450,其中第一固態(tài)非易失性存儲器462和第二固態(tài)非易失性存儲器464的組合被用于緩存數(shù)據(jù)。在一個實現(xiàn)中,第一固態(tài)非易失性存儲器462具有高存 儲容量(例如2GB或更高)。在一個實現(xiàn)中,第二固態(tài)非易失性存儲器464具有比第一固 態(tài)非易失性存儲器462更快的存取時間,并且具有比第一固態(tài)非易失性存儲器462更小的 存儲容量(例如2GB或更少)。第一固態(tài)非易失性存儲器462和第二固態(tài)非易失性存儲器 464可都具有高寫循環(huán)壽命。映射模塊465可被用于基于存取時間考慮將來自于主機(jī)的邏輯地址映射至第一 固態(tài)非易失性存儲器462和第二固態(tài)非易失性存儲器464。映射模塊465可接收來自于主 機(jī)480的存取時間信息,例如一列地址,對其快速的存取時間是期望的或不期望的??蛇x 擇地或額外地,映射模塊465可監(jiān)控邏輯地址的存取,并且確定對于哪個邏輯地址減少的 存取時間將是最有益的。低存取時間很重要的邏輯地址可被映射至第二固態(tài)非易失性存儲 器464,其(在一個實現(xiàn)中)具有減少的存取時間。如本文所使用的,存取時間可包括如讀取時間、寫入時間、刪除時間和/或包含 讀取時間、寫入時間或刪除時間中的一個或多個的組合存取時間。例如,組合存取時間可為 讀取時間、寫入時間和刪除時間的平均值。通過將某些待被映射的邏輯地址導(dǎo)向第二固態(tài) 非易失性存儲器464,主機(jī)480可優(yōu)化如快速的啟動時間或應(yīng)用程序的啟動等操作的存儲。 映射模塊465也可與損耗均衡模塊260進(jìn)行通信,該損耗均衡模塊調(diào)整映射操作,以防止第 一固態(tài)非易失性存儲器462和第二固態(tài)非易失性存儲器464中的任意一個區(qū)域過早被用 壞。圖7A至圖7E描繪了由圖4A至圖5所示的控制器執(zhí)行的示例性步驟。圖8描繪 了由圖6所示的控制器執(zhí)行的示例性步驟?,F(xiàn)在將給出圖2至圖8所示的系統(tǒng)和方法的詳 細(xì)討論?,F(xiàn)在參照圖3,固態(tài)盤250包括控制器252以及第一固態(tài)非易失性存儲器204和第 二固態(tài)非易失性存儲器206。控制器252與主機(jī)220進(jìn)行通信。控制器252包括損耗均衡 模塊沈0以及第一存儲器接口 262和第二存儲器接口沈4。損耗均衡模塊260分別經(jīng)由第 一存儲器接口 262和第二存儲器接口 264與第一固態(tài)非易失性存儲器204和第二固態(tài)非易 失性存儲器206進(jìn)行通信。損耗均衡模塊260接收來自于主機(jī)220的邏輯地址。這些邏輯地址被轉(zhuǎn)換為與第 一存儲器接口 262和/或第二存儲器接口 264相關(guān)聯(lián)的物理地址。在寫操作期間,來自于 主機(jī)220的數(shù)據(jù)經(jīng)由第一存儲器接口 262被寫入第一固態(tài)非易失性存儲器204或者經(jīng)由第 二存儲器接口 264被寫入第二固態(tài)非易失性存儲器206。在讀操作期間,數(shù)據(jù)分別經(jīng)由第一 存儲器接口 262或第二存儲器接口 264從第一固態(tài)非易失性存儲器204或第二固態(tài)非易失 性存儲器206被提供至主機(jī)220。僅舉例說明,第一固態(tài)非易失性存儲器204可按每兆字節(jié)容量相對便宜并且因此 可具有大容量。第二固態(tài)非易失性存儲器206可具有更長的寫循環(huán)壽命并且可比第一固態(tài) 非易失性存儲器204更貴,并且因此可具有更小的容量。第一固態(tài)非易失性存儲器204和第二固態(tài)非易失性存儲器206可被寫入塊中和/ 或從塊中刪除。例如,為了刪除存儲器塊中的一個字節(jié),存儲器塊中的所有字節(jié)可能需要被 刪除。此外,為了寫存儲器塊中的一個字節(jié),存儲器塊中的所有字節(jié)可能需要被寫入。損耗 均衡模塊260可追蹤和存儲在第一固態(tài)非易失性存儲器204和第二固態(tài)非易失性存儲器206的存儲器塊上執(zhí)行的寫入和/或刪除操作的次數(shù)。損耗均衡模塊260可使用寫入和/或刪除循環(huán)計數(shù)的歸一化形式。例如,在第一 固態(tài)非易失性存儲器204中的存儲器塊上執(zhí)行的寫循環(huán)的次數(shù)可除以在第一固態(tài)非易失 性存儲器204中的存儲器塊可承受的寫循環(huán)的總數(shù)。第二固態(tài)非易失性存儲器206中的存 儲器塊的歸一化寫循環(huán)計數(shù)可通過將已經(jīng)在該存儲器塊上執(zhí)行的寫循環(huán)的次數(shù)除以該存 儲器塊可承受的寫循環(huán)的次數(shù)。損耗均衡模塊260可將新的數(shù)據(jù)寫入具有最低歸一化寫循環(huán)計數(shù)的存儲器塊。為 了避免分?jǐn)?shù)寫循環(huán)計數(shù),寫循環(huán)計數(shù)可通過將寫循環(huán)計數(shù)乘以基于各自的存儲器204和 206的寫循環(huán)壽命的常量的方式被歸一化。例如,在第一固態(tài)非易失性存儲器204的存儲器 塊上執(zhí)行的寫循環(huán)的次數(shù)可乘以一比率。該比率可為第二固態(tài)非易失性存儲器206的寫循 環(huán)壽命除以第一固態(tài)非易失性存儲器204的寫循環(huán)壽命。在各種實現(xiàn)中,寫循環(huán)計數(shù)可僅被部分歸一化。例如,第二固態(tài)非易失性存儲器 206的寫循環(huán)壽命可明顯高于第一固態(tài)非易失性存儲器204的循環(huán)壽命。在這種情況下,第 一固態(tài)非易失性存儲器204的寫循環(huán)計數(shù)可通過使用小于實際些循環(huán)壽命的寫循環(huán)壽命 來歸一化。這可防止損耗均衡模塊260嚴(yán)重地偏向于將地址分配給第二固態(tài)非易失性存儲 器 206。該歸一化可通過使用預(yù)定因子來執(zhí)行。例如,如果第一固態(tài)非易失性存儲器204 的寫循環(huán)壽命為1E6,并且對于固態(tài)盤250的給定應(yīng)用,第二固態(tài)非易失性存儲器206的必 要的寫循環(huán)壽命是1E9,那么歸一化可通過使用1,000的因子來執(zhí)行。該因子可為四舍五入 的估計而不是一個確切的計算。例如,當(dāng)各自的寫循環(huán)壽命為4. 5E6和6. 3E9時,因子1000 可被使用。損耗均衡模塊260可包括數(shù)據(jù)轉(zhuǎn)移模塊。在一個實現(xiàn)中,數(shù)據(jù)轉(zhuǎn)移模塊261確 定具有在預(yù)定時間周期內(nèi)保持不變的存儲數(shù)據(jù)的第一存儲器塊。該存儲數(shù)據(jù)可被稱作靜態(tài) 數(shù)據(jù)。靜態(tài)數(shù)據(jù)可被移動至存儲器中已經(jīng)經(jīng)歷了比第一存儲器塊更頻繁的寫循環(huán)的第二存 儲器塊。損耗均衡模塊260可將最初被映射至第一存儲器塊的物理地址的邏輯地址映射至 第二存儲器塊的物理地址。因為靜態(tài)數(shù)據(jù)現(xiàn)在被存儲在第二存儲器塊中,因此第二存儲器 塊可經(jīng)歷更少的寫循環(huán)。此外,靜態(tài)數(shù)據(jù)可從第二固態(tài)非易失性存儲器206轉(zhuǎn)移至第一固態(tài)非易失性存儲 器204。例如,數(shù)據(jù)轉(zhuǎn)移模塊261可確定第二固態(tài)非易失性存儲器206的最少使用的存儲器 塊(LUB)。如果在預(yù)定時期內(nèi)在存儲器塊上執(zhí)行的寫操作的次數(shù)小于或等于預(yù)定閥值,那 么該存儲器塊被稱作LUB。當(dāng)?shù)诙虘B(tài)非易失性存儲器206中的可使用的或可利用的存儲 器的量減小至預(yù)定閥值,那么損耗均衡模塊260可將LUB映射至第一固態(tài)非易失性存儲器 204的存儲器塊。有時,在第一固態(tài)非易失性存儲器204的第一存儲器塊上執(zhí)行的寫操作的次數(shù)可 超出預(yù)定閥值。損耗均衡模塊260可將最初被映射至第一存儲器塊的邏輯地址偏離映射至 第二固態(tài)非易失性存儲器206的第二存儲器塊,從而減小第一固態(tài)非易失性存儲器204上 的損耗?,F(xiàn)在參照圖4A,固態(tài)盤300包括與主機(jī)220連接的控制器302。控制器302包括 損耗均衡模塊260、寫監(jiān)控模塊306以及第一存儲器接口 262和第二存儲器接口沈4。寫監(jiān)控模塊306監(jiān)控從主機(jī)220處接收到的邏輯地址。寫監(jiān)控模塊306也可接收對是讀取還是 寫入操作正在發(fā)生進(jìn)行指示的控制信號。此外,通過測量數(shù)據(jù)被寫入邏輯地址的頻率的方 式,寫監(jiān)控模塊306追蹤數(shù)據(jù)被頻繁寫入的邏輯地址。該信息被提供至損耗均衡模塊沈0, 其將邏輯地址偏向如第二固態(tài)非易失性存儲器206的物理地址?,F(xiàn)在參照圖4B,固態(tài)盤350包括與主機(jī)220相連的控制器352??刂破?52包括 損耗均衡模塊260、寫映射模塊356以及第一存儲器接口 262和第二存儲器接口沈4。寫映 射模塊356接收來自于主機(jī)220的、指示將被更頻繁地寫入的邏輯地址的地址信息。該信 息被提供給損耗均衡模塊260,其將邏輯地址偏向第二固態(tài)非易失性存儲器206。寫映射模塊356也可包括與圖4A的寫監(jiān)控模塊306相似的功能。因此,寫映射模 塊356可基于測量的寫頻率數(shù)據(jù)更新存儲的寫頻率數(shù)據(jù)。此外,寫映射模塊356可確定未 由主機(jī)220提供的邏輯地址的寫頻率。在一個實現(xiàn)中,即使邏輯地址還未在預(yù)定時期內(nèi)被 存取,寫頻率數(shù)據(jù)可被調(diào)節(jié)。損耗均衡模塊260可存儲與標(biāo)記為被頻繁寫入到第二固態(tài)非 易失性存儲器206中的邏輯地址相應(yīng)的所有數(shù)據(jù)。如果第二固態(tài)非易失性存儲器206已滿,那么寫操作可被指定給第一固態(tài)非易失 性存儲器204,反之亦然。數(shù)據(jù)也可從第二固態(tài)非易失性存儲器206處被重新映射和移動 至第一固態(tài)非易失性存儲器204,從而在第二固態(tài)非易失性存儲器206中創(chuàng)建空間,反之亦 然。可選擇地,當(dāng)?shù)诙虘B(tài)非易失性存儲器206或第一固態(tài)非易失性存儲器204的損耗水 平大于或等于預(yù)定閥值時,數(shù)據(jù)可被單獨映射至第一固態(tài)非易失性存儲器204或第二固態(tài) 非易失性存儲器206。應(yīng)該注意到,第一固態(tài)非易失性存儲器204和第二固態(tài)非易失性存儲 器206的損耗水平的預(yù)定閥值可為相同的或不同的。此外,預(yù)定閥值可在不同的時間點處 變化。例如,一旦某些寫操作已經(jīng)在第一固態(tài)非易失性存儲器204上執(zhí)行了,那么預(yù)定閥值 可被調(diào)節(jié),以將所執(zhí)行的寫操作考慮在內(nèi)。損耗均衡模塊260也可實現(xiàn)寫監(jiān)控模塊306和寫映射模塊356。此后,損耗均衡模 塊260也可包括寫監(jiān)控模塊306和寫映射模塊356?,F(xiàn)在參照圖5,固態(tài)盤400包括與主機(jī)220相連的控制器402。控制器402包括損 耗均衡模塊260、劣化測試模塊406以及第一存儲器接口 262和第二存儲器接口沈4。劣化 測試模塊406測試第一固態(tài)非易失性存儲器204和第二固態(tài)非易失性存儲器206以確定它 們的存儲能力是否已經(jīng)劣化。在各種實現(xiàn)中,劣化測試模塊406可僅測試第一固態(tài)非易失性存儲器204,因為第 一固態(tài)非易失性存儲器204(在一個實現(xiàn)中)的寫循環(huán)壽命小于第二固態(tài)非易失性存儲器 206的寫循環(huán)壽命。劣化測試模塊406可周期地測試劣化。劣化測試模塊406可等待不活 動周期,在該時間點處,劣化測試模塊406可給第一存儲器接口 262和/或第二存儲器接口 264提供地址和數(shù)據(jù)。劣化測試模塊406可給第一固態(tài)非易失性存儲器204和/或第二固態(tài)非易失性存 儲器206的所選區(qū)域?qū)憯?shù)據(jù)并且然后讀取數(shù)據(jù)。然后,劣化測試模塊406可將讀取數(shù)據(jù)與 寫入數(shù)據(jù)進(jìn)行比較。此外,劣化測試模塊406可讀取在劣化測試的前一些迭代中被寫入的 數(shù)據(jù)??蛇x擇地,劣化測試模塊406可在第一次和第二次時將相同的數(shù)據(jù)寫入相同的物 理地址。在兩個時間中的每一個時,劣化測試模塊406可讀回寫入的數(shù)據(jù)。劣化測試模塊406可通過將在兩個時間時讀回的數(shù)據(jù)進(jìn)行比較或者通過將第二次時讀回的數(shù)據(jù)與寫入的 數(shù)據(jù)進(jìn)行比較的方式確定物理地址的劣化值。損耗均衡模塊260可基于通過劣化測試模塊406測量的劣化值來調(diào)整其映射。例 如,劣化測試模塊406可基于劣化量估計存儲器塊的最大寫循環(huán)計數(shù)。然后,損耗均衡模塊 260可將該最大寫循環(huán)計數(shù)用于歸一化??蛇x擇地,損耗均衡模塊260可使用存儲器塊剩余的寫循環(huán)的次數(shù)以作出分配決 定。如果固態(tài)非易失性存儲器204和固態(tài)非易失性存儲器206中的一個達(dá)到其使用壽命 (例如預(yù)定閥值)的最后,那么損耗均衡模塊260可將所有新的寫入分配給固態(tài)非易失性 存儲器204和固態(tài)非易失性存儲器206中的另一個。損耗均衡模塊260也可實現(xiàn)劣化測試模塊406。此后,損耗均衡模塊260包括劣化 測試模塊406?,F(xiàn)在參照圖6,具有更快的存取時間的小的固態(tài)非易失性存儲器可與具有更慢的 存取時間的大的固態(tài)非易失性存儲器相結(jié)合。固態(tài)盤450可包括控制器460、第一固態(tài)非 易失性存儲器462和第二固態(tài)非易失性存儲器464??刂破?60與主機(jī)480連接??刂破?460可包括第一存儲器接口 472和第二存儲器接口 474。第一固態(tài)非易失性存儲器462可 為便宜的并且可具有高存儲容量和高寫循環(huán)壽命,但具有較低的讀取/寫入速度(即存取 時間)。第二固態(tài)非易失性存儲器464可具有更小的存儲容量、可更貴,并且可具有比第一 固態(tài)非易失性存儲器462更高的寫循環(huán)壽命和更快的存取時間。第二固態(tài)非易失性存儲器464可具有比第一固態(tài)非易失性存儲器462更短的寫存 取時間、讀存取時間、刪除時間、編程時間或累積存取時間。因此,第二固態(tài)非易失性存儲器 464可被用于緩存數(shù)據(jù)??刂破?60可包括損耗均衡模塊260和映射模塊465。損耗均衡 模塊260也可實現(xiàn)映射模塊。映射模塊465可基于第一固態(tài)非易失性存儲器462和第二固 態(tài)非易失性存儲器464的存取時間和/或存儲容量將邏輯地址映射至第一固態(tài)非易失性存 儲器462和第二固態(tài)非易失性存儲器464中的一個的物理地址。更具體地說,映射模塊可接收與數(shù)據(jù)可被寫入邏輯地址時的頻率和存取時間有關(guān) 的、來自于主機(jī)220的數(shù)據(jù)。映射模塊465可將比其它邏輯地址更頻繁和/或快速地被寫 的邏輯地址映射至第二固態(tài)非易失性存儲器464的物理地址。所有其它邏輯地址可被映射 至第一非易失性存儲器462的物理地址。實際的寫頻率存取時間可通過測量數(shù)據(jù)被寫入時 的頻率和/或存取時間的方式被更新。通過這種方式,映射模塊465可使在讀取/寫入/ 刪除操作期間對固態(tài)盤450進(jìn)行的所有存取的整個存取時間最小化。根據(jù)由主機(jī)220執(zhí)行的應(yīng)用,當(dāng)映射模塊465將邏輯地址映射至第一固態(tài)非易失 性存儲器462和第二固態(tài)非易失性存儲器464中的一個時,它可考慮額外的因素。這些因 素可包括但不局限于正在被寫的存儲器塊的長度以及存儲器塊需要被寫入的存取時間。現(xiàn)在參照圖7A至圖7E,其示出了通過使用具有不同寫循環(huán)壽命和存儲容量的第 一 NVS存儲器和第二 NVS存儲器提供混合非易失性固態(tài)(nonvolatile solid-state,NVS) 存儲器系統(tǒng)的方法500。第一 NVS存儲器具有比第二 NVS存儲器更低的寫循環(huán)壽命和更高 的容量。在圖7A中,方法500在步驟502處開始。在步驟504中,控制從主機(jī)接收數(shù)據(jù)將 被寫的邏輯地址的寫頻率。在步驟506中,控制將具有低寫頻率(例如具有小于預(yù)定閥值的寫頻率)的邏輯地址映射至第一 NVS存儲器。在步驟508中,控制將具有高寫頻率(例 如具有大于預(yù)定閥值的寫頻率)的邏輯地址映射至第二 NVS存儲器。在步驟510中,控制根據(jù)步驟506和508中產(chǎn)生的映射將數(shù)據(jù)寫入第一和/或第 二 NVS存儲器。在步驟512中,控制測量數(shù)據(jù)實際上被寫入邏輯地址的實際寫頻率并對映 射進(jìn)行更新。在圖7B中,在步驟514中,控制判斷執(zhí)行數(shù)據(jù)移動分析的時間是否已經(jīng)到達(dá)。如 果步驟514的結(jié)果為否,那么在步驟516中控制判斷執(zhí)行劣化分析的時間已經(jīng)到達(dá)。如果 步驟516的結(jié)果為否,那么在步驟518中控制判斷執(zhí)行損耗水平分析的時間已經(jīng)到達(dá)。如 果步驟514的結(jié)果為否,那么控制返回至步驟510。在圖7C中,當(dāng)步驟514的結(jié)果為真時,在步驟520中,控制判斷在預(yù)定時間內(nèi)第一 NVS存儲器的第一存儲器塊的寫操作的次數(shù)是否大于或等于預(yù)定閥值。如果步驟520的結(jié) 果為否,那么控制返回至步驟516。如果步驟520的結(jié)果為真,那么在步驟522中控制將與 第一存儲器塊對應(yīng)的邏輯地址映射至第二 NVS存儲器的第二存儲器塊。在步驟5M中,控制確定第二 NVS存儲器中可利用的存儲器是否小于預(yù)定閥值。如 果步驟524的結(jié)果為否,那么控制返回至步驟516。如果步驟524的結(jié)果為真,那么在步驟 526中控制確定第二 NVS存儲器的存儲器塊是LUB。在步驟5 中,控制將與LUB相應(yīng)的邏 輯地址映射至第一 NVS存儲器的存儲器塊,并且控制返回至步驟516。在圖7D中,當(dāng)步驟516的結(jié)果為真時,在步驟530中,控制在第一時間將數(shù)據(jù)寫入 物理地址。在步驟532中,控制從該物理地址處讀回數(shù)據(jù)。在步驟534中,控制在第二時間 (例如在第一時間之后的預(yù)定時間之后)將數(shù)據(jù)寫入物理地址。在步驟536中,控制從該 物理地址處讀回數(shù)據(jù)??刂茖⒃诓襟E532中讀回的數(shù)據(jù)與在步驟536中讀回的數(shù)據(jù)進(jìn)行比 較,并且在步驟538中產(chǎn)生物理地址的劣化值。在步驟MO中,控制更新映射,并且控制返 回至步驟518。在圖7E中,當(dāng)步驟518的結(jié)果為真時,在步驟542中,控制分別基于在第一存儲器 和第二存儲器上執(zhí)行的寫操作的次數(shù)以及第一存儲器和第二存儲器的額定寫循環(huán)壽命產(chǎn) 生第一 NVS存儲器和第二 NVS存儲器的損耗水平??刂圃诓襟E544中確定第二 NVS存儲器 的損耗水平是否大于預(yù)定閥值。如果步驟M4的結(jié)果為真,那么在步驟M6中控制將所有 邏輯存儲器塊映射至第一 NVS存儲器的物理存儲器塊,并且控制返回至步驟510。如果步驟M4的結(jié)果為否,那么控制在步驟M8中確定第一 NVS存儲器的損耗水 平是否大于預(yù)定閥值。如果步驟M8的結(jié)果為真,那么在步驟550中控制將所有邏輯存儲 器塊映射至第二 NVS存儲器的物理存儲器塊,并且控制返回至步驟510。如果步驟548的結(jié) 果為否,那么控制返回至步驟510?,F(xiàn)在參照圖8,其示出了用于提供通過使用具有不同的存取時間和存儲容量的第 一NVS存儲器和第二NVS存儲器緩存數(shù)據(jù)的混合非易失性固態(tài)(NVQ存儲系統(tǒng)的方法600。 第一 NVS存儲器具有比第二 NVS存儲器更高的存取時間和更高的容量。第一 NVS存儲器和 第二 NVS存儲器具有高寫循環(huán)壽命。方法600在步驟602處開始。在步驟604中,控制接收與用于將數(shù)據(jù)寫入來自于 主機(jī)的邏輯地址所需的寫頻率和存取時間有關(guān)的數(shù)據(jù)。在步驟606中,控制將具有低寫頻 率(例如具有小于預(yù)定閥值的寫頻率)和/或需要更慢的存取時間的邏輯地址映射至第一 NVS存儲器。在步驟606中,控制將具有高寫頻率(例如具有大于預(yù)定閥值的寫頻率) 和/或需要更快的存取時間的邏輯地址映射至第二 NVS存儲器。在步驟608中,控制將具 有低寫頻率(例如具有小于預(yù)定閥值的寫頻率)和/或需要更低的存取時間的邏輯地址 映射至第一 NVS存儲器。在步驟610中,控制根據(jù)在步驟606和608中產(chǎn)生的映射將數(shù)據(jù)寫入第一和/或 第二 NVS存儲器。在步驟612中,控制測量數(shù)據(jù)實際上被寫入邏輯地址時的實際寫頻率和/ 或?qū)嶋H存取時間并且對映射進(jìn)行更新。在步驟614中,控制執(zhí)行如圖7A至圖7E所示的方 法500的步驟514處開始的步驟。根據(jù)本公開的原則的損耗均衡模塊可確定一個或多個非易失性半導(dǎo)體存儲器的 每個存儲器塊的損耗水平。術(shù)語存儲器塊可指必須被一起寫和/或刪除的存儲器單元組。 僅為了討論的目的,術(shù)語存儲器塊將被用于被一起刪除的存儲器單元組,并且存儲器單元 的損耗水平將基于已經(jīng)經(jīng)受的刪除循環(huán)的次數(shù)。盡管當(dāng)刪除被發(fā)起時單個存儲器單元可能還未被編程并且因此可能未經(jīng)歷盡同 樣多的損耗,但是存儲器塊中的存儲器單元將經(jīng)歷相同次數(shù)的刪除。然而,損耗均衡模塊可 假設(shè)存儲器塊的存儲器單元的損耗水平可通過存儲器塊已經(jīng)經(jīng)歷的刪除循環(huán)的次數(shù)來估 計。損耗均衡模塊可追蹤第一存儲器和第二存儲器的每個存儲器塊經(jīng)歷的刪除的次 數(shù)。例如,這些數(shù)字可被存儲在第一和/或第二存儲器的某一區(qū)域中、存儲在損耗均衡模塊 的獨立工作存儲器中或具有它們各自的存儲器塊。僅舉例說明,未用于用戶數(shù)據(jù)的存儲器 塊的預(yù)定區(qū)域可被用于對存儲器塊已經(jīng)被刪除的次數(shù)的總數(shù)進(jìn)行存儲。當(dāng)存儲器塊將被刪 除時,損耗均衡模塊可讀取該值、增加該值,并且在存儲器塊已經(jīng)被刪除之后將遞增的值寫 入存儲器塊中。在同質(zhì)存儲器結(jié)構(gòu)的情況下,刪除次數(shù)可被用作存儲器塊的損耗水平。然而,第一 存儲器和第二存儲器可具有不同的壽命,這意味著每個存儲器單元可承受的刪除次數(shù)是不 同的。在各種實現(xiàn)中,第二存儲器具有比第一存儲器更長的壽命。因此,在第二存儲器中每 個存儲器塊可承受的刪除次數(shù)比在第一存儲器中更大。因此,在存儲器塊上執(zhí)行的刪除次數(shù)可能不是第一存儲器的存儲器塊與第二存儲 器的存儲器塊之間的合適比較。為了實現(xiàn)合適的比較,刪除計數(shù)可被歸一化。一種歸一化 的方式是用刪除計數(shù)除以該存儲器中的存儲器塊被期望能夠承受的刪除計數(shù)的總數(shù)。僅舉 例說明,第一存儲器具有10,000的寫循環(huán)壽命,而第二存儲器具有100,000的寫循環(huán)壽命。然后,在第一存儲器中已經(jīng)被刪除1,000次的存儲器塊將具有1/10的歸一化損耗 水平,而在第二存儲器中已經(jīng)被刪除1,000次的存儲器塊將具有1/100的歸一化損耗水平。 一旦損耗水平已經(jīng)被歸一化,那么損耗均衡算法可在第一存儲器和第二存儲器的所有存儲 器塊中被利用,就好像所有的存儲器塊形成了具有單個寫循環(huán)壽命的單個存儲器。除非另 外注明,本文所用的損耗水平是歸一化的損耗水平。另一種避免分?jǐn)?shù)數(shù)值的歸一化方式是用第一存儲器(具有更低的寫循環(huán)壽 命)中的存儲器塊的刪除計數(shù)乘以寫循環(huán)壽命的比率。在當(dāng)前的實施例中,比率為 10 (100, 000/10, 000)。然后,在第一存儲器中的已經(jīng)被刪除1,000次的存儲器塊將具有 10, 000的歸一化損耗水平,而在第二存儲器中的已經(jīng)被刪除1,000次的存儲器塊將具有1,000的歸一化損耗水平。當(dāng)邏輯地址的寫請求到達(dá)損耗均衡模塊時,損耗均衡模塊可確定邏輯地址是否已 經(jīng)被映射至物理地址。如果是,那么損耗均衡模塊可將寫導(dǎo)向該物理地址。如果寫將要求 存儲器塊的刪除,那么損耗均衡模塊可確定是否存在具有更低的損耗水平的任何未使用的 存儲器塊。如果有,那么損耗均衡模塊可將寫導(dǎo)向具有最低損耗水平的未使用的存儲器塊。對于還未被映射的邏輯地址的寫請求,損耗均衡模塊可將邏輯地址映射至具有最 低損耗水平的未使用的存儲器塊。如果損耗均衡模塊預(yù)期該邏輯地址將相對不頻繁被寫, 那么損耗均衡模塊可將邏輯地址映射至具有最高損耗水平的未使用的存儲器塊。當(dāng)損耗均衡模塊具有用于估計存取頻率的良好數(shù)據(jù)時,損耗均衡模塊可將來自于 使用的存儲器塊的數(shù)據(jù)進(jìn)行移動,以釋放該存儲器塊,用于到來的寫操作。按照這種方式, 被相對頻繁存取的存儲器塊的到來的寫操作可被寫到具有低損耗水平的存儲器塊。并且, 被相對不頻繁存取的存儲器塊的到來寫操作可被寫到具有高損耗水平的存儲器塊。被移動 的數(shù)據(jù)可被放置在未使用的存儲器塊中,其可基于移動的數(shù)據(jù)期望被再寫的頻率被選擇。在不同的時候,例如周期地,損耗均衡模塊可分析存儲器塊的損耗水平,并且將 相對頻繁地再寫的邏輯地址重新映射至具有低損耗水平的存儲器塊。此外,損耗均衡模塊 可將相對不頻繁地再寫的邏輯地址重新映射至具有高損耗水平的存儲器塊,其被稱作靜態(tài) 數(shù)據(jù)移動。重新映射可涉及交換兩個存儲器塊中的數(shù)據(jù)。在交換期間,來自于存儲器塊中 的一個的數(shù)據(jù)可被存儲在未使用的存儲器塊中,或者在臨時存儲中。損耗均衡模塊也可維持已經(jīng)超越了它們的寫循環(huán)壽命的存儲器塊的列表。沒有新 的數(shù)據(jù)將被寫入這些存儲器塊,并且先前被存儲在那些存儲器塊中的數(shù)據(jù)被寫入其它存儲 器塊。盡管損耗均衡模塊的目的是沒有存儲器塊先于其它存儲器塊被用壞,但是在現(xiàn)實環(huán) 境中,一些存儲器塊可被過早地用壞。確定和移除不可靠的存儲器塊允許在固態(tài)盤不可使 用之前,剩余存儲器塊的整個壽命將被使用。應(yīng)該了解到,雖然為了舉例說明的目的,本發(fā)明描述了第一固態(tài)非易失性存儲器 204和第二固態(tài)非易失性存儲器206,但是本公開的教導(dǎo)也可被應(yīng)用于其它類型的存儲器。 此外,這些存儲器可以不被限制于單個模塊。例如,本公開的教導(dǎo)可被應(yīng)用于單個存儲器芯 片或多個存儲器芯片中的存儲器區(qū)域。根據(jù)本公開的教導(dǎo),每個存儲器區(qū)域可被用于存儲 數(shù)據(jù)。圖9示出了系統(tǒng)900。系統(tǒng)900可為存儲數(shù)據(jù)的任意設(shè)備,例如計算機(jī)、機(jī)頂盒, 手機(jī)(或其它類型的無線手持設(shè)備),等等。如前所述,系統(tǒng)900包括用于存儲數(shù)據(jù)的固態(tài) 盤 200。圖10示出了根據(jù)本公開的示例性的固態(tài)存儲系統(tǒng)。存儲系統(tǒng)包括與主機(jī)1005進(jìn) 行通信的固態(tài)盤1000。固態(tài)盤可包括控制器1010、第一固態(tài)非易失性存儲器1001和第二 固態(tài)非易失性存儲器1002。僅舉例說明,第一固態(tài)非易失性存儲器1001可包括高持久性 (即高寫循環(huán)壽命)存儲器設(shè)備,例如單層單元(SLC)閃存芯片。與第二固態(tài)非易失性 存儲器1002相比,第一固態(tài)非易失性存儲器1001可更加昂貴并且具有更低的容量(和/ 或密度),第二固態(tài)非易失性存儲器1002可包括更低的持久性和/或更高的容量(和/或 密度)存儲設(shè)備,例如多層單元(MLC)閃存芯片。按照這種方式,固態(tài)盤1000可提供對持 久性水平、容量和成本進(jìn)行平衡的存儲系統(tǒng)。
控制器1010可包括用于分別連接第一固態(tài)非易失性存儲器和第二固態(tài)非易失性 存儲器的第一存儲器接口 1011和第二存儲器接口 1012。此外,控制器1010可包括映射模 塊1013和疲勞管理模塊1014,用于將從主機(jī)1005接收到的邏輯地址映射至第一固態(tài)非易 失性存儲器1001和第二固態(tài)非易失性存儲器1002中存在的物理地址。在寫操作期間,來 自于主機(jī)1005的數(shù)據(jù)經(jīng)由第一存儲器接口 1011被寫入第一固態(tài)非易失性存儲器1001或 者經(jīng)由第二存儲器接口 1012被寫入第二固態(tài)非易失性存儲器1002。在讀操作期間,數(shù)據(jù)分 別經(jīng)由第一存儲器接口 1011或第二存儲器接口 1012從第一固態(tài)非易失性存儲器1001或 第二固態(tài)非易失性存儲器1002被提供至主機(jī)1005。映射模塊1013和疲勞管理模塊1014可確定一具體的邏輯地址將被映射至第一固 態(tài)非易失性存儲器1001或第二固態(tài)非易失性存儲器1002中的哪一個。疲勞管理模塊1014 也可包含映射模塊,以使它執(zhí)行映射模塊1013和疲勞管理模塊1014 二者的功能。通常,疲勞管理模塊1014監(jiān)控從主機(jī)1005處接收到的邏輯地址的寫操作的次數(shù) 和/或頻率。邏輯地址可標(biāo)識一個或多個相應(yīng)的存儲器塊。疲勞管理模塊1014將最頻繁 寫的邏輯地址映射至位于具有更高持久性的存儲器中的物理地址。在實現(xiàn)該目的時,疲勞 管理模塊1014可產(chǎn)生從主機(jī)1005處接收到的邏輯地址中的每一個的寫頻率等級。寫頻率 等級可包括按照每個邏輯地址的寫次數(shù)的順序的整組邏輯地址??蛇x擇地,寫頻率等級可 包括在預(yù)定時期內(nèi)每個邏輯地址的寫操作的次數(shù)。使用預(yù)定時期允許具有高數(shù)量的總的寫 操作的、但是不再被頻繁地寫的邏輯地址以從被指定為高頻地址變?yōu)榈皖l地址。為了產(chǎn)生寫頻率等級,疲勞管理模塊1014可保持主機(jī)1005請求寫操作的每個邏 輯地址的寫計數(shù)。當(dāng)固態(tài)盤1000第一次被使用時,例如當(dāng)操作系統(tǒng)第一次被初始化時, 或者在存在交換空間再定義的重新格式化之后,疲勞管理模塊1014和映射模塊1013可首 先寫入更高持久性的非易失性存儲器,其在所示出的實施例中是第一固態(tài)非易失性存儲器 1001。在預(yù)定百分比或所有的第一固態(tài)非易失性存儲器1001的可用物理地址被填充之后, 下一個寫入的邏輯地址可被映射至更低持久性的非易失性存儲器。一旦更高持久性的存儲 器被填充至某一閥值并且更低持久性的存儲器開始被寫入時,疲勞管理模塊1014將操作 來管理對兩個存儲器的映射。換句話說,最頻繁地寫入的邏輯地址將被映射至更高持久性 的存儲器中的物理地址,而最不頻繁寫入的邏輯地址將被映射至更低持久性的存儲器。在一個實施例中,疲勞管理模塊1014根據(jù)已經(jīng)對邏輯地址執(zhí)行的寫操作的總數(shù) 來對邏輯地址進(jìn)行排序。等級最高的邏輯地址將被映射至更高持久性的存儲器中的物理地 址,而剩余的邏輯地址將被映射至更低持久性的存儲器中的物理地址??蛇x擇地,邏輯地址 的等級可改為基于在預(yù)定時期內(nèi)寫操作的次數(shù)。在該實施例中,在一時間周期內(nèi)還未被寫 入的大量寫入的邏輯地址可排在最近被更頻繁地寫入的邏輯地址之后。因此,與更低持久 性的存儲器中的邏輯地址相比,被映射至更高持久性的存儲器的邏輯地址可具有與它們相 關(guān)聯(lián)的更低總數(shù)的寫操作。在又一個實施例中,可利用總寫操作與每周期寫等級的組合。在另一個示例性的實施方式中,邏輯地址的寫頻率可通過從邏輯地址上一次被寫 入開始經(jīng)過的時間周期來確定。按照這種方式,寫頻率等級可通過將最近寫入的邏輯地址 放置在等級排列的頂部來確定,而具有從被寫入開始最長時間段的邏輯地址將位于底部。 可設(shè)想到,經(jīng)過的時間可被存儲,使得不會在每次固態(tài)盤1000通電時發(fā)生邏輯地址的重新 等級排列。在又一個實施方式中,特定邏輯地址的寫循環(huán)之間經(jīng)過的時間的平均值可被用于產(chǎn)生每個邏輯地址的寫頻率等級。因此,變得不頻繁被寫入的先前被頻繁寫入的邏輯地 址將最終轉(zhuǎn)換為更低寫頻率等級,并且因此將被存儲在較低持久性的存儲器中。在又一個 實施方式中,寫循環(huán)之間經(jīng)過的時間的平均值可基于較低持久性的存儲器和較高持久性的 存儲器的寫循環(huán)壽命(或剩余寫循環(huán)壽命)來歸一化,如前面更完整地討論的。為了確定寫頻率,并且因此確定邏輯地址的寫頻率等級,每個邏輯地址的寫計數(shù) 的加權(quán)時間衰減平均值可根據(jù)下面的公式計算WCA (n+1) = WCA (η) * (l_a)+WE (η) *a,(1)其中WCA(n)是時步η處的時均寫計數(shù);WE(n)是時步η處的實際寫事件,如果寫 發(fā)生在時步η處時WE (η)等于1,否則等于0 ;“a”是被選擇為具有合適的時間衰減的常量, 其中“a”有時被稱作“攻擊率常量”,而(Ι-a)有時被稱作“衰減率常量”。可選擇地,兩個 參量系統(tǒng)可被使用,以使上面的公式1變?yōu)閃CA (n+1) = WCA (η) *d+WE (η) *a,(2)其中d是衰減率常量,而所有其它的變量與上面的相同。邏輯地址至第一存儲器中或第二存儲器中的任意一個中的物理地址的實際映射 可包括上述損耗均衡功能。因此,特定邏輯地址至第一存儲器或第二存儲器中的任意一個 的分配可通過疲勞管理模塊1014來確定,而所選存儲器中的具體物理地址可通過損耗均 衡模塊來確定,如前所述。現(xiàn)在參照圖11,其示出了根據(jù)本公開的包括針對存儲器中的每一個的獨立損耗均 衡模塊的示例性的固態(tài)存儲器系統(tǒng)。存儲系統(tǒng)包括與主機(jī)1205進(jìn)行通信的固態(tài)盤1200。固 態(tài)盤可包括控制器1210、第一固態(tài)非易失性存儲器1201和第二固態(tài)非易失性存儲器1202。 僅舉例說明,第一固態(tài)非易失性存儲器1201可包括高持久性(即高寫循環(huán)壽命)的存儲 器設(shè)備,例如單層單元(SLC)閃存芯片。與第二固態(tài)非易失性存儲器1202相比,第一固態(tài) 非易失性存儲器1201可更加昂貴并且具有更低的容量(和/或密度),第二固態(tài)非易失性 存儲器1202可包括更低持久性和/或更高容量(和/或密度)的存儲器設(shè)備,例如多層 單元(MLC)閃存芯片。按照這種方式,固態(tài)盤1200可提供對持久性水平、容量和成本進(jìn)行 平衡的存儲系統(tǒng)。控制器1210可包括分別用于連接第一固態(tài)非易失性存儲器和第二固態(tài)非易失性 存儲器的第一存儲器接口 1211和第二存儲器接口 1212。此外,控制器1210可包括映射模 塊1213和疲勞管理模塊1214,用于將從主機(jī)1205接收到的邏輯地址映射至第一固態(tài)非易 失性存儲器1201和第二固態(tài)非易失性存儲器1202中存在的物理地址。在寫操作期間,來 自于主機(jī)1205的數(shù)據(jù)經(jīng)由第一存儲器接口 1211寫入第一固態(tài)非易失性存儲器1201或者 經(jīng)由第二存儲器接口 1212寫入第二固態(tài)非易失性存儲器1202。在讀操作期間,數(shù)據(jù)分別經(jīng) 由第一存儲器接口 1211或第二存儲器接口 1212從第一固態(tài)非易失性存儲器1201或第二 固態(tài)非易失性存儲器1202被提供至主機(jī)1205。映射模塊1213和疲勞管理模塊1214可確定具體的邏輯地址將被映射至第一固態(tài) 非易失性存儲器1201或第二固態(tài)非易失性存儲器1202中的哪一個。疲勞管理模塊1214 也可包含映射模塊,以使它執(zhí)行映射模塊1213和疲勞管理模塊1214 二者的功能。映射模 塊1213也可包括第一損耗均衡模塊1215和第二損耗均衡模塊1216??蛇x擇地,第一損耗 均衡模塊1215和第二損耗均衡模塊1216可被包含在疲勞管理模塊1214中,或者甚至可與映射模塊1213和疲勞管理模塊1214分離(未示出)。第一損耗均衡模塊1215和第二損耗均衡模塊1216可提供第一固態(tài)非易失性存儲 器1201和第二固態(tài)非易失性存儲器1202中的每一個內(nèi)的實際物理地址的獨立損耗水平。 如前所述,損耗均衡模塊的目的可為對其固態(tài)非易失性存儲器的所有區(qū)域內(nèi)的損耗進(jìn)行均 衡,以使沒有一個區(qū)域(或物理地址)先于存儲器內(nèi)的其余區(qū)域被用壞。第一固態(tài)非易失性 存儲器1201和第二固態(tài)非易失性存儲器1203中的每一個內(nèi)的塊頭區(qū)域(overhead area) 可被用于對存儲器內(nèi)的物理地址之間的數(shù)據(jù)進(jìn)行移動,其有時被稱作“垃圾回收”?,F(xiàn)在參照圖12,其示出了根據(jù)本公開的示例性的映射/寫頻率等級表800。映射 /寫頻率等級表800包括列802中的一列邏輯地址IA-LAn。對于每個邏輯地址LA1-LAn,總 的寫計數(shù)被監(jiān)控并且被保持在列804中。總的寫計數(shù)WC1-WCn包括分別被執(zhí)行至邏輯地址 LA1-LAn的寫的次數(shù)。在列806處,邏輯地址LA1-LAn的寫頻率等級WFR1-WFIin分別被存儲。 寫頻率等級WFR1-WFIin可以各種方式被確定,如前所述。邏輯地址LA1-LAn已經(jīng)被分別映射 至的物理地址PA1-PAn被存儲在列808中。必要時或者期望時,列804至列808被更新,以 使其中包含的信息是精確的和/或最新的。現(xiàn)在參照圖13,其示出了用于管理混合持久性固態(tài)存儲器設(shè)備的疲勞的示例性方 法1100。在該實施例中,第一存儲器具有比第二 NVS存儲器更高的持久性水平(或?qū)懷h(huán) 壽命)。方法1100從步驟1102處開始。在步驟1104處,控制接收將被寫入的邏輯地址 1130。在步驟1106處,控制確定所接收的邏輯地址1130的寫頻率?;谠诓襟E1106處確 定的寫頻率,在步驟1108處該邏輯地址1130的寫頻率等級被確定。在步驟1110處,將被寫入的邏輯地址1130的寫頻率等級與第一存儲器中存在的 最低寫頻率等級進(jìn)行比較。如果邏輯地址1130的寫頻率等級低于第一存儲器中存在的最 低寫頻率等級,那么在步驟1112處邏輯地址1130被映射至第二存儲器。在步驟1114處, 數(shù)據(jù)將根據(jù)映射被寫,其包括把將被寫入邏輯地址1130的數(shù)據(jù)寫入第二存儲器陣列。方法 1100在步驟1116處結(jié)束。然而,如果邏輯地址1130的寫頻率等級高于第一存儲器中存在的最低寫頻率等 級,那么方法進(jìn)入步驟1118。在步驟1118處,在第一存儲器中存在的具有最低寫頻率等級 的邏輯地址被改為映射至第二存儲器。在步驟1120處,在包含第一存儲器中的最低寫頻率 等級處的數(shù)據(jù)被移動至第二存儲器。然后,在步驟1122處,邏輯地址1130被映射至第一存 儲器。然后,方法1100進(jìn)入步驟1114,根據(jù)映射寫數(shù)據(jù)。方法1100在步驟1116處結(jié)束?,F(xiàn)在,本領(lǐng)域相關(guān)技術(shù)人員可根據(jù)前面的描述理解到,本公開的廣泛教導(dǎo)可以各 種形式實現(xiàn)。例如,上述方法的一個或多個步驟可按照不同的順序(或者同時)執(zhí)行并且 仍然實現(xiàn)期望的結(jié)果。因此,雖然本公開包含了具體的實施例,但是對于技術(shù)實踐者來說, 因為根據(jù)附圖、說明和以下的權(quán)利要求的學(xué)習(xí)將了解其它的修改,因此本公開的真實范圍 不應(yīng)該被局限于此。
權(quán)利要求
1.一種固態(tài)存儲系統(tǒng),包括第一非易失性半導(dǎo)體存儲器,其具有第一寫循環(huán)壽命和第一組物理地址;第二非易失性半導(dǎo)體存儲器,其具有第二寫循環(huán)壽命和第二組物理地址,其中所述第 一寫循環(huán)壽命大于所述第二寫循環(huán)壽命;以及疲勞管理模塊,用以產(chǎn)生用于多個邏輯地址的寫頻率等級;以及基于所述寫頻率等級,將所述多個邏輯地址中的每一個映射至所述第一組物理地址或 所述第二組物理地址中的物理地址。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中用于所述多個邏輯地址中的一個的所述寫頻率等 級是基于針對所述多個邏輯地址中的所述一個的寫操作的次數(shù)。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其中用于所述多個邏輯地址中的一個的所述寫頻率等 級是基于在預(yù)定時期內(nèi)針對所述多個邏輯地址中的所述一個的寫操作的次數(shù)。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中用于所述多個邏輯地址中的一個的所述寫頻率等 級是基于針對所述多個邏輯地址中的所述一個的時均寫計數(shù)。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其中所述時均寫計數(shù)是基于WCA (n+1) = WCA(η)*d+WE(η)*a,其中,WCA(η)是在時步η處的時均寫計數(shù);WE (η)是在時步η處的實際寫事件,以使如 果寫事件發(fā)生在時步η處時則WE (η)等于1,否則等于0 ;d是第一常量;以及a是第二常量。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其還包括損耗均衡模塊,其中所述損耗均衡模塊基于所述第一寫循環(huán)壽命產(chǎn)生針對所述第一非易失性半導(dǎo)體存儲器的第一損耗水平;和基于所述第二寫循環(huán)壽命產(chǎn)生針對所述第二非易失性半導(dǎo)體存儲器的第二損耗水平,其中,所述多個邏輯地址的映射還基于所述第一損耗水平和所述第二損耗水平。
7.根據(jù)權(quán)利要求1所述的系統(tǒng),其中被映射至所述第一非易失性半導(dǎo)體存儲器的邏輯 地址的最低寫額定頻率大于被映射至所述第二非易失性半導(dǎo)體存儲器的邏輯地址的最高 寫額定頻率。
8.一種用于固態(tài)存儲系統(tǒng)的疲勞管理方法,包括提供具有第一寫循環(huán)壽命和第一組物理地址的第一非易失性半導(dǎo)體存儲器;提供具有第二寫循環(huán)壽命和第二組物理地址的第二非易失性半導(dǎo)體存儲器,其中所述 第一寫循環(huán)壽命大于所述第二寫循環(huán)壽命;產(chǎn)生用于多個邏輯地址的寫頻率等級;和基于所述寫頻率等級將所述多個邏輯地址中的每一個映射至所述第一組物理地址或 所述第二組物理地址中的物理地址。
9.根據(jù)權(quán)利要求8所述的方法,其中所述多個邏輯地址中的一個的所述寫頻率等級是 基于所述多個邏輯地址中的所述一個的寫操作的次數(shù)。
10.根據(jù)權(quán)利要求8所述的方法,其中用于所述多個邏輯地址的一個的所述寫頻率等 級是基于在預(yù)定時期內(nèi)針對所述多個邏輯地址的所述一個的寫操作的次數(shù)。
11.根據(jù)權(quán)利要求8所述的方法,其中用于所述多個邏輯地址中的一個的所述寫頻率 等級是基于針對所述多個邏輯地址中的所述一個的時均寫計數(shù)。
12.根據(jù)權(quán)利要求11所述的方法,其中所述時均寫計數(shù)是基于 WCA (n+1) = WCA(η)*d+WE(η)*a,其中,WCA(η)是在時步η處的時均寫計數(shù);WE (η)是在時步η處的實際寫事件,以使如 果寫事件發(fā)生在時步η處時則WE (η)等于1,否則等于0 ;d是第一常量;以及a是第二常量。
13.根據(jù)權(quán)利要求8所述的方法,還包括基于所述第一寫循環(huán)壽命產(chǎn)生所述第一非易失性半導(dǎo)體存儲器的第一損耗水平;以及 基于所述第二寫循環(huán)壽命產(chǎn)生所述第二非易失性半導(dǎo)體存儲器的第二損耗水平, 其中,所述多個邏輯地址的映射還基于所述第一損耗水平和所述第二損耗水平。
14.根據(jù)權(quán)利要求8所述的方法,其中被映射至所述第一非易失性半導(dǎo)體存儲器的邏 輯地址的最低寫額定頻率大于被映射至所述第二非易失性半導(dǎo)體存儲器的邏輯地址的最 高寫額定頻率。
全文摘要
一種固態(tài)存儲系統(tǒng),其包括具有第一寫循環(huán)壽命和第一組物理地址的第一非易失性半導(dǎo)體存儲器和具有第二寫循環(huán)壽命和第二組物理地址的第二非易失性半導(dǎo)體存儲器。第一寫循環(huán)壽命大于第二寫循環(huán)壽命。該系統(tǒng)進(jìn)一步包括產(chǎn)生多個邏輯地址的寫頻率等級的疲勞管理模塊。該疲勞管理模塊基于寫頻率等級將多個邏輯地址中的每一個映射至第一組物理地址或第二組物理地址中的物理地址。
文檔編號G11C16/34GK102047341SQ200980107044
公開日2011年5月4日 申請日期2009年2月24日 優(yōu)先權(quán)日2008年2月29日
發(fā)明者潘塔斯·蘇塔迪嘉 申請人:馬維爾國際貿(mào)易有限公司