本公開涉及數(shù)據(jù)存儲領域,具體地,涉及一種管理存儲區(qū)域的方法及固態(tài)硬盤。
背景技術:
隨著數(shù)據(jù)存儲技術的高速發(fā)展,越來越多的數(shù)據(jù)存儲裝置出現(xiàn)在人們使用的電子設備中,例如:SSD(Solid State Drives,固態(tài)硬盤)等。SSD因具有讀寫速度快、抗震動、低功耗、無噪音、低熱量、以及質量輕等特點,已被廣泛應用于軍事、車載、工業(yè)、醫(yī)療、和航空等領域。
目前,可以將SSD包括的多個存儲單元的工作模式設置為SLC模式,以得到SLC型存儲單元,或者設置為TLC模式,以得到TLC型存儲單元。相關技術中的SSD包括:控制器、元數(shù)據(jù)存儲區(qū)域、SLC緩存區(qū)域以及TLC存儲區(qū)域。相關技術中的SSD所包括的各個存儲區(qū)域的形成過程如下:
首先,將SSD的一部分固定存儲區(qū)域包括的多個存儲單元的工作模式設置為SLC模式,得到由多個SLC型存儲單元組成的元數(shù)據(jù)存儲區(qū)域,以存儲SSD所存儲的數(shù)據(jù)的元數(shù)據(jù)(如映射表、壞塊表等)。然后,將剩余存儲區(qū)域中的一部分固定區(qū)域包括的多個存儲單元的工作模式也設置為SLC模式,得到由多個SLC型存儲單元組成的SLC緩存區(qū)域,以緩存寫入SSD的數(shù)據(jù)。除元數(shù)據(jù)存儲區(qū)域和SLC緩存區(qū)域外剩余的存儲區(qū)域包括的所有存儲單元的工作模式保持TLC模式,得到由多個TLC型存儲單元組成的TLC存儲區(qū)域,在FTL(Flash translation layer;閃存轉換層)的控制下,緩存在SLC緩存區(qū)域中的數(shù)據(jù)被搬移到TLC存儲區(qū)域,因而寫入SSD的數(shù)據(jù)最終被存儲在TLC存儲區(qū)域。
然而,TLC型存儲單元的使用壽命約為1000次,SLC型存儲單元的使用壽命可達50000余次。對相關技術中的SSD來說,其所包括的SLC緩存區(qū)域與TLC存儲區(qū)域各自達到使用壽命的時機通常是不一致的,如果SLC緩存區(qū)域先達到使用壽命,則TLC存儲區(qū)域雖然可以繼續(xù)使用,但是無法實現(xiàn)寫數(shù)據(jù)加速;如果TLC存儲區(qū)域先達到使用壽命,則SLC緩存區(qū)域不能繼續(xù)使用,因而SSD的生命周期結束,導致一部分存儲單元的使用壽命浪費的問題。
技術實現(xiàn)要素:
本公開的目的是提供一種管理存儲區(qū)域的方法及固態(tài)硬盤,用以提高SSD的讀寫速度。
為了實現(xiàn)上述目的,本公開提供一種管理存儲區(qū)域的方法,應用于固態(tài)硬盤SSD,所述方法包括:
確定所述SSD的SLC存儲區(qū)域包括的多個SLC型存儲單元所存儲的數(shù)據(jù)的第一讀寫特征,并確定所述SSD的TLC存儲區(qū)域包括的多個TLC型存儲單元所存儲的數(shù)據(jù)的第二讀寫特征;
根據(jù)所述第一讀寫特征和所述第二讀寫特征中的至少一個,對所述TLC存儲區(qū)域與所述SLC存儲區(qū)域之間的比例進行調整。
可選地,所述方法還包括:
將所述SSD的用戶數(shù)據(jù)空間包括的部分存儲單元的工作模式設置為TLC模式,以得到所述TLC存儲區(qū)域;
將所述用戶數(shù)據(jù)空間中除所述部分存儲單元外的剩余存儲單元的工作模式設置為SLC模式,以得到所述SLC存儲區(qū)域,其中,請求寫入所述SSD的數(shù)據(jù)將被存儲在所述SLC存儲區(qū)域。
可選地,根據(jù)所述第一讀寫特征和所述第二讀寫特征中的至少一個,對所述TLC存儲區(qū)域與所述SLC存儲區(qū)域之間的比例進行調整,包括:
將所述SLC存儲區(qū)域中讀寫頻率低于預設閾值的數(shù)據(jù)標記為待非等量搬移;
將所述SLC存儲區(qū)域包括的空閑SLC型存儲單元的工作模式由SLC模式轉換為TLC模式,以得到空閑TLC型存儲單元;
所述方法還包括:
將所述SLC存儲區(qū)域中標記為待非等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元。
可選地,將所述SLC存儲區(qū)域所存儲的讀寫頻率低于預設閾值的數(shù)據(jù)標記為待非等量搬移,包括:
對所述SLC存儲區(qū)域中所有數(shù)據(jù)的讀取頻率,按照從高到低的順序進行排序;
將排在后S位的數(shù)據(jù)標記為待非等量搬移,S為大于0的整數(shù)。
可選地,所述方法還包括:
檢測所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量是否超過預設數(shù)值,所述預設數(shù)值由所述SSD的標稱容量以及所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量與所述TLC存儲區(qū)域已存儲的數(shù)據(jù)量之和確定;
將所述SLC存儲區(qū)域中讀寫頻率低于預設閾值的數(shù)據(jù)標記為待非等量搬移,包括:
在所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量超過所述預設數(shù)值的情況下,將所述SLC存儲區(qū)域中讀寫頻率低于預設閾值的數(shù)據(jù)標記為待非等量搬移。
可選地,在將所述SLC存儲區(qū)域中標記為待非等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元之后,所述方法還包括:
將所述TLC存儲區(qū)域中標記為待非等量搬移的數(shù)據(jù)標記為已非等量搬移;
根據(jù)所述第一讀寫特征和所述第二讀寫特征中的至少一個,對所述TLC存儲區(qū)域與所述SLC存儲區(qū)域之間的比例進行調整,包括:
將所述SLC存儲區(qū)域中滿足第一預設條件的數(shù)據(jù)標記為待等量搬移,并將所述TLC存儲區(qū)域中滿足第二預設條件的數(shù)據(jù)標記為待等量搬移,其中,所述第一預設條件為:未標記為待非等量搬移,且讀寫頻率小于所述TLC存儲區(qū)域中未標記為已非等量搬移的數(shù)據(jù)的讀寫頻率,所述第二預設條件為:未標記為已非等量搬移,且讀寫頻率大于所述SLC存儲區(qū)域中未標記為待非等量搬移的數(shù)據(jù)的讀寫頻率;
將所述SLC存儲區(qū)域包括的空閑SLC型存儲單元的工作模式由SLC模式轉換為TLC模式,以得到空閑TLC型存儲單元;
所述方法還包括:
將所述SLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元,并將所述TLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到所述SLC存儲區(qū)域包括的空閑SLC型存儲單元。
可選地,根據(jù)所述第一讀寫特征和所述第二讀寫特征中的至少一個,對所述TLC存儲區(qū)域與所述SLC存儲區(qū)域之間的比例進行調整,包括:
在所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量未超過所述預設數(shù)值的情況下,將所述SLC存儲區(qū)域中讀寫頻率符合第三預設條件的數(shù)據(jù)記為待等量搬移,并將所述TLC存儲區(qū)域中讀寫頻率符合第四預設條件的數(shù)據(jù)記為待等量搬移,其中,所述第三預設條件為:讀寫頻率低于所述TLC存儲區(qū)域所存儲的數(shù)據(jù)的讀寫頻率,所述第四預設條件為:讀寫頻率高于所述SLC存儲區(qū)域所存儲的數(shù)據(jù)的讀寫頻率;
將所述SLC存儲區(qū)域包括的空閑SLC型存儲單元的工作模式由SLC模式轉換為TLC模式,以得到空閑TLC型存儲單元;
所述方法還包括:
將所述SLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元,并將所述TLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到所述SLC存儲區(qū)域包括的空閑SLC型存儲單元。
可選地,將所述SLC存儲區(qū)域中滿足第一預設條件的數(shù)據(jù)標記為待等量搬移,并將所述TLC存儲區(qū)域中滿足第二預設條件的數(shù)據(jù)標記為待等量搬移,包括:
將所述TLC存儲區(qū)域中未標記為已非等量搬移的數(shù)據(jù)的讀寫頻率的最大值,與所述SLC存儲區(qū)域中未標記為待非等量搬移的數(shù)據(jù)的讀寫頻率的最小值進行比較;
在所述最大值大于所述最小值的情況下,確定所述SLC存儲區(qū)域中讀寫頻率小于所述最大值且未標記為待非等量搬移的數(shù)據(jù)量;
在所述數(shù)據(jù)量不小于所述TLC存儲區(qū)域中單個TLC型存儲單元的容量的情況下,將所述SLC存儲區(qū)域中讀寫頻率小于所述最大值且未標記為待非等量搬移的數(shù)據(jù)標記為待等量搬移,并將所述TLC存儲區(qū)域中讀寫頻率為所述最大值且未標記為已非等量搬移的數(shù)據(jù)標記為待等量搬移。
本公開還提供一種固態(tài)硬盤,包括:控制器、SLC存儲區(qū)域、TLC存儲區(qū)域,所述控制器用于:
確定所述SSD的SLC存儲區(qū)域包括的多個SLC型存儲單元所存儲的數(shù)據(jù)的第一讀寫特征,并確定所述SSD的TLC存儲區(qū)域包括的多個TLC型存儲單元所存儲的數(shù)據(jù)的第二讀寫特征;
根據(jù)所述第一讀寫特征和所述第二讀寫特征中的至少一個,對所述TLC存儲區(qū)域與所述SLC存儲區(qū)域之間的比例進行調整。
可選地,所述控制器還用于:
將所述SSD的用戶數(shù)據(jù)空間包括的部分存儲單元的工作模式設置為TLC模式,以得到所述TLC存儲區(qū)域;
將所述用戶數(shù)據(jù)空間中除所述部分存儲單元外的剩余存儲單元的工作模式設置為SLC模式,以得到所述SLC存儲區(qū)域,其中,請求寫入所述SSD的數(shù)據(jù)將被存儲在所述SLC存儲區(qū)域。
可選地,所述控制器還用于:
將所述SLC存儲區(qū)域中讀寫頻率低于預設閾值的數(shù)據(jù)標記為待非等量搬移;
將所述SLC存儲區(qū)域包括的空閑SLC型存儲單元的工作模式由SLC模式轉換為TLC模式,以得到空閑TLC型存儲單元;
將所述SLC存儲區(qū)域中標記為待非等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元。
可選地,所述控制器還用于:
對所述SLC存儲區(qū)域中所有數(shù)據(jù)的讀取頻率,按照從高到低的順序進行排序;
將排在后S位的數(shù)據(jù)標記為待非等量搬移,S為大于0的整數(shù)。
可選地,所述控制器還用于:
檢測所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量是否超過預設數(shù)值,所述預設數(shù)值由所述SSD的標稱容量以及所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量與所述TLC存儲區(qū)域已存儲的數(shù)據(jù)量之和確定;
在所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量超過所述預設數(shù)值的情況下,將所述SLC存儲區(qū)域中讀寫頻率低于預設閾值的數(shù)據(jù)標記為待非等量搬移。
可選地,所述控制器還用于:
在將所述SLC存儲區(qū)域中標記為待非等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元之后,將所述TLC存儲區(qū)域中標記為待非等量搬移的數(shù)據(jù)標記為已非等量搬移;
將所述SLC存儲區(qū)域中滿足第一預設條件的數(shù)據(jù)標記為待等量搬移,并將所述TLC存儲區(qū)域中滿足第二預設條件的數(shù)據(jù)標記為待等量搬移,其中,所述第一預設條件為:未標記為待非等量搬移,且讀寫頻率小于所述TLC存儲區(qū)域中未標記為已非等量搬移的數(shù)據(jù)的讀寫頻率,所述第二預設條件為:未標記為已非等量搬移,且讀寫頻率大于所述SLC存儲區(qū)域中未標記為待非等量搬移的數(shù)據(jù)的讀寫頻率;
將所述SLC存儲區(qū)域包括的空閑SLC型存儲單元的工作模式由SLC模式轉換為TLC模式,以得到空閑TLC型存儲單元;
將所述SLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元,并將所述TLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到所述SLC存儲區(qū)域包括的空閑SLC型存儲單元。
可選地,所述控制器還用于:
在所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量未超過所述預設數(shù)值的情況下,將所述SLC存儲區(qū)域中讀寫頻率符合第三預設條件的數(shù)據(jù)記為待等量搬移,并將所述TLC存儲區(qū)域中讀寫頻率符合第四預設條件的數(shù)據(jù)記為待等量搬移,其中,所述第三預設條件為:讀寫頻率低于所述TLC存儲區(qū)域所存儲的數(shù)據(jù)的讀寫頻率,所述第四預設條件為:讀寫頻率高于所述SLC存儲區(qū)域所存儲的數(shù)據(jù)的讀寫頻率;
將所述SLC存儲區(qū)域包括的空閑SLC型存儲單元的工作模式由SLC模式轉換為TLC模式,以得到空閑TLC型存儲單元;
將所述SLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元,并將所述TLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到所述SLC存儲區(qū)域包括的空閑SLC型存儲單元。
可選地,所述控制器還用于:
將所述TLC存儲區(qū)域中未標記為已非等量搬移的數(shù)據(jù)的讀寫頻率的最大值,與所述SLC存儲區(qū)域中未標記為待非等量搬移的數(shù)據(jù)的讀寫頻率的最小值進行比較;
在所述最大值大于所述最小值的情況下,確定所述SLC存儲區(qū)域中讀寫頻率小于所述最大值且未標記為待非等量搬移的數(shù)據(jù)量;
在所述數(shù)據(jù)量不小于所述TLC存儲區(qū)域中單個TLC型存儲單元的容量的情況下,將所述SLC存儲區(qū)域中讀寫頻率小于所述最大值且未標記為待非等量搬移的數(shù)據(jù)標記為待等量搬移,并將所述TLC存儲區(qū)域中讀寫頻率為所述最大值且未標記為已非等量搬移的數(shù)據(jù)標記為待等量搬移。
通過上述技術方案,對SLC存儲區(qū)域和TLC存儲區(qū)域各自所存儲的數(shù)據(jù)的讀寫特征進行分析,以確定出SLC存儲區(qū)域包括的多個SLC型存儲單元所存儲的數(shù)據(jù)的讀寫特征,并確定出TLC存儲區(qū)域包括的多個TLC型存儲單元所存儲的數(shù)據(jù)的讀寫特征。然后,根據(jù)確定出的讀寫特征,對SSD包括的SLC存儲區(qū)域的大小以及TLC存儲區(qū)域的大小動態(tài)調整一次或多次,可以使SLC存儲區(qū)域和TLC存儲區(qū)域各自達到使用壽命的時機盡量一致,避免了一部分存儲單元的使用壽命浪費的問題,延長了SSD的生命周期。
本公開的其他特征和優(yōu)點將在隨后的具體實施方式部分予以詳細說明。
附圖說明
附圖是用來提供對本公開的進一步理解,并且構成說明書的一部分,與下面的具體實施方式一起用于解釋本公開,但并不構成對本公開的限制。在附圖中:
圖1是根據(jù)一示例性實施例示出的相關技術中的SSD的示意圖。
圖2是根據(jù)一示例性實施例示出的適用于本公開的SSD的示意圖。
圖3是根據(jù)一示例性實施例示出的一種管理存儲區(qū)域的方法的流程圖。
圖4是根據(jù)一示例性實施例示出的將SLC存儲區(qū)域中的數(shù)據(jù)搬移到TLC存儲區(qū)域的示意圖。
圖5是根據(jù)一示例性實施例示出的將TLC存儲區(qū)域中的數(shù)據(jù)搬移到SLC存儲區(qū)域的示意圖。
具體實施方式
以下結合附圖對本公開的具體實施方式進行詳細說明。應當理解的是,此處所描述的具體實施方式僅用于說明和解釋本公開,并不用于限制本公開。
在對本公開提供的管理存儲區(qū)域的方法進行說明之前,首先對本公開涉及的相關技術進行說明。如在背景技術中所闡述的,相關技術中的SSD包括:控制器、元數(shù)據(jù)存儲區(qū)域、SLC緩存區(qū)域以及TLC存儲區(qū)域。請參考圖1,圖1是根據(jù)一示例性實施例示出的相關技術中的SSD的示意圖。相關技術中的SSD響應來自于電子設備的讀寫請求的過程如下:
響應于來自于電子設備的寫入請求,首先將寫入SSD的數(shù)據(jù)暫存于控制器內(即圖1所示的“數(shù)據(jù)寫入”),之后在FTL的控制下,在SLC緩存區(qū)域為該數(shù)據(jù)分配存儲地址,接著將該數(shù)據(jù)寫入SLC緩存區(qū)域中與該存儲地址對應的存儲單元(即圖1所示的“數(shù)據(jù)寫入1”);在這一過程中,伴隨該數(shù)據(jù)產(chǎn)生的元數(shù)據(jù)(Meta數(shù)據(jù))存于元數(shù)據(jù)存儲區(qū)域(即圖1所示的“元數(shù)據(jù)寫入”)。此外,如在背景技術中所闡述的,在FTL的控制下,緩存在SLC緩存區(qū)域中的數(shù)據(jù)被搬移到TLC存儲區(qū)域(即圖1所示的“數(shù)據(jù)搬移”)。
在某些情況下,F(xiàn)TL沒來得及將緩存在SLC緩存區(qū)域中的數(shù)據(jù)搬移到TLC存儲區(qū)域,此時,SLC緩存區(qū)域的剩余可用存儲空間較小,如果SSD需要響應來自于電子設備的大量的寫入請求,同理,首先將寫入SSD的大量數(shù)據(jù)暫存于控制器內,之后在FTL的控制下,在TLC存儲區(qū)域為分配存儲地址,將該大量數(shù)據(jù)直接寫入TLC緩存區(qū)域中與該存儲地址對應的存儲單元(即圖1所示的“數(shù)據(jù)寫入2”)。
響應于來自于電子設備的讀取請求,如果需要讀取的數(shù)據(jù)存儲于TLC存儲區(qū)域,則在FTL的控制下,從TLC存儲區(qū)域讀取數(shù)據(jù)至控制器(即圖1所示的“數(shù)據(jù)讀取1”),接著再將控制器中的數(shù)據(jù)返回給電子設備,受限于TLC型存儲單元的讀寫性能,讀數(shù)據(jù)的速度較慢;如果需要讀取的數(shù)據(jù)緩存于SLC緩存區(qū)域,則在FTL的控制下,直接從SLC緩存區(qū)域讀取數(shù)據(jù)至控制器(即圖1所示的“數(shù)據(jù)讀取2”),接著再將控制器中的數(shù)據(jù)返回給電子設備(即圖1所示的“數(shù)據(jù)讀取”)。
然而,使用相關技術中的SSD進行數(shù)據(jù)讀寫,存在以下缺陷:
1)如在背景技術中所闡述的,對相關技術中的SSD來說,存在SLC緩存區(qū)域與TLC存儲區(qū)域各自達到使用壽命的時機不一致的問題。
2)難以將SLC緩存區(qū)域與TLC存儲區(qū)域之間的比值,設置為最優(yōu)值。相關技術一般選擇SLC緩存區(qū)域大約占用3%的SSD的標稱容量,使得SLC緩存區(qū)域先于TLC存儲區(qū)域達到使用壽命。無論SLC緩存區(qū)域為多大,在SSD的生命周期內,SLC緩存區(qū)域只是用于緩存寫入SSD的數(shù)據(jù),因此由于SLC緩存區(qū)域的存在,SSD的用戶數(shù)據(jù)空間(對相關技術中的SSD來說,即為TLC存儲區(qū)域)相應減小。SLC緩存區(qū)域設置得越大,用戶數(shù)據(jù)空間減小得越多。
3)在持續(xù)寫入數(shù)據(jù)量大于SLC緩存區(qū)域的剩余可用存儲空間的大小的的情況下,部分數(shù)據(jù)會被直接寫入TLC存儲區(qū)域(如圖1所示的“數(shù)據(jù)寫入2”),受限于TLC型存儲單元的讀寫性能,寫數(shù)據(jù)的速度較慢。該過程中會出現(xiàn)寫入速度顯著下降的問題。
4)除需要讀取的數(shù)據(jù)剛好位于SLC緩存區(qū)域的情況外,在絕大多數(shù)情況下SSD需要從TLC存儲區(qū)域讀取數(shù)據(jù),因而SSD的讀數(shù)據(jù)性能較差。
面對上述缺陷,本公開提出一種管理存儲區(qū)域的方法,用以提高SSD的讀寫速度。本公開考慮到相關技術中SSD包括的SLC緩存區(qū)域不屬于用戶數(shù)據(jù)空間,所以提出將SLC緩存區(qū)域替換為SLC存儲區(qū)域,以得到適用于本公開的SSD。也就是說,適用于本公開的SSD包括:控制器、元數(shù)據(jù)存儲區(qū)域、SLC存儲區(qū)域以及TLC存儲區(qū)域。請參考圖2,圖2是根據(jù)一示例性實施例示出的適用于本公開的SSD的示意圖。
其中,適用于本公開的SSD包括的控制器、元數(shù)據(jù)存儲區(qū)域以及TLC存儲區(qū)域的作用,可參考對相關技術中SSD的說明。適用于本公開的SSD包括的SLC存儲區(qū)域與TLC存儲區(qū)域的作用相同,均用于存儲寫入SSD的數(shù)據(jù),而不是用于緩存寫入SSD的數(shù)據(jù),因而SLC存儲區(qū)域屬于用戶數(shù)據(jù)空間,適用于本公開的SSD的用戶數(shù)據(jù)空間較大。
下面對本公開提供的管理存儲區(qū)域的方法進行說明。本公開提供的管理存儲區(qū)域的方法適用于圖2所示的SSD。請參考圖3,圖3是根據(jù)一示例性實施例示出的一種管理存儲區(qū)域的方法的流程圖。如圖3所示,該方法包括以下步驟:
步驟S31:確定所述SSD的SLC存儲區(qū)域包括的多個SLC型存儲單元所存儲的數(shù)據(jù)的第一讀寫特征,并確定所述SSD的TLC存儲區(qū)域包括的多個TLC型存儲單元所存儲的數(shù)據(jù)的第二讀寫特征;
步驟S32:根據(jù)所述第一讀寫特征和所述第二讀寫特征中的至少一個,對所述TLC存儲區(qū)域與所述SLC存儲區(qū)域之間的比例進行調整。
本公開為了使SLC存儲區(qū)域和TLC存儲區(qū)域各自達到使用壽命的時機盡量相互同步,提出對SSD的用戶數(shù)據(jù)空間進行動態(tài)劃分,以得出大小可變的SLC存儲區(qū)域以及大小可變的TLC存儲區(qū)域。
為了實現(xiàn)動態(tài)劃分,需要對SLC存儲區(qū)域和TLC存儲區(qū)域各自所存儲的數(shù)據(jù)的讀寫特征進行分析,以確定出SLC存儲區(qū)域包括的多個SLC型存儲單元所存儲的數(shù)據(jù)的讀寫特征(記為第一讀寫特征),并確定出TLC存儲區(qū)域包括的多個TLC型存儲單元所存儲的數(shù)據(jù)的讀寫特征(記為第二讀寫特征)。然后,根據(jù)第一讀寫特征和第二讀寫特征中的至少一個,對TLC存儲區(qū)域與SLC存儲區(qū)域之間的比例進行調整,也即調整TLC存儲區(qū)域的大小和SLC存儲區(qū)域的大小。
由于對適用于本公開的SSD來說,SLC存儲區(qū)域的大小和TLC存儲區(qū)域的大小是可以動態(tài)調整的,所以如果SLC存儲區(qū)域和TLC存儲區(qū)域中的一者有使用壽命,則可以將有使用壽命的存儲區(qū)域包括的部分存儲單元的工作模式調整為另一模式,從而得到有使用壽命的SLC存儲區(qū)域以及有使用壽命的TLC存儲區(qū)域。
具體地,如果SLC存儲區(qū)域先達到使用壽命,且TLC存儲區(qū)域還有使用壽命,則可以將該TLC存儲區(qū)域包括的部分存儲單元的工作模式由TLC模式切換為SLC模式,以得到有使用壽命的SLC存儲區(qū)域,因此,相比于相關技術中的SSD,適用于本公開的SSD的生命周期被延長了,避免了相關技術中因TLC存儲區(qū)域達到使用壽命,而導致的一部分存儲單元的使用壽命浪費的問題;如果TLC存儲區(qū)域先達到使用壽命,且SLC存儲區(qū)域還有使用壽命,則可以將該SLC存儲區(qū)域包括的部分存儲單元的工作模式由SLC模式切換為TLC模式,以得到有使用壽命的TLC存儲區(qū)域。
本公開中,通過對SSD包括的SLC存儲區(qū)域的大小以及TLC存儲區(qū)域的大小動態(tài)調整一次或多次,可以使SLC存儲區(qū)域和TLC存儲區(qū)域各自達到使用壽命的時機盡量一致,避免了一部分存儲單元的使用壽命浪費的問題,延長了SSD的生命周期。
可選地,所述方法還包括:
將所述SSD的用戶數(shù)據(jù)空間中的部分存儲單元的工作模式設置為TLC模式,以得到所述TLC存儲區(qū)域;
將所述用戶數(shù)據(jù)空間中除所述部分存儲單元外的剩余存儲單元的工作模式設置為SLC模式,以得到所述SLC存儲區(qū)域,其中,請求寫入所述SSD的數(shù)據(jù)將被存儲在所述SLC存儲區(qū)域。
本公開中,在對SSD包括的SLC存儲區(qū)域的大小以及TLC存儲區(qū)域的大小進行動態(tài)調整之前,可以對該SSD的用戶數(shù)據(jù)空間包括的各個存儲單元的工作模式進行初始化。該初始化的過程如下:
首先,將SSD的用戶數(shù)據(jù)空間包括的部分存儲單元的工作模式設置為TLC模式,以得到TLC存儲區(qū)域。然后,將用戶數(shù)據(jù)空間中除TLC存儲區(qū)域外剩余的存儲單元的工作模式設置為SLC模式,以得到SLC存儲區(qū)域。
考慮到SLC型存儲單元的讀寫速度均高于TLC型存儲單元的讀寫速度,為了提高SSD的讀寫速度,本公開提出將電子設備請求寫入的數(shù)據(jù)存儲到SLC存儲區(qū)域。
對適用于本公開的SSD來說,響應來自于電子設備的讀寫請求的過程如下:
響應于來自于電子設備的寫入請求,首先將寫入SSD的數(shù)據(jù)暫存于控制器內(即圖2所示的“數(shù)據(jù)寫入”),之后在FTL的控制下,在SLC存儲區(qū)域為該數(shù)據(jù)分配存儲地址,接著將該數(shù)據(jù)寫入SLC存儲區(qū)域中與該存儲地址對應的存儲單元(即圖2所示的“數(shù)據(jù)寫入1”);在這一過程中,伴隨該數(shù)據(jù)產(chǎn)生的元數(shù)據(jù)(Meta數(shù)據(jù))存于元數(shù)據(jù)存儲區(qū)域(即圖2所示的“元數(shù)據(jù)寫入”)。
由于請求寫入SSD的數(shù)據(jù)將被存儲在SLC存儲區(qū)域,所以從提高寫入速度的角度考慮,SLC存儲區(qū)域越大越好,因此,一種可選的初始化方式是:預置一個閾值作為TLC存儲區(qū)域的最低容量,該閾值即為上述部分存儲單元的數(shù)量,按照該閾值初始化TLC存儲區(qū)域的大小(如圖2中的雙點劃線所示)。在按照該閾值劃分出TLC存儲區(qū)域后,可以將用戶數(shù)據(jù)空間中剩余的存儲單元的工作模式設置為SLC模式,以將SLC存儲區(qū)域的大小初始化為最大,進而實現(xiàn)最大化地提高SSD的寫入速度。
響應于來自于電子設備的讀取請求,如果需要讀取的數(shù)據(jù)存儲于TLC存儲區(qū)域,則在FTL的控制下,從TLC存儲區(qū)域讀取數(shù)據(jù)至控制器(即圖2所示的“數(shù)據(jù)讀取1”),接著再將控制器中的數(shù)據(jù)返回給電子設備,受限于TLC型存儲單元的讀寫性能,讀數(shù)據(jù)的速度較慢;如果需要讀取的數(shù)據(jù)緩存于SLC緩存區(qū)域,則在FTL的控制下,直接從SLC緩存區(qū)域讀取數(shù)據(jù)至控制器(即圖2所示的“數(shù)據(jù)讀取2”),接著再將控制器中的數(shù)據(jù)返回給電子設備(即圖2所示的“數(shù)據(jù)讀取”)。
為了進一步提高SSD的讀寫速度,本公開提出對寫入SSD的數(shù)據(jù)進行數(shù)據(jù)搬移,以實現(xiàn)將不同讀寫特征的數(shù)據(jù),存儲到對應的存儲單元中。具體過程如下:
首先,可以對SSD已做出響應的讀寫請求進行統(tǒng)計,得出SSD所存儲的數(shù)據(jù)的讀寫特征。其中,數(shù)據(jù)的讀寫特征可以包括:該數(shù)據(jù)在某一歷史段時間段的讀寫頻率,或者該數(shù)據(jù)在某一未來時間段的讀寫頻率。為描述方便,可以將讀寫頻率較高的數(shù)據(jù)稱為熱數(shù)據(jù),以表征電子設備針對該數(shù)據(jù)的讀寫請求較多;同理,將讀寫頻率較低的數(shù)據(jù)稱為冷數(shù)據(jù),以表征電子設備針對該數(shù)據(jù)的讀寫請求較少。
然后,對寫入SSD的數(shù)據(jù)(即因對電子設備的寫入請求進行響應,而存儲到SLC存儲區(qū)域中的數(shù)據(jù))的讀寫特征進行分析,將其中的冷數(shù)據(jù)搬移到TLC存儲區(qū)域中,將其中的熱數(shù)據(jù)保留在SLC存儲區(qū)域中(即圖2所示的“冷數(shù)據(jù)搬移”)。
隨著SSD響應讀寫請求的進行,TLC存儲區(qū)域以及SLC存儲區(qū)域各自所存儲的數(shù)據(jù)的數(shù)據(jù)特征會發(fā)生變化,有些數(shù)據(jù)可能從冷數(shù)據(jù)變成了熱數(shù)據(jù),有些數(shù)據(jù)可能從熱數(shù)據(jù)變成了冷數(shù)據(jù),如果TLC存儲區(qū)域中有數(shù)據(jù)的冷熱程度高于SLC存儲區(qū)域中的任一數(shù)據(jù),則可以將該數(shù)據(jù)搬移到SLC存儲區(qū)域中(即圖2所示的“熱數(shù)據(jù)搬移”)。
SSD多次執(zhí)行以上數(shù)據(jù)搬移過程,可以保證SLC存儲區(qū)域中存儲的數(shù)據(jù)的冷熱程度均高于TLC存儲區(qū)域中存儲的數(shù)據(jù)的冷熱程度,這樣,可以最大化利用SLC型存儲單元的讀寫速度,以進一步提高SSD的讀寫速度。
上述數(shù)據(jù)搬移過程中,如果是進行冷數(shù)據(jù)搬移,則需要在TLC存儲區(qū)域中開辟用于存儲來自于SLC存儲區(qū)域的冷數(shù)據(jù)的存儲單元;如果是進行熱數(shù)據(jù)搬移,則需要在SLC存儲區(qū)域中開辟用于存儲來自于TLC存儲區(qū)域的熱數(shù)據(jù)的存儲單元。
在初始化過程完成后的一段時間內,TLC存儲區(qū)域中有空閑TLC型存儲單元,可以進行冷數(shù)據(jù)搬移,隨著冷數(shù)據(jù)搬移的進行,TLC存儲區(qū)域中的所有存儲單元都被占用,沒有空閑TLC型存儲單元;然而,由于SLC存儲區(qū)域通常較大,所以在初始化過程完成后的所有時間內,SLC存儲區(qū)域中通常有空閑SLC型存儲單元。在沒有空閑TLC型存儲單元,且有空閑SLC型存儲單元的情況下,需要執(zhí)行步驟S32,將空閑SLC型存儲單元的工作模式由SLC模式轉換為TLC模式,從而得到空閑TLC型存儲單元,也即:減小SLC存儲區(qū)域,并增大TLC存儲區(qū)域。
可選地,為了使SLC存儲區(qū)域盡可能大,以應對大量的數(shù)據(jù)讀寫請求,在每次執(zhí)行完冷數(shù)據(jù)搬移后,可以執(zhí)行步驟S32,將TLC存儲區(qū)域中剩余的空閑TLC型存儲單元的工作模式由TLC模式轉換為SLC模式,從而得到空閑SLC型存儲單元,也即:增大SLC存儲區(qū)域,并減小TLC存儲區(qū)域。
可見,在數(shù)據(jù)搬移過程中,如果空閑存儲單元的總容量不夠,可以執(zhí)行步驟S32。由于本公開提出的數(shù)據(jù)搬移可以分為兩種:等量數(shù)據(jù)搬移和非等量數(shù)據(jù)搬移,所以步驟S32的實施方式有所不同。下面對步驟S32的實施方式以及對應的數(shù)據(jù)搬移過程進行說明。
下面對非等量數(shù)據(jù)搬移過程,以及非等量數(shù)據(jù)搬移過程中可能執(zhí)行的步驟S32的實施方式進行說明。
非等量數(shù)據(jù)搬移過程中可能執(zhí)行的步驟S32的實施方式包括以下步驟:
將所述SLC存儲區(qū)域中讀寫頻率低于預設閾值的數(shù)據(jù)標記為待非等量搬移;
將所述SLC存儲區(qū)域包括的空閑SLC型存儲單元的工作模式由SLC模式轉換為TLC模式,以得到空閑TLC型存儲單元;
所述方法還包括:
將所述SLC存儲區(qū)域中標記為待非等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元。
如前所述,SLC存儲區(qū)域通常存儲的是熱數(shù)據(jù),可以將其中較冷的數(shù)據(jù)搬移到TLC存儲區(qū)域。因此,可以對SLC存儲區(qū)域中的數(shù)據(jù)的讀寫特征進行統(tǒng)計,利用預設閾值衡量SLC存儲區(qū)域中的數(shù)據(jù)是否應該被標記為非等量搬移,然后將讀寫頻率低于預設閾值數(shù)據(jù)標記為待非等量搬移。
其中,預設閾值可以是電子設備、SSD或用戶預先設定的。可選地,預設閾值還可以由以下公式得到:
其中,Gtotal=GSLC+GTLC,GSLC表示SLC存儲區(qū)域已存儲的數(shù)據(jù)量,GTLC表示TLC存儲區(qū)域已存儲的數(shù)據(jù)量,G表示SSD的標稱容量。
可選地,將所述SLC存儲區(qū)域所存儲的讀寫頻率低于預設閾值的數(shù)據(jù)標記為待非等量搬移,包括:
對所述SLC存儲區(qū)域中所有數(shù)據(jù)的讀取頻率,按照從高到低的順序進行排序;
將排在后S位的數(shù)據(jù)標記為待非等量搬移,S為大于0的整數(shù)。
可選地,還可以根據(jù)SLC存儲區(qū)域中所有數(shù)據(jù)的讀寫特征,衡量SLC存儲區(qū)域中的數(shù)據(jù)是否應該被標記為非等量搬移。為此,首先對SLC存儲區(qū)域中所有數(shù)據(jù)的讀取頻率,按照從高到低的順序進行排序,然后,將排在后S為的數(shù)據(jù)標記為待非等量搬移。其中,S的大小可以是電子設備、SSD或用戶預先設定的。
在確定出待非等量搬移的數(shù)據(jù)后,檢測TLC存儲區(qū)域中是否有空閑TLC型存儲單元,如果TLC存儲區(qū)域中有空閑TLC型存儲單元,則可以將標記為待非等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元;如果TLC存儲區(qū)域中沒有空閑TLC型存儲單元,則可以將空閑SLC型存儲單元的工作模式由SLC模式轉換為TLC模式,從而得到空閑TLC型存儲單元,接著將SLC存儲區(qū)域中標記為待非等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元。請參考圖4,圖4是根據(jù)一示例性實施例示出的將SLC存儲區(qū)域中的數(shù)據(jù)搬移到TLC存儲區(qū)域的示意圖。
可選地,所述方法還包括:
檢測所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量是否超過預設數(shù)值,所述預設數(shù)值由所述SSD的標稱容量以及所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量與所述TLC存儲區(qū)域已存儲的數(shù)據(jù)量之和確定;
將所述SLC存儲區(qū)域中讀寫頻率低于預設閾值的數(shù)據(jù)標記為待非等量搬移,包括:
在所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量超過所述預設數(shù)值的情況下,將所述SLC存儲區(qū)域中讀寫頻率低于預設閾值的數(shù)據(jù)標記為待非等量搬移。
考慮到非等量數(shù)據(jù)搬移是將標記為待非等量搬移的數(shù)據(jù),從SLC存儲區(qū)域中的數(shù)據(jù)搬移到TLC存儲區(qū)域,非等量數(shù)據(jù)搬移完成之后,如果還需要讀取該數(shù)據(jù),則需要從TLC存儲區(qū)域中讀取,導致讀取速度降低。因而本公開提出預設數(shù)值,用于衡量SLC存儲區(qū)域的剩余可用空間是否足夠應對即將到來的數(shù)據(jù)讀寫請求。其中,預設閾值可以通過對SSD已做出響應的讀寫請求的數(shù)量得出,也可以由電子設備、SSD或用戶預先設定。
在SLC存儲區(qū)域已存儲的數(shù)據(jù)量超過預設數(shù)值的前提下,進行非等量數(shù)據(jù)搬移。如果SLC存儲區(qū)域已存儲的數(shù)據(jù)量超過預設數(shù)值,則說明SLC存儲區(qū)域的剩余可用空閑不足以應對即將到來的數(shù)據(jù)讀寫請求,需要將SLC存儲區(qū)域中的部分數(shù)據(jù)搬移到TLC存儲區(qū)域中,進而開辟出較多的空閑SLC型存儲單元。
下面對等量數(shù)據(jù)搬移過程,以及等量數(shù)據(jù)搬移過程中可能執(zhí)行的步驟S32的實施方式進行說明。
等量數(shù)據(jù)搬移過程中可能執(zhí)行的步驟S32的實施方式包括以下步驟:
在所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量未超過所述預設數(shù)值的情況下,將所述SLC存儲區(qū)域中讀寫頻率符合第三預設條件的數(shù)據(jù)記為待等量搬移,并將所述TLC存儲區(qū)域中讀寫頻率符合第四預設條件的數(shù)據(jù)記為待等量搬移,其中,所述第三預設條件為:讀寫頻率低于所述TLC存儲區(qū)域所存儲的數(shù)據(jù)的讀寫頻率,所述第四預設條件為:讀寫頻率高于所述SLC存儲區(qū)域所存儲的數(shù)據(jù)的讀寫頻率;
將所述SLC存儲區(qū)域包括的空閑SLC型存儲單元的工作模式由SLC模式轉換為TLC模式,以得到空閑TLC型存儲單元;
所述方法還包括:
將所述SLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元,并將所述TLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到所述SLC存儲區(qū)域包括的空閑SLC型存儲單元。
等量數(shù)據(jù)搬移是指:SLC存儲區(qū)域中待等量搬移的數(shù)據(jù)的總量,與TLC存儲區(qū)域中待等量搬移的數(shù)據(jù)的總量是相等的,從SLC存儲區(qū)域中搬走多少數(shù)據(jù),相應地,從TLC存儲區(qū)域中搬來多少數(shù)據(jù)。SLC存儲區(qū)域以及TLC存儲區(qū)域各自所存儲的數(shù)據(jù)量,不因等量數(shù)據(jù)搬移而發(fā)生變化。
通常情況下,不進行等量數(shù)據(jù)搬移,以節(jié)約SSD的功耗。因而,執(zhí)行等量數(shù)據(jù)搬移,是有前提條件的,該前提條件為:TLC存儲區(qū)域中某些數(shù)據(jù)的讀寫頻率高于SLC存儲區(qū)域中某些數(shù)據(jù)的讀寫頻率,并且SLC存儲區(qū)域中有足夠的數(shù)據(jù)的讀寫頻率均低于TLC存儲區(qū)域中某些數(shù)據(jù)的讀寫頻率。由于3個SLC型存儲單元的總容量等于單個TLC型存儲單元的總容量,所以,如果SLC存儲區(qū)域中讀寫頻率較低的數(shù)據(jù)的總量達到或超過單個TLC型存儲單元的總容量,并且這些讀寫頻率較低的數(shù)據(jù)的讀寫頻率均低于TLC存儲區(qū)域中某些數(shù)據(jù)的讀寫頻率,則可以進行等量數(shù)據(jù)搬移。
與進行非等量數(shù)據(jù)搬移相比,進行等量數(shù)據(jù)搬移發(fā)生在SLC存儲區(qū)域已存儲的數(shù)據(jù)量未超過預設數(shù)值的情況下。進行等量數(shù)據(jù)搬移的過程如下:
首先,將SLC存儲區(qū)域所處存儲的所有數(shù)據(jù)的讀寫頻率,分別與TLC存儲區(qū)域所存儲的所有數(shù)據(jù)的讀寫頻率進行比較,將SLC存儲區(qū)域中讀寫頻率低于TLC存儲區(qū)域所存儲的數(shù)據(jù)的讀寫頻率的數(shù)據(jù)標記為待等量搬移,并將TLC存儲區(qū)域中讀寫頻率低于SLC存儲區(qū)域所存儲的數(shù)據(jù)的讀寫頻率的數(shù)據(jù)標記為待等量搬移。
可選地,為提高將某一數(shù)據(jù)標記為待等量搬移的效率,可以執(zhí)行以下步驟:
將所述TLC存儲區(qū)域中所有數(shù)據(jù)的讀寫頻率的最大值,與所述SLC存儲區(qū)域中所有數(shù)據(jù)的讀寫頻率的最小值進行比較;
在所述最大值大于所述最小值的情況下,確定所述SLC存儲區(qū)域中讀寫頻率小于所述最大值且未標記為待非等量搬移的數(shù)據(jù)量;
在所述數(shù)據(jù)量不小于所述TLC存儲區(qū)域中單個TLC型存儲單元的容量的情況下,將所述SLC存儲區(qū)域中讀寫頻率小于所述最大值且未標記為待非等量搬移的數(shù)據(jù)標記為待等量搬移,并將所述TLC存儲區(qū)域中讀寫頻率為所述最大值且未標記為已非等量搬移的數(shù)據(jù)標記為待等量搬移。
首先,可以分別對TLC存儲區(qū)域以及SLC存儲區(qū)域各自所存儲的所有數(shù)據(jù)的讀寫頻率,按照從高到低的順序排列,進而確定TLC存儲區(qū)域中所有數(shù)據(jù)的讀寫頻率的最大值,并確定SLC存儲區(qū)域中所有數(shù)據(jù)的讀寫頻率的最小值,如果該最大值大于該最小值,則說明TLC存儲區(qū)域中某些數(shù)據(jù)的讀寫頻率高于SLC存儲區(qū)域中某些數(shù)據(jù)的讀寫頻率,有可能執(zhí)行等量數(shù)據(jù)搬移,反之,則無需執(zhí)行等量數(shù)據(jù)搬移。
在上述最大值大于上述最小值的前提下,確定SLC存儲區(qū)域中讀寫頻率小于該最大值的數(shù)據(jù)的總量,并該總量與單個TLC型存儲單元的容量進行比較,如果該總量不小于單個TLC型存儲單元的容量,則說明SLC存儲區(qū)域中有足夠的數(shù)據(jù)的讀寫頻率均低于該最大值,可以進行等量數(shù)據(jù)搬移,反之,則無需進行等量數(shù)據(jù)搬移。
最后,將TLC存儲區(qū)域中讀寫頻率為上述最大值的數(shù)據(jù)標記為待非等量搬移,并將SLC存儲區(qū)域中讀寫頻率小于上述最大值的數(shù)據(jù)標記為待等量搬移。
在確定出待等量搬移的數(shù)據(jù)后,檢測TLC存儲區(qū)域中是否有空閑TLC型存儲單元,如果TLC存儲區(qū)域中有空閑TLC型存儲單元,則可以將標記為待非等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元;如果TLC存儲區(qū)域中沒有空閑TLC型存儲單元,則可以將空閑SLC型存儲單元的工作模式由SLC模式轉換為TLC模式,從而得到空閑TLC型存儲單元,接著將SLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元,并將TLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到空閑SLC型存儲單元。請參考圖5,圖5是根據(jù)一示例性實施例示出的將TLC存儲區(qū)域中的數(shù)據(jù)搬移到SLC存儲區(qū)域的示意圖。
可選地,在將所述SLC存儲區(qū)域中標記為待非等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元之后,所述方法還包括:
將所述TLC存儲區(qū)域中標記為待非等量搬移的數(shù)據(jù)標記為已非等量搬移;
根據(jù)所述第一讀寫特征和所述第二讀寫特征中的至少一個,對所述TLC存儲區(qū)域與所述SLC存儲區(qū)域之間的比例進行調整,包括:
將所述SLC存儲區(qū)域中滿足第一預設條件的數(shù)據(jù)標記為待等量搬移,并將所述TLC存儲區(qū)域中滿足第二預設條件的數(shù)據(jù)標記為待等量搬移,其中,所述第一預設條件為:未標記為待非等量搬移,且讀寫頻率小于所述TLC存儲區(qū)域中未標記為已非等量搬移的數(shù)據(jù)的讀寫頻率,所述第二預設條件為:未標記為已非等量搬移,且讀寫頻率大于所述SLC存儲區(qū)域中未標記為待非等量搬移的數(shù)據(jù)的讀寫頻率;
將所述SLC存儲區(qū)域包括的空閑SLC型存儲單元的工作模式由SLC模式轉換為TLC模式,以得到空閑TLC型存儲單元;
所述方法還包括:
將所述SLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元,并將所述TLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到所述SLC存儲區(qū)域包括的空閑SLC型存儲單元。
可選地,將所述SLC存儲區(qū)域中滿足第一預設條件的數(shù)據(jù)標記為待等量搬移,并將所述TLC存儲區(qū)域中滿足第二預設條件的數(shù)據(jù)標記為待等量搬移,包括:
將所述TLC存儲區(qū)域中未標記為已非等量搬移的數(shù)據(jù)的讀寫頻率的最大值,與所述SLC存儲區(qū)域中未標記為待非等量搬移的數(shù)據(jù)的讀寫頻率的最小值進行比較;
在所述最大值大于所述最小值的情況下,確定所述SLC存儲區(qū)域中讀寫頻率小于所述最大值且未標記為待非等量搬移的數(shù)據(jù)量;
在所述數(shù)據(jù)量不小于所述TLC存儲區(qū)域中單個TLC型存儲單元的容量的情況下,將所述SLC存儲區(qū)域中讀寫頻率小于所述最大值且未標記為待非等量搬移的數(shù)據(jù)標記為待等量搬移,并將所述TLC存儲區(qū)域中讀寫頻率為所述最大值且未標記為已非等量搬移的數(shù)據(jù)標記為待等量搬移。
在執(zhí)行完非等量數(shù)據(jù)搬移之后,還有可能執(zhí)行等量數(shù)據(jù)搬移。此時判斷是否需要執(zhí)行等量數(shù)據(jù)搬移,應該把非等量數(shù)據(jù)搬移所針對的數(shù)據(jù)排除在外,因為非等量數(shù)據(jù)搬移所針對的數(shù)據(jù)在SLC存儲區(qū)域中是相對較冷的數(shù)據(jù),被搬移到TLC存儲區(qū)域中后,在TLC存儲區(qū)域中是相對較熱的數(shù)據(jù)。如果將非等量數(shù)據(jù)搬移所針對的數(shù)據(jù)考慮在內,以判斷是否需要執(zhí)行等量數(shù)據(jù)搬移,則會引發(fā)針對同一數(shù)據(jù)反復搬移的情況,無謂地增加SSD的功耗。
為了把非等量數(shù)據(jù)搬移所針對的數(shù)據(jù)排除在外,可以在將SLC存儲區(qū)域中標記為待非等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元之后,將TLC存儲區(qū)域中標記為待非等量搬移的數(shù)據(jù)標記為已非等量搬移。這樣,非等量數(shù)據(jù)搬移所針對的數(shù)據(jù)在SLC存儲區(qū)域中被標記為待非等量搬移,且在TLC存儲區(qū)域中被標記為已非等量搬移。因而,可以根據(jù)SLC存儲區(qū)域中未標記為待非等量搬移數(shù)據(jù),以及TLC存儲區(qū)域中未標記為已非等量搬移的數(shù)據(jù),判斷是否進行等量數(shù)據(jù)搬移,如果需要進行等量數(shù)據(jù)搬移,等量數(shù)據(jù)搬移所搬移的數(shù)據(jù)也是未被標記為待非等量搬移且未被標記為已非等量搬移的。具體等量數(shù)據(jù)搬移的過程可參考前文,在此就不再贅述。
基于同一發(fā)明構思,本公開還提供一種固態(tài)硬盤。該固態(tài)硬盤可參考圖2。如圖2所示,該固態(tài)硬盤包括:控制器、SLC存儲區(qū)域、TLC存儲區(qū)域,所述控制器用于:
確定所述SSD的SLC存儲區(qū)域包括的多個SLC型存儲單元所存儲的數(shù)據(jù)的第一讀寫特征,并確定所述SSD的TLC存儲區(qū)域包括的多個TLC型存儲單元所存儲的數(shù)據(jù)的第二讀寫特征;
根據(jù)所述第一讀寫特征和所述第二讀寫特征中的至少一個,對所述TLC存儲區(qū)域與所述SLC存儲區(qū)域之間的比例進行調整。
可選地,所述控制器還用于:
將所述SSD的用戶數(shù)據(jù)空間包括的部分存儲單元的工作模式設置為TLC模式,以得到所述TLC存儲區(qū)域;
將所述用戶數(shù)據(jù)空間中除所述部分存儲單元外的剩余存儲單元的工作模式設置為SLC模式,以得到所述SLC存儲區(qū)域,其中,請求寫入所述SSD的數(shù)據(jù)將被存儲在所述SLC存儲區(qū)域。
可選地,所述控制器還用于:
將所述SLC存儲區(qū)域中讀寫頻率低于預設閾值的數(shù)據(jù)標記為待非等量搬移;
將所述SLC存儲區(qū)域包括的空閑SLC型存儲單元的工作模式由SLC模式轉換為TLC模式,以得到空閑TLC型存儲單元;
將所述SLC存儲區(qū)域中標記為待非等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元。
可選地,所述控制器還用于:
對所述SLC存儲區(qū)域中所有數(shù)據(jù)的讀取頻率,按照從高到低的順序進行排序;
將排在后S位的數(shù)據(jù)標記為待非等量搬移,S為大于0的整數(shù)。
可選地,所述控制器還用于:
檢測所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量是否超過預設數(shù)值,所述預設數(shù)值由所述SSD的標稱容量以及所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量與所述TLC存儲區(qū)域已存儲的數(shù)據(jù)量之和確定;
在所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量超過所述預設數(shù)值的情況下,將所述SLC存儲區(qū)域中讀寫頻率低于預設閾值的數(shù)據(jù)標記為待非等量搬移。
可選地,所述控制器還用于:
在將所述SLC存儲區(qū)域中標記為待非等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元之后,將所述TLC存儲區(qū)域中標記為待非等量搬移的數(shù)據(jù)標記為已非等量搬移;
將所述SLC存儲區(qū)域中滿足第一預設條件的數(shù)據(jù)標記為待等量搬移,并將所述TLC存儲區(qū)域中滿足第二預設條件的數(shù)據(jù)標記為待等量搬移,其中,所述第一預設條件為:未標記為待非等量搬移,且讀寫頻率小于所述TLC存儲區(qū)域中未標記為已非等量搬移的數(shù)據(jù)的讀寫頻率,所述第二預設條件為:未標記為已非等量搬移,且讀寫頻率大于所述SLC存儲區(qū)域中未標記為待非等量搬移的數(shù)據(jù)的讀寫頻率;
將所述SLC存儲區(qū)域包括的空閑SLC型存儲單元的工作模式由SLC模式轉換為TLC模式,以得到空閑TLC型存儲單元;
將所述SLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元,并將所述TLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到所述SLC存儲區(qū)域包括的空閑SLC型存儲單元。
可選地,所述控制器還用于:
在所述SLC存儲區(qū)域已存儲的數(shù)據(jù)量未超過所述預設數(shù)值的情況下,將所述SLC存儲區(qū)域中讀寫頻率符合第三預設條件的數(shù)據(jù)記為待等量搬移,并將所述TLC存儲區(qū)域中讀寫頻率符合第四預設條件的數(shù)據(jù)記為待等量搬移,其中,所述第三預設條件為:讀寫頻率低于所述TLC存儲區(qū)域所存儲的數(shù)據(jù)的讀寫頻率,所述第四預設條件為:讀寫頻率高于所述SLC存儲區(qū)域所存儲的數(shù)據(jù)的讀寫頻率;
將所述SLC存儲區(qū)域包括的空閑SLC型存儲單元的工作模式由SLC模式轉換為TLC模式,以得到空閑TLC型存儲單元;
將所述SLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到空閑TLC型存儲單元,并將所述TLC存儲區(qū)域中標記為待等量搬移的數(shù)據(jù)搬移到所述SLC存儲區(qū)域包括的空閑SLC型存儲單元。
可選地,所述控制器還用于:
將所述TLC存儲區(qū)域中未標記為已非等量搬移的數(shù)據(jù)的讀寫頻率的最大值,與所述SLC存儲區(qū)域中未標記為待非等量搬移的數(shù)據(jù)的讀寫頻率的最小值進行比較;
在所述最大值大于所述最小值的情況下,確定所述SLC存儲區(qū)域中讀寫頻率小于所述最大值且未標記為待非等量搬移的數(shù)據(jù)量;
在所述數(shù)據(jù)量不小于所述TLC存儲區(qū)域中單個TLC型存儲單元的容量的情況下,將所述SLC存儲區(qū)域中讀寫頻率小于所述最大值且未標記為待非等量搬移的數(shù)據(jù)標記為待等量搬移,并將所述TLC存儲區(qū)域中讀寫頻率為所述最大值且未標記為已非等量搬移的數(shù)據(jù)標記為待等量搬移。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將固態(tài)硬盤的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的裝置的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本申請各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本申請的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質中,包括若干指令用以使得固態(tài)硬盤執(zhí)行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、RAM存儲器、磁碟或者光盤等各種可以存儲程序代碼的介質。
具體來講,本申請實施例中的一種數(shù)據(jù)寫入方法對應的計算機程序指令可以被存儲在光盤,硬盤,U盤等存儲介質上,當存儲介質中的與一種數(shù)據(jù)寫入方法對應的計算機程序指令被一固態(tài)硬盤讀取或被執(zhí)行時,包括以上管理存儲區(qū)域的方法的各個步驟。
以上結合附圖詳細描述了本公開的優(yōu)選實施方式,但是,本公開并不限于上述實施方式中的具體細節(jié),在本公開的技術構思范圍內,可以對本公開的技術方案進行多種簡單變型,這些簡單變型均屬于本公開的保護范圍。
另外需要說明的是,在上述具體實施方式中所描述的各個具體技術特征,在不矛盾的情況下,可以通過任何合適的方式進行組合,為了避免不必要的重復,本公開對各種可能的組合方式不再另行說明。
此外,本公開的各種不同的實施方式之間也可以進行任意組合,只要其不違背本公開的思想,其同樣應當視為本公開所公開的內容。