專利名稱:閃存的統計跟蹤的制作方法
閃存的統計跟蹤相關申請的交叉引用本申請要求2008年6月3日提交的美國臨時申請No. 61/058,326的優先權。本申請與下述申請相關2006年5月4日提交的美國臨時申請No. 60/797,591; 2006年11月6日提交的美國臨時申請No. 60/864,468; 2007 年4月5日提交的美國臨時申請No. 60/910,325; 2007年4月20日提交的 美國申請No. 11/738,263; 2008年3月26日提交的美國申請No. 12/055,470; 2008年8月14日提交的美國申請No. 12/191,616;以及2009 年1月7日提交的美國申請No. 12/350,068。上述申請的公開通過引用全部結合于此。技術領域本公開涉及半導體存儲器,更具體而言涉及統計性地跟蹤存儲單元 (memorycell)的閾值分布的漂移。
背景技術:
這里提供的背景技術描述僅用于概括給出本公開的上下文。在本背景 技術部分中描述的當前署名的發明人的工作以及該描述的不能被當作提交 時的現有技術的一些方面不能明示或暗示地被認為是本公開的現有技術。存儲器集成電路(IC)包括存儲陣列。存儲陣列包括布置成行和列的 存儲單元。存儲單元可包括易失性存儲器或非易失性存儲器的單元。易失 性存儲器在存儲單元掉電時會丟失存儲單元中存儲的數據。非易失性存儲 器在存儲單元掉電時仍保持存儲單元中存儲的數據。存儲陣列的行和列中的存儲單元是由選擇行的字線(WL)和選擇列 的位線(BL)來尋址的。存儲器IC包括WL和BL譯碼器,WL和BL譯碼器在讀取/寫入(R/W)和擦除/編程(EP)操作期間分別選擇WL和 BL。現在參考圖1,存儲器IC IO包括存儲陣列12、 WL譯碼器16、 BL譯 碼器18、以及控制模塊19。存儲陣列12包括如圖所示布置成行和列的存 儲單元14。依據在R/W和EP操作期間選擇的存儲單元14的地址,WL 譯碼器16和BL譯碼器18分別選擇WL和BL。控制模塊19接收來自主機(未示出)的命令(例如,讀取、寫入、 擦除、編程,等等)。控制模塊19讀取所選存儲單元14中的數據和向其 中寫入數據。此外,當存儲單元14包括諸如閃存之類的非易失性存儲器 的單元時,控制模塊19對所選存儲單元14進行擦除和編程。僅作為示例,存儲單元14可包括NAND或NOR閃存的單元。每個存 儲單元14可被編碼為存儲N個二進制數字(比特)的信息,其中N是大 于或等于1的整數。因此,每個存儲單元14可具有2W種狀態。為了在每 個單元中存儲N個比特,每個存儲單元14可包括具有2W個可編程閾值電 壓(以下稱之為閾值電壓)的晶體管。晶體管的2W個閾值電壓分別表示存 儲單元14的2W種狀態。現在參考圖2,存儲單元14-i可包括具有閾值電壓Vt的晶體管50。 晶體管50可包括浮動柵極G (以下稱為柵極G)、源極S和漏極D。在寫 入操作期間存儲在柵極G中的電荷的量決定了閾值電壓Vt的信和存儲単 元14-i的狀態。僅作為示例,依據柵極G中存儲的電荷的量,晶體管50可具有兩個 可編程的閾值電壓Vth和VT2。當柵極G中存儲的電荷量為Q1時,晶體管 50的閾值電壓是Vn。當柵極G中存儲的電荷量是Q2時,晶體管50的閾 值電壓是Vt2。依據柵極G中存儲的電荷量,具有大于或等于Vt,或VT2 的值的柵極電壓(即,VGS)可導通晶體管50 (即,生成預定的漏極電 流)。存儲單元14的狀態(即,存儲單元14中存儲的數據)是通過測量晶 體管50的閾值電壓VT來讀取的。閾值電壓VT是通過向柵極G施加柵極 電壓并且感測漏極電流來測量的。漏極電流是通過跨晶體管50的源極S6和漏極D施加小電壓來感測的。當柵極電壓小于閾值電壓Vt吋,晶體管50關斷,并且漏極電流較低(約為零)。但是,當柵極電壓大于或等于閾值電壓Vt吋,晶體管50導通,并且漏極電流變高(即,等于與vt相對應的預定漏極電流)。生成高漏極電流的柵極電壓的值表示晶體管50的閾值電壓VT。通常,每次對存儲陣列的一塊或一頁中的存儲單元的狀態進行感測。 將該塊中的存儲單元的晶體管的柵極連接到WL。選擇WL,并且向WL 施加電壓。通過在WL上逐步施加(2N- 1)個電壓并且確定晶體管的漏 極電流首次超過預定的(預編程的)值時晶體管的閾值電壓,來感測N比 特存儲單元的狀態。現在參考圖3A和3B,如下測量晶體管50的閾值電壓。僅作為示 例,晶體管50可具有四個閾值電壓Vt,至Vt4中的一個,其中,Vt1<Vt2 < VT3 < VT4。因此,存儲單元14-i可具有四種狀態00、 01、 10和11中的 一種。在圖3A中,控制模塊19包括電壓生成器20和電流感測放大器22。 電壓生成器20和電流感測放大器22可被統稱為讀取模塊。電流感測放大 器的數目等于BL的數目。例如,當IC IO包括B個BL時,電流感測放大 器22包括分別用于B個BL的B個電流感測放大器,其中B是大于1的 整數。在圖3B中,當要確定存儲單元的狀態時,WL譯碼器16選擇包括存 儲單元14-1、 14-2、…、14-i、…、14誦n (統稱為存儲單元14)的WL。 存儲單元14中的每一個包括類似于晶體管50的晶體管。晶體管被示為在 柵極中存儲電荷的電容C。當讀取操作開始時,電壓生成器20向WL譯碼器16提供電壓(例 如,階梯狀電壓)。WL譯碼器16向所選的WL輸入該電壓。因此,該電 壓被施加到所選WL的晶體管的柵極。電流感測放大器22對于每個BL包括一個電流感測放大器。例如,電 流感測放大器22-i與位線BL-i通信,并且感測流經存儲單元14-i的晶體 管50的漏極電流。電流感測放大器22-i通過跨晶體管50的源極和漏極施加小電壓來感測漏極電流。每個電流感測放大器感測流經存儲單元14的晶體管中的相應一個的 漏極電流。控制模塊19基于相應的電流感測放大器22感測到的漏極電流 來測量晶體管的閾值電壓。發明內容一種系統包括讀取模塊、統計數據生成模塊和存儲模塊。讀取模塊讀 取非易失性存儲單元的電荷級別并且生成讀取信號。統計數據生成模塊基 于讀取信號生成統計數據。存儲模塊存儲統計數據。讀取模塊基于非易失 性存儲單元的電荷級別和統計數據來生成讀取信號。在其他特征中,該系統還包括更新模塊,該更新模塊基于讀取信號來 更新存儲模塊中存儲的統計數據。統計數據包括非易失性存儲單元的每個 電荷級別分布的均值、檢測閾值、標準偏差和方差中的至少一種。在其他特征中,該系統還包括更新模塊,該更新模塊基于讀取操作期 間檢測到的讀取差錯的數目和非易失性存儲單元的編程操作的數目中的至 少一種來有條件地更新存儲模塊中存儲的統計數據。在其他特征中,存儲模塊存儲用于對非易失性存儲單元編程的電荷級 別的平均值,并且該系統還包括更新模塊,該更新模塊基于統計數據來有 條件地更新平均值。在其他特征中,該系統還包括最小均方(LMS)模塊,該最小均方模 塊用于基于在讀取操作期間從非易失性存儲單元接收到的信號來生成統計 數據。在其他特征中,統計數據生成模塊包括檢測模塊、信號重構模塊、延 遲緩沖器、以及差異模塊。檢測模塊基于讀取信號來生成數據。信號重構 模塊基于該數據來生成重構信號。延遲緩沖器緩沖讀取信號并且輸出延遲 的讀取信號。差異模塊生成重構信號和延遲的讀取信號之間的差異。在其他特征中, 一種存儲器集成電路(IC)包括該系統,并且還包括 一存儲陣列,該存儲陣列包括所述非易失性存儲單元。在其他特征中,該系統還包括統計數據處理模塊,該統計數據處理模塊利用維特比檢測和迭代解碼中的至少一種來對存儲模塊中存儲的統計數據進行處理。
在其他特征中, 一種方法包括讀取非易失性存儲單元;基于讀取來生成統計數據;存儲統計數據;以及在非易失性存儲單元被讀取時基于統計數據來生成讀取信號。
在其他特征中,該方法還包括基于讀取信號生成非易失性存儲單元的每個電荷級別分布的均值、檢測閾值、標準偏差和方差中的至少一種。該方法還包括基于讀取操作期間檢測到的讀取差錯的數目和非易失性存儲單元的編程操作的數目中的至少一種來有條件地更新統計數據。
在其他特征中,該方法還包括存儲用于對非易失性存儲單元編程的電荷級別的平均值;通過基于統計數據有條件地更新平均值來生成更新后的平均值;以及利用更新后的平均值來對非易失性存儲單元編程。
在其他特征中,該方法還包括利用最小均方(LMS)模塊來基于在讀取操作期間從非易失性存儲單元接收到的信號生成統計數據。
在其他特征中,該方法還包括在非易失性存儲單元的讀取操作期間更新統計數據。
在其他特征中,該方法還包括通過以下步驟來生成統計數據基于讀取信號來生成數據;基于數據來生成重構信號;緩沖讀取信號;輸出延遲的讀取信號;以及生成重構信號和延遲的讀取信號之間的差異。
在其他特征中,該方法還包括利用維特比檢測和迭代解碼中的至少一種來對統計數據進行處理。
在其他特征中,上述的系統和方法是通過由一個或多個處理器執行的計算機程序來實現的。該計算機程序可駐留在計算機可讀介質上,所述計算機可讀介質例如但不限于存儲器、非易失性數據存儲裝置、和/或其他適當的有形存儲介質。該系統和方法也可用硬件實現為狀態機。
從詳細描述、權利要求和附圖中,將清楚看出本公開的其他應用領域。詳細描述和具體示例僅意圖用于示例目的,而不意圖限制本公開的范圍。
從詳細描述和附圖中可以更充分地理解本公開,附圖中
圖l是存儲器集成電路(IC)的功能框圖2是多級存儲單元的示意圖3A和3B是圖1的存儲器IC的功能框圖4示出了 2比特存儲單元的電荷級別分布;
圖5示出了存儲單元的循環而導致的圖4的級別分布的漂移;
圖6A示出了由于存儲單元的循環而導致的平均閾值電壓的值的漂
移;
圖6B示出了由于存儲單元的循環而導致的檢測閾值的值的漂移;圖7.示出了存儲單元的3級電荷分布;圖8示出了存儲單元的4級電荷分布;
圖9是生成、存儲并更新存儲器IC的多級存儲單元的統計數據的控制模塊的功能框圖10是圖9的控制模塊所利用的示例性統計數據生成模塊的功能框
圖11是圖9的控制模塊所利用的示例性查找表;
圖12是用于生成、存儲和更新存儲器IC的多級存儲單元的統計數據的示例性方法;
圖13是用于跟蹤存儲單元和生成存儲器IC的多級存儲單元的統計數據的示例性方法;
圖14是包括統計數據處理模塊的存儲器集成電路(IC)的功能框圖;以及
圖15是包括存儲器集成電路(IC)和統計數據處理模塊的計算設備的功能框圖。
具體實施例方式
下面的描述本質上僅僅是示例性的,并且決不是意圖限制本公開、其應用或使用。為了清楚起見,在附圖中將使用相同的標號來標識類似的元
10件。這里所用的短語"A、 B和C中的至少一個"應當解釋為指使用非排
他性邏輯"或"的邏輯(A或B或C)。應當理解, 一種方法內的步驟可以按不同順序執行,而不改變本公開的原理。
這里所用的術語"模塊"指專用集成電路(ASIC)、電子電路、執行一個或多個軟件或固件程序的處理器(共享的、專用的或群組的)和/或存儲器(共享的、專用的或群組的)、組合邏輯電路和/或提供所述功能的其他合適的組件。
通過存儲不同量的電荷來存儲數據的非易失性存儲單元的狀態可通過測量存儲單元的閾值電壓和/或漏極電流并將閾值電壓和/或漏極電流與預定閾值相比較來感測。以下將閾值電壓和/或漏極電流統稱為從存儲單元感測的讀取信號、讀回信號或讀出信號。
例如,閃存單元通過在晶體管的一個被稱為浮動柵極的隔離區域中陷入顆粒量的電荷(granulized amounts of charge)來存f諸數據。通常,通過向晶體管施加讀取電壓隨后估計數據讀出電流(該讀出電流是由存儲單元中陷入的電荷的量決定的),來從存儲單元中取出數據。
存儲單元可以每單元存儲一個或多個比特,并且可分別被稱為單級存儲單元或多級存儲單元。單級存儲單元可存儲一比特的信息。例如,該比特在存儲單元中存儲有電荷時可以是邏輯0,并且在存儲單元中沒有存儲電荷時可以是邏輯l。
另一方面,多級存儲單元可通過存儲不同量的電荷或電荷級別來存儲多于一比特的信息。例如,假定Q是多級存儲單元中能夠陷入的電荷的最大量。通過存儲O到Q之間的顆粒量的電荷,可以在這種存儲單元中存儲多于一比特的信息。例如,通過陷入四個電荷0級、Q/3、 2Q/3、 Q中的任何一種,可以在一個多級存儲單元中存儲兩個比特的信息。這種陷入電荷的過程可被稱為編程。這些不同級別的被捕捉電荷轉化成存儲單元的不同閾值電壓。存儲單元中存儲的信息可通過估計數據存儲單元中存儲的電荷的量來取出。
一般來說,利用期望量的電荷精確地對多級存儲單元編程可能是很困難的。實際編程的電荷量大致遵循以期望電荷級別為中心的高斯分布。該分布的統計方差(以下稱為方差)可基于所使用的編程方法和存儲單元的物理屬性來確定。因此,存儲單元的閾值電壓分布也是高斯的。
現在參考圖4,其中示出了 2比特存儲單元的示例性閾值電壓分布(以下稱為級別分布)。該分布包括與存儲單元中可存儲的電荷的四個不同級別相關聯的四個級別。每個級別具有一個均值和一個方差。
每個級別的均值決定了在寫入操作期間為了將存儲單元編程到相應的電荷級別而可在存儲單元中陷入的電荷的量的平均值。換言之,每個級別的均值決定了在寫入操作期間為了在存儲單元中陷入電荷并將存儲單元編程到相應的電荷級別而可施加到存儲單元的編程電壓的平均值。
此外,四個電荷級別(0級、l級、2級和3級)的交點限定了在讀取操作期間可用于檢測存儲單元中存儲的數據的三個檢測閾值(tl、 t2和t3)。三個檢測閾值(tl、 t2和t3)位于兩個相鄰級別分布的曲線相交之處。
一般來說,為了從多級存儲單元讀取數據和向多級存儲單元寫入數據,應當知道兩件事多級存儲單元的檢測閾值和級別分布的均值。具體而言,為了從存儲單元讀取數據應當知道檢測閾值(例如,tl、 t2和t3),為了向存儲單元寫入數據應當知道級別分布的均值(例如,ml、m2、 m3和m4)。詞語"均值"和"平均值"在下文中可互換使用,并且是同義的。
在多級存儲單元的讀取操作期間應當知道檢測閾值,以判定存儲單元中存儲的電荷是處于0級、l級、2級還是3級。另一方面,在多級存儲單元的寫入操作期間應當知曉均值,以準確地鎖定將要被編程到存儲單元中的電荷的量。
例如,在讀取操作期間,為了判定多級存儲單元中存儲的總電荷是否處于0級,應當知道第一檢測閾值(tl)的值。通過知道tl的值,就可以判定存儲單元中存儲的電荷(或者沒有存儲,因為0級可能是零電荷)是否小于tl,以判定存儲的電荷是否處于0級。類似地,為了判定存儲單元中存儲的電荷是否處于1級,可以判定存儲單元中存儲的電荷是否在tl和t2之間,等等。另一方面,在寫入操作期間,為了鎖定正確量的電荷來給多級存儲單元編程,應當知道級別分布的均值。例如,為了在存儲單元中存儲2級量
的電荷,應當知道第二平均值(ml)來為存儲單元適當地編程。通過鎖定將要存儲在存儲單元中的電荷的ml量,可以使寫入差錯達到最低限度,因為ml位于高斯曲線的頂部。
現在參考圖5,諸如多級閃存單元之類的存儲單元在反復的讀取、寫入、擦除和/或編程操作(統稱為循環)之后,可能經歷保持力損失(retention loss)。例如,存儲單元的浮動柵極周圍的氧化物在反復的循環之后可能退化。因此,級別分布的均值和方差在循環之后可能改變或漂移,如虛線所示。此外,雖然沒有示出,但檢測閾值在循環之后可能改變或漂移。下面,術語"漂移"將用于描述由于循環導致的級別分布的變化。
因此,在循環之后,利用來自循環之前的初始平均值寫入的數據可能是不準確地,除非針對由循環導致的漂移對初始平均值進行了調整。此外,在循環之后,利用來自循環之前的初始檢測閾值讀取的數據可能是不正確,除非針對由循環導致的漂移對初始檢測閾值進行了調整。
為了考慮到由循環導致的漂移并且使循環之后讀取操作和寫入操作期間的差錯達到最低限度,控制存儲單元的R/W和EP操作的存儲器控制系統可跟蹤由于循環導致的級別分布的改變。此外,存儲器控制系統可適應性地調整R/W和EP過程以減輕反復循環的有害影響。
例如,存儲器控制系統可生成估計的均值和檢測閾值,來分別幫助向多級存儲單元中寫入數據和從多級存儲單元中讀取數據。在一些實現方式中,存儲器控制系統可通過對被稱為導引單元(pilot cell)的多級存儲單元的子集提供的信號樣本進行處理,來生成估計的均值和檢測閾值。
通常,在導引單元上模仿對存儲用戶數據的多級存儲單元執行的操作。因此,導引單元經歷了與存儲用戶數據的存儲單元所經歷的劣化相同的由于循環導致的劣化。由于導引單元中存儲的數據可以預先知曉,因此導引單元所提供的信號樣本可用于生成估計的均值和檢測閾值。
基于估計的均值和檢測閾值的值,可為一個存儲單元或一組存儲單元生成最優或近最優的均值和檢測閾值的值。然后可將最優的或近最優的均值和檢測閾值的值存儲在查找表(LUT)中。在隨后的寫入操作和讀取操作期間使用最優的或近最優的均值和檢測閾值的值可以使由于循環導致的差錯達到最低限度。
一般來說,估計的均值和檢測閾值的準確性與用于估計數據均值和檢測閾值的導引單元的數目成正比。換言之,導引單元的數目越大,估計數據的準確度就越高。但是,使用大量的導引單元會減少可用來存儲用戶數據的存儲單元的數目。換言之,導引單元的數目越大,存儲陣列的存儲容
量就越小o
此外,頻繁地生成均值和檢測閾值的新值并利用新值來更新LUT中存儲的均值和檢測閾值的舊值(例如在每次讀取操作之后),可能會使讀取和寫入數據的過程變慢。
因此,本公開涉及通過跟蹤存儲數據的存儲單元而不是保留導引單元用于跟蹤,來生成估計的均值和檢測閾值。通過不保留一些存儲單元作為用于生成估計數據的導引單元,可以增大存儲陣列的可使用存儲器容量。
此外,估計數據可以被生成并被存儲在存儲器中而不是LUT中。此外,通過跟蹤存儲單元而生成的統計數據(例如,均值、標準偏差、以及方差)可被存儲在存儲器中。存儲器中存儲的估計數據和統計數據可被周期性地更新。選擇性地對LUT中存儲的均值和檢測閾值的值進行更新。例如,LUT中存儲的均值和檢測閾值的值僅在EP周期的數目或讀取差錯的數目大于或等于某個可編程的閾值時才被更新。
更具體而言,可通過為存儲用戶數據的存儲單元生成統計數據來估計數據均值和檢測閾值。可將所估計的均值和檢測閾值以及統計數據直接存儲在存儲器中,并且可對其進行周期性地更新。可通過跟蹤讀取操作期間生成的統計數據,來改進存儲器中存儲的所估計的均值和檢測閾值和統計數據。
存儲器中存儲的更新后的均值和檢測閾值的值可用于在某些條件被檢測到時選擇性地更新LUT中存儲的均值和檢測閾值的值。例如,這些條件可包括EP周期的數目、讀取差錯的數目,等等。可基于被跟蹤并存儲在存儲器中的統計數據來檢測這些條件。
這樣,在一些實現方式中,LUT中存儲的均值和檢測閾值只是被選擇
性地更新,而不是在每次讀取操作期間都被更新。用于更新LUT中存儲的相應值的經過更新的均值和檢測閾值的值只是簡單地被從存儲器中取出,而不是在更新LUT中的值時生成估計數據。
此外,存儲器中存儲的統計數據隨后可被處理,以在發生由于循環導致的漂移時提高讀取/寫入操作的準確度。例如,存儲器中存儲的統計數據可用于執行維特比檢測、迭代解碼等等,以在發生由于循環導致的漂移時提高讀取/寫入操作的準確度。
現在參考圖6A和6B,僅作為示例,閾值分布可以以擦除/編程(EP)周期的函數的形式發生漂移。在圖6A中,在循環之后,用于對存儲單元編程的平均值可能相對于初始平均值有所漂移。在圖6B中,在循環之后,在讀取操作期間用于比較的檢測閾值可能相對于初始檢測閾值有所漂移。僅作為示例,初始平均值和初始檢測閾值可在制造時(即,在存儲單元首次用于存儲數據之前)確定。或者,初始值可包括最近更新后的值。
由于循環導致的平均值和檢測閾值的漂移可能分別導致對存儲單元的編程和對存儲單元的狀態的確定的差錯。為了減少差錯,平均值和檢測閾值可被調整以針對漂移進行補償。例如,通過統計性地監視由于循環導致的存儲單元的特性的改變,可以對平均值和檢測閾值進行調整(即,修改)以匹配存儲單元的改變后的特性。
在圖6B中,僅作為示例,示出了由于循環導致的檢測閾值的改變。類似地改變也可發生在平均值中。因此,雖然下面沒有單獨論述平均值的改變,但以下參考圖6B的與檢測閾值有關的論述也適用于平均值。
如圖所示,例如,當存儲單元在制造之后首次被使用時,存儲單元的初始檢測閾值可以是(tl, t2,t3)。在N個EP周期之后,存儲單元的檢測閾值可從(tl, t2, t3)漂移到(tl', t2', t3')。因此,除非在N次EP周期之后將檢測閾值從(tl, t2, t3)調節到(tl', t2', t3,)以針對漂移進行補償,否則無法正確確定存儲單元的狀態。例如,令(tl',t2',t3')表示在N次EP周期之后的經過更新的檢測閾值。也可以使用不同于EP周期的數目 的任何標準來判定何時更新初始檢測閾值,或者除了 EP周期的數目之外 還可以附加使用其他任何標準來判定何時更新初始檢測閾值。
通常,為了更新初始檢測閾值,在一個讀取操作期間可讀取多個存儲 單元。例如,在閃存中,在一個讀周期中可讀取存儲單元的一頁或一塊。 (在下文中,詞語"頁"和"塊"是同義的,并且可互換使用)。因此,
一塊存儲單元的初始檢測閾值(tl,t2,t3)可被存儲在與該塊相關聯的存儲器中。
用于存儲初始檢測閾值的存儲器可以是非易失性的,以便初始檢測閾 值可被存儲并周期性地更新。僅作為示例,用于存儲初始檢測閾值的存儲 器可包括用于存儲用戶數據的存儲陣列的一部分。在一些實現方式中,一 塊的初始檢測閾值可與該塊相鄰地存儲。或者,用于存儲初始檢測閾值的 存儲器可不同于用于存儲用戶數據的存儲器。例如,該存儲器可包括諸如 硬盤驅動器之類的存儲設備。
例如,通過使用最小均方(LMS)方法,可以周期性地更新存儲器中 存儲的初始檢測閾值(U,t2,t3)。或者,可以使用預定的公式來周期性地 更新初始檢測閾值(tl,t2,t3)。該預定公式可以是EP周期、讀取差錯和/ 或其他適當的標準的函數。
另一方面,LUT中存儲的檢測閾值(包括初始檢測閾值和更新后的檢 測閾值)可基于一時間表來更新。例如,LUT中存儲的檢測閾值可周期性 地在每N個EP周期之后更新,其中N可以是可編程的整數。僅作為示 例,N= 1000。因此,例如,LUT中存儲的更新后的檢測閾值(tl,, t2', t3')在另N個EP周期之后可被再次更新到(tl",t2",t3")。
在一些實現方式中,在確定更新后的檢測閾值(tl,,t2,,t3,)之后,可 以只存儲初始檢測閾值和更新后的檢測閾值之間的差異,而不是存儲更新 后的檢測閾值(tl,, t2,,t3,)。例如,可以存儲差異Atl = (tl,-tl), At2 = (t2,-t2),以及At3-(t3'-13)。該差異可被稱為該塊的增量(delta)。
然后,在讀取該塊存儲單元時,讀取該塊的增量或者更新后的檢測閾 值。通過把從存儲單元接收的讀回信號與該塊的增量或更新后的檢測閾值相比較來確定存儲單元的狀態。
在一些實現方式中,利用從該塊讀取的數據,可以進一步改進該塊的 增量或更新后的檢測閾值。改進后的檢測閾值的值可用于更新存儲的該塊 的增量或檢測閾值。
對于寫入操作,更新和存儲平均值的方式可以類似于上述的更新和存 儲檢測閾值的方式。當一個塊首次被編程時, 一組平均值(例如,初始平 均值)可被初始化并存儲在用于該塊的LUT中。初始化的平均值可以是對
該塊執行的EP周期的數目的函數。作為附加或替換,初始化的平均值可 以是在該塊最近被擦除之前存儲的平均值的函數。LUT中存儲的初始平均 值可以在隨后的讀取操作期間(例如,在每N個EP周期之后)被選擇性 地更新。更新后的平均值在隨后的寫入操作期間被使用。
此外,在讀取操作期間,對于每個級別,包括讀回信號的均值、標準 偏差和方差在內的統計數據可被存儲在存儲器中。該統計數據在讀取操作 期間可被更新性地更新。該統計數據可用于許多目的。例如,該統計數據 可用于檢測存儲陣列的包括有問題的存儲單元(例如,具有較高的差錯率 的存儲單元)的部分。存儲陣列的一部分可基于在對該部分中的存儲單元 進行讀取時感測到的低信噪比(SNR)而被確定為是有問題的。因此,基 于統計數據,在向該有問題的部分寫入數據時,可使用較強的糾錯碼 (ECC)。
現在參考圖7和8,平均值和檢測閾值的估計數據和更新在數學上可 以如下來說明。在本公開中,均值和檢測閾值的值都被稱為"最優或接近 最優"的值。"最優或接近最優"的值在這里用來指利用最優解答可生成 的均值和檢測閾值的值。最優解答可包括簡單的接近最優(即,近似)解 答或者使用額外的計算力的復雜解答。
可在對多級存儲單元執行讀取操作時生成這些值并將其存儲在存儲器 中。基于讀取操作,可以生成多級存儲單元的級別分布的均值和方差的近 似估計數據,該近似估計數據可用于得出最優或近最優解答。或者,可基 于在一段時間中獲知的存儲單元的行為或者基于根據存儲單元的設計生成 的行為的模型來生成估計的均值和標準偏差。對均值和標準偏差的估計數據在04/20/07提交的題為"Channel Estimation for Multi-Level Flash Memories Using Pilot Signals"的共同未決 的美國專利申請No. 11/738,263中有所記載,特此通過引用將該申請全部 并入。
或者,在線修改方法可用于估計數據均值和標準偏差。例如,最小均 方(LMS)方法可用于基于從存儲單元恢復的數據來估計數據均值和方 差。在LMS方法中,可向存儲單元的至少一個子集施加電壓,該子集可 包括也可不包括導引單元。當電壓被施加時,存儲單元可輸出信號樣本, 這些信號樣本可被讀取并處理,以估計數據存儲單元的級別分布的均值和 方差。 一旦估計數據了級別分布的均值和標準偏差,就可以基于所估計的 均值和標準偏差來找出最優檢測閾值。
通常,與多級存儲單元相關聯的許多參數是存儲單元的物理屬性的函 數。例如,最低和最高級別分布(例如,圖4的0級和3級的級別分布) 的均值和標準偏差是存儲單元的特性屬性的函數。
給定這些值,通過調整均值(除了與最低和最高級別分布相關聯的均 值之外)可以優化存儲單元的編程。此外,為了在讀取操作期間檢測存儲 單元的狀態,可根據當前或最近的級別分布來優化檢測閾值的值,以實現 最低差錯概率。
在圖7中,3級電荷分布被用作在數學上說明如何獲得最優的均值和
檢測閾值的值的示例。在該示例中,3個級別各自的標準偏差為CTo,^和
(J2。出于示例目的,假定級別分布均值落在0到L之間的范圍中,其中L 是最低級別分布(即,最左級別分布)的均值和最高級別分布(即,最右 級別分布)的均值之間的距離或范圍。
用d來表示最左級別分布的均值和中間級別分布的均值之間的差異。 因此,可用(LJ)來表示最右級別分布的均值和中間級別分布的均值之 間的差異。 一旦給定了 c/,就可以確定概率密度函數(pdf)的交叉點,這 些交叉點表示檢測閾值。在所示出的示例中,交叉點距中間級別分布的均 值的距離分別由義o(力和x"J)來表示。
根據信號檢測原理,多級存儲單元的最優檢測閾值是pdf的交叉點。
18在以下論述中,首先證明當實現最低差錯概率時pdf在交叉點(即,檢測 閾值)維持相同的值。所示出的陰影區域對應于差錯區域。 在檢測時發生差錯的概率由以下式子給出
<formula>formula see original document page 19</formula>在消去式(1)中的相等項時就得出以上式子。到多于3個級別的擴 展也是類似的。為了方便提及,以上屬性在下文中將被稱為"等值屬 性"。在圖8中,例如,"等值屬性"可用于求解所示出的4級電荷分布的 最優問題。對于所示出的4級電荷分布,均值范圍在O到L之間。級別分
布的均值被表示為mo、 m。 m2和m3。級別分布的檢測閾值被表示為tj、
t2和t3。級別分布的相應的標準偏差被表示為W、 CT,、 C72和(T3。均值和檢
測閾值之間的距離被表示為x、 y、 z禾口w。
為了確定x、 y、 z和w的最優解,可使用以下方程組
-2 - w2
1
"0 —
1
2< —
1
0
=——g 1 =
.e 。2 二
1
3
1
數值逼近可用于求解上述方程。例如,可使用牛頓方法。令常數c被
定義如下
1
6
2<^
1 -
=——6
1 一
1
e 2 二
1 —r
——g 3 二 C
O",
cr,
1
...式(2)
現在,通過使用牛頓方法來求解以下式子可以找出C
/(x;) = + 2z+ w —丄
其中g(cr,CHoV-2hOC) 在取/x)對C的導數之后,獲得以下式子
#(Jc)/<iC = d(x + 2少+ 2z +w-丄)/ dC
一2c^
.2cr,
g( ,C) g(q,C) g(o"2,C) g(o"3,C)
現在,可以通過以下迭代來找出C:
廣_廣 /(c")
、i 一、—T^y
對于c的較好的初始值,該解答迅速收斂。 一旦求解出c,就可以很容易
地隨之找出x、 y、 z和w的值。這樣,就可以獲得最優解答。
雖然,以上解答可能是準確的,但是也可以使用近似來簡化計算并獲得近最優解答。例如,取式(2)中的第一式子的對數,可以獲得以下式 子
<formula>formula see original document page 21</formula>'o …式(3)
注意,對于實際應用,0^和(7。之間的比率接近1,在取對數之后與式 (3)中的其他項相比就是可忽略的了。因此,忽略項ln(+)得到<formula>formula see original document page 21</formula>
CT,
對于z和w,類似的近似也是成立的。因此,可以獲得如下的近最優
<formula>formula see original document page 21</formula>
這些解答可被稱為線性化的解答,并且它們在實際的操作條件下是近
最優的。也就是說, 一旦求解出x、 y、 z和w,就可以為4級存儲單元的 均值和檢測閾值確定近似的(即,近最優的)解答。以上公式可以很容易 地擴展到任意M個級別,其中M2。
基于以上的近最優解答,并且一旦已確定了每個分布的估計數據均值 和標準偏差,就可以找出近最優的檢測閾值的值。例如,假定4級(2比 特/單元)閃存器件的級別分布的估計的均值和標準偏差的值分別被找出為 = 1,2, 3}和{(7"- = 0, 1,2,3}。
利用線性化解答(即,近最優解答),如下獲得閾值的值200910142622.7
說明書第18/25頁<formula>formula see original document page 22</formula>
其中A、 /2和^是近最優信號檢測閾值。因此,可利用上述式子來求解4
級多級存儲器的近最優檢測閾值A、 ^和,3。如果需要額外的準確度,通
過使用先前例示的牛頓方法,利用等值屬性,可以找出確切的解答。
此外,可以如下獲得多級存儲單元的近最優平均值。對于M級存儲單 元,假定所估計的均值被表示為{柳"=0, 1, ..., Af-1},并且相應的標準偏 差被表示為化,z'= 0, 1, ...,M-1}。假定與最低級別相對應的平均值(mo) 和與最高級別相對應的平均值(附m-。以及標準偏差為預定的并且被設 定。針對最優性能,可以如下調整附"=1,2,…,M-2的值。
通過表示丄=mM—i — m。并且利用線性化解答,第級別的近最優平均 值(《)由下式給出
<formula>formula see original document page 22</formula>
該式可用于求解M級分布存儲單元的近最優平均值。或者,牛頓方法可用 于獲得額外的準確度。
現在參考圖9,其中示出了根據本公開的一種用于存儲和更新平均值 和檢測閾值的系統。該系統可通過控制存儲陣列12的存儲單元14的讀 取、寫入、擦除和編程操作的控制模塊100來實現。
僅作為示例,存儲單元14可包括諸如閃存之類的非易失性存儲器的 N級存儲單元,其中N是大于1的整數。因此,存儲單元14可各自具有 N個級別分布。N個級別分布分別具有N個均值。(N-l)個檢測閾值可用于確定每個存儲單元14中存儲的電荷的級別。
控制模塊100可生成存儲單元14的統計數據并將其存儲在存儲器
中。控制模塊100可通過在讀取操作期間對存儲單元14進行讀取來生成 統計數據。基于統計數據,控制模塊100可生成存儲單元14的估計的平 均值和檢測閾值并將其存儲在存儲器中。
控制模塊100可如下所述地更新存儲器中存儲的統計數據以及平均值 和檢測閾值。控制模塊100可如下所述地針對每塊存儲單元14選擇性地 更新LUT中存儲的平均值和檢測閾值。
控制模塊100可包括塊選擇模塊102、讀取模塊104、擦除模塊106、 編程模塊108、 EP周期計數器llO、存儲模塊112、比較模塊114、統計數 據生成模塊116、存儲器118、最小均方(LMS)模塊120、以及更新模塊 122。
此外,控制模塊IOO可包括初始化存儲單元14的初始化模塊124。在 一些實現方式中,存儲器118可包括多個存儲單元14。在其他實現方式 中,存儲器118可以在包括控制模塊IOO和存儲陣列12的存儲器集成電路 (IC)的內部或外部。
塊選擇模塊102選擇一塊存儲單元14來對該塊執行讀取、寫入、擦 除和/或編程操作。塊選擇模塊102輸出指示出所選塊的控制信號。在讀 取、擦除和/或編程操作被執行時,塊選擇模塊102將這些控制信號分別輸 出到讀取模塊104、擦除模塊106和/或編程模塊108。
在讀取操作期間,讀取模塊104讀取所選塊的存儲單元14中存儲的 數據并生成讀取信號。讀取模塊104可包括電壓生成器20和電流感測放 大器22 (未示出)。讀取模塊104接收從所選塊的存儲單元14感測的電 荷。讀取模塊104基于感測到的電荷來生成讀取信號。
在擦除操作期間,擦除模塊106擦除所選塊的存儲單元14。在編程 (即,寫入)操作期間,編程模塊108對所選塊的存儲單元14編程。EP 周期計數器IIO對對所選塊執行的EP周期的數目計數。
存儲模塊112可包括查找表(LUT),該LUT存儲針對每個塊的均值 和檢測閾值的初始值和選擇性更新后的值。存儲單元14的每個塊的均值和檢測閾值的初始值是在制造期間生成的并且被存儲在存儲模塊112中的
LUT中。更新模塊122可以選擇性地更新初始值并且可以對更新后的值進
行選擇性的更新,如下所述。
當選擇一塊來進行讀取時,比較模塊114通過讀所選塊來接收由讀取 模塊104生成的讀取信號。比較模塊114將讀取信號與存儲模塊112中的 LUT中存儲的所選塊的檢測閾值相比較。
基于該比較,比較模塊114檢測所選塊的存儲單元14中存儲的數據 (即,確定存儲單元14的狀態)。當選擇一塊來進行寫入時,編程模塊 108利用存儲模塊112中的LUT中存儲的所選塊的均值來對該塊存儲單元 14進行編程。
統計數據生成模塊116在每個塊被讀取時為每個塊生成統計數據。統 計數據可包括在讀取操作期間讀取的塊的存儲單元14的每個級別分布的 均值、標準偏差和方差。每個塊的統計數據被存儲在存儲器118中。
LMS模塊120基于為每個塊生成的統計數據來為每個塊生成均值和檢 測閾值的估計值。此外,LMS模塊120基于估計值來為每個塊生成均值和 檢測閾值的最優或近最優值。在一些實現方式中,LMS模塊120可基于從 讀取操作期間讀取的塊的存儲單元14接收的信號來生成統計數據。
例如,在時刻k, LMS模塊120可更新在時刻(k-l)生成的估計值。針 對每個塊,更新后的值(也稱為修改后的值(即,針對漂移(如果存在的 話)進行了補償或修改))被存儲在存儲器118中。
更新模塊122可利用存儲器118中存儲的某個塊的修改后的值,來選 擇性地更新LUT中存儲的該塊的均值和檢測閾值的值。讀取模塊104和編 程模塊108分別在隨后的讀取操作和寫入操作期間使用存儲模塊112中的 LUT中存儲的更新后的值。
更新模塊122可基于以下標準中的任何一種來更新LUT中存儲的值 EP周期計數器110中存儲的EP周期計數;存儲模塊112基于從讀取模塊 104接收的讀取信號可生成的讀取差錯計數;基于更新模塊122對存儲器 118中存儲的統計數據執行的分析而檢測為有問題的塊,等等。
例如,更新模塊122可在EP周期計數器IIO中存儲的EP周期計數大于或等于可編程的閾值時(例如,在每1000個EP周期之后)為每個塊更
新LUT中存儲的均值和檢測閾值的值。更新模塊122可在其確定讀取一個 或多個塊的讀取差錯計數大于或等于可編程的閾值時為該一個或多個塊更 新LUT中存儲的值。更新模塊122可在其確定一個或多個塊有問題時為該 一個或多個塊更新LUT中存儲的值,等等。
因此,雖然沒有示出,但更新模塊122可包括讀取差錯檢測模塊、統 計數據分析模塊和/或壞塊定位器模塊。讀取差錯檢測模塊可生成并存儲讀 取差錯計數。統計數據分析模塊可分析存儲器118中存儲的統計數據。壞 塊定位器模塊可基于統計數據分析模塊執行的統計分析來識別有問題的 塊。
此外,在檢測到一個或多個有問題的塊時,更新模塊122可生成控制 信號并將該控制信號輸出到編程模塊108。因此,編程模塊108在將數據 寫入到這些有問題的塊時可選擇更強的糾錯碼(ECC)來對數據編碼。這 樣,控制模塊100可通過許多方式來使用存儲器118中存儲的統計數據, 以維持存儲陣列12的存儲單元14中存儲的數據的完整性。
現在參考圖10,其中示出了統計數據生成模塊116的示例性實現方 式。統計數據生成模塊116可包括檢測模塊130、信號重構模塊132、延 遲緩沖器134、以及差異模塊136。
為了便于說明,假定存儲單元14包括各自能夠存儲邏輯0或邏輯1的 1比特存儲單元。因此,存儲單元14可具有如圖所示的2級分布。兩個級 別(即,0級和1級)可分別具有均值eO和el。
檢測模塊130可包括切割器(slicer)。當所選塊被讀取時,檢測模塊 130可接收讀取模塊104所生成的讀取信號。檢測模塊130基于接收到的 讀取信號來生成二元判決(即,0或1)。在一些實現方式中,統計數據 生成模塊116還可包括ECC解碼器138,用于提高檢測模塊130輸出的二 元判決的準確度。
信號重構模塊對檢測模塊130所輸出的數據(或者ECC解碼器138所 輸出的數據,如果使用了ECC解碼器138的話)進行重構。例如,當二元 判決是O或1時,信號重構模塊132分別生成-1或+1的輸出。延遲緩沖器134對讀取信號進行緩沖,以將延遲緩沖器134的輸出與 信號重構模塊132的輸出對齊。換言之,延遲緩沖器134將讀取信號延遲 一延遲量,該延遲量是檢測模塊130和信號重構模塊132之間的延遲量。 這樣,延遲緩沖器134的輸出在時間上就與信號重構模塊132的輸出對齊 了 (在時間上同步)。信號重構模塊132的輸出可被認為是理想信號,而 延遲緩沖器134的輸出可被認為是包括噪聲的信號。
差異模塊136生成延遲緩沖器134的輸出和信號重構模塊132的相應 輸出之間的差異。例如,當信號重構模塊132的輸出是-1或+1時,該差異 分別是e或e'。該差異被輸出到LMS模塊120。
數學上,LMS模塊120生成估計的平均值e0和el,并且如下更新估 計的平均值
eO(A:) = eO(& — l) + (a*e) el(A) = el(A: — l) + (a*e')
其中eO(k)是在時刻k更新的平均值e0。 el(k)是在時刻k更新的平均值 el。 eO(k-l)是在時刻(k-l)均值e0的估計值。el(k-l)是在時刻(k-l)均值el 的估計值。e是信號重構模塊132的輸出為-1時差異模塊136的輸出。e'是 信號重構模塊132的輸出為+1時差異模塊136的輸出。a是基于由于循環 導致的存儲單元14的級別分布的漂移的可編程常數(即,縮放因子)。
這樣,LMS模塊120通過按常數o;縮放信號重構模塊132的輸出e并 且將信號重構模塊132的輸出的縮放后的值與時刻(k-l)均值e0的值相加來 更新時刻k均值e0的值。類似地,LMS模塊120通過按常數a縮放信號 重構模塊132的輸出e'并且將信號重構模塊132的輸出的縮放后的值與時 刻(k-l)均值el的值相加來更新時刻k均值el的值。
然后,LMS模塊120如前所述基于更新后的平均值和統計數據生成模 塊116所生成的統計數據(例如,標準偏差)來更新檢測閾值t的值。由 LMS模塊120為每個塊生成的均值和檢測閾值的估計值和更新后的值被存 儲在存儲器118中。
如上所述,更新模塊122利用存儲器118中存儲的均值和檢測閾值的 更新后的值,來選擇性地更新存儲模塊112中的LUT中存儲的均值和檢測 閾值的值。在隨后的讀取操作和寫入操作期間,讀取模塊104和編程模塊108分別為所選塊使用存儲模塊112中的LUT中存儲的檢測閾值和均值的
更新后的值。
現在參考圖11,其中示出了存儲模塊112中存儲的示例性LUT。最 初,可在制造和/或測試階段期間填充LUT。或者,可在初始化模塊124 初始化存儲單元14時或者從存儲單元14讀取數據時填充LUT。
優選地,LUT中的一行條目對應于一塊存儲單元14。對于每個塊, LUT中的一行至少存儲該塊的級別分布的均值和標準偏差的值。如前所 述,這些值被更新模塊122選擇性地更新并保存在LUT中。此外,可基于 更新后的值來生成均值和檢測閾值的最優或近最優解答,并將其保存在 LUT中。在一些實現方式中,對于每個塊,也可在LUT中存儲和更新級 別分布的標準偏差。
在讀取操作期間,讀取模塊104從LUT中取出所選塊的估計數據均值 和檢測閾值。讀取模塊104基于被選擇性更新(即,針對漂移進行了補償 或修改)的這些值來對從塊中讀取的數據進行處理。
在寫入操作期間,編程模塊108從LUT中取出所選塊的最優或近最優 平均值。編程模塊108使用被選擇性更新(即,針對漂移進行了補償或修 改)的這些值來對該塊編程。
現在參考圖12,其中示出了根據本公開的用于存儲和更新平均值和檢 測閾值的方法200的示例。控制流程開始于步驟202中。在步驟204中, 控制流程在LUT中存儲多級存儲單元14的每個塊的均值和檢測閾值的初 始值。在步驟206中,控制流程分別利用LUT中存儲的均值和檢測閾值的 值來在存儲單元14中寫入和讀取數據。
在步驟208中,控制流程在讀取操作期間對于每個塊為存儲單元14 的每個級別分布生成統計數據(例如,均值、標準偏差和方差)。在步驟 210中,控制流程在存儲器118中存儲在讀取操作期間為每個塊生成的統 計數據。如果在先前的讀取操作期間生成的統計數據已被存儲在存儲器 118中,則控制流程利用在當前讀取操作期間生成的統計數據來更新存儲 器118中存儲的統計數據。
在步驟212中,控制流程利用LMS,基于統計數據來為每個塊生成均
27值和檢測閾值。在步驟214中,控制流程在存儲器118中存儲每個塊的均 值和檢測閾值。如果在先前讀取操作期間生成的均值和檢測閾值已被存儲
在存儲器118中,則控制流程利用在當前讀取操作期間生成的均值和檢測 閾值來更新存儲器118中存儲的均值和檢測閾值。
在步驟216中,控制流程分析存儲器118中存儲的統計數據。例如, 控制流程可基于對統計數據(例如,與塊相關聯的標準偏差、方差等等) 的分析來識別有問題的塊,并且在向有問題的塊寫入數據時可選擇更強的 ECC。
在步驟218中,控制流程判定EP周期的數目、讀取差錯等等是否大 于或等于可編程的閾值。如果步驟218的結果為否定,控制流程則不更新 LUT中存儲的均值和檢測閾值的值。控制流程返回到步驟206。控制流程 繼續利用先前存儲在LUT中的均值和檢測閾值的值來讀取和寫入數據。
但是,如果步驟218的結果為肯定,控制流程則執行步驟220。在步 驟220中,控制流程利用存儲器118中存儲的均值和檢測閾值的修改后的 值來更新LUT中存儲的均值和檢測閾值的值。控制流程返回到步驟206。 控制流程利用LUT中存儲的更新后的值來執行隨后的讀取操作和寫入操 作。
現在參考圖13,其中示出了根據本公開的用于跟蹤存儲單元并生成包 括平均值在內的統計數據的方法250的示例。控制流程開始于步驟252 中。在步驟254中,控制流程在一個塊被讀取時接收讀取信號。在步驟 256中,控制流程基于讀取信號生成二元判決。在步驟258中,控制流程 基于二元判決生成重構的信號。在步驟260中,控制流程緩沖讀取信號并 且輸出延遲的讀取信號。
在步驟262中,控制流程生成基于二元判決的重構信號與相應的緩沖 讀取信號之間的差異。在步驟264中,控制流程利用跟蹤存儲單元14的 級別分布的漂移的可編程常數來縮放該差異。在步驟266中,控制流程利 用LMS通過將縮放后的值與在時刻(k-l)生成的某個級別的平均值相加來 更新時刻k生成的該級別的平均值。在步驟268,控制流程將更新后的平 均值存儲在存儲器118中,并且控制流程返回到步驟254。現在參考圖14,存儲器IC 300包括控制模塊100和統計數據處理模 塊302。統計數據處理模塊302對存儲的統計數據進行處理,以在發生由 于循環導致的漂移時提高讀取/寫入操作的準確度。統計數據處理模塊302 被包括在存儲器IC 300中,并且"在片上"(即,在存儲器IC 300中) 處理統計數據。更具體而言,統計數據處理模塊302接收由統計數據生成 模塊116生成、被存儲在存儲器118中并且被統計數據生成模塊116周期 性地更新的統計數據。統計數據處理模塊302可基于存儲器118中存儲的 統計數據來執行精密的信號處理/檢測,其中包括維特比檢測和迭代解碼。
現在參考圖15,計算設備310包括存儲器IC 312和統計數據處理模 塊302。該計算設備可包括手持式計算設備,例如膝上型計算機、蜂窩電 話、個人數字助理、MP3播放器,等等。存儲器IC 312包括控制模塊 100。統計數據處理模塊302在存儲器IC 312外部,并且"在片外" (即,在存儲器IC312外部)處理統計數據。
本公開的廣泛教導可通過多種形式來實現。因此,雖然此公開包括特 定示例,但是本公開的真實范圍不應當限于此,因為在研究附圖、說明書 和所附權利要求之后可以清楚看出其他修改。
權利要求
1.一種系統,包括讀取模塊,該讀取模塊讀取非易失性存儲單元的電荷級別并且生成讀取信號;統計數據生成模塊,該統計數據生成模塊基于所述讀取信號生成統計數據;以及存儲模塊,該存儲模塊存儲所述統計數據,其中,所述讀取模塊基于所述非易失性存儲單元的電荷級別和所述統計數據來生成所述讀取信號。
2. 如權利要求1所述的系統,還包括更新模塊,該更新模塊基于所述 讀取信號來更新所述存儲模塊中存儲的統計數據。
3. 如權利要求1所述的系統,其中,所述統計數據包括所述非易失性 存儲單元的每個電荷級別分布的均值、檢測閾值、標準偏差和方差中的至 少一種。
4. 如權利要求1所述的系統,還包括更新模塊,該更新模塊基于讀取 操作期間檢測到的讀取差錯的數目和所述非易失性存儲單元的編程操作的 數目中的至少一種,來有條件地更新所述存儲模塊中存儲的統計數據。
5. 如權利要求1所述的系統,其中,所述存儲模塊存儲用于對所述非 易失性存儲單元編程的電荷級別的平均值,并且所述系統還包括更新模 塊,該更新模塊基于所述統計數據來有條件地更新所述平均值。
6. 如權利要求5所述的系統,還包括編程模塊,該編程模塊利用被所 述更新模塊更新的平均值來對所述非易失性存儲單元編程。
7. 如權利要求1所述的系統,還包括編程模塊,該編程模塊對所述非 易失性存儲單元編程,并且基于所述統計數據選擇糾錯碼來對所述非易失 性存儲單元編程。
8. 如權利要求1所述的系統,還包括最小均方模塊,該最小均方模塊 用于基于在讀取操作期間從所述非易失性存儲單元接收到的信號來生成所 述統計數據。
9. 如權利要求1所述的系統,其中,所述統計數據生成模塊包括 檢測模塊,該檢測模塊基于所述讀取信號來生成數據; 信號重構模塊,該信號重構模塊基于所述數據來生成重構信號; 延遲緩沖器,該延遲緩沖器緩沖所述讀取信號并且輸出延遲的讀取信號;以及差異模塊,該差異模塊生成所述重構信號和所述延遲的讀取信號之間 的差異。
10. 如權利要求9所述的系統,還包括最小均方模塊,該最小均方模 塊基于所述差異和一縮放因子來生成用于對所述非易失性存儲單元編程的 電荷級別的平均值,該縮放因子是基于由所述非易失性存儲單元的循環導 致的所述電荷級別的變化的。
11. 一種存儲器集成電路,包括如權利要求1所述的系統,并且還包 括一存儲陣列,該存儲陣列包括所述非易失性存儲單元。
12. 如權利要求1所述的系統,還包括統計數據處理模塊,該統計數 據處理模塊利用維特比檢測和迭代解碼中的至少一種來對所述存儲模塊中 存儲的統計數據進行處理。
13. —種方法,包括 讀取非易失性存儲單元; 基于所述讀取來生成統計數據; 存儲所述統計數據;以及在所述非易失性存儲單元被讀取時基于所述統計數據來生成讀取信號。
14. 如權利要求13所述的方法,還包括基于所述讀取信號來更新所述 統計數據。
15. 如權利要求13所述的方法,還包括基于所述讀取信號生成所述非 易失性存儲單元的每個電荷級別分布的均值、檢測閾值、標準偏差和方差 中的至少一種。
16. 如權利要求13所述的方法,還包括基于讀取操作期間檢測到的讀 取差錯的數目和所述非易失性存儲單元的編程操作的數目中的至少一種來有條件地更新所述統計數據。
17. 如權利要求13所述的方法,還包括基于被存儲并且被基于讀取操作期間檢測到的讀取差錯的數目和所述非易失性存儲單元的編程操作的數 目中的至少一種來更新的所述統計數據,來檢測所述非易失性存儲單元的 狀態。
18. 如權利要求13所述的方法,還包括存儲用于對所述非易失性存儲單元編程的電荷級別的平均值;通過基于所述統計數據有條件地更新所述平均值來生成更新后的平均值;以及利用所述更新后的平均值來對所述非易失性存儲單元編程。
19. 如權利要求13所述的方法,還包括基于所述統計數據選擇糾錯碼 來對所述非易失性存儲單元編程。
20. 如權利要求13所述的方法,還包括利用最小均方模塊來基于在讀 取操作期間從所述非易失性存儲單元接收到的信號生成所述統計數據。
21. 如權利要求13所述的方法,還包括在所述非易失性存儲單元的讀 取操作期間更新所述統計數據。
22. 如權利要求13所述的方法,還包括通過以下步驟來生成所述統計 數據-基于所述讀取信號來生成數據; 基于所述數據來生成重構信號; 緩沖所述讀取信號; 輸出延遲的讀取信號;以及生成所述重構信號和所述延遲的讀取信號之間的差異。
全文摘要
本發明公開了閃存的統計跟蹤。一種系統包括讀取模塊、統計數據生成模塊和存儲模塊。讀取模塊讀取非易失性存儲單元的電荷級別并且生成讀取信號。統計數據生成模塊基于讀取信號生成統計數據。存儲模塊存儲統計數據。讀取模塊基于非易失性存儲單元的電荷級別和統計數據來生成讀取信號。
文檔編號G11C16/10GK101599303SQ20091014262
公開日2009年12月9日 申請日期2009年6月2日 優先權日2008年6月3日
發明者吳子寧, 楊雪石 申請人:馬維爾國際貿易有限公司