亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

非易失性存儲器中的選擇性數(shù)據(jù)再循環(huán)的制作方法

文檔序號:11917336閱讀:426來源:國知局
非易失性存儲器中的選擇性數(shù)據(jù)再循環(huán)的制作方法與工藝

本申請是非臨時申請,要求于2015年11月6日提交的名稱為“通過選擇性數(shù)據(jù)再循環(huán)的寫入放大減小(WRITE AMPLIFICATION REDUCTION VIA SELECTIVE DATA RECYCLING)”的申請?zhí)枮?2/252,140的美國臨時申請的權(quán)益和優(yōu)先權(quán),其通過引用整體并入本文用于所有目的。

技術(shù)領(lǐng)域

本發(fā)明總體涉及用于存儲裝置的系統(tǒng)、方法和設(shè)備,且具體涉及改善性能的非易失性存儲器裝置。



背景技術(shù):

諸如固態(tài)驅(qū)動器(SSD)的非易失性存儲器裝置在消費(fèi)性電子產(chǎn)品中有新的應(yīng)用。例如,它們正在代替硬盤驅(qū)動器(HDD),其通常包括快速旋轉(zhuǎn)圓盤(盤片)。有時被稱為“閃速存儲器”或“閃速存儲器裝置”(例如NAND和NOR閃速存儲器裝置)的非易失性存儲器用于媒體存儲器、攝像機(jī)、移動電話、移動計(jì)算機(jī)、筆記本計(jì)算機(jī)、USB閃速驅(qū)動器等中。非易失性存儲器提供了電源關(guān)閉時存儲數(shù)據(jù)的相對可靠的、緊湊的、劃算的且易獲取的方法。

在諸如NAND的閃速存儲器中,用于來自主機(jī)端的一定量的邏輯數(shù)據(jù)的寫入請求可導(dǎo)致多個一定量的數(shù)據(jù)被實(shí)際編程到閃速存儲器中。常被稱為“寫入放大”的附加的編程可由諸如垃圾收集、干擾收回、保留錯誤收回和其它內(nèi)部生成的數(shù)據(jù)的數(shù)個因素引起。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的實(shí)施例涉及可與閃速存儲器裝置結(jié)合使用的系統(tǒng)、方法和計(jì)算機(jī)可讀指令。根據(jù)一些實(shí)施例,方法可以包括將第一存儲塊分類為至少第一子塊和第二子塊,該第一存儲塊包括多個N級單元。第一子塊可以表示多個N級單元的每個的第一位,第二子塊可以表示多個N級單元的每個的第二位。每個N級單元可以存儲N位數(shù)據(jù)。在實(shí)施例中,N可以是大于或等于2的整數(shù)。

該方法還可以包括確定滿足與第一子塊相關(guān)的條件?;跐M足與第一子塊相關(guān)的條件的確定,可將與第一子塊相關(guān)的數(shù)據(jù)復(fù)制到不同于第一存儲塊的第二存儲塊。

在一些實(shí)施例中,確定滿足與第一子塊相關(guān)的條件可以包括確定與第一子塊相關(guān)的一個或多個錯誤;以及確定與第一子塊相關(guān)的一個或多個錯誤超過閾值。在一些示例中,與第一子塊相關(guān)的一個或多個錯誤可由讀取干擾引起。在一些示例中,與第一子塊相關(guān)的一個或多個錯誤可由數(shù)據(jù)保留的丟失引起。

在一些實(shí)施例中,確定滿足與第一子塊相關(guān)的條件可以包括確定對第一子塊已經(jīng)執(zhí)行多個讀取(a number of reads)。在一些實(shí)施例中,確定滿足與第一子塊相關(guān)的條件可以包括確定對第一子塊已經(jīng)執(zhí)行多個編程-擦除循環(huán)。

在一些實(shí)施例中,該方法還可以包括存儲與第一存儲塊相關(guān)的指示符,其中該指示符指示與第一存儲塊的第一子塊相關(guān)的數(shù)據(jù)已被復(fù)制到不同的存儲塊。當(dāng)完成(第一子塊到不同的存儲塊的)復(fù)制時,第一存儲塊可被稱為其第一子塊被收回的塊。

在一些實(shí)施例中,該方法還可以包括確定滿足與第二子塊相關(guān)的條件?;跐M足與第二子塊相關(guān)的條件的確定,可以將與第二子塊相關(guān)的數(shù)據(jù)復(fù)制到第三存儲塊。

在一些實(shí)施例中,第二存儲塊可以與第三存儲塊相同。在其它實(shí)施例中,第二存儲塊可以與第三存儲塊不同。

在一些實(shí)施例中,第一存儲塊還可以包括第三子塊,該第三子塊表示多個N級單元的每個的第三位。在實(shí)施例中,N級單元的每個單元可以存儲二位、三位、四位或更多位信息。雖然下面參照兩級單元說明了幾個概念,但必須注意在不丟失一般性的情況下它們可應(yīng)用于存儲兩位或更多位信息的多級單元。

實(shí)施例還包括實(shí)施至少公開的方法的系統(tǒng)和計(jì)算機(jī)可讀介質(zhì)。以下提供這種系統(tǒng)和介質(zhì)的示例。

附圖說明

圖1是示出根據(jù)實(shí)施例的包括主機(jī)、控制器和非易失性存儲器的系統(tǒng)的框圖;

圖2是示出根據(jù)一些實(shí)施例的閃速存儲器裝置的簡化框圖;

圖3是根據(jù)實(shí)施例的示例非易失性存儲器管芯的組織的簡化圖;

圖4是根據(jù)實(shí)施例的與兩級存儲器單元的四個狀態(tài)對應(yīng)的閾值電壓分布的圖;

圖5是示出根據(jù)實(shí)施例的對于塊的第一子塊和第二子塊的原始誤碼率相對于讀取干擾計(jì)數(shù)的圖;

圖6是示出根據(jù)實(shí)施例的閃速存儲器裝置中的方法的流程圖;

圖7是示出根據(jù)實(shí)施例的閃速存儲器裝置中的另一方法的流程圖;

圖8是示出根據(jù)實(shí)施例的閃速存儲器裝置中的另一方法的流程圖;

圖9是示出根據(jù)實(shí)施例的閃速存儲器裝置中的另一方法的流程圖;

圖10是示出根據(jù)實(shí)施例的閃速存儲器裝置中的另一方法的流程圖;以及

圖11是包括實(shí)施例的計(jì)算機(jī)裝置的簡化圖。

具體實(shí)施方式

下面提供了本公開的某些方面和實(shí)施例。如將對本領(lǐng)域技術(shù)人員顯而易見的,這些方面和實(shí)施例的一些可以獨(dú)立地應(yīng)用并且它們中的一些可以組合應(yīng)用。在下列描述中,為了說明的目的,闡述具體細(xì)節(jié)以便提供對實(shí)施例的透徹的理解。然而,將顯而易見的是,在沒有這些具體細(xì)節(jié)的情況下可以實(shí)施各個實(shí)施例。附圖和描述不用于限制。

隨后的描述提供了示例,但不用于限制本公開的范圍、適用性或配置。相反,隨后的示例性實(shí)施例的描述將為本領(lǐng)域技術(shù)人員提供實(shí)施示例性實(shí)施例的可行描述。應(yīng)理解,在不背離隨附權(quán)利要求所闡述的本發(fā)明的精神和范圍的情況下可以對元件的功能和布置做出多種改變。

下列描述中給出了具體細(xì)節(jié)以提供對實(shí)施例的透徹理解。然而,本領(lǐng)域技術(shù)人員將理解的是,可以在沒有這些具體細(xì)節(jié)的情況下實(shí)施實(shí)施例。例如,電路、系統(tǒng)、網(wǎng)絡(luò)、進(jìn)程和其它組件可以示為框圖形式的組件,以避免用不必要的細(xì)節(jié)模糊實(shí)施例。在其它示例中,在沒有不必要的細(xì)節(jié)的情況下,為了避免模糊實(shí)施例,可以示出已知的電路、進(jìn)程、算法、結(jié)構(gòu)和技術(shù)。

