用于減少讀取干擾錯誤的存儲器系統(tǒng)和方法
【專利摘要】公開了用于減少讀取干擾錯誤的存儲器系統(tǒng)和方法。在一個實施例中,提供了包括存儲器的多個塊和控制器的存儲器系統(tǒng)。該控制器被配置為檢測塊中的讀取干擾錯誤,識別引起該讀取干擾錯誤的數(shù)據(jù),并且將引起讀取干擾錯誤的該數(shù)據(jù)移動到具有更高的讀取耐久性的塊。這可以通過將讀取計數(shù)器分配到塊以確定被頻繁地讀取的數(shù)據(jù)并且將該數(shù)據(jù)存儲在單獨的塊中直到其較不頻繁地被讀取并且將不太可能引起額外的讀取干擾錯誤來實現(xiàn)。
【專利說明】用于減少讀取干擾錯誤的存儲器系統(tǒng)和方法
[0001 ]優(yōu)先權(quán)
[0002]本申請要求于2015年I月30日提交的題為“Memory System and MethodforReducing Read Disturb Errors(用于減少讀取干擾錯誤的存儲器系統(tǒng)和方法)”的印度專利申請N0.310/MUM/2015的優(yōu)先權(quán),其全部公開內(nèi)容通過引用結(jié)合于此。
技術(shù)領(lǐng)域
[0003]本發(fā)明涉及用于減少讀取干擾錯誤的存儲器系統(tǒng)和方法。
【背景技術(shù)】
[0004]在具有諸如NAND快閃存儲器的非易失性存儲器的存儲器系統(tǒng)中,讀取存儲器的塊中的字線可能通過改變存儲的電壓而引起存儲在相鄰的字線中的數(shù)據(jù)的錯誤。該影響被稱為“讀取干擾”。由于讀取干擾錯誤發(fā)生在相鄰的字線中,當(dāng)讀取給定字線時沒有指示對該字線的讀取引起了在相鄰的字線中的讀取干擾錯誤。已經(jīng)開發(fā)出各種技術(shù)來嘗試直接地或間接地檢測讀取干擾錯誤。例如,當(dāng)讀取給定字線時,存儲器系統(tǒng)還可以讀取相鄰的字線以確定在該相鄰的字線中的讀取錯誤的數(shù)量是否超過閾值,這將指示該相鄰的字線被讀取干擾。作為另一示例(被稱為“讀取巡檢(read patrol)”),存儲器系統(tǒng)可以隨機(jī)地或者連續(xù)地讀取字線以查找錯誤。作為另一示例,存儲器系統(tǒng)可以計數(shù)對每個塊的讀取的次數(shù),并且當(dāng)對給定的塊的讀取的次數(shù)超過閾值時,存儲器系統(tǒng)可以假設(shè)很可能已經(jīng)在塊中發(fā)生了讀取干擾錯誤。
[0005]不管所使用的檢測技術(shù),當(dāng)在塊中找到或者假設(shè)存在讀取干擾錯誤時,存儲器系統(tǒng)可以“清除(scrub)”該塊(S卩,將數(shù)據(jù)從該塊移動到新的塊(如需要,錯誤校正),并且擦除(erase)舊的塊并且將其放到可用塊的池中)。將數(shù)據(jù)移動到新的塊通過將存儲的電壓設(shè)置到合適的量而消除了讀取干擾的有害影響。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的實施例由權(quán)利要求定義,并且在該部分中的任何內(nèi)容都不應(yīng)被認(rèn)為是對那些權(quán)利要求的限制。
[0007]以介紹的方式,以下實施例涉及用于減少讀取干擾錯誤的存儲器系統(tǒng)和方法。在一個實施例中,存儲器系統(tǒng)檢測在級一的塊中的讀取干擾錯誤。存儲器系統(tǒng)將存儲在所述級一的塊中的數(shù)據(jù)移動到級二的塊并且監(jiān)視對級二的塊的讀取訪問以確定在所述級二的塊中何數(shù)據(jù)被頻繁地讀取。存儲器系統(tǒng)然后將被確定為被頻繁地讀取的數(shù)據(jù)從級二的塊移動到級三的塊并且監(jiān)視對在所述級三的塊中的數(shù)據(jù)的讀取訪問以確定在所述級三的塊中的數(shù)據(jù)是否較不頻繁地被讀取。響應(yīng)于確定在所述級三的塊中的數(shù)據(jù)較不頻繁地被讀取,存儲器系統(tǒng)將所述數(shù)據(jù)從級三的塊移動到級一的塊。
[0008]在另一實施例中,提供了包括存儲器的多個塊和控制器的存儲器系統(tǒng)。所述控制器被配置為檢測塊中的讀取干擾錯誤,識別導(dǎo)致所述讀取干擾錯誤的數(shù)據(jù),并且將引起讀取干擾錯誤的所述數(shù)據(jù)移動到具有較高的讀取忍耐性的塊。
[0009]在另一實施例中,提供了存儲器系統(tǒng),所述存儲器系統(tǒng)包括存儲器的多個塊、多個讀取計數(shù)器和讀取干擾模塊。讀取干擾模塊被配置為檢測在第一塊中的讀取干擾錯誤,將數(shù)據(jù)從所述第一塊移動到第二塊,將讀取計數(shù)器分配到所述第二塊以識別熱讀取數(shù)據(jù),將所述熱讀取數(shù)據(jù)從所述第二塊移動到第三塊,將讀取計數(shù)器分配到所述第三塊以確定所述熱讀取數(shù)據(jù)何時變?yōu)槔渥x取數(shù)據(jù),并且將所述冷讀取數(shù)據(jù)從所述第三塊移動到另一塊。
[0010]其它實施例是可能的,并且每個實施例可以單獨使用或者組合在一起使用。相應(yīng)地,現(xiàn)將參考附圖描述各個實施例。
【附圖說明】
[0011 ]圖1A是實施例的非易失性存儲器系統(tǒng)的框圖。
[0012]圖1B是示出實施例的示例性存儲模塊的框圖。
[0013]圖1C是示出實施例的分層的存儲系統(tǒng)的框圖。
[0014]圖2A是示出根據(jù)實施例的在圖1A中示出的非易失性存儲器系統(tǒng)的控制器的示例性組件的框圖。
[0015]圖2B是示出根據(jù)實施例的在圖1A中示出的非易失性存儲器存儲系統(tǒng)的非易失性存儲器的示例性組件的框圖。
[0016]圖3A是實施例的單個實例讀取干擾的圖。
[0017]圖3B是實施例的對齊的順序讀取干擾的圖。
[0018]圖3C是實施例的長順序讀取干擾的圖。
[0019]圖3D是實施例的未對齊的長順序讀取干擾的圖。
[0020]圖3E是實施例的在相同的塊中的多個讀取干擾的干擾者和受害體的圖。
[0021]圖3F是其中所有字線是干擾者和受害體的實施例的圖。
[0022]圖4是用于減少讀取干擾錯誤的實施例的方法的流程圖。
[0023]圖5是實施例的跟蹤過程的流程圖。
[0024]圖6是示出在用于減少讀取干擾錯誤的實施例的方法中的步驟的圖。
[0025]圖7是示出在用于減少讀取干擾錯誤的實施例的方法中的數(shù)據(jù)流的圖。
[0026]圖8A是示出實施例的耐讀取的塊的第一周期的圖。
[0027]圖SB是示出實施例的耐讀取的塊的第二周期的圖。
[0028]圖9是示出實施例的耐讀取的混合塊的圖。
[0029 ]圖1O是示出持續(xù)時間測量和閾值的實施例的圖表。
[0030]圖11是示出實施例的對熱讀取區(qū)的讀取以及驅(qū)動讀取的百分比的圖。
[0031]圖12和13是示出在實施例中可以如何使用讀取計數(shù)器的圖。
【具體實施方式】
[0032]如在上述【背景技術(shù)】部分提到的,讀取存儲器的塊中的字線可能通過改變存儲的電壓而引起存儲在相鄰的字線中的數(shù)據(jù)的錯誤。該影響被稱為“讀取干擾”。已經(jīng)開發(fā)出各種技術(shù)來嘗試直接地或間接地檢測讀取干擾錯誤,并且當(dāng)在塊中找到或者假設(shè)存在讀取干擾錯誤時,存儲器系統(tǒng)可以“清除”該塊(即,將數(shù)據(jù)從該塊移動到新的塊(如需要,錯誤校正),并且擦除舊的塊并且將其放到可用塊的池中)。由于數(shù)據(jù)的寫入將在新的塊的存儲器單元中存儲的電壓設(shè)置到合適的量(即,該寫入刷新了編程的狀態(tài)),因此將數(shù)據(jù)移動到新的塊消除了讀取干擾的有害影響。但是,如果數(shù)據(jù)被頻繁地訪問,則將存在對新的塊中的數(shù)據(jù)的許多讀取,這可能引起該新的塊也經(jīng)歷讀取干擾錯誤并且需要被清除。因此,即使清除原始的塊解決了目前的讀取干擾問題,但是并不解決是什么在最開始引發(fā)該問題的更寬泛的問題。以下實施例可被用于解決該更寬泛的問題。
[0033]在轉(zhuǎn)向這些和其它實施例之前,以下段落提供對可以與這些實施例一起使用的示例性存儲器系統(tǒng)的討論。當(dāng)然,這些僅是示例,并且可以使用其它合適類型的存儲模塊。
[0034]適合于在實現(xiàn)這些實施例的方面時使用的存儲器系統(tǒng)在圖1A-1C中示出。圖1A是示出根據(jù)在此描述的主題的實施例的非易失性存儲器系統(tǒng)的框圖。參考圖1A,非易失性存儲器系統(tǒng)100包括控制器102和可以由一個或多個非易失性存儲器裸芯104構(gòu)成的非易失性存儲器。如在此所使用的,術(shù)語裸芯指形成在單個半導(dǎo)體基板上的非易失性存儲器單元以及用于管理這些非易失性存儲器單元的物理操作的相關(guān)聯(lián)的電路的集合??刂破?02與主機(jī)系統(tǒng)相接口并且將用于讀取、編程和擦除操作的命令序列發(fā)送到非易失性存儲器裸芯104。
[0035]控制器102(其可以是快閃存儲器控制器)例如可以采取以下形式:處理電路、微處理器或處理器和存儲可由(微)處理器執(zhí)行的計算機(jī)可讀程序代碼(例如,固件)的計算機(jī)可讀介質(zhì)、邏輯門、開關(guān)、專用集成電路(ASIC)、可編程邏輯控制器和嵌入的微控制器。控制器102可以用硬件和/或固件配置以進(jìn)行下面描述并且在流程圖中示出的各種功能。此外,被示出為在控制器內(nèi)部的一些組件也可以存儲在控制器的外部,并且可以使用其它組件。此夕卜,短語“可操作性地與...通信”可以指直接地與…通信或者通過一個或多個組件間接地(有線的或無線的)與…通信,其中該一個或多個組件可能在此被示出或者沒有被示出。
[0036]如在此所使用的,快閃存儲器控制器是管理存儲在快閃存儲器上的數(shù)據(jù)并且與諸如計算機(jī)或電子裝置的主機(jī)通信的裝置??扉W存儲器控制器除了在此描述的特定功能以外可以具有各種功能。例如,快閃存儲器控制器可以格式化快閃存儲器以確保存儲器恰當(dāng)?shù)夭僮?,?biāo)出壞的快閃存儲器單元,并分配備用單元以用于替換將來故障的單元。備用單元的一些部分可被用于保持固件以操作快閃存儲器控制器并且實現(xiàn)其他特征。在操作中,當(dāng)主機(jī)需要從快閃存儲器讀取數(shù)據(jù)或者將數(shù)據(jù)寫入到快閃存儲器時,它將與快閃存儲器控制器通信。如果主機(jī)提供數(shù)據(jù)將被讀取/寫入的邏輯地址,快閃存儲器控制器可以將從主機(jī)接收的邏輯地址轉(zhuǎn)換為在快閃存儲器中的物理地址。(可替換地,主機(jī)可以提供物理地址。)快閃存儲器控制器還可以進(jìn)行各種存儲器管理功能,比如但不限于磨損均衡(分發(fā)寫入以避免否則將被重復(fù)地寫入的存儲器的特定塊的磨損)以及垃圾收集(當(dāng)塊已滿之后,僅將數(shù)據(jù)的有效頁移動到新的塊,因此已滿的塊可以被擦除并且重新使用)。
[0037]非易失性存儲器裸芯104可以包括任何合適的非易失性存儲介質(zhì),包括NAND快閃存儲器單元和/或NOR快閃存儲器單元。存儲器單元可以采取固態(tài)(例如,快閃)存儲器單元的形式并且可以是可一次編程、可幾次編程或可多次編程的。存儲器單元也可以是單級單元(SLC)、多級單元(MLC)、三級單元(TLC)或使用現(xiàn)在已知或者將來開發(fā)的其它存儲器單元級技術(shù)。此外,存儲器單元可以以二維或三維的方式制造。
[0038]控制器102和非易失性存儲器裸芯104之間的接口可以是任何合適的快閃接口,比如Toggle Mode(觸發(fā)模式)200、400或800。在一個實施例中,存儲器系統(tǒng)100可以是基于卡的系統(tǒng),比如安全數(shù)字(SD)或微安全數(shù)字(微-SD)卡。在可替換的實施例中,存儲器系統(tǒng)100可以是嵌入的存儲器系統(tǒng)的一部分。
[0039]盡管在圖1A中示出的示例中,非易失性存儲器系統(tǒng)100(在此有時被稱為存儲模塊)包括在控制器102和非易失性存儲器裸芯104之間的單個通道,但是在此描述的主題不限于具有單個存儲器通道。例如,在一些NAND存儲器系統(tǒng)架構(gòu)中(比如在圖1B和IC中示出的那些),取決于控制器能力,2、4、8個或更多的NAND通道可以存在于控制器和NAND存儲器裝置之間。在在此所述的任何一個實施例中,在控制器和存儲器裸芯之間可以存在多于單個通道,即使在附圖中示出了單個通道。
[0040]圖1B示出了包括多個非易失性存儲器系統(tǒng)100的存儲模塊200。如此,存儲模塊200可以包括與主機(jī)并且與包括多個非易失性存儲器系統(tǒng)100的存儲系統(tǒng)204相接口的存儲控制器202。存儲控制器202和非易失性存儲器系統(tǒng)100之間的接口可以是總線接口,比如串行高級技術(shù)附件(SATA)或外圍組件接口快速(PCIe)接口。在一個實施例中,存儲模塊200可以是比如在諸如膝上型計算機(jī)和平板計算機(jī)的便攜式計算裝置中找到的固態(tài)驅(qū)動(SSD)。
[0041]圖1C是示出分層的存儲系統(tǒng)的框圖。分層存儲系統(tǒng)250包括多個存儲控制器202,該多個存儲控制器202的每一個控制各自的存儲系統(tǒng)204。主機(jī)系統(tǒng)252可以經(jīng)由總線接口訪問存儲系統(tǒng)中的存儲器。在一個實施例中,總線接口可以是NVMe或以太網(wǎng)上的光纖信道(FCoE)接口。在一個實施例中,圖1C中示出的系統(tǒng)可以是可由多個主機(jī)計算機(jī)訪問的機(jī)架式可安裝的大容量存儲系統(tǒng),比如將在數(shù)據(jù)中心或需要大容量存儲的其它位置中找到的。
[0042]圖2A是更加詳細(xì)地示出控制器102的示例性組件的框圖??刂破?02包括與主機(jī)相接口的前端模塊108、與一個或多個非易失性存儲器裸芯104相接口的后端模塊110和進(jìn)行現(xiàn)在將詳細(xì)描述的功能的各種其它模塊。模塊例如可以采取以下形式:設(shè)計為與其它組件一起使用的封裝的功能性硬件單元、可以由通常進(jìn)行有關(guān)功能的特定功能的(微)處理器或處理電路執(zhí)行的程序代碼的一部分(例如,軟件或固件)、或與更大的系統(tǒng)相接口的自包含的硬件或軟件組件??刂破?02的模塊可以包括讀取計數(shù)器111和讀取干擾模塊112。如在下面更加詳細(xì)的解釋的,讀取計數(shù)器111和讀取干擾模塊112可被用于減少讀取干擾錯誤。
[0043]再次參考控制器102的模塊,緩沖器管理器/總線控制器114管理在隨機(jī)存取存儲器(RAM) 116中的緩沖器并且控制控制器102的內(nèi)部總線仲裁。只讀存儲器(R0M)118存儲系統(tǒng)引導(dǎo)代碼。盡管在圖2A中示出為位于與控制器102分離,但是在其它實施例中,RAM 116和ROM 118中的一個或兩者可以位于控制器內(nèi)。在其它實施例中,RAM和ROM的部分可以同時位于控制器102中和在控制器之外。
[0044]前端模塊108包括主機(jī)接口120和物理層接口(PHY) 122,它們提供與主機(jī)或下一級的存儲控制器的電接口。主機(jī)接口 120的類型的選擇可以取決于所使用的存儲器的類型。主機(jī)接口 120的示例包括但不限于SATA、SATA快速、SAS、光纖信道、USB、PCIe和NVMe。主機(jī)接口120通常促進(jìn)數(shù)據(jù)、控制信號和定時信號的轉(zhuǎn)移。
[0045]后端模塊110包括錯誤校正控制器(ECC)引擎124,該錯誤校正控制器(ECC)引擎124編碼從主機(jī)接收的數(shù)據(jù)字節(jié),并且解碼和錯誤校正從非易失性存儲器讀取的數(shù)據(jù)字節(jié)。命令排序器126產(chǎn)生將被傳輸?shù)椒且资源鎯ζ髀阈?04的命令序列,比如編程和擦除命令序列。RAID(獨立驅(qū)動的冗余陣列)模塊128管理RAID奇偶校驗的產(chǎn)生以及損壞的數(shù)據(jù)的恢復(fù)。RAID奇偶校驗可被用作正被寫入到存儲器裝置104中的數(shù)據(jù)的另外級別的完整性保護(hù)。在一些情況中,RAID模塊128可以是ECC引擎124的一部分。存儲器接口 130將命令序列提供到非易失性存儲器裸芯104并且從非易失性存儲器裸芯104接收狀態(tài)信息。在一個實施例中,存儲器接口 130可以是雙倍數(shù)據(jù)速率(DDR)接口,比如Toggle Mode(觸發(fā)模式)200、400或800接口。快閃控制層132控制后端模塊110的整體操作。
[0046]在圖2A中示出的系統(tǒng)100的另外的組件包括介質(zhì)管理層138,該介質(zhì)管理層138進(jìn)行非易失性存儲器裸芯104的存儲器單元的磨損均衡。系統(tǒng)100還包括其它分立的組件140,比如外部電接口、外部RAM、電阻器、電容器或可以與控制器102接口的其它組件。在可替換實施例中,物理層接口 122、RAID模塊128、介質(zhì)管理層138和緩沖器管理/總線控制器114的一個或多個是控制器102中并非必需的可選組件。
[0047]圖2B是更加詳細(xì)地示出了非易失性存儲器裸芯104的示例性組件的框圖。非易失性存儲器裸芯104包括外圍電路141和非易失性存儲器陣列142。非易失性存儲器陣列142包括被用于存儲數(shù)據(jù)的非易失性存儲器單元。非易失性存儲器單元可以是任何合適的非易失性存儲器單元,包括以二維和/或三維配置的NAND快閃存儲器單元和/或NOR快閃存儲器單元。外圍電路141包括向控制器102提供狀態(tài)信息的狀態(tài)機(jī)152。非易失性存儲器裸芯104還包括緩存數(shù)據(jù)的數(shù)據(jù)緩存156。
[0048]如上所述,在具有諸如NAND快閃存儲器的非易失性存儲器的存儲器系統(tǒng)中,讀取存儲器的塊中的字線可能通過改變存儲的電壓而引起存儲在相鄰的字線中的數(shù)據(jù)的錯誤。該影響被稱為“讀取干擾”。圖3A-3F通過各種示例示出了該影響。這些示例示出了存儲器的多個塊,其中存儲器的每個塊具有多個字線和位線的陣列。在一個實施例中,塊是存儲器的最小可擦除單元,盡管可以在更小級別的粒度上(例如在一個實施例中的頁,其中在字線中有四頁或八頁)進(jìn)行讀取和寫入。該多個塊可以位于一個存儲器裸芯上或跨過多個存儲器裸芯。圖3A-3F示出了多個塊在邏輯上一起被分組在“元塊”中。在一個實施例中,元塊中的塊可以并行被寫入和/或讀取。
[0049]圖3A-3F使用術(shù)語“干擾者(aggressor)”和“受害體(victim)”?!案蓴_者”指正被讀取的字線,并且“受害體”指由于干擾者而被讀取干擾的字線。受害體基于存儲器架構(gòu)的物理性質(zhì)而被讀取干擾。具體地,在一個實施例中,塊是字線和位線的陣列。為了從字線讀出數(shù)據(jù),該字線被充電到特定電壓(例如,2 O V ),并且其他字線被充電到較小的電壓(例如,10V)。即使其他字線不被讀取,也需要將其充電以便于激活與正被讀取的字線相交的位線。隨著時間,該較小的電壓損耗其他字線并且導(dǎo)致讀取干擾錯誤。被讀取的字線不會被不利地影響,因為其被以高電壓激活,并且可以使用通常是讀取過程的一部分的ECC(錯誤校正碼)校正來校正在數(shù)據(jù)中的任何錯誤。
[0050]現(xiàn)在轉(zhuǎn)向示例,圖3A示出了讀取干擾錯誤的單個實例。在該示例中,正在讀取字線的僅一部分(例如,2K或4K ECC頁(具有數(shù)據(jù)和覆蓋該數(shù)據(jù)的ECC位的頁))。但是,整個字線需要被充電,因為盡管該字線的僅一部分最終被轉(zhuǎn)移出,但需要感測整個字線。這導(dǎo)致兩個相鄰的字線的整體成為受害體。盡管受害的程度不大,但是第一個和最后的字線也是受害體,因為它們靠近源極和漏極。
[0051]圖3B示出了對齊的順序讀取干擾。在該示例中,跨過元塊中的所有塊的字線正被讀取(作為“元頁”)。如在圖3A中,讀取字線是干擾者,相鄰的字線是受害體,并且第一個和最后的字線也是受害體,但是不像相鄰的字線那樣嚴(yán)重。圖3C示出了長順序讀取干擾,其中正在讀取兩個相鄰條帶的字線。這兩個相鄰條帶的字線都是干擾者和受害體兩者,由于其每一個在被讀取時是干擾者而在另一個被讀取時是受害體。如在圖3A和3B中,受害體也是緊相鄰的字線,以及達(dá)較小的程度的第一個和最后的字線。圖3D示出了未對齊的長順序讀取干擾,其中對跨過塊的彼此沒有對齊的字線的讀取導(dǎo)致不同的字線成為受害體。圖3E示出了在相同的塊中的多個讀取干擾干擾者和受害體,并且圖3F示出了讀取條帶橫跨幾個字線的示例(比如當(dāng)存在幾個塊的頻繁被訪問的數(shù)據(jù)時),使得它們都是干擾者和受害體。
[0052]通過這些示例可見,對存儲器的局部化的區(qū)的讀取可能導(dǎo)致在塊中的相鄰的字線中的未被檢測的干擾。由于讀取干擾錯誤發(fā)生在相鄰的字線中,當(dāng)讀取給定字線時沒有對于該讀取導(dǎo)致讀取干擾錯誤或者錯誤在何處發(fā)生的指示。已經(jīng)開發(fā)出各種技術(shù)來嘗試直接地或間接地檢測讀取干擾錯誤。例如,當(dāng)讀取給定字線時,存儲器系統(tǒng)還可以讀取相鄰的字線(例如,偽隨機(jī)地或周期性地,該周期性取決于所允許的讀取的數(shù)量)以確定在該相鄰的字線中的讀取錯誤的數(shù)量是否超過閾值(例如,大于ECC引擎可以校正的錯誤量的75%),這將指示該相鄰的字線被讀取干擾。但是,該方法可能給主機(jī)操作增加額外的功率和等待時間。(主機(jī)的示例包括但不限于移動電話、平板計算機(jī)、數(shù)字媒體播放器、游戲裝置、個人數(shù)字助理(PDA)、移動(例如,筆記本型、膝上型)個人計算機(jī)(PC)或書籍閱讀器)。此外,讀取相鄰的字線可能促成塊的讀取干擾問題,因為讀取相鄰的字線導(dǎo)致它們成為干擾者。
[0053]作為另一示例(被稱為“讀取巡檢”),所述存儲器系統(tǒng)可以隨機(jī)地或者連續(xù)地讀取字線以查找可能已經(jīng)由讀取干擾引起的可校正的錯誤。但是,因為讀取巡檢不是結(jié)合讀取進(jìn)行的并且不將相鄰的字線作為目標(biāo),該技術(shù)可能不如上述技術(shù)有效。此外,讀取巡檢可能不能在數(shù)據(jù)保留問題(即,隨著時間的流逝,存儲器單元漂移到O伏)和讀取干擾之間區(qū)分。此外,該技術(shù)使用額外的背景功率,可能不能及時找到或者根本不能找到讀取干擾錯誤(取決于提供的背景/空閑時間的量),并且由于讀取干擾影響的強(qiáng)局部性可能花費極大量的時間以覆蓋整個存儲器。此外,讀取巡檢由于其正在讀取字線并且干擾相鄰者,可能自身就促成其試圖解決的問題。
[0054]作為另一示例,存儲器系統(tǒng)可以使用塊讀取計數(shù)器來計數(shù)對每個塊的讀取次數(shù),并且當(dāng)對給定塊的讀取的次數(shù)超過閾值時,該存儲器系統(tǒng)可以假設(shè)讀取干擾錯誤很可能已經(jīng)在塊中發(fā)生。該技術(shù)消耗一定量的存儲器空間(例如,2-4字節(jié)每塊(假設(shè)一個計數(shù)器,并且可以存在更多個)乘以存儲器系統(tǒng)中塊的數(shù)量)。例如,在固態(tài)驅(qū)動(SSD)中,可以有256K個塊,這可以等于512KB-1MB的空間用于塊讀取計數(shù)器。此外,由于塊計數(shù)器僅計數(shù)對塊的讀取而不是對在塊中的特定字線的局部化讀取,該技術(shù)可能過于消極并且當(dāng)實際上不存在問題時指示讀取干擾問題。
[0055]不管所使用的檢測技術(shù),當(dāng)在塊中找到或者假設(shè)存在讀取干擾錯誤時,存儲器系統(tǒng)可以“清除”該塊(即,將數(shù)據(jù)從該塊移動到新塊(如需要,錯誤校正),并且擦除舊的塊并且將其放到可用塊的池中)。由于數(shù)據(jù)的寫入在新塊的存儲器單元中將存儲的電壓設(shè)置到合適的量(即,該寫入刷新了編程的狀態(tài)),因此將數(shù)據(jù)移動到新塊消除讀取干擾的不利影響。但是,如果數(shù)據(jù)被頻繁地訪問,則在新塊中將有對數(shù)據(jù)的許多讀取,這可能引起新塊經(jīng)歷讀取干擾錯誤并且需要被清除。因此,即使清除原始的塊解決了目前的讀取干擾問題,但是并不解決是什么在最開始引發(fā)該問題的更寬泛的問題。以下實施例可被用于解決該更寬泛的問題
[0056]—般來說,這些實施例使用三個不同“級”的塊。在此,“級”不是指空間關(guān)系(即一級的塊在另一級的塊之上),而是指為對不同的塊用于不同目的的指定,并且在本上下文中有時將使用術(shù)語“集合”替代“級”。在塊的第一、第二和/或第三級中的塊可以是相同類型的存儲器技術(shù)(例如,都是多級單元(MLC)塊)或者不同類型的存儲器技術(shù)(例如,第一和第二級可以包含MLC塊,而第三級包含單級單元(SLC)塊,或者第一級可以包含MLC塊,而第二和第三級包含SLC塊等)。
[0057]在一個實施例中,第一級的塊是存儲器系統(tǒng)的“普通(common)”塊并且可以來自可用塊的一般池。第二級的塊是比第一級的塊(第一級可以包含或者不包含任何讀取計數(shù)器)包含更多讀取計數(shù)器的那些塊。如將在下面更加詳細(xì)地討論的,不是永久地將讀取計數(shù)器與給定的塊相關(guān)聯(lián),存儲器系統(tǒng)100(例如,一般是控制器102或者特別地是讀取干擾模塊112)可以動態(tài)地將讀取計數(shù)器與不同的塊關(guān)聯(lián)。以此方式,給定的塊有時可以是級一的塊并且在其它時間是級二的塊(當(dāng)存儲器系統(tǒng)100將讀取計數(shù)器分配到該塊時),并且反之亦然。因為讀取計數(shù)器使用存儲器系統(tǒng)100中的資源,所以通常級二的塊(例如,5-10塊)遠(yuǎn)少于級一的塊。第三級的塊是數(shù)據(jù)可以以使得該數(shù)據(jù)相比于被存儲在第一級的塊中較不易受讀取干擾錯誤影響的方式被存儲的塊。
[0058]一般來說,當(dāng)級一的塊由于讀取干擾錯誤需要被清除時,代替將數(shù)據(jù)復(fù)制到另一個級一的塊,而是將該數(shù)據(jù)復(fù)制到級二的塊。不同于可能具有被分配給其的(如果有)非常少的(例如,一個)讀取計數(shù)器的級一的塊,級二的塊具有許多被分配給其的讀取計數(shù)器(例如,在一個實施例中,對于塊中的每一最小可讀單元一個讀取計數(shù)器)O以此方式,級二的塊可被用于確定在該塊中的哪些特定的數(shù)據(jù)正被非常頻繁地讀取并且引起讀取干擾錯誤。再次,這不同于級一的塊,級一的塊如果具有讀取計數(shù)器,則只能指示該塊大體上被頻繁地讀取-而不能指示在塊中的哪些特定的數(shù)據(jù)正被頻繁地讀取。通過該知識,存儲器系統(tǒng)100可以將頻繁地讀取的數(shù)據(jù)復(fù)制到級三的塊,該級三的塊相比級一的塊可以更好地經(jīng)受高頻率的讀取。如在級二的塊中所做的,存儲器系統(tǒng)可以監(jiān)視在該級三的塊中的數(shù)據(jù)(使用相同或者不同數(shù)量的讀取計數(shù)器)以確定數(shù)據(jù)的讀取活躍性何時降低到將數(shù)據(jù)移動回級一的塊是安全的級別。
[0059]返回到附圖,圖4和5是用于減少讀取干擾錯誤的實施例的方法的流程圖400、500并且將結(jié)合在圖6和7中的示意圖討論。在該方法中的動作可以由在存儲器系統(tǒng)100中的任何合適的組件進(jìn)行。例如,在一個實施例中,方法步驟一般在控制器102中實現(xiàn),而在另一實施例中,方法步驟在讀取干擾模塊中實現(xiàn)。如在圖4中所示出的,在該方法中,存儲器系統(tǒng)100初始化并且使用讀取干擾檢測技術(shù)(諸如但不限于以上討論的三種技術(shù)之一)以尋找第一級中的包含讀取干擾錯誤的塊(動作410)。在某時,讀取干擾檢測技術(shù)識別具有讀取干擾錯誤并且需要被清除的塊(動作420)。可選地,如果已知干擾者字線,則存儲器系統(tǒng)100可以檢查相鄰碼字的順序樣式,因為包含那些碼字的字線也可能是干擾者(例如,當(dāng)碼字是被頻繁地讀取的數(shù)據(jù)的一部分時)(動作430)。例如,存儲器系統(tǒng)100可以檢查一個或多個物理元頁相鄰者和邏輯地址相鄰者兩者,該邏輯地址相鄰者可能不在物理上相鄰地存儲。
[0060]存儲器系統(tǒng)100然后清除由讀取干擾檢測技術(shù)指定的塊(動作440)。這在圖6中的步驟O和I中圖示地示出,其中存儲在級一的塊中的數(shù)據(jù)被移動到級二的塊(在該移動之后,源塊可以被擦除并且放置到可用的級一塊的池中)。如上所述,級一的塊可以是MLC塊,而級二的塊可以是SLC塊,這可以幫助在下面討論的跟蹤過程期間的耐受性。接著,對級二的塊中的重新安置的數(shù)據(jù)開始跟蹤過程(動作450)。該動作將結(jié)合圖5中的流程圖500在下面更加詳細(xì)地討論。
[0061 ]存儲器系統(tǒng)100對其它塊繼續(xù)讀取干擾檢測過程(動作460),對其它塊重復(fù)上述動作。如圖6中的步驟2示出的,這可以導(dǎo)致更多的數(shù)據(jù)從級一的塊移動到級二的塊。如上所討論的,由于讀取計數(shù)器的有限的數(shù)量,級二的塊可能是存儲器系統(tǒng)100中的有限的資源。因此,可能的是,相比可用的級二的塊可能有更多的具有讀取干擾錯誤的塊來清除其中的數(shù)據(jù)。在可能存在進(jìn)入級二的塊中的數(shù)據(jù)“洪流(flood)”的該情況下,存儲器系統(tǒng)100可以實現(xiàn)“洪流控制”技術(shù)。例如,存儲器系統(tǒng)I 00可以評估現(xiàn)有的塊以用于回收和先占(preempt1n)。作為另一示例(在圖6的步驟2.1中示出),存儲器系統(tǒng)100可以采用細(xì)流(trickle)技術(shù),其中使有限數(shù)量的塊在給定時間段期間進(jìn)入級二以幫助確保洪流不會發(fā)生。作為另一示例(在圖6的步驟2.2中示出),替代于使用先占技術(shù),級二可以被完全關(guān)閉以防止任何塊進(jìn)入,從而拒絕洪流。
[0062]如上所述,當(dāng)在清除操作之后數(shù)據(jù)被移動到級二的塊中時,對數(shù)據(jù)進(jìn)行跟蹤過程(動作450)?,F(xiàn)在將結(jié)合圖5中的流程圖500更加詳細(xì)地討論該跟蹤過程。如在圖5中所示的,存儲器系統(tǒng)100分配(例如,經(jīng)由快閃轉(zhuǎn)換層(FTL)表)大量的讀取計數(shù)器(多于級一的塊中的)以跟蹤從級二的塊讀取的每個“單元”(動作510)。(在一個實施例中,計數(shù)器的值被周期性地存儲在非易失性存儲器中以針對電力丟失進(jìn)行保護(hù))。而在級一的塊中的讀取計數(shù)器可以指向整個塊,因此對塊的任何部分的讀取由該計數(shù)器登記,在級二的塊中的讀取計數(shù)器具有更精細(xì)的粒度。例如,正由讀取計數(shù)器跟蹤的“單元”可以是ECC頁(碼字)或主機(jī)請求大小。對于被讀取的每個單元,相關(guān)聯(lián)的計數(shù)器遞增(動作520),并且存儲器系統(tǒng)100確定計數(shù)器是否大于閾值(例如,塊的最大讀取計數(shù)的80%)(動作530)。當(dāng)計數(shù)器大于閾值時,存儲器系統(tǒng)100確定已經(jīng)達(dá)到該閾值(動作540)。
[0063]以上步驟在流程圖400中將被稱為“路徑I”。在流程圖400中的“路徑2”中,存儲器系統(tǒng)100然后確定由于經(jīng)過的窗口或由于產(chǎn)生(spawn) 了幾個新的過程,所以需要整合(consolidat1n)結(jié)束(動作580)。然后,存儲器系統(tǒng)100由于諸如但不限于時間或流量改變的其他因素結(jié)束該過程(動作590)。
[0064]接著,存儲器系統(tǒng)100評估所有的級二的計數(shù)器的其它可能被認(rèn)為是格外高的異常值(動作550)。在這點上存在幾個可能的情況。在路徑I中,在塊中可能有小的片段的熱讀取數(shù)據(jù)而沒有其它異常值,整個塊可以是熱的,或者在塊中可能有幾個片段的熱讀取數(shù)據(jù)(即,其它熱讀取異常值可能存在,但是它們可能還未達(dá)到閾值)。在路徑2中,級二的跟蹤可能過早地結(jié)束。如果由于時間而采用路徑2,則該塊可以被認(rèn)為是冷的,或者可能還未達(dá)到閾值。此外,如果由于在短時間窗口中產(chǎn)生了多個級二的過程而采用路徑2,則熱讀取區(qū)可能被認(rèn)為足夠大。就是說,如果在短時間窗口中產(chǎn)生了多個會話(sess1n),則存儲器系統(tǒng)100可以使用另外的計數(shù)器集合直到耗盡(例如,保持產(chǎn)生水平直到在級二中沒有更多的空間,并且然后進(jìn)行洪流控制)。如果所有的集合已經(jīng)耗盡并且對于最舊的跟蹤的重新安置的評估窗口被認(rèn)為足夠大(例如,由總的裝置讀取限定),則存儲器系統(tǒng)100可以移到到結(jié)束步驟并且然后允許新產(chǎn)生的過程重新應(yīng)用計數(shù)器(例如,擦除和分配)。
[0065]圖7示出了以上討論的方法的示例。如圖7所示的,數(shù)據(jù)被寫入到塊W中,該塊W是級一的塊。當(dāng)存儲器系統(tǒng)100確定在塊W中發(fā)生了讀取干擾錯誤時(例如,使用上述的三種讀取干擾錯誤檢測技術(shù)之一或一些其它技術(shù)),存儲器系統(tǒng)100將數(shù)據(jù)從塊W移動到塊X,該塊X是級二的塊。塊W然后被擦除并且放回到級一的池中以在之后需要級一的塊時使用。因為塊X是級二的塊,存在比塊W更多的與該塊相關(guān)聯(lián)的讀取計數(shù)器(因為塊W是級一的塊)。例如,在一個實施例中,可以為塊中的每個最小的讀取單元(例如,ECC頁)分配讀取計數(shù)器。當(dāng)然,可以使用不同級別的粒度。
[0066]通過使用許多讀取計數(shù)器,存儲器系統(tǒng)100可以確定塊的數(shù)據(jù)/區(qū)域多頻繁地被讀取以識別由于如此頻繁的被讀取而正引起讀取干擾問題的數(shù)據(jù)。在一個實施例中,存儲器系統(tǒng)100將讀取計數(shù)器的值與一個或多個閾值比較以確定存儲在塊中的數(shù)據(jù)是“熱的”還是“冷的”。如在此所使用的,“熱讀取數(shù)據(jù)”(或“熱數(shù)據(jù)”)指被頻繁地讀取的數(shù)據(jù)(例如,在社交媒體上已經(jīng)“病毒般擴(kuò)散”的照片),并且“冷讀取數(shù)據(jù)”(或“冷數(shù)據(jù)”)指不頻繁地讀取的數(shù)據(jù)(例如,實現(xiàn)的數(shù)據(jù))。盡管術(shù)語“熱”和“冷”用在這些短語中,但是“熱”和“冷”在本上下文中不是指實際溫度,而是指數(shù)據(jù)被讀取的相對頻率。
[0067]如圖7所示的,該分析存在三種可能性:該塊可以存儲全部冷讀取數(shù)據(jù),全部熱讀取數(shù)據(jù),或者冷讀取數(shù)據(jù)和熱讀取數(shù)據(jù)的混合。如果該塊包含全部冷讀取數(shù)據(jù),則可能但是,存在讀取干擾錯誤的誤檢測或者引起讀取干擾錯誤的任何讀取條件不再存在,因此數(shù)據(jù)可以被移動回到任何的級一的塊(不一定是其所來自的級一的塊(塊W)),并且塊X可以變?yōu)榭捎糜诜治銎渌鼣?shù)據(jù)的讀取樣式。如果塊包含全部熱讀取數(shù)據(jù),則引起讀取干擾錯誤的讀取條件仍存在,并且如果數(shù)據(jù)被復(fù)制回到級一的塊,則很可能發(fā)生讀取干擾錯誤。因此,而是,數(shù)據(jù)被復(fù)制到級三的塊(也見圖6的步驟3)。如果該塊包含冷讀取數(shù)據(jù)和熱讀取數(shù)據(jù)的混合,則冷讀取數(shù)據(jù)和熱讀取數(shù)據(jù)可以分離,冷數(shù)據(jù)被復(fù)制回到級一的塊并且熱數(shù)據(jù)被復(fù)制到級三的塊。通過熱/冷類型劃分?jǐn)?shù)據(jù)不一定需要立刻發(fā)生而是可以通過對下一清除/壓縮(compact1n)運用的建議來進(jìn)行,或者收集足夠的熱數(shù)據(jù)以認(rèn)為其對于創(chuàng)建熱讀取塊是可接受的。這避免了使得熱讀取塊打開,因為不完整的寫入塊更易受到讀取干擾的影響。存儲器系統(tǒng)100可以記錄來自級二評估的建議的分類并且重新應(yīng)用讀取計數(shù)器用于另一評估。
[0068]熱數(shù)據(jù)被從級二的塊復(fù)制到級三的塊(而不是回到級一的塊)的原因是,因為對級三的塊的讀取相比對級一的塊的讀取更不太可能引起讀取干擾錯誤。存在級三的塊可以提供該特征的幾種方式。例如,級三的塊可以是SLC塊,其具有比MLC塊更高的讀取耐久性,該MLC塊通常被用作級一的塊。作為另一示例,“虛數(shù)據(jù)”可以存儲在圍繞干擾者字線的一個或多個相鄰字線中,并且讀取數(shù)據(jù)可以存儲得更加遠(yuǎn)離干擾者。以此方式,即使產(chǎn)生了讀取干擾錯誤,其也不會損害存儲在塊中的其它數(shù)據(jù)。該“虛數(shù)據(jù)”技術(shù)可以與SLC或MLC(或其它)塊一起使用。也可以使用其它替換。例如,如在圖8A和8B中所示的,除了圍繞SLC塊中的干擾者字線的虛數(shù)據(jù)以外,在未來的周期中可以增加額外的虛字線以使得該塊更加耐讀取。作為另一示例,可以使用耐讀取的混合塊(見圖9),其中SLC塊的一部分被用于在由虛數(shù)據(jù)圍繞的干擾者字線中存儲數(shù)據(jù),并且SLC塊的另一部分被用于存儲正常的數(shù)據(jù)。這些塊可以經(jīng)受住更多次的讀取并且因此使用不同組的讀取閾值。在一個可替換實施例中,只有更冷的/最冷的寫入數(shù)據(jù)被放置于評估中以避免已經(jīng)被安排經(jīng)歷一些級別的壓縮/過濾的最新的寫入(熱寫入)數(shù)據(jù)。因此,在該替換中,僅當(dāng)塊在最近沒有被寫入時產(chǎn)生級二的跟蹤,如同塊被刷新(熱寫入數(shù)據(jù))一樣,刷新操作解決讀取干擾問題。在又一個替換中,存儲器系統(tǒng)100可以復(fù)制相鄰者中的數(shù)據(jù)以減少干擾影響并且提供增加的冗余性。此外,存儲器系統(tǒng)100可以將虛相鄰者放置在平均偏置(數(shù)據(jù)組N和N+1的平均)或者C-狀態(tài)中以減少干擾影響。在塊的每個編程/擦除周期(或周期組)中,數(shù)據(jù)可以在使用偏置O和+1之間往復(fù),使得有效數(shù)據(jù)組與虛數(shù)據(jù)交替。在又一個替換中,級三的存儲器可以是RAM,因此數(shù)據(jù)在其在正“冷卻”的同時被緩存在RAM中。
[0069]當(dāng)熱讀取數(shù)據(jù)被存儲在級三的塊(圖7中的塊Y)中時,讀取計數(shù)器監(jiān)視存儲的數(shù)據(jù)的讀取活躍性以檢測該數(shù)據(jù)何時已經(jīng)“冷卻下來”以及讀取活躍性何時達(dá)到在閾值之下的穩(wěn)定狀態(tài)。由于讀取數(shù)據(jù)將很可能不再導(dǎo)致讀取干擾錯誤,所以數(shù)據(jù)從級三的塊被移動回到級一的塊(盡管不一定是初始地存儲該數(shù)據(jù)的相同的級一的塊)。這在圖6中的步驟4中圖示地示出。該跟蹤檢測變熱的讀取或讀取的冷卻的穩(wěn)定狀態(tài)。
[0070]任何合適的技術(shù)可被用于確定數(shù)據(jù)是否已經(jīng)充分地“冷卻”。在一個示例性技術(shù)中,“冷卻”可以被定義為從熱跨越到冷的單個閾值。例如,如果讀取穿過百分之五十(0.50)的熱確定,則塊可以被認(rèn)為是冷的??梢允褂迷撛O(shè)計來替代檢測冷卻率(第二級集成)以及跟蹤歷史信息。例如,如果存儲器系統(tǒng)100正在尋找每一天將被清除的數(shù)據(jù)(假設(shè)對一塊的每天10,000MLC感測將導(dǎo)致清除),則不是一整天跟蹤該塊,而是存儲器系統(tǒng)100可以使用用于較短持續(xù)時間的評估的內(nèi)插來分析每秒的讀取。在圖10中的表中示出了該內(nèi)插的示例。存儲器系統(tǒng)100可以評估在短持續(xù)時間期間的讀取,在該短持續(xù)時間期間,明顯的證據(jù)表明在級二的評估內(nèi)的數(shù)據(jù)將導(dǎo)致連續(xù)的清除。如果級二的評估由于回收(先占)或斷電需要被終止,則可以測量該持續(xù)時間,并且可以比較合適的閾值(例如,如果該持續(xù)時間是32秒,則32*1秒(10K/(24*60*60))。每秒的讀取也可以被評估為速度,因此能夠利用加速度模型檢測變熱速度和冷卻速度(讀取/秒~2)。計算第二級集成以確定加速度可以獲取至少兩個或更多的測量點。因此,存儲器系統(tǒng)100可以測量讀取頻率多快地上升和下降,其中指數(shù)加速度指示數(shù)據(jù)特別熱。
[0071]在圖11中示出了可被用于確定數(shù)據(jù)是否被充分地“冷卻”的另一技術(shù)。在該技術(shù)中,為了檢測“熱讀取冷卻”,存儲器系統(tǒng)100可以計算通過在若干時間段期間的驅(qū)動讀取的百分比劃分的熱區(qū)讀取。
[0072]通過這些實施例提供了一些益處。例如,通過使用臨時組的計數(shù)器用于對包含讀取干擾錯誤的塊識別熱讀取數(shù)據(jù)并且將其與剩余的寫入數(shù)據(jù)(即,冷的或不冷不熱的)分離而實現(xiàn)第二級分析,這些實施例可以識別極高的讀取用于特殊對待。以此方式,這些實施例可以識別熱讀取數(shù)據(jù)并且不同地對待熱讀取數(shù)據(jù)(例如,將熱讀取數(shù)據(jù)放置在沒有相鄰者的SLC塊中并且將虛數(shù)據(jù)放置在第一和最后的字線中)。這在其中大部分的驅(qū)動空間被“很少”讀取(即,不足以引起讀取干擾的讀取)的存儲器系統(tǒng)中提供了特定的益處。此外,這些實施例可以通過讀取強(qiáng)度來劃分?jǐn)?shù)據(jù),以增強(qiáng)耐受性的方式將高讀取密度的數(shù)據(jù)存儲在SLC塊中,監(jiān)視熱讀取數(shù)據(jù)的冷卻,累計(integrate)在短時間段上的讀取(測量每個時間段的讀取),管理讀取計數(shù)器以處理洪流并將數(shù)據(jù)迀移到新的塊以避免開放的塊讀取,評估較冷/最冷的寫入數(shù)據(jù)以避免將熱寫入數(shù)據(jù)和冷/熱讀取數(shù)據(jù)類型混合(因為熱寫入數(shù)據(jù)可能經(jīng)歷一個級別的壓縮,并且因此其已經(jīng)經(jīng)受了從讀取干擾的刷新),將熱讀取數(shù)據(jù)放置在SLC中以增強(qiáng)讀取性能,將熱讀取數(shù)據(jù)和冷讀取數(shù)據(jù)分離開以增強(qiáng)耐受性,將數(shù)據(jù)唯一地存儲在SLC塊中以幫助避免特別是對于熱讀取數(shù)據(jù)的讀取干擾,以及測量每個時間的讀取的改變速率以近似數(shù)據(jù)可能變熱的方式。
[0073]如上所討論的,級二的塊和級三的塊具有分配給它們的讀取計數(shù)器以檢測數(shù)據(jù)的“讀取溫度”。以下段落(以及圖12和13)提供使用讀取計數(shù)器的一個特定的實現(xiàn)方式。當(dāng)然,可以使用其它實現(xiàn)方式。
[0074]在一個實施例中,使用哈希樹(hashtree)跟蹤讀取區(qū)并且尋找存儲器的熱讀取區(qū)域。哈希樹使用存儲器區(qū)域的小的占用面積(footprint),取決于該樹的設(shè)計水平可以提供比簡單的塊計數(shù)器更高的準(zhǔn)確性。哈希樹可以幫助隔離主機(jī)正在讀取的存儲器的區(qū)域。該樹可以可以被設(shè)計為高或矮。通過更多的分支或更多的奇點(singularity),該樹可以是對稱的或者不對稱的。
[0075]在一個實現(xiàn)方式中,當(dāng)樹開始時,僅使用一級(級O)。(在此,“級”指在數(shù)中的一級一而不是上述塊級別)。級O是N個4-字節(jié)計數(shù)器的單個集合。當(dāng)區(qū)被讀取命中時,讀取計數(shù)器遞增。當(dāng)區(qū)到達(dá)某個閾值時,該區(qū)被提升到級一(用于提升的閾值可能隨著樹被填充而需要被修改)。當(dāng)該區(qū)被提升到級一時,其空間被劃分為級一中的進(jìn)一步的區(qū)。這提供了在檢測區(qū)的熱空間中的更高的準(zhǔn)確性。使用指針來指示哪個區(qū)已經(jīng)提升。當(dāng)區(qū)提升之后,其根仍然遞增以幫助保持對其讀取計數(shù)的跟蹤。
[0076]該區(qū)的提升可以對該樹向上延續(xù)。每級哈希可以具有一個或多個子節(jié)點。因為在嵌入的裝置中空間有限,所以當(dāng)在較低節(jié)點中的不同的區(qū)變得更熱時,如果該樹不能無邊界地生長,則可能發(fā)生回收。當(dāng)回收發(fā)生時,該區(qū)回縮(collapsed down),并且新的區(qū)在樹中提升以用于更多的分析。在回收期間,仍保留區(qū)讀取計數(shù),但是樹信息可能丟失。隨著區(qū)達(dá)到樹的尖端并且達(dá)到最高閾值,該區(qū)可以被放置到讀取巡檢列表上以用于對讀取清除的進(jìn)一步評估。周期性地,該樹及其參數(shù)可以保存到非易失性存儲器。然后,在通電時,可以將該表從非易失性存儲器加載到RAM。
[0077]為避免計數(shù)器飽和,可以周期性地將該樹修剪(prune)回一些量。該修剪可以與塊擦除、熱讀取數(shù)據(jù)迀移以及可替代地當(dāng)達(dá)到某些熱計數(shù)里程時一起發(fā)生。使用裝置平均地磨損(以及跟蹤迀移數(shù)據(jù)以避免數(shù)據(jù)保留問題)的假設(shè),在系統(tǒng)中的所有塊在熱計數(shù)中可以變化不超過X%。使用該知識,可以建立某些熱計數(shù)檢查點以修剪樹。樹的修剪可以是全局復(fù)位,或者以一百分比將計數(shù)器配對,或者以固定的量將樹配對??梢栽诿慨?dāng)樹干(stem)閾值被超過時(導(dǎo)致塊/字線達(dá)到清除列表)修剪樹。
[0078]當(dāng)區(qū)域被檢測為熱時,該熱區(qū)域(及其相鄰字線)可以被刷新到新的塊(留下塊的其余部分原封不動),或者整個塊可以被清除。熱數(shù)據(jù)可以被刷新到單獨的區(qū)以當(dāng)讀取繼續(xù)時不妨礙(trip)該樹,或者該熱數(shù)據(jù)可以只是自然地迀移。如果自然地迀移,則在熱讀取區(qū)變冷的事件中可以不需要做任何特別的事情。
[0079]在區(qū)域被檢測為熱并且相鄰者被檢查和清除之后,可以使用單獨的表邏輯地跟蹤熱數(shù)據(jù)。單獨地跟蹤數(shù)據(jù)可以提供檢測數(shù)據(jù)何時變冷的優(yōu)點,并且從在擦除之后在樹中具有相同的數(shù)據(jù)觸發(fā)分支得到幫助。熱數(shù)據(jù)仍將需要針對未來的讀取干擾而被跟蹤。
[0080]如果該樹被用于物理地跟蹤裝置并且在區(qū)中發(fā)生擦除,則讀取計數(shù)器可以退回(roll back)定義的量以應(yīng)對該區(qū)的一部分已經(jīng)被刷新的事實。該樹的分支可以表示一組(例如,4KB)、裸芯的字線、一系列字線或者一系列塊。如果擦除發(fā)生在塊的單元上,如果需要,表示該塊的分支可能需要回縮到塊級別。在回縮時,新的分支可以被提升或者提升可能發(fā)生在對該組的下一讀取上。替換的設(shè)計是使得該樹邏輯地而不是物理地跟蹤地址,其中任何對區(qū)/分支的寫入可以對計數(shù)器具有遞減影響。對于讀取巡檢,系統(tǒng)可以與讀取相鄰頁的設(shè)計耦合,并且然后對于巡檢區(qū)域使用較低根值??商鎿Q地,讀取巡檢可以巡檢樹中的頂部節(jié)點作為第一步驟。
[0081]最后,如上所述,可以使用任何合適的類型的存儲器。半導(dǎo)體存儲器裝置包括:易失性存儲器裝置,比如動態(tài)隨機(jī)存取存儲器(“DRAM”)或靜態(tài)隨機(jī)存取存儲器(“SRAM”)裝置;非易失性存儲器裝置,比如電阻式隨機(jī)存取存儲器(“ReRAM”)、電可擦除可編程只讀存儲器(“EEPR0M”)、快閃存儲器(其也可以被認(rèn)為是EEPROM的子集)、鐵電隨機(jī)存取存儲器(“FRAM”)和磁阻隨機(jī)存取存儲器(“MRAM” );以及能夠存儲信息的其它半導(dǎo)體元件。每種類型的存儲器裝置可以具有不同的配置。例如,快閃存儲器裝置可以以NAND或NOR配置而配置。
[0082]存儲器裝置可以以任何組合由無源和/或有源元件構(gòu)成。以非限制性示例的方式,無源半導(dǎo)體存儲器元件包括:ReRAM裝置元件,其在一些實施例中包括電阻率切換存儲元件,比如反熔絲、相變材料等;以及可選地包括控制元件,比如二極管等。進(jìn)一步以非限制性示例的方式,有源半導(dǎo)體存儲器元件包括EEPROM和快閃存儲器裝置元件,其在一些實施例中包括包含電荷存儲區(qū)域的元件,比如浮置柵極、導(dǎo)電納米粒子或電荷存儲電介質(zhì)材料。
[0083]多個存儲器元件可以被配置為使得它們串聯(lián)連接或者使得每個元件單獨可訪問。以非限制性示例的方式,在NAND配置(NAND存儲器)中的快閃存儲器裝置通常包含串聯(lián)連接的存儲器元件。NAND存儲器陣列可以被配置為使得陣列由多個存儲器串構(gòu)成,其中串由共享單個位線并作為一組被訪問的多個存儲器元件構(gòu)成??商鎿Q地,存儲器元件可以被配置為使得每個元件單獨可訪問,例如NOR存儲器陣列。NAND和NOR存儲器配置是示例性的,并且可以以其它方式配置存儲器元件。
[0084]位于基板內(nèi)和/或基板上的半導(dǎo)體存儲器元件可以被布置為二維或者三維,比如二維存儲器結(jié)構(gòu)或三維存儲器結(jié)構(gòu)。
[0085]在二維存儲器結(jié)構(gòu)中,半導(dǎo)體存儲器元件被布置在單個平面或者單個存儲器裝置級中。典型地,在二維存儲器結(jié)構(gòu)中,存儲器元件被布置在基本上平行于支撐存儲器元件的基板的主表面而延伸的平面中(例如,在x-z方向平面中)?;蹇梢允窃谄渖匣蚱渲行纬纱鎯ζ髟膶拥木蛘呖梢允窃诖鎯ζ髟纬芍蟊桓接诖鎯ζ髟妮d體基板。作為非限制性示例,基板可以包括諸如硅的半導(dǎo)體。
[0086]存儲器元件可以布置在有序的陣列中的單個存儲器裝置級中,比如在多個行和/或列中。但是,存儲器元件可以以不規(guī)則或者非正交的配置形成陣列。存儲器元件的每一個可以具有兩個或更多的電極或接觸線,比如位線和字線。
[0087]三維存儲器陣列被布置為使得存儲器元件占據(jù)多個平面或多個存儲器裝置級,從而在三維中形成結(jié)構(gòu)(即,在x、y和z方向中,其中y方向基本上垂直于基板的主表面,并且X和z方向基本上平行于基板的主表面)。
[0088]作為非限制性示例,三維存儲器結(jié)構(gòu)可以被垂直地布置為多個二維存儲器裝置級的堆疊。作為另一非限制性示例,三維存儲器陣列可以被布置為多個垂直的列(例如,基本上垂直于基板的主表面、即在y方向上而延伸的列),每個列具有在每個列中的多個存儲器元件。列可以布置在二維配置中,例如,在χ-ζ平面中,得到具有在多個垂直地堆疊的存儲器平面上的元件的存儲器元件的三維布置。存儲器元件在三維中的其它配置也可以組成三維存儲器陣列。
[0089]以非限制性示例的方式,在三維NAND存儲器陣列中,存儲器元件可以耦接在一起以在單個水平的(例如,x-z)存儲器裝置級中形成NAND串??商鎿Q地,存儲器元件可以耦接在一起以形成穿過多個水平的存儲器裝置級的垂直NAND串??梢栽O(shè)想其它三維配置,其中一些NAND串在單個存儲器級中的存儲器元件,而其它串包含跨過多個存儲器級的存儲器元件。三維存儲器陣列也可以以NOR配置和ReRAM配置而設(shè)計。
[0090]典型地,在單片三維存儲器陣列中,一個或多個存儲器裝置級形成在單個基板上??蛇x地,單片三維存儲器陣列也可以具有至少部分在單個基板內(nèi)的一個或多個存儲器層。作為非限制性示例,基板可以包括諸如硅的半導(dǎo)體。在單片三維陣列中,組成陣列的每個存儲器裝置級的層通常形成在陣列的基本存儲器裝置級的層上。但是,單片三維存儲器陣列的相鄰存儲器裝置級的層可以被共享或者可以在存儲器裝置級之間具有中間層。
[0091]然后再次,二維陣列可以單獨地形成并且然后封裝在一起以形成具有存儲器的多個層的非單片存儲器裝置。例如,可以通過在分開的基板上形成存儲器級并且然后將存儲器級一個在另一個上堆疊來構(gòu)造非單片堆疊的存儲器??梢栽诙询B之前將基板減薄或者從存儲器裝置級移除,但是由于存儲器裝置級初始形成在分開的基板之上,得到的存儲器陣列不是單片三維存儲器陣列。此外,多個二維存儲器陣列或三維存儲器陣列(單片或非單片)可以形成在分開的芯片上并且然后封裝在一起以形成堆疊芯片存儲器裝置。
[0092]存儲器元件的操作以及與存儲器元件的通信通常需要相關(guān)聯(lián)的電路。作為非限制性示例,存儲器裝置可以具有用于控制和驅(qū)動存儲器元件以實現(xiàn)諸如編程和讀取的功能的電路。該相關(guān)聯(lián)的電路可以在與存儲器元件相同的基板上和/或在單獨的基板上。例如,用于存儲器讀-寫操作的控制器可以位于單獨的控制器芯片上和/或在與存儲器元件相同的基板上。
[0093]本領(lǐng)域技術(shù)人員應(yīng)認(rèn)識到本發(fā)明不限于所述的二維和三維示例性結(jié)構(gòu),而是覆蓋在如在此所述的并且如由本領(lǐng)域技術(shù)人員所理解的本發(fā)明的精神和范圍內(nèi)的所有相關(guān)的存儲器結(jié)構(gòu)。
[0094]意圖以上詳細(xì)的說明被理解為對本發(fā)明可以采用的所選形式的說明而不是作為本發(fā)明的限定。僅以下權(quán)利要求、包括所有等價物意圖定義要求保護(hù)的本發(fā)明的范圍。最后,應(yīng)注意的是,在此所述的任何優(yōu)選的實施例的任何方面可以單獨使用或者相互組合使用。
【主權(quán)項】
1.一種用于減少讀取干擾錯誤的方法,所述方法包括: 在包括存儲器的多個塊的存儲器系統(tǒng)中進(jìn)行以下步驟,其中所述塊包括級一、級二和級二的塊: 在級一的塊中檢測讀取干擾錯誤; 將存儲在所述級一的塊中的數(shù)據(jù)移動到級二的塊; 監(jiān)視對所述級二的塊的讀取訪問以確定在所述級二的塊中的何數(shù)據(jù)被頻繁地讀?。?將被確定為被頻繁地讀取的數(shù)據(jù)從所述級二的塊移動到級三的塊; 監(jiān)視對在所述級三的塊中的數(shù)據(jù)的讀取訪問以確定在所述級三的塊中的數(shù)據(jù)是否較不頻繁地被讀取;以及 響應(yīng)于確定在所述級三的塊中的數(shù)據(jù)較不頻繁地被讀取,將所述數(shù)據(jù)從所述級三的塊移動到級一的塊。2.如權(quán)利要求1所述的方法,其中使用讀取計數(shù)器在所述級一的塊中檢測所述讀取干擾錯誤。3.如權(quán)利要求1所述的方法,其中使用讀取-巡檢技術(shù)在所述級一的塊中檢測所述讀取干擾錯誤。4.如權(quán)利要求1所述的方法,其中通過在讀取字線時讀取相鄰字線在所述級一的塊中檢測所述讀取干擾錯誤。5.如權(quán)利要求1所述的方法,其中利用讀取計數(shù)器監(jiān)視對所述級二的塊的讀取訪問。6.如權(quán)利要求1所述的方法,其中利用讀取計數(shù)器監(jiān)視對所述級三的塊的讀取訪問。7.如權(quán)利要求1所述的方法,其中所述級三的塊具有比所述級一的塊更高的讀取耐受性。8.如權(quán)利要求7所述的方法,其中所述級一的塊包括MLC存儲器單元,并且其中所述級三的塊包括SLC存儲器單元。9.如權(quán)利要求7所述的方法,其中所述級一的塊包括非易失性存儲器,并且其中所述級三的塊包括易失性存儲器。10.如權(quán)利要求7所述的方法,其中所述級三的塊在圍繞存儲所述數(shù)據(jù)的字線周圍的字線中存儲虛數(shù)據(jù)。11.如權(quán)利要求1所述的方法,其中所述存儲器是三維存儲器。12.如權(quán)利要求1所述的方法,其中所述存儲器系統(tǒng)嵌入在主機(jī)中。13.如權(quán)利要求1所述的方法,其中所述存儲器系統(tǒng)可拆卸地連接到主機(jī)。14.一種存儲器系統(tǒng),包括: 存儲器,包括多個塊;以及 控制器,與所述存儲器通信,其中所述控制器被配置為: 檢測塊中的讀取干擾錯誤; 識別引起所述讀取干擾錯誤的數(shù)據(jù);以及 將引起所述讀取干擾錯誤的數(shù)據(jù)移動到具有更高讀取耐受性的塊。15.如權(quán)利要求14所述的存儲器系統(tǒng),其中所述控制器還被配置為在所述數(shù)據(jù)被確定為在被讀取時不太可能引起讀取干擾錯誤之后,將所述數(shù)據(jù)移動到具有較低的讀取耐受性的塊。16.如權(quán)利要求14所述的存儲器系統(tǒng),其中使用讀取計數(shù)器檢測所述讀取干擾錯誤。17.如權(quán)利要求14所述的存儲器系統(tǒng),其中使用讀取-巡檢技術(shù)檢測所述讀取干擾錯誤。18.如權(quán)利要求14所述的存儲器系統(tǒng),其中通過在讀取字線時讀取相鄰字線來檢測所述讀取干擾錯誤。19.如權(quán)利要求14所述的存儲器系統(tǒng),其中所述控制器被配置為使用讀取計數(shù)器識別在塊中的正引起所述讀取干擾錯誤的數(shù)據(jù)。20.如權(quán)利要求14所述的存儲器系統(tǒng),其中具有較高的讀取耐受性的塊包括SLC存儲器單元,并且在其中檢測到所述讀取干擾錯誤的塊包括MLC存儲器單元。21.如權(quán)利要求14所述的存儲器系統(tǒng),其中具有較高的讀取耐受性的塊包括易失性存儲器,并且在其中檢測到所述讀取干擾錯誤的塊包括非易失性存儲器。22.如權(quán)利要求14所述的存儲器系統(tǒng),其中具有較高的讀取耐受性的塊在圍繞存儲所述數(shù)據(jù)的字線周圍的字線中存儲虛數(shù)據(jù)。23.如權(quán)利要求14所述的存儲器系統(tǒng),其中所述存儲器是三維存儲器。24.如權(quán)利要求14所述的存儲器系統(tǒng),其中所述存儲器系統(tǒng)嵌入在主機(jī)中。25.如權(quán)利要求14所述的存儲器系統(tǒng),其中所述存儲器系統(tǒng)可拆卸地連接到主機(jī)。26.一種存儲器系統(tǒng),包括: 存儲器,包括多個塊; 多個讀取計數(shù)器;以及 讀取干擾模塊,與所述存儲器和所述多個讀取計數(shù)器通信,其中所述讀取干擾模塊被配置為: 檢測在第一塊中的讀取干擾錯誤; 將數(shù)據(jù)從所述第一塊移動到第二塊; 將讀取計數(shù)器分配到所述第二塊以識別熱讀取數(shù)據(jù); 將所述熱讀取數(shù)據(jù)從所述第二塊移動到第三塊; 將讀取計數(shù)器分配到所述第三塊以確定所述熱讀取數(shù)據(jù)何時變?yōu)槔渥x取數(shù)據(jù);以及 將所述冷讀取數(shù)據(jù)從所述第三塊移動到另一塊。27.如權(quán)利要求26所述的存儲器系統(tǒng),其中所述讀取干擾模塊被配置為使用讀取計數(shù)器檢測所述讀取干擾錯誤。28.如權(quán)利要求26所述的存儲器系統(tǒng),其中所述讀取干擾模塊被配置為使用讀取-巡檢技術(shù)檢測所述讀取干擾錯誤。29.如權(quán)利要求26所述的存儲器系統(tǒng),其中所述讀取干擾模塊被配置為通過在讀取字線時讀取相鄰字線來檢測所述讀取干擾錯誤。30.如權(quán)利要求26所述的存儲器系統(tǒng),其中所述第三塊具有比所述第一塊更高的讀取耐久性。31.如權(quán)利要求26所述的存儲器系統(tǒng),其中所述第一塊包括MLC存儲器單元,并且其中所述第三塊包括SLC存儲器單元。32.如權(quán)利要求26所述的存儲器系統(tǒng),其中所述第一塊包括非易失性存儲器,并且其中所述第三塊包括易失性存儲器。33.如權(quán)利要求26所述的存儲器系統(tǒng),其中所述第三塊在圍繞存儲所述數(shù)據(jù)的字線周圍的字線中存儲虛數(shù)據(jù)。34.如權(quán)利要求26所述的存儲器系統(tǒng),其中所述存儲器是三維存儲器。35.如權(quán)利要求26所述的存儲器系統(tǒng),其中所述存儲器系統(tǒng)嵌入在主機(jī)中。36.如權(quán)利要求26所述的存儲器系統(tǒng),其中所述存儲器系統(tǒng)可拆卸地連接到主機(jī)。
【文檔編號】G06F3/06GK105843550SQ201511010220
【公開日】2016年8月10日
【申請日】2015年12月29日
【發(fā)明人】D.E.圖爾斯, A.馬諾哈, N.托馬斯, J.許
【申請人】桑迪士克科技股份有限公司