TW201342383A - 類比記憶體單元中之最佳化臨限搜尋 - Google Patents

類比記憶體單元中之最佳化臨限搜尋 Download PDF

Info

Publication number
TW201342383A
TW201342383A TW101150660A TW101150660A TW201342383A TW 201342383 A TW201342383 A TW 201342383A TW 101150660 A TW101150660 A TW 101150660A TW 101150660 A TW101150660 A TW 101150660A TW 201342383 A TW201342383 A TW 201342383A
Authority
TW
Taiwan
Prior art keywords
read
threshold
memory cells
group
result
Prior art date
Application number
TW101150660A
Other languages
English (en)
Other versions
TWI511146B (zh
Inventor
Micha Anholt
Naftali Sommer
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of TW201342383A publication Critical patent/TW201342383A/zh
Application granted granted Critical
Publication of TWI511146B publication Critical patent/TWI511146B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

一種方法包括將資料儲存於類比記憶體單元之一群組中。使用第一讀取臨限來讀取該群組中之該等記憶體單元以產生第一讀出結果,且使用第二讀取臨限來重新讀取該群組中之該等記憶體單元以產生第二讀出結果。定義第三讀取臨限,該等第三讀取臨限包括該等第一讀取臨限中至少一者及該等第二讀取臨限中至少一者。基於該等第一讀出結果及該等第二讀出結果來評估該等第一讀取臨限、該等第二讀取臨限及該等第三讀取臨限之讀出效能。基於該經評估讀出效能來選擇該等第一讀取臨限、該等第二讀取臨限或該等第三讀取臨限,且使用該等經選擇讀取臨限來執行資料恢復。

Description

類比記憶體單元中之最佳化臨限搜尋
本發明大體上係關於記憶體器件,且特別係關於用於設定用於讀取類比記憶體單元之臨限之方法及系統。
若干類型之記憶體器件(諸如,快閃記憶體)使用類比記憶體單元之陣列來儲存資料。每一類比記憶體單元保持諸如電荷或電壓的某一位準之給定物理量,該給定物理量表示儲存於該記憶體單元中之資料。此物理量之位準亦被稱作類比儲存值或類比值。舉例而言,在快閃記憶體中,每一類比記憶體單元保持某一量之電荷。可能類比值之範圍通常經劃分成若干區域,每一區域對應於表示一或多個資料位元值之一程式化狀態或程式化位準。藉由寫入對應於所要位元之標稱類比值而將資料寫入至類比記憶體單元。
通常被稱作單位階記憶體單元(SLC)器件之一些記憶體器件將單一資訊位元儲存於每一記憶體單元中,亦即,每一記憶體單元可經程式化以呈現兩個可能記憶體狀態。常常被稱作多位階記憶體單元(MLC)器件之較高密度器件儲存每記憶體單元兩個或兩個以上位元,亦即,可經程式化以呈現兩個以上可能記憶體狀態。
快閃記憶體器件係(例如)由Bez等人在以引用方式併入本文中之「Introduction to Flash Memory」(IEEE學報,2003年4月,第91卷,第4號,第489至502頁)中予以描述。多位階快閃記憶體單元及器件係(例如)由Eitan等人在 以引用方式併入本文中之「Multilevel Flash Cells and their Trade-Offs」(紐約,1996年IEEE國際電子器件會議(IEDM)學報,第169至172頁)中予以描述。該論文比較若干種類之多層級位階快閃記憶體單元,諸如,共同接地記憶體單元、DINOR記憶體單元、AND記憶體單元、NOR記憶體單元及NAND記憶體單元。
Eitan等人在以引用方式併入本文中之「Can NROM,a 2-bit,Trapping Storage NVM Cell,Give a Real Challenge to Floating Gate Cells?」(日本東京,1999年固態器件及材料(SSDM)國際會議學報,1999年9月21至24日,第522至524頁)中描述被稱為氮化物唯讀記憶體(NROM)的另一類型之類比記憶體單元。NROM記憶體單元亦係由Maayan等人在以引用方式併入本文中之「A 512 Mb NROM Flash Data Storage Memory with 8 MB/s Data Rate」(加利福尼亞舊金山,2002年IEEE國際固態電路會議(ISSCC 2002)學報,2002年2月3日至7日,第100至101頁)中予以描述。其他例示性類型之類比記憶體單元為浮動閘極(FG)記憶體單元、鐵電RAM(FRAM)記憶體單元、磁性RAM(MRAM)記憶體單元、電荷捕集快閃(CTF)記憶體單元及相變RAM(PRAM,亦被稱作相變記憶體-PCM)記憶體單元。FRAM記憶體單元、MRAM記憶體單元及PRAM記憶體單元係(例如)由Kim及Koh在以引用方式併入本文中之「Future Memory Technology including Emerging New Memories」(塞爾維亞尼斯及蒙特尼格羅,第24屆微電子學(MIEL)國 際會議學報,2004年5月16日至19日,第1卷,第377至384頁)中予以描述。
用於設定用於讀取類比記憶體單元之讀取臨限及其他讀取參數之各種技術在此項技術中為吾人所知。舉例而言,揭示內容以引用方式併入本文中之美國專利申請公開案2009/0199074描述一種用於操作包括類比記憶體單元之記憶體之方法。該方法包括用可由複數個方程式表示之錯誤校正碼(ECC)來編碼資料。藉由將各別輸入儲存值寫入至類比記憶體單元之群組中之記憶體單元而將經編碼資料儲存於該群組中。使用輸出儲存值之多個集合中每一集合之一或多個不同各別讀取參數而自群組中之記憶體單元讀取該等集合。判定方程式之數目,該等方程式係由輸出儲存值之各別集合滿足。以對所滿足方程式之各別數目作出回應的方式識別讀取參數之較佳設定。使用讀取參數之較佳設定來操作記憶體。
本文所描述之本發明之一實施例提供一種方法,該方法包括將資料儲存於類比記憶體單元之一群組中。使用第一讀取臨限來讀取該群組中之該等記憶體單元以產生第一讀出結果,且使用第二讀取臨限來重新讀取該群組中之該等記憶體單元以產生第二讀出結果。定義第三讀取臨限,該等第三讀取臨限包括該等第一讀取臨限中至少一者及該等第二讀取臨限中至少一者。基於該等第一讀出結果及該等第二讀出結果來評估該等第一讀取臨限、該等第二讀取臨 限及該等第三讀取臨限之讀出效能。基於該經評估讀出效能來選擇該等第一讀取臨限、該等第二讀取臨限或該等第三讀取臨限,且使用該等經選擇讀取臨限來執行資料恢復。
在一些實施例中,執行該資料恢復包含恢復儲存於該等記憶體單元之該群組中之該資料,或恢復儲存於該等記憶體單元之一不同群組中之該資料。在一實施例中,評估該讀出效能包括自該等第一讀出結果及該等第二讀出結果導出將藉由使用該等第三讀取臨限來讀取該群組中之該等記憶體單元而產生之第三讀出結果,及基於該等第三讀出結果來評定該讀出效能。
在一所揭示實施例中,導出該等第三讀出結果包括基於使用一或多個輔助讀取臨限進行之自該群組之讀出而將該群組中之該等記憶體單元劃分成第一子集及第二子集,及藉由選擇自該第一子集中之該等記憶體單元讀取之該等第一讀出結果及自該第二子集中之該等記憶體單元讀取之該等第二讀出結果來形成該等第三讀出結果。在一實施例中,該等輔助讀取臨限包括讀取臨限之該第一集合或該第二集合。
在另一實施例中,該經儲存資料係用一錯誤校正碼(ECC)予以編碼,且評估該讀出效能包括:將該群組中之該等記憶體單元劃分成第一子集及第二子集;基於自該第一子集中之該等記憶體單元讀取之該等第一讀出結果來計算該ECC之一第一部分校正子(partial syndrome),同時將 自該第二子集中之該等記憶體單元讀取之該等第一讀出結果設為空值;基於自該第二子集中之該等記憶體單元讀取之該等第二讀出結果來計算該ECC之一第二部分校正子,同時將自該第一子集中之該等記憶體單元讀取之該等第二讀出結果設為空值;藉由對該第一部分校正子及該第二部分校正子進行求和來計算該ECC之一第三校正子,該第三校正子對應於將藉由使用該等第三讀取臨限來讀取該群組中之該等記憶體單元而產生之第三讀出結果;及藉由比較遍及該等第一讀出結果而計算之一第一校正子、遍及該等第二讀出結果而計算之一第二校正子與該第三校正子來評估該讀出效能。在一實施例中,將該群組中之該等記憶體單元劃分成該第一子集及該第二子集包括基於使用一或多個輔助讀取臨限進行之自該群組之讀出來定義該第一子集及該第二子集。
在又一實施例中,該經儲存資料係用由同位檢查方程式之一集合定義之一ECC予以編碼,且評估該讀出效能包括演算由該等第一讀出結果、該等第二讀出結果及將藉由使用該等第三讀取臨限來讀取該群組中之該等記憶體單元而產生之第三讀出結果滿足之該等同位檢查方程式的一各別計數。在再一實施例中,該經儲存資料係用一ECC予以編碼,且評估該讀出效能包括基於該等第一讀取臨限、該等第二讀取臨限及該等第三讀取臨限來評估對解碼該ECC之一成功或失敗。
在一所揭示實施例中,該經儲存資料係用一ECC予以編 碼,且評估該讀出效能包括基於該等第一讀取臨限、該等第二讀取臨限及該等第三讀取臨限來評估解碼該ECC之一解碼程序之一過渡期結果。評估該過渡期結果可包括演算該ECC之一錯誤定位多項式之一秩。
在一實施例中,該ECC包括包含多個輔助ECC之一複合ECC,且評估該過渡期結果包括評估該等輔助ECC之僅一子集之一解碼結果。在另一實施例中,該等類比記憶體單元包括於一記憶體器件中,且讀取及重新讀取該等記憶體單元包括在該記憶體器件中接收及執行使用該等第一讀取臨限及該等第二讀取臨限兩者來讀取該等記憶體單元之一單一讀取命令。
根據本發明之一實施例,另外提供一種裝置,該裝置包括一記憶體及儲存電路。該記憶體包括多個類比記憶體單元。該儲存電路經組態以:將資料儲存於該等類比記憶體單元之一群組中;使用第一讀取臨限來讀取該群組中之該等記憶體單元以便產生第一讀出結果;使用第二讀取臨限來重新讀取該群組中之該等記憶體單元以便產生第二讀出結果;定義第三讀取臨限,該等第三讀取臨限包括該等第一讀取臨限中至少一者及該等第二讀取臨限中至少一者;基於該等第一讀出結果及該等第二讀出結果來評估該等第一讀取臨限、該等第二讀取臨限及該等第三讀取臨限之讀出效能;基於該經評估讀出效能來選擇該等第一讀取臨限、該等第二讀取臨限或該等第三讀取臨限;且使用該等經選擇讀取臨限來執行資料恢復。
根據本發明之一實施例,亦提供一種裝置,該裝置包括一介面及儲存電路。該介面經組態以與包括多個類比記憶體單元之一記憶體通信。該儲存電路經組態以:將資料儲存於該等類比記憶體單元之一群組中;使用第一讀取臨限來讀取該群組中之該等記憶體單元以便產生第一讀出結果;使用第二讀取臨限來重新讀取該群組中之該等記憶體單元以便產生第二讀出結果;定義第三讀取臨限,該等第三讀取臨限包括該等第一讀取臨限中至少一者及該等第二讀取臨限中至少一者;基於該等第一讀出結果及該等第二讀出結果來評估該等第一讀取臨限、該等第二讀取臨限及該等第三讀取臨限之讀出效能;基於該經評估讀出效能來選擇該等第一讀取臨限、該等第二讀取臨限或該等第三讀取臨限;且使用該等經選擇讀取臨限來執行資料恢復。
將自本發明之實施例之以下詳細描述連同圖式更全面地理解本發明。
概述
通常藉由將表示資料之各別類比儲存值寫入至類比記憶體單元中而將該資料儲存於該等記憶體單元中。類比儲存值之範圍通常被劃分成表示可能資料值之區域,其被稱作程式化位準。通常藉由比較類比記憶體單元之類比儲存值與定位於鄰近程式化位準之間的邊界處之某些讀取臨限來讀取類比記憶體單元。
在許多實務狀況下,記憶體單元之類比儲存值隨著時間 且自一記憶體單元群組至另一記憶體單元群組而變化。因此,重要的是以高準確度追蹤及定位讀取臨限。讀取臨限之準確定位對讀取錯誤之機率有顯著影響。
另一方面,讀取臨限之多個集合之評估可招致顯著延時及功率消耗,此係(例如)因為此任務涉及來自記憶體單元之大量次數讀取操作。當使用儲存每記憶體單元大數目個位元之高階MLC時,讀取臨限之評估變得特別複雜。
本文所描述之本發明之實施例提供用於評估讀取臨限之改良型方法及系統。所揭示技術評估讀取臨限之多個集合之讀出效能,同時使用此等集合之僅小子集來實際地讀取記憶體單元。在不實際地讀取記憶體單元之情況下,藉由計算來評估讀取臨限之剩餘集合之讀出效能。結果,由臨限評估程序招致之延時及功率消耗顯著地縮減。接著使用讀取臨限之最好執行集合來恢復經儲存資料。
在一些實施例中,使用讀取臨限之第一集合及第二集合來讀取類比記憶體單元之群組以分別產生第一讀出結果及第二讀出結果。藉由自第一集合選擇至少一讀取臨限且自第二集合選擇至少一讀取臨限來形成被稱作混合集合的讀取臨限之第三集合。基於第一讀出結果及第二讀出結果來評估第一集合、第二集合及第三集合之讀出效能,且選擇最好執行集合來解碼經儲存資料。或者,使用最好執行集合來解碼記憶體單元之另一群組中之資料。
詳言之,在不使用混合集合來讀取記憶體單元之情況下評估此集合之讀出效能。此類別之方案可用以評估選自小 數目個初始集合之讀取臨限之所有可能組合。
本文描述用於評估此混合集合之讀出效能之若干實例方案。在一實施例中,藉由在逐記憶體單元基礎上自第一讀出結果或第二讀出結果選擇對應讀出結果來再生混合集合之讀出結果(在不讀取記憶體單元之情況下藉由計算)。取決於使用一或多個輔助臨限之輔助讀取操作之各別結果,逐記憶體單元地作出自第一讀出結果抑或第二讀出結果選擇讀出結果之決策。
在一替代性實施例中,儲存於記憶體單元之群組中之資料係用諸如低密度同位檢查(LDPC)碼之錯誤校正碼(ECC)予以編碼。記憶體單元之群組基於輔助讀取操作之結果或其他合適準則被分割成若干子集。在使用讀取臨限之第一集合來讀取記憶體單元之後,針對記憶體單元之每一子集來演算ECC之各別部分校正子。亦針對使用讀取臨限之第二集合而獲得之讀出結果來重複該程序,以產生此集合之部分校正子。
藉由對部分校正子之適當組合進行求和(模2,亦即,XOR運算)來評估讀取臨限之第一集合、第二集合及第三(混合)集合之讀出效能。在一些實施例中,僅保留與讀取臨限之各種集合相關聯之部分校正子,且捨棄原始讀出結果。因此,由臨限評估程序所需要之記憶體空間顯著地縮減。
系統描述
圖1為根據本發明之一實施例的示意性地說明記憶體系 統20之方塊圖。系統20可用於各種主機系統及器件中,諸如,用於計算器件、蜂巢式電話或其他通信終端機、抽取式記憶體模組(有時被稱作「USB隨身碟」)、固態磁碟(SSD)、數位相機、音樂及其他媒體播放器及/或供儲存及擷取資料之任何其他系統或器件中。
系統20包含記憶體器件24,記憶體器件24將資料儲存於記憶體單元陣列28中。該記憶體陣列包含多個記憶體區塊34。每一記憶體區塊34包含多個類比記憶體單元32。在本專利申請案之內容背景中且在申請專利範圍中,術語「類比記憶體單元」用以描述保持諸如電壓或電荷之物理參數之連續類比值的任何記憶體單元。陣列28可包含任何種類之類比記憶體單元,諸如,NAND、NOR及電荷捕集快閃(CTF)快閃記憶體單元、相變RAM(PRAM,亦被稱作相變記憶體-PCM)記憶體單元、氮化物唯讀記憶體(NROM)記憶體單元、鐵電RAM(FRAM)記憶體單元、磁性RAM(MRAM)記憶體單元及/或動態RAM(DRAM)記憶體單元。
儲存於該等記憶體單元中之電荷位準及/或寫入至該等記憶體單元中及自該等記憶體單元中讀取之類比電壓或電流在本文中被集體地稱為類比值、類比儲存值或儲存值。舉例而言,該等儲存值可包含臨限電壓或任何其他合適種類之儲存值。系統20藉由程式化類比記憶體單元以呈現各別程式化狀態而將資料儲存於該等記憶體單元中,該等程式化狀態亦被稱作程式化位準。該等程式化狀態係選自可能狀態之有限集合,且每一程式化狀態對應於某一標稱儲 存值。舉例而言,3位元/記憶體單元MLC可經程式化以藉由將八個可能標稱儲存值中之一者寫入至該記憶體單元中來呈現八個可能程式化狀態中之一者。
記憶體器件24包含讀取/寫入(R/W)部件36,R/W部件36將供儲存於該記憶體器件中之資料轉換至類比儲存值且將該等類比儲存值寫入至記憶體單元32中。在替代性實施例中,R/W部件不執行轉換,而具備電壓樣本,亦即,具備供儲存於該等記憶體單元中之儲存值。當自陣列28中讀取資料時,R/W部件36將記憶體單元32之儲存值轉換成具有一或多個位元之解析度之數位樣本。資料通常係按被稱作頁之群組被寫入至記憶體單元及自記憶體單元被讀取。在一些實施例中,R/W部件可藉由將一或多個負擦除脈衝施加至記憶體單元32來擦除該等記憶體單元之群組。通常在整個記憶體區塊中執行擦除。
將資料儲存於記憶體器件24中及自記憶體器件24中讀取資料係由記憶體控制器40執行。該記憶體控制器包含用於與記憶體器件24通信之介面44,及進行各種記憶體管理功能之處理器48。記憶體控制器40與主機52通信,以用於接受供儲存於記憶體器件中之資料且用於輸出自記憶體器件擷取之資料。記憶體控制器40且尤其是處理器48可以硬體予以實施。或者,記憶體控制器可包含執行合適軟體之微處理器,或硬體元件與軟體元件之組合。
圖1之組態為一例示性系統組態,其係純粹地出於概念清晰性而被展示。亦可使用任何其他合適記憶體系統組 態。已出於清晰性而自該圖省略對於理解本發明之原理並非必要之元件,諸如,各種介面、定址電路、時序及定序電路,以及除錯電路。
儘管圖1之實例展示單一記憶體器件24,但系統20可包含由記憶體控制器40控制之多個記憶體器件。在圖1所示之例示性系統組態中,記憶體器件24及記憶體控制器40被實施為兩個分離積體電路(IC)。然而,在替代性實施例中,記憶體器件及記憶體控制器可整合於單一多晶片封裝(MCP)或系統單晶片(SoC)中之分離半導體晶粒上,且可由內部匯流排互連。再或者,記憶體控制器電路中之一些或全部可駐留於經安置有記憶體陣列之同一晶粒上。再或者,記憶體控制器40之功能性中之一些或全部可以軟體予以實施且由主機系統之處理器或其他元件進行。在一些實施例中,可在同一晶粒上或在同一器件封裝中之分離晶粒上製造主機52及記憶體控制器40。
在一些實施例中,記憶體控制器40包含一通用處理器,該通用處理器係以軟體予以程式化以進行本文所描述之功能。該軟體可(例如)經由網路而以電子形式下載至處理器,或者或另外,該軟體可提供於及/或儲存於諸如磁性、光學或電子記憶體之非暫時性有形媒體上。
在陣列28之一實例組態中,記憶體單元32係按多個列及行被配置,且每一記憶體單元包含一浮動閘極電晶體。每一列中之電晶體之閘極係由字線連接,且每一行中之電晶體之源極係由位元線連接。記憶體陣列通常被劃分成多個 頁,亦即,被同時地程式化及讀取之記憶體單元之群組。頁有時被再分成區段。在一些實施例中,每一頁包含該陣列之一整個列。在替代性實施例中,每一列(字線)可被劃分成兩個或兩個以上頁。舉例而言,在一些器件中,每一列被劃分成兩個頁,一個頁包含奇數次序記憶體單元且另一頁包含偶數次序記憶體單元。
通常,記憶體控制器40按頁單位來程式化資料,但擦除整個記憶體區塊34。通常,儘管未必,但一記憶體區塊為大約106個記憶體單元,而一頁為大約103至104個記憶體單元。
以下描述將描述用於選擇用於讀取儲存於記憶體單元32中之資料之讀取臨限的若干實例技術。所揭示技術可由記憶體控制器40及/或由R/W部件36進行。出於清晰性,以下描述提及在記憶體器件中之R/W部件36與記憶體控制器40中之處理器48之間的特定功能劃分。然而,通常,構成所揭示技術之各種任務可以任何合適方式在記憶體控制器與R/W電路之間予以劃分,或由此等元件中任一者執行。因此,在本專利申請案之內容背景中且在申請專利範圍中,記憶體控制器40及R/W電路36被聯合地稱作進行所揭示技術之儲存電路。
圖2為根據本發明之一實施例的示意性地說明用於選擇最佳讀取臨限之方案之圖解。在本實施例中,記憶體單元32包含四位階MLC,每一位階保持兩個資料位元。在替代性實施例中,所揭示技術可用於選擇用於讀取任何其他合 適類型之MLC(諸如,八位階MLC或十六位階MLC)之讀取臨限。
在圖2之實例中,通常沿著給定字線的記憶體單元之群組保持兩個資料頁-該群組中之記憶體單元之第一位元中被稱作最低有效位元(LSB)頁的頁,及該群組中之記憶體單元之第二位元中被稱作最高有效位元(MSB)頁的另一頁。
該圖展示群組中之記憶體單元中之臨限電壓(VTH)分佈。在此實例中,臨限電壓係以對應於四個各別程式化位準之四個分佈60A...60D而分佈。每一程式化位準表示兩個位元-LSB及MSB-之各別組合:
此映射使用格雷(Gray)編碼,在該編碼中,任何兩個鄰近程式化位準彼此相差僅單一位元值。此外,在此映射中,最低兩個程式化位準對應於LSB=「1」,且最高兩個程式化位準對應於LSB=「0」。
通常,R/W部件36藉由比較記憶體單元臨限電壓與LSB讀取臨限64來讀取LSB頁。臨限電壓低於臨限64之記憶體單元被視為保持LSB=「1」,且臨限電壓高於臨限64之記 憶體單元被視為保持LSB=「0」。
部件36通常藉由比較記憶體單元臨限電壓與一對MSB讀取臨限V1A及V2A或一對MSB讀取臨限V1B及V2B來讀取MSB頁。臨限電壓介於V1A與V2A之間(或介於V1B與V2B)之間的記憶體單元被視為保持MSB=「0」,且臨限電壓低於臨限V1A或高於臨限V2A(或者,低於臨限V1B或高於臨限V2B)的記憶體單元被視為保持LSB=「1」。
實務上,分佈60A...60D之形狀及位置可隨著時間且自一記憶體單元群組至另一記憶體單元群組而變化。讀取臨限之準確定位對讀取錯誤之機率有顯著影響,尤其是當程式化位準分佈接近地隔開或甚至部分地重疊時。由於分佈之間的邊界區域隨著時間且在記憶體單元群組之間變化,故通常應以自適應性方式調整讀取臨限位置。
以縮減次數讀取操作進行之讀取臨限搜尋
在圖2中可看出,每一MSB讀出操作涉及與一對讀取臨限之比較。為了找到MSB讀取臨限之最佳位置,通常有必要評估讀取臨限之多個候選對且選擇最好執行對。
遍及多對臨限之澈底搜尋可涉及感測記憶體單元臨限電壓且比較記憶體單元臨限電壓與每一對之臨限的大量次數讀出操作,且因此可招致顯著延時及功率消耗。在本文所描述之一些實施例中,記憶體控制器40評估讀取臨限之多個集合之讀出效能,同時執行來自記憶體單元32之僅小量次數讀取操作。結果,處理時間及功率消耗縮減。
在本實例中,記憶體控制器讀取群組中之記憶體單元達 兩次--使用讀取臨限對{V1A,V2A}且使用讀取臨限對{V1B,V2B}。基於此兩個讀出操作之結果,記憶體控制器在不使用讀取臨限之兩個額外對-{V1A,V2B}及{V1B,V2A}-來讀取記憶體單元的情況下評估此等讀取臨限對之讀出效能。因此,相比於{V1A,V2A}、{V1B,V2B}、{V1A,V2B}及{V1B,V2A}之習知讀出,讀取操作之次數縮減達一半。
供實際地讀取記憶體單元之讀取臨限之集合(在此實例中為對{V1A,V2A}及{V1B,V2B}在本文中被稱作臨限之顯式集合或被簡單地稱作顯式臨限。基於顯式臨限而計算的臨限之額外集合(在此實例中為對{V1A,V2B}及{V1B,V2A})在本文中被稱作讀取臨限之混合集合,或出於簡潔而被稱作混合臨限。
在評估包括顯式臨限及混合臨限之各種讀取臨限對之讀出效能之後,記憶體控制器選擇顯現最好讀出效能的讀取臨限之對。讀取臨限之經選擇對(顯式或混合)用於恢復儲存於記憶體單元之群組中之資料。
對於2位元/記憶體單元記憶體,所揭示技術可使用N個讀取操作之讀出結果(顯式臨限之N個集合)以估計讀取臨限組合之N2個對(混合臨限之N2個集合)之讀出效能。當評估較大數目個臨限對時,或當使用較高階MLC時,讀取操作之次數之縮減顯著地較高。
圖2之實例示範此技術之有效性。在此實例中,兩對顯式臨限({V1A,V2A}及{V1B,V2B})未最佳地定位於臨限電 壓分佈之間的邊界中。然而,混合對{V1B,V2A}被定位得好得多。即使從未使用混合對{V1B,V2A}來實際地讀取記憶體單元,記憶體控制器亦自顯式臨限對{V1A,V2A}及{V1B,V2B}之讀出結果評估混合對{V1B,V2A}之讀出效能。記憶體控制器接著能夠選擇混合對{V1B,V2A}以用於後續資料恢復。
在圖2之實例中,記憶體控制器40使用顯式對({V1A,V2A}及{V1B,V2B})之讀出結果以在不使用混合對({V1A,V2B}及{V1B,V2A})來實際地讀取記憶體單元的情況下人工地建構該等混合對之讀出結果。出於此目的,記憶體控制器使用一或多個輔助臨限來讀取記憶體單元。
在一些實施例中,LSB臨限64充當輔助臨限。輔助臨限64之讀出結果(「0」或「1」)在該圖中被表示為LSB_PAGE,且被展示為記憶體單元臨限電壓所屬之VTH間隔的函數。
顯式對{V1A,V2A}之MSB讀出結果在被表示為MSB_PAGE_A之後繼線上予以展示。被標記為MSB_PAGE_B之下一線展示顯式對{V1B,V2B}之讀出結果。應注意,在兩個間隔(V1A<VTH<V1B及V2A<VTH<V2B)中,在顯式對之讀出結果之間存在不一致。
在此實施例中,記憶體控制器使用輔助臨限64之讀出結果自讀取臨限之兩個顯式對之讀出結果建構混合對{V1B,V2A}之人工讀出結果。混合對{V1B,V2A}之人工讀出結 果在圖2之底部處予以展示,其被標記為MSB_PAGE_OPT。當顯式對之各別讀出結果一致(亦即,皆為「0」或皆為「1」)時,記憶體控制器將混合對之對應讀出結果設定至此值。當顯式對之各別讀出結果不一致時,取決於輔助臨限之對應讀出結果,記憶體控制器將混合對之對應讀出結果設定至此等值中之一者。
由於位元至程式化位準之映射(以上表1),LSB_PAGE之位元指示哪些記憶體單元具有屬於臨限64之左側的臨限電壓(LSB_PAGE=「1」)且哪些記憶體單元具有屬於臨限64之右側的臨限電壓(LSB_PAGE=「0」)。
因此,為了重新建立{V1B,V2A}之讀出結果,若對應LSB_PAGE讀出結果為「0」,則記憶體控制器將MSB_PAGE_OPT之讀出結果設定至MSB_PAGE_A之對應讀出結果(模仿與V2A之比較)。另一方面,若LSB_PAGE讀出結果為「1」,則記憶體控制器將MSB_PAGE_OPT之讀出結果設定至MSB_PAGE_B之對應讀出結果(模仿與V1B之比較)。
以上邏輯重新建構將藉由使用混合臨限{V1B,V2A}來讀取群組中之記憶體單元而產生之確切讀出結果(而非讀取雜訊之可能效應),而不使用此混合對來實際地讀取該等記憶體單元。可以相似方式建構第二混合對{V1A,V2B})之人工讀出結果。
應注意,此技術對LSB臨限64被定位之準確度不敏感,此係因為接近LSB臨限64之臨限電壓遠離MSB臨限中任一 者(且因此,該等臨限電壓之位元值在MSB_PAGE_A及MSB_PAGE_B中相同)。在該圖中可看出,臨限64未最佳地定位於程式化位準60B與程式化位準60C之間。然而,人工MSB_PAGE_OPT讀出結果之建構仍準確。
所揭示技術可以相似方式而與兩個以上讀取臨限之集合一起使用。舉例而言,考慮使用以下位元映射及讀取臨限組態來儲存LSB頁、中心有效位元(CSB)頁及MSB頁的3位元/記憶體單元型記憶體單元之群組:
在此實例中,使用被表示為{RV31,RV33,RV35,RV37}之四個MSB臨限之集合來讀取MSB頁。假定使用臨限之兩個 顯式集合{V1A,V2A,V3A,V4A}及{V1B,V2B,V3B,V4B}來讀取MSB頁達兩次。為了建構混合集合{V1A,V2B,V3A,V4B}之讀出結果,記憶體控制器可首先讀取LSB頁及CSB頁(其中如上文所描述,讀取臨限之低準確度足夠)。接著,針對每一記憶體單元來判定LSB及CSB(輔助臨限)之值,該值為相關MSB臨限(V1、V2、V3或V4)。
根據LSB位元及CSB位元之值,記憶體控制器自第一MSB讀取操作或第二MSB讀取操作選擇位元。舉例而言,若記憶體單元具有為「0」之LSB位元及CSB位元,則相關臨限為RV35→V3。由於記憶體控制器需要人工讀出結果以使用V3A,故記憶體控制器將選擇第一讀出之結果。若記憶體單元具有為「0」之LSB位元及為「1」之CSB位元,則相關臨限為RV37→V4。由於記憶體控制器需要人工讀出結果以使用V4B,故吾人將選擇第二讀出之結果。
在一些實施例中,各種顯式集合中之讀取臨限值係獨特的。然而,在替代性實施例中,多個顯式及/或混合集合可使用給定臨限值。
應注意,在許多實務狀況下,輔助讀取臨限無需額外讀取操作。舉例而言,在圖2之組態中,用於恢復LSB頁資料之正常LSB讀出可重新用作輔助臨限讀出。又,在3位元/記憶體單元實例中,正常LSB及CSB讀出操作可重新用作輔助臨限讀出。
圖3為根據本發明之一替代性實施例的示意性地說明用於選擇最佳讀取臨限之方案之圖解。在以上圖2之方案 中,記憶體控制器使用一或多個輔助臨限來產生混合臨限集合之人工讀出結果。另一方面,在圖3之方案中,讀取臨限之顯式集合中之一者充當輔助臨限。
在圖3之實例中,記憶體控制器40使用被表示為{V1_0,V2_0}、{V1A,V2A}及{V1B,V2B}的讀取臨限之三個顯式集合來讀取記憶體單元之群組,以便分別產生被表示為PAGE_0、PAGE_A及PAGE_B之三個頁。自此等三個讀取操作之讀出結果,記憶體控制器重新建立所有九個可能組合臨限對之人工讀出結果(亦即,產生六個混合臨限對之六個人工讀出結果)。
在此實施例中,記憶體控制器使用顯式對中之一者(在此實例中為{V1_0,V2_0})作為輔助臨限。舉例而言,若不可得到LSB頁,則可使用此技術。此技術之一個優點為:此技術消除針對使用輔助臨限之專用讀取操作的需要,且取而代之,重新使用顯式對中之一者之讀取結果。結果,可達成較好輸貫量。
以下描述假定顯式臨限當中之最低臨限經選擇以充當輔助臨限,亦即,V1_0V1A、V1_0V1B、V2_0V2A且V2_0V2B。然而,在替代性實施例中,顯式臨限當中之最高臨限可經選擇以充當輔助臨限。
在一實施例中,為了人工地產生混合對{V1B,V2A}之讀出結果(在該圖中被表示為PAGE_OPT),記憶體控制器應用以下邏輯:
▪對於PAGE_0=「0」之記憶體單元,將PAGE_OPT中之 對應讀出結果設定為PAGE_B之讀出結果。
▪對於PAGE_0=「1」之記憶體單元,將PAGE_OPT中之對應讀出結果設定為PAGE_A之讀出結果。
為了人工地產生混合來自{V1_0,V2_0}之臨限與來自{V1A,V2A}之臨限之混合對的讀出結果,記憶體控制器仍可使用PAGE_0({V1_0,V2_0}之讀出結果)以充當輔助臨限。因此,三個讀出操作{V1_0,V2_0}、{V1A,V2A}及{V1B,V2B}可用以產生讀出結果之總計九個集合。
作為又一實例,考慮兩個顯式讀取操作之狀況,在該狀況下,記憶體控制器產生四個可能組合。記憶體控制器可使用{V1_0,V2_0}及{V1A,V2A}來讀取記憶體單元之群組,且使用PAGE_0作為輔助臨限。在此狀況下,應對臨限進行排序(在不損失一般性的情況下),使得V1_0V1A且V2_0V2A。
圖4為根據本發明之一實施例的示意性地說明用於選擇最佳讀取臨限之方法之流程圖。該方法始於在第一讀出步驟70處記憶體控制器40使用第一顯式讀取臨限來讀取類比記憶體單元32之群組。在第二讀出步驟74處記憶體控制器使用第二顯式讀取臨限來重新讀取記憶體單元之同一群組。
在輔助讀出步驟78處記憶體控制器使用一或多個輔助臨限來讀取記憶體單元之群組。如上文所解釋,記憶體控制器可重新使用顯式讀出操作中之一者(例如,在步驟70或74處)以充當輔助讀出操作。
在混合結果產生步驟82處記憶體控制器使用顯式讀取臨限之讀出結果及輔助臨限之對應讀出結果以人工地產生讀取臨限之一或多個混合集合之讀出結果。臨限之每一混合集合包含選自第一讀取臨限之至少一臨限及選自第二讀取臨限之至少一臨限。
在使用多個讀出結果的情況下,在最佳臨限選擇步驟86處記憶體控制器40評估讀取臨限之各種顯式及混合集合之讀出效能。通常,記憶體控制器選擇具有最好讀出效能之讀取臨限之集合(顯式或混合),且使用此集合來恢復儲存於記憶體單元之群組中之資料。
在各種實施例中,記憶體控制器40可以不同方式評估讀出效能,且使用不同準則以選擇讀取臨限之最好執行集合。在一些實施例中,儲存於記憶體單元之群組中之資料係用由同位檢查方程式之集合定義之錯誤校正碼(ECC)予以編碼。舉例而言,ECC可包含低密度同位檢查(LDPC)碼,或任何其他合適類型之ECC。
在一些實施例中,對於讀出結果之每一集合,記憶體控制器演算所滿足同位檢查方程式之數目(計數)。產生具有最大計數個所滿足同位檢查方程式之讀出結果的讀取臨限之集合(顯式或混合)被視為最好執行集合。基於所滿足同位檢查方程式之數目來設定讀取臨限的額外態樣係在上文所引用之美國專利申請公開案2009/0199074中被提出。此準則亦被稱作「校正子總和」(校正子向量之權重,亦即,校正子等於1而非0之位置的總和)-最小化校正子總和 等效於找到具有最大數目個所滿足同位檢查方程式之讀出結果。
在替代性實施例中,記憶體控制器可嘗試解碼讀取臨限之每一集合(顯式或混合)之讀出結果(不管被讀取抑或被人工地再生)的ECC。對解碼讀出結果之給定集合之ECC的成功或失敗用作讀取臨限之對應集合之讀出效能的指示。在一實例流程中,記憶體控制器進行如下反覆程序:測試包括顯式集合及混合集合兩者的讀取臨限之額外集合,直至成功地解碼ECC。
在其他實施例中,記憶體控制器可開始解碼讀取臨限之每一集合(顯式或混合)之讀出結果(不管被讀取抑或被人工地再生)的ECC。當解碼讀取臨限之給定集合之ECC時,記憶體控制器可使用ECC解碼程序之某過渡期結果作為讀取臨限之對應集合之讀出效能的指示。
舉例而言,考慮經儲存資料係用博斯-喬赫里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)碼予以編碼的組態。在典型BCH解碼程序中,解碼器演算錯誤定位多項式(ELP)且接著藉由找到ELP之根來定位錯誤。早期在BCH解碼程序中可得到的ELP之秩指示碼字中之錯誤之數目。在此等實施例中,記憶體控制器可使用ELP之秩作為讀取臨限之讀出效能之指示。記憶體控制器可自此階段繼續進行。或者,記憶體控制器可繼續在不完成解碼程序的情況下評估讀取臨限之另一集合,即使先前讀取結果不能被解碼亦如此。
作為另一實例,ECC可包含渦輪乘積碼(TPC),在TPC中,資料係按矩陣被配置,且每一列及行係個別地用諸如漢明(Hamming)碼之某輔助ECC予以編碼。在此等實施例中,記憶體控制器可僅解碼矩陣之列及行之子集的輔助碼,且使用解碼結果作為讀取臨限之讀出效能之指示。
替代TPC,其他類型之ECC亦可被看作包含多個分量ECC之複合ECC。就實際的情形,所揭示技術可與任何此類ECC一起使用。舉例而言,可在兩個以上維度上(諸如,在三個維度上)定義乘積碼。在一實例三維碼中,資料係按k.k.k個位元之立方體被配置,且在每一維度上之每k個位元係使用一分量碼被編碼成n個位元以產生n.n.n位元碼字。二維乘積碼之另一可能一般化係除了編碼列及行以外亦將資料矩陣之對角線編碼為「虛擬」第三維度。作為又一實例,可藉由抑制傳輸或儲存資料位元之部分來縮短乘積碼。
在另一實施例中,所揭示技術可與一般化低密度同位檢查(G-LDPC)碼一起使用,G-LDPC碼亦可被看作由分量碼構成之複合ECC。G-LDPC碼可由坦那(Tanner)圖形描述。代替表示簡單同位檢查方程式,此圖形之每一檢查節點表示一ECC(諸如,漢明、BCH、RS或迴旋碼)。乘積碼可被看作G-LDPC之特殊狀況-舉例而言,在此狀況下之「一般化檢查節點」為漢明碼同位檢查矩陣。此G-LDPC碼之坦那圖形具有在一個側上之所有n2個位元節點,及在相對側上之2n個檢查節點。每一檢查節點對應於矩陣碼字之一列 或行。舉例而言,列1之所有位元可連接至一般化檢查節點,此意謂該等位元為有效漢明碼字。
所揭示技術可與G-LDPC碼一起使用:可基於一般化檢查節點之部分之解碼來執行參數估計。
再或者,記憶體控制器40可藉由估計相關記憶體單元之儲存值之累積分佈函數(CDF)來評估讀取臨限之給定集合之效能。舉例而言,記憶體控制器可對記憶體單元之給定群組中之「1」讀出結果進行計數,且選擇使此數目最接近預定參考數目之讀取臨限。用於讀取臨限調整的以CDF為基礎之方法之實例係(例如)在揭示內容以引用方式併入本文中之美國專利申請公開案2010/0091535中予以描述。
再或者,記憶體控制器40可評估讀取臨限之各種集合之讀出效能,且使用任何其他合適準則來選擇讀取臨限之最好執行集合。
當使用藉由校正子演算而解碼之ECC時,記憶體控制器可嘗試基於讀取臨限之某混合集合來解碼ECC,且使用校正子來演算錯誤向量。若成功,則記憶體控制器可重新產生讀取結果,且組合讀取結果與錯誤向量以便產生經錯誤校正讀取結果。
通常,即使資料可自讀取結果之先前集合被解碼,記憶體控制器亦可繼續評估讀取臨限之額外集合(顯式或混合),例如,以便找到讀取臨限之最好執行集合。在一實例實施例中,可使用未必最佳的讀取臨限之集合來讀取及解碼當前頁,且最佳讀取臨限將用於未來讀取操作。
在各種實施例中,一旦記憶體控制器已識別讀取臨限之最好執行集合,記憶體控制器就將嘗試基於使用此集合而獲得之讀出結果來解碼ECC。由記憶體控制器使用之解碼程序可包含硬解碼程序或軟解碼程序。在一些實施例中,軟解碼程序可涉及使用定位於最好執行集合附近之讀取臨限之額外讀取操作。然而,或者,軟解碼程序可使用僅最好執行臨限集合來操作硬輸入,例如,操作硬讀出結果。
在各種實施例中,一旦找到讀取臨限之最好執行集合,若存在此等臨限,則記憶體控制器就可自使用此等臨限而獲得之讀出結果恢復資料。或者,記憶體控制器可使用最好執行讀取臨限來讀取記憶體單元,且接著自讀出結果恢復資料。再或者,記憶體控制器可用定位於最好執行讀取臨限附近之讀取臨限來執行一或多個額外讀取操作,且使用額外讀取操作之讀出結果來恢復資料。
藉由組合來自不同讀取操作之部分ECC校正子進行之有效率讀取臨限搜尋
以下描述給出基於顯式讀取臨限之讀出結果來產生讀取臨限之混合集合之人工讀出結果的替代性技術。所揭示技術有時比以上圖2至圖4之技術較佳,此係(例如)因為所揭示技術無需使用各種顯式讀取臨限而獲得之讀出結果之完整集合的儲存。此記憶體空間縮減在高階MLC(例如,三或四位元/記憶體單元)中可尤其顯著,在高階MLC中,顯式讀取臨限之數目(且因此,讀出結果之數目)高。
所揭示技術適合供評估每一臨限集合之讀出效能之各種 準則使用。在一些實施例中,所揭示技術可與基於資料位元之線性函數之非線性處理的準則一起使用。舉例而言,上文所描述之校正子總和準則為此準則,此係因為ECC校正子為資料位元之線性函數,但校正子中之「1」值之數目為校正子之非線性函數。
以上段落中之術語「線性」指代以下情形:使用有限域代數來進行校正子演算,且在兩個向量之總和(遍及有限域)之校正子等於個別向量之校正子之總和的意義上,校正子在有限域中為線性。另一方面,使用自然數之代數來演算校正子總和,其中有限域之二進位符號被視作自然數(0或1)。在遍及兩個位元向量之總和(遍及有限域)而演算校正子總和不等效於使兩個個別向量之校正子總和相加的意義上,校正子總和為非線性。在適當時,本文中之加法及乘法之記數法可指代有限域代數或指代自然或實代數。
考慮具有四個程式化位準之2位元/記憶體單元記憶體單元之群組,諸如,以上圖2及圖3所示之群組,且假定記憶體控制器40使用MSB讀取臨限之各種顯式集合來讀取該群組。在一些實施例中,代替儲存顯式讀取臨限之每一集合之讀出結果的整個向量,記憶體控制器40計算及儲存僅兩個部分ECC校正子。
使H表示用於編碼儲存於記憶體單元之群組中之資料的ECC之同位檢查矩陣,且使x表示使用讀取臨限之某一顯式集合之MSB讀出結果的向量。x之完全校正子被定義為s=Hx。若x為有效ECC碼字,則s=Hx=0。否則,s之值指 示由x滿足之同位檢查方程式之數目。通常,校正子中之非零位元之數目指示未被滿足方程式之數目。
讀出結果x之兩個部分校正子被定義為s 1=Hx 1s 2=Hx 2,其中x 1表示LSB=「0」的記憶體單元之MSB值之向量,其中剩餘位元被設為空值;且x 2表示LSB=「1」的記憶體單元之MSB值之向量,其中剩餘位元被設為空值。可展示出,由於s=Hx=Hx 1+Hx 2,故部分校正子之總和等於完全校正子。
通常,對於使用讀取臨限之某一顯式集合而產生之讀出結果的每一向量x,記憶體控制器40將群組中之記憶體單元劃分成兩個子集-LSB=「0」之一個子集,及LSB=「1」之另一子集。記憶體控制器可藉由用諸如以上圖2中之臨限64的LSB臨限來讀取群組而劃分記憶體單元。或者,記憶體控制器可使用MSB讀取操作、根據以上圖3之方案或使用任何其他合適方法而將記憶體單元劃分成兩個子集。
在使用此劃分的情況下,記憶體控制器產生向量x 1x 2,且接著計算部分校正子s 1=Hx 1s 2=Hx2。在此階段,記憶體控制器可捨棄原始讀取結果(xx 1x 2)且保留僅部分校正子。通常針對讀取臨限之每一顯式集合來重複此程序。
記憶體控制器可使用經儲存部分校正子以評估讀取臨限之各種混合集合之完全校正子,該等混合集合係使用來自不同顯式集合之讀取臨限之組合而形成。
舉例而言,考慮兩個顯式MSB讀取操作:使用讀取臨限{V1A,V2A}之第一讀取操作,及使用讀取臨限{V1B,V2B}之第二讀取操作。對於第一讀取操作,記憶體控制器計算及儲存被表示為s1A及s2A之兩個部分校正子。對於第二讀取操作,記憶體控制器計算及儲存被表示為s1B及s2B之兩個部分校正子。記憶體控制器接著可藉由計算s1A+s2B來計算混合集合{V1A,V2B}之完全校正子。相似地,混合集合{V1B,V2A}之完全校正子係由s1B+s2A給出。
由於完全校正子(部分校正子之總和)指示所滿足同位檢查方程式之數目,故記憶體控制器可藉由計算與此等讀取臨限相關聯之各別完全校正子來評估讀取臨限之各種(顯式或混合)集合之讀出效能。可藉由對針對顯式讀取臨限而計算之適當部分校正子進行求和來演算此等完全校正子。通常,記憶體控制器選擇具有最小完全校正子總和之讀取臨限之(顯式或混合)集合。接著使用讀取臨限之所選擇集合來解碼經儲存資料。
儲存部分校正子而非原始讀出結果會提供記憶體空間之顯著節省。由於校正子長度係與ECC冗餘大小相當,故校正子長度通常為資料頁大小之大約3%至10%。
儘管針對2位元/記憶體單元記憶體中之MSB讀出之狀況而描述所揭示技術,但純粹地出於概念清晰性而作出此選擇。在替代性實施例中,此技術可與任何其他合適記憶體組態一起使用。舉例而言,對於3位元/記憶體單元記憶 體,針對讀取臨限之每一顯式集合來計算及儲存四個部分校正子。
圖5為根據本發明之一實施例的示意性地說明用於選擇最佳讀取臨限之方法之流程圖。儘管本文所描述之實施例提及部分校正子,但添加讀取操作直至滿足某一準則之技術不限於供部分校正子使用,且該技術相似地適用於以校正子總和為基礎之方法及上文所描述之其他方法。
該方法始於在命令輸入步驟90處記憶體控制器40自主機52接受MSB讀取命令。MSB讀取命令請求自記憶體單元之指定群組讀出MSB頁。
在LSB讀出步驟94處記憶體控制器自記憶體單元之指定群組讀取LSB頁。如上文所解釋,記憶體控制器使用LSB頁之讀出結果以將群組中之記憶體單元劃分成兩個子集。
在圖5之循環之每一遍次中,在MSB讀出步驟98處記憶體控制器40使用MSB讀取臨限之額外顯式集合來讀取記憶體單元之群組。記憶體控制器計算及儲存顯式讀取臨限之新集合之部分校正子。
在校正子總和最小化步驟102處記憶體控制器找到具有最小完全校正子總和(部分校正子之總和)之讀取臨限之(顯式或混合)集合。此集合為可使用迄今獲得之顯式讀出結果而達成之最好執行集合。
在準則檢查步驟106處記憶體控制器檢查具有迄今達成之最小校正子總和之完全校正子是否滿足預定準則。舉例而言,記憶體控制器可比較所達成之最小校正子總和與可 容許之上限,且驗證最好執行校正子之校正子總和是否小於此界限。
若(完全)校正子之最小校正子總和足夠小,則在輸出步驟110處記憶體控制器輸出讀取臨限之最好執行集合(具有最小校正子總和之關聯讀取臨限之集合),且該方法終止。
否則,在終止檢查步驟114處記憶體控制器檢查是否達成讀取操作之最大允許數目(顯式讀取臨限集合之最大允許數目)。若已達到讀取操作之最大允許數目,則在步驟110處記憶體控制器輸出讀取臨限之最好執行集合,且該方法終止。否則,該方法循環回至以上步驟98,在步驟98中,記憶體控制器用讀取臨限之額外顯式集合來重新讀取記憶體單元之群組。
在各種替代性實施例中,記憶體控制器可決定將使用多少顯式集合且應評估哪些混合集合(來自顯式集合之讀取臨限之組合)。未必需要測試所有可能組合。
所揭示技術不限於LDPC碼或任何特定類型之ECC。舉例而言,當經儲存資料係用使用校正子演算而解碼的其他類型之ECC(例如,博斯-喬赫里-霍昆格姆(BCH)、李德-所羅門(Reed-Solomon,RS)或漢明碼)予以編碼時,可使用本文所描述之方法及系統。
當進行本文所描述之方法中任一者時,記憶體控制器40可在來自記憶體單元之單一讀取命令中組合讀取臨限之多個顯式集之讀出。舉例而言,考慮3位元/記憶體單元記憶 體器件,該記憶體器件支援使用四個讀取臨限來讀取記憶體單元之群組的MSB讀取命令。記憶體控制器可使用單一MSB讀取命令來評估CSB讀取臨限之兩個顯式集合(每一集合需要兩個臨限)。使用多臨限命令之讀出之額外態樣係在美國專利8,068,360中被提出,該專利已讓與給本專利申請案之受讓人且其揭示內容係以引用方式併入本文中。
儘管本文所描述之實施例主要提出資料儲存應用及記憶體器件,但本文所描述之方法及系統亦可用於其他應用中,諸如,用於數位通信系統之接收器中。
因此應瞭解,上文所描述之實施例係作為實例被引用,且本發明不限於上文已特定地展示及描述之實施例。相反地,本發明之範疇包括上文所描述之各種特徵之組合及次組合,以及將由熟習此項技術者在閱讀前述描述後即想到且在先前技術中未揭示的本發明之變化及修改。以引用方式併入本專利申請案中之文件應被視為本申請案之整體部分,惟如下情形除外:在任何術語以與本說明書中明確地或隱含地作出之定義相衝突之方式定義於此等所併入文件中的程度上,應僅考慮本說明書中之定義。
20‧‧‧記憶體系統
24‧‧‧記憶體器件
28‧‧‧記憶體單元陣列
32‧‧‧類比記憶體單元
34‧‧‧記憶體區塊
36‧‧‧讀取/寫入(R/W)部件/讀取/寫入(R/W)電路
40‧‧‧記憶體控制器
44‧‧‧介面
48‧‧‧處理器
52‧‧‧主機
60A‧‧‧程式化位準之分佈
60B‧‧‧程式化位準之分佈
60C‧‧‧程式化位準之分佈
60D‧‧‧程式化位準之分佈
64‧‧‧最低有效位元(LSB)讀取臨限/輔助臨限
圖1為根據本發明之一實施例的示意性地說明記憶體系統之方塊圖;圖2及圖3為根據本發明之實施例的示意性地說明用於選擇最佳讀取臨限之方案之圖解;及圖4及圖5為根據本發明之實施例的示意性地說明用於選 擇最佳讀取臨限之方法之流程圖。
20‧‧‧記憶體系統
24‧‧‧記憶體器件
28‧‧‧記憶體單元陣列
32‧‧‧類比記憶體單元
34‧‧‧記憶體區塊
36‧‧‧讀取/寫入(R/W)部件/讀取/寫入(R/W)電路
40‧‧‧記憶體控制器
44‧‧‧介面
48‧‧‧處理器
52‧‧‧主機

