專利名稱:存儲設備的寫入擦除耐久壽命的制作方法
技術領域:
本發(fā)明涉及數據存儲設備,更具體地說,涉及存儲器管理系統(tǒng)以及通過數據放置、 垃圾收集和耗損平衡(wear-leveling)過程來改進基于閃存的固態(tài)驅動器(SDD)設備的寫入擦除耐久壽命的方法。
背景技術:
目前,基于NAND閃存的SSD設備被用作從筆記本電腦到企業(yè)存儲系統(tǒng)的計算機架構中的主要存儲設備。這些設備提供比旋轉式硬盤驅動器(HDD)好幾個量級的隨機I/O性能和存取延遲。此外,SSD顯著降低了功耗并極大地提高了穩(wěn)固性和防震性。NAND閃存按照塊來組織,其中每個塊包含固定數量的頁面并且塊是擦除操作的基本單位,而讀取和寫入以頁面的方式來處理。在可以將數據寫入塊中的頁面之前(以數據編程頁面),塊必須先被擦除。SSD利用較大的塊作為擦除單位以及較小的頁面作為讀取和寫入單位來實現“寫入放大(write amplification)”,其中在為來自主機系統(tǒng)的用戶寫入提供服務時,SSD必需執(zhí)行經常性內部管理寫入。NAND閃存具有有限的寫入擦除循環(huán)計數。一般而言,基于單層單元(SLC)的快閃芯片可承受105次程序擦除循環(huán),而基于多層單元(MLC)的快閃芯片可承受104次程序擦除循環(huán)。閃存例如出于性能原因使用寫入時重定位(relocate-onirite) ( S卩,不在位寫入(out-of-place write))。如果使用在位寫入(write-in-place),快閃會因為需要對被更新的數據的整個塊進行讀取、擦除和重新編程(即寫入)而呈現高延遲。不在位更新的管理涉及分配給每個用戶頁面寫入的邏輯塊地址(LBA)與是閃存內的物理頁面地址的物理塊地址(PBA)之間的映射。在寫入時重定位需要垃圾收集過程,因此導致性能因額外的讀取和寫入操作而降低。垃圾收集所導致的讀取和寫入操作的數量取決于塊利用率。閃存塊最后會因為越來越多的寫入擦除循環(huán)而用壞,直到無法被擦除或寫入為止。因此,耗損平衡技術用于耗盡盡可能多的塊的循環(huán)預算,以為盡可能多的用戶寫入提供服務(即,最大化耐久性)。當垃圾收集無法提供空閑塊時(稱作“耗損平衡不足”),雖然 SSD設備還有一些未使用的循環(huán)預算,但最終會報銷。不平均的閃存塊損耗主要是由于工作負荷的空間局限性。塊耗損的不平衡性會逐漸擴大。靜態(tài)耗損平衡通常用于處理此不平衡的耗損,方式是強迫冷數據(即不常被更新的數據)自新塊遷移到舊塊并釋放較新的塊以便持有熱數據。由于靜態(tài)耗損平衡所產生的寫入放大的增加取決于冷數據被移動的頻繁程度。除了用戶寫入之外,垃圾收集和耗損平衡亦會產生寫入操作,因此寫入擦除耐久壽命(可以以可服務的用戶寫入總數來衡量)取決于可用的總循環(huán)預算、寫入放大、以及由于耗損平衡不足而導致的最終未消耗的循環(huán)預笪弁。目前,耗損平衡已被視為提高基于閃存的SSD設備的耐久壽命的標準方法。然而, SSD設備的耐久壽命不僅取決于耗損平衡,而且還取決于數據放置和垃圾收集。
發(fā)明內容
本發(fā)明提供了一種通過數據放置、垃圾收集以及耗損平衡過程的組合提高基于閃存的SSD的寫入擦除耐久壽命的方法和系統(tǒng)。根據本發(fā)明的一個實施例,提供了一種用于計算機的存儲設備的存儲器管理系統(tǒng)。所述系統(tǒng)包含空閑塊數據結構,其包含多個供寫入的空閑存儲塊,所述空閑塊數據結構配置為根據塊寫入擦除耐久循環(huán)計數以預定順序排序所述空閑存儲塊。所述空閑塊數據結構還配置為分別地接收更新現有數據的新的用戶寫入請求以及重定位現有數據的重定位寫入請求,使得來自新的用戶寫入請求的用戶寫入數據被置于具有較低塊寫入擦除耐久循環(huán)計數的最新空閑存儲塊,而來自重定位請求的重定位數據被置于具有比所述最新空閑存儲塊的塊寫入擦除耐久循環(huán)計數高的塊寫入擦除耐久循環(huán)計數的最舊空閑存儲塊。所述系統(tǒng)還包含用戶寫入數據結構,配置為接收持有來自所述空閑塊數據結構的所述用戶寫入數據的用戶寫入存儲塊;重定位數據結構,配置為接收持有來自所述空閑塊數據結構的所述重定位數據的重定位存儲塊;以及垃圾收集池結構,配置為選擇所述用戶寫入存儲塊和重定位存儲塊中的至少一個以便擦除,其中選定塊被擦除后會被移動到所述空閑塊數據結構。根據本發(fā)明的另一個實施例,提供了一種用于計算機的存儲設備的存儲器管理系統(tǒng)。所述系統(tǒng)包含空閑塊數據結構,其包含多個供寫入的空閑存儲塊,所述空閑塊數據結構配置為根據塊寫入擦除耐久循環(huán)計數以預定順序排序所述空閑存儲塊。所述空閑塊數據結構還配置為接收更新現有數據的新的用戶寫入請求以及重定位現有數據的重定位寫入請求,使得來自新的用戶寫入請求的用戶寫入數據被置于具有較低塊寫入擦除耐久循環(huán)計數的最新空閑存儲塊,而來自重定位請求的重定位數據被置于具有比所述最新空閑存儲塊的塊寫入擦除耐久循環(huán)計數高的塊寫入擦除耐久循環(huán)計數的最舊空閑存儲塊。所述系統(tǒng)還包含延遲塊數據結構,配置為接收持有來自所述空閑塊數據結構的所述用戶寫入數據的存儲塊和持有來自所述空閑塊數據結構的所述重定位數據的存儲塊,以及延遲所述存儲塊以免被立即選為用于垃圾收集的候選存儲塊;以及垃圾收集池結構,配置為接收來自所述延遲塊數據結構的存儲塊,以及選擇所述存儲塊中的至少一個以便擦除,其中選定存儲塊被擦除后會被移動到所述空閑塊數據結構。根據本發(fā)明的另一個實施例,提供了一種管理計算機的存儲設備內的存儲塊的計算機實現的方法。所述方法包含根據塊寫入擦除耐久循環(huán)計數以預定順序維護用于寫入的空閑存儲塊,以及接收更新現有數據的新的用戶寫入請求以及重定位現有數據的重定位寫入請求;將來自所述新的用戶寫入請求的用戶寫入數據置于具有較低塊寫入擦除耐久循環(huán)計數的最新空閑存儲塊;將來自所述重定位寫入請求的重定位數據置于具有比所述最新空閑存儲塊的塊寫入擦除耐久循環(huán)計數高的塊寫入擦除耐久循環(huán)計數的最舊空閑存儲塊; 維護持有所述用戶寫入數據的用戶寫入存儲塊以及持有所述重定位數據的重定位存儲塊; 以及選擇所述用戶寫入存儲塊或所述重定位存儲塊中的至少一個以便擦除。根據本發(fā)明的另一個實施例,還提供了一種實施上述方法的計算機程序產品。通過本發(fā)明的技術實現了其它特征和優(yōu)點。在此詳細描述了本發(fā)明的其它實施例和方面并將它們視為要求保護的發(fā)明的一部份。參照以下描述和附圖可更好地了解本發(fā)明的優(yōu)點和特征。
在說明書結尾處的權利要求中具體指出并明確要求保護了被視為本發(fā)明的主題。從下面結合附圖的詳細說明,本發(fā)明的上述和其他特征和優(yōu)點是顯而易見的,這些附圖是圖1是示出可在本發(fā)明的實施例中實現的閃存管理系統(tǒng)的方塊圖;圖2是示出可在本發(fā)明的備選實施例中實現的閃存管理系統(tǒng)的方塊圖;圖3是示出可在本發(fā)明的實施例中實現的用于管理存儲設備內的存儲塊的方法的流程圖;以及圖4是可在本發(fā)明的實施例中實現的通用計算機的方塊圖。
具體實施例方式參照圖1,其中示出可在本發(fā)明的一個實施例中實現的閃存管理系統(tǒng)。本發(fā)明的一個實施例根據分離和預測,利用數據放置、垃圾收集以及耗損平衡過程來提高基于閃存的SSD設備的寫入擦除耐久壽命。系統(tǒng)10基于動態(tài)數據比靜態(tài)數據更快耗損塊的預測,盡可能將動態(tài)數據頁置于具有較低塊寫入擦除耐久循環(huán)計數(即,較高的剩余未消耗循環(huán)計數)的較新塊,以及將靜態(tài)數據頁置于較舊的塊,進而動態(tài)地將具有動態(tài)數據頁的塊與具有靜態(tài)數據頁(即,具有較少更新的頁面)的塊相分離。如圖1所示,提供了用于計算機的存儲設備的存儲器管理系統(tǒng)10(如圖4所示)。 系統(tǒng)10包含空閑塊數據結構12 ( S卩,空閑塊池),其包含多個供寫入的空閑存儲塊14??臻e塊池12基于塊寫入擦除耐久循環(huán)計數以預定順序排序空閑存儲塊14。例如,根據本發(fā)明的一個實施例,基于塊寫入擦除耐久循環(huán)計數以升序排序空閑存儲塊14,使得最左側的空閑存儲塊14具有最低的寫入擦除耐久循環(huán)計數,而最右側的空閑存儲塊14具有最高的寫入擦除耐久循環(huán)計數。換句話說,空閑存儲塊14基于塊寫入擦除耐久計數而從最新到最舊排序。根據本發(fā)明的一個實施例,空閑塊池12分別通過系統(tǒng)10的用戶接收新的用戶寫入請求,以更新現有數據,并通過垃圾收集過程(系統(tǒng)10內部)接收重定位寫入請求,以重定位現有數據。根據本發(fā)明的一個實施例,系統(tǒng)10將用戶寫入數據流與重定位數據流分離, 因為與用戶數據頁面相比,重定位數據頁面可被視為較“靜態(tài)”。根據本發(fā)明的一個實施例,如果系統(tǒng)10包含具有不同寫入擦除循環(huán)預算的塊,例如,如果存在混合的單層單元(SLC)與多層單元(MLC)快閃,則根據塊的剩余寫入擦除循環(huán)計數來組織空閑塊池12,將具有最高剩余(未消耗)寫入擦除循環(huán)計數的塊置于左側(即, 最新的塊)。此外,如圖1所示,系統(tǒng)10包含用戶寫入數據結構16( S卩,用戶寫入塊池)和重定位數據結構20(即,重定位塊池)。根據本發(fā)明的一個實施例,當最左側的空閑存儲塊14 被用戶寫入數據頁所填滿時,存儲塊14然后被從空閑塊池12移除,并被推入用戶寫入塊池 16。此外,當最右側的存儲塊14被重定位數據頁面所填滿時,其被從空閑塊池12移除,并被推入重定位塊池20。根據本發(fā)明的一個實施例,用戶寫入塊池16和重定位塊池20均可由數據結構管理,并且在當前實施例中,池由隊列數據結構管理,意味著新填滿的塊被置于每個隊列的尾端。因此,用戶寫入數據結構16接收持有來自空閑塊池12的用戶寫入數據頁的用戶寫入存儲塊18,而重定位塊池20接收持有來自空閑塊池12的重定位數據頁面的重定位存儲塊22 ( S卩,最終的存儲塊)。換句話說,根據本發(fā)明的一個實施例,用戶寫入數據頁被置于最新的塊,而重定位數據頁面被置于空閑塊池12中最舊的存儲塊。根據本發(fā)明的一個實施例,系統(tǒng)10還包含垃圾收集池結構對,垃圾收集池結構M 從來自用戶寫入塊池16或重定位塊池20的若干用戶寫入存儲塊18和重定位存儲塊22的組合中選擇至少一個存儲塊。根據本發(fā)明的一個實施例,存儲設備的快閃控制器可控制上述數據結構以及垃圾收集池結構M的功能。根據本發(fā)明的一個實施例,基于預定的選擇規(guī)則實現窗口式垃圾收集過程。垃圾收集過程通過監(jiān)視空閑塊池12中的空閑存儲塊14的數量來觸發(fā),以確保最低數量的空閑存儲塊14。垃圾收集過程在用戶寫入存儲塊18的窗口內自用戶寫入塊池16的最左側開始以及在重定位存儲塊20的窗口內自重定位塊池22的最左側開始查找存儲塊。根據本發(fā)明的一個實施例,選擇用于垃圾收集的塊可來自用戶寫入塊池16或重定位塊池20。根據本發(fā)明的一個實施例,垃圾收集過程可在具有s+t個塊的窗口內執(zhí)行,其中s個候選塊來自用戶寫入塊池16,而t個候選塊來自重定位塊池20,并且s個塊和t個塊來自每個數據結構16和20的開始位置,即最先進入池的那些塊。根據本發(fā)明的一個實施例,用戶寫入塊池16中s個候選塊的窗口大小可與重定位塊池20中t個候選塊的的窗口大小相等或不等。根據本發(fā)明的一個實施例,通過根據預定規(guī)則從s+t的垃圾收集窗口選擇一個塊以便回收來執(zhí)行垃圾收集過程。本發(fā)明的各實施例內可實施若干規(guī)則。例如,本發(fā)明的一個實施例基于以下規(guī)則來獲得良好的耗損平衡程度并同時維持高回收效率如果系統(tǒng)10內的所有塊具有Np個頁面且在垃圾收集時的平均剩余(未消耗)循環(huán)計數為a,則使用以下規(guī)則選擇第個塊用于垃圾收集,使得j* = arg max(fflj+Dj) for j = 0,· · ·,(s+t)_l其中W是適當的權重因子,取大于1的整數值,而Dj = max (Cj_A,0),以及其中Ij 是垃圾窗口中s+t個塊的第j個塊中無效數據頁的數量,其中j = 0,. . .,(s+t)-1,而Cj 代表各塊的剩余(未消耗)的耐久循環(huán)計數。根據本發(fā)明的一個實施例,可經由仿真選擇 W以最大化系統(tǒng)10的耐久壽命。選擇用于垃圾收集的塊后,垃圾收集首先讀取該塊中仍有效的所有數據頁面,并接著將這些頁面寫入另一塊。來自垃圾收集的寫入請求稱為重定位請求并且被置于最舊的空閑存儲塊14,如圖1所示。LBA至PBA的映射告知垃圾收集哪些數據頁有效或無效。當用戶更新數據頁時,該數據頁會變成無效并被寫入另一個位置。一旦選定塊的所有有效數據頁均被重定位,則選定塊被擦除。在成功擦除后,選定塊被從用戶寫入塊池16或重定位池20移除,并被放入空閑塊池12。窗口式垃圾收集過程的實施方式降低了寫入放大和耗損平衡不足,進而提高了基于閃存的存儲設備的寫入擦除耐久壽命。根據本發(fā)明的另一個實施例,可以更改來自用戶寫入塊池16和重定位塊池20的候選塊的數量。例如,如果系統(tǒng)10正忙于繁重的用戶寫入工作負荷,則可改變垃圾收集窗口以僅包含來自用戶寫入塊池16的塊,以便暫時將回收效率最大化。另一方面,當系統(tǒng)10空閑時,垃圾收集窗口可包含大多選自重定位塊池20的塊以及少數來自用戶寫入塊池16 的塊,由此加速耗損平衡過程。本發(fā)明并不限于圖1所示的系統(tǒng)并且可根據需求作變化。以下將參考圖2討論備選閃存管理。相較于圖1所示的單獨管理用戶寫入塊池16和重定位塊池20,根據本發(fā)明的另一個實施例,可合并和一起管理這兩個池16、20,如圖2所示。圖2是示出可在本發(fā)明的備選實施例中實現的閃存管理系統(tǒng)的方塊圖。如圖2所示,提供具有延遲塊數據結構(即,先進先出(FIFO)隊列)的閃存管理系統(tǒng)100,以延遲新寫入的塊進入垃圾收集池結構。閃存管理系統(tǒng)100包含空閑塊數據結構112,空閑塊數據結構112包含多個供寫入數據的空閑存儲塊114??臻e塊數據結構112的配置類似圖1所示的數據結構??臻e塊數據結構112基于塊寫入擦除耐久循環(huán)計數以預定順序排序空閑存儲塊114,并接收用戶寫入請求以更新現有數據,以及接收重定位寫入請求以在空閑存儲塊 114上重定位現有數據。此外,系統(tǒng)110包含延遲塊數據結構116,其接收來自空閑塊數據結構112的持有用戶寫入數據頁(可能較動態(tài))的第一(即最新)存儲塊118以及持有重定位數據頁面(可能較靜態(tài))的最后(最舊)存儲塊120。如上所述,根據本發(fā)明的一個實施例,延遲塊數據結構116可以是FIFO隊列,其中新填充的塊118可持有用戶寫入數據頁或重定位數據頁面,該塊會被推到延遲塊數據結構116的一側。每當塊118被推到延遲塊數據結構116的一側時,即有一個塊118自另一(即,相對)側被推出延遲塊數據結構116, 且該塊118接著進入垃圾收集池結構112,如圖2所示。因此,垃圾收集池結構122接收來自延遲塊數據結構116的存儲塊118,并選擇至少一個存儲塊118用于垃圾收集。當數據頁被重定位且塊118被擦除之后,選定塊118會被移到空閑塊數據結構112以便寫入數據。 以下將參考圖3描述一種管理存儲設備內的存儲塊的方法。圖3是示出可在本發(fā)明的實施例中實現的用于管理存儲設備內的存儲塊的方法的流程圖。在圖3中,在操作300,基于塊寫入擦除耐久循環(huán)計數以預定順序(例如自最新到最舊)維護用于寫入的空閑存儲塊。所述方法接收更新現有數據的新用戶寫入請求,以及將現有數據置于空閑存儲塊的重定位寫入請求。根據本發(fā)明的一個實施例,通過基于塊寫入擦除耐久循環(huán)計數以升序排序來維護空閑存儲塊,使得最左側的空閑存儲塊是最新的存儲塊,而最右側的空閑存儲塊是最舊的存儲塊,即其有最少量的剩余(未消耗)循環(huán)計數。自操作300,過程進行到操作310,其中來自新的用戶寫入請求的用戶寫入數據被置于最新的空閑存儲塊。在以用戶寫入頁填滿最新的空閑存儲塊后,最新的存儲塊(即,現為用戶寫入存儲塊)會自空閑塊池移除,并被推入用戶寫入塊池(在該池中維護所述最新的存儲塊)。根據本發(fā)明的一個實施例,空閑塊池內的第二新存儲塊現成為最新的存儲塊, 并用于持有用戶寫入請求。根據本發(fā)明的一個實施例,本發(fā)明可判定所涉及的數據頁是否頻繁被更新。在數據頁不常被更新的情況下,此頁會被置于最舊的空閑存儲塊,這類似于重定位請求。自操作310,過程進行到操作312,其中來自重定位請求的重定位數據頁面被置于最舊的空閑存儲塊,此存儲塊具有最不常被更新的數據。一旦最舊的空閑存儲塊被重定位數據頁面所填滿,則最舊的空閑存儲塊(即,現為重定位存儲塊)會自空閑塊池移除,并進入重定位塊池(在該池中維護所述最舊的空閑存儲塊)。
根據本發(fā)明的一個實施例,用戶寫入塊池和重定位塊池均可由隊列數據結構管理,即最新填滿的塊自隊列的一端進入,而垃圾收集窗口設置在此隊列的另一端。自操作312,過程進行到操作314,其中選擇用戶寫入存儲塊和重定位存儲塊中的至少一個存儲塊用于垃圾收集。根據本發(fā)明的一個實施例,根據預定規(guī)則選擇具有用于擦除的窗口的所述至少一個存儲塊。根據本發(fā)明的一個實施例,所述至少一個存儲塊選自用戶寫入存儲塊的窗口和重定位存儲塊的窗口,這些窗口被單獨管理。根據另一個實施例,所述至少一個存儲塊可選自由被共同管理的用戶寫入存儲塊與重定位存儲塊的組合所形成的窗口。即,如圖2所示,將用戶寫入塊池與重定位塊池合并在一起。一般而言,在此描述的根據本發(fā)明的各實施例的閃存管理系統(tǒng)和用于管理存儲設備內的存儲塊的方法以通用計算機實現,且所述方法可在可攜式或硬式介質上編碼為一組指令以供通用計算機使用。圖4是適于實現本發(fā)明的各實施例的通用計算機的方塊圖。在圖4中,計算機系統(tǒng)400具有至少一個微處理器或中央處理單元(CPU)405。CPU 405通過系統(tǒng)總線410與隨機存取存儲器(RAM)415、只讀存儲器(ROM)420、連接可攜式數據和/或程序存儲設備430以及大容量數據和/或程序存儲設備435的輸入/輸出(I/O)適配器425、 連接鍵盤445和鼠標450的用戶接口適配器440、連接數據端口 460的端口適配器455、以及連接顯示設備470的顯示適配器465互連。ROM 420包含計算機系統(tǒng)400的基本操作系統(tǒng)。操作系統(tǒng)可備選地駐留于RAM 415 或本領域公知的其它位置??蓴y式數據和/或程序存儲設備340的實例包含磁性介質(例如,磁盤驅動器和磁帶驅動器)以及光學介質(例如,光驅)。大容量數據和/或程序存儲設備435的實例包含硬盤驅動器和非易失性存儲器(例如閃存)。除了鍵盤445和鼠標450 之外,其它用戶輸入設備(例如,軌跡球、手寫平板計算機、壓力墊、麥克風、光學筆以及位置傳感屏幕顯示器)可連接到用戶接口 440。顯示設備的實例包含陰極射線管(CRT)和液晶顯示器(IXD)。本領域技術人員可創(chuàng)建具有適當應用接口的計算機程序,并將其存儲在系統(tǒng)或數據和/或程序存儲設備上,以簡化本發(fā)明的實施。在操作中,執(zhí)行本發(fā)明的信息或所創(chuàng)建的計算機程序通過數據端口 460饋入或利用鍵盤445鍵入而被加載到適當的可攜式數據和/ 或程序存儲設備430。鑒于以上描述,所述方法實施例可采取計算機或控制器實現的過程以及用于實現這些過程的裝置的形式。本公開亦可以計算機程序代碼的形式實施,其中程序代碼包含體現在有形介質(例如,磁盤、光盤、硬盤驅動器、或任何其它計算機可讀存儲介質)中的指令,當計算機程序代碼加載并由計算機或控制器執(zhí)行時,計算機即成為實施本發(fā)明的裝置。 本公開亦可以計算機程序代碼或信號的形式實施,例如,不管是存儲在存儲介質中、載入計算機或控制器和/或由計算機或控制器執(zhí)行、或通過某種傳輸介質傳輸(例如,通過電線或纜線、通過光纖、或電磁輻射),當計算機程序代碼被載入計算機并由計算機執(zhí)行時,此計算機即成為實施本發(fā)明的裝置。當在通用微處理器中實現時,計算機程序代碼區(qū)段配置微處理器以創(chuàng)建特定邏輯電路??蓤?zhí)行指令的技術效果是實施上述示意性方法。本發(fā)明的各實施例包含閃存管理系統(tǒng)以及經由數據放置(即分離和排序)、垃圾收集和耗損平衡來管理存儲設備內的存儲塊的方法。因此,本發(fā)明提供降低寫入放大的優(yōu)點,因為所述系統(tǒng)公開了將靜態(tài)數據移到相對較舊的塊,以及將動態(tài)數據移到相對較新的塊。本發(fā)明還通過平衡各個塊的循環(huán)計數使用和校正任何可能的不平衡而實現耗損平衡, 同時通過降低所需的寫入操作而提高存儲設備的性能和存儲設備的耐久壽命。本文中所用的術語,僅僅是為了描述特定的實施例,而不意圖限定本發(fā)明。本文中所用的單數形式的“一”和“該”,旨在也包括復數形式,除非上下文中明確地另行指出。還要知道,“包含”一詞在本說明書中使用時,說明存在所指出的特征、整體、步驟、操作、單元和/或組件,但是并不排除存在或增加一個或多個其它特征、整體、步驟、操作、單元和/或組件,以及/或者它們的組合。以下的權利要求中的對應結構、材料、操作以及所有功能性限定的裝置(means) 或步驟的等同替換,旨在包括任何用于與在權利要求中具體指出的其它單元相組合地執(zhí)行該功能的結構、材料或操作。所給出的對本發(fā)明的描述其目的在于示意和描述,并非是窮盡性的,也并非是要把本發(fā)明限定到所表述的形式。對于所屬技術領域的普通技術人員來說, 在不偏離本發(fā)明范圍和精神的情況下,顯然可以做出許多修改和變型。對實施例的選擇和說明,是為了最好地解釋本發(fā)明的原理和實際應用,使所屬技術領域的普通技術人員能夠明了,本發(fā)明可以有適合所要的特定用途的具有各種改變的各種實施方式。此處示出的流程圖只是一個實例。此處描述的這些圖或步驟(或操作)可以存在許多變型而不偏離本發(fā)明的精神。例如,可以按不同的順序執(zhí)行所述步驟,或者可以添加、 刪除或修改步驟。所有這些變型均被視為所要求保護的發(fā)明的一部分。雖然已描述了本發(fā)明的優(yōu)選實施例,但是將理解,本領域技術人員可以在現在和將來做出各種落入以下權利要求的范圍之內的改進和增強。這些權利要求應被解釋為維護對先前描述的本發(fā)明的適當保護。
權利要求
1.一種用于計算機的存儲設備的存儲器管理系統(tǒng),所述系統(tǒng)包含空閑塊數據結構,其包含多個供寫入的空閑存儲塊,所述空閑塊數據結構配置為根據塊寫入擦除耐久循環(huán)計數以預定順序排序所述空閑存儲塊,并分別地接收更新現有數據的新的用戶寫入請求以及重定位現有數據的重定位寫入請求,使得來自新的用戶寫入請求的用戶寫入數據被置于具有較低塊寫入擦除耐久循環(huán)計數的最新空閑存儲塊,而來自重定位請求的重定位數據被置于具有比所述最新空閑存儲塊的塊寫入擦除耐久循環(huán)計數高的塊寫入擦除耐久循環(huán)計數的最舊空閑存儲塊;用戶寫入數據結構,配置為接收持有來自所述空閑塊數據結構的所述用戶寫入數據的用戶寫入存儲塊;重定位數據結構,配置為接收持有來自所述空閑塊數據結構的所述重定位數據的重定位存儲塊;以及垃圾收集池結構,配置為選擇所述用戶寫入存儲塊和重定位存儲塊中的至少一個以便擦除,其中選定塊被擦除后會被移動到所述空閑塊數據結構。
2.如權利要求1中所述的系統(tǒng),其中所述用戶寫入數據結構中的所述用戶寫入存儲塊具有最高的剩余未消耗的剩余耐久循環(huán)計數,而所述重定位數據結構中的所述重定位存儲塊具有最低的剩余未消耗耐久循環(huán)計數。
3.如權利要求1中所述的系統(tǒng),其中根據預定規(guī)則來選擇所述選定塊用于垃圾收集。
4.如權利要求3中所述的系統(tǒng),其中從用戶寫入存儲塊的窗口和重定位存儲塊的窗口選擇所述選定塊。
5.如權利要求4中所述的系統(tǒng),其中所述用戶寫入存儲塊的窗口的大小等于所述重定位存儲塊的窗口的大小。
6.如權利要求4中所述的系統(tǒng),其中所述用戶寫入存儲塊的窗口的大小不等于所述重定位存儲塊的窗口的大小。
7.一種用于計算機的存儲設備的存儲器管理系統(tǒng),所述系統(tǒng)包含空閑塊數據結構,其包含多個供寫入的空閑存儲塊,所述空閑塊數據結構配置為根據塊寫入擦除耐久循環(huán)計數以預定順序排序所述空閑存儲塊,并接收更新現有數據的新的用戶寫入請求以及重定位現有數據的重定位寫入請求,使得來自新的用戶寫入請求的用戶寫入數據被置于具有較低塊寫入擦除耐久循環(huán)計數的最新空閑存儲塊,而來自重定位請求的重定位數據被置于具有比所述最新空閑存儲塊的塊寫入擦除耐久循環(huán)計數高的塊寫入擦除耐久循環(huán)計數的最舊空閑存儲塊;延遲塊數據結構,配置為接收持有來自所述空閑塊數據結構的所述用戶寫入數據的存儲塊和持有來自所述空閑塊數據結構的所述重定位數據的存儲塊,以及延遲所述存儲塊以免被立即選為用于垃圾收集的候選存儲塊;以及垃圾收集池結構,配置為接收來自所述延遲塊數據結構的存儲塊,以及選擇所述存儲塊中的至少一個以便擦除,其中選定存儲塊被擦除后會被移動到所述空閑塊數據結構。
8.如權利要求7中所述的系統(tǒng),其中所述延遲塊數據結構是先進先出(FIFO)隊列。
9.如權利要求8中所述的系統(tǒng),其中在所述延遲塊數據結構的一側接收持有用戶寫入頁面的存儲塊或持有重定位數據頁面的存儲塊,以及持有用戶寫入頁面的存儲塊或持有重定位數據頁面的存儲塊在所述延遲塊數據結構的相對側被推出所述延遲塊數據結構并進入所述垃圾收集池結構。
10.一種管理存儲設備內的存儲塊的計算機實現的方法,所述方法包含根據塊寫入擦除耐久循環(huán)計數以預定順序維護用于寫入的空閑存儲塊,以及接收更新現有數據的新的用戶寫入請求以及重定位現有數據的重定位寫入請求;將來自所述新的用戶寫入請求的用戶寫入數據置于具有較低塊寫入擦除耐久循環(huán)計數的最新空閑存儲塊;將來自所述重定位寫入請求的重定位數據置于具有比所述最新空閑存儲塊的塊寫入擦除耐久循環(huán)計數高的塊寫入擦除耐久循環(huán)計數的最舊空閑存儲塊;維護持有所述用戶寫入數據的用戶寫入存儲塊以及持有所述重定位數據的重定位存儲塊;以及選擇所述用戶寫入存儲塊或所述重定位存儲塊中的至少一個以便擦除。
11.如權利要求10中所述的計算機實現的方法,其中選擇所述用戶寫入存儲塊或所述重定位存儲塊中的至少一個包含從分別地管理的用戶寫入存儲塊的窗口和重定位存儲塊的窗口選擇至少一個存儲塊。
12.如權利要求10中所述的計算機實現的方法,其中選擇所述用戶寫入存儲塊或所述重定位存儲塊中的至少一個包含從用戶寫入存儲塊和重定位存儲塊的組合形成的窗口選擇至少一個存儲塊。
13.如權利要求11中所述的計算機實現的方法,其中所述用戶寫入存儲塊的窗口的大小等于所述重定位存儲塊的窗口的大小。
14.如權利要求11中所述的計算機實現的方法,其中所述用戶寫入存儲塊的窗口的大小不等于所述重定位存儲塊的窗口的大小。
15.一種包括具有計算機可讀程序的計算機可用介質的計算機程序產品,其中當所述計算機可讀程序在計算機上執(zhí)行時,導致所述計算機實施一種管理存儲設備內的存儲塊的方法,所述方法包含根據塊寫入擦除耐久循環(huán)計數以預定順序維護用于寫入的空閑存儲塊,以及接收更新現有數據的新的用戶寫入請求以及重定位現有數據的重定位寫入請求;將來自所述新的用戶寫入請求的用戶寫入數據置于具有較低塊寫入擦除耐久循環(huán)計數的最新空閑存儲塊;將來自所述重定位寫入請求的重定位數據置于具有比所述最新空閑存儲塊的塊寫入擦除耐久循環(huán)計數高的塊寫入擦除耐久循環(huán)計數的最舊空閑存儲塊;維護持有所述用戶寫入數據的用戶寫入存儲塊以及持有所述重定位數據的重定位存儲塊;以及選擇所述用戶寫入存儲塊或所述重定位存儲塊中的至少一個以便擦除。
16.如權利要求15中所述的計算機程序產品,其中選擇所述用戶寫入存儲塊或所述重定位存儲塊中的至少一個包含從分別地管理的用戶寫入存儲塊的窗口和重定位存儲塊的窗口選擇至少一個存儲塊。
17.如權利要求15中所述的計算機程序產品,其中選擇所述用戶寫入存儲塊或所述重定位存儲塊中的至少一個包含從用戶寫入存儲塊和重定位存儲塊的組合形成的窗口選擇至少一個存儲塊。
18.如權利要求16中所述的計算機程序產品,其中所述用戶寫入存儲塊的窗口的大小等于所述重定位存儲塊的窗口的大小。
19.如權利要求16中所述的計算機程序產品,其中所述用戶寫入存儲塊的窗口的大小不等于所述重定位存儲塊的窗口的大小。
全文摘要
一種存儲器管理系統(tǒng)和管理計算機的存儲設備的存儲塊的方法。所述系統(tǒng)包含空閑塊數據結構(12),其包含供寫入的空閑存儲塊(14),并根據塊寫入擦除耐久循環(huán)計數以預定順序排序空閑存儲塊,以及分別地接收更新現有數據的新的用戶寫入請求以及重定位現有數據的重定位寫入請求;用戶寫入塊池(IS),用于接收持有來自所述空閑塊數據結構的用戶寫入數據(即,任何頻繁更新的頁面)的最新塊;重定位塊池(20),用于接收持有來自所述空閑塊數據結構的重定位數據(即,任何不常更新的頁面)的最舊塊;以及垃圾收集池結構(24),用于選擇用戶寫入塊和重定位塊中的至少一個以便用于垃圾收集,其中選定塊在被重定位和擦除后會被移回所述空閑塊數據結構。
文檔編號G11C16/34GK102473135SQ201080031745
公開日2012年5月23日 申請日期2010年7月26日 優(yōu)先權日2009年7月29日
發(fā)明者E·S·埃萊夫特里烏, R·哈斯, 胡曉宇 申請人:國際商業(yè)機器公司