本發(fā)明關(guān)于快閃存儲器,尤指一種基于容錯式磁碟陣列式校驗(yàn)的錯誤處理方法,以及相關(guān)存儲器控制器與數(shù)據(jù)儲存設(shè)備。
背景技術(shù):
1、錯誤校正編碼(error?correction?coding,ecc)被用于糾正從快閃存儲器設(shè)備的讀取錯誤。在數(shù)據(jù)儲存前,可透過ecc編碼器進(jìn)行編碼以生成保護(hù)資訊,這些資訊可以與原始數(shù)據(jù)一起儲存為ecc碼字。除此之外,快閃存儲器儲存設(shè)備還運(yùn)用了一種容錯式磁碟陣列(redundant?array?of?independent?disks,raid)式的數(shù)據(jù)保護(hù)技術(shù),該技術(shù)使用raid奇偶校驗(yàn)來實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)與糾正,并且,raid式校驗(yàn)與糾正可以用于處理超出ecc糾正能力的數(shù)據(jù)錯誤。
2、一般來說,當(dāng)檢測出ecc解碼錯誤或者是raid解碼錯誤,快閃存儲器設(shè)備上運(yùn)行的錯誤處理機(jī)制,會對解碼錯誤的數(shù)據(jù)所屬的區(qū)塊進(jìn)行回收操作,將該區(qū)塊上所有數(shù)據(jù)搬移至快閃存儲器儲存設(shè)備中的其他區(qū)塊,避免潛在的數(shù)據(jù)損毀。然而,隨著快閃存儲器設(shè)備儲存密度的上升,單一區(qū)塊的大小也大幅提升。因數(shù)據(jù)錯誤而導(dǎo)致的數(shù)據(jù)搬移量也會大幅提高。因此,需要一種更有效率的錯誤處理機(jī)制來解決以上的問題。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明提出一種創(chuàng)新的錯誤處理機(jī)制。在本發(fā)明實(shí)施例中,錯誤處理流程在針對數(shù)據(jù)錯誤進(jìn)行數(shù)據(jù)搬移時,會以單一raid校驗(yàn)數(shù)據(jù)的保護(hù)范圍來考慮待數(shù)據(jù)搬移的范圍。換句話說,當(dāng)發(fā)生數(shù)據(jù)錯誤(如,讀取數(shù)據(jù)時的解碼錯誤或者是寫入數(shù)據(jù)時的編程錯誤),僅有關(guān)聯(lián)于同一raid校驗(yàn)數(shù)據(jù)的儲存數(shù)據(jù)才會被搬移。如此一來,有效降低了數(shù)據(jù)搬移量并且也提高了錯誤處理的效率。眾所周知的是,快閃存儲器的寫入抹除次數(shù)(p/ecycles)有限,因此,當(dāng)錯誤處理時的數(shù)據(jù)搬移量被降低,可以在保證數(shù)據(jù)安全性的前提下,延長快閃存儲器的壽命。
2、本發(fā)明的實(shí)施例提供一種用于一快閃存儲器的錯誤處理方法,該方錯誤處理法包含:因應(yīng)發(fā)生解碼錯誤的一讀取數(shù)據(jù)或發(fā)生編程錯誤的一寫入數(shù)據(jù),決定與該讀取數(shù)據(jù)或該寫入數(shù)據(jù)對應(yīng)的一校驗(yàn)數(shù)據(jù);根據(jù)該校驗(yàn)數(shù)據(jù),從該快閃存儲器中選擇出多筆待搬移數(shù)據(jù);以及執(zhí)行一數(shù)據(jù)搬移操作,以將該多筆待搬移數(shù)據(jù)搬移至該快閃存儲器中的一目標(biāo)儲存空間。
3、本發(fā)明的實(shí)施例提供一種用于一快閃存儲器的存儲器控制器。該存儲器控制器包含:一儲存單元與一處理單元。該儲存單元用以儲存一程序碼。該處理單元用以執(zhí)行該程序碼,以對該快閃存儲器進(jìn)行錯誤處理,包含:因應(yīng)發(fā)生解碼錯誤的一讀取數(shù)據(jù)或發(fā)生編程錯誤的一寫入數(shù)據(jù),決定與該讀取數(shù)據(jù)或該寫入數(shù)據(jù)對應(yīng)的一校驗(yàn)數(shù)據(jù);根據(jù)該校驗(yàn)數(shù)據(jù),從該快閃存儲器中選擇出多筆待搬移數(shù)據(jù);以及執(zhí)行一數(shù)據(jù)搬移操作,以將該多筆待搬移數(shù)據(jù)搬移至該快閃存儲器中的一目標(biāo)儲存空間。
1.一種用于一快閃存儲器的錯誤處理方法,包含:
2.如權(quán)利要求1所述的錯誤處理方法,其特征在于,該校驗(yàn)數(shù)據(jù)為一容錯式磁碟陣列(redundant?array?of?independent?disks,raid)校驗(yàn)數(shù)據(jù),且該raid校驗(yàn)數(shù)據(jù)為該儲存數(shù)據(jù)與該快閃存儲器內(nèi)一筆或多筆儲存數(shù)據(jù)進(jìn)行互斥或運(yùn)算所產(chǎn)生,或者該raid校驗(yàn)數(shù)據(jù)為該寫入數(shù)據(jù)與該快閃存儲器內(nèi)一筆或多筆儲存數(shù)據(jù)進(jìn)行互斥或運(yùn)算所產(chǎn)生。
3.如權(quán)利要求1所述的錯誤處理方法,其特征在于,選擇出該多筆待搬移數(shù)據(jù)的步驟包含:
4.如權(quán)利要求3所述的錯誤處理方法,其特征在于,選擇出該多筆待搬移數(shù)據(jù)的步驟包含:
5.如權(quán)利要求4所述的錯誤處理方法,其特征在于,決定該筆儲存數(shù)據(jù)是否為有效數(shù)據(jù)的步驟包含:
6.如權(quán)利要求1所述的錯誤處理方法,其特征在于,另包含:
7.如權(quán)利要求6所述的錯誤處理方法,其特征在于,另包含:
8.如權(quán)利要求6所述的錯誤處理方法,其特征在于,該使用中儲存空間為該快閃存儲器中之一超級區(qū)塊(super?block)的多個儲存庫(bank)中的一使用中儲存庫,以及該目標(biāo)儲存空間為該超級區(qū)塊的多個儲存庫中不同于該使用中儲存庫的一者。
9.如權(quán)利要求8所述的錯誤處理方法,其特征在于,該多個儲存庫中的每一者用于儲存該校驗(yàn)數(shù)據(jù)與關(guān)聯(lián)于該校驗(yàn)數(shù)據(jù)的一筆或多筆儲存數(shù)據(jù)。
10.如權(quán)利要求1所述的錯誤處理方法,其特征在于,解碼錯誤為錯誤校正編碼(errorcorrection?code,ecc)校驗(yàn)操作的硬解碼(hard?decoding)錯誤、ecc校驗(yàn)操作的軟解碼(soft?decoding)錯誤以及raid校驗(yàn)操作的解碼錯誤中的一者。
11.一種用于一快閃存儲器的存儲器控制器,包含:
12.如權(quán)利要求11所述的存儲器控制器,其特征在于,該校驗(yàn)數(shù)據(jù)為一容錯式磁碟陣列(redundant?array?of?independent?disks,raid)校驗(yàn)數(shù)據(jù),且該raid校驗(yàn)數(shù)據(jù)為該存儲器控制器對該儲存數(shù)據(jù)與一筆或多筆儲存數(shù)據(jù)進(jìn)行互斥或運(yùn)算所產(chǎn)生,或者該raid校驗(yàn)數(shù)據(jù)為該存儲器控制器對該寫入數(shù)據(jù)與一筆或多筆儲存數(shù)據(jù)進(jìn)行互斥或運(yùn)算所產(chǎn)生。
13.如權(quán)利要求11所述的存儲器控制器,其特征在于,該存儲器控制器執(zhí)行以下操作:
14.如權(quán)利要求13所述的存儲器控制器,其特征在于,該存儲器控制器執(zhí)行以下操作:
15.如權(quán)利要求14所述的存儲器控制器,其特征在于,該存儲器控制器執(zhí)行以下操作:
16.如權(quán)利要求11所述的存儲器控制器,其特征在于,該存儲器控制器執(zhí)行以下操作:
17.如權(quán)利要求16所述的存儲器控制器,其特征在于,該存儲器控制器執(zhí)行以下操作:
18.如權(quán)利要求16所述的存儲器控制器,其特征在于,該使用中儲存空間為該快閃存儲器中之一超級區(qū)塊(super?block)的多個儲存庫(bank)中的一使用中儲存庫,以及該目標(biāo)儲存空間為該超級區(qū)塊的多個儲存庫中不同于該使用中儲存庫的一者。
19.如權(quán)利要求18所述的存儲器控制器,其特征在于,該多個儲存庫中的每一者用于儲存一校驗(yàn)數(shù)據(jù)與該校驗(yàn)數(shù)據(jù)所保護(hù)的一筆或多筆儲存數(shù)據(jù)。
20.如權(quán)利要求11所述的存儲器控制器,其特征在于,解碼錯誤為錯誤校正編碼(errorcorrection?code,ecc)校驗(yàn)操作的硬解碼(hard?decoding)錯誤、ecc校驗(yàn)操作的軟解碼(soft?decoding)錯誤以及raid校驗(yàn)操作的解碼錯誤中的一者。
21.一種數(shù)據(jù)儲存設(shè)備,包含有如權(quán)利要求11所述的存儲器控制器以及一快閃存儲器。