Claims (20)

  1. 一種方法,其包含:將資料儲存於類比記憶體單元之一群組中;使用第一讀取臨限來讀取該群組中之該等記憶體單元以產生第一讀出結果;使用第二讀取臨限來重新讀取該群組中之該等記憶體單元以產生第二讀出結果;定義第三讀取臨限,該等第三讀取臨限包含該等第一讀取臨限中至少一者及該等第二讀取臨限中至少一者;基於該等第一讀出結果及該等第二讀出結果來評估該等第一讀取臨限、該等第二讀取臨限及該等第三讀取臨限之讀出效能;及基於該經評估讀出效能來選擇該等第一讀取臨限、該等第二讀取臨限或該等第三讀取臨限,且使用該等經選擇讀取臨限來執行資料恢復。
  2. 如請求項1之方法,其中執行該資料恢復包含以下各者中至少一者:恢復儲存於該等記憶體單元之該群組中之該資料;及恢復儲存於該等記憶體單元之一不同群組中之該資料。
  3. 如請求項1之方法,其中評估該讀出效能包含:自該等第一讀出結果及該等第二讀出結果導出將藉由使用該等第三讀取臨限來讀取該群組中之該等記憶體單元而產生之第三讀出結果;及基於該等第三讀出結果來評定該讀 出效能。
  4. 如請求項3之方法,其中導出該等第三讀出結果包含:基於使用一或多個輔助讀取臨限進行之自該群組之讀出而將該群組中之該等記憶體單元劃分成第一子集及第二子集;及藉由選擇自該第一子集中之該等記憶體單元讀取之該等第一讀出結果及自該第二子集中之該等記憶體單元讀取之該等第二讀出結果來形成該等第三讀出結果。
  5. 如請求項4之方法,其中該等輔助讀取臨限包含讀取臨限之該第一集合或該第二集合。
  6. 如請求項1之方法,其中該經儲存資料係用一錯誤校正碼(ECC)予以編碼,且其中評估該讀出效能包含:將該群組中之該等記憶體單元劃分成第一子集及第二子集;基於自該第一子集中之該等記憶體單元讀取之該等第一讀出結果來計算該ECC之一第一部分校正子,同時將自該第二子集中之該等記憶體單元讀取之該等第一讀出結果設為空值;基於自該第二子集中之該等記憶體單元讀取之該等第二讀出結果來計算該ECC之一第二部分校正子,同時將自該第一子集中之該等記憶體單元讀取之該等第二讀出結果設為空值;藉由對該第一部分校正子及該第二部分校正子進行求和來計算該ECC之一第三校正子,該第三校正子對應於 將藉由使用該等第三讀取臨限來讀取該群組中之該等記憶體單元而產生之第三讀出結果;及藉由比較遍及該等第一讀出結果而計算之一第一校正子、遍及該等第二讀出結果而計算之一第二校正子與該第三校正子來評估該讀出效能。
  7. 如請求項6之方法,其中將該群組中之該等記憶體單元劃分成該第一子集及該第二子集包含:基於使用一或多個輔助讀取臨限進行之自該群組之讀出來定義該第一子集及該第二子集。
  8. 如請求項1之方法,其中該經儲存資料係用由同位檢查方程式之一集合定義之一錯誤校正碼(ECC)予以編碼,且其中評估該讀出效能包含演算由該等第一讀出結果、該等第二讀出結果及將藉由使用該等第三讀取臨限來讀取該群組中之該等記憶體單元而產生之第三讀出結果滿足之該等同位檢查方程式的一各別計數。
  9. 如請求項1之方法,其中該經儲存資料係用一錯誤校正碼(ECC)予以編碼,且其中評估該讀出效能包含基於該等第一讀取臨限、該等第二讀取臨限及該等第三讀取臨限來評估對解碼該ECC之一成功或失敗。
  10. 如請求項1之方法,其中該經儲存資料係用一錯誤校正碼(ECC)予以編碼,且其中評估該讀出效能包含基於該等第一讀取臨限、該等第二讀取臨限及該等第三讀取臨限來評估解碼該ECC之一解碼程序之一過渡期結果。
  11. 一種裝置,其包含: 一記憶體,其包含多個類比記憶體單元;及儲存電路,其經組態以:將資料儲存於該等類比記憶體單元之一群組中;使用第一讀取臨限來讀取該群組中之該等記憶體單元以便產生第一讀出結果;使用第二讀取臨限來重新讀取該群組中之該等記憶體單元以便產生第二讀出結果;定義第三讀取臨限,該等第三讀取臨限包含該等第一讀取臨限中至少一者及該等第二讀取臨限中至少一者;基於該等第一讀出結果及該等第二讀出結果來評估該等第一讀取臨限、該等第二讀取臨限及該等第三讀取臨限之讀出效能;基於該經評估讀出效能來選擇該等第一讀取臨限、該等第二讀取臨限或該等第三讀取臨限;且使用該等經選擇讀取臨限來執行資料恢復。
  12. 如請求項11之裝置,其中該儲存電路經組態以藉由執行以下各項中至少一者來執行該資料恢復:恢復儲存於該等記憶體單元之該群組中之該資料;及恢復儲存於該等記憶體單元之一不同群組中之該資料。
  13. 如請求項11之裝置,其中該儲存電路經組態以自該等第一讀出結果及該等第二讀出結果導出將藉由使用該等第三讀取臨限來讀取該群組中之該等記憶體單元而產生之第三讀出結果,且基於該等第三讀出結果來評定該讀出效能。
  14. 如請求項13之裝置,其中該儲存電路經組態以基於使用一或多個輔助讀取臨限進行之自該群組之讀出而將該群 組中之該等記憶體單元劃分成第一子集及第二子集,且藉由選擇自該第一子集中之該等記憶體單元讀取之該等第一讀出結果及自該第二子集中之該等記憶體單元讀取之該等第二讀出結果來形成該等第三讀出結果。
  15. 如請求項14之裝置,其中該等輔助讀取臨限包含讀取臨限之該第一集合或該第二集合。
  16. 如請求項11之裝置,其中該經儲存資料係用一錯誤校正碼(ECC)予以編碼,且其中該儲存電路經組態以:將該群組中之該等記憶體單元劃分成第一子集及第二子集;基於自該第一子集中之該等記憶體單元讀取之該等第一讀出結果來計算該ECC之一第一部分校正子,同時將自該第二子集中之該等記憶體單元讀取之該等第一讀出結果設為空值;基於自該第二子集中之該等記憶體單元讀取之該等第二讀出結果來計算該ECC之一第二部分校正子,同時將自該第一子集中之該等記憶體單元讀取之該等第二讀出結果設為空值;藉由對該第一部分校正子及該第二部分校正子進行求和來計算該ECC之一第三校正子,該第三校正子對應於將藉由使用該等第三讀取臨限來讀取該群組中之該等記憶體單元而產生之第三讀出結果;且藉由比較遍及該等第一讀出結果而計算之一第一校正子、遍及該等第二讀出結果而計算之一第二校正子與該第三校正子來評估該讀出效能。
  17. 如請求項16之裝置,其中該儲存電路經組態以基於使用一或多個輔助讀取臨限進行之自該群組之讀出來定義該 第一子集及該第二子集。
  18. 如請求項11之裝置,其中該經儲存資料係用由同位檢查方程式之一集合定義之一錯誤校正碼(ECC)予以編碼,且其中該儲存電路經組態以藉由演算由該等第一讀出結果、該等第二讀出結果及將藉由使用該等第三讀取臨限來讀取該群組中之該等記憶體單元而產生之第三讀出結果滿足之該等同位檢查方程式的一各別計數來評估該讀出效能。
  19. 如請求項11之裝置,其中該經儲存資料係用一錯誤校正碼(ECC)予以編碼,且其中該儲存電路經組態以藉由基於該等第一讀取臨限、該等第二讀取臨限及該等第三讀取臨限來評估對解碼該ECC之一成功或失敗而評估該讀出效能。
  20. 如請求項11之裝置,其中該經儲存資料係用一錯誤校正碼(ECC)予以編碼,且其中該儲存電路經組態以藉由基於該等第一讀取臨限、該等第二讀取臨限及該等第三讀取臨限來評估解碼該ECC之一解碼程序之一過渡期結果而評估該讀出效能。
