固態(tài)非易失性存儲(chǔ)單元的部分重新編程的制作方法
【專利摘要】本申請(qǐng)公開了固態(tài)非易失性存儲(chǔ)單元的部分重新編程。一種管理如閃存陣列的存儲(chǔ)器中數(shù)據(jù)的方法和裝置。根據(jù)一些實(shí)施例,數(shù)據(jù)被寫入到固態(tài)非易失性存儲(chǔ)單元的集合,從而該集合中的每個(gè)存儲(chǔ)單元被寫入至相關(guān)初始編程狀態(tài)。檢測(cè)該集合中的所選存儲(chǔ)單元的編程狀態(tài)的漂移,對(duì)所選存儲(chǔ)單元進(jìn)行部分重新編程,以使得所選存儲(chǔ)單元返回到相關(guān)初始編程狀態(tài)。
【專利說明】固態(tài)非易失性存儲(chǔ)單元的部分重新編程
【發(fā)明內(nèi)容】
[0001]本發(fā)明的各個(gè)實(shí)施例一般涉及例如閃存陣列的存儲(chǔ)器中的數(shù)據(jù)管理。
[0002]根據(jù)一些實(shí)施例,數(shù)據(jù)被寫入到固態(tài)非易失性存儲(chǔ)單元的集合,使得該集合的每個(gè)存儲(chǔ)單元被寫入相關(guān)聯(lián)的初始編程狀態(tài)。該組中選定的存儲(chǔ)單元的編程狀態(tài)的漂移被檢測(cè)到,并且所選定的存儲(chǔ)單元被部分地重新編程,以使得所選定的存儲(chǔ)單元返回到相關(guān)的初始編程狀態(tài)。
[0003]表征各個(gè)實(shí)施例的這些和其他特征將通過下文的詳細(xì)討論和附圖而被理解。
【專利附圖】
【附圖說明】
[0004]圖1示出了根據(jù)多個(gè)實(shí)施例的與主機(jī)裝置進(jìn)行通信的數(shù)據(jù)存儲(chǔ)裝置的功能框圖。
[0005]圖2示出了根據(jù)一些實(shí)施例的圖1的數(shù)據(jù)存儲(chǔ)裝置的框圖。
[0006]圖3示出了可以在圖1的設(shè)備中使用的閃存單元結(jié)構(gòu)。
[0007]圖4是使用圖3中單元的閃存陣列的部分的示意圖。
[0008]圖5示出了擦除塊的示例性格式。
[0009]圖6示出了將擦除塊設(shè)置成垃圾收集單元(GCT)。
[0010]圖7示出了來自圖6的存儲(chǔ)單元的電荷密度分布。
[0011]圖8示出了圖7的所選分布中的電荷漂移。
[0012]圖9示出了數(shù)據(jù)存儲(chǔ)裝置的部分重新編程電路,其根據(jù)多個(gè)實(shí)施例進(jìn)行操作以校正圖8的電荷漂移。
[0013]圖10是數(shù)據(jù)存儲(chǔ)裝置的讀/寫/擦除電路的讀出部分。
[0014]圖11是讀/寫/擦除電路的寫部分。
[0015]圖12示出對(duì)存儲(chǔ)單元分布應(yīng)用不同的電壓檢測(cè)閾值以評(píng)估編程漂移。
[0016]圖13示出分別在正常編程和部分編程操作過程中由圖11的寫部分施加的正常編程增量及部分編程增量。
[0017]圖14是部分編程序列。
[0018]圖15是根據(jù)一些實(shí)施例的部分編程例程的流程圖。
【具體實(shí)施方式】
[0019]本發(fā)明一般涉及管理存儲(chǔ)在存儲(chǔ)模塊中的數(shù)據(jù),例如但不限于數(shù)據(jù)存儲(chǔ)裝置的閃存陣列。
[0020]本領(lǐng)域已知各種各樣的非易失性數(shù)據(jù)存儲(chǔ)器。一些非易失性存儲(chǔ)器采用固態(tài)存儲(chǔ)單元的形式,諸如閃存,電阻式隨機(jī)存取存儲(chǔ)器(RRAM),自旋力矩轉(zhuǎn)移隨機(jī)存取存儲(chǔ)器(STRAM),相變隨機(jī)存取存儲(chǔ)器(PCRAM)等。
[0021]這些和其它類型的存儲(chǔ)單元采用半導(dǎo)體結(jié)構(gòu),并存儲(chǔ)與單元的編程的電氣、機(jī)械和/或結(jié)構(gòu)方面有關(guān)的數(shù)據(jù)。雖然名義上是非易失性,使得編程狀態(tài)保持的時(shí)間較長(zhǎng),然而存儲(chǔ)單元可能面對(duì)多種影響,其導(dǎo)致編程狀態(tài)的變化(編程漂移)。這些影響包括讀取干擾、寫入干擾、充電漂移、溫度下降、退磁、寫/擦除周期的積累、磨損等,會(huì)隨著時(shí)間而影響單兀的編程完整性。
[0022]通常在前存儲(chǔ)數(shù)據(jù)時(shí)對(duì)現(xiàn)有單元重新編程或者將數(shù)據(jù)寫入到一組新的單元時(shí)執(zhí)行刷新操作,在編程漂移發(fā)生前足以防止編程數(shù)據(jù)的可靠恢復(fù)。一些存儲(chǔ)單元在重寫數(shù)據(jù)到單元之前需要插入的擦除操作。垃圾收集操作可以包括擦除或重置存儲(chǔ)塊以使存儲(chǔ)塊返回到可用的分配池之后,再重寫當(dāng)前數(shù)據(jù)到新的位置。
[0023]然而在操作時(shí),與當(dāng)前的刷新操作(包括但不限于垃圾收集操作)相關(guān)的一個(gè)問題是,數(shù)據(jù)的重寫以及必要的存儲(chǔ)單元擦除,會(huì)減少存儲(chǔ)單元的總體工作壽命。某些類型的閃存單元,例如,在大約5000次的寫入/擦除周期后失效。其他類型的存儲(chǔ)單元由于反復(fù)寫入和/或擦除也遇到類似的磨損敏感性。
[0024]寫入放大是與固態(tài)非易失性存儲(chǔ)單元(包括閃存單元)有關(guān)的相關(guān)現(xiàn)象。寫入放大一般涉及將特定的一組數(shù)據(jù)寫入到存儲(chǔ)器內(nèi)的次數(shù)的總和。理想的寫入放大值將等于I (I),當(dāng)一旦收到最佳的一組數(shù)據(jù)就將其一次性寫入到存儲(chǔ)器中。然而在實(shí)際操作中,垃圾收集及其它刷新操作往往導(dǎo)致數(shù)據(jù)被遷移、改寫、復(fù)制或以其他方式在陣列中重復(fù)多次。一些當(dāng)前的固態(tài)硬盤(SSD)具有的典型的寫入放大值為3 (3)或以上,這意味著從開始寫入直到接收之后,每組從主機(jī)接收到的數(shù)據(jù)最終在內(nèi)存中重寫另外至少兩次。
[0025]可以理解的是,高級(jí)別的寫入放大會(huì)減少存儲(chǔ)器的工作壽命,而且如果多組相同的數(shù)據(jù)同時(shí)駐留在存儲(chǔ)器內(nèi)的不同位置則還會(huì)降低容納新數(shù)據(jù)的能力。
[0026]因此,本發(fā)明的多個(gè)實(shí)施例一般直接涉及在固態(tài)非易失性存儲(chǔ)器中以減少寫入放大的方式來管理數(shù)據(jù)的設(shè)備和方法。如下面所解釋的,存儲(chǔ)單元的塊被編程到初始編程狀態(tài)。作為估計(jì)或檢測(cè)的編程漂移的結(jié)果,一個(gè)或多個(gè)存儲(chǔ)單元被確定為部分重新編程的候選。
[0027]通過向存儲(chǔ)單元施加編程努力的相對(duì)小的增量,例如電荷的小的增量,來將單元恢復(fù)至之前施加的編程狀態(tài),可將部分重新編程應(yīng)用于一個(gè)或多個(gè)存儲(chǔ)單元。該單元可以用時(shí)間/日期戳或其他指示數(shù)據(jù)來標(biāo)記,以指示單元已被重新編程。在這種方式中,可以減少存儲(chǔ)陣列內(nèi)遷移數(shù)據(jù)所需的開銷時(shí)間和資源,而且可以避免由于不必要的擦除和寫入操作所造成的對(duì)存儲(chǔ)陣列的磨損。
[0028]在一些實(shí)施例中,閃存環(huán)境中的部分重新編程是基于閃存單元隨時(shí)間丟失的電荷量而執(zhí)行的,通過讀取施加的電壓閾值或單元的誤碼率而測(cè)量。該存儲(chǔ)單元然后被搶先部分地重新編程,以使單元恢復(fù)到原來的狀態(tài)。這消除了將數(shù)據(jù)復(fù)制到一個(gè)新的、未用過的塊和回收舊塊的必要。
[0029]部分重新編程可以通過使用減少的編程電壓、脈沖等來進(jìn)行。不同類型的存儲(chǔ)單元可以被部分地重新編程,包括閃存單元,PCRAM單元,STRAM單元,RRAM單元等。在閃存單元的情況下,基本上剛好足夠的電子跨越浮置柵極邊界,以使單元的電壓閾值返回到其最初的編程狀態(tài)。
[0030]在進(jìn)一步的實(shí)施例中,查找表或其它機(jī)制,如傳遞函數(shù),可以用來確定用于給定存儲(chǔ)單元中的適當(dāng)?shù)某C正程序結(jié)果??梢杂绊戦W存單元的電荷損失的變量包括溫度、時(shí)間和編程/擦除周期。該設(shè)備可以跟蹤這些和其它變量并安排【背景技術(shù)】中部分重編程的應(yīng)用來保持編程狀態(tài)在指定分布容差范圍內(nèi)。
[0031]各種實(shí)施例的這些和其他特征可以從圖1的描述開始理解,其提供了一個(gè)數(shù)據(jù)處理系統(tǒng)的簡(jiǎn)化框圖,該系統(tǒng)的特征在于數(shù)據(jù)存儲(chǔ)裝置100連接至主機(jī)設(shè)備102。相應(yīng)的存儲(chǔ)裝置100和主機(jī)102可采取任何合適的形式。在一些實(shí)施例中,主機(jī)102是一個(gè)網(wǎng)絡(luò)可訪問的計(jì)算設(shè)備,例如臺(tái)式計(jì)算機(jī),服務(wù)器,便攜式電子設(shè)備,智能電話,筆記本電腦,平板電腦,游戲系統(tǒng)等。存儲(chǔ)裝置100可并入主機(jī)102中,或者可以本地連接到主機(jī)或通過網(wǎng)絡(luò)來為主機(jī)102提供易失性和/或非易失性數(shù)據(jù)存儲(chǔ)容量。
[0032]圖2示出了根據(jù)一些實(shí)施例的圖1的存儲(chǔ)裝置102的示意性結(jié)構(gòu)。該裝置102包括控制模塊104和存儲(chǔ)模塊106。控制模塊104為數(shù)據(jù)處理系統(tǒng)提供高級(jí)控制,以及存儲(chǔ)模塊106提供主數(shù)據(jù)存儲(chǔ)。存儲(chǔ)模塊106通過控制模塊104經(jīng)過控制/存儲(chǔ)模塊通信接口105,來用于接收、處理和執(zhí)行發(fā)送給它的命令。
[0033]各模塊104、106可以采用多種形式。固態(tài)驅(qū)動(dòng)器(SSD)的應(yīng)用可以將控制模塊104和存儲(chǔ)模塊106結(jié)合在一個(gè)集成、獨(dú)立組裝件中。在混合盤驅(qū)動(dòng)器的應(yīng)用中,存儲(chǔ)模塊106可以包括閃存和基于光盤的存儲(chǔ)器。存儲(chǔ)卡的應(yīng)用可以在主機(jī)裝置102中結(jié)合一些或全部控制模塊功能(圖1)。
[0034]圖2所示的示例性控制模塊104包括控制器108、接口(I/F)電路110和存儲(chǔ)緩沖器112??刂破?08提供裝置100的總體控制功能,包括引導(dǎo)數(shù)據(jù)在主機(jī)102和存儲(chǔ)模塊106之間的傳輸。該I/F電路108提供與主機(jī)和存儲(chǔ)模塊106的通信接口。緩沖器112可以提供控制器108用的編程和控制數(shù)據(jù)、以及數(shù)據(jù)訪問操作的數(shù)據(jù)的臨時(shí)存儲(chǔ)的存儲(chǔ)位置。雖然圖2中沒有具體描繪,但是控制模塊104也可以包括附加的功能,包括加密、差錯(cuò)檢測(cè)和校正、以及其他信號(hào)處理功能。
[0035]所示的存儲(chǔ)模塊106包括讀/寫/擦除(R/W/E)電路114和一個(gè)或多個(gè)閃存陣列116。響應(yīng)于控制模塊104的控制輸入,操作R/W/E電路114對(duì)閃存陣列116執(zhí)行讀、寫和擦除功能。雖然存儲(chǔ)器使用的是閃存,其只是示例性的而非限制性的,因?yàn)榭梢允褂萌魏螖?shù)量的不同類型的固態(tài)非易失性存儲(chǔ)器,包括具有多種類型的存儲(chǔ)器(例如,閃存,RRAM,STRAM, PCRAM,等等)的混合系統(tǒng)。
[0036]閃存陣列116可以由單個(gè)閃存單元118形成,如圖3所通常描繪的。閃存單元118形成在具有隔開的η+摻雜區(qū)域122的半導(dǎo)體襯底120上。柵結(jié)構(gòu)124跨越了一對(duì)相鄰的摻雜區(qū)域,使閃存單元采用通常nMOS晶體管的結(jié)構(gòu)。其它閃存單元可形成在襯底上,使得每一對(duì)相鄰的慘雜區(qū)域122提供有相關(guān)聯(lián)的棚極結(jié)構(gòu)124。
[0037]柵極結(jié)構(gòu)124提供導(dǎo)電柵極126,128和電絕緣區(qū)130,132的交替堆疊。與被表征為浮置柵極(FG)的下部柵極126上存儲(chǔ)電荷的相對(duì)量相關(guān),數(shù)據(jù)被每個(gè)單元118存儲(chǔ)。
[0038]通過將所選擇的適當(dāng)電壓施加到相鄰的摻雜(漏極和源極)區(qū)122和被表征為控制柵極(CG)的上部柵極128,浮置柵極126在編程操作期間累積電荷。這些施加的電壓引起電荷從半導(dǎo)體襯底120的溝道(CH)部分穿過絕緣區(qū)域130到浮柵126的可控的遷移。
[0039]在初始擦除狀態(tài),通常浮置柵極基本上不累積電荷。在這種狀態(tài)下,沒有將電壓施加到控制柵極,單元一般會(huì)傾向于顯示出跨過溝道的漏極-源極導(dǎo)通。一旦電荷在浮置柵極積累,除非有足夠高的柵極控制電壓施加到控制柵極使在該點(diǎn)單元變成導(dǎo)通,否則漏極-源極路徑將是不導(dǎo)電的。該單元的編程狀態(tài)可通過觀察允許漏-源電流穿過單元所需的控制柵極的電平來確定,該電平通常與浮置柵極上累積的電荷量相關(guān)。
[0040]單元118可以配置為單級(jí)單元(SLC)或多級(jí)單元(MLC)。一個(gè)SLC存儲(chǔ)單個(gè)位;通常慣例是邏輯位值I賦值給擦除單元(基本上沒有積累電荷)和邏輯位值O賦值給編程單元(存在積累電荷的選定閾值)。MLC存儲(chǔ)多位,如2位。一般地,可以使用2n存儲(chǔ)狀態(tài)來存儲(chǔ)η個(gè)位。通常慣例是將多位的邏輯值11賦值給具有電荷CO (基本上沒有存儲(chǔ)電荷)的擦除單元,然后順序?qū)⑹O碌亩辔坏倪壿嬛?1,00和10分配給越來越高的電荷水平Cl,C2 和 C3。
[0041]特定的擦除操作一般需要從浮置柵極126去除積累的電荷??梢酝ㄟ^在控制柵極上施加相對(duì)高的電壓來使得電荷從浮置柵極遷移回到溝道來執(zhí)行擦除。在數(shù)據(jù)寫入操作期間,不同的電壓集合可被施加到單元,并在此后添加電荷至浮置柵極。
[0042]如圖3中存儲(chǔ)單元118可配置在存儲(chǔ)模塊106中作為存儲(chǔ)單元的行和列的陣列中,如圖4通常所示。相鄰單元的每一列都可以通過一個(gè)或多個(gè)位線(BL)134連接。沿著每一行的每個(gè)單元118的控制柵極128可通過單獨(dú)的字線(WL) 136互連。
[0043]在圖4所示的存儲(chǔ)單元的陣列,可以被分組到擦除塊140,如在圖5和6中所述。每個(gè)擦除塊140可以是存儲(chǔ)器中的可單獨(dú)尋址的塊,并表示存儲(chǔ)器的最小單位,其可以同時(shí)被擦除。每個(gè)擦除塊140可以被設(shè)置為存儲(chǔ)單元的多個(gè)行142,其中各行共用一個(gè)共同的字線(圖4)和適應(yīng)用戶數(shù)據(jù)的所選擇量的存儲(chǔ)??梢愿鶕?jù)需要來利用單元的其它內(nèi)部設(shè)置和互連。
[0044]可以采用塊級(jí)別的磨損平抑來跟蹤各個(gè)塊140的擦除和寫入狀態(tài)。需要分配使用新的塊來容納新接收的數(shù)據(jù)。在一些實(shí)施例中,塊140的組可以被累積成較大的垃圾收集單元(G⑶s) 144,其作為一個(gè)單元被分配、使用和擦除。G⑶144可采取任何合適的尺寸。
[0045]至少在某些實(shí)施例中,有時(shí)被稱為頁面的數(shù)據(jù)的固定尺寸集合被一次寫入到每行142。頁面尺寸可對(duì)應(yīng)于一個(gè)邏輯扇區(qū),或被合并到的每個(gè)頁的數(shù)據(jù)的多個(gè)用戶扇區(qū)。該扇區(qū)中的每一個(gè)具有相關(guān)的邏輯地址,例如邏輯塊地址(LBA)。糾錯(cuò)碼,如奇偶校驗(yàn)位或里德所羅門碼(Reed Solomon code)可以在頁面級(jí)別被結(jié)合,以在檢索一個(gè)完整的數(shù)據(jù)頁面時(shí)糾錯(cuò)。元數(shù)據(jù)和其他控制信息可以被存儲(chǔ)在每個(gè)擦除塊140中或其它地方,例如在專用于此目的的特定存儲(chǔ)塊中。
[0046]圖7示出了存儲(chǔ)在圖6的陣列中的多個(gè)閃存單元118上的電荷的不同電平的示例性標(biāo)準(zhǔn)化電荷分布150、152、154和156。
[0047]該分布圖的共同的X軸158表示電壓的大小,以及共同的y軸159表示單元群計(jì)數(shù)。
[0048]分布150、152、154和156表示關(guān)于名義上的累積的電荷狀態(tài)CO < Cl < C2 < C3變化,以及對(duì)應(yīng)于MLC編程狀態(tài)11,01,00和10。可以使用其它編碼方案。分布150代表陣列中存儲(chǔ)單元上的電荷量變化,該陣列被編程到狀態(tài)11,分布152對(duì)應(yīng)于狀態(tài)01,分布154對(duì)應(yīng)于狀態(tài)00,分布156對(duì)應(yīng)于狀態(tài)10。分布156的單元具有最多的累積電荷和分布150的單兀具有最少的累積電荷。
[0049]編程的狀態(tài)11,01,00和10可以表示用于每個(gè)單元中數(shù)據(jù)的兩個(gè)不同的頁面(塊)的數(shù)據(jù)。在這種情況下,編程狀態(tài)的最低有效位(LSB)可用于為第一頁提供位值,并且編程狀態(tài)的最高有效位(MSB)可用于為第二頁提供位值。
[0050]各個(gè)電荷分布150-156最好是不重疊的,以使得合適的讀閾值電壓Tl,T2,T3和T4區(qū)分各種編程狀態(tài)。閾值電壓Tl名義上提供了一個(gè)電壓電平足以將分布150中的所有的存儲(chǔ)單元設(shè)為源極-漏極導(dǎo)通狀態(tài),但不足以將分布152,154和156中的單元設(shè)為導(dǎo)通狀態(tài)。閾值Τ4通常足夠大,以將所有的單元設(shè)為導(dǎo)通狀態(tài),而不論它們的編程狀態(tài)。
[0051]通過將用于所選擇單元的位線134(圖4)設(shè)置在合適的正向電壓(例如,+3V,等),并將余下的未被選中的位線設(shè)置在一些其他較低的參考電壓(例如,0V),來讀出一個(gè)所選閃存單元的編程狀態(tài)。用于不包含所選擇單元的行的非選擇字線136可以被放置在最高閾值Τ4,從而使除了所選擇的單元之外的所選的列中的所有單元處于源極-漏極導(dǎo)通狀態(tài)。
[0052]一個(gè)或多個(gè)讀出閾值電壓可隨后施加到與所選擇的單元關(guān)聯(lián)的WL136,并且可根據(jù)是否有電流流過位位線134和所選列中的其他單元來確定所選擇的單元的編程狀態(tài)。因此該讀出操作評(píng)估給定讀取的閾值電壓是否足以使所選單元處于導(dǎo)通狀態(tài);獲得流經(jīng)該列的電流所需的施加電壓越高,存在于浮置柵極上的積累電荷的量越大。
[0053]在一些實(shí)施例中,數(shù)據(jù)的第一頁被寫入到沿SLC模式下單元的所選擇的行的單元。數(shù)據(jù)的第一頁將以某種順序(如00101111010000100...)構(gòu)成邏輯O和I的位序列。一個(gè)位將存儲(chǔ)在每個(gè)單元中。存儲(chǔ)了邏輯I的那些單元可能未能獲得編程工作(或最小的編程工作),以便有一個(gè)電荷水平落在“II”分布150中。存儲(chǔ)了邏輯O的那些單元將得到足夠的編程工作,以提高電荷水平,落入“00”分布154中。
[0054]為了從SLC讀回存儲(chǔ)的位序列,可將讀出閾值電壓Τ2依次應(yīng)用到每個(gè)單元,并且可以相對(duì)于該單元是否被置于導(dǎo)通狀態(tài)來確定所存儲(chǔ)的狀態(tài)(邏輯I或O),作為所施加的讀出閾值電壓的結(jié)果。
[0055]數(shù)據(jù)的第二頁隨后可以被改寫到SLC單元以將單元轉(zhuǎn)化為MLC形式。和以前一樣,數(shù)據(jù)的第二頁構(gòu)成邏輯O和I的位序列,并且來自數(shù)據(jù)的第二頁的一個(gè)位將被存儲(chǔ)到每個(gè)單元。存儲(chǔ)邏輯I的這些單元將不會(huì)接收額外的編程工作。存儲(chǔ)邏輯O的這些單元將接收足夠的額外電荷來將電荷水平增加到下一個(gè)更高的分布。
[0056]如果邏輯I將被寫入在由“11”分布150編程的存儲(chǔ)單元中,額外的電荷將單元轉(zhuǎn)換到“01”分布152,同樣地,如果一個(gè)邏輯I將被寫入到由“00”分布154編程的存儲(chǔ)單元中,額外電荷將單元轉(zhuǎn)換到“10”分布156。在每一種情況下,編程單元(最右邊的位)的LSB表示用于數(shù)據(jù)的第一頁中的位值并且編程單元的MSB (最左邊的位)指示數(shù)據(jù)的第二頁中的位值。
[0057]理想的情況下,各個(gè)種群150-156保持足夠的分離,以使各閾值Tl?Τ4來正確辨別單元的編程狀態(tài)。然而,隨著時(shí)間的推移的各種效果,如磨損,讀取干擾,寫入擾亂,溫度,電荷漂移,制造公差等,可引起單元中給定的群體中的漂移,如圖8所描繪的虛線轉(zhuǎn)移分布152所表示。可以看出,轉(zhuǎn)移分布152中的一些存儲(chǔ)單元將被檢測(cè)為存儲(chǔ)編程狀態(tài)為11,而不是實(shí)際的編程狀態(tài)01。電荷漂移可導(dǎo)致累積電荷的總量的增加或減少,使圖8中所示的分布右移也會(huì)發(fā)生。
[0058]圖9示出了根據(jù)各種實(shí)施例的部分重新編程電路160操作以來校正存儲(chǔ)單元162中的編程漂移。如圖8所示,編程漂移是閃存單元的電荷漂移的形式。可替代地,存儲(chǔ)單元可采取不同的形式,如PCRAM單元,RRAM單元,STRAM單元等,以及編程漂移可以有相變漂移、阻抗漂移、退磁等形式。
[0059]部分重新編程電路160對(duì)存儲(chǔ)單元162施加重新編程工作,使單元恢復(fù)到先前的編程狀態(tài)。就時(shí)間,脈沖寬度,電荷轉(zhuǎn)移量,施加的磁場(chǎng)強(qiáng)度等而言,重新編程工作量比正常編程工作量要少。以這種方式,電路160 “微調(diào)”現(xiàn)有編程狀態(tài)以收緊編程分布。
[0060]在一些實(shí)施例中,部分重新編程電路160形成控制器108或讀/寫/擦除(R/W/E)的電路114的一部分,或者與這些其他電路交互的獨(dú)立電路。電路160可以采用多個(gè)控制輸入,包括檢測(cè)或估計(jì)錯(cuò)誤位率(BER)、時(shí)間信息、溫度測(cè)量、累積寫入/擦除(W/E)的計(jì)數(shù)等等,以確定應(yīng)該應(yīng)用重新編程工作的候選存儲(chǔ)單元。查找表164可存儲(chǔ)要使用的分布信息,以使得電路160在各種環(huán)境條件或環(huán)境下能夠?qū)μ囟▎卧M(jìn)行重新編程。
[0061]圖10示出了圖2的讀/寫/擦除電路圖114的讀出部分170,其操作用于從一組MLC,例如沿著所選行,讀取兩頁(塊)數(shù)據(jù)。命令解碼器塊172處理讀出命令,并輸出一個(gè)或多個(gè)數(shù)字讀出閾值T至數(shù)模轉(zhuǎn)換器(DAC)/驅(qū)動(dòng)器電路174。該DAC/驅(qū)動(dòng)器174輸出一個(gè)相應(yīng)的模擬柵極電壓依次至每個(gè)單元(由圖9中存儲(chǔ)單元162表示)。源極電壓Vs是由電源176施加。單元的導(dǎo)通狀態(tài)采用一個(gè)比較器178以及來自電源180的適當(dāng)?shù)幕鶞?zhǔn)電壓Vr來檢測(cè)。檢測(cè)到的數(shù)據(jù)被提供到輸出緩沖器182,其分別存儲(chǔ)所存儲(chǔ)的數(shù)據(jù)(分別為第I頁和第2頁)。
[0062]可能需要多個(gè)閾值來檢測(cè)每一單元的存儲(chǔ)狀態(tài)。電壓閾值T2可以在初始時(shí)施加,以感測(cè)MSB頁I數(shù)據(jù)的存儲(chǔ)狀態(tài)。電壓閾值Tl和T3可以隨后施加,以感測(cè)LSB頁2數(shù)據(jù)的存儲(chǔ)狀態(tài)。如果閾值T2使單元導(dǎo)通,則Tl可隨后施加以確定該單元是否落在分布150或152內(nèi)。同樣地,如果閾值T2未能將單元放置在導(dǎo)通狀態(tài),則應(yīng)用T3將確定單元是否在落入分布154或156內(nèi)。
[0063]因此可以很容易地確定存儲(chǔ)狀態(tài)11,01,00或10,其中第一(MSB)位指示第一頁中的位,以及第二(LSB)位指示第二頁中的位。對(duì)每個(gè)MLC依次重復(fù)上述步驟將為第一和第二頁產(chǎn)生恢復(fù)位序列。
[0064]如圖10所示,由讀/寫/擦除電路114的寫入電路部分190可以進(jìn)行單元的編程。使用了一個(gè)充電泵設(shè)置,由比積累電荷的離散量子依次被轉(zhuǎn)送到所選擇的單元162,以提高所需編程分布的總電荷累積量。
[0065]電壓源192提供編程電壓至電容器194或其他電荷存儲(chǔ)元件。可以采用功率MOSFET或其它合適裝置的形式的選擇性激活開關(guān)196周期性地關(guān)閉使得累積的電荷從電容器194轉(zhuǎn)移到所選擇的存儲(chǔ)單元162。
[0066]圖10中的讀出電路170可用于在電荷的積累過程中周期性地施加多個(gè)程序驗(yàn)證(PV)讀取閾值電壓中的一個(gè)至單元。在一些實(shí)施例中,圖11的程序處理繼續(xù)進(jìn)行,直到單元162不再響應(yīng)于特定的PV讀出閾值變得導(dǎo)通,此時(shí)所選單元上的編程操作被終止。
[0067]圖12提供用于編程存儲(chǔ)單元的分布的另一個(gè)分布曲線198??梢允┘右幌盗械碾妷洪撝狄源_定分布的尺寸和形狀。如圖12所示,下基線閾值Va可以隨著遞增的閾值(Va-,Va+)被施加,以表征分布曲線198的底部邊界,其中遞增的閾值(Va-,Va+)可以比基線閾值稍低和高(例如,+/-5%等)。類似地,較高的基線閾值Vb和相關(guān)的遞增閾值的Vb-,Vb+可以應(yīng)用于表征分布曲線198的上邊界。
[0068]圖13示出了在正常編程和部分編程工作期間,可由圖11的寫入電路190施加的以及由圖10的讀出電路170感測(cè)到的不同尺寸的編程增量??梢酝ㄟ^寫入電路190施加累積電荷相對(duì)較大的編程增量200以將存儲(chǔ)單元編程到初始狀態(tài),然后通過寫入電路190施加積累電荷的相對(duì)較小的重新編程增量202可以使該單元返回到初始編程狀態(tài)。
[0069]例如,再參考圖7,通過施加5或6(5-6)次增量200,以將積累的電荷的總量達(dá)到由閾值V2和V3設(shè)定的閾值之間的水平,可將具有初始編程狀態(tài)11的已擦除的存儲(chǔ)單元編程到00狀態(tài)。
[0070]此后,當(dāng)存儲(chǔ)單元浮柵的電荷泄漏以及朝向V2閾值的方向的電荷總量漂移時(shí),可以施加累積電荷的一個(gè)或多個(gè)相對(duì)較小的部分編程增量202,以使得存儲(chǔ)單元返回到其先前的編程狀態(tài)(例如,累積電荷總量名義上與以前相同的狀態(tài))。
[0071]該部分編程序列是由圖14所示。單元的初始分布被編程到一個(gè)特定狀態(tài),如群體分布曲線204所示的。隨著時(shí)間的推移,至少部分單元丟失電荷,并提供如曲線206所示的漂移群體分布。
[0072]部分編程增量202的應(yīng)用導(dǎo)致整體分布的增加,如曲線208所示。隨著增量202繼續(xù)施加,最終的部分編程分布(曲線210)將在名義上符合原始曲線204。
[0073]通過部分地重新編程圖14中的存儲(chǔ)單元,能夠避免擦除和編程的完整周期,從而減少單元的磨損以及減小存儲(chǔ)模塊內(nèi)數(shù)據(jù)的副本的總數(shù)。
[0074]圖15是用于部分重新編程例程220的流程圖,其根據(jù)各種實(shí)施例闡述了執(zhí)行的步驟。出于說明的目的,例程220將用于圖2-6中描述的閃存陣列。這僅僅是示例性的而非限制性的。
[0075]存儲(chǔ)單元在步驟222被編程為所選擇的狀態(tài)。其可能是一個(gè)SLC狀態(tài)或MLC狀態(tài),使編程狀態(tài)對(duì)應(yīng)于所需的單個(gè)頁面數(shù)據(jù)或多個(gè)頁面的數(shù)據(jù)。編程狀態(tài)可以是圖7的分布曲線所表示的狀態(tài)中選定的一個(gè)(例如,11,01,00或10)。
[0076]在一些所選擇的間隔時(shí)間后,在步驟224將該單元標(biāo)識(shí)為進(jìn)行部分重新編程的候選者。其可以采用多種方式來進(jìn)行。存儲(chǔ)單元的保持時(shí)間可以作為經(jīng)過時(shí)間被計(jì)算出來,在此期間,單元能夠保持編程狀態(tài),而不會(huì)過度退化。如果該單元保持其編程狀態(tài)的實(shí)際時(shí)間等于或超過所計(jì)算的保持時(shí)間,則該單元可被標(biāo)記為用于部分重新編程的候選者。
[0077]可選的,單元可以進(jìn)行讀操作以及包括所述單元的用于位錯(cuò)誤率(BER)的塊存儲(chǔ)器可能會(huì)超過預(yù)定的閾值。在其它實(shí)施例中,用于塊的所述寫入/擦除次數(shù)可以達(dá)到特定閾值,該閾值顯示該單元應(yīng)該進(jìn)行評(píng)估。在其它實(shí)施例中,已實(shí)現(xiàn)對(duì)單元或鄰近單元的足夠高數(shù)量的讀操作以指示讀取干擾數(shù)據(jù)的可能性。任何其它合適的因素,參數(shù),測(cè)量或其它標(biāo)記可以用于標(biāo)識(shí)單元作為部分重新編程的候選者,包括將所有的單元按計(jì)劃定期重新編程。
[0078]在步驟226對(duì)選定存儲(chǔ)單元執(zhí)行電壓閾值測(cè)試。這可以包括應(yīng)用一個(gè)或多個(gè)電壓閾值,如在圖12所示的應(yīng)用程序,以確定單元的編程狀態(tài)。
[0079]如果該單元顯示了足夠的編程退化,則例程從決定步驟228進(jìn)至步驟230,其中一個(gè)或多個(gè)電荷增量施加到單元上。這可以包括圖13中的小的增量202的應(yīng)用,其使用圖11的電路190,隨后如步驟232所示,通過圖12的電路180應(yīng)用合適的讀出/編程驗(yàn)證電壓閾值。該工序如決定步驟234所示繼續(xù),直到單元已經(jīng)恢復(fù)到適當(dāng)?shù)碾娖健kS后在步驟236中單元被標(biāo)記為已重新編程。這可以包括在對(duì)存儲(chǔ)單元相關(guān)聯(lián)的元數(shù)據(jù)的標(biāo)注,并可以包括日期/時(shí)間戳以指示單元被重新編程的時(shí)間。然后,該例程在步驟238結(jié)束。
[0080]可以看出,在此所述的部分重編程應(yīng)用可以減少數(shù)據(jù)重寫和擦除的發(fā)生率。仍然可以根據(jù)需要進(jìn)行垃圾收集操作,但是基于在一個(gè)給定的GCU中的數(shù)據(jù)基本上是失效的(即,非修改的)而不再需要數(shù)據(jù)刷新(即,其舊到足以經(jīng)歷編程漂移)。
[0081]對(duì)于一組初始編程單元,不是每一個(gè)單元都需要重新編程。而是可以對(duì)那些表示位錯(cuò)誤的單元進(jìn)行評(píng)估和編程,不必理會(huì)其余的單元。類似的,這些具有更容易經(jīng)歷編程序漂移編程狀態(tài)的單元(例如,單元編程至“10”,等)可部分重新編程,并且不必理會(huì)其余的單元。在其他情況下,針對(duì)編程漂移評(píng)估存儲(chǔ)單元中在一個(gè)行中所有的單元以及X最壞的百分比(例如,最糟糕的20%,等等)被部分重新編程,并且不必理會(huì)其余部分。
[0082]雖然此處所公開的與閃存單元有關(guān)的多個(gè)實(shí)施例構(gòu)想由于漂移機(jī)制引起的電荷水平降低,可以構(gòu)想的是,在某些情況下可能會(huì)經(jīng)歷電荷增加,例如在過度讀取的環(huán)境??赡艿氖牵渲脤戨娐?,使得施加一組不同的編程電壓,以使得一小部分電荷從浮置柵極移除,而不是額外的電荷量被添加至柵極。類似地,也可以將雙向編程調(diào)整用于其它類型的存儲(chǔ)單元。
[0083]應(yīng)當(dāng)理解的是,盡管已在前面的描述中提及各本發(fā)明的各個(gè)實(shí)施例的許多特征和優(yōu)點(diǎn),連同各種實(shí)施例的結(jié)構(gòu)和功能的詳細(xì)細(xì)節(jié),但該詳細(xì)說明僅是示例性的,并且可以在細(xì)節(jié)上進(jìn)行改變,尤其是在結(jié)構(gòu)和部件設(shè)置的問題上,其都落入本發(fā)明通過所附權(quán)利要求書所表達(dá)的術(shù)語的廣泛的一般含義所指示的最大范圍內(nèi)的原理內(nèi)。
【權(quán)利要求】
1.一種方法,包括 將數(shù)據(jù)寫入固態(tài)非易失性存儲(chǔ)單元的集合中,使得所述集合中的每個(gè)存儲(chǔ)單元被寫入到相關(guān)的初始編程狀態(tài); 檢測(cè)所述集合中的所選的存儲(chǔ)單元的編程狀態(tài)的漂移;以及 將所選存儲(chǔ)單元部分重新編程以使被選中的存儲(chǔ)單元返回到相關(guān)的初始編程狀態(tài),其中,所述集合中的至少一個(gè)其它存儲(chǔ)單元未被部分重新編程。
2.如權(quán)利要求1所述的方法,其中固態(tài)非易失性存儲(chǔ)單元的所述集合包括閃存單元的行,通過在每個(gè)閃存單元的浮置柵極上累積電荷來編程所述閃存單元的行以并發(fā)存儲(chǔ)一頁數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,其中將每個(gè)閃存單元配置為多級(jí)單元(MLC),從而使得存儲(chǔ)單元存儲(chǔ)兩頁的數(shù)據(jù)。
4.如權(quán)利要求1所述的方法,其中施加第一寫入脈沖持續(xù)時(shí)間以將每一個(gè)存儲(chǔ)單元編程到相關(guān)的初始編程狀態(tài),以及隨后施加第二寫入脈沖持續(xù)時(shí)間以將所選存儲(chǔ)單元重新編程到相關(guān)的編程狀態(tài),第二寫入脈沖持續(xù)時(shí)間比第一寫入脈沖持續(xù)時(shí)間短。
5.如權(quán)利要求1所述的方法,其中通過施加電壓閾值到所選存儲(chǔ)單元來檢測(cè)其編程狀態(tài)的漂移。
6.如權(quán)利要求1所述的方法,其中通過響應(yīng)于與所選擇的存儲(chǔ)單元相關(guān)的誤碼率(BER)來檢測(cè)編程狀態(tài)的漂移。
7.如權(quán)利要求1所述的方法,其中通過響應(yīng)于從所選定存儲(chǔ)單元被編程到相關(guān)的初始編程狀態(tài)起所經(jīng)過的時(shí)間來檢測(cè)編程狀態(tài)的漂移。
8.根據(jù)權(quán)利要求1所述的方法,其中通過響應(yīng)于與所選存儲(chǔ)單元相關(guān)聯(lián)的溫度測(cè)量結(jié)果來檢測(cè)編程狀態(tài)的漂移。
9.如權(quán)利要求1所述的方法,其中應(yīng)用電荷的多個(gè)增量來將所選擇的存儲(chǔ)單元編程到初始化編程狀態(tài),并且其中隨后施加電荷的多個(gè)較小的增量以將所選存儲(chǔ)單元部分重新編程返回到初始編程狀態(tài)。
10.如權(quán)利要求1所述的方法,其中,所述存儲(chǔ)單元是電阻隨機(jī)存取存儲(chǔ)器(RRAM)單元、相變隨機(jī)存取存儲(chǔ)器(PCRAM)單元或自旋力矩轉(zhuǎn)移隨機(jī)存取存儲(chǔ)器(STRAM)單元中選定的一個(gè)。
11.如權(quán)利要求1所述的方法,其還包括,在與所選存儲(chǔ)單元相關(guān)聯(lián)的控制數(shù)據(jù)中,將所選存儲(chǔ)單元標(biāo)記為已經(jīng)過重新編程。
12.一種裝置,其包括: 配置成可尋址單元的固態(tài)非易失性存儲(chǔ)單元的陣列; 寫入電路,適用于將數(shù)據(jù)寫入到存儲(chǔ)器中選定的可尋址單元,使得在所選擇的可尋址單元中的每個(gè)存儲(chǔ)單元具有相關(guān)聯(lián)的初始編程狀態(tài);以及 部分重新編程電路,用于檢測(cè)所選擇的可尋址單元中的至少一個(gè)存儲(chǔ)單元的編程狀態(tài)的漂移,并指導(dǎo)寫入電路對(duì)將所選擇的可尋址單元中的不到全部存儲(chǔ)單元部分重新編程到相關(guān)初始編程狀態(tài)。
13.如權(quán)利要求12所述的裝置,其特征在于,其中所選擇的可尋址單元是閃存單元的行,其中所述寫入電路累積和轉(zhuǎn)移電荷的第一增量到閃存單元以將一頁數(shù)據(jù)寫入到所述行,并且所述寫入電路累積和轉(zhuǎn)移電荷的第二增量以將所述行的閃存單元部分重新編程,其中電荷的第二增量小于電荷的第一增量。
14.如權(quán)利要求12所述的裝置,其中施加第一寫入脈沖持續(xù)時(shí)間以將每一個(gè)存儲(chǔ)單元編程到相關(guān)的初始編程狀態(tài),以及隨后施加第二寫入脈沖持續(xù)時(shí)間以將所選存儲(chǔ)單元重新編程到相關(guān)的編程狀態(tài),第二寫入脈沖持續(xù)時(shí)間比第一寫入脈沖持續(xù)時(shí)間短。
15.如權(quán)利要求12所述的裝置,其中通過施加電壓閾值到所選存儲(chǔ)單元來檢測(cè)其編程狀態(tài)的漂移。
16.如權(quán)利要求12所述的裝置,其中通過響應(yīng)于與所選擇的存儲(chǔ)單元相關(guān)的誤碼率(BER)來檢測(cè)編程狀態(tài)的漂移。
17.如權(quán)利要求12所述的裝置,其中通過響應(yīng)于從所選定存儲(chǔ)單元被編程到相關(guān)的初始編程的狀態(tài)起所經(jīng)過的時(shí)間來檢測(cè)編程狀態(tài)的漂移。
18.根據(jù)權(quán)利要求12所述的裝置,其中通過響應(yīng)于測(cè)量與所選存儲(chǔ)單元相關(guān)的溫度來檢測(cè)編程狀態(tài)的漂移。
19.一種裝置,其包括: 閃存陣列,其包括設(shè)置成多個(gè)垃圾回收單元(GCU)的非易失性存儲(chǔ)單元,所述垃圾回收單元作為一個(gè)單元進(jìn)行擦除和分配; 讀/寫/擦除電路(R/W/E),其分別用于從所選GCU讀取數(shù)據(jù)、向所選GCU寫入數(shù)據(jù)以及擦除所選GCU;以及 部分編程電路,用于將所選GCU中的已編程閃存單元的集合標(biāo)識(shí)為已經(jīng)歷編程漂移,并指導(dǎo)所述R/W/E電路將所述已編程閃存單元的集合部分編程以向其轉(zhuǎn)移電荷,以將所述存儲(chǔ)單元恢復(fù)至其初始編程狀態(tài),而不對(duì)所選GCU應(yīng)用介入擦除。
20.如權(quán)利要求19所述的裝置,其中部分重新編程電路進(jìn)一步指導(dǎo)所述R/W/E電路以施加一個(gè)或多個(gè)電壓閾值至所述已編程閃存單元的集合,以在部分編程操作之前評(píng)估每個(gè)閃存單元的編程狀態(tài)。
【文檔編號(hào)】G11C16/10GK104332178SQ201410534322
【公開日】2015年2月4日 申請(qǐng)日期:2014年7月16日 優(yōu)先權(quán)日:2013年7月16日
【發(fā)明者】A·克利亞, V·沃迪, R·V·鮑曼 申請(qǐng)人:希捷科技有限公司