另外,注意到個別實(shí)施例可以被描述為被描繪為流程圖、作業(yè)圖、數(shù)據(jù)作業(yè)圖、結(jié)構(gòu)圖或框圖的進(jìn)程。雖然流程圖可以將操作描述為順序進(jìn)程,但是可以并行或同時執(zhí)行許多操作。此外,可以重新布置操作的順序。當(dāng)完成進(jìn)程的操作時終止該進(jìn)程,但是進(jìn)程可能包括附圖中不包括的額外的步驟。進(jìn)程可對應(yīng)于方法、功能、步驟、子例程、輔程序等。當(dāng)進(jìn)程與功能對應(yīng)時,其終止可以對應(yīng)于將該功能返回至調(diào)用函數(shù)或主函數(shù)。

術(shù)語“計(jì)算機(jī)可讀介質(zhì)”包括但不限于便攜式或非便攜式的存儲裝置、光學(xué)存儲裝置和能夠存儲、包含或攜帶指令和/或數(shù)據(jù)的多種其它介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以包括其中可以存儲數(shù)據(jù)的非臨時性介質(zhì),其不包括無線地或通過有線連接傳播的載波和/或臨時性電子信號。非臨時性介質(zhì)的示例可以包括但不限于磁盤或磁帶、諸如光盤(CD)或數(shù)字通用光盤(DVD)的光學(xué)存儲介質(zhì)、閃速存儲器、存儲器或存儲器裝置。計(jì)算機(jī)可讀介質(zhì)可以具有存儲于其上的代碼和/或機(jī)器可執(zhí)行指令,其可以表示步驟、功能、輔程序、程序、例程、子例程、模塊、軟件包、類別或指令、數(shù)據(jù)結(jié)構(gòu)或程序語句的任何組合??梢酝ㄟ^傳遞和/或接收信息、數(shù)據(jù)、變量、參數(shù)或存儲器內(nèi)容將一個代碼段聯(lián)接到另一代碼段或硬件電路??梢酝ㄟ^包括存儲器共享、信息傳遞、令牌傳遞、網(wǎng)絡(luò)傳輸?shù)鹊娜魏芜m合的方式傳遞、轉(zhuǎn)送或傳輸信息、變量、參數(shù)、數(shù)據(jù)等。

此外,可以通過硬件、軟件、固件、中間件、微碼、硬件描述語言或其任何組合實(shí)施實(shí)施例。當(dāng)以軟件、固件、中間件或微碼實(shí)現(xiàn)時,可以將執(zhí)行必要任務(wù)(例如計(jì)算機(jī)編程產(chǎn)品)的程序代碼或代碼段存儲在計(jì)算機(jī)可讀或機(jī)器可讀的介質(zhì)中。處理器可以執(zhí)行必要的任務(wù)。

下列詳細(xì)描述與附圖一起提供對本發(fā)明的本質(zhì)和優(yōu)勢的更好的理解,其中相同的參考標(biāo)號有時用于多幅附圖中表示相似或相同的結(jié)構(gòu)或結(jié)構(gòu)元件。

本發(fā)明的實(shí)施例涉及用于將數(shù)據(jù)從閃速存儲器中的一個位置復(fù)制和/或移動到另一位置的系統(tǒng)、方法和計(jì)算機(jī)可讀指令。本公開中描述的方法、系統(tǒng)和計(jì)算機(jī)可讀介質(zhì)可用于例如NAND閃速存儲器裝置中。

本文公開的實(shí)施例不限于本文描述的具體實(shí)施例的范圍。除了本文所述的那些之外,從前述描述和附圖中,本發(fā)明的實(shí)施例的各種修改將對于本領(lǐng)域的普通技術(shù)人員而言是顯而易見的。而且,雖然在用于特定目的的特定環(huán)境中的特定實(shí)施的背景下已經(jīng)描述了本發(fā)明的一些實(shí)施例,但是本領(lǐng)域技術(shù)人員將認(rèn)識到其有用性不限于此,本發(fā)明的實(shí)施例可以有利地在用于任何目的的任何環(huán)境中實(shí)施。

在閃速存儲器裝置中,來自主機(jī)的單個寫入命令可以導(dǎo)致閃速存儲器上的一組以上編程操作,該現(xiàn)象被稱為“寫入放大”。例如,當(dāng)錯誤計(jì)數(shù)(由多個機(jī)制引起)超過閾值時,塊中的數(shù)據(jù)可能必須收回到另一塊中。這可導(dǎo)致額外的編程,其會最終影響閃速存儲器裝置的總體壽命。

在所公開的一些實(shí)施例中,可以通過將具有N(N≥2)位數(shù)據(jù)的N級單元中的數(shù)據(jù)部分地收回/再循環(huán)來減小寫入放大。該方法可以有利地利用每個N級單元中的位之間或之中的電特性和其它特性的區(qū)別。在一些實(shí)施例中,通過將塊邏輯地分為用于多種進(jìn)程的子塊,可以顯著減小寫入放大。

數(shù)個進(jìn)程,諸如干擾收回和保留更新,可以涉及檢查第一塊的條件并基于是否滿足條件將數(shù)據(jù)從第一塊復(fù)制到不同的第二塊。例如,當(dāng)在循環(huán)或干擾時有可能發(fā)生信息丟失時,可以更新數(shù)據(jù)。在其中數(shù)據(jù)被存儲為“0”和“1”的示例中,當(dāng)保持0的位傾向于不能與保持1的位區(qū)別時,或者當(dāng)保持1的位傾向于不能與保持0的位區(qū)別時,會發(fā)生信息丟失。這種現(xiàn)有數(shù)據(jù)的復(fù)制可有助于被稱為“寫入放大”的現(xiàn)象。

寫入放大可被定義為寫入閃速存儲器的數(shù)據(jù)的實(shí)際量與從主機(jī)裝置寫入的數(shù)據(jù)的量的比值?;贜AND閃速存儲器的固態(tài)硬盤(SSD)可能會遭受大的寫入放大。寫入放大通常大于1,一些情況下可以是5或更大。這意味著來自主機(jī)裝置的一個簡單的寫入請求或操作可以導(dǎo)致對閃速存儲器的多個寫入操作。大的寫入放大可以顯著地增加延遲并縮短存儲壽命。可以限制可被重寫或循環(huán)的閃速存儲器的次數(shù)。示例的閃速存儲器可以經(jīng)受一千或數(shù)百個編程-擦除循壞。

在其壽命期間可以寫入到閃速存儲器中的數(shù)據(jù)的總量可以與以下關(guān)聯(lián):1)閃速存儲器可以允許的編程和擦除操作(P/E循環(huán))的最大數(shù)量;2)閃速存儲器的總?cè)萘?;?)平均寫入放大。在閃速存儲器壽命期間可以寫入的數(shù)據(jù)的量因此與下式成正比:

P/E循環(huán)*磁盤容量/寫入放大

如從該式顯而易見的是,寫入放大越大,可以從主機(jī)寫入到閃速存儲器裝置的數(shù)據(jù)的總量越小。換言之,對于運(yùn)行于主機(jī)上的給定工作量,寫入放大越大,閃速存儲器裝置將越快用完其P/E循環(huán)預(yù)算并到達(dá)壽命終點(diǎn)。因此,減小寫入放大可以是提高閃速存儲器有效壽命的關(guān)鍵的解決方案。

圖1描述了包括主機(jī)、閃速存儲器控制器和閃速存儲器的系統(tǒng)的一般高層結(jié)構(gòu)。圖2是示出根據(jù)一些實(shí)施例的閃速存儲器裝置的簡化框圖。圖3描述了閃速存儲器的結(jié)構(gòu)的示例。圖4和圖5幫助說明用本發(fā)明的實(shí)施例的一些理論背景。圖6-圖10是示出根據(jù)一些實(shí)施例的方法的流程圖。圖11是包括實(shí)施例的計(jì)算機(jī)裝置的簡化圖。