TW101150660A 2011-12-28 2012-12-27 用於記憶體單元中之最佳化臨限搜尋之方法及裝置 TWI511146B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161580673P 2011-12-28 2011-12-28
US13/595,571 US8773904B2 (en) 2011-12-28 2012-08-27 Optimized threshold search in analog memory cells

Publications (2)

Publication Number Publication Date
TW201342383A true TW201342383A (zh) 2013-10-16
TWI511146B TWI511146B (zh) 2015-12-01

Family

ID=47522270

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101150660A TWI511146B (zh) 2011-12-28 2012-12-27 用於記憶體單元中之最佳化臨限搜尋之方法及裝置

Country Status (8)

Country Link
US (1) US8773904B2 (zh)
EP (1) EP2610874A1 (zh)
JP (1) JP5620973B2 (zh)
KR (1) KR101428891B1 (zh)
CN (1) CN103186490B (zh)
BR (1) BR102012033346A2 (zh)
TW (1) TWI511146B (zh)
WO (1) WO2013101363A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8358542B2 (en) 2011-01-14 2013-01-22 Micron Technology, Inc. Methods, devices, and systems for adjusting sensing voltages in devices
US9530515B2 (en) * 2013-03-13 2016-12-27 Sandisk Technologies Llc Determining read voltages for reading memory
US9342402B1 (en) 2014-01-28 2016-05-17 Altera Corporation Memory interface with hybrid error detection circuitry for modular designs
US9911477B1 (en) 2014-04-18 2018-03-06 Altera Corporation Memory controller architecture with improved memory scheduling efficiency
WO2015163901A1 (en) * 2014-04-25 2015-10-29 Empire Technology Development Llc Storing data in storage devices
US9811263B1 (en) 2014-06-30 2017-11-07 Altera Corporation Memory controller architecture with improved memory scheduling efficiency
KR101590725B1 (ko) 2014-10-13 2016-02-02 포항공과대학교 산학협력단 멀티 레벨 상 변화 메모리의 데이터 코딩 장치 및 방법
WO2016108554A1 (en) 2014-12-30 2016-07-07 Lg Electronics Inc. Method and apparatus for performing switching control between uplink and sidelink in wireless communication system
CN107646178A (zh) * 2015-03-10 2018-01-30 科锐安特股份有限公司 用于管理数据帧传送的方法和设备
US9779818B2 (en) 2015-07-09 2017-10-03 Apple Inc. Adaptation of high-order read thresholds
US10296232B2 (en) * 2015-09-01 2019-05-21 Western Digital Technologies, Inc. Service level based control of storage systems
US9697075B2 (en) 2015-09-08 2017-07-04 Apple Inc. Efficient search for optimal read thresholds in flash memory
US10193574B1 (en) * 2016-05-19 2019-01-29 Apple Inc. Efficient syndrome calculation in processing a GLDPC code
JP6673021B2 (ja) * 2016-05-31 2020-03-25 富士通株式会社 メモリおよび情報処理装置
US10289484B2 (en) * 2016-09-16 2019-05-14 Micron Technology, Inc. Apparatuses and methods for generating probabilistic information with current integration sensing
US10388394B2 (en) 2017-07-25 2019-08-20 Apple Inc. Syndrome weight based evaluation of memory cells performance using multiple sense operations
KR20190113437A (ko) * 2018-03-28 2019-10-08 에스케이하이닉스 주식회사 메모리 시스템, 그것의 동작방법 및 메모리 시스템을 포함하는 컴퓨팅 시스템
US10908986B2 (en) 2018-04-02 2021-02-02 Sandisk Technologies Llc Multi-level recovery reads for memory
CN110797069B (zh) * 2018-08-01 2021-10-22 群联电子股份有限公司 电压调整方法、存储器控制电路单元以及存储器存储装置
JP2020107376A (ja) 2018-12-27 2020-07-09 キオクシア株式会社 メモリシステム
TWI701674B (zh) * 2019-12-30 2020-08-11 華邦電子股份有限公司 記憶體裝置及其資料讀取方法
CN114724602B (zh) * 2022-03-07 2023-02-10 北京得瑞领新科技有限公司 低密度校验码解码能力的验证方法、装置及计算机设备

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3976839B2 (ja) 1996-07-09 2007-09-19 株式会社ルネサステクノロジ 不揮発性メモリシステムおよび不揮発性半導体メモリ
US7697326B2 (en) * 2006-05-12 2010-04-13 Anobit Technologies Ltd. Reducing programming error in memory devices
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7821826B2 (en) * 2006-10-30 2010-10-26 Anobit Technologies, Ltd. Memory cell readout using successive approximation
US7941590B2 (en) * 2006-11-06 2011-05-10 Marvell World Trade Ltd. Adaptive read and write systems and methods for memory cells
US7900102B2 (en) 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US8369141B2 (en) 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US7782674B2 (en) * 2007-10-18 2010-08-24 Micron Technology, Inc. Sensing of memory cells in NAND flash
US8000141B1 (en) * 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
WO2009050703A2 (en) * 2007-10-19 2009-04-23 Anobit Technologies Data storage in analog memory cell arrays having erase failures
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
JP5349256B2 (ja) 2009-11-06 2013-11-20 株式会社東芝 メモリシステム
US8607124B2 (en) 2009-12-24 2013-12-10 Densbits Technologies Ltd. System and method for setting a flash memory cell read threshold
KR101618311B1 (ko) 2010-02-08 2016-05-04 삼성전자주식회사 플래시 메모리 장치 및 그것의 읽기 방법
TWI447733B (zh) 2010-04-14 2014-08-01 Phison Electronics Corp 計算補償電壓與調整門檻值電壓之方法及記憶體裝置與控制器

