用于數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)可靠性方案的制作方法
【技術(shù)領(lǐng)域】
[0001]該公開涉及用于計算機系統(tǒng)的數(shù)據(jù)存儲系統(tǒng),例如固態(tài)驅(qū)動器。更特別地,本公開涉及用于數(shù)據(jù)存儲系統(tǒng)的數(shù)據(jù)可靠性方案。
【背景技術(shù)】
[0002]諸如硬盤和固態(tài)驅(qū)動器的許多數(shù)據(jù)存儲部件具有制造商向客戶提供的某些所宣揚的可靠性保證。例如,某些固態(tài)驅(qū)動器制造商保證10 16或10 17的驅(qū)動器故障率。為了增加數(shù)據(jù)可靠性,諸如RAID (獨立磁盤冗余陣列)的數(shù)據(jù)冗余方案用于增加存儲可靠性??梢酝ㄟ^將存儲裝置內(nèi)的多個存儲元件組合成組并且提供鏡像和/或誤差校驗機制來提供冗余。例如,固態(tài)存儲裝置的各個存儲器塊可以被組合為其中存儲有用戶數(shù)據(jù)的條組(stripegroup)ο
【附圖說明】
[0003]現(xiàn)在將參照以下附圖來描述體現(xiàn)本發(fā)明的各個特征的系統(tǒng)和方法,在附圖中:
[0004]圖1示出根據(jù)本發(fā)明的一個實施例的主機系統(tǒng)和實現(xiàn)數(shù)據(jù)可靠性方案的存儲系統(tǒng)的組合。
[0005]圖2是根據(jù)本發(fā)明的一個實施例的示出包括多個管芯的閃速頁(F-頁)的超級-頁(S-頁)的示圖。
[0006]圖3是根據(jù)本發(fā)明的另一實施例的示出包括多個管芯的F-頁的S-頁的示圖。
[0007]圖4是示出根據(jù)本發(fā)明的一個實施例的實現(xiàn)數(shù)據(jù)可靠性方案的過程的流程圖。
[0008]圖5是示出根據(jù)本發(fā)明的一個實施例的數(shù)據(jù)提取和恢復(fù)的過程的流程圖。
[0009]圖6是示出根據(jù)本發(fā)明的另一實施例的數(shù)據(jù)提取和恢復(fù)的過程的流程圖。
【具體實施方式】
[0010]雖然描述了某些實施例,但是僅通過示例的方式呈現(xiàn)這些實施例,并且這些實施例不是要限制保護范圍。確實,可以以各種其他形式來體現(xiàn)在此描述的新穎方法和系統(tǒng)。更進一步地,在不背離保護范圍的情況下,可以做出在此描述的方法和系統(tǒng)的形式上的各種省略、替代和改變。
[0011]在一些實施例中,如在該公開中使用的對數(shù)據(jù)“編碼”或“進行編碼”指的是對數(shù)據(jù)進行編碼的處理和/或?qū)?shù)據(jù)進行解碼的處理。例如,可使用誤差校正碼來執(zhí)行編碼和/或解碼。在一些實施例中,諸如閃速存儲器的非易失性固態(tài)存儲器陣列可被劃分為諸如塊、頁等的物理數(shù)據(jù)單位。在一些實施例中,閃速存儲器頁(F-頁)可與在單個操作中可被編程的(例如,原子地)或作為單位的、閃速存儲器的最小單位對應(yīng)。在一些實施例中,塊可包括多個頁,并且塊可與在單個操作中可被擦除的(例如,原子地)或作為單位的、閃速存儲器的最小單位對應(yīng)。在一些實施例中,閃速存儲器頁可包括多個群組的存儲器位置(例如,E-頁)。
[0012]概況
[0013]所公開的數(shù)據(jù)可靠性方案可減少對存儲在數(shù)據(jù)存儲系統(tǒng)中的數(shù)據(jù)進行處理(例如,讀取)并且當(dāng)必要時執(zhí)行數(shù)據(jù)恢復(fù)所需要的時間量。在本發(fā)明的一些實施例中,控制器被配置為針對存儲在數(shù)據(jù)存儲系統(tǒng)中的數(shù)據(jù)實現(xiàn)頁間奇偶(inter page parity)(例如,RAID配置中的里德所羅門(Reed-Solomon)碼)。頁間奇偶包括針對用戶數(shù)據(jù)的多個F-頁(閃速頁)而確定的或生成的奇偶數(shù)據(jù)。在一個實施例中,在一組F-頁之中,被認(rèn)為對于存儲數(shù)據(jù)來說更可靠的(例如,具有最高質(zhì)量的)F-頁可被選擇用于存儲頁間奇偶數(shù)據(jù),而其他F-頁可用于存儲用戶數(shù)據(jù)。此外,在處理之前控制器可填充用戶數(shù)據(jù),從而經(jīng)編碼的數(shù)據(jù)單位具有用于處理的相同尺寸??刂破骺蛇M一步使用與F-頁的尺寸的粒度或諸如E-頁(誤差校正碼頁)的粒度的更精細(xì)粒度相匹配的粒度來管理頁間奇偶,其中F-頁包括多個這樣更小的E-頁。在一些實施例中,當(dāng)使用比F-頁尺寸更精細(xì)的粒度來管理頁間奇偶時,在不使用來自冗余序列的每個F-頁的所有用戶和奇偶數(shù)據(jù)的情況下,在存儲器發(fā)生故障時可恢復(fù)數(shù)據(jù)。
[0014]在本發(fā)明的一些實施例中,控制器被配置為針對數(shù)據(jù)存儲系統(tǒng)中存儲的數(shù)據(jù)實現(xiàn)頁內(nèi)奇偶和頁間奇偶兩者。頁內(nèi)奇偶和頁間奇偶可使能針對所存儲的數(shù)據(jù)的兩個級別的保護。例如,在與對被存儲在E-頁中的數(shù)據(jù)進行讀取或解碼相關(guān)聯(lián)的檢測到的誤差校驗碼(ECC)誤差的情況下,F(xiàn)-頁內(nèi)頁奇偶數(shù)據(jù)(例如,低密度奇偶校驗碼)提供初始冗余。F-頁內(nèi)奇偶數(shù)據(jù)最初可用于嘗試對針對E-頁的檢測到的ECC誤差進行校正,并且用于恢復(fù)被存儲在E-頁中的用戶數(shù)據(jù)。如果控制器不能對檢測到的ECC誤差進行校正,則控制器可以使用F-頁間奇偶數(shù)據(jù)來嘗試針對E-頁執(zhí)行數(shù)據(jù)恢復(fù)。
[0015]在本發(fā)明的一些實施例中,控制器被配置為在返回數(shù)據(jù)讀取誤差之前用盡用于嘗試對ECC誤差進行校正的多個選項。例如,控制器可以使用經(jīng)調(diào)整的電壓閾值水平來執(zhí)行E-頁的重新讀取,并且使用經(jīng)調(diào)整的解碼參數(shù)來對來自E-頁的數(shù)據(jù)進行重新解碼。此外,當(dāng)針對E-頁執(zhí)行頁間奇偶恢復(fù)時,控制器可以重新讀取或重新解碼其他E-頁以嘗試成功地恢復(fù)E-頁的數(shù)據(jù)。
[0016]系統(tǒng)概況
[0017]圖1示出根據(jù)本發(fā)明的一個實施例的主機系統(tǒng)110和實現(xiàn)數(shù)據(jù)可靠性方案的存儲系統(tǒng)120的組合100。如所示出的那樣,存儲系統(tǒng)120 (例如,混合硬驅(qū)動器、固態(tài)驅(qū)動器等)包括控制器130和一個或更多個非易失性存儲器(NVM)陣列140。NVM陣列140可被包括在單個管芯或多個管芯上。控制器130包括誤差校正模塊132,誤差校正模塊132可實現(xiàn)并且維持針對存儲系統(tǒng)120的一個或更多個數(shù)據(jù)冗余方案。例如,誤差校正模塊132可實現(xiàn)針對包括E-頁的一組F-頁的頁間奇偶和頁內(nèi)奇偶。頁間奇偶和頁內(nèi)奇偶可被維持在F-頁和/或E-頁粒度水平。進一步地,誤差校正模塊132可取決于用于存儲數(shù)據(jù)的管芯的質(zhì)量(例如,可靠性)來分配NVM管芯的頁以供存儲用戶數(shù)據(jù)或頁間奇偶數(shù)據(jù)使用。此外,當(dāng)檢測到不可校正的頁內(nèi)誤差時,誤差校正模塊132可執(zhí)行兩階段數(shù)據(jù)恢復(fù)方法。在第一階段中,可執(zhí)行存儲器的頁的多個頁內(nèi)重新讀取或重新解碼嘗試。如果第一階段在恢復(fù)所存儲的數(shù)據(jù)方面是不成功的,則在第二階段中,可執(zhí)行頁間重新恢復(fù),頁間重新恢復(fù)可以包括指向存儲器的其他頁的頁內(nèi)重新讀取或重新解碼嘗試。
[0018]控制器130可從主機系統(tǒng)110的存儲設(shè)備接口模塊112(例如,裝置驅(qū)動器)接收數(shù)據(jù)和/或存儲訪問命令。由存儲設(shè)備接口模塊112傳送的存儲訪問命令可包括由主機系統(tǒng)110發(fā)出的寫入和讀取命令。命令可指定存儲系統(tǒng)120中的邏輯塊地址,并且控制器130可執(zhí)行NVM陣列140中的接收到的命令。在一個實施例中,數(shù)據(jù)還可以被存儲在一個或更多個磁介質(zhì)存儲模塊(在圖1中未示出)中。在一個實施例中,可包括其他類型的存儲模塊來替代NVM陣列140和/或磁介質(zhì)存儲模塊,或除了 NVM陣列140和/或磁介質(zhì)存儲模塊還包括其他類型的存儲模塊。
[0019]存儲系統(tǒng)120可存儲從主機系統(tǒng)110接收到的數(shù)據(jù),使得存儲系統(tǒng)120可作為主機系統(tǒng)110的存儲器存儲設(shè)備。為了促成該功能,控制器130可實現(xiàn)邏輯接口。邏輯接口可向主機系統(tǒng)110呈現(xiàn)存儲系統(tǒng)存儲器作為可在其處存儲數(shù)據(jù)的一組邏輯地址(例如,連續(xù)地址)。在內(nèi)部,控制器130可將邏輯地址映射到非易失性存儲器陣列140和/或其他存儲器模塊中的一個或更多個中的各個物理存儲器地址。
[0020]可使用NAND閃速存儲器裝置來實現(xiàn)非易失性存儲器陣列140中的一個或更多個??商鎿Q地使用其他類型的固態(tài)存儲器裝置,例如,閃速集成電路陣列、硫化物RAM(C-RAM)、相變存儲器(PC-RAM或PRAM)、可編程金屬化單元RAM(PMC_RAM或PMCm)、雙向統(tǒng)一存儲器(OUM)、電阻RAM(RRAM)、NOR存儲器、EEPR0M,鐵電存儲器(FeRAM)、磁阻RAM(MRAM)、其他分立NVM(非易失性存儲器)芯片、或其任意組合。在一個實施例中,非易失性存儲器陣列140優(yōu)選地包括多層單元(MLC)裝置,該MLC裝置具有能夠存儲多于單比特信息的多層單元,盡管可以使用單層單元(SLC)存儲器裝置或SLC和MLC的組合。
[0021]頁間奇偶方案
[0022]圖2是根據(jù)本發(fā)明的一個實施例的示出包括來自多個NVM陣列管芯的F-頁的超級-頁(S-頁)200的示圖。S-頁200可有利地提供用于支持頁間奇偶以及跨多個管芯的F-頁存儲數(shù)據(jù)的RAID方案。在其中一個或更多個管芯包括多個平面(例如,雙平面管芯)的一些實施例中,F(xiàn)-頁也可以跨那些管芯的多個平面展開。
[0023]在一個實施例中,S-頁200包括來自被標(biāo)識為管芯O到管芯127的128個NVM陣列管芯中的每個的一個F-頁。每個管芯與存儲器的管芯對應(yīng),并且包括多個存儲塊(未示出),并且每個塊進一步包括多個F-頁。S-頁200可包括從一個或更多個管芯中和/或從一個或更多個管芯內(nèi)的塊選擇的F-頁。在一個實施例中,可基于管芯的F-頁的物理位置或存儲在