針對非易失性存儲器的寫入數據保存的制作方法
【專利說明】
【背景技術】
[0001]本公開內容涉及用于非易失性存儲器的技術。
[0002]半導體存儲器已變得日益流行于在各種電子設備中使用。例如,在蜂窩電話、數字攝影機、個人數字助理、移動計算設備、非移動計算設備以及其他設備中使用非易失性半導體存儲器。電可擦除可編程只讀存儲器(EEPROM)和快閃存儲器位列最流行的非易失性半導體存儲器當中。與傳統的全功能EEPROM相比,使用快閃存儲器(也是一種類型的EEPR0M),可以在一個步驟中擦除整個存儲器陣列的內容或存儲器的一部分的內容。可以將存儲元件的陣列劃分成大量的存儲元件的塊。
[0003]傳統的EEPROM和快閃存儲器兩者都利用浮置柵極,該浮置柵極位于半導體基板中的溝道區之上并且與其絕緣。浮置柵極位于源極區與漏極區之間。控制柵極設置在浮置柵極上并且與其絕緣。由此形成的晶體管的閾值電壓(Vth)由浮置柵極上所保留的電荷量控制。亦即,在晶體管被接通以允許在它的源極與漏極之間進行傳導之前必需施加給控制柵極的最小電壓量由浮置柵極上的電荷電平控制。由此,可以通過將參考電壓施加給存儲元件的控制柵極并且通過感測在存儲元件的漏極與源極之間流過的電流的量值對存儲元件進行讀取。
[0004]可以通過向存儲元件的控制柵極施加適當的編程電壓來對存儲元件進行編程。典型地,在編程操作期間施加給控制柵極的編程電壓Vpgm被施加為量值隨時間增加的一系列脈沖。在每個編程脈沖之后測量存儲元件中的晶體管的閾值電壓(Vth),以確定存儲元件是否被編程。當給定存儲元件通過驗證時,鎖定該存儲元件以防止進一步被編程。
[0005]一些設備具有被包括在同一存儲器設備中作為一個或更多個存儲器管芯的存儲器控制器。在控制器與一個或更多個存儲器管芯之間傳送命令和數據。對于一些傳統技術而言,首先將要被編程到存儲器管芯上的存儲元件中的數據存入存儲器管芯上的數據鎖存器。
[0006]然而,在一些傳統技術中,在編程期間數據鎖存器中的數據會丟失。作為一個示例,在編程數據原始被存入的鎖存器中的一個鎖存器中記錄針對給定存儲元件的驗證狀態。然而,這意味著原始編程數據在編程處理期間丟失。因此,對于一些傳統技術而言,如果編程差錯出現,則不能從數據鎖存器恢復原始編程數據。
[0007]一個可能的恢復模式是:在編程正在進行中時控制器保存編程數據。因此,在編程失敗之后,控制器可以將數據重新編程到其他存儲元件。然而,這種恢復模式占據控制器存儲器(如,數據鎖存器)。因此,在完成編程之前,控制器不能釋放該存儲器。
[0008]用于數據恢復的另一個可能的方法是:控制器首先緩沖存儲器管芯上的緩存區中的編程數據。該緩存區可以是用于短期數據存儲的存儲元件。然而,在每個編程操作之前,將數據編程到緩存區中存在有性能損失。此外,來自緩存存儲元件的數據需要被讀回,并且在該方法中還需要差錯位校正(ECC)。
【附圖說明】
[0009]圖1A是NAND串的一個實施方式的俯視圖。
[0010]圖1B是NAND串的等效電路圖。
[0011 ] 圖2示出了可以包括一個或更多個存儲器管芯或芯片的非易失性存儲設備。
[0012]圖3是描繪了感測塊的一個實施方式的框圖。
[0013]圖4描繪了圖2的存儲器陣列中的NAND快閃存儲器單元的塊。
[0014]圖5A描繪了八狀態存儲器設備的閾值電壓分布的示例組,其中每個存儲元件存儲三位數據。
[0015]圖5B示出了 Vt分布可以部分交疊。
[0016]圖6A描繪了根據一個實施方式的四狀態存儲器設備的閾值電壓分布的示例組,其中每個存儲元件存儲兩位數據。
[0017]圖6B和圖6C描繪了根據一個實施方式的兩遍編程序列。
[0018]圖7A、圖7B及圖7C描繪了根據一個實施方式的三遍編程序列的一個實施方式。
[0019]圖8A、圖8B及圖8C描繪了其中在開始其他狀態之前對C狀態編程的三遍編程序列的一個實施方式。
[0020]圖9A不出了另一兩遍編程技術的第一遍的一個實施方式。
[0021]圖9B示出了圖9A的兩遍編程技術的第二遍的一個實施方式。
[0022]圖9C描繪了在編程操作的一個實施方式期間向所選擇的字線施加的一系列編程脈沖和驗證脈沖。
[0023]圖10是描述了編程處理的一個實施方式的流程圖,該編程處理包括一個或更多個驗證步驟。
[0024]圖11是在對非易失性存儲器編程時將編程數據保存在鎖存器中的處理的一個實施方式的流程圖。
[0025]圖12A是在編程和驗證非易失性存儲器時操作數據鎖存器的處理的一個實施方式的流程圖。
[0026]圖12B是其中取決于在編程差錯出現之前是否完成了對鎖存器中的數據的轉換來進行恢復的處理的一個實施方式的流程圖。
[0027]圖12C是其中恢復取決于在編程差錯出現時鎖存器是否被用于保存上頁的處理的一個實施方式的流程圖。
[0028]圖12D是其中恢復取決于上頁數據是否被再存儲回到DL2鎖存器的處理的一個實施方式的流程圖。
[0029]圖13A是在編程和驗證非易失性存儲器時操作數據鎖存器的處理的一個實施方式的流程圖。
[0030]圖13B示出了在首先對B狀態和C狀態編程的編程的一個實施方式期間的數據鎖存器的使用。
[0031]圖13C示出了在編程的一個實施方式期間在DLl鎖存器和DL2鎖存器中存儲的目標數據。
[0032]圖13D示出了針對目標為各種狀態的存儲器單元的DLl鎖存器、DL2鎖存器及DL3鎖存器的初始狀態的一個實施方式的表格。
[0033]圖13E示出了在BC狀態編程期間的鎖存器使用的一個實施方式的表格。
[0034]圖13F示出在C狀態編程期間的鎖存器使用的一個實施方式的表格。
[0035]圖13G示出了在C狀態編程結束時的鎖存器的狀態的一個實施方式的表格。
[0036]圖13H示出了用于保存編程數據的第一轉換步驟的一個實施方式。
[0037]圖131示出了用于保存編程數據的第二轉換步驟的一個實施方式。
[0038]圖14A是恢復編程數據的處理的一個實施方式的流程圖。
[0039]圖14B示出了其中恢復了上頁數據的數據恢復處理的一個實施方式。
[0040]圖14C示出了其中恢復了下頁數據的數據恢復處理的一個實施方式。
[0041]圖15A示出了針對編程序列的一個實施方式的數據緩存使用。
[0042]圖15B示出了針對在圖15A中使用的編程序列的數據狀態的一個實施方式。
[0043]圖15C示出了當在QPW不用于C狀態的情況下對C狀態編程時的鎖存器使用的一個實施方式的表格。
[0044]圖16A是在編程和驗證非易失性存儲器時操作數據鎖存器的處理的一個實施方式的流程圖。
[0045]圖16B示出了在首先對C狀態編程的編程的一個實施方式期間的數據鎖存器的使用。
[0046]圖16C示出了在DLl鎖存器和DL2鎖存器中存儲的目標數據。
[0047]圖16D示出了針對圖16A的處理的DLl鎖存器、DL2鎖存器及DL3鎖存器的初始狀態的一個實施方式的表格。
[0048]圖16E示出了在圖16A的處理期間在C狀態編程期間的鎖存器使用的一個實施方式的表格。
[0049]圖16F不出了在C狀態編程結束時的鎖存器的狀態的一個實施方式的表格。
[0050]圖16G示出在圖16A的處理期間設定DL3鎖存器的一個實施方式。
[0051]圖16H示出了在編程的AB狀態階段的一個實施方式期間的八種可能狀態的表格。
[0052]圖161示出了在編程的B狀態階段的一個實施方式期間的六種可能狀態的表格。
[0053]圖17示出了其中恢復了上頁數據的數據恢復處理的一個實施方式。
[0054]圖18A是其中在同一遍編程中對A狀態、B狀態及C狀態全部編程的處理的一個實施方式的流程圖。
[0055]圖18B是示出了在圖18A的處理的一個實施方式期間的鎖存器使用的示意圖。
[0056]圖18C示出了在DLl鎖存器和DL2鎖存器中存儲的目標數據。
[0057]圖18D示出了針對圖18A的處理的一個實施方式、目標為各種狀態的存儲器單元的DL1、DL2及DL3鎖存器的初始狀態的表格。
[0058]圖18E示出了在其中存在有九種可能狀態的ABC狀態編程的一個實施方式期間的鎖存器使用的表格。
[0059]圖18F示出了在BC狀態編程階段的一個實施方式期間的鎖存器使用的表格。
[0060]圖18G示出了在BC狀態編程階段的一個實施方式之后的鎖存器的狀態。
[0061]圖18H示出了對DL2鎖存器中的數據的轉換的一個實施方式。
[0062]圖181示出了對DL3鎖存器中的數據的轉換的一個實施方式。
[0063]圖19示出了其中恢復了上頁數據的數據恢復處理的一個實施方式。
【具體實施方式】
[0064]提供了用于在非易失性存儲器的編程期間恢復數據的方法和非易失性存儲器系統。如上所述,在一些傳統編程技術中,要被寫入非易失性存儲元件的數據可以暫時存儲在鎖存器等中。在編程期間,鎖存器可能被釋放或者鎖存器中的數據會被改寫。因此,在一些傳統技術中,如果在編程期間出現差錯,則存儲在鎖存器中的原始數據不能用于恢復目的。
[0065]公開了用于在編程期間出現差錯的情況下從鎖存器恢復編程數據的技術。在一個實施方式中,在編程之前,將要被寫至非易失性存儲元件的數據存儲在鎖存器中。例如,數據可以存儲在與每個非易失性存儲元件相關聯的第一鎖存器和第二鎖存器中。作為一個示例,用于每個非易失性存儲元件的第一鎖存器集體地存儲第一頁數據,并且用于每個非易失性存儲元件的第二鎖存器集體地存儲第二頁數據。在一個實施方式中,在編程差錯的情況下恢復第二頁數據。在一個實施方式中,在編程差錯的情況下恢復第一頁數據和第二頁數據。
[0066]在編程期間,鎖存器可以用于存儲驗證狀態。在一個實施方式中,至少第二鎖存器和第三鎖存器用于存儲驗證狀態。第一鎖存器也可以用于存儲驗證狀態。存儲驗證狀態涉及測試存儲元件是否已被編程至其目的狀態,并且使用鎖存器來指示是否已達到了目的狀態。因此,在編程期間會潛在地改變鎖存器中的數據。然而,在編程期間可以轉換鎖存器中的數據,以保存原始編程數據。來自第二鎖存器的原始編程數據可以存儲在第二鎖存器與第三鎖存器的某些組合中。在編程差錯的情況下,可以基于至少第二鎖存器中的數據來恢復原始被存儲在第二鎖存器中的編程數據。
[0067]在一個實施方式中,可以用兩個鎖存器組的組合來保存在一個鎖存器組中原始存儲的編程數據。在對編程數據進行編程期間,該兩個鎖存器組也可以用于存儲驗證狀態。可以通過對兩個鎖存器組中的數據進行邏輯操作來恢復原始編程數據。例如,上頁數據可以初始存儲在一個鎖存器組中。當對上頁數據編程時,該鎖存器組和另一鎖存器組用于存儲關于上頁數據的驗證狀態。如果在上頁數據被保存時編程差錯出現,則可以通過對兩個鎖存器組進行邏輯操作來恢復上頁數據。
[0068]數據恢復可以取決于編程差錯何時出現以及使用哪種類型的編程序列。在一個實施方式中,在將第二鎖存器和第三鎖存器用于驗證狀態時,將上頁數據保存在第二鎖存器與第三鎖存器的組合中。注意,在編程序列的一部分期間,可以從第二鎖存器完全地恢復上頁。因此,可以通過基于在將編程數據保存在第二鎖存器與第三鎖存器的組合中時編程差錯是否出現而將邏輯操作應用于第二鎖存器和第三鎖存器來恢復數據。
[0069]在一個實施方式中,為了將編程數據保存在第二鎖存器與第三鎖存器的組合中,進行數據轉換步驟。例如,可以在編程序列中的某些預定點處改變存儲在第二鎖存器和/或第三鎖存器中的數據,以保存編程數據。預定點可以是完成對特定編程狀態的編程時。
[0070]在一個實施方式中,如果在轉換了第二鎖存器和第三鎖存器中的數據之后編程差錯出現,則通過將邏輯操作應用于第二鎖存器和第三鎖存器來恢復數據。這里描述了各種編程序列的進一步的細節,這會影響在編程期間如何進行數據恢復以及如何轉換第二鎖存器和第三鎖存器中的數據。實施方式不限于本文描述的各種示例編程序列。
[0071]在一些實施方式中,在完成編程之前釋放第一鎖存器。在一個實施方式中,在將編程數據保存在第二鎖存器與第三鎖存器的組合中時,第一鎖存器為空閑。為“空閑”意味著鎖存器不用于存儲編程數據或驗證狀態。然后,這些第一鎖存器可以用于例如背景緩存。例如,在仍然要完成編程的情況下,第一鎖存器可以用于一些其他目的。
[0072]用于實現實施方式的適合的存儲器系統的一個示例使用NAND快閃存儲器結構,該NAND快閃存儲器結構在兩個選擇柵極之間串聯布置多個晶體管。串聯的晶體管和選擇柵極被稱為NAND串。圖1A是示出了一個NAND串90的俯視圖。圖1B是其等效電路。所描繪的NAND串包括夾在第一選擇柵極120與第二選擇柵極122之間的串聯的四個晶體管100、102、104和106。選擇柵極120將NAND串連接到位線126。選擇柵極122將NAND串連接到源極線128。通過分別向控制柵極120CG和122CG施加適當的電壓來控制選擇柵極120和122。晶體管100、102、104和106中的每一個晶體管具有控制柵極和浮置柵極。晶體管100具有控制柵極100CG和浮置柵極100FG。晶體管102包括控制柵極102CG和浮置柵極102FG。晶體管104包括控制柵極104CG和浮置柵極104FG。晶體管106包括控制柵極106CG和浮置柵極106FG。控制柵極100CG、102CG、104CG和106CG分別連接到字線WL3、WL2、WL1和WL0。在一個實施方式中,晶體管100、102、104和106各自是存儲器單元。在其他實施方式中,存儲器單元可以包括多個晶體管,或者可以與所描繪的存儲器單元不同。選擇柵極120和122分別連接到漏極側選擇線SGD和源極側選擇線SGS。除了 NAND快閃存儲器以外,還可以使用其他類型的非易失性存儲器。
[0073]圖2示出了可以包括一個或更多個存儲器管芯或芯片212的非易失性存儲設備210。存儲器管芯212包括存儲器單元200的陣列(二維或者三維)、控制電路220以及讀/寫電路230A和230B。在一個實施方式中,在陣列的相對側上,以對稱的方式來實現由各種外圍電路對存儲器陣列200的訪問,以使得對每一側上的線路和電路進行訪問的密度減半。讀/寫電路230A和230B包括多個感測塊300,多個感測塊300容許并行地讀取或編程存儲器單元的頁。存儲器陣列200可以通過字線經由行解碼器240A和240B并通過位線經由列解碼器242A和242B進行尋址。在典型的實施方式中,控制器244被包括在與一個或更多個存儲器管芯212相同的存儲器設備210 (例如,可移除存儲卡或包)中。命令和數據經由線路232在主機與控制器244之間傳送,并且經由線路234在控制器與一個或更多個存儲器管芯212之間傳送。一種實現可以包括多個芯片212。
[0074]控制電路220與讀/寫電路230A和230B進行協作,以對存儲器陣列200進行存儲操作。控制電路220包括狀態機222、片上地址解碼器224和功率控制模塊226。狀態機222提供對存儲器操作的芯片級控制。片上地址解碼器224提供地址接口,以在由主機或存儲器控制器所使用的地址與由解碼器240A、240B、242A和242B所使用的硬件地址之間進行轉換。功率控制模塊226控制在存儲器操作期間提供給字線和位線的功率和電壓。在一個實施方式中,功率控制模塊226包括可以產生比電源電壓更大的電壓的一個或更多個電荷栗O
[0075]在一個實施方式中,控制電路220、功率控制電路226、解碼器電路224、狀態機電路222、解碼器電路242A、解碼器電路242B、解碼器電路240A、解碼器電路240B、讀/寫電路230A、讀/寫電路230B和/或控制器244中的一個或任意組合可以被稱為一個或更多個管理電路。
[0076]圖3是描繪感測塊300的一個實施方式的框圖。單獨的感測塊300被分割成被稱為感測模塊380的核心部分和共用部分390。在一個實施方式中,存在用于每條位線的獨立的感測模塊380以及用于一組多個感測模塊380的一個共用部分390。在一個示例中,感測塊300將包括一個共用部分390和八個感測模塊380。組中的感測模塊中的每一個感測模塊將經由數據總線372與相關聯的共用部分進行通信。
[0077]感測模塊380包括感測電路370,該感測電路370確定在連接的位線中的傳導電流是高于還是低于預定閾值電平。感測模塊380還包括用于設定連接的位線上的電壓狀況的位線鎖存器382。例如,位線鎖存器382中所鎖存的預定狀態會導致連接的位線被拉到指定編程禁止的狀態(例如1.5V至3V)。作為示例,flag = O可以禁止編程,而flag = I不禁止編程。
[0078]共用部分390包括處理器392、三組示例數據鎖存器394及耦合在數據鎖存器組394與數據總線320之間的I/O接口 398。針對每個感測模塊可以提供一組數據鎖存器,并且針對每個組可以提供由DL1、DL2及DL3區分的三個數據鎖存器。下面進一步討論數據鎖存器的使用。
[0079]處理器392執行計算。例如,處理器392的功