Also Published As

Publication number Publication date
EP2610874A1 (en) 2013-07-03
TWI511146B (zh) 2015-12-01
JP5620973B2 (ja) 2014-11-05
US20130170272A1 (en) 2013-07-04
KR101428891B1 (ko) 2014-08-08
US8773904B2 (en) 2014-07-08
JP2013145625A (ja) 2013-07-25
BR102012033346A2 (pt) 2013-10-08
WO2013101363A1 (en) 2013-07-04
CN103186490A (zh) 2013-07-03
KR20130077914A (ko) 2013-07-09
CN103186490B (zh) 2015-12-23

Similar Documents

Publication Publication Date Title
TWI511146B (zh) 用於記憶體單元中之最佳化臨限搜尋之方法及裝置
US8830746B2 (en) Optimized threshold search in analog memory cells using separator pages of the same type as read pages
US8869008B2 (en) Adaptation of analog memory cell read thresholds using partial ECC syndromes
US9136879B2 (en) Error correction coding over multiple memory pages
US8880783B2 (en) Differential vector storage for non-volatile memory
US8713330B1 (en) Data scrambling in memory devices
US8694854B1 (en) Read threshold setting based on soft readout statistics
KR101674339B1 (ko) 분류 코드를 사용한 소프트 데이터의 결정
US20190035485A1 (en) Syndrome Weight Based Evaluation of Memory Cells Performance Using Multiple Sense Operations
US9136015B2 (en) Threshold adjustment using data value balancing in analog memory device
US8839075B2 (en) Interference-aware assignment of programming levels in analog memory cells
US20140112077A1 (en) Snr estimation in analog memory cells
US9159407B2 (en) Soft readout from analog memory cells in the presence of read threshold errors
US10998920B1 (en) Overcoming saturated syndrome condition in estimating number of readout errors
US9021334B2 (en) Calculation of analog memory cell readout parameters using code words stored over multiple memory dies
US10635524B1 (en) Soft-decision input generation for data storage systems
Liu et al. Shaping codes for structured data
US11914887B2 (en) Storage device and data accessing method using multi-level cell
US11621048B2 (en) Positioning read thresholds in a nonvolatile memory based on successful decoding
US11874736B2 (en) Calculating soft metrics depending on threshold voltages of memory cells in multiple neighbor word lines
US20240006014A1 (en) Readout from memory cells subjected to perturbations in threshold voltage distributions

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees