存儲器刷新方法及設備的制作方法
【專利摘要】本發明揭示例如涉及以下操作的設備及存儲器刷新方法的設備及存儲器刷新方法:響應于存儲器裝置被通電而檢查所述存儲器裝置的一部分以找出錯誤;及如果在檢查非易失性存儲器的所述部分以找出錯誤時找到錯誤,那么將經校正數據重新編程到所述存儲器裝置。本發明揭示其它設備及存儲器刷新方法。
【專利說明】存儲器刷新方法及設備
[0001]優先權申請案
[0002]本申請案主張2011年8月31日提出申請的第13 / 222,282號美國申請案的優先權權益,所述美國申請案的全文以引用方式并入本文中。
【背景技術】
[0003]各種計算機系統及電子裝置使用非易失性存儲器。換句話說,所述存儲器在電力斷開連接時不丟失所存儲數據。這些非易失性存儲器可進行重新編程、讀取及電擦除且非常適于存儲各種數據,例如數字音頻播放器中的音樂、數碼相機中的圖片及蜂窩式電話中的配置數據。此類存儲器包含通常稱為快閃存儲器的裝置,如此命名部分是因為使用快閃操作來在將存儲器單元的塊重新編程之前擦除其內容。此類型的存儲器通常封裝成用于消費者使用的產品,例如CompactFlash存儲器卡、USB快閃存儲器裝置及其它此類裝置。
[0004]快閃存儲器通常包括各自可編程為至少兩個數據狀態中的一者的若干個單元,其中每一數據狀態可表示一數據值,例如數據的一或若干數字(例如,位)。典型快閃存儲器單元包括場效應晶體管,其具有控制存儲器單元的源極與漏極區域之間的電傳導的電隔離的電荷存儲結構(例如浮動柵極或電荷陷阱)。數據由存儲于電荷存儲結構上的電荷及在源極與漏極區域之間觀察到的所產生導電性改變表示。
[0005]電荷存儲結構將存儲器單元的控制柵極與源極及漏極區域分離。存儲于電荷存儲結構上的電子通過電介質材料(例如隧道氧化物)與控制柵極以及漏極及源極電絕緣。當通過將所規定電壓置于控制柵極上而讀取存儲器單元時,裝置的源極與漏極之間的電阻抗將允許或不允許電流流動,此取決于存儲器單元的有效閾值電壓(Vt)。所存儲電荷部分地抵消或修改由控制柵極產生的電場,從而導致存儲器單元的有效閾值電壓(Vt)的改變。可感測是否存在響應于施加到控制柵極的特定電壓的電流且使用所述電流來確定存儲器單元是否處于表示特定數據值(例如一或零值)的特定數據狀態中。
[0006]一些快閃存儲器單元可編程為三個或三個以上數據狀態中的一者,且通常稱為多電平存儲器單元。舉例來說,可編程為四個狀態中的任一者的多電平存儲器單元可每單元存儲數據的兩個位,借此使可存儲的數據量相對于常規單位存儲器單元加倍。
[0007]存儲器單元通常布置成二維行與列陣列,其中一行中的存儲器單元經由存取線(通常稱作字線)耦合,且一列中的存儲器單元耦合到數據線(通常稱作位線)。字線及位線在數據讀取及編程功能期間用來選擇特定存儲器單元進行讀取或選擇特定存儲器單元進行編程(有時稱為“寫入”)。
[0008]存儲器單元易受可影響所存儲數據的準確性的各種因素影響,例如宇宙射線、讀取誘發的干擾及可更改存儲于快閃存儲器單元的電荷存儲結構上的電荷的其它因素。感應電場或磁場、電容性耦合以及導體及絕緣體的有限電阻也可致使位線與字線之間的不希望的耦合或干擾。
[0009]這些因素中的任一者可減小讀取存儲器單元的準確性。例如這些因素的因素可在每存儲器單元具有兩個以上可能數據狀態的多電平存儲器中甚至更重要,這是因為隨著可的可操作以采用非易失性存儲器刷新方法
匕施方式中,通過圖式及圖解說明參考本發;例以使得所屬領域的技術人員能夠實踐本:用于各種目的或實施例。存在本發明的其本發明的主題或范圍的情況下做出邏輯改所描述的本發明的各種實施例的特征或限本發明的其它實施例或本發明作為整體,限制本發明作為整體而是僅用于界定這些私發明的各種實施例的范圍,所述范圍僅由
I單元。源極101及漏極102形成于襯底102及襯底103在一些實施例中由硅形成,劑用以增加硅中的電子濃度或其中具有三[0020]在操作中,電荷存儲結構105由于其與存儲器單元的其它組件電隔離而能夠存儲電荷。編程或擦除電荷存儲結構105上的電荷電平可經由隧穿過程(稱為福勒-諾德漢姆(Fowler-Nordheim)隧穿)執行,其中電子隧穿電介質材料104的部分從而將電荷存儲結構105與襯底103分離。一或若干電介質材料的將電荷存儲結構105與襯底103分離的部分按慣例稱為隧道電介質。
[0021]基于存儲器單元或用于執行讀取、編程及擦除操作的電路的布置,多數快閃存儲器裝置分類為NOR快閃或NAND快閃。
[0022]在將NOR快閃存儲器中的存儲器單元編程的一個實例中,可將源極101接地且可將供應電壓(例如6伏)施加到漏極102。在一個實施例中,經由用以識別將編程的存儲器單元的位線施加漏極電壓。還將較高電壓(例如12伏)置于存儲器單元的控制柵極106上,從而由于電子對帶正電的控制柵極的吸引而迫使在P型襯底中形成反轉區域。源極與漏極之間的電壓差與P型材料中的反轉區域組合形成在源極101與漏極102之間穿過P型襯底103的反轉區域的顯著電子流,使得由106處的控制柵極電壓產生的電子及電場的動能形成跨越隧道電介質且到達電荷存儲結構105上的高能量(還稱為“熱”)電子的福勒-諾德漢姆隧穿。
[0023]電荷存儲結構借此采用抵消任何控制柵極正電荷對襯底103在源極101與漏極102之間的區域的影響的負電荷,從而使必須經由字線施加到控制柵極106的電壓升高以形成跨越P型襯底材料103中的反轉區域的傳導。換句話說,當在讀取操作期間使字線的電壓變成高電壓(例如5伏)時,單元將由于因在編程操作期間存儲于電荷存儲結構105上的電子導致的較高閾值電壓而不接通。施加到控制柵極的讀取電壓大于經擦除存儲器單元的閾值電壓Vt,但不足夠大以允許跨越已編程的單元的襯底103中的反轉區域的傳導。
[0024]在將NAND快閃中的存儲器單元編程的一個實例中,可將圖1的存儲器單元的源極101及漏極102接地且可將控制柵極106帶到或許20伏的電壓。此電壓顯著高于用于使用NOR快閃方法將相同存儲器單元編程的12伏控制柵極電壓,這是因為較高電壓彌補在存儲器單元的源極與漏極之間減速的“熱”電子的缺乏。
[0025]在使用NOR快閃存儲器電路擦除存儲器單元的實例中,可發生從存儲器單元的電荷存儲結構105到源極101的類似電子隧穿。源極101在一些實施例中比漏極更深地擴散以增強擦除性能。在一個實例中,可將正電壓(例如12伏)施加到源極101,可將控制柵極106接地,且可使漏極102保持斷開連接以執行擦除操作。源極101上的大的正電壓吸引帶負電的電子,致使其隧穿絕緣層104且離開浮動柵極105。由于在擦除操作期間在源極101與漏極102之間存在非常小電流,因此執行擦除操作需要非常小電流且消耗相對小電力。
[0026]在NAND存儲器配置中的另一實例性存儲器單元擦除操作中,可使源極101及漏極102保持浮動,但將襯底材料103帶到高正電壓(例如20伏),從而吸引帶負電的電子且致使其從電荷存儲結構105隧穿氧化物絕緣層104到達襯底材料103。此方法有時稱為“溝道擦除”,這是因為襯底材料103中的溝道區域從電荷存儲結構105接收電子。
[0027]存儲器單元(例如圖1中所展示的存儲器單元)可布置成經由存取線(稱為字線)及數據線(稱為位線)尋址的陣列,如圖2中所展示。圖2展示包含可選擇性地耦合到單個位線的存儲器單元串的NAND快閃存儲器陣列的一部分,其中所述串中所展示的存儲器單元中的每一者可進一步經由字線202選擇。[0028]存儲器單元串O到31可選擇性地耦合于串到源極線203的另一側上。通過相應選擇晶體管204的操作,所述串可耦合到位線201及源極線203 (或與其隔離)。
[0029]在一個實例中,為執行選定單電平存儲器單元202的讀取操作,可將選定存儲器單元202的字線及因此控制柵極維持在低但正電壓電平處,同時可將未選擇的存儲器單元的字線帶到充分高電壓以致使未選擇的存儲器單元導電而無論可在個別存儲器單元的電荷存儲結構上的任何電荷如何。如果選定存儲器單元具有未充電的電荷存儲結構,那么其將由于控制柵極上的低正電壓電平而導電,但如果電荷存儲結構具有負電荷,那么其將使存儲器單元202的閾值電壓升高到高于施加到控制柵極的低正電壓使得所述單元不導電。可因此通過(舉例來說)監視位線201與源極線203之間的導電性或電流而確定存儲器單元的電荷存儲結構的數據狀態。
[0030]在一個實例中,為將選定存儲器單元202編程,可經由將串耦合到接地位線201及源極線203的線選擇晶體管204使位線201及源極線203接地。選擇晶體管204的柵極因此再次耦合到電壓源使得所述晶體管導電。將未編程的存儲器單元的控制柵極帶到充分高電壓(例如,10伏)以抑制那些存儲器單元的無意編程。選定存儲器單元202的控制柵極耦合到顯著較高電壓(例如20伏),使得電子隧穿到電荷存儲結構上。
[0031]然而,外部因素(例如宇宙射線、編程誘發的擾亂及讀取誘發的擾亂)可致使所存儲電荷隨時間改變,從而導致經編程存儲器單元的閾值電壓Vt的變化,此可致使讀取錯誤及其它負面效應。
[0032]存儲器單元串(例如圖2的那些存儲器單元串)可組織成若干塊,使得塊為快閃存儲器的最小可擦除單位。圖3展示可用于實踐本發明的一些實施例的NAND快閃存儲器的塊。此處,301處所展示的64個單獨字線以塊提供存儲器的64個可單獨尋址的物理頁,其中每一頁能夠存儲用戶數據的4096個字節及額外開銷數據(有時稱為備用位)(例如錯誤校正碼(ECC)數據)的128個字節。ECC數據可用于檢測及/或校正一些存儲器錯誤。在此實例性實施例中,塊可因此存儲用戶數據的256kB加上額外開銷數據的8kB。常規快閃存儲器裝置含有許多此類塊,舉例來說,提供256MB的用戶數據存儲區的1024塊存儲器裝置。
[0033]圖4中展示此存儲器裝置的更詳細實例,其圖解說明可用于實踐本發明的一些實施例的塊(例如圖3中所展示的塊)的多個平面。此處,如401處所展示的平面O含有存儲器的偶數個塊,而402處所展示的平面I含有存儲器的奇數個塊,總共1024個塊。將存儲器劃分成兩個或兩個以上平面可提供較迅速存儲器操作,但可將存儲器操作拘限于同時讀取、編程及擦除偶數及奇數個平面。舉例來說,對平面O的塊O執行的擦除操作還可包含擦除平面I的塊1,且將一頁編程到平面O的塊1022還可導致將對應頁編程于平面I的塊1023 中。
[0034]由于編程操作及讀取操作的類似之處在于其涉及將電壓施加到在寫入操作中被寫入的存儲器單元或存儲器單元串的在讀取操作中未選擇的單元,因此多個讀取、編程及/或擦除操作可最終影響經編程存儲器單元的數據狀態。舉例來說,常規NAND快閃存儲器可在每頁數萬或數十萬讀取之后使其經編程存儲器單元的數據狀態毀壞。
[0035]雖然一些錯誤可使用存儲于存儲器中的錯誤校正數據校正,但限制發生的讀取錯誤的數目以提供更可靠且高效存儲器操作并且防止多位或其它不可恢復錯誤可為合意的。舉例來說,如圖3中所展示的64個頁的存儲器塊可具有對塊執行的數百萬讀取操作以在讀取第64個頁之前讀取前63個頁,從而有重大機會發生對第64個頁的不可恢復讀取錯誤。
[0036]本發明的一些實施例因此試圖通過隨時間刷新存儲器(例如,拷貝及重新編程)以防止所存儲數據的毀壞或丟失而減小存儲器錯誤的發生率。刷新存儲器可由于例如以下各項的因素而執行:從編程以來經過的時間、超過讀取錯誤閾值或者將存儲器裝置或存儲器控制器通電(直接或間接地,例如通過將耦合到存儲器裝置的存儲器控制器通電)。
[0037]在更詳細實例性實施例中,存儲器控制器系統性地遍及存儲器進行讀取以關于超過特定閾值的存儲器錯誤的等級檢測塊且在錯誤變得不可恢復之前刷新塊。由于限制將存儲器單元編程的次數可為合意的,因此可通過在未超過最小錯誤閾值的情況下不刷新數據而避免不必要編程。舉例來說,如果錯誤校正數據實現頁中的24個位的校正,那么可能僅在發現一半可校正位(在此實例中為12個位)在對塊執行的頁讀取操作中有錯誤的情況下對塊進行刷新。
[0038]一些裝置(例如便攜式游戲系統、智能電話、便攜式媒體裝置及其它此類裝置)相對頻繁地進行電力循環(即,通電及斷電),此減小裝置遍及所有存儲器進行掃描且有效地管理潛在讀取錯誤的能力。本發明的一些實施例因此使用電力循環來管理非易失性存儲器中的錯誤,例如通過使用電力循環來觸發存儲器掃描及刷新操作且在細粒度級上執行這些操作。
[0039]在一個實例中,可通過以下方式最小化單個存儲器掃描及刷新操作的影響:在塊層級上進行掃描及刷新,使得可在(舉例來說)數百毫秒內完成存儲于單個塊中的或許兆字節的數據的拷貝及重新編程。在另一實例中,響應于每一次通電而掃描至少一個不同塊,從而確保視需要在規則基礎上掃描并刷新存儲器的塊。
[0040]在裝置操作期間,掃描可作為后臺任務在逐塊基礎上繼續,且任何必要刷新經排列以作為后臺任務的一部分或作為裝置的下一電力循環的一部分完成。如果失去電力,那么裝置重啟過程在一個實例中包含確定來自裝置的存儲器的塊是否已標記為要刷新(例如,例如在刷新標記為要刷新的塊在失去電力之前未完成時)。此方法可通過跟蹤機制補充,在另一實例中,所述跟蹤機制跟蹤對每一塊執行的讀取且周期性地(例如,每千個讀取)檢查塊的數個頁以找出錯誤。
[0041]正在被檢查以找出錯誤的當前塊的身份可存儲于非易失性存儲器中(例如在寄存器中或在存儲器陣列本身的一部分中),且可用以確保通過電力循環觸發或作為后臺任務執行的塊檢查遍及所有存儲器繼續進行而非針對每一電力循環在同一塊處重新開始。可通過將塊標記為要刷新而跨越電力循環進一步跟蹤刷新,使得經排列或不完整的塊刷新可作為通電序列的一部分或在通電序列完成之后的裝置操作期間完成。在另一實例中,非易失性存儲器還可存儲每裝置或塊的頁讀取的數目,使得頻繁地重新啟動的裝置能夠計數跨越電力循環積累的讀取操作而非在裝置斷電時丟失頁讀取的計數。
[0042]圖5是圖解說明與本發明的實例性實施例一致的管理通過通電序列觸發的存儲器錯誤的方法的流程圖。在501處,將裝置通電且裝置開始通電序列,其包含(例如)通過檢查非易失性存儲器位置(例如,寄存器)以找出塊信息或通過檢查與存儲器塊相關聯的旗標而確定存儲器的任何塊是否已標記為要刷新。如果在502處存儲器塊以某種方式標記為要刷新,那么在503處拷貝并重新編程存儲于塊中的數據。[0043]如果在502處塊均未標記為要刷新,那么在504處讀取存儲器的經識別塊。在一些實施例中,通過以下方式識別存儲器塊:在基于電力循環的存儲器刷新中查詢對下一未檢查的存儲器塊的指針,使得方法跨越電力循環遍及存儲器繼續進行而非在每一通電序列處以同一存儲器塊重新開始。
[0044]在讀取塊時,使用ECC計數每頁錯誤的數目,且在505處確定所述錯誤數目是否超過閾值。在另一實例中,可使用所存儲ECC數據校正多達每頁24個位的存儲器在塊的任一頁中的12個位(例如,大致一半可校正數目個位)有錯誤且需要校正的情況下超過其可接受錯誤數目。在其它實施例中可使用其它閾值(例如可校正位的數目的三分之一)。閾值可基于例如在存儲器的壽命中實施的操作的數目或存儲器的使用年限等因素變化。
[0045]如果在505處錯誤的數目超過讀取錯誤的可允許閾值,那么在506處將塊標記為要刷新。接著在507處拷貝塊的數據,使用錯誤校正碼數據來修正可校正錯誤,且將數據重新編程。可在拷貝及重新編程之前將塊標記為要刷新,使得如果在拷貝及重新編程可在507處完成之前裝置斷電或方法以其它方式中斷,仍將在裝置再次通電時對塊的數據進行拷貝及重新編程(例如在502及503處)。在506處將塊標記為要刷新的旗標因此在此實例中直到507處的拷貝及重新編程完成才清除。
[0046]在508處,存儲器準備好進行正常操作。在一些實施例中,在存儲器塊在通電時標記為要刷新的情況下執行的503處的拷貝及重新編程在完成時不形成準備就緒狀態,而是進行到504,其中在存儲器裝置準備就緒之前讀取至少一個新塊,此可確保在每一正常電力循環上讀取至少一個新塊。
[0047]圖5中所圖解說明的方法可用以確保在每一電力循環上檢查或刷新至少一個塊,但可經配置使得將作為通電循環的一部分刷新僅一個塊。雖然讀取典型塊當前使用一些技術花費大約一毫秒,但將所述塊重新編程當前可花費大約數百毫秒,因此將數個塊重新編程可在通電序列期間顯著延遲存儲器可用性。一些標準(例如JEDEC快閃存儲器標準)要求存儲器在通電之后的特定時間段內(例如在一秒內)準備好進行操作。出于此原因,一些實施例(例如圖5中所展示的實例)可(例如)通過確保在存儲器準備好進行常規存取操作之前將僅一個塊重新編程而限制作為裝置啟動方法的一部分發生的編程操作的數目。
[0048]在另一實例中,可通過后臺存儲器刷新方法補充圖5的通電刷新方法,如圖6中所展示。根據一種此類實例性方法,在于601處接收讀取命令之后執行讀取,且在602處更新讀取計數器(例如,通過使遞增計數器遞增或使遞減計數器遞減)。由于讀取命令可導致讀取多個頁,因此計數器可計數所讀取的頁而非讀取命令的數目,例如以確保可維持已讀取頁的次數的準確計數。當所讀取的頁數目達到閾值(例如,頁讀取的數目達到1024個頁,如603處所圖解說明)時,起始刷新掃描。舉例來說,在604處,讀取存儲器的由刷新塊指針識別的塊的特定數目個頁(例如,16個頁)并在604處檢查所述頁以找出錯誤。在其它實施例中,將使用其它適合讀取閾值及將讀取的頁數目。
[0049]如果在604處讀取的數據的16個頁中的任一者包含超過閾值(即,預定可允許錯誤率)的錯誤數目(例如在ECC可校正頁中的多達24個位的情況下為頁中的12個或12個以上錯誤),那么在606處將由刷新塊指針識別的塊標記為要刷新。接著讀取并拷貝塊的數據(例如,讀取并拷貝到緩沖存儲器中)以供重新編程(例如,逐頁)(如607處所展示),例如以用經校正且新編程的數據更新存儲于存儲器中的數據。當已將塊的數據成功重新編程時,清除指示待將塊重新編程的旗標。如果塊拷貝及重新編程未在下一電力循環發生之前成功完成,那么可因此在下一電力循環處重復塊拷貝及重新編程,這是因為仍將設定指示待將塊重新編程的旗標。
[0050]后臺刷新方法接著在608處繼續,其中使頁讀取計數器復位(例如,復位到零)。在一些實施例中,被讀取的頁的閾值可基于例如對特定存儲器配置的讀取擾亂測試、存儲器裝置密度及其它此類因素等因素。
[0051]在此實例中,當在606處將塊標記為要刷新時,塊中不再有其它頁需要作為刷新掃描的一部分讀取,這是因為整個塊將被拷貝。在一些實施例中,作為損耗均衡方法的一部分將塊的數據重新定位到物理存儲器中的另一塊位置,從而進一步減小存儲器的已確定為具有不可接受讀取錯誤率的物理塊上的損耗。
[0052]在此實例中,606到607處的塊刷新方法在其它刷新掃描讀取在604處發生之前完成,以防止標記為要刷新的塊的積累。在另一實施例中,圖6中所圖解說明的方法操作使得在任一時間將最多僅一個塊標記為要刷新。
[0053]作為刷新掃描方法的一部分讀取的當前塊及頁存儲于存儲器中,所述存儲器在一些實施例中包括非易失性存儲器。后臺刷新方法的存儲器位置因此在電力循環期間不會丟失。在另一實例中,僅后臺刷新方法的塊位置存儲于非易失性存儲器中(這是因為其相對不頻繁地更新),且指向塊的特定16個頁來掃描的頁位置(如604處所反映)存儲于易失性存儲器(例如隨機存取存儲器或RAM)中。如果裝置經歷電力循環,那么后臺刷新方法將在非易失性存儲器中所標記的塊的開始處重新開始,從而在掃描塊的其余部分之前重復掃描塊的最多一部分且進行到后臺刷新過程最近尚未掃描的非易失性存儲器。
[0054]在另一實施例中,可選擇錯誤閾值電平、刷新率及其它此類參數以避免裝置的刷新不足或過度刷新。雖然允許錯誤積累到其中可發生不可校正讀取錯誤的點通常為不合意的,但太頻繁地刷新非易失性存儲器也通常為不合意的,這是因為非易失性存儲器單元上的不必要損耗可導致(舉例來說)存儲器裝置的縮短的壽命期限。
[0055]刷新率還可經選擇以減小不可校正讀取擾亂錯誤在可刷新頁之前發生的機會。將具有總共1024個塊及每塊256個頁的非易失性存儲器視為實例。如果需要塊中的每頁100,000次讀取來使所述塊中的讀取擾亂變得合理地有可能,那么每頁100,000次讀取乘以每塊256個頁形成塊中的大致260萬次讀取來使讀取擾亂事件變得合理地有可能。每塊260萬次讀取除以1024個塊暗示每26,000個頁讀取應刷新一個塊以使讀取擾亂錯誤合理地不可能。以較快速率(例如每16,000個頁讀取一個塊)進行刷新提供安全性的某種額外限度。
[0056]如先前所論述,執行讀取所花費的時間也可為選擇將適合特定應用的刷新參數的因素。作為后臺刷新方法的一部分一次讀取整個塊當前可花費約100毫秒,此在通電時可為可接受的但在操作期間為不合意的。針對刷新掃描一次讀取單個頁當前可花費約一毫秒,但可在上文實例中每64個用戶頁讀取執行,其中每16,000個用戶頁讀取刷新一個塊。類似地,針對刷新掃描讀取16個頁當前花費大致8毫秒,且可能每1024個用戶頁讀取執行以每16,000個用戶頁讀取刷新整個塊。
[0057]讀取塊并將塊重新編程當前花費大致500毫秒,因此在此實例中,用以讀取塊以檢查錯誤且接著讀取塊并將塊重新編程的經組合總時間為大致600毫秒。如果針對每1024個用戶頁讀取的刷新掃描讀取16個頁,對用戶的總影響將為每1024個頁讀取大致8ms延遲,外加大致2ms到3ms來在完成掃描每一塊時更新非易失性存儲器中的有源塊地址。在稀有事件中,需要刷新,將發生額外500ms延遲來拷貝塊并將塊重新編程。由于在多數現實生活應用中預期此為罕見事件且對由不可校正讀取誘發的存儲器錯誤為優選的,因此針對多數應用半秒延遲應為可接受的。對于無法容忍500ms延遲的應用,可將塊的刷新分成多個操作。舉例來說,將16個頁重新編程的16個操作將隨時間拷貝256頁塊,同時致使對任一系統存儲器存取來說最小的僅約32ms延遲。在另一實例中,存儲器裝置可允許正常存儲器存取中斷塊拷貝、執行正常存取且接著重新開始拷貝以提供對正常操作的最小延遲。
[0058]本文中在一些實施例中所描述的刷新方法由在存儲器裝置內部的存儲器控制器(例如形成快閃存儲器卡的一部分的存儲器控制器)管理,且在其它實施例中在存儲器裝置外部實施,使得可借助現成非易失性存儲器裝置采用上文所描述的方法。圖7展示可操作以采用例如本文中所描述的那些方法的方法的各種裝置。
[0059]在701處的是非易失性存儲器集成電路,例如快閃存儲器集成電路。在一些實施例中,集成電路包含內部控制器,而在其它實施例中,外部存儲器控制器執行存儲器刷新操作。在702處類似地展示快閃存儲器卡(例如,安全數字(SD)存儲器卡),所述快閃存儲器卡同樣可包含內部控制器或可由外部控制器(例如,如以硬件、固件及/或軟件體現)刷新。
[0060]在703處展示通常采用在數十兆字節或更多的范圍內的大量便攜式非易失性存儲器的快閃存儲器驅動器(通常稱為拇指驅動器或USB快閃驅動器)。消費者通常使用此類驅動器來存儲并在計算機之間載運數據,例如經保存文檔、多媒體文件等等。在704處展示數碼相機,其通常包含用于存儲固件及其它數據的兩個內部快閃存儲器以及用于存儲照片、視頻及其它數據的快閃存儲器卡(例如702處所展示)。
[0061]例如本文中所描述的那些方法的刷新方法還用于智能電話、便攜式游戲系統、個人數字助理(PDA)或如705處所展示的其它此類裝置中。這些裝置使用非易失性存儲器(例如快閃存儲器)來存儲程序及其它數據。非易失性存儲器還變得越來越常見為如706處所展示的個人計算機中的高性能選項,既用于存儲數據(例如固件及配置數據)以及在固態驅動器(SSD)中。由于固態驅動器遠遠勝過典型硬盤驅動器,因此固態驅動器的使用可改進計算機響應性及速度,從而使例如啟動、發動應用程序或從冬眠狀態恢復等任務對于終端用戶來說快得多。
[0062]圖7的這些電子存儲器裝置圖解說明其中本文中所描述的刷新方法可特別是在所展示的裝置易受頻繁電力循環影響時提供改進的存儲器可靠性及數據完整性的環境。雖然本文中已圖解說明且描述了特定實施例,但所屬領域的技術人員將了解,旨在實現相同目的、結構或功能的任何布置可替代所展示的特定實施例。本申請案打算涵蓋對本文中所描述的本發明的實施例的任何更改或變化。打算本發明僅由權利要求書及其等效物的全部范圍限制。
【權利要求】
1.一種方法,其包括: 響應于存儲器裝置被通電而檢查所述存儲器裝置的存儲器的一部分以找出錯誤;及 如果找到錯誤,那么將經校正數據重新編程到所述存儲器。
2.根據權利要求1所述的方法,其中所述存儲器的被檢查以找出錯誤的所述部分包括所述存儲器的塊或更小單位。
3.根據權利要求1所述的方法,其中檢查存儲器的一部分以找出錯誤包括:確定所述存儲器的所述部分是否已在將所述存儲器裝置通電后即刻標記為要刷新。
4.根據權利要求3所述的方法,其進一步包括如果確定已標記所述存儲器的所述部分,那么刷新所述部分。
5.根據權利要求1所述的方法,其中檢查存儲器的一部分以找出錯誤包括:讀取所述存儲器的所述部分及使用錯誤校正碼來確定錯誤的存在。
6.根據權利要求1所述的方法,其中如果找到錯誤那么將經校正數據重新編程到所述存儲器包括:僅在所述找到的錯誤超過錯誤閾值的情況下將經校正數據重新編程。
7.根據權利要求1所述的方法,其進一步包括在所述存儲器的操作期間檢查所述存儲器的額外部分以找出錯誤。
8.根據權利要求7所述的方法,其中在操作期間檢查所述存儲器的額外部分以找出錯誤由被讀取的存儲器頁 的數目觸發。
9.根據權利要求1所述的方法,其進一步包括維持識別將被檢查以找出讀取錯誤的存儲器塊的刷新塊指針。
10.根據權利要求1所述的方法,其中將經校正數據重新編程到所述存儲器包括:將所述存儲器的所述部分標記為要刷新,拷貝所述存儲器的所述部分的數據,將所述經拷貝數據重新編程,及取消標記所述存儲器的所述部分。
11.一種設備,其包括: 存儲器單元陣列;及 控制器,其可操作以響應于所述設備的至少一部分被通電而檢查所述存儲器單元的一部分以找出錯誤,且如果找到錯誤,那么將經校正數據重新編程到所述存儲器單元。
12.根據權利要求11所述的設備,其中非易失性存儲器陣列包括NAND快閃存儲器。
13.根據權利要求11所述的設備,其中所述控制器可進一步操作以響應于所述設備的所述至少一部分被通電而確定所述存儲器的一部分是否標記為要刷新,且如果所述控制器確定存儲器的所述部分標記為要刷新,那么刷新所述部分。
14.根據權利要求11所述的設備,其中所述控制器可操作以檢查所述存儲器單元的一部分以找出錯誤包括:所述控制器可操作以使用與從所述存儲器單元的所述部分讀取的用戶數據相關聯的錯誤校正碼數據來確定在所述所讀取用戶數據中是否存在錯誤。
15.根據權利要求11所述的設備,其中所述控制器可操作以將經校正數據重新編程包括:所述控制器可操作以在所述找到的錯誤超過錯誤閾值的情況下將經數據校正的數據重新編程到所述存儲器單元。
16.根據權利要求11所述的設備,其中所述控制器可進一步操作以在所述存儲器單元的操作期間檢查所述存儲器單元的額外部分以找出錯誤。
17.根據權利要求16所述的設備,其中所述控制器可操作以在操作期間檢查所述存儲器單元的額外部分以找出錯誤包括:所述控制器可操作以在操作期間響應于被讀取的頁的數目而檢查所述存儲器單元的額外部分以找出錯誤。
18.根據權利要求11所述的設備,其進一步包括識別所述存儲器的尚未被檢查以找出錯誤的塊的所存儲刷新塊指針。
19.根據權利要求11所述的設備,其中所述控制器可操作以將所述非易失性存儲器部分重新編程包括:所述控制器可進一步操作以存儲指示所述存儲器的所述部分要刷新的標記,拷貝存儲器的所述部分,將所述數據重新編程到所述存儲器,及在重新編程完成時移除指示存儲器的所述部分的所述所存儲標記。
20.根據權利要求11所述的設備,其中所述存儲器單元陣列包括多電平存儲器單元陣列。
21.一種控制器,其可操作以響應于所述控制器被通電而檢查存儲器的一部分以找出錯誤,且響應于在檢查所述存儲器的所述部分以找出錯誤時找到錯誤而刷新所述部分。
22.根據權利要求21所述的控制器,其中所述控制器可進一步操作以響應于通電而確定所述存儲器的一部分是否標記為要刷新,且如果所述存儲器的一部分被標記,那么刷新所述部分。
23.根據權利要求21所述的控制器,其中所述控制器可進一步操作以將錯誤校正碼應用于非易失性存儲器的所讀取部分以檢測所述錯誤的存在且從非易失性存儲器的所述部分移除所述錯誤。
24.根據權利要求21所述的控制器,其中所述控制器可進一步操作以將非易失性存儲器的所述部分標記為要刷新,拷貝非易失性存儲器的所述部分,校正在存儲器的所述部分中找到的所述錯誤,將經校正數據重新編程到所述存儲器,及取消標記存儲器的所述部分。
25.根據權利要求21所述的控制器,其中所述控制器可進一步操作以在所述存儲器可用于正常存取操作時作為后臺方法檢查所述存儲器以找出錯誤。
26.根據權利要求25所述的控制器,其中所述控制器可操作以基于被讀取的存儲器頁的數目作為后臺過程檢查所述非易失性存儲器裝置以找出錯誤。
27.根據權利要求21所述的控制器,其中所述控制器可操作以僅在所找到的錯誤超過錯誤閾值的情況下刷新所述非易失性存儲器的所述部分。
28.—種設備,其包括: 控制器,其可操作以響應于所述設備的至少一部分被通電而檢查存儲器的一部分以找出錯誤,且響應于在檢查所述存儲器的所述部分以找出錯誤時找到錯誤而刷新所述存儲器的所述部分。
29.根據權利要求28所述的設備,其進一步包括包含所述存儲器的存儲器裝置。
30.根據權利要求29所述的設備,其中所述存儲器裝置包括快閃存儲器卡。
31.根據權利要求28所述的設備,其中所述控制器可進一步操作以確定所述存儲器的一部分是否標記為要刷新,且響應于所述設備的所述至少一部分被通電而刷新所述存儲器的所述經標記部分。
32.根據權利要求28所述的設備,其中所述控制器可進一步操作以檢查所述存儲器的額外部分以找出錯誤,且在所述存儲器可用于正常操作時刷新具有錯誤的部分。
33.根據權利要求32所述的設備,其中所述控制器可進一步操作以基于被讀取的存儲器頁的數目檢查所述存儲器的額外部分以找出錯誤。
34.根據權利要求28所述的設備,其中所述控制器可進一步操作以將所述存儲器的所述部分標記為需要刷新,拷貝存儲器的所述部分的數據,及校正存儲器的所述部分中的任何可校正錯誤,將所述經校正數據重新編程到所述存儲器,以及將存儲器的所述部分取消標記為需要刷新。
35.根據權利要求28所述的設備,其中所述設備包括便攜式游戲裝置、智能電話、數碼相機、個人數字助理、固態快閃驅動器或計算機。
36.一種方法,其包括: 響應于存儲器裝置被通電而檢查所述存儲器裝置的存儲器的一部分以找出錯誤;及 當找到錯誤時,刷新存儲器的所述部分。
37.根據權利要求36所述的方法,其中檢查所述存儲器的一部分以找出錯誤包括:響應于將所述存儲器裝置通電而檢查識別所述存儲器的需要刷新的一部分的標記。
38.根據權利要求36所述的方法,其進一步包括在所述存儲器裝置的正常操作期間檢查所述存儲器的額外部分以找出錯誤。
39.根據權利要求36所述的方法,其進一步包括將識別將被檢查以找出讀取錯誤的存儲器塊的刷新塊指針存儲于所述存儲器裝置中,及將識別將被檢查以找出讀取錯誤的存儲器頁的刷新頁指針存儲于所述存儲器塊中。
40.—種方法,其包括: 響應于將存儲器裝置通電而讀取所述存儲器裝置的存儲器的經識別塊的數據; 確定存儲器的所述經識別塊的所述所讀取數據是否包含超過閾值的錯誤數目;及 如果所述錯誤數目超過所述閾值,那么將所述經識別塊標記為要刷新。
41.根據權利要求40所述的方法,其進一步包括在讀取所述經識別塊的數據之前,確定所述存儲器裝置的存儲器的塊是否已標記為要刷新,且如果塊已標記為要刷新,那么刷新所述已標記的塊。
42.根據權利要求41所述的方法,其中僅在沒有塊已標記為要刷新的情況下讀取所述經識別塊的所述數據。
43.根據權利要求41所述的方法,其中讀取所述經識別塊的所述數據進一步響應于刷新所述已標記的塊。
44.根據權利要求41所述的方法,其中確定存儲器的塊是否已標記為要刷新包括:檢查非易失性存儲器中的位置。
45.根據權利要求41所述的方法,其中確定存儲器的塊是否已標記為要刷新包括:檢查與存儲器的所述塊相關聯的旗標。
46.根據權利要求40所述的方法,其進一步包括響應于將所述經識別塊標記為要刷新而刷新所述經識別塊。
47.根據權利要求46所述的方法,其中刷新所述經識別塊包括:拷貝所述經識別塊的所述數據及將所述經識別塊的所述數據重新編程。
48.根據權利要求40所述的方法,其中確定存儲器的所述經識別塊的所述所讀取數據是否包含超過閾值的錯誤數目包括:計數從所述經識別塊讀取的每數據頁的錯誤數目。
49.根據權利要求40所述的方法,其中讀取所述存儲器裝置的存儲器的經識別塊的數據包括:響應于將所述存儲器裝置通電而查尋對經預識別塊的指針且接著讀取所述經識別塊的數據。
50.根據權利要求49所述的方法,其進一步包括響應于刷新由所述指針識別的塊而改變所述經識別塊。
51.根據權利要求40所述的方法,其中讀取所述存儲器裝置的存儲器的經識別塊的數據包括:讀取存儲器的單個經識別塊的數據。
52.根據權利要求40所述的方法,其中確定存儲器的所述經識別塊的所述所讀取數據是否包含超過閾值的錯誤數目包括:確定從所述經識別塊讀取的任一數據頁中的錯誤數目是否超過所述閾值。
53.根據權利要求46所述的方法,其中刷新所述經識別塊包括: 拷貝所述經識別塊的所述數據; 校正所述經拷貝數據中的可校正錯誤;及 將所述經校正數據重新編程。
54.一種方法,其包括: 確定存儲器頁讀 取的數目是否超過閾值; 如果存儲器頁讀取的所述數目超過所述閾值,那么讀取存儲于存儲器的塊的特定數目個存儲器頁中的數據;及 如果所述所讀取數據中的錯誤數目超過閾值,那么將存儲器的所述塊標記為要刷新。
55.根據權利要求54所述的方法,其中確定存儲器頁讀取的數目是否超過閾值包括: 響應于讀取存儲器的頁而使遞增計數器遞增;及 確定所述經遞增的遞增計數器的值是否超過特定值。
56.根據權利要求54所述的方法,其中確定存儲器頁讀取的數目是否超過閾值包括: 響應于讀取存儲器的頁而使遞減計數器遞減;及 確定所述經遞減的遞減計數器的值是否低于特定值。
57.根據權利要求54所述的方法,其中讀取存儲于存儲器的塊的特定數目個存儲器頁中的數據包括:讀取存儲于存儲器的經識別塊的特定數目個存儲器頁中的數據。
58.根據權利要求57所述的方法,其中讀取存儲于存儲器的經識別塊的特定數目個存儲器頁中的數據包括:讀取存儲于存儲器的單個經識別塊的特定數目個存儲器頁中的數據。
59.根據權利要求57所述的方法,其中讀取存儲于存儲器的經識別塊的特定數目個存儲器頁中的數據包括:讀取存儲于存儲器的由刷新塊指針識別的塊的特定數目個存儲器頁中的數據。
60.根據權利要求54所述的方法,其中將存儲器的所述塊標記為要刷新包括:如果所述所讀取數據的任一頁中的錯誤數目超過閾值,那么將存儲器的所述塊標記為要刷新。
【文檔編號】G11C16/02GK103843069SQ201280048444
【公開日】2014年6月4日 申請日期:2012年8月28日 優先權日:2011年8月31日
【發明者】格雷格·A·布羅杰特 申請人:美光科技公司