專利名稱:壓縮事件計數(shù)技術及其在閃存系統(tǒng)中的應用的制作方法
技術領域:
本發(fā)明大體上涉及事件計數(shù)技術,特別涉及這種技術在半導體存儲系統(tǒng)中的應用,尤其是在非揮發(fā)性閃速電可擦除和可編程只讀存儲器(EEPROM)中的應用。
背景技術:
閃速EEPROM系統(tǒng)具有廣泛的應用,尤其是當它被封裝在可移除地連接到主機系統(tǒng)的封閉卡中時。當前的商業(yè)存儲卡格式包括個人計算機存儲卡國際聯(lián)合會(PCMCIA),高密度閃存(CF),多媒體卡(MMC)和安全數(shù)字(SD)。這些卡的一個供應商是SanDisk公司,即本申請的受讓人。使用這些卡的主機系統(tǒng)包括個人計算機、筆記本計算機、手提計算設備、照相機、音頻再現(xiàn)設備及類似的系統(tǒng)。閃速EEPROM系統(tǒng)還用作嵌入到主機系統(tǒng)中的大體積存儲。
這種非揮發(fā)性存儲系統(tǒng)包括一個存儲單元陣列、外圍操作電路和一個系統(tǒng)控制器??刂破鞴芾砼c主機系統(tǒng)的通信和存儲單元陣列的操作,以存儲和取出用戶數(shù)據(jù)。存儲單元分組成單元塊,其中一個單元塊就是可同時擦除的單元的最小的群組。在向一個或多個單元塊寫入數(shù)據(jù)前,這些單元塊被擦除。用戶數(shù)據(jù)通常分成段在主機和存儲陣列間傳輸。一段用戶數(shù)據(jù)可以是任何方便處理的量,最好小于或等于一個存儲塊的容量,通常等于標準磁盤驅(qū)動器扇區(qū)的大小,即512字節(jié)。
在某種商業(yè)結(jié)構(gòu)中,存儲系統(tǒng)塊的大小為存儲一段用戶數(shù)據(jù)以及附加數(shù)據(jù),附加數(shù)據(jù)包括諸如下列信息存儲在塊中的用戶數(shù)據(jù)的糾錯碼(ECC),對塊擦除和重新編程的次數(shù)計數(shù),該存儲單元塊的缺陷以及其他物理信息,以及要加到塊上的編程和/或擦除電壓。這種類型的非揮發(fā)性存儲系統(tǒng)的不同應用在下列美國專利和審理中的申請中說明,它們中的每一個在這里都被整個包括進來,作為參考,它們是專利號5172338、5602987、5315541、5200959、5270979、5428621、5663901、5532962、5430859和5712180,以及1997年8月7日提出申請的專利申請序列號08/910947和1999年6月30日提出申請的專利申請序列號09/343328。在另一種商業(yè)結(jié)構(gòu)中,許多個存儲用戶數(shù)據(jù)的塊的附加數(shù)據(jù)存儲在其他塊的表內(nèi)。此附加數(shù)據(jù)包括對單個用戶數(shù)據(jù)塊被擦除和重新編程的次數(shù)的計數(shù)。這種系統(tǒng)的一個例子在2000年2月17日提出申請的美國專利申請序列號09/505555中有說明。還有另一種類型的非揮發(fā)性存儲系統(tǒng),其存儲單元塊大小更大,存儲了多段用戶數(shù)據(jù)。
單個存儲塊經(jīng)歷的擦除/重編周期的次數(shù)(其“經(jīng)歷計數(shù)”)常常保持在閃存系統(tǒng)中,這是因為一個或多個原因。一個原因是為了判定塊何時到達其壽命終點,以便在其因使用過度而失效前通過將其映射出系統(tǒng)用另一個塊替換它。這在美國專利號5043940中有說明,該專利在這里被結(jié)合進來作為參考。當前的商業(yè)浮柵存儲單元的壽命為幾十萬到一百萬個擦除/重編周期,這通常比大多數(shù)應用中任何塊在存儲器的有用壽命期間循環(huán)的周期都要多。但是,其他更多重編的應用可達到這樣的數(shù)字。跟蹤塊經(jīng)歷計數(shù)的另一個原因是為了改變不同塊中的數(shù)據(jù)映射,以便在它們達到壽命終點前平衡其磨損,以作為延伸存儲系統(tǒng)的壽命的一種方法。這種磨損均衡技術的例子在美國專利號6081447中說明,該專利這里被整個結(jié)合進來作為參考。保持塊經(jīng)歷計數(shù)還有一個原因是能夠調(diào)整編程和其他操作的電壓,以考慮到隨著擦除/重編周期的增加存儲單元特征發(fā)生的變化。
發(fā)明內(nèi)容
不是跟蹤每個事件的發(fā)生,而只關注每次已經(jīng)發(fā)生大量事件時。一個優(yōu)點是表示已發(fā)生的事件數(shù)A的壓縮的計數(shù)R比起每個事件都被計數(shù)時需要的更新頻率更低。另一個優(yōu)點是,在二進制計數(shù)系統(tǒng)中,保持表示大量事件數(shù)目A的計數(shù)R所需的比特數(shù)更少。保持壓縮計數(shù)R的首選技術包括建立每次被監(jiān)控的事件發(fā)生時壓縮計數(shù)R會被更新的概率P。其結(jié)果是平均起來每發(fā)生1/P個實際事件更新壓縮計數(shù)R一次。此概率最好選擇為在實際允許的情況下盡可能與發(fā)生事件的系統(tǒng)的操作獨立,以便使系統(tǒng)操作對壓縮計數(shù)R的更新頻率的影響最小。
在這里所說明的特定例子中,此技術被用于監(jiān)控某些作為操作電子系統(tǒng)的一部分發(fā)生的重復事件的次數(shù)。宜采用一個隨機數(shù)生成器來判定何時更新事件數(shù)目的壓縮計數(shù)R,實際中通常采用一個偽隨機數(shù)生成器。事件發(fā)生時,最好是每次事件發(fā)生時,生成一個隨機數(shù)。隨機數(shù)之一宜被指定為引起壓縮計數(shù)R更新的觸發(fā),其中更新可以通過順次增加到下一個數(shù)字實現(xiàn)。平均起來,每N個事件發(fā)生一次更新,其中N是隨機數(shù)生成器隨著時間流逝可能生成的不同隨機數(shù)的總數(shù)目。因此,不是對每次事件的發(fā)生計數(shù),而是平均每N個事件更新壓縮計數(shù)R一次,平均起來,該計數(shù)表示已發(fā)生的事件數(shù)的1/N?;蛘?,換種方式來講,任何一個事件發(fā)生會令壓縮計數(shù)R更新的概率P為1/N。如果需要,R和N的積可給出已發(fā)生的實際事件A的數(shù)目,可能的誤差容限與1/P成正比,即可能的誤差隨著N的增加而增加,因為P=1/N。
這些技術尤其應用在數(shù)字存儲系統(tǒng)中。在上述發(fā)明背景中說明的非揮發(fā)性閃存系統(tǒng)的例子中,需要更新事件(如擦除/重編事件)的壓縮計數(shù)R的頻率減少,以便占用的存儲器的其他操作的時間更少。這使得其他操作,如用戶數(shù)據(jù)編程,發(fā)生得更快。存儲每個塊的計數(shù)所需的比特數(shù)也顯著減少。另外,當不需要對每次事件發(fā)生計數(shù)時,存儲器系統(tǒng)的操作復雜度也減少了。
在此技術用于保持發(fā)生在閃存中的擦除和重編周期數(shù)的經(jīng)歷計數(shù)(有時稱為“熱”計數(shù))的應用中,選擇數(shù)字N為M的一小部分,其中M是存儲器的預期壽命,這里存儲器的預期壽命是根據(jù)存儲單元面臨進行效率非常低的操作或徹底失效的危險前可安全經(jīng)歷的擦除/重編周期的最大數(shù)目。雖然從產(chǎn)生的壓縮計數(shù)R不能確切知道已發(fā)生的事件數(shù)目A,但其相對精確度卻隨著事件數(shù)目A的增長而增長,尤其是當接近存儲塊壽命M的末期時。經(jīng)歷計數(shù)所需要的存儲空間的字節(jié)數(shù)可顯著減少,因為存儲器的壽命期間的最大壓縮計數(shù)R為M除以N,而不像在每個擦除事件都被計數(shù)的情況中那樣是M。由于對于多次擦除事件只發(fā)生一次壓縮計數(shù)的更新,存儲器的整體性能提高了。另外,閃存系統(tǒng)更易維護和調(diào)試。
任何這樣的事件中的某一個會引起壓縮計數(shù)更新的概率P不需要在對存儲器或其他電子系統(tǒng)的事件計數(shù)的整個期間保持相同,而是可以作為被監(jiān)控的事件數(shù)目A的函數(shù)而變化。特別地,如果需要在實際計數(shù)A的值較小時,保持對閃存的擦除/重編事件的更精確的壓縮計數(shù)R,則在操作開始時,概率P保持較高,并且在存儲器的壽命期間隨著實際計數(shù)A變大而降低。作為一個特殊例子,當壓縮計數(shù)R被系統(tǒng)用于控制在特定塊的編程和/或擦除時期加到其存儲單元上的電壓時,這一點是尤其有用的,因為這些電壓在實際經(jīng)歷計數(shù)A較低時常常是變化的。此能力是在不必投入更多比特來存儲單個塊的壓縮計數(shù)R的情況下提供的。
本發(fā)明的其他方面、功能和優(yōu)點包含在下列對特定代表性實施方式的說明中,這些說明應結(jié)合附圖理解。
圖1是一個結(jié)合了本發(fā)明的事件監(jiān)控的存儲系統(tǒng)的示意性框圖;圖2是從概念上說明圖1的存儲系統(tǒng)對發(fā)生在其內(nèi)的事件進行壓縮計數(shù)的操作的框圖;圖3說明了圖1的存儲系統(tǒng)內(nèi)的根據(jù)圖2所示的技術的事件壓縮計數(shù)的非揮發(fā)性存儲的一種形式;圖4說明了圖1的存儲系統(tǒng)內(nèi)的根據(jù)圖2所示的技術的事件壓縮計數(shù)的非揮發(fā)性存儲的另一種形式;圖5是根據(jù)圖2的圖1的存儲系統(tǒng)的操作的一個具體例子的流程圖;圖6是圖5的示例操作使用的一個表;
圖7顯示了圖5的例子中使用的兩個二進制數(shù)的比較;以及圖8是圖5的例子中使用的另一個表。
具體實施例方式
圖1是一個典型非揮發(fā)性存儲系統(tǒng)的某些主要部件的圖。一個控制器11通過線13與主機系統(tǒng)通信??刂破?1可能占有自己的集成電路芯片,它通過線15與一個或多個并行的非揮發(fā)性存儲器通信,圖示說明了其中一個存儲器17。存儲器17包括一個存儲單元陣列以及相關外圍電路37,它可能與控制器接口39一起形成在單獨的集成電路芯片上。
在此例中,用戶數(shù)據(jù)通過線15在控制器11和存儲器17之間傳輸。存儲器17由控制器尋址。特別地,線15內(nèi)的數(shù)據(jù)總線的寬度可以為一個字節(jié)。圖1所示的存儲系統(tǒng)可被嵌入主機系統(tǒng)作為其一部分,或者封裝成一張卡,如一張遵循前面提到的卡標準之一的卡。在卡的情況中,線13終止于卡上的一個外部終端,以便與主機系統(tǒng)中的互補的插口匹配。雖然典型情況下使用一個控制器芯片和多個存儲器芯片,但現(xiàn)在趨勢當然是通過把芯片的電路結(jié)合起來以將更少的分離芯片用于這樣的系統(tǒng)。所說明的存儲器17的示例容量為256M比特,從而只需要兩個這樣的芯片,以及一個控制器芯片,以形成一個具有64兆字節(jié)數(shù)據(jù)容量的非揮發(fā)性存儲系統(tǒng)。使用單個更小容量的存儲芯片將產(chǎn)生一個容量更小存儲系統(tǒng),比如在現(xiàn)有市場上銷售的一個例子中是8兆字節(jié)。相反地,在系統(tǒng)中使用具有更高比特存儲密度的存儲芯片和/或使用更多存儲陣列芯片將產(chǎn)生更高容量的存儲器。達1.3千兆字節(jié)或更高容量的存儲系統(tǒng)是可能實現(xiàn)的。
控制器11包括一個微處理器或微控制器23,它通過控制接口邏輯25連接到內(nèi)部存儲器,并與外部元件接口。一個程序存儲器27存儲由微控制器23訪問的固件和軟件,以控制存儲系統(tǒng)的操作,以便其從連接的存儲陣列讀取數(shù)據(jù),并將該數(shù)據(jù)發(fā)送到主機,將來自主機的數(shù)據(jù)寫入存儲陣列,以及執(zhí)行許多其他的監(jiān)控和控制功能。存儲器27可以是一個揮發(fā)性的可重編程存機存取存儲器(RAM),它由來自某種形式的非揮發(fā)性存儲器(如一個不可重編的非揮發(fā)性存儲器(ROM),一個一次可編程存儲器(OTP)或一個可重編程閃速EEPROM系統(tǒng))的數(shù)據(jù)初始化。如果存儲器27可重編程,則控制器可被配置為允許主機系統(tǒng)對其進行編程。一個隨機存取存儲器(RAM)29除被用于存儲其他數(shù)據(jù)外,還存儲從在讀寫操作期間被訪問的非發(fā)揮存儲器中讀出的表的數(shù)據(jù)。
一個邏輯電路31與主機通信線13接口,而另一個邏輯電路33通過線15與存儲陣列接口。另一個存儲器35被用作緩沖區(qū),以暫時存儲在主機系統(tǒng)和存儲器17間傳輸?shù)挠脩魯?shù)據(jù)。除了用于存儲操作固件的存儲器外,控制器中的存儲器通常是揮發(fā)性的,因為具有快速存取和高效控制器操作所需的其他特征的存儲器具有該特征。幾個揮發(fā)性存儲器可以很方便地在物理上結(jié)合成一個存儲器。
存儲器17的邏輯電路39通過線15與控制器接口。邏輯電路39的用途是為存儲單元陣列37生成在分離的總線和控制線上發(fā)送的信號。各個控制信號在線41中提供。一條數(shù)據(jù)總線45傳送將要編程到非揮發(fā)性內(nèi)存中或從中讀取的用戶數(shù)據(jù),一條地址總線47傳送存儲器中被訪問以讀取用戶數(shù)據(jù)、寫入用戶數(shù)據(jù)或擦除存儲單元塊的那部分的地址。一個功率控制電路43響應電路41中的控制信號,通過線49提供操作存儲單元陣37所需要的不同電壓和電流。其中包括了到存儲單元陣列37的位線和門的適于編程、讀取或擦除由線47中的地址指定的特定單元的電壓。
在一個典型的閃存實施方式中,陣列的存儲單元被分成塊,其中每個塊是可擦除的存儲單元的最小單位,一個塊內(nèi)的所有單元可同時擦除。通常,多個塊同時擦除,到存儲陣列的編程數(shù)據(jù)出現(xiàn)在首先被擦除的塊中。在一個常見例子中,每個塊容納了512字節(jié)的用戶數(shù)據(jù)以及n個字節(jié)的附加數(shù)據(jù),這些附加數(shù)據(jù)與用戶數(shù)據(jù)有關和/或與存儲該附加數(shù)據(jù)的存儲單元塊有關。在當前一個特定實施方式中,這樣一個塊由兩行存儲單元組成。在另一個例子中,每個塊容納32768(=64*512)字節(jié)用戶數(shù)據(jù)以及附加數(shù)據(jù)。作為替換,可不將附加數(shù)據(jù)和用戶數(shù)據(jù)存儲在同一個塊中,而是某些或所有附加數(shù)據(jù)可存儲在專門用于所述用途的其他塊中。
與當前許多閃速EEPROM系統(tǒng)中,閃存的每個塊的有關附加信息中的一項是該塊已經(jīng)歷的擦除/重編周期數(shù)。這個塊經(jīng)歷計數(shù)有許多用途,其中主要的用途在前文已作了說明。當塊經(jīng)歷計數(shù)被更新以記錄塊擦除或重編事件時,存儲在非揮發(fā)性存儲器中的塊的當前經(jīng)歷計數(shù)首先被讀出,并存儲一個臨時存儲器中,此臨時存儲器通常是控制器中揮發(fā)性存儲器。然后這個讀出的計數(shù)被更新,以表示后續(xù)事件的發(fā)生,如可以通過把計數(shù)值加1來更新,然后更新后的計數(shù)被重新寫回非揮發(fā)性存儲塊中。這涉及相當多的耗時的操作,從而對于存儲系統(tǒng)的性能有負面影響。
根據(jù)本發(fā)明的一個主要實施方式,經(jīng)歷計數(shù)不在每次其相關塊被擦除和重編時更新。而是以更低的頻率更新一個壓縮計數(shù),其平均頻率通過一個比例常數(shù)與被計數(shù)的擦除/重編事件的頻率相關聯(lián)。例如,如果一個閃存的壽命為約1000000個擦除/重編周期,而壓縮計數(shù)只在約4000個周期中更新一次,這樣,更新過程的頻率在發(fā)生大量周期時僅為1/4000。在操作存儲器期間用于更新壓縮的經(jīng)歷計數(shù)的時間量比每一個事件就更新一次經(jīng)歷計數(shù)時少得多。另外,存儲保持的計數(shù)所需的比特數(shù)與保持實際計數(shù)所需的比特數(shù)相比顯著減少,因此非揮發(fā)性存儲器中保持計數(shù)占用的空間顯著減少。例如,如果保持1000000周期的實際計數(shù),則每個塊需要約3字節(jié)來對1至1000000的數(shù)字計數(shù)。另一方面,如果平均每4000個事件才計數(shù)一次,則最大計數(shù)值為約250,這可在1個字節(jié)中保持。從而在此例中,每塊的附加存儲空間節(jié)省2字節(jié)。
在此例中,塊所經(jīng)歷的事件的實際數(shù)目的表示總可以通過將保持的計數(shù)乘以4000來獲得,但是控制器存儲器27中存儲的存儲系統(tǒng)操作固件宜直接將壓縮計數(shù)當作單個塊的使用指示。通過減少非揮發(fā)性存儲器或其他某些電子系統(tǒng)中更新監(jiān)控其他任何事件的發(fā)生的計數(shù)的頻率,同樣可得到性能提高和存儲空間需求減少的優(yōu)點。
保持壓縮計數(shù)的一個首選技術包括生成一系列隨機數(shù),其中響應每個新事件生成一個新數(shù)字,每當生成的隨機數(shù)等于預定的從這些數(shù)字中選定的一個數(shù)字時,就更新壓縮計數(shù)。例如,如果采用生成1-4000的隨機數(shù)的生成器,其中每當發(fā)生事件時生成一個新的數(shù)字,并選擇當一個特定數(shù)字,比方說2750,在它出現(xiàn)時更新保持的計數(shù),則壓縮計數(shù)會在每次隨機數(shù)生成器的輸出等于2750時更新。平均起來,更新將每4000個事件發(fā)生一次。雖然在已發(fā)生的事件數(shù)目和壓縮計數(shù)間沒有精確的關系,但是卻有很接近的相關性,尤其是已發(fā)生大量事件后。已發(fā)現(xiàn)壓縮計數(shù)的精確度對于所說明的例子的目的是足夠的,尤其是當已發(fā)生幾十萬個事件后。在所說明的應用例中,這時候經(jīng)歷計數(shù)信息變得相當有用,用于判定何時需要替換存儲器的個別塊。
圖2從概念上說明了圖1的非揮發(fā)性存儲系統(tǒng)中實施的此過程,以作為一個例子。每當一個增加脈沖加到線53中時,一個隨機數(shù)生成器51在線52上輸出一個新的隨機數(shù)。在線41上的命令指定擦除操作時,增加脈沖出現(xiàn)在線49中的電壓脈沖剛開始的時候。此信號組合在圖示說明中被標識為AND門54。在這樣的擦除電壓脈沖期間,由線47中的地址指定的存儲器37的一個或多個存儲單元塊38被同時擦除。在一個特定實施方式中,同時擦除16個塊。通常,施加一個擦除電壓脈沖。
與隨機數(shù)生成器相關的數(shù)字集合中包含的一個數(shù)字以非揮發(fā)性方式存儲在系統(tǒng)中的預定位置,如55所示。線52上由隨機數(shù)生成器51生成的每個新數(shù)字通過一個比較器57與存儲在存儲器55中數(shù)字相比較。當兩個數(shù)字匹配時,線59中的一個信號引起當前擦除的每個塊的壓縮計數(shù)R更新。當比較值為否定(即,兩個數(shù)字不匹配時),這是大多數(shù)時候的情況,則不發(fā)生這樣的更新。這種比較可實現(xiàn)在使用邏輯門的硬件中,實現(xiàn)在軟件中或?qū)崿F(xiàn)在固件中,這取決于速度要求,靈活性要求和成本考慮。
在一個實施方式中,多個用戶數(shù)據(jù)塊的計數(shù)保持在多個保留塊中的一個塊中,如保留塊61。這樣的保留塊的數(shù)據(jù)結(jié)構(gòu)的略圖在圖3中給出。該保留塊為存儲用戶數(shù)據(jù)的多個塊中的每一個塊存儲了幾字節(jié)附加數(shù)據(jù),用戶數(shù)據(jù)塊的數(shù)目取決于不同塊的容量。例如,存儲單元塊2的附加(“OH”)數(shù)據(jù),包括1字節(jié)的壓縮計數(shù)63,該計數(shù)當隨機數(shù)生成器輸出52與存儲的數(shù)字55匹配時更新。
在另一個實施方式中,不是將計數(shù)保持單獨的保留塊61中,而是將它們存儲在它們所計數(shù)的塊中。例如,參見圖4,壓縮計數(shù)字節(jié)65作為存儲單元塊1的附加數(shù)據(jù)67的一部分存儲,而塊中的大多數(shù)單元存儲用戶數(shù)據(jù)。從而,當多個塊一起擦除時,當隨機數(shù)52與存儲在55的數(shù)字匹配時,在擦除操作時將更新每個塊的壓縮計數(shù)。此時不對其他未被擦除的塊的壓縮計數(shù)進行操作。
在又一個實施方式中,計數(shù)存儲在一個專門用于存儲計數(shù)而不存儲其他種類的附加數(shù)據(jù)的塊中。
隨機數(shù)生成器51可根據(jù)許多已知硬件和/或軟件技術中的任何一個實現(xiàn)。但是,在一個特定的實施方式中,隨機數(shù)生成器51的功能由存儲器控制器11的微控制器23執(zhí)行(圖1)。微控制器23在擦除脈沖持續(xù)期間一般是空閑的,因此在這些脈沖期間它可以被用來執(zhí)行生成新的隨機數(shù)52并將該數(shù)字與預定的數(shù)字55比較以判定是否存在匹配的功能。采用了一種標準的移位和異或算法,其中一個32位的值被存儲在控制器RAM 29中,一個12位的隨機(實際上在此技術中是偽隨機的)數(shù)響應每次擦除命令在線52上生成。一個12位的數(shù)字提供4096種不同的可能的組合。如果存儲器的壽命約為一百萬個周期,則1字節(jié)將存儲表示實際事件數(shù)的壓縮計數(shù)。當每個擦除事件發(fā)生時,生成的隨機數(shù)52與存儲在55中的數(shù)字匹配的概率P為1/4096。
更詳細地來說,隨機數(shù)生成器使用一個形成于控制器RAM 29中的32位移位寄存器(圖1)。通過重復性地在移位寄存器的第二低和第三低位執(zhí)行異或算法,并在對移位寄存器的所有32位進行移位操作時將以上產(chǎn)生的比特送到移位寄存器的最高位,生成每個新的隨機數(shù)。為生成一個新的16位隨機數(shù),此操作將重復16次。然后通過在移位寄存器的16個低位和十六進制數(shù)0FFFh(二進制形式為0000 11111111 1111)間執(zhí)行AND操作屏蔽移位寄存器的16個低位中4個最高位。因此每當移位寄存器的12個低位變成000h(二進制形式為00000000 0000)時,邏輯AND操作的輸出變成1,從而形成一個命中(匹配),稱其為命中是因為在這種情況下將增加壓縮計數(shù)R。如果移位寄存器的所有32位均變成等于0,則從那一刻起以后所有生成的隨機數(shù)也將為0。因此,如果發(fā)生這種情況,隨機數(shù)生成器將被重新播種。
將注意到概率P可以由不同于上文具體說明的隨機數(shù)生成器51的其他方式生成。這些例子包括使用系統(tǒng)噪聲、單個電子器件中的隧道事件、某個時間間隔內(nèi)的放射活動衰減,以及其他在某些硬件、固件或軟件設備中隨機發(fā)生的事件。其他適宜的隨機數(shù)生成技術將在下面附加說明,用于產(chǎn)生初始化隨機數(shù)生成器51的種子。
當存儲系統(tǒng)由于從未加電狀態(tài)被加電而被初始化時,隨機數(shù)生成器51需要被設成一個初始值以便開始過程。這由一個種子源71完成,該種子源被線75上的初始信號觸發(fā),將初始值種子73提供給隨機數(shù)生成器51。
有多種替換種子源可采用。其一是以非揮發(fā)性方式存儲初始化前存儲系統(tǒng)操作期間隨機數(shù)生成器51的最后的值52。然后隨機數(shù)生成器51被強制以被存儲的該數(shù)字開始。但采用隨機數(shù)或非相關的數(shù)字源作為種子同樣能令人滿意地完成任務。在包含時鐘的系統(tǒng)中,生成的時間是數(shù)字的偽隨機系列,初始化時存在的數(shù)字被用作隨機數(shù)生成器51的種子。也可以采用與隨機數(shù)生成器具有相同或不同設計的一個第二隨機數(shù)生成器來選擇種子。對于上文具體說明的隨機數(shù)生成器,重新播種包括初始化移位寄存器的所有32位。
生成種子的另一種替換技術涉及讀取存儲器的塊中的用戶數(shù)據(jù),該數(shù)據(jù)可以正常方式讀取。但在每次初始化時數(shù)據(jù)不變化的情況下,為了確保更高程度的隨機性,在一個特定實施方式中,該讀出以邊緣閾值級別執(zhí)行,其中邊緣閾值級別間的間隔量遠超過正常情況下用于讀取數(shù)據(jù)的間隔量。由于讀取的邊緣性,此方法旨在確保讀取數(shù)據(jù)時會發(fā)生許多錯誤,最好至少能使某些相同的數(shù)據(jù)在不同時間不同地讀出。為進一步增加種子的隨機性,可從這個故意錯誤的讀出數(shù)據(jù)中生成第二塊的地址,且第二塊中的數(shù)據(jù)同樣以可能錯誤讀取數(shù)據(jù)的方式讀取。如果需要進一步確保隨機性,此操作可繼續(xù)循環(huán)一定次數(shù)。
在上文給出的說明中,假定了在存儲系統(tǒng)的壽命期間發(fā)生匹配的概率P保持相同。但是,可能有些應用需要以某種方式改變概率P,例如響應某些變化的相關情況或發(fā)生的相關事件。如果需要,該概率可通過更改每個來自生成器51的隨機數(shù)52均要與之比較的存儲在存儲器55中的預定數(shù)字的個數(shù)來更改。每當生成的隨機數(shù)與存儲器55中的一個、兩個或甚至多個預定數(shù)字匹配時更新壓縮數(shù)據(jù)。隨著可用于與生成器51的隨機數(shù)輸出相比較的存儲器55中的預定數(shù)字的數(shù)目的變化,對于任意給定隨機數(shù)發(fā)生匹配的概率P也變化了。
作為對更改被比較的存儲的預定數(shù)字的數(shù)目以更改概率的替換,在數(shù)字系統(tǒng)中,可更改被比較的存儲器55中的單個數(shù)字和單個隨機數(shù)的位數(shù)。例如,如果隨機數(shù)生成器51的隨機數(shù)輸出52為12位,存儲在55中的預定數(shù)字也是12位,當需要所有12位都進行肯定比較時,匹配概率最低(1/4096)。但是如果像另一個例子中那樣,只比較每個數(shù)字的相同位置中的兩位,每次比較的結(jié)果發(fā)生匹配的概率就高得多了(1/4)。這從效果上更改了可能由隨機數(shù)生成器生成的不同隨機數(shù)的總數(shù)目,并且以該方式更改了任意一個隨機數(shù)與預定數(shù)字匹配的概率。兩個數(shù)字中被比較的位的數(shù)目以及從而可能產(chǎn)生的隨機數(shù)的總數(shù)目,可以根據(jù)用戶的選擇在固件或軟件控制下很容易地改變,或者根據(jù)在存儲系統(tǒng)的其他情況或事件中檢測到的變化而自動變化。
閃存系統(tǒng)中更改匹配發(fā)生的概率的其他特定應用參考圖5的流程圖說明。此操作方法在數(shù)字R較小時增加壓縮計數(shù)R的頻率比數(shù)字R較大時高,其中數(shù)字R較小通常對應實際計數(shù)A較小,從而使得壓縮計數(shù)R更精確地表示較低數(shù)值的實際計數(shù)A。從而提高了較低數(shù)值時壓縮計數(shù)R的分辨率。通過最初在R值較小時采用較大的P值,在R值較大時采用較小的P值(可能小于1/4096,實際中可能小到1/32768),不必增加存儲壓縮計數(shù)R所需的比特數(shù),就能實現(xiàn)這一點。通過使用這種方法,從0至255范圍內(nèi)的整數(shù)R就能表示高計數(shù)范圍內(nèi)高達1百萬的計數(shù),以及低計數(shù)范圍內(nèi)的一位數(shù)。在這里說明的特定閃速EEPROM系統(tǒng)的例子中,二進制隨機數(shù)的總位數(shù)可被指定為每個被擦除的塊的壓縮計數(shù)R的值的函數(shù),其中二進制隨機數(shù)的總位數(shù)和與其相比較的預定數(shù)字的位數(shù)相同。
在參考圖5-8為說明此功能而說明的特定例子中,生成器51生成的隨機數(shù)52(圖2)和存儲的預定數(shù)字55的長度均為16位。根據(jù)壓縮計數(shù)R的值,比較器57對每個數(shù)字的不同位數(shù)進行比較。當壓縮計數(shù)R的值較低時比較的位數(shù)較少(從而發(fā)生匹配的概論較高),壓縮計數(shù)R的值較高時比較的位數(shù)較多(發(fā)生匹配的概率較低)。壓縮計數(shù)存儲在1字節(jié)中,其范圍為0-255。
參見圖5,過程的摘要的第一步71是判定擦除操作何時執(zhí)行。當擦除操作發(fā)生時,在步驟73中,隨機數(shù)生成器51被引發(fā)生成一個隨機數(shù)52(另參見圖7)。在下一步75中,當前尋址為擦除的塊的壓縮計數(shù)R從其非揮發(fā)性記錄61中讀出。這在圖2中沒有顯示出來,但應理解它是由微控制器23(圖1)實現(xiàn),微控制器23最好也執(zhí)行圖2中說明的處理,正如前面已提到的。如圖6中說明的表存儲在控制器的非揮發(fā)性存儲器中,用于下一步77中。此表表示的邏輯可在硬件、固件或軟件中實現(xiàn)。
將要比較的數(shù)字52和55的位數(shù)(圖7)是通過在圖6的表的左邊那一列中查找每個被擦除的塊的讀出的壓縮計數(shù)R,并在其中間那一列讀出要比較的位數(shù)來確定的。作為此說明的信息,圖6的右邊那一列給出了被比較數(shù)字52和55的位之間將發(fā)生匹配的概率P。注意對于R的最低值0-15,不比較任何位,因為R的最低值等于A的實際計數(shù)值0-15的表示值。對于其R為15或更小值的塊,當它每次發(fā)生擦除事件時,該R值增加1。但是在下一個區(qū)間,R在16-31之間時,每個數(shù)字的一位,例如數(shù)字52和55的相同比特位置的比特79和81被比較。因此每次實例中發(fā)生匹配的概率是0.5。在R的下一個32-47之間的區(qū)間,兩個比特,例如數(shù)字52的比特79和83以及數(shù)字55的比特81和85被比較,其結(jié)果是任意一次實例中發(fā)生匹配的概率為0.25。當壓縮計數(shù)R增長到其最高區(qū)間240-255時,將比較16比特中的15比特,其結(jié)果是任意一次比較結(jié)果產(chǎn)生16比特中的15比特匹配的概率將非常低(1/32768)。
數(shù)字52和55的比特數(shù)在圖6的表中查詢,然后在步驟87中發(fā)生比較(圖5)。下一步驟89判定在單個塊的上是否有匹配。如果有匹配,則在步驟91中,在步驟75中讀取的被尋址的多個塊中滿足匹配的個別塊的壓縮計數(shù)R增加1。如果被擦除的塊群組中沒有塊產(chǎn)生匹配,則關于被擦除的多個塊的處理結(jié)束,步驟71等待接收另一個擦除命令。
雖然所說明的例子包括增加不同的數(shù)字,但可以從一個高的值減少到低的值作為替換,每次減少1或更多。如何更新壓縮計數(shù)以記錄數(shù)字52和55之間的肯定比較,比如是通過每次增加1或更多,通過每次減少1或更多,或者通過某些其他技術,都是不重要的,只要R能以某種方式被更新,使得必要時可以讀取一個有意義的值就行。
圖8中所說明的表同樣可以可選地包括在失效分析工程師所使用的一個軟件包中,作為其一部分,以便在需要估計A值的情況下將壓縮計數(shù)R與實際計數(shù)A關聯(lián)以來。(在大多數(shù)情況中,存儲系統(tǒng)固件可從計數(shù)R本身操作,因為它與計數(shù)A的關系是已知的)。對于左列中壓縮計數(shù)R值的第一群組93,中間那一列中顯示的實際計數(shù)A與R值是相同的。右列中給出R和A之間的誤差的統(tǒng)計標準差,對于此群組為0。在對應于圖6的表的第二條線的圖8的表中的下一個群組95中,R的值不等于A的值。由于大約每發(fā)生兩次A此群組中的R計數(shù)增加一次,A的值約為15(第一群組93的最大值)加上左列中R計數(shù)值超過15的部分的兩倍。同樣的,對應于圖6的表中的第三條線的在下一群組97中的任何給定R值的A值,是上一群組95中R的最大值31對應的A值加上R計數(shù)超出上一群組95中的最大計數(shù)31的部分的約四倍。此關系在所有可能的計數(shù)R的值范圍內(nèi)繼續(xù)。
計數(shù)R和A之間的關系通常不是像上面粗略判定的那樣,尤其是當R的值變高時,這是因為前面的群組93、95、97等所表示的R的不同范圍中的不同的概率值的影響的組合產(chǎn)生一個增加貢獻。因此,圖8的表的中間列包括額外的未知項x。雖然R和A之間的關系可以由一個包括x項的數(shù)學模型近似,但通常寧愿根據(jù)經(jīng)驗對每個R生成圖8的表中的中間列中的A的期望值(即,平均值)。實現(xiàn)此過程的存儲系統(tǒng)要獲得最佳操作,可通過使至少一組塊受到多個實際的或仿真的擦除事件,事件數(shù)目的范圍從0延伸到預期的該類型的存儲器會經(jīng)歷的最大數(shù)目。在測試過程中,既監(jiān)控系統(tǒng)保持的壓縮計數(shù)R,也監(jiān)控擦除周期的數(shù)目的實際計數(shù)A。后者給出圖8的中間列的值。通過使用實際存儲系統(tǒng)生成對應于壓縮計數(shù)R的實際計數(shù)A,隨機數(shù)生成器51以及系統(tǒng)和處理的其他部分的缺陷被考慮到了。對所有這些因子精確地建立數(shù)學模型是很困難的。
當需要包含誤差數(shù)時,圖8的右列中的誤差數(shù)同樣可通過這樣一種經(jīng)驗技術獲得最佳判定。在多個存儲塊的多個周期期間保持計數(shù)R和A,不同塊的差異以某種方式統(tǒng)計地表達,例如通過這些差異的總體標準差。這些列對于估計所需的精度和存儲計數(shù)所需的必要存儲空間之間的折衷以及用戶診斷存儲系統(tǒng)是很有用的,但在系統(tǒng)操作期間通常不會被控制器11所使用。
雖然這里說明的例子是用于保持對閃速EEPROM系統(tǒng)的塊所經(jīng)歷的擦除/重寫周期的數(shù)目進行計數(shù),這些技術也可以以相同的優(yōu)點用于這種系統(tǒng)內(nèi)的其他事件計數(shù),尤其當存儲單元的每個塊或塊的群組保持單獨的事件計數(shù)時。一個例子是對于單個塊遭受的邊緣掃描數(shù)據(jù)恢復技術的次數(shù)進行計數(shù),作為這些塊的某些問題的指示。另一個例子是對實際使用糾錯碼(ECC)以恢復一個否則就不可讀的扇區(qū)中的用戶數(shù)據(jù)的次數(shù)進行計數(shù)。另一個例子是跟蹤塊需要通過刷洗來刷新其中的數(shù)據(jù)以達到其適當?shù)倪吘壖墑e以補償隨著時間而產(chǎn)生的干擾的次數(shù)。在這些和其他情況中,塊、子塊(扇區(qū))或塊的群組經(jīng)歷大量的這樣的事件表示他們有某些問題。這些信息可被存儲器控制器用于替換塊、子塊或問題塊群組,或采取其他補救行為。
另外,上文說明的計數(shù)技術不限于在閃速EEPROM或其他非揮發(fā)性存儲系統(tǒng)中使用。這些計數(shù)可以應用在任何必須或需要對操作過程中發(fā)生的或系統(tǒng)使用的一個或多個事件進行計數(shù)的電子系統(tǒng)。
雖然本發(fā)明的多個方面已經(jīng)聯(lián)系具體的示例性實施方式進行了說明,應理解本發(fā)明在附錄的權利要求書的完整范圍內(nèi)被授權保護。
附錄一種新的壓縮隨機整數(shù)事件計數(shù)器方案此構(gòu)思可以用在任何必須保持記錄特定事件發(fā)生的次數(shù)的情況中。跟蹤事件發(fā)生的次數(shù)的通常的方法是設計一個計數(shù)器,它在每次事件發(fā)生時增加。如果事件可能發(fā)生的最大次數(shù)為M次,那么為存儲此信息計數(shù)器需要N=log2M比特。因此,例如,如果希望跟蹤100次事件,則必須將20比特約3字節(jié)用于存儲此計數(shù)。注意20比特=2.5字節(jié)=20比特,而220=1048576?,F(xiàn)在,如果需要多個這樣的計數(shù)器,則存儲所有計數(shù)所需的總存儲空間將是巨大的。這恰恰是在每個扇區(qū)一個計數(shù)器的基礎上在閃存中實現(xiàn)熱計數(shù)時的情況。同樣,每當一個扇區(qū)被編程或擦除時,對該扇區(qū)的熱計數(shù)進行更新,無論從存儲器的性能速度還是從頻繁更新每個扇區(qū)的熱計數(shù)產(chǎn)生的磨損來說,都是一個負擔。每個包括熱計數(shù)的512字節(jié)的扇區(qū)通常需要額外的3字節(jié)來存儲扇區(qū)循環(huán)的周期(編程和擦除)數(shù)。
使用固定的增長概率的簡單方法新的構(gòu)思允許將每扇區(qū)的3個熱計數(shù)字節(jié)壓縮到每扇區(qū)1個熱計數(shù)字節(jié)。如果愿意放棄精度,則新的熱計數(shù)方案的最簡單形式如下采用一個12位偽隨機數(shù)生成器,它能產(chǎn)生一個概率p(在這里p=1/4096=0.0002441)。產(chǎn)生此概率的一個方法是通過在每次一個扇區(qū)被編程或擦除時生成一個隨機的12位二進制整數(shù)。當且僅當此12位整數(shù)與某個特定的12位整數(shù)(比如說101111010001)匹配時,對應于要被寫入的扇區(qū)的計數(shù)器將被增加。注意212=4096。每次一個扇區(qū)被編程時,此扇區(qū)的計數(shù)器增加整數(shù)值1的概率為p。平均起來,每4096次編程事件將使計數(shù)器增加一次。
現(xiàn)在,我們必須區(qū)分實際計數(shù)A和此計數(shù)的表示R,其中實際計數(shù)A是給定扇區(qū)被編程的次數(shù),計數(shù)表示R約為A的1/4096。我們記錄和跟蹤的是R=r。任何給定時刻的R值不能準切確定A值=a,而是將給出A值的一個大概的估計。當R較小時,R不能較好地反映A,但隨著R變大時,在相對意義上R變成A的更精確的指示。這里“R”和“A”表示隨機變量,而“r”和“a”表示這些隨機變量可取的特定的整數(shù)值。
我們可以定義E為R增加事件。則概率(E)=Pr(E)=p,且概率(非E)=Pr(E)=1-p?!皉”=“a”次試驗中E發(fā)生的次數(shù)=具有由二項式分布給出的概率密度函數(shù)數(shù)f(r|a)的隨機變量Pr(R=r|A=a)=f(r|a)=(a!/(r!(a-r)!))pr(1-p)(a-r){R的平均值}=Exp(R)=a·p,以及{R的標準差}=SD=√[a·p(1-p)]以上公式對于二項式分布是已知的。
為了此熱計數(shù)方案,我們需要知道在給定R的某個已知值時A的期望值,以及在給定R的某個已知值時A的標準差。這是因為在任何給定時刻只有R值被存儲并能被取出,沒有保留確切的A值的知識。
有人試著寫出Exp(A|R=r)=r/p。雖然這可能是正確的,但為了確定,必須調(diào)用貝斯定理來得到一個表達式Pr(R=r|A=a)=f(a|r),然后此概率密度函數(shù)可用于計算Exp(A|R=r)和SD(A|R)。貝斯定理如下[Pr(A=a|R=r)]≡Pr(R=r|A=a)·Pr(A=a)Pr(R=r)]]>上述等式的右側(cè)的分母可通過采用下列恒等式改寫 其中我們知道實際計數(shù)A永遠不會小于表示值R(因此求和從r開始),并且我們假定實際計數(shù)A永遠不會超過某個大數(shù)字M(比方說M=1000000或M=1000000)。因此{A=r,A=r+1,A=r+2,…,A=M}形成一個分割。同樣,根據(jù)條件概率的定義 統(tǒng)計學中有一個定理,稱為“貝葉斯估計的均勻分布的宜取性”,它規(guī)定在我們這里的情況下,假設隨機變量A是均勻分布的是安全的。換句話說,如果我們假定實際計數(shù)永遠不會超過M,并且我們不知道表示值R,則A值在隨機時刻可以是0至M的任意整數(shù),為每個整數(shù)的概率與其他整數(shù)相同。因此,Pr(A=s)=常數(shù)=(1/(M+1)),我們可以將此常數(shù)提到求和的外部[Σs=rMPr(R=r|A=s)·Pr(A=s)]=[Pr(A=s)·Σs=rMPr(R=r|A=s)]]]>因為A是均勻分布的,因此對于任何s值和任何a值,我們知道Pr(A=s)=Pr(A=a) [Pr(R=r|A=a)·Pr(A=a)[Pr(A=s)]Σs=rM[Pr(R=r|A=s)]]=[Pr(R=r|A=a)Σs=rM[Pr(R=r|A=s)]]=arpr(1-p)(a-r)Σs=rMsrpr(1-p)(a-r)]]>其中ar=a!r!(a-r)!]]>因此[Pr(A=a|R=r)]=arpr(1-p)(a-r)Σs=rMsrpr(1-p)(s-r)=a!r!(a-r)!pr(1-p)(a-r)Σs=rMs!r!(s-r)!pr(1-p)(s-r)=a!r!(a-r)!pr(1-p)(a-r)1r!Σs=rMs!(s-r)!pr(1-p)(s-r)]]>=a!(a-r)!pr(1-p)(a-r)Σs=rMs!(s-r)!pr(1-p)(s-r)=[Πi=0(a-r+1)(a-i)]pr(1-p)(a-r)Σa=rM[Πi=0(a-s+1)(a-i)]pr(1-p)(s-r)=pr(1-p)(a-r)[Πi=0(a-r+1)(a-i)]prΣs=rM[Πi=0(a-s+1)(a-i)](1-p)(s-r)]]>=(1-p)(a-r)[Πi=0(a-r+1)(a-i)]Σs=rM[Πi=0(a-s+1)(a-i)](1-p)(s-r)=f(a|r)=]]>給定(R=r)時,(A=a)的概率給定R=r時A的平均值由下列等式給出Exp(A|R=r)=Σa=0Ma·f(a|r)]]>(A|R=r)的方差為Var(A|R=r)=Exp(A2|R=r)-[Exp(A|R=r)]2=[Σa=0Ma2·f(a|r)]-[Σa=0Ma·f(a|r)]2]]>
給定R=r時A的標準差為SD(A|R=r)=Exp(A2|R=r)·[Exp(A|R=r)]2=[Σa=0Ma2·f(a|r)]-[Σa=0Ma·f(a|r)]2]]>從上述公式中明顯可看出,甚至在這樣p=常數(shù)的簡單情況下,計算都需要計算機程序。但是Wald方程(參見來自John Wiley & Sons(1983)PP59的Sheld M.Ross所著的《隨機過程》一書)可用于容易地得到下列表達式Exp(A|R=r)=Exp(R|A=a)/p=r/p。因此,在p=1/4096的情況中,則Exp(A|R=r)=4095*r。
在給定R=r的某些值的情況下計算A的期望值和標準差的另一個方法是執(zhí)行蒙特卡洛仿真。當采用更為復雜的算法,例如以下部分中討論“取決于r的p值算法”時,這種仿真尤其有用。同樣,由于任何隨機數(shù)生成方案真正生成的是分布不完全均勻的偽隨機數(shù),執(zhí)行蒙特卡洛仿真的最佳平臺由將投入生產(chǎn)的同樣的處理器和固件組成。在這種方式中,隨機數(shù)生成方案的缺陷同樣包括到了仿真中。
此簡單情況中的蒙特卡洛仿真包括2個階段。第一階段包括兩個循環(huán),其中一個循環(huán)嵌套在另一個循環(huán)中。內(nèi)層循環(huán)在每次經(jīng)過時將實際計數(shù)“a”增加1.同樣,每當整數(shù)“a”增加時,生成一個12位的隨機二進制整數(shù)b,當且僅當此整數(shù)等于“101111010001”時,表示值“r”增加。正如前面所討論的,這樣的匹配的概率為1/4096。注意在外層循環(huán)內(nèi),內(nèi)層循環(huán)外,“a”和“r”均被設為0。這使每次試驗可以從a=0和r=0開始。只要r<256就重復內(nèi)層循環(huán)。平均起來內(nèi)層循環(huán)將運行1百萬次。內(nèi)層循環(huán)模擬扇區(qū)循環(huán)約1百萬次時單個扇區(qū)的熱計數(shù)所發(fā)生的情況(直至r在25510=111111112時飽和)。這可以被稱為一次試驗。另一方面,外層循環(huán)模擬多次試驗。外層循環(huán)可運行10000次,以產(chǎn)生具有統(tǒng)計意義的多次試驗的樣本。為了使第一階段中必須存儲的數(shù)據(jù)最小,我們只需要記錄對應于增加“r”的“a”值。每個固定的“r”值可專用一個文件。因此,例如,名為r123.out的文件將包含10000個整數(shù),它們是在10000試驗中每當“r”變?yōu)?23時“a”的值。我們將產(chǎn)生255個輸出文件。在階段2中,處理255個輸出文件中的每一個以獲取255個非零“r”值中每一個的平均值和標準差。
使用可變的增長概率值的更復雜的方法可采用更復雜的算法,以保持(給定R=r時A的標準差)與(給定R=r時A的期望值)的比率對于不同的“r”值來說或多或少是恒定的。這是很有用的,因為它根據(jù)對“r”值的知識限制了“a”值的相對不確定性。在這個新的方案中,“r”增加的概率“p”與當前的“r”值相關。
如果 0≤r<16, 則p=1/20=1.0如果 16≤r<32,則p=1/21=1/2=0.5如果 32≤r<48,則p=1/22=1/4=0.25如果 48≤r<64,則p=1/23=1/8=0.125……如果 240≤r<256, 則p=1/215=1/32768=0.0000305“r”可表示為從00000000至11111111間的二進制形式的簡單計數(shù),等價于十進制的0至255。在十六進制中,“r”值的范圍可以為00h至FFh??梢韵蛎總€熱計數(shù)“r”的用戶提供一個表,該表給出對于256個不同的“r”值中的每一個的A的平均值和A的標準差。如后面將要討論的,“r”也可以表示為4比特尾數(shù)和4比特指數(shù)的形式。但后一種表示方式是比較麻煩的。
此方案的蒙特卡洛仿真與前面討論的簡單方案非常相似,不同之處在于現(xiàn)在“p”值將取決于當前的“r”值,如上文所說明。
特定存儲器的新的熱計數(shù)和計數(shù)器方案每一頁(64個扇區(qū))將具有一個一字節(jié)長的熱計數(shù),它將存儲在該頁之外的另一頁的表中。每當確定計數(shù)需要增加時,熱計數(shù)將在控制器RAM中被更新。每當一頁被擦除時,將判定是否增加相應的熱計數(shù)或者不增加。在此方案中,增加熱計數(shù)的機率將大致與計數(shù)的當前值成反比。
包含熱計數(shù)的表必須為約5000字節(jié),以便包含約5000頁的熱計數(shù)。假定230=1G比特,則要擁有1G比特的用戶容量需要4096頁。一個僅包含10個扇區(qū)的表將能夠包含整個芯片的熱計數(shù)。此表的每個后續(xù)字節(jié)對應于下一物理頁的熱計數(shù)。當幾頁被寫入時,熱計數(shù)可在RAM中更新,直至遇到分區(qū)邊界,此時包含對應于該分區(qū)的熱計數(shù)表的扇區(qū)被一次更新。我們可以定義一個熱計數(shù)表包括64字節(jié),每個字節(jié)是屬于相同分區(qū)的一頁的熱計數(shù)。一個熱計數(shù)表不分割在兩個扇區(qū)中(即,每個“熱計數(shù)表扇區(qū)”包含8個完整的“熱計數(shù)表”)。
每當讀或?qū)懖僮骺缭椒謪^(qū)邊界時,一個熱計數(shù)表扇區(qū)被更新,所有的熱計數(shù)表扇區(qū)被讀取和處理,以便可執(zhí)行磨損均衡、刷洗和報廢活動。熱計數(shù)字節(jié)的邏輯順序表示相應頁的物理順序。同樣,熱計數(shù)表的邏輯順序表示相應分區(qū)的物理順序。
正常情況下更新熱計數(shù)扇區(qū)甚至不需要擦除,因為對于任何其他扇區(qū),更新一個扇區(qū)只需要將扇區(qū)數(shù)據(jù)寫到新的擦除之前的扇區(qū)中,并更新映射以反映數(shù)據(jù)的最新版本的位置。由于一個分區(qū)包括64頁,對應于該分區(qū)的熱計數(shù)將只是64個字節(jié)。在此方案中,每頁的一個字節(jié)熱計數(shù)在一百萬次循環(huán)中只增加256次。因此,即使只要每頁的熱計數(shù)增加時就更新它,包含512頁的熱計數(shù)扇區(qū)永不移動,則熱計數(shù)表扇區(qū)將更新512*256=131072次。這假定了512頁中的每一頁均循環(huán)了1百萬次。如果用戶扇區(qū)可容忍1百萬次循環(huán),則熱計數(shù)扇區(qū)同樣可以容忍131000次循環(huán)。
熱計數(shù)方案對應于每頁的8比特計數(shù)將包含4比特尾數(shù)M和4比特指數(shù)E。因此如果熱計數(shù)為01010010,則M=01012=510,而E=00102=210。因為在此例中指數(shù)為210,因此我們必須將一個糾正項A=11002加到尾數(shù)上以生成有效尾數(shù)N,其中N=N(E),A=A(E)為E的函數(shù)。
現(xiàn)在以10為基的實際熱計數(shù)為N(E)10*210**E10=[M+A(E)]*(2**E),作為替換,以2為基的熱計數(shù)為N(E)*(10)**E。
對于0至15間的計數(shù),每次對頁的擦除將100%確定地增加熱計數(shù)。對于16至46的計數(shù),每次擦除增加熱計數(shù)的機率為50%。
一般來說,增加的概率p是E的函數(shù),由下列等式給p=1/(2**E)以下是A(E)的值A(0000)=0000,A(0001)=1000,A(0010)=1100,A(0011)=1110,A(0100)=1111,A(0101)=1111,A(0110)=1111,A(0111)=1111,A(1111)=1111,最大的可能的數(shù)L由M=1111和E=1111給出L=(1111+1111)*(10)**(1111)=101579210最小的p為1/32768。
同樣的方法也可以用于對計數(shù)器活動進行計數(shù)。請參閱所附的Excel工作表獲取此方案的詳細信息。由于循環(huán)的單元在已經(jīng)循環(huán)了多次時的老化速度與其壽命開始時相比有所減慢,這個按比例的熱計數(shù)對于磨損均衡和報廢用途均具有足夠分辨率。
權利要求
1.一個保持對在一個電子系統(tǒng)的操作期間反覆出現(xiàn)的事件的發(fā)生次數(shù)的壓縮計數(shù)的方法,包括響應所述系統(tǒng)事件的各次發(fā)生,判定另一個具有隨機或偽隨機發(fā)生概率P的事件是否發(fā)生,以及當該隨機或偽隨機發(fā)生的事件發(fā)生時,更新所述系統(tǒng)事件的發(fā)生次數(shù)的壓縮計數(shù)。
2.一個保持對在一個電子系統(tǒng)的操作期間反覆出現(xiàn)的事件的發(fā)生次數(shù)的壓縮計數(shù)的方法,包括在每次發(fā)生事件時生成一個隨機數(shù),判定生成的偽隨機數(shù)何時與至少一個預定的值匹配,以及響應生成的隨機數(shù)與所述至少一個預定值之間的匹配,更新電子系統(tǒng)內(nèi)的所述事件發(fā)生次數(shù)的壓縮計數(shù)。
3.權利要求2的方法,其中所述至少一個預定值是可能生成的N個不同的隨機數(shù)值中的一個,電子系統(tǒng)中允許事件發(fā)生的最大期望次數(shù)為M,以及壓縮計數(shù)至少可保持至達到等于M除以N的數(shù)值。
4.權利要求2的方法,進一步包括在電子系統(tǒng)初始化時用一個第二隨機數(shù)生成器生成的數(shù)字作為隨機數(shù)生成器的種子。
5.權利要求2的方法,其中判定生成的隨機數(shù)何時與所述的至少一個預定值匹配考慮到了已經(jīng)發(fā)生的所述事件的累積次數(shù),以便隨著所述事件的累積次數(shù)增加,降低所生成的單個隨機數(shù)發(fā)生匹配的概率。
6.權利要求2-5中任意一個的方法,其中該方法在一個包括非揮發(fā)性閃存的電子系統(tǒng)中執(zhí)行,并且反覆出現(xiàn)的事件包括擦除閃存的被尋址的部分。
7.權利要求6的方法,其中生成隨機數(shù)和判定生成的隨機數(shù)何時與至少一個預定值相等都發(fā)生在單個擦除電壓脈沖施加到所述閃存系統(tǒng)的被尋址的部分期間。
8.一個閃速EEPROM系統(tǒng),包括多個非揮發(fā)性存儲單元塊,其中各個塊中的多個單元可同時擦除,一個控制器,它包括一個微處理器以控制進入被尋址的存儲單元塊的數(shù)據(jù)的編程、從被尋址的存儲單元塊中讀取數(shù)據(jù)以及從一塊或多塊被尋址的存儲單元塊中同時擦除數(shù)據(jù),在多個存儲單元塊中提供的存儲器,它保持與各個存儲單元塊有關的計數(shù),一個數(shù)字生成器,它響應一個或多個被尋址塊被擦除而隨機生成一個數(shù)字,以及一個比較器,它在生成的隨機數(shù)與由隨機數(shù)生成器生成的可能數(shù)字中至少一個預定數(shù)字匹配時,引起與被擦除的一個或多個被尋址塊相關的計數(shù)被更新。
9.權利要求8的系統(tǒng),其中數(shù)字生成器的特征是產(chǎn)生總數(shù)可控的可能的不同隨機數(shù)之一,其中所述可能的不同隨機數(shù)的總數(shù)由所述至少一個與被擦除的一個或多個被尋址塊相關的計數(shù)所控制。
全文摘要
一個非揮發(fā)性閃速系統(tǒng)通過在發(fā)生多次事件時只更新一個壓縮計數(shù)一次,來對該事件的發(fā)生,例如單個塊被擦除和重寫的次數(shù),進行計數(shù)。一個隨機或偽隨機數(shù)生成器響應單個事件發(fā)生輸出一個新的數(shù)字,當隨機數(shù)生成器的輸出與預定數(shù)字匹配時,更新壓縮計數(shù)。隨機數(shù)生成器響應單個事件生成預定數(shù)字的概率可作為某些其他因素的函數(shù)變化,其他因素可以是壓縮計數(shù)的值,當其提供對于事件數(shù)的更有用的跟蹤時。這些技術也可用于監(jiān)控閃存系統(tǒng)或其他類型的電子系統(tǒng)中的其他類型的重現(xiàn)事件。
文檔編號G11C16/02GK1470058SQ01817411
公開日2004年1月21日 申請日期2001年9月6日 優(yōu)先權日2000年9月14日
發(fā)明者尼瑪·莫克萊斯, 尼瑪 莫克萊斯 申請人:三因迪斯克公司