用于靈活控制損耗均衡的固態存儲系統及方法
【專利摘要】本發明涉及一種用于靈活控制損耗均衡的固態存儲控制系統及方法。該方法統一用于存儲單元,其目的是用不經常使用的存儲模塊替代已磨損的存儲單元。通過在每個存儲區或平面中改變該存儲的物理位置,該損耗均衡方法得以執行。目標存儲塊和磨損存儲塊擦除次數的基準參數被用于搜索將被替換掉的目標存儲模塊。因而,當緩存單元空間減少,且損耗均衡進程的處理時間也減少,則固態存儲系統的運行性能和成本效益均會提高。
【專利說明】
用于靈活控制損耗均衡的固態存儲系統及方法
技術領域
[0001]本發明涉及到一種固態存儲系統和方法,確切的說是一種用于靈活控制損耗均衡的系統和一個起到相同控制作用的方法。
【背景技術】
[0002]通常情況下,非易損性內存被廣泛的用作便攜式信息設備的存儲內存。近年來,使用NAND閃存存儲的固態硬盤替代硬盤驅動被用于個人電腦,在市場上開始銷售,并有望大舉進入HDD (硬盤驅動器)市場。
[0003]通常,在固態存儲系統(如:SSD(固態硬盤))中對數據文件的控制是通過寫入、擦除和更新在由可識別這些數據文件的邏輯地址指定的頁中的真實數據來執行的。更具體的說,利用閃存傳輸層,能夠使一個邏輯地址和一個數據存儲區的一個物理地址進行映射。通過根據主機命令所指的邏輯地址被映射到一個邏輯地址上,該邏輯地址指定了可被寫入、讀取或者擦除數據的位置。該物理地址就是在頁或者存儲區子塊上的位置信息。
[0004]NAND閃存單元是非易損性存儲單元。因此,當更新NAND閃存存儲單元的數據時,相應單元的數據必須先被擦除,然后新數據才能被編譯。但是,數據不能被統一的編入所有的存儲單元,而是被經常性的編寫到集中的特定的單元區域內。換句話說,由于經常性地數據編寫和擦除操作,使得特定的單元區或一些單元因磨損而無法使用。甚至于,盡管有全新狀態的存儲單元存在,但是固態存儲系統的整體性能仍受制于磨損的單元。
[0005]因此,在這些存儲單元被磨損前,通過在每個存儲區或平面內改變存儲單元物理位置的方式來執行損耗均衡方法,以保證所有的存儲單元能被均勻使用。為執行損耗均衡進程,所有塊區的可擦除次數信息都將被存儲到NAND存儲區。當需要執行損耗均衡進程時,塊區的擦除次數信息將會被加載到RAM(隨機存取存儲器)緩存中,同時,通過檢索可替代該塊區的物理位置將會塊被改變。
[0006]雖然,根據當前大容量SSD趨勢,作為存儲區能擁有更多的存儲塊區,其中加載了所有塊擦除次數信息的RAM緩存的大小也不可避免地增加了。另外,在內存中增加RAM緩存仍然受價格和內存容量的限制。
【發明內容】
[0007]本發明的目的在于提出一種用于靈活控制損耗均衡的固態存儲系統及方法。這里描述了固態存儲系統用于控制損耗均衡過程的環節和應用實例;也描述了用于控制固態存儲系統方法的應用環節和應用實例。
[0008]在本發明的一個應用實例中,固態存儲系統包含:一個緩沖單元,該緩沖單元配置后可用于依次加載多個存儲了映射信息和擦除次數的映射頁;一個存儲控制一用于配制設定目標塊的擦除次數的基準值和目標塊中被查找對象的映射頁的數量,其目的是為了找到可以替代已損壞塊的目標塊,對映射頁進行采用后,執行損耗均衡程序。
[0009]本發明的另一應用實例中,固態存儲系統包含了一個含有組存儲塊的閃存區一其作用是為了保存用于存儲映射信息和擦除次數存儲的映射頁,一個存儲控制一經配置用以設定搜索相對于替代塊的目標數量的參考值,利用磨損塊上的關于替代塊擦除次數的參考值信息,存儲中已經磨損的塊將通過損耗均衡程序被替代,找到初始替代塊作為目標塊,然后用找到的替代塊與損壞的塊進行置換。
[0010]本發明還能應用于方法實例,用于控制固態存儲系統的方法包含了下列步驟:通過確定替代損壞塊的目標塊的在損耗均衡過程中的擦除次數設置第一個參數值;通過查找對應損壞塊擦除數的目標塊設置第二個參數值;在第一和第二參數值之間搜索目標塊未果的情況下,需要對第一個參數值進行變化和更行,以便影響下個目標塊的搜索條件。
[0011]本發明的一個固態存儲系統組成包括:配置緩存單元用于部分加載映射頁,每個映射頁包含映射信息和與存儲塊相對應的擦除數信息;配置存儲控制用于搜索基于累積失敗數的目標塊,該數值的得出基于先前的損耗均衡處理過程中搜索目標塊的失敗次數和對映射頁的訪問次數;配置后也用于處理損耗均衡進程用目標塊替代損壞塊。上述的固態存儲系統,存儲控制確定:當數據擦除時,是否執行損耗均衡進程。上述的固態存儲系統,當損耗均衡進程被執行時,存儲控制變化目標塊的數量。上述的固態存儲系統,存儲控制提升搜索目標塊失敗的累積失敗次數,同時根據增加的累積失敗數提升目標塊的數量。上述的固態存儲系統,存儲控制提升映射頁的訪問次數,同時根據增加的映射頁訪問次數提升目標塊的數目。上述的固態存儲系統,當損壞塊的擦除次數超出預設值時,存儲控制提升映射頁的訪問次數。上述的固態存儲系統,當映射頁的訪問次數增加,存儲控制增加加載到緩存單元的映射頁數目。上述的固態存儲系統,映射頁被有序的加載到緩存單元中。上述固態存儲系統,還應包括含有組存儲塊的閃存區,該組存儲塊中含多個有映射頁。
[0012]本發明的另一個固態存儲系統組成包括:存儲塊組成的閃存區,經配置后用于存儲映射頁,該映射頁中保存了映射信息和存儲塊的擦除次數信息;存儲控制經配置后,用于改變替代損壞塊的目標塊的數目,該數目的確定,通過使用搜索目標塊次數的累積失敗數和在損耗均衡進程中的映射頁的訪問次數。上述的固態存儲系統,其中,存儲控制為提高目標塊的搜索成功率增加目標塊的數目。上述的固態存儲系統,其中,當在之前的損耗均衡進程中搜索目標塊失敗時,存儲控制提升累積失敗數。上述的固態存儲系統,為增加目標塊的數量,存儲控制增加映射頁的訪問次數。上述的固態存儲系統,當在之前的損耗均衡進程中成功搜索目標塊,存儲控制會減少累積失敗數,以便減少目標塊的數目。
[0013]本發明的一種固態存儲系統控制方法由以下步驟組成:根據在之前損耗均衡進程中搜索單個目標塊的失敗次數的累積失敗次數設置第一參數值;根據對映射頁的訪問次數設置第二參數值;根據第一和第二參數值設置一個目標塊的搜索條件;在損耗均衡進程中,根據該目標塊的搜索條件,搜索用于替代損壞塊的目標塊。上述的固態存儲系統控制方法,當累積失敗數增加時,目標塊的搜索條件需要變化。上述的固態存儲系統控制方法,作為目標塊被搜索的塊的數量根據改變的目標塊的搜索條件增加。上述的固態存儲系統控制方法,當映射頁的訪問次數增加,則目標塊的搜索條件改變。上述的固態存儲系統控制方法,當損壞塊的擦除次數超出了平均擦除次數與誤差范圍之和,則映射頁的訪問次數增加。上述的固態存儲系統控制方法,根據變化的目標塊的搜索條件,作為目標塊被搜索的塊的數目將被增加。
[0014]通過實施上述本發明,聯系實際應用,即使當存儲空間擴大,也不必要增加用于臨時存儲映射信息和擦除次數信息的緩存單元空間;而相較于當前技術,該緩存單元可以保持較小的空間。僅該損壞塊的擦除次數信息和映射信息將被加載,該擦除次數參數值條件和搜索次數參數值條件要分別設置。損耗均衡進程處理時間有可能減少。因而,當緩存單元空間減少,且損耗均衡進程的處理時間也減少,則固態存儲系統的運行性能和成本效益均會提尚O
【附圖說明】
[0015]圖1是一個框圖,描述了與固體存儲系統對應的應用實例;
[0016]圖2是一個概念框圖,闡述了圖1中的地址映射,其中圖2(a)為扇區視圖,圖2(b)為NAND視圖,圖2 (c)為緩存單元視圖;
[0017]圖3是一個流程圖,解釋了圖1中關于控制固體存儲系統的方法;
[0018]圖4是一個曲線圖,展示了目標塊擦除次數和圖3中累積失敗數之間的相關性;
[0019]圖5是一個表格圖,用表格的形式說明了靈敏度和受損塊擦除次數之間的相關性;以及
[0020]圖6是一個曲線圖,根據圖5中靈敏度以曲線圖形式展示了受損塊的擦除次數和訪問次數的變化。
【具體實施方式】
[0021]在此,本發明中涉及的應用實例將按規定進行詳細披露。需要說明的是,所披露的應用實例僅是本發明的示例,這些應用實例也可用其它形式表現。因此,本文披露的具體細節不應被理解為限制,而僅作為權利要求的依據,以及用合適的方式向本領域中不同人員闡述本發明的不同應用的代表性依據。
[0022]固態存儲系統和根據本方法同樣用于控制的方法,將在下面通過附圖中的優選應用實例進行描述。
[0023]首先,結合圖1和2,根據其中的應用實例對固態存儲系統進行描述。圖1中,以框圖形式展示了固態存儲系統100,圖2以概念框圖的形式解釋了物理/邏輯地址映射表和緩存單元120之間的關系。在本文中,使用NAND閃存的存儲系統將被視為固態存儲系統100的應用例。參照圖1和2,固態存儲系統包含了主機接口 110,緩存單元120,微控制單元(MCU) 130,存儲控制140和存儲區150。
[0024]主機接口110與緩存單元120連接,在外部主機及緩存單元120間傳送和接收控制命令、地址信號、數據信號。主機接口 110和外部主機之間的接口模式,可以是SATA、PATA、SCS1、Express Card、或PC1-Express之一,但不僅限于此。
[0025]從主機接口110輸出的信號被緩存到緩存單元120,或臨時存儲邏輯地址與物理地址間的映射信息、存儲區150的塊分配信息、外部數據、塊擦除次數以及其它外部數據等。緩存單元120也能用做于SRAM或DRAM的緩存。如圖2所示,從扇區上來看某邏輯塊的第1000個扇區代表了在存儲區150的NAND視圖中一個實用物理塊的第200個塊中的第30個頁,緩沖單元120存儲了映射信息和實際被訪問塊(第200個塊區)的擦除次數。本發明并不僅限于圖2中的用例。
[0026]具體聯系某方面或實際用例,緩存單元120并不加載全部存儲塊的可擦除次數,而是僅加載損壞塊的擦除次數。因此,緩存單元120的空間不需要很大,從而可以在降低成本的同時,提高空間利用率。MCU 130可向主機接口 110傳輸或接收來自主機接口 110的控制命令、尋址信號或數據信號,或通過這些信號控制存儲控制140.
[0027]存儲控制140在存儲區150的多個閃存存儲中選擇預定的NAND存儲,并對其執行寫命令、擦除命令或讀命令。尤其是,當存儲控制140涉及需要靈活控制損耗均衡過程時,如:在損耗均衡程序中,利用兩個參數值控制搜索條件和需對目標塊的搜索次數,從而實現統一管理存儲使用壽命的目的。
[0028]通常情況下,所有塊的可擦除次數信息被存儲到大塊閃存的存儲區150上。故,在需要執行損耗均衡過程時,關于所有塊的可擦除次數信息都會被加載到緩存單元120上,然后嘗試交換擁有最大可擦除次數塊和擁有最少擦除次數塊的物理地址。在這種情況下,緩存單元120需要足夠大的存儲容量以便一次性加載各塊的擦除次數。雖然,在實際執行損耗均衡過程時,存儲控制140很有可能不將全部塊的擦除信息加載到緩存單元120上,通過根據搜索條件采樣塊的預定條件,仍然可執行損耗均衡過程。另外,某些情況下,當存儲塊被擦除后,存儲控制140會在原來擦除數的基礎上,增加數值。當該數值大于預先設定的數值時,損耗均衡進程就會被自動執行。這種情況下,計算有誤的數值就被用作于該塊的搜索條件,當損壞塊的擦除次數和平均擦除次數之間存在誤差時,平均擦除次數將被用作于搜索次數參數。如此,搜索次數和搜索條件都必須靈活多樣。換句話說,當損耗均衡進程信息最小化時,兩個搜索參數值都要被設定。故,搜索次數減少,替代目標塊的的搜索概率就會增加。
[0029]存儲控制140通過執行數據的讀、寫、擦除操作可以控制存儲區150。閃存單元可以是SLC(單層單元)或MLC(多層單元)。存儲區150可以由復合芯片組成,每個芯片包含多個多重頁組成的塊。同時,存儲區150中不僅有映射信息,還有上述的擦除次數信息(下文中將之稱為“映射頁”)。所謂的映射頁就是NAND閃存中的進程單元或者存儲單元。映射頁可定義為擦除次數以及相對于單個塊的邏輯地址與物理地址間映射信息的存儲。映射信息也被稱為映射存儲區。
[0030]圖3用流程圖形式解釋了圖1中用于控制固態存儲系統的方法。舉例來說,圖中同樣也描述了是否執行損耗均衡進程是由每個擦除指令決定的。聯系圖1-3,任意塊的數據都可被擦除。塊的數據被擦除后,在已有次數的基礎上增加本次擦除的次數,并對其進行檢驗(SlO)。然后確定已經確認的擦除次數是否大于預定義值(S20)。預定義值應通過數學公式計算:
[0031]預定義值=(平均擦除次數+誤差范圍)[數學公式I]
[0032]例如,當平均擦除次數為100,誤差范圍為40,則預定義值為140。當在損壞塊上執行的擦除次數大于140時,存儲控制140開始操縱執行損耗均衡進程。累積失敗數(S30)被用作目標塊的第一查詢參數。累積失敗數是種標識信號,其作用是用來說明在替代損毀塊的目標塊中搜索的成功或失敗。累積失敗數的初始值被設為0,在后續的進程中,用于替代磨損塊的目標塊如果沒有被搜索,則累積失敗數加一。這樣做是為了在累積失敗數增加的情況下,放寬目標塊擦除次數的基本參照值。換句話說,當累積失敗數增加,目標塊的搜索參數值就會擴大。具體而言,目標塊的初始參數值是一個較小的擦除次數,該數值通過從平均擦除值中減去錯誤范圍獲得。舉例來說,當平均擦除值為100、誤差范范圍為40時,則該塊的初始參數值為60。塊的擦除次數大于上面提到的數值時,則應視為被替代塊。故,當累積失敗數增加,有較小擦除數的塊的參數值會以每次增加“5”的方式(45 ,50,55,……)遞增擴大。雖然,允許的累積失敗數被設置為小于平均,同時防止累積失敗數被無盡累加。因此,查找目標塊的第一個條件是被替代目標塊的擦除數,它被作為目標塊的選擇參數。
[0033]同時,目標塊的搜索次數將被作為目標塊的第二個搜索參數值(S40)。將目標塊的搜索次數作為條件,意味著,對存儲區的映射頁的訪問次數。存于單個映射頁的塊每次僅能執行一次訪問操作。若未對目標塊進行一次性訪問搜索,則需訪問其它映射頁,以確定訪問的映射頁中是否有目標塊的存在。訪問次數的增加,導致查詢對象增多。訪問次數既不隨意也不統一設置,而是根據損壞塊的擦除次數靈活變動。映射頁的訪問次數需要參照損壞塊的擦除次數超出平均擦除次數與誤差范圍之和的值靈活進行控制。也就是說,映射頁的訪問次數在靈活控制下增加,考慮到損壞塊需被替換的緊急程度進行及時替換。因此,知道損壞塊的擦除次數和平均擦除次數間的差異是非常重要的。如,根據系統的重要性,有區別的執行損耗均衡過程的深度。當然,考慮到已用的固態存儲系統的架構及其用途,在執行損耗均衡進程時其也需要分別對待。在圖5中有對該部分的闡述,詳細描述見后文。因此,這就決定了,執行次數是否要用到第二個搜索條件(S50)。
[0034]也就是說,根據計算公式得出的訪問次數沒有超過預定值,執行重復循環直到搜索到目標塊為止(S60)。一旦訪問次數值達到預定參數值,就要確定目標塊是否是在訪問次數極限值內被找到。在使用重復循環過程中,目標塊以小于預設的訪問次數被找到,則累積失敗數被減少且被更新(S80)。一旦現有狀態滿足第一和第二條件,則允許累積失敗次數的余值可以通過從預定值中減去累積失敗次數得到的數值進行確認。
[0035]如果在訪問次數臨界值內沒有找到目標塊,則需要放寬搜索條件。也就是說,累積失敗數需被提升且被更新(S90)。這種情況發生在即使當前已經設定了第一、二搜索條件,但是作為替代塊的目標塊仍然未被找到。這種情況下,累積失敗數增加且被更新以便影響下個搜索條件,因而在下個塊的擦除操作中損耗均衡進程的搜索成功率會有所提升。
[0036]舉例來說,擦除次數參考值條件和搜索次數參考值條件需要分別設置,以便更有效的搜索塊的分布式擦除數信息。初始搜索塊意味著,在損耗均衡進程中(或者在下一個損耗均衡進行中搜索),這些塊要在預定義的搜素次數內被搜索,以初步滿足擦除次數條件。因此,與損耗均衡進程需要在所有塊上執行的情形相比,本類情況需要執行的次數會有大幅降低。
[0037]圖4基于一個應用實例以圖表展示了一個目標塊的擦除次數與累積失敗次數之間的關聯。在圖4中,X軸代表累積失敗數,Y軸代表該目標塊的擦除次數。在這種情況下可以假設平均擦除次數、誤差范圍和允許的累積失敗次數分別為100、40和5(或者更少)。
[0038]圖4中a曲線可通過下列數學公式實現:
[0039]目標塊的第一搜索條件=(平均擦除次數-誤差范圍)
[0040]+誤差范圍/(允許最大累積失敗數-累積失敗數)[數學公式2]
[0041]
[0042]該公式僅在允許累積失敗數小于等于5時才能應用。如果允許累積失敗數大于極限值,則可能在應用第一條件實現目標塊時產生一條有小斜度的直線,就像圖4中b曲線中所示。
[0043]目標塊第一條件=(平均擦除次數+閾誤差值上線)-累積失敗數[數學公式3]
[0044]
[0045]因此,圖4中建議,積極地在累積失敗數低于允許累積失敗數5的扇區中搜索目標塊更有實際意義。當允許累積失敗數大于極值、且目標塊的擦除次數已經超過了平均擦除數與極值之和時,放寬目標塊的搜索條件的意義就不太大了。因此,聯系本例,將允許累積失敗數極值設定為5,且對固態存儲系統進行管理以免出現超出極值的情況。
[0046]圖5以表格形式展示靈敏性和塊擦除數的關聯:當損壞塊的擦除數增加,則基于靈敏性的搜索次數被設置為增加。此外,由于靈敏性的強度增加,在有相同擦除次數的損壞塊的搜索次數也必須增加。
[0047]目標塊的第二搜索條件=
[0048](基本映射頁訪問次數-1)+ (損壞塊的擦除次數-(平均擦除次數+極值))*靈敏性[數學公式4]
[0049]
[0050]基本映射頁訪問次數、平均擦除次數以及極值分別設置為7,100和40。故,當損耗塊的擦除次數大于平均擦除數與極值之和時,與損壞塊相對應的目標塊的搜索次數必須予以增強。面向目標塊的第二搜索條件應設置提高映射訪問次數,例如,使用數學公式4。與此同時,一旦高性能系統需要高靈敏度,公式4就可以用靈敏函數實現。
[0051]圖6以圖形展示靈敏性和訪問次數之間的關系:X軸顯示損壞塊的擦除次數,Y軸代表訪問次數。訪問次數可運用數學公式4計算得出。如果運用圖5中的靈敏度,則該圖中相應的斜率會更陡。就是說,在圖6的1-5對應圖5的1-5的靈敏性強度。相對于該擦除次數的訪問次數會根據靈敏性的強度而改變。例如,當擦除次數為150時,根據靈敏度強度訪問次數的區間為[18,58]。當該系統的靈敏度更高時,縱然訪問次數增加也需要對目標塊加強搜索。在損耗均衡進程中,不是所有塊的擦除次數信息都能夠被加載,整體比較也許是不可能的。故,設置適當的搜索條件,能夠更加有效的搜索目標塊。
[0052]相較于擁有低值的目標塊,擁有可替代值的塊搜索用時更短。這就是說,最初搜索的、具有替換能力的塊將在損耗塊的損耗均衡進程中取代具有最低值的目標塊,而被犧牲掉。最終,目標塊的擦除次數,也就是對于該目標塊的第一搜索條件,在不斷變化以提高搜索成功率期間,仍需被控制;且目標塊要搜索數目可根據損壞塊替換緊急程度進行增加。
[0053]聯系實際應用,即使當存儲空間擴大,也不必要增加用于臨時存儲映射信息和擦除次數信息的緩存單元空間;而相較于當前技術,該緩存單元可以保持較小的空間。僅該損壞塊的擦除次數信息和映射信息將被加載,該擦除次數參數值條件和搜索次數參數值條件要分別設置。損耗均衡進程處理時間有可能減少。因而,當緩存單元空間減少,且損耗均衡進程的處理時間也減少,則固態存儲系統的運行性能和成本效益均會提高。
[0054]如上所述,所描述的應用實例,僅供本領域相關人員理解使用。故而,本系統及方法不限制于文中所舉用例。
【主權項】
1.一種固態存儲系統,包括:緩存單元,其用于部分加載映射頁,每個映射頁包含映射信息和與存儲塊相對應的擦除數信息;以及存儲控制,其用于搜索基于累積失敗數的目標塊,該累積失敗數基于先前的損耗均衡處理過程中搜索目標塊的失敗次數和對映射頁的訪問次數。2.根據權利要求1所述的固態存儲系統,其特征在于,所述存儲控制確定:當數據擦除時,是否執行損耗均衡進程。3.根據權利要求2所述的固態存儲系統,其特征在于,當損耗均衡進程被執行時,所述存儲控制變化目標塊的數量。4.根據權利要求3所述的固態存儲系統,其特征在于,所述存儲控制提升搜索目標塊失敗的累積失敗次數,同時根據增加的累積失敗數提升目標塊的數量。5.根據權利要求2所述的固態存儲系統,其特征在于,所述存儲控制提升映射頁的訪問次數,同時根據增加的映射頁訪問次數提升目標塊的數目。6.根據權利要求5所述的固態存儲系統,其特征在于,當損壞塊的擦除次數超出預設值時,所述存儲控制提升映射頁的訪問次數。7.根據權利要求6所述的固態存儲系統,其特征在于,當映射頁的訪問次數增加,所述存儲控制增加加載到緩存單元的映射頁數目,映射頁被有序的加載到緩存單元中。8.根據前述任一權利要求所述的固態存儲系統,其特征在于,還包括含有組存儲塊的閃存區,該組存儲塊中含多個有映射頁。9.一種固態存儲系統,包括:存儲塊組成的閃存區,經配置后用于存儲映射頁,該映射頁中保存了映射信息和存儲塊的擦除次數信息;以及存儲控制,其經配置后,用于改變替代損壞塊的目標塊的數目,該數目的確定,通過使用搜索目標塊次數的累積失敗數和在損耗均衡進程中的映射頁的訪問次數。10.—種固態存儲系統控制方法,由以下步驟組成: a)根據在之前損耗均衡進程中搜索單個目標塊的失敗次數的累積失敗次數設置第一參數值; b)根據對映射頁的訪問次數設置第二參數值; c)根據第一和第二參數值設置一個目標塊的搜索條件;以及 d)在損耗均衡進程中,根據該目標塊的搜索條件,搜索用于替代損壞塊的目標塊。
【文檔編號】G06F3/06GK105955672SQ201610333979
【公開日】2016年9月21日
【申請日】2016年5月19日
【發明人】王軍輝, 霍小四
【申請人】河南中天億科電子科技有限公司