圖1是示出根據(jù)實(shí)施例的包括主機(jī)110、閃速存儲器控制器120和閃速存儲器130的系統(tǒng)100的簡化框圖。在一些實(shí)施例中,閃速存儲器130可以是NAND閃存。在其它實(shí)施例中,和NAND閃存一樣,非易失性存儲器130可以是被配置為外部交互的NOR閃速存儲器。閃速存儲器130可以被設(shè)計(jì)為在缺乏連續(xù)或基本上連續(xù)的外部電源的情況下存儲數(shù)據(jù)。在一些示例中,閃速存儲器130可以用于例如在諸如筆記本計(jì)算機(jī)的計(jì)算機(jī)系統(tǒng)中的輔助數(shù)據(jù)存儲。在這樣的示例中,閃速存儲器裝置140可以代替硬磁盤驅(qū)動器(HDD)。在一些示例中,閃速存儲器控制器120可以在閃速存儲器裝置140的外部。在一些這樣的示例中,閃速存儲器控制器120可以與多個閃速存儲器交互。在本說明書中稍后提供一個示例閃速存儲器的體系結(jié)構(gòu)和組織。在一些實(shí)施例中,可以使用其它非易失性存儲器來代替閃速存儲器130或者除了閃速存儲器130之外還可以使用其它非易失性存儲器。示例可以包括只讀存儲器(ROM)、掩模ROM(MROM)、可編程ROM(PROM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、鐵電RAM(F-RAM)、磁阻RAM(MRAM)、基于聚合物的有機(jī)存儲器、全息存儲器、相變存儲器等。

主機(jī)110可以包括任何適當(dāng)?shù)挠布b置、軟件應(yīng)用或硬件和軟件的組合。在一些實(shí)施例中,主機(jī)110可以包括主機(jī)端控制器(未示出)。在實(shí)施例中,控制器120可以接合在主機(jī)110和非易失性存儲器130之間??刂破?20可以被配置為接收來自主機(jī)110的各種命令并且基于這些命令與非易失性存儲器130相互作用。控制器120可以使閃速存儲器130能夠基于從主機(jī)110接收的控制信號執(zhí)行各種操作。在示例中,這可以使主機(jī)110能夠編程、擦除、讀取或修剪閃速存儲器130的部分。

在一些實(shí)施例中,除了或代替內(nèi)部易失性存儲器,控制器120可以與外部易失性存儲器接合。例如,控制器120可以訪問外部DRAM,其中數(shù)據(jù)可以在被轉(zhuǎn)移到非易失性存儲器之前被存儲在外部DRAM中。

圖2是示出根據(jù)一些實(shí)施例的閃速存儲器裝置200的簡化框圖。如圖2所示,閃速存儲器裝置200包括閃速存儲器210。在一些實(shí)施例中,閃速存儲器210可以是NAND閃速存儲器,即基于NAND閃存結(jié)構(gòu)的NAND閃速存儲器。在一些實(shí)施例中,閃速存儲器210可以包括多個N級單元,每個N級單元存儲N位數(shù)據(jù)。諸如多級單元(包括兩位和三位單元)的N級單元的示例在本說明書中稍后提供。通常,在實(shí)施例中,N可以是大于或等于2的任何整數(shù)。

閃速存儲器210可以包括第一存儲塊220和第二存儲塊230。第一存儲塊220可以邏輯上劃分為至少第一子塊222和第二子塊224。應(yīng)注意第一子塊222、第二子塊224和其它子塊(當(dāng)存在時)是邏輯命名并且存在于同一物理第一存儲塊220中。在實(shí)施例中,第一子塊222可以表示多個N級單元中的每一個的第一位,第二子塊可以表示多個N級單元中的每一個的第二位。

如下面參照圖4和圖5所說明的,第一子塊222和第二子塊224可以具有彼此不同的電特性和其它特性。例如,它們可以在編程-擦除(P/E)循環(huán)下表現(xiàn)不同,并且還可以表現(xiàn)出不同的干擾特性(例如在讀取或編程期間)。

閃速存儲器裝置200還可包括閃速存儲器控制器250。在示例中,閃速存儲器控制器250可包括控制器電路270、主機(jī)接口280和閃速存儲器接口260。閃速存儲器接口260可包括用于支持閃速存儲器接口協(xié)議所必需的元件(例如,硬件、軟件、固件或其任何組合)。

控制器電路270可以指任何處理邏輯,包括但不限于與處理器、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或可配置為執(zhí)行指令的任何其它電路相關(guān)的處理器或處理核。

如圖2所示,閃速存儲器裝置200還可以包括易失性存儲器240。在實(shí)施例中,易失性存儲器240可以包括DRAM、雙倍數(shù)據(jù)速率DRAM(DDR DRAM)、靜態(tài)RAM(SRAM)和/或其它易失性存儲器。一般來說,易失性存儲器可以指在沒有連續(xù)或基本上連續(xù)的電源的情況下丟失存儲的數(shù)據(jù)的任何存儲介質(zhì)。

主機(jī)接口280可以用于與諸如圖1的主機(jī)110的主機(jī)通信。主機(jī)接口280可以包括用于支持主機(jī)接口協(xié)議所必需的元件(例如,硬件、軟件、固件或其任何組合)。

在一些實(shí)施例中,控制器電路270可以被配置為將第一存儲塊220分類為至少第一子塊222和第二子塊224。在示例中,第一子塊222可以表示每個N級單元中N位的第一位,第二子塊224可以表示每個N級單元中N位的第二位。在不旨在限制本公開的范圍的特定示例中,控制器電路270可以被配置為將雙位單元的塊分類為“最低有效位(LSB)”和“最高有效位(MSB)”頁面。

控制器電路270可進(jìn)一步被配置為確定滿足與第一子塊222相關(guān)的條件,并且基于滿足與第一子塊222相關(guān)的條件的確定,將與第一子塊222相關(guān)的數(shù)據(jù)復(fù)制到第二存儲塊230。

圖3是根據(jù)實(shí)施例的示例閃速存儲器130的組織的簡化圖。應(yīng)注意,圖3所示的結(jié)構(gòu)僅用于說明目的,并且閃速存儲器的實(shí)際物理組織可以與描述實(shí)質(zhì)上不同。

在圖3所示的示例中,閃速存儲器管芯300包括兩個平面310和310'。其它示例可以每個管芯包括不同數(shù)量的平面。多個這樣的管芯可以包括在諸如閃速存儲器130的閃速存儲器中。平面310可以包括多個塊,諸如塊320。平面310'可以包括多個塊,諸如塊320'。塊320可以進(jìn)一步包括多個頁面330。諸如頁面330的頁面可以共享公共字線并且可以表示最小可編程單元。頁面也可以表示最小可讀單位。塊可以表示最小可擦除單元。

可以使用不同的溝道來組織諸如閃速存儲器管芯300的管芯。每個溝道可以具有附接到其的多個管芯。例如,來自第一管芯的第一塊、來自第二管芯的第一塊、來自第三管芯的第一塊等可以被分組在一起并且并行訪問,從而形成超級塊。屬于相同超級塊的頁面可以例如被并行編程和讀取。雖然超級塊可以不單元物理地分組,但在邏輯上,超級塊可以表現(xiàn)為塊。本公開中描述的適合塊的方法和系統(tǒng)在一些實(shí)施例中也可以適合超級塊。

寫入閃速存儲器的總數(shù)據(jù)是從主機(jī)端請求編程的數(shù)據(jù)加上由SSD內(nèi)部固件產(chǎn)生的附加數(shù)據(jù)的總和。由閃存控制器固件產(chǎn)生的附加數(shù)據(jù)可以至少包括:(1)由垃圾收集進(jìn)程引起的附加數(shù)據(jù)編程,以將來自少數(shù)犧牲塊的有效數(shù)據(jù)合并到新的空閑塊,以釋放更多空閑塊用于將來編程;(2)由于讀取干擾收回而由數(shù)據(jù)再循環(huán)引起的附加數(shù)據(jù)編程,其中將收回塊中的有效數(shù)據(jù)復(fù)制到空閑塊以消除累積的讀取干擾錯誤;(3)由用于周期性數(shù)據(jù)刷新的數(shù)據(jù)再循環(huán)引起的附加數(shù)據(jù)編程,其目標(biāo)是控制數(shù)據(jù)保留錯誤;以及(4)其它內(nèi)部生成的數(shù)據(jù)。

NAND閃速存儲器中的垃圾收集進(jìn)程是導(dǎo)致寫入放大增大的進(jìn)程的示例。由于NAND閃速存儲器裝置的固有限制,可能需要在其可編程(或可重新編程)之前擦除閃存介質(zhì)(例如,閃存塊)。由于擦除操作的大的延遲,閃存控制器(即固件)可以保留已被擦除的空閑塊的列表。當(dāng)從主機(jī)發(fā)送新的寫入命令時,閃存控制器可以對待被寫入到已經(jīng)被擦除的閃速存儲器頁面中的數(shù)據(jù)進(jìn)行編程。這可以從關(guān)鍵路徑(接收寫入命令和數(shù)據(jù)被寫入到閃速存儲器中之間的時間)去除擦除操作,并且節(jié)省編程操作的延遲。當(dāng)由于連續(xù)的主機(jī)數(shù)據(jù)寫入導(dǎo)致空閑塊的數(shù)量低于某一閾值時,可以觸發(fā)垃圾收集程序。垃圾收集(GC)程序選擇具有最少數(shù)量的有效數(shù)據(jù)的幾個塊,并將所選擇的那些犧牲塊的有效數(shù)據(jù)復(fù)制到空閑塊。然后,垃圾收集可以擦除被選擇來移動數(shù)據(jù)并將它們放在空閑塊列表中的那些犧牲塊。在GC程序期間,將有效數(shù)據(jù)從犧牲塊移動到目標(biāo)塊可以引起附加的編程操作,并因此增大寫入放大。

在讀取干擾收回進(jìn)程期間的再循環(huán)也可以引起寫入放大。在讀取干擾收回進(jìn)程的示例中,當(dāng)塊中最差的字線(即,具有最多干擾位的字線)積累有可能導(dǎo)致下一讀取干擾檢查的潛在不可校正(通過ECC)的錯誤的足夠錯誤時,可將塊中的所有有效數(shù)據(jù)復(fù)制到新的空閑塊。然后可以標(biāo)記犧牲的干擾塊用于擦除。有效數(shù)據(jù)從犧牲塊到新的空閑塊的這種移動導(dǎo)致附加的數(shù)據(jù)寫入,并因此有助于附加的寫入放大。

在保留刷新進(jìn)程期間的再循環(huán)也可以導(dǎo)致寫入放大。在保留刷新的示例中,當(dāng)塊中最差的字線積累有可能導(dǎo)致下一保留檢查的潛在不可校正(通過ECC)的錯誤的足夠的保留錯誤時,可將塊中的所有有效數(shù)據(jù)復(fù)制到新的空閑塊??梢詷?biāo)記犧牲塊用于擦除。有效數(shù)據(jù)從犧牲塊到新的空閑塊的這種移動導(dǎo)致附加的數(shù)據(jù)寫入,并因此有助于附加的寫入放大。

總之,寫入放大可以至少由以下引起:1)垃圾收集,2)讀取干擾收回和3)保留刷新。如果可以減小由這些程序引起的任何附加數(shù)據(jù)的量,則可以減小寫入放大,從而可以改善基于閃速存儲器的數(shù)據(jù)存儲的延遲和壽命。

讀取干擾是指從閃存單元讀取數(shù)據(jù)可導(dǎo)致同一塊中的其它未讀取單元的閾值電壓移位較高的現(xiàn)象。讀取干擾是由當(dāng)將通過電壓(Vpass)施加到不從其讀取數(shù)據(jù)的字線時可能發(fā)生的弱編程引起。

在多級單元中,讀取干擾可不同地影響多級單元的不同位。下面結(jié)合圖4和圖5參照雙級單元說明差異背后的理論,但是該概念更廣泛地應(yīng)用于包括3個或更多個位的多級單元。此外,在多級單元中,對于多級單元的不同位,數(shù)據(jù)保留行為可以不同。

圖4是通過曲線圖400和對應(yīng)表450表示的閾值電壓根據(jù)兩級單元中的狀態(tài)變化的圖示。如圖4所示,2位閃存單元的閾值電壓(Vth)范圍通過由線410、420和430標(biāo)記的三個參考電壓劃分為四個區(qū)域。如對應(yīng)表450所示,單元的四種狀態(tài)被標(biāo)記為擦除(11)、P1(10)、P2(00)和P3(01)。值得注意的是,這樣的標(biāo)記僅僅是一個示例,并且狀態(tài)可以根據(jù)不同的約定而被不同地標(biāo)記。每種狀態(tài)可以解碼為存儲在閃存單元中的2位值(例如,11、10、00或01)。該2位值中的兩個位可以被稱為指示左側(cè)位的最低有效位(LSB)和指示右側(cè)位的最高有效位(MSB)。芯片中所有閃存單元的閾值電壓可以由線440標(biāo)記的通過電壓的上限限制。如圖4所示,線420表示LSB參考電壓,而線410和430表示MSB參考電壓。

對于諸如圖4所示的兩位單元,塊的LSB頁面和MSB頁面可以表現(xiàn)出不同的讀取干擾特性。閃存單元中的電場強(qiáng)度與施加到浮置柵極的Vpass電壓(線440)和特定閃存單元的閾值電壓之間的差成線性比例。遂穿氧化物中的弱編程電流與電場強(qiáng)度呈指數(shù)相關(guān)。因此,在擦除“11”狀態(tài)(最低閾值電壓)的閃存單元上的讀取干擾可以比任何其它編程狀態(tài)大得多。在擦除狀態(tài)和第一編程狀態(tài)(線410)之間具有讀取參考電壓的頁面類型可能遭受最大讀取干擾錯誤。在圖4所示的示例中,具有由線410標(biāo)記的其讀取參考電壓之一的兩位MLC閃速存儲器的MSB頁面遭受最多讀取干擾錯誤。干擾的分布通過“11”分布中的虛線尾部指示??紤]到最受干擾的同一字線,MSB頁面錯誤率可以比LSB頁面的錯誤率高得多。

圖5示出包括兩級單元的閃速存儲器的LSB頁面和MSB頁面的原始誤碼率/比率(BER)隨讀取干擾計(jì)數(shù)的變化。原始BER可以表示誤碼的數(shù)量除以校正(例如通過錯誤校正碼,“ECC”)之前讀取的位的總數(shù)。圖5的閃速存儲器已循環(huán)3000次。圖5示出對于已經(jīng)被重新編程3000次的閃速存儲器,LSB頁面和MSB頁面的原始BER隨著讀取干擾計(jì)數(shù)增加的變化。假設(shè)閃速存儲器中的ECC可以校正高達(dá)10-3的原始BER,從圖5可以清楚地看出,MSB頁面使ECC校正限制失效,并且可能需要在約10K讀取之后收回。然而,LSB頁面可以持續(xù)超過600K讀取,而沒有達(dá)到ECC的錯誤校正能力。換句話說,對于讀取干擾,LSB頁面數(shù)據(jù)的壽命比MSB頁面的壽命長得多(>100倍)。

對于諸如圖4所示的兩位單元,塊的LSB頁面和MSB頁面也可以表現(xiàn)出不同的P/E循環(huán)保留特性。在圖4中,用參考線430讀取的狀態(tài)可以表現(xiàn)出最差的保留,因?yàn)楸A翦e誤可能主要由于兩個最高狀態(tài)P2和P3之間的分布別名(alias)而發(fā)生。保留的丟失導(dǎo)致在“01”分布中通過虛線尾部指示的分布。雖然根本的物理機(jī)制和理論可能不同,但是對于保留錯誤,MSB頁面錯誤率也可以高于LSB頁面錯誤率。

根據(jù)實(shí)施例,當(dāng)MSB頁面錯誤率顯著高于LSB頁面錯誤率時,對于MSB頁面和LSB頁面,可以分離塊中的數(shù)據(jù)收回。更一般地,塊可以被分類為至少第一子塊和第二子塊,每個子塊在邏輯上表示多級單元中的不同位。在一些實(shí)施例中,子塊可以表示塊中的一種位的頁面。有利地,更易于出錯的子塊(例如,遭受更多讀取干擾或保留錯誤的子塊)可以在不易出錯的子塊之前被收回到不同塊。

如上所述通過子塊分離收回可以出于至少以下兩個原因減小寫入放大:(1)不易出錯的一些子塊可以較不頻繁地收回,從而減小數(shù)據(jù)復(fù)制進(jìn)程的數(shù)量。在兩級存儲器單元的一些示例中,最低有效位可容許最高有效位可容許的讀取干擾計(jì)數(shù)的60-100倍的讀取干擾計(jì)數(shù);和(2)不易出錯的子塊中的數(shù)據(jù)可能由于在塊被部分收回的時間期間后續(xù)寫入命令而變得無效。換句話說,不易出錯的子塊可以在第一部分收回的時間和整個塊通過垃圾收集或第二部分收回被完全收回的時間之間通過至相同的邏輯地址的未來的寫入(或修剪命令)被重寫入。

應(yīng)當(dāng)注意,頁面類型分類基于讀取干擾錯誤,保留錯誤對于具有不同結(jié)構(gòu)的閃速存儲器可以不同。但是基于錯誤率將頁面分類為多種類型并基于頁面類型分類選擇性地收回或刷新數(shù)據(jù)的構(gòu)思可適用于包括讀取干擾和保留錯誤的幾個錯誤源。

圖6是示出根據(jù)實(shí)施例的閃速存儲器裝置中的進(jìn)程600的流程圖。可以應(yīng)用進(jìn)程600的一個示例是在NAND閃速存儲器中。雖然下面闡述了當(dāng)通過圖2的閃速存儲器裝置200執(zhí)行時的進(jìn)程600,但應(yīng)注意,可以使用其它系統(tǒng)和設(shè)備來代替閃速存儲器裝置200執(zhí)行本公開中描述的進(jìn)程600和其它進(jìn)程。

在步驟610中,進(jìn)程600包括將包括多個N級單元的第一存儲塊分類為至少第一子塊和第二子塊。第一子塊可以表示多個N級單元中的每一個的第一位,第二子塊可以表示多個N級單元中的每一個的第二位。每個N級單元存儲N位數(shù)據(jù)。在一些實(shí)施例中,N可以是2,并且該塊可以包括雙位單元。在一些實(shí)施例中,N可以是3。在其它實(shí)施例中,N可以是大于3的整數(shù)。

在一些實(shí)施例中,第一子塊可以表現(xiàn)出與第二子塊不同的編程-擦除(P/E)循環(huán)特性。在一些實(shí)施例中,第一子塊可以表現(xiàn)出與第二子塊不同的讀取干擾特性。在N為2且閃速存儲器單元包括最高有效位(MSB)和最低有效位(LSB)的一些實(shí)施例中,第一子塊可以表示第一存儲塊的MSB頁面,第二子塊可以表示第一存儲塊的LSB頁面。在N為3的一些實(shí)施例中,閃速存儲器單元可以包括最高有效位(MSB)、中央有效位(CSB)和最低有效位(LSB)。在那些實(shí)施例中,第一存儲塊可以包括表示多級單元的第三位的第三子塊。第一子塊可以表示第一存儲塊的MSB頁面,第二子塊可以表示第一存儲塊的CSB頁面,第三子塊可以表示第一存儲塊的LSB頁面。

在步驟620中,進(jìn)程600包括確定滿足與第一子塊相關(guān)的條件。在一些實(shí)施例中,確定滿足與第一子塊相關(guān)的條件可以包括確定與第一子塊相關(guān)的一個或多個錯誤,以及確定與第一子塊相關(guān)的一個或多個錯誤超過閾值。在一些這樣的實(shí)施例中,與第一子塊相關(guān)的一個或多個錯誤可以由如上所述的讀取干擾引起。在其它這樣的實(shí)施例中,與第一子塊相關(guān)的一個或多個錯誤可以由數(shù)據(jù)保留的丟失引起,例如,通過如上所述的P/E循環(huán)。在一些實(shí)施例中,對錯誤的讀取可以基于已經(jīng)最小化錯誤數(shù)的最佳讀取參考電壓。

在一些實(shí)施例中,確定滿足與第一子塊相關(guān)的條件可以包括確定與第一子塊相關(guān)的多個讀取。與第一子塊相關(guān)的讀取數(shù)量可以基于第一子塊達(dá)到估計(jì)的錯誤數(shù)所花費(fèi)的讀取數(shù)量??梢曰陂W速存儲器控制器處的錯誤校正碼(ECC)可以處理和/或修復(fù)的錯誤數(shù)來計(jì)算這種估計(jì)的錯誤數(shù)。在示例中,在第一子塊具有需要將其收回的估計(jì)的錯誤之后的讀取數(shù)量可以顯著低于在第二子塊具有需要將其收回的估計(jì)的錯誤之后的讀取數(shù)量。

在一些實(shí)施例中,確定滿足與第一子塊相關(guān)的條件可以包括確定與第一子塊相關(guān)的多個編程或P/E循環(huán)。與第一子塊相關(guān)的循環(huán)數(shù)量可以基于第一子塊達(dá)到估計(jì)的錯誤數(shù)所花費(fèi)的循環(huán)數(shù)量??梢曰陂W速存儲器控制器處的錯誤校正碼(ECC)可以處理和/或修復(fù)的錯誤數(shù)來計(jì)算這種估計(jì)的錯誤數(shù)。

在步驟630中,進(jìn)程600包括基于滿足與第一子塊相關(guān)的條件的確定,將與第一子塊相關(guān)的數(shù)據(jù)復(fù)制到與第一存儲塊不同的第二存儲塊。在實(shí)施例中,該復(fù)制可以是從第一存儲塊收回?cái)?shù)據(jù)的收回進(jìn)程的部分。這種收回進(jìn)程可導(dǎo)致寫入放大的增大。

在一些實(shí)施例中,在步驟640中,進(jìn)程600可選地包括存儲與第一存儲塊相關(guān)的指示符,其中該指示符指示與第一存儲塊的第一子塊相關(guān)的數(shù)據(jù)已經(jīng)被復(fù)制到不同的存儲塊。當(dāng)(第一子塊到不同存儲塊的)復(fù)制完成時,第一存儲塊可以被稱為其第一子塊“被收回”的塊。在示例中,這可以通過與塊相關(guān)的元頁面中的指示符位實(shí)現(xiàn)。盡管在圖6中未示出,但在一些塊中,仍然可以周期性地檢查部分收回的第一存儲塊,直到將來的刷新或直到垃圾收集或耗損均衡進(jìn)程再循環(huán)第一存儲塊中的數(shù)據(jù)。

圖7是示出根據(jù)實(shí)施例的閃速存儲器裝置中的進(jìn)程700的流程圖。其中可以應(yīng)用進(jìn)程700的一個示例是在NAND閃速存儲器中。在步驟710中,進(jìn)程700包括檢查第一存儲塊是否是具有與被收回的第一子塊相關(guān)的數(shù)據(jù)的塊。這種檢查可以各種方式執(zhí)行。例如,閃存轉(zhuǎn)換層(FTL)中的指示符位可以指示它是否是具有與被收回的第一子塊相關(guān)的數(shù)據(jù)的塊。在一些實(shí)施例中,關(guān)于是否已經(jīng)收回子塊的信息存儲在閃速存儲器中的元數(shù)據(jù)頁面中。在一些示例中,指示符位可以存在于諸如與閃速存儲器控制器聯(lián)接的DRAM的易失性存儲器中。在其它示例中,如果對應(yīng)于第一子塊的物理地址具有對應(yīng)的有效邏輯地址,則可指示與第一子塊相關(guān)的數(shù)據(jù)有效。在FTL被實(shí)現(xiàn)為主機(jī)系統(tǒng)中的軟件的一部分的另一示例中,指示符位可以駐留在這種軟件的操作系統(tǒng)中。

如果在步驟710中確定第一存儲塊的第一子塊沒有被收回,則在步驟720中,進(jìn)程700包括確定第一存儲塊的第一子塊中的一個或多個錯誤。這種確定可以基于例如對第一存儲塊中的位的閾值電壓的估計(jì)。繼續(xù)沿著分支,在步驟730中,進(jìn)程700包括確定第一子塊中的錯誤是否超過閾值。如果第一子塊中的錯誤未超過閾值,則進(jìn)程700可以結(jié)束。

如果第一子塊中的錯誤超過閾值,則在步驟740處,進(jìn)程700包括將與第一子塊相關(guān)的數(shù)據(jù)復(fù)制到閃速存儲器中的第二存儲塊。盡管在圖7中未示出,但步驟740還可以包括更新映射表以指示邏輯地址到第二存儲塊中的地址的新映射。

在步驟750中,進(jìn)程700包括指示第一存儲塊是其第一子塊被收回的塊。在一些實(shí)施例中,這可以使用FTL中的指示符位來完成。在一些實(shí)施例中,進(jìn)程700可以在步驟750之后結(jié)束。在其它實(shí)施例中,進(jìn)程700可以在步驟750之后繼續(xù)步驟760。

返回到步驟710處的進(jìn)程700,如果在步驟710中確定第一存儲塊是其第一子塊被收回的塊,則在步驟760處,進(jìn)程700包括確定第一存儲塊的第二子塊中的一個或多個錯誤。這種確定可以基于例如對第一存儲塊中的位的閾值電壓的估計(jì)。繼續(xù)沿著分支,在步驟770中,進(jìn)程700包括確定第二子塊中的錯誤是否超過閾值。如果第二子塊中的錯誤未超過閾值,則進(jìn)程700可以結(jié)束。

如果第二子塊中的錯誤超過閾值,則在步驟780處,進(jìn)程700包括將與第二子塊相關(guān)的數(shù)據(jù)復(fù)制到閃速存儲器中的第三存儲塊。在一些實(shí)施例中,第三存儲塊可以與第二存儲塊相同。盡管在圖7中未示出,但步驟780還可以包括更新映射表以指示邏輯地址到第三存儲塊中的地址的新映射。

在步驟790中,進(jìn)程700包括指示第一存儲塊是其第二子塊被收回的塊。在兩級存儲器單元中,這可以表示整個第一存儲塊已被收回的指示。

圖8是示出根據(jù)實(shí)施例的用于三級存儲器單元的閃速存儲器裝置中的進(jìn)程800的流程圖。進(jìn)程800可以在包括多個3級單元的閃速存儲器中操作。更一般地,本領(lǐng)域技術(shù)人員可以擴(kuò)展進(jìn)程800以應(yīng)用于包括多個N級單元的閃速存儲器,其中N大于或等于3??梢詰?yīng)用進(jìn)程800的一個示例是在NAND閃速存儲器中。

在步驟810中,進(jìn)程800包括檢查第一存儲塊是否是其第一子塊被收回的塊。這種檢查可以多種方式執(zhí)行。例如,閃存轉(zhuǎn)換層(FTL)中的指示符位可以指示它是否是具有與被收回的第一子塊相關(guān)的數(shù)據(jù)的塊。在一些實(shí)施例中,關(guān)于子塊是否已經(jīng)收回的信息存儲在閃速存儲器中的元數(shù)據(jù)頁面中。在一些示例中,指示符位可以存在于諸如與閃速存儲器控制器聯(lián)接的DRAM的易失性存儲器中。在其它示例中,如果對應(yīng)于第一子塊的物理地址具有對應(yīng)的有效邏輯地址,則可指示與第一子塊相關(guān)的數(shù)據(jù)有效。

如果在步驟810中確定第一存儲塊的第一子塊沒有被收回,則在步驟820中,進(jìn)程800包括確定第一存儲塊的第一子塊中的一個或多個錯誤。這種確定可以基于例如對第一存儲塊中的位的閾值電壓的估計(jì)。在一些實(shí)施例中,對錯誤的讀取可以基于已經(jīng)最小化錯誤數(shù)的最佳讀取參考電壓。繼續(xù)沿著分支,在步驟830中,進(jìn)程800包括確定第一子塊中的錯誤是否超過閾值。如果第一子塊中的錯誤未超過閾值,則進(jìn)程800可以結(jié)束。

如果第一子塊中的錯誤超過閾值,則在步驟840中,進(jìn)程800包括將與第一子塊相關(guān)的數(shù)據(jù)復(fù)制到閃速存儲器中的第二存儲塊。盡管在圖8中未示出,但步驟840還可以包括更新映射表以指示邏輯地址到第二存儲塊中的地址的新映射。

在步驟850中,進(jìn)程800包括指示第一存儲塊是其第一子塊被收回的塊。在一些實(shí)施例中,這可以使用FTL中的指示符位來完成。在一些實(shí)施例中,進(jìn)程800可以在步驟850后結(jié)束。在其它實(shí)施例中,進(jìn)程800可以在步驟850之后繼續(xù)步驟860。

返回到步驟810處的進(jìn)程800,如果在步驟810中確定第一存儲塊是其第一子塊被收回的塊,則在步驟855中,進(jìn)程800包括確定第一存儲塊是否是第二子塊被收回的塊。

如果在步驟855中確定第一存儲塊的第二子塊沒有被收回,則在步驟860中,進(jìn)程800包括確定第一存儲塊的第二子塊中的一個或多個錯誤。這種確定可以基于例如對第一存儲塊中的位的閾值電壓的估計(jì)。繼續(xù)沿著分支,在步驟870中,進(jìn)程800包括確定第二子塊中的錯誤是否超過閾值。如果第二子塊中的錯誤未超過閾值,則進(jìn)程800可以結(jié)束。

如果第二子塊中的錯誤超過閾值,則在步驟880中,進(jìn)程800包括將與第二子塊相關(guān)的數(shù)據(jù)復(fù)制到閃速存儲器中的第三存儲塊。盡管在圖8中未示出,但步驟880還可以包括更新映射表以指示邏輯地址到第三存儲塊中的地址的新映射。在一些實(shí)施例中,第三存儲塊可以與第二存儲塊相同。

在步驟890中,進(jìn)程800包括指示第一存儲塊是其第二子塊被收回的塊。在一些實(shí)施例中,這可以使用FTL中的指示符位來完成。在一些實(shí)施例中,進(jìn)程800可以在步驟890后結(jié)束。在其它實(shí)施例中,進(jìn)程800可以在步驟890之后繼續(xù)步驟892。

返回到步驟855處的進(jìn)程800,如果在步驟855中確定第一存儲塊是其第二子塊被收回的塊,則在步驟857中,進(jìn)程800包括確定第一存儲塊是否是其第三子塊被收回的塊。

如果在步驟857中確定第一存儲塊的第三子塊沒有被收回,則在步驟892中,進(jìn)程800包括確定第一存儲塊的第三子塊中的一個或多個錯誤。這種確定可以基于例如對第一存儲塊中的位的閾值電壓的估計(jì)。在步驟894中,進(jìn)程800包括確定第三子塊中的錯誤是否超過閾值。如果第三子塊中的錯誤未超過閾值,則進(jìn)程800可以結(jié)束。

如果第三子塊中的錯誤超過閾值,則在步驟896中,進(jìn)程800包括將與第三子塊相關(guān)的數(shù)據(jù)復(fù)制到閃速存儲器中的第四存儲塊。盡管在圖8中未示出,但步驟896還可以包括更新映射表以指示邏輯地址到第四存儲塊中的地址的新映射。在一些實(shí)施例中,第四存儲塊可以與第二存儲塊和第三存儲塊相同。

在步驟898中,進(jìn)程800包括指示第一存儲塊是所有子塊被收回的塊。

圖9是示出根據(jù)實(shí)施例的閃速存儲器裝置中的進(jìn)程900的流程圖??梢詰?yīng)用進(jìn)程900的一個示例是在包括2級單元的NAND閃速存儲器中。在步驟910中,進(jìn)程900包括檢查所選塊是否是“僅最低有效位(LSB)塊”。這種檢查可以多種方式執(zhí)行。例如,閃存轉(zhuǎn)換層(FTL)中的指示符位可以指示該塊是否是僅LSB塊。在一些實(shí)施例中,關(guān)于子塊是否已經(jīng)被收回的信息存儲在閃速存儲器中的元數(shù)據(jù)頁面中。在一些示例中,指示符位可以存在于諸如與閃速存儲器控制器聯(lián)接的DRAM的易失性存儲器中。在其它示例中,如果對應(yīng)于最高有效位(MSB)頁面的物理地址具有對應(yīng)的有效邏輯地址,則可以指示所選塊不是僅LSB塊。

如果在步驟910中確定所選塊不是僅LSB塊(即,其包括有效的MSB頁面),則在步驟920中,進(jìn)程900包括檢查最受干擾字線的MSB頁面的錯誤。在這樣的實(shí)施例中,最受干擾字線可以用作塊中干擾量的指示。在其它實(shí)施例中,可以檢查其它頁面或字線。例如,可以檢查對應(yīng)于最高干擾的若干字線以解釋進(jìn)程變化。在一些實(shí)施例中,錯誤可由讀取干擾引起。在一些實(shí)施例中,錯誤可由P/E循環(huán)引起。在一些實(shí)施例中,錯誤可以由多種干擾機(jī)制的組合引起。

繼續(xù)沿著分支,在步驟930中,進(jìn)程900包括確定最受干擾字線中的錯誤計(jì)數(shù)是否大于MSB頁面的閾值錯誤計(jì)數(shù)。如果錯誤計(jì)數(shù)未超過閾值,則進(jìn)程900可以結(jié)束。

如果最受干擾字線的錯誤計(jì)數(shù)超過閾值,則在步驟940中,進(jìn)程900包括將所有有效MSB頁面復(fù)制到閃速存儲器中的另一空閑塊。在步驟950中,進(jìn)程900包括指示所選塊是僅LSB塊。在一些實(shí)施例中,進(jìn)程900可以在步驟950后結(jié)束。在其它實(shí)施例中,進(jìn)程900可以在步驟950之后繼續(xù)步驟960。

返回到步驟910處的進(jìn)程900,如果在步驟910中確定所選塊是僅LSB塊,則在步驟960中,進(jìn)程900包括確定最受干擾字線的LSB頁面的一個或多個錯誤。繼續(xù)沿著分支,在步驟970中,進(jìn)程900包括確定錯誤計(jì)數(shù)是否超過LSB頁面的閾值。在一些實(shí)施例中,LSB頁面和MSB頁面的閾值錯誤計(jì)數(shù)可以基本上相同。如果最受干擾字線的LSB頁面的錯誤計(jì)數(shù)未超過LSB頁面的閾值,則進(jìn)程900可以結(jié)束。

如果最受干擾字線的LSB頁面的錯誤計(jì)數(shù)超過LSB頁面的閾值,則在步驟980中,進(jìn)程900包括將所有有效LSB頁面復(fù)制到其它塊。

圖10是示出根據(jù)實(shí)施例的在用于3級存儲器單元的閃速存儲器裝置中的所選塊中操作的進(jìn)程1000的流程圖。基于它們的干擾特性,三級存儲器單元中的三個位可以被分類為對最大干擾敏感的位、對中等干擾敏感的位和對最小干擾敏感的位。因此,所選塊可以被劃分為三種類型的頁面:“最差干擾頁面”,包括易受最大干擾的三級單元的每個位;“中等干擾頁面”,包括易受中等干擾的三級單元的每個位;以及“最小干擾頁面”,包括易受最小干擾的三級單元的每個位。

在步驟1010中,進(jìn)程1000包括檢查所選塊是否所有最差干擾頁面被收回。這種檢查可以多種方式執(zhí)行。例如,閃存轉(zhuǎn)換層(FTL)中的指示符位可以指示所選塊是否是所有最差干擾頁面被收回的塊。在一些實(shí)施例中,關(guān)于子塊是否已經(jīng)收回的信息存儲在閃速存儲器中的元數(shù)據(jù)頁面中。

如果在步驟1010中確定所選塊的最差干擾頁面沒有被收回,則在步驟1020中,進(jìn)程1000包括確定最受干擾字線的最差干擾頁面的一個或多個錯誤。繼續(xù)沿著分支,在步驟1030中,進(jìn)程1000包括確定最受干擾字線中的錯誤計(jì)數(shù)是否大于最差干擾頁面的閾值錯誤計(jì)數(shù)。如果錯誤計(jì)數(shù)未超過閾值,則進(jìn)程1000可以結(jié)束。

如果最受干擾字線的錯誤計(jì)數(shù)超過閾值,則在步驟1040中,進(jìn)程1000包括將所有有效的最差干擾頁面復(fù)制到閃速存儲器中的另一空閑塊。在步驟1050中,進(jìn)程1000包括指示所選塊是所有最差干擾頁面被收回的塊。在一些實(shí)施例中,進(jìn)程1000可以在步驟1050后結(jié)束。在其它實(shí)施例中,進(jìn)程1000可以在步驟1050之后繼續(xù)步驟1060。

返回到步驟1010處的進(jìn)程1000,如果在步驟1010中確定所選塊被收回所有最差干擾頁面,則在步驟1055中,進(jìn)程1000包括確定是否收回了所有中等干擾頁面。

如果在步驟1055中確定所選塊的所有中等干擾頁面沒有被收回,則在步驟1060中,進(jìn)程1000包括確定最受干擾字線的中等干擾頁面的一個或多個錯誤。繼續(xù)沿著分支,在步驟1070中,進(jìn)程1000包括確定錯誤計(jì)數(shù)是否超過中等干擾頁面的閾值。如果最受干擾字線的中等干擾頁面的錯誤計(jì)數(shù)未超過中等干擾頁面的閾值,則進(jìn)程1000可以結(jié)束。

如果最受干擾字線的中等干擾頁面的錯誤計(jì)數(shù)超過閾值,則在步驟1080中,進(jìn)程1000包括將所有有效的中等干擾頁面復(fù)制到閃速存儲器中的其它塊。在步驟1090中,進(jìn)程1000包括指示所選塊是所有中等干擾頁面被收回的塊。在一些實(shí)施例中,進(jìn)程1000可以在步驟1090后結(jié)束。在其它實(shí)施例中,進(jìn)程1000可以在步驟1090之后繼續(xù)步驟1092。

返回到步驟1055處的進(jìn)程1000,如果在步驟1055中確定所選塊是所有中等干擾頁面被收回的塊,則在步驟1057中,進(jìn)程1000包括確定所選塊是否是所有最小干擾頁面被收回的塊。

如果在步驟1057中確定所選存儲塊的所有最少干擾頁面沒有被收回,則在步驟1092中,進(jìn)程1000包括確定最受干擾字線的最小干擾頁面的一個或多個錯誤。在步驟1094中,進(jìn)程1000包括確定最受干擾字線的最小干擾頁面的錯誤計(jì)數(shù)是否超過最小干擾頁面的閾值錯誤計(jì)數(shù)。如果最受干擾字線的最小干擾頁面的錯誤未超過最小干擾頁面的閾值,則進(jìn)程1000可以結(jié)束。

如果最受干擾字線的最小干擾頁面的錯誤超過最小干擾頁面的閾值,則在步驟1096中,進(jìn)程1000包括將所有有效的最小干擾頁面復(fù)制到閃速存儲器中的其它塊。

在步驟1098中,進(jìn)程1000包括擦除所選塊并將其添加到空閑塊列表。

雖然上面分別從兩級和三級單元的讀取干擾的角度描述了進(jìn)程900和1000,但是在沒有失去一般性的情況下,流程可以適用于其它錯誤機(jī)制。例如,基于它們的保留特性,三級存儲器單元中的三個位可以被分類為對最大保留丟失敏感的位、對中等保留丟失敏感的位以及對最小保留丟失敏感的位。因此,所選塊可以被劃分為三種類型的頁面:包括對最大保留丟失敏感的三級單元的每個位的“最差保留頁面”,包括對中等保留丟失敏感的三級單元的每個位的“中等保留頁面”,以及包括對最小保留丟失敏感的三級單元的每個位的“最小保留頁面”。在示例中,包含在最高兩個編程(例如P6和P7)狀態(tài)之間的讀取參考電壓的頁面類型可以是最差保留頁面。類似地,在進(jìn)程900中,2位MLC頁面的LSB和MSB頁面可以被分類為最差保留頁面和最小保留頁面。在一些實(shí)施例中,LSB頁面可以是最小保留頁面,MSB頁面可以是最差保留頁面。用于保留丟失收回的3位和2位的流程可以類似于讀取干擾收回的流程。

在一些實(shí)施例中,可以修改垃圾收集(GC)進(jìn)程以更好地適應(yīng)說明書中描述的方法、過程和系統(tǒng)。當(dāng)塊被部分再循環(huán)時,例如當(dāng)存儲塊的第一子塊已經(jīng)被收回而第二子塊沒有被收回時,存儲塊中僅一半或少于一半的數(shù)據(jù)是有效的。如果GC程序沒有考慮到這一點(diǎn),則GC程序可以在其一半數(shù)據(jù)被復(fù)制之后不久再循環(huán)該部分塊,導(dǎo)致低效率。為了避免這種情況,GC程序可以維持所用塊的兩個池:一個用于正常塊,另一個用于部分再循環(huán)塊,其由于讀取干擾收回或保留丟失而被循環(huán)。

在示例中,這種GC程序在正常池中搜索塊,并找到具有最小(或接近最小)有效數(shù)據(jù)的塊。如果正常池中的有效數(shù)據(jù)大于正常塊的某個閾值,則GC程序可以轉(zhuǎn)向部分再循環(huán)池,以找到具有最小(或接近最小)有效數(shù)據(jù)的部分再循環(huán)塊。然后,GC進(jìn)程可以再循環(huán)部分再循環(huán)塊。另外,GC進(jìn)程可以再循環(huán)正常池中的塊。

本公開中描述的方法和系統(tǒng)呈現(xiàn)出許多特征和優(yōu)點(diǎn)。在一個實(shí)施例中,利用2位MLC閃存的LSB/MSB和3位TLC閃速存儲器的LSB/CSB/MSB的讀取干擾的錯誤率變化。在一些實(shí)施例中,執(zhí)行部分?jǐn)?shù)據(jù)塊再循環(huán),由此僅復(fù)制/移動經(jīng)歷讀取干擾的最差頁面類型,從而使MLC和TLC的數(shù)據(jù)復(fù)制分別減小50%和67%。這可以顯著減小有效的寫入放大。在另一實(shí)施例中,利用2位MLC閃存的LSB/MSB和3位TLC閃速存儲器的LSB/CSB/MSB的保留的錯誤率變化。執(zhí)行部分?jǐn)?shù)據(jù)塊再循環(huán),由此僅復(fù)制/移動經(jīng)歷保留的最差頁面類型,以使MLC和TLC的數(shù)據(jù)復(fù)制分別減小50%和67%。這也可以顯著降低有效的寫入放大。在其它實(shí)施例中,設(shè)計(jì)了在垃圾收集策略下處理部分再循環(huán)塊的機(jī)制。因此,使用本文所述的方法,可以減小寫入放大,并且可以提高基于閃存的SSD的有效壽命。

圖11示出了包括本發(fā)明的實(shí)施例的示例性計(jì)算裝置1100。裝置1100的硬件元件可以經(jīng)由總線電聯(lián)接(或者可以視情況以其它方式通信)。如圖11所示,計(jì)算裝置1100包括處理單元1004、閃速存儲器裝置1002、輸入/輸出(I/O)系統(tǒng)1110、網(wǎng)絡(luò)電路1112和多媒體電路1114。在所述的示例中,處理單元1104可以用作主機(jī)系統(tǒng)。

在示例中,閃速存儲器裝置1102可以是NAND閃速存儲器裝置,例如圖4的閃速存儲器裝置400,并且可以用于存儲由處理單元1104訪問的二手?jǐn)?shù)據(jù)。閃速存儲器裝置1102可以包括根據(jù)上述實(shí)施例的閃速存儲器控制器(未示出),用作非易失性存儲器裝置1102和處理單元1104之間的接口。系統(tǒng)存儲器1106可以是諸如隨機(jī)存取存儲器(RAM)的易失性存儲器,并且可以與處理器1108結(jié)合操作。處理器1108可以包括但不限于一個或多個通用處理器和/或一個或多個專用處理器(諸如數(shù)字信號處理芯片、圖形加速處理器和/或類似物)。

計(jì)算裝置1100可以進(jìn)一步包括將計(jì)算裝置1100連接到網(wǎng)絡(luò)的網(wǎng)絡(luò)電路1112。網(wǎng)絡(luò)電路可以包括但不限于調(diào)制解調(diào)器、網(wǎng)卡(無線或有線)、紅外通信裝置、無線通信裝置和/或芯片組(諸如BluetoothTM裝置、1602.11裝置、WiFi裝置、WiMax裝置、蜂窩通信設(shè)施等)和/或類似物。網(wǎng)絡(luò)電路1112可以允許與網(wǎng)絡(luò)、其它裝置和/或本文描述的任何其它裝置交換數(shù)據(jù)。

如圖11所示,計(jì)算裝置1100可以包括多媒體電路1114。多媒體電路1114可以將計(jì)算裝置1100連接到幾個外部音頻和視頻輸入和輸出,諸如顯示器和揚(yáng)聲器。I/O系統(tǒng)1110可以將計(jì)算裝置1100連接到諸如鍵盤、鼠標(biāo)、觸摸屏、相機(jī)、紅外線捕獲裝置等的各種輸入裝置和機(jī)構(gòu),以及諸如打印機(jī)、顯示單元、觸覺反饋裝置和/或類似物的輸出裝置和機(jī)構(gòu)。

計(jì)算裝置1100還可以包括位于系統(tǒng)存儲器1106或閃速存儲器1102中的軟件元件,包括裝置驅(qū)動器、可執(zhí)行庫和/或其它代碼,諸如一個或多個應(yīng)用程序,其可以包括通過多個實(shí)施例提供的計(jì)算機(jī)程序,和/或可被設(shè)計(jì)為實(shí)現(xiàn)如本文所描述的由其它實(shí)施例提供的方法和/或配置如本文所描述的由其它實(shí)施例提供的系統(tǒng)。僅作為示例,就上面討論的方法描述的一個或多個程序可以實(shí)現(xiàn)為由計(jì)算機(jī)(和/或計(jì)算機(jī)內(nèi)的處理器)可執(zhí)行的代碼和/或指令;在一方面,然后,這樣的代碼和/或指令可以用于配置和/或適配通用計(jì)算機(jī)(或其它裝置,諸如圖2的閃速存儲器控制器250),以根據(jù)描述的方法例如圖6-圖10所示的任何方法執(zhí)行一個或多個操作。

這些指令和/或代碼的集合可以存儲在計(jì)算機(jī)可讀存儲介質(zhì)上,諸如存儲在閃速存儲器裝置1102內(nèi),或者在示例中,存儲在閃速存儲器裝置1102中的閃速存儲器控制器內(nèi)。在一些情況下,存儲介質(zhì)可以包含在諸如裝置1100或閃速存儲器裝置1102的裝置內(nèi)。在其它實(shí)施例中,存儲介質(zhì)可以與裝置(例如,諸如光盤的可移動介質(zhì))分離,和/或以安裝包提供,使得存儲介質(zhì)可用于利用存儲在其上的指令/代碼來編程、配置和/或適配通用計(jì)算機(jī)。這些指令可以采用可由裝置執(zhí)行的可執(zhí)行代碼的形式,和/或可以采用源和/或可安裝代碼的形式,其一旦(例如,使用多種通常可用編譯器、安裝程序、,壓縮/解壓縮實(shí)用程序等)編譯和/或安裝在裝置上即采用可執(zhí)行代碼的形式。

可以根據(jù)具體要求進(jìn)行實(shí)質(zhì)性改變。例如,還可以使用定制的硬件,和/或特定元件可以硬件、軟件(包括便攜式軟件,例如小應(yīng)用程序等)或兩者實(shí)現(xiàn)。此外,可以采用到諸如網(wǎng)絡(luò)輸入/輸出裝置的其它計(jì)算裝置的連接。

如本文所用的術(shù)語“機(jī)器可讀介質(zhì)”和“計(jì)算機(jī)可讀介質(zhì)”是指參與提供使機(jī)器以特定方式操作的數(shù)據(jù)的任何介質(zhì)。雖然本文已經(jīng)詳細(xì)描述了本申請的說明性實(shí)施例,但應(yīng)當(dāng)理解,本發(fā)明構(gòu)思可以其它各種方式實(shí)現(xiàn)和采用,并且所附權(quán)利要求旨在被解釋為包括這樣的變型,除了如現(xiàn)有技術(shù)所限制的。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1