用于追蹤死扇區(qū)以自動搜索和謄寫的魯棒扇區(qū)id方案的制作方法
【專利摘要】本發(fā)明公開了一種用于追蹤死扇區(qū)以自動搜索和謄寫的魯棒扇區(qū)ID方案。一種耐限電的EEPROM的仿真器(18)使用存儲在每個扇區(qū)的扇區(qū)識別記錄(45)中的多個扇區(qū)狀態(tài)位(451)和前向/反向跳過標(biāo)志(452、453)管理在易失性存儲器(20)和非易失性存儲器(24)處的存儲器操作,以定義多個順序地排列的多個狀態(tài)指示器來指定用于每個存儲器扇區(qū)的多個扇區(qū)配置狀態(tài),以及在前向謄寫和反向搜索操作期間自動地繞過非易失性存儲器陣列中的一個或多個死扇區(qū)。
【專利說明】用于追蹤死扇區(qū)以自動搜索和謄寫的魯棒扇區(qū)ID方案
【技術(shù)領(lǐng)域】
[0001]本發(fā)明通常涉及閃存存儲器及其操作方法。一方面,本發(fā)明涉及使用閃存存儲器來仿真電可擦可編程只讀存儲器(EEPROM)的系統(tǒng)及方法。
【背景技術(shù)】
[0002]電可擦可編程只讀存儲器(EEPROM)是與微控制器、微處理器、計算機(jī)和其它電子裝置(例如,汽車嵌入式控制器)一起使用以存儲數(shù)據(jù)的一種類型的非易失性存儲器(NVM)。EEPROM的典型特征在于多次地擦除和寫入存儲器的單個字節(jié)的能力,同時當(dāng)電源被斷開的時候,被編程的位置在延長的時段保留其數(shù)據(jù)。然而,因為對EEPROM存儲器的增加的成本和尺寸要求以及制作的困難,一些裝置使用可擦除閃存存儲器的扇區(qū)或塊的一部分仿真EEPROM存儲器來反映(miiror)存儲在RAM中的信息,使得所存儲的信息在裝置未通電時被保持在閃存存儲器中。然而,在克服閃存存儲器周期以及會不利地影響存儲在閃存陣列中的仿真的EEPROM數(shù)據(jù)完整性的可靠性方面還存在著挑戰(zhàn),例如在電源不穩(wěn)定時(被稱為“限電”)以及在裝置處的異步復(fù)位會導(dǎo)致在閃存存儲器處的鏡像信息的損壞。此外,在大量編程和擦除周期防止解決編程或擦除錯誤之后,閃存存儲器的潛在缺陷可能會導(dǎo)致用于扇區(qū)的閃存操作失敗,在這種情況下,“死(DEAD)”扇區(qū)被宣告為無效并從操作流中被丟棄。雖然已提出EEPROM仿真的扇區(qū)識別方案以使用與扇區(qū)擦除操作交錯的狀態(tài)位使得能夠確定開始、停止和系統(tǒng)內(nèi)的扇區(qū)狀態(tài),但發(fā)現(xiàn)這些方案在更新步驟期間存在缺陷并且沒有提供追蹤閃存存儲器中的死扇區(qū)的能力。
【專利附圖】
【附圖說明】
[0003]在結(jié)合附圖考慮下面詳細(xì)的描述時,本發(fā)明及其獲得的多個目的、特征、以及優(yōu)點可以被理解,其中:
[0004]圖1是使用用于追蹤死扇區(qū)的扇區(qū)狀態(tài)識別方案實現(xiàn)仿真EEPROM的微控制器架構(gòu)的示意框圖;
[0005]圖2是根據(jù)本公開所選擇的實施例示出了可用于提供扇區(qū)狀態(tài)信息以及標(biāo)記一個或多個即將到來的死扇區(qū)的扇區(qū)狀態(tài)分類和相關(guān)聯(lián)的扇區(qū)頭碼的表。
[0006]圖3是根據(jù)本公開所選擇的實施例示出了使用扇區(qū)識別頭碼以在自動的搜索和謄寫序列中跳過死扇區(qū)的EEPROM仿真方案中的多個閃存陣列扇區(qū)的框圖;
[0007]圖4是根據(jù)本公開所選擇的實施例示出了用于編程扇區(qū)識別頭碼以在自動的搜索和謄寫序列中跳過死扇區(qū)的示例序列的EEPROM仿真方案中的多個閃存陣列扇區(qū)的框圖;
[0008]圖5是根據(jù)本公開所選擇的實施例可用于生成用于EEPROM仿真單元中的閃存陣列的受控的地址序列的地址生成單元的示意框圖;
[0009]圖6是根據(jù)本發(fā)明所選擇的實施例示出了用于使用閃存存儲器來執(zhí)行EEPROM仿真的各種方法的簡化示意流程圖?!揪唧w實施方式】
[0010]描述了用于執(zhí)行EEPROM仿真的方法、系統(tǒng)及裝置,通過在扇區(qū)識別頭處存儲用于每個編程操作的多個狀態(tài)位連同一對偏移標(biāo)志或標(biāo)記以允許圍繞死扇區(qū)的前向或反向通道,使用魯棒扇區(qū)識別方案來追蹤死扇區(qū)或塊的記錄以將信息存儲在非易失性存儲器中。通過交錯扇區(qū)編程操作與在扇區(qū)識別頭中定義了多個按順序排列以指定用于扇區(qū)的多個扇區(qū)配置狀態(tài)的多個狀態(tài)指示器的編程,在編程操作期間的限電或其它損壞事件可以由不能存儲狀態(tài)位中的一個來指示。并且通過將每個狀態(tài)指示器存儲為邏輯地組合(例如,經(jīng)由OR操作)的多個位,扇區(qū)狀態(tài)檢測方案不受編程干擾或單個位擦除缺陷的影響。也可以通過定義與多個狀態(tài)位對齊的獨特的扇區(qū)狀態(tài)更新步驟以順序地追蹤仿真EEPROM系統(tǒng)中的扇區(qū)的生命周期來提升耐限電性。在所選擇的實施例中,每個扇區(qū)的生命進(jìn)程由兩個不同的編程操作來標(biāo)記,以使它們耐限電并且通過用兩個偏移標(biāo)志來編程每個扇區(qū)識別頭在自動的搜索和謄寫例程期間追蹤死扇區(qū)以允許前向或反向通過扇區(qū),以及發(fā)出即將遇到死扇區(qū)的警告。
[0011]在本公開中,描述了解決了現(xiàn)有技術(shù)中的各種問題的仿真EEPROM存儲器裝置的改進(jìn)的系統(tǒng)、裝置及其制造方法,其中,在參照這里提供的附圖和詳細(xì)說明書回顧本申請的剩余部分之后,傳統(tǒng)的解決方案和技術(shù)的各種限制和缺點對本領(lǐng)域技術(shù)人員將會變得明顯?,F(xiàn)在將參照附圖詳細(xì)描述本發(fā)明的各種說明性的實施例。雖然在下面的描述中闡述了各種細(xì)節(jié),但將理解,本發(fā)明可以在沒有這些具體細(xì)節(jié)的情況下實施,并且可以對這里描述的本發(fā)明做出很多實現(xiàn)方式特定的決定以實現(xiàn)裝置設(shè)計師的特定目標(biāo),例如與工藝技術(shù)的兼容性或設(shè)計相關(guān)的約束,這些從一個實現(xiàn)到另一個實現(xiàn)將是不同的。雖然這樣的開發(fā)努力可能是復(fù)雜并費(fèi)時的,然而它對受益于本公開的本領(lǐng)域中普通技術(shù)人員來說將是例行任務(wù)。例如,以框圖形式而不是詳細(xì)的示出了選定的方面,以避免限制或模糊本發(fā)明。這里提供的詳細(xì)描述的一些部分根據(jù)算法和對計算機(jī)存儲器中存儲的數(shù)據(jù)進(jìn)行操作的指令來呈現(xiàn)。這樣的描述和表示被本領(lǐng)域技術(shù)人員用來描述并將他們工作的實質(zhì)傳達(dá)到本領(lǐng)域其他技術(shù)人員。通常,算法指導(dǎo)致期望結(jié)果的步驟的自相一致的序列,其中“步驟”指物理量的操縱,所述物理量可以但不必需采用能夠被存儲、傳輸、組合、比較以及以其它方式操縱的電或磁信號的形式。常見的用法將這些信號稱為位、值、元素、符號、字符、術(shù)語、數(shù)字等。這些和類似的術(shù)語可以與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián),并且僅僅是應(yīng)用于這些量的方便的標(biāo)簽。除非從下面的討論中明顯另有特別聲明,否則應(yīng)理解,在整個說明書,使用諸如“處理”或“計算” “或運(yùn)算”或“確定”或“顯示”等術(shù)語的討論,指計算機(jī)系統(tǒng)或類似的電子計算裝置、狀態(tài)機(jī)、電子電路、邏輯、固件、專用集成電路(ASIC)、或計算電路或模塊,該計算電路或模塊操縱并將在計算機(jī)系統(tǒng)的寄存器和存儲器內(nèi)表示為物理(電子)量的數(shù)據(jù)轉(zhuǎn)換成在計算機(jī)系統(tǒng)的寄存器和存儲器或者其它這樣的信息存儲器、傳輸和顯示裝置內(nèi)類似地表示為物理量的其它數(shù)據(jù)。
[0012]圖1是數(shù)據(jù)處理裝置架構(gòu)100的示意框圖,所述數(shù)據(jù)處理裝置架構(gòu)100包括仿真EEPROM裝置18,其用于在掩飾使用非易失性EEPROM存儲器或閃存作為唯一的存儲器存儲裝置的限制和缺點時提供EEPROM存儲器的非易失性存儲功能。如圖所示,仿真EEPROM裝置18包括易失性隨機(jī)存取存儲器(RAM)20、存儲器控制器22、以及被存儲器控制器22中的EEPROM仿真單元23連接和控制的閃存陣列存儲器24。如將理解的,EEPROM仿真單元23在所選擇的實施例中可以整體或部分地被實現(xiàn)為軟件驅(qū)動,并且在其它實施例中可以整體或部分地被實現(xiàn)為硬件。在操作中,根據(jù)本公開所選擇的實施例,EEPROM仿真單元23實現(xiàn)了用于追蹤死扇區(qū)的扇區(qū)狀態(tài)識別方案。被實現(xiàn)為軟件、硬件、固件、或上述任何組合,EEPROM仿真單元結(jié)合仿真EEPROM的功能和閃存陣列24在RAM20處提供了隨機(jī)存儲器訪問,例如組織數(shù)據(jù)記錄、初始化和去初始化EEPR0M、報告EEPROM狀態(tài)以及讀、寫、和刪除數(shù)據(jù)記錄。在任何軟件實現(xiàn)中,軟件可以由單獨的處理器(例如,14)或由仿真EEPROM裝置18中的處理器或控制器(未示出)來執(zhí)行。
[0013]在圖1所示的示例中,數(shù)據(jù)處理裝置100可以被實現(xiàn)為微控制器(例如,嵌入式汽車控制器),其包括一個或多個CPU或處理器內(nèi)核14和用于可編程地存儲非易失性數(shù)據(jù)的仿真EEPROM裝置18。CPU14和仿真EEPROM裝置18經(jīng)由一個或多個總線或系統(tǒng)互連12被連接在一起以存儲在微控制器使用壽命期間頻繁地被寫入的數(shù)據(jù)(例如,診斷數(shù)據(jù)、自適應(yīng)控制數(shù)據(jù)、和/或安全數(shù)據(jù)),這需要數(shù)千周期的高編程/擦除耐力。為了避免與使用傳統(tǒng)的EEPROM存儲器存儲非易失性數(shù)據(jù)相關(guān)聯(lián)的成本和缺點,提供仿真EEPROM裝置18以使用隨機(jī)存取存儲器(RAM)20、存儲器控制器22以及用于存儲多個閃存存儲器塊或扇區(qū)的非易失性閃存存儲器陣列24來可編程地存儲非易失性數(shù)據(jù),每個塊或扇區(qū)包括一個或多個EEPROM數(shù)據(jù)記錄。在所選擇的實施例中,閃存陣列24可以被實現(xiàn)為NAND閃存、NOR閃存或其它類型的非易失性存儲器。存儲在閃存存儲器陣列24中的數(shù)據(jù)記錄指被排列用于處理猶如存儲在EEPROM中的數(shù)據(jù)條目或字段的集合,并且可以包括數(shù)據(jù)記錄狀態(tài)字段、數(shù)據(jù)記錄ID字段、數(shù)據(jù)大小字段和一個或多個數(shù)據(jù)字段。EEPROM數(shù)據(jù)記錄的具體排列由處理它的應(yīng)用程序規(guī)定,并且可以包括固定長度和可變長度記錄。
[0014]在所描述的仿真EEPROM裝置18中,存儲器控制器22經(jīng)由標(biāo)記有地址(ADDRESS)、DATA_IN、READ_DATA、狀態(tài)(STATUS)、以及控制(CONTROL)的信號線被連接到非易失性閃存陣列24。雖然未示出,但存儲器控制器22可以經(jīng)由類似的信號線被連接到隨機(jī)存取存儲器(RAM) 20。RAM20和存儲器控制器22也被連接到系統(tǒng)互連12。此外,復(fù)位信號可以被提供給CPU14和存儲器控制器22。該復(fù)位信號可以是,例如,用于數(shù)據(jù)處理裝置100的全局復(fù)位信號。存儲器控制器22包括具有用于實現(xiàn)用于追蹤死扇區(qū)的扇區(qū)狀態(tài)識別方案的程序代碼和/或電路的EEPROM仿真驅(qū)動和/或硬件模塊23。為了說明的目的,仿真EEPROM裝置18被示出為離散裝置,但仿真EEPROM裝置18可以被實現(xiàn)為包括數(shù)據(jù)處理裝置100的其它組件,例如處理器14的集成電路。如將理解的,仿真EEPROM裝置18可以被實現(xiàn)為獨立的閃存模塊,所述閃存模塊有其自身的處理功能或具有使用閃存存儲器來仿真EEPROM存儲器的微控制器、微處理器、計算機(jī)和其它電子裝置。
[0015]為了支持到RAM20的數(shù)據(jù)存取請求,存儲器控制器22被配置為在閃存陣列24處存儲和取回信息。存儲器控制器22可以通過經(jīng)由節(jié)點ADDRESS提供地址、經(jīng)由節(jié)點DATA_IN寫入數(shù)據(jù)、經(jīng)由節(jié)點STATUS更新用于扇區(qū)或記錄的狀態(tài)信息、以及在節(jié)點CONTROL處配置控制信息在閃存陣列24處存儲信息。類似地,存儲器控制器22可以通過在節(jié)點ADDRESS處提供地址以及在節(jié)點CONTROL處配置控制信息以在閃存陣列24處執(zhí)行讀取操作來取回存儲在閃存陣列24的信息,從而存儲在ADDRESS處的信息經(jīng)由節(jié)點READ_DATA返回到控制模塊22并且用于相應(yīng)的扇區(qū)或記錄的相關(guān)聯(lián)的狀態(tài)信息經(jīng)由節(jié)點STATUS返回。存儲器控制器22可以包括被配置用于管理與存儲器控制器22相關(guān)聯(lián)的程序的數(shù)據(jù)處理裝置,例如微處理器、微控制器、邏輯裝置或其組合。
[0016]在操作期間,處理器14 (或具有存儲器訪問權(quán)限的某些其它模塊或裝置)可以經(jīng)由系統(tǒng)互連12與RAM20直接地通信以經(jīng)由訪問請求存儲并取回在RAM20處的信息。在該設(shè)置中,在RAM20處存儲信息的訪問請求是“寫入訪問”,并且取回存儲在RAM20處的信息的訪問請求是“讀取訪問”。每個訪問請求包括與在RAM20處的位置相對應(yīng)的訪問地址。在寫入訪問的情況下,訪問請求還包括要被寫入到所提供的地址的數(shù)據(jù)信息。響應(yīng)于寫入訪問,RAM20將接收的寫數(shù)據(jù)存儲在與所接收的寫地址相關(guān)聯(lián)的存儲器位置處。響應(yīng)于讀取訪問,RAM20取回存儲在由地址指示的存儲器位置的數(shù)據(jù)并經(jīng)由系統(tǒng)互連12提供數(shù)據(jù)。
[0017]在寫入訪問的情況下,存儲器控制器22將與寫入訪問相關(guān)聯(lián)的數(shù)據(jù)存儲在閃存陣列24處。因此在功率波動(包括功率損耗)或復(fù)位事件的情況下該數(shù)據(jù)將被保存在數(shù)據(jù)處理裝置100處。例如,如果存儲器控制器22確定與寫入請求相關(guān)聯(lián)的數(shù)據(jù)不同于存儲在由與寫請求相關(guān)聯(lián)的地址指示的RAM20的存儲器位置處的數(shù)據(jù),存儲器控制器22可以將與寫入請求相關(guān)聯(lián)的地址和數(shù)據(jù)作為記錄存儲在閃存陣列24處。但是如果閃存陣列24不能擦除單個記錄,存儲器控制器22為導(dǎo)致存儲在RAM20處的數(shù)據(jù)的修改的每個寫入訪問生成新記錄。作為結(jié)果,可以有與RAM20的特定存儲器位置相關(guān)聯(lián)的多個記錄,在這種情況下,與特定存儲器地址相關(guān)聯(lián)的最近創(chuàng)建的記錄存儲用于該地址的最新或有效的數(shù)據(jù),并且與RAM20的地址相關(guān)聯(lián)的已被較新數(shù)據(jù)替代的任何數(shù)據(jù)被稱為是無效的。
[0018]在創(chuàng)建新記錄的時候,存儲器控制器22以順序的方式操作,從而每個新記錄被存儲在邏輯上相鄰的位置處,并緊隨用于存儲響應(yīng)于先前的寫入訪問所創(chuàng)建的記錄的位置。隨著數(shù)據(jù)在RAM20處被存儲以及與更新相對應(yīng)的連續(xù)記錄在閃存陣列24處被創(chuàng)建,將信息存儲在閃存陣列24的可用空間減小。為了在閃存存儲器中提供足夠的存儲空間用于新記錄,存儲器控制器22可以被配置用于確定在閃存陣列24處的可用空間的數(shù)量何時低于定義的或可編程的閾值。當(dāng)達(dá)到閾值時,存儲器控制器22在所選擇的扇區(qū)或塊中執(zhí)行數(shù)據(jù)整合和數(shù)據(jù)擦除,以確保有順從最近更新的位置并且可用于響應(yīng)于在RAM20處的數(shù)據(jù)更新容納新記錄的空位置。通過連續(xù)地創(chuàng)建新記錄、整合記錄、以及擦除扇區(qū)來執(zhí)行用于管理閃存扇區(qū)的處理以使得閃存陣列24中的新扇區(qū)可用于存儲數(shù)據(jù)記錄。
[0019]在圖1中,參照多個閃存存儲器塊或扇區(qū)30、32、34、36和38 (扇區(qū)30-38)示出了用于管理仿真EEPROM裝置18中的非易失性閃存存儲器24中的閃存扇區(qū)的處理,其中扇區(qū)是用于存儲一個或多個記錄的閃存陣列24的邏輯上連續(xù)的部分。閃存陣列24還可以包括包括一個或多個空扇區(qū)的空區(qū)域40。空扇區(qū)指其中分配用于存儲記錄的所有位置都被擦除的扇區(qū)。所示出的扇區(qū)30-38包括最早的扇區(qū)30 (最近最少填充的扇區(qū))、較早的扇區(qū)32(在填充最早的扇區(qū)30之后被填充的扇區(qū))、一個或多個較新填充的扇區(qū)34 (比較早的扇區(qū)32更近被填充的扇區(qū))、最新填充的扇區(qū)36 (最近填充的扇區(qū))和當(dāng)前填充的扇區(qū)38。每個填充的扇區(qū)30、32、34和36不包括在所有位置都包含記錄或包含與扇區(qū)相關(guān)聯(lián)的狀態(tài)信息的意義上的空位置,盡管將理解,在填充的扇區(qū)中的記錄可以包括可用于存儲用于與記錄相關(guān)聯(lián)的地址的附加數(shù)據(jù)的空間。
[0020]當(dāng)前填充的扇區(qū)38是將存儲在閃存陣列24中創(chuàng)建的下一個或“新”記錄的扇區(qū)。以說明的方式,當(dāng)前填充的扇區(qū)38可以包括用于存儲扇區(qū)識別頭碼的第一位置或記錄45,其可以被用于提供扇區(qū)狀態(tài)信息以及標(biāo)記一個或多個即將到來的死扇區(qū)。第一位置45可以是第一扇區(qū)頭或記錄,其包括用于存儲多個狀態(tài)位的第一字段451、用于存儲反向跳過(skip)或偏移標(biāo)志以避免在反向中的一個或多個相鄰的死扇區(qū)的第二字段452 (單獨或與擦除計數(shù)組合)、以及用于存儲前向跳過或偏移標(biāo)志以避免在前向的方向中的一個或多個相鄰的死扇區(qū)的第三字段453。字段451-453的組合可以被稱為用于當(dāng)前填充的扇區(qū)38的扇區(qū)頭。如下所述,多個狀態(tài)位被順序地寫入或編程到第一字段451以與單獨的編程操作交錯,使得任何限電或發(fā)生在狀態(tài)位的寫入或編程之間的其它損壞事件將可能造成不能存儲后者的狀態(tài)位并從而提供了失敗的編程操作的指示。
[0021]當(dāng)前填充的扇區(qū)38還可以包括在其中存儲有一個或多個記錄的一個或多個第二位置或記錄46。此外,當(dāng)前填充的扇區(qū)38可以包括包括狀態(tài)信息字段481、地址信息字段482和數(shù)據(jù)信息字段483的當(dāng)前填充的位置或記錄48。最后,當(dāng)前填充的扇區(qū)38可以包括一個或多個附加地闡述為包括“FFFF”的空位置50,F(xiàn)FFF對應(yīng)于在包括在擦除的扇區(qū)處的位置處出現(xiàn)的數(shù)據(jù)值。
[0022]在當(dāng)前填充的扇區(qū)38的示例編程操作中,在確定閃存陣列24處可用于存儲新記錄的擦除位置的數(shù)量低于閾值時,存儲器控制器22可以使用當(dāng)前填充的扇區(qū)38在陣列24的一個或多個扇區(qū)中執(zhí)行數(shù)據(jù)整合和數(shù)據(jù)擦除。當(dāng)滿足該閾值時,存儲器控制器22可以通過回顧最早的填充扇區(qū)30處的每個記錄,然后將在其中發(fā)現(xiàn)的每個有效的記錄壓縮并復(fù)制到當(dāng)前填充的扇區(qū)38中的當(dāng)前填充的位置或記錄48來執(zhí)行整合操作。特別是,為了復(fù)制記錄,存儲器控制器22執(zhí)行寫入訪問以在當(dāng)前填充的扇區(qū)38處創(chuàng)建新記錄并將被復(fù)制的記錄的內(nèi)容寫入到新記錄。一旦存儲器控制器22確定所有有效的記錄已從最早的填充扇區(qū)30被復(fù)制到當(dāng)前填充的扇區(qū)38,存儲器控制器22執(zhí)行擦除操作以擦除最早的填充扇區(qū)30。因此,整合操作釋放了空間用于在閃存陣列24處存儲附加記錄。
[0023]閃存存儲器24中的每個扇區(qū)30-38可以包括扇區(qū)識別位置或記錄(例如,45),其可以被用來通過存儲扇區(qū)狀態(tài)信息連同偏移標(biāo)志以標(biāo)記一個或多個即將到來的死扇區(qū)而促進(jìn)扇區(qū)處理。以這種方式,存儲器控制器22可以訪問與扇區(qū)相關(guān)聯(lián)的扇區(qū)狀態(tài)信息以識別扇區(qū)當(dāng)前正被如何使用。例如,扇區(qū)狀態(tài)信息可以被用于識別特定扇區(qū)是空的、擦除的、當(dāng)前填充的或滿的、或者正被用于另外的目的,例如壓縮或擦除另一個扇區(qū)。通過交錯存儲在扇區(qū)識別位置/記錄中的狀態(tài)位的編程,仿真EEPROM裝置18提供了耐限電并且不受單一位磨損機(jī)制和干擾問題的影響的魯棒狀態(tài)系統(tǒng)。這是通過使用每個狀態(tài)位所分配的多個物理位來定義多個全面的配置狀態(tài)定義而實現(xiàn)的。仿真EEPROM裝置18還可以處理扇區(qū)識別位置/記錄中的偏移標(biāo)志以管理閃存陣列24中的死扇區(qū)的存在,從而可以使用自動搜索算法。
[0024]現(xiàn)在轉(zhuǎn)到圖2,圖2根據(jù)本公開所選擇的實施例示出了可以被用于提供扇區(qū)狀態(tài)信息以及用來標(biāo)記一個或多個即將到來的死扇區(qū)的扇區(qū)狀態(tài)分類和相關(guān)聯(lián)的扇區(qū)頭碼的表200。表200包括包含扇區(qū)分類的第一列210、包含與每個扇區(qū)分類相關(guān)聯(lián)的示例扇區(qū)狀態(tài)位(以二進(jìn)制的形式)的第二列212、以及包含來自第二列212的狀態(tài)位的“或運(yùn)算”組的第三列214。在所選擇的實施例中,隨著扇區(qū)分類進(jìn)展通過編程操作的序列,存儲器控制器22被配置用于更新與第二列212或第三列214對應(yīng)的扇區(qū)頭中的扇區(qū)狀態(tài)位。在被用于在閃存陣列24處存儲記錄的狀態(tài)位僅可以被編程為“邏輯零”電平的實施例中,被用于識別扇區(qū)的當(dāng)前分類的扇區(qū)狀態(tài)位不同之處在于多少狀態(tài)位被編程為“邏輯零”電平。在表200的第二列212中所示的示例實施例中,被用于識別扇區(qū)狀態(tài)的扇區(qū)狀態(tài)位包括30個狀態(tài)位,其可以各自被排列為三個狀態(tài)位的10個狀態(tài)指示器組(例如,第一扇區(qū)狀態(tài)指示器(2:0)、第二扇區(qū)狀態(tài)指示器(5:3),...第十扇區(qū)狀態(tài)指示器(30:28)。如將理解的,狀態(tài)位的附加的或更少組可以包括在扇區(qū)狀態(tài)位中以識別附加的或更少的狀態(tài)分類。以這種方式,三個編程的狀態(tài)位的組中的每一個可以被用于區(qū)分每個扇區(qū)狀態(tài),單獨或與來自扇區(qū)頭碼的其它信息組合。在示例實現(xiàn)中,扇區(qū)狀態(tài)位被包含在扇區(qū)識別頭/記錄的位位置90:61中。替代地,或運(yùn)算扇區(qū)狀態(tài)位被包含在扇區(qū)識別頭/記錄的位位置70:61中。
[0025]雖然表200中所示的狀態(tài)位組的排列和分配示出了用于被擦除(ERASED)和就緒(READY)(第一編程)狀態(tài)的相同的邏輯值,將理解,狀態(tài)位可以被排列和分配使得識別的11個配置狀態(tài)的每一個具有其自身對應(yīng)的扇區(qū)狀態(tài)位。例如,ERASED狀態(tài)可以被分配狀態(tài)位配置 111_111_111_111_111_111_111_111_111_111,READY (第一編程)狀態(tài)可以被分配狀態(tài)位配置111_111_111_111_111_111_111_111_111_000, READY狀態(tài)可以被分配狀態(tài)位配置 111_111_111_111_111_111_111_111_000_000 等,使得壓縮(COMPRESS )狀態(tài)可以被分配狀態(tài)位配置 000_000_000_000_000_000_000_000_000_000。
[0026]如表200的第三列214所示,扇區(qū)位的每個扇區(qū)狀態(tài)指示器組可以通過對每個扇區(qū)位組應(yīng)用邏輯“0R”操作用相應(yīng)的邏輯扇區(qū)狀態(tài)位來表示。通過用被或運(yùn)算在一起的三個物理位表示每個邏輯扇區(qū)狀態(tài)位,保持在仿真EEPROM裝置18處的扇區(qū)狀態(tài)信息實現(xiàn)了對編程干擾(例如,限電)提高的免疫,并且還避免了由具有擦除問題的組中的狀態(tài)位中的一個引起的問題。
[0027]表200包括可以被包括在每個扇區(qū)識別頭或記錄中的附加扇區(qū)頭碼,所述附加扇區(qū)頭碼可以被用于標(biāo)記一個或多個即將到來的死扇區(qū)。例如,表200包括包含用于繞過在反向搜索方向中的死扇區(qū)的示例反向跳過碼或偏移標(biāo)志值的第四列216。反向跳過碼或偏移標(biāo)志值可以被存儲為二進(jìn)制或十六進(jìn)制值以指示在給定方向(例如,反向方向)要被跳過的相鄰的死扇區(qū)的數(shù)量。在所選擇的實施例中,每個反向跳過碼可以與表示扇區(qū)已被擦除的次數(shù)的扇區(qū)的ECOUNT (擦除周期計數(shù))值組合。無論是否與ECOUNT值組合,反向跳過碼都可以受到糾錯碼(ECC)的保護(hù)以檢測和糾正內(nèi)部的數(shù)據(jù)損壞。
[0028]雖然反向跳過碼可以指定任何期望數(shù)量的死扇區(qū),在所選擇的實施例中,反向跳過碼被用于指定最大值2的死扇區(qū),可以通過使用4個位在反向方向中跳過該死扇區(qū),其中2個位被分配到每個跳過的扇區(qū)。在這些實施例中,反向跳過碼可以有效地指定對應(yīng)于“沒有跳過”、“跳過I個扇區(qū)”和“跳過2個扇區(qū)”指令的0、1、2值。在三個或多個死扇區(qū)背靠背發(fā)生的不太可能的情況下,存儲器控制器22可以被配置用于重新編程扇區(qū)識別頭/記錄以創(chuàng)建將迫使軟件干預(yù)的ECC雙重故障。在一個示例實現(xiàn)中,ECC保護(hù)的反向跳過碼和ECOUNT值被包含在扇區(qū)識別頭/記錄的位位置60:22中。
[0029]表200還包括包含用于在前向謄寫的方向中繞過死扇區(qū)的示例前向跳過碼或偏移標(biāo)志的第五列218。通過將前向跳過碼或偏移標(biāo)志值存儲為二進(jìn)制或十六進(jìn)制值,指示在給定方向(例如,前向)要被跳過的相鄰的死扇區(qū)的數(shù)量。在所選擇的實施例中,前向跳過碼可以受到糾錯碼(ECC)的保護(hù)以檢測和糾正內(nèi)部的數(shù)據(jù)損壞。在所選擇的實施例中,前向跳過碼被用于指定在反向方向中可以被跳過的最大值2的死扇區(qū),雖然可以通過前向跳過碼指定任何期望數(shù)量的死扇區(qū)。通過使用具有被分配到每個跳過的扇區(qū)的2個位的4個位,前向跳過碼可以有效地指定對應(yīng)于“沒有跳過”、“跳過I個扇區(qū)”和“跳過2個扇區(qū)”指令的0、1、2值。在三個或多個死扇區(qū)背靠背發(fā)生的不太可能的情況下,存儲器控制器22可以被配置用于重新編程扇區(qū)識別頭/記錄以創(chuàng)建將迫使軟件干預(yù)的ECC雙重故障。在一個示例實現(xiàn)中,ECC保護(hù)的前向跳過碼被包含在扇區(qū)識別頭/記錄的位位置21:0中。
[0030]通過在表200的第二列212中所示的狀態(tài)位的排列,存儲器控制器22可以被配置用于交錯不同的扇區(qū)編程操作與狀態(tài)位的第一和第二組的連續(xù)編程。例如,在第一編程操作期間(例如,將扇區(qū)配置為READY),第一組狀態(tài)位(例如,第一扇區(qū)狀態(tài)指示器(2:0))可以被編程,以及在后續(xù)編程操作期間(例如,將扇區(qū)配置為填充(FILLING)(第一編程)),第二組狀態(tài)位(例如,第二扇區(qū)狀態(tài)指示器(5:3))可以被編程。這種交錯編程可以參照表200中的行221-231來說明。
[0031]特別是,表200中的第一行221包括扇區(qū)分類ERASED,其可以被表示為在第二列212中所示具有未編程的扇區(qū)狀態(tài)位值(例如,111_111_111_111_111_111_111_111_111_11I)以及反向跳過和ECOUNT值(例如,F(xiàn)FFF_FF)。如在第三列214中所示,來自扇區(qū)狀態(tài)位值的三個位組的邏輯OR組合生成了對應(yīng)于ERASED扇區(qū)狀態(tài)的或運(yùn)算的扇區(qū)狀態(tài)位值(例如,11_1111_1111)。在所選擇的實施例中,在第一組扇區(qū)狀態(tài)位值以及第一反向跳過和ECOUNT值中的“邏輯I”值是扇區(qū)擦除操作的結(jié)果,因此存儲器控制器22不需要執(zhí)行單獨的編程操作來存儲這些值。
[0032]表200中的行222包括扇區(qū)分類READY (第一編程),其可以被表示為如第二列212中所示,具有一組扇區(qū)狀態(tài)位值(有“邏輯I”值)和具有在ERASE操作之后已遞增的ECOUNT值。以這種方式,READY (第一編程)扇區(qū)分類可以通過第四列216中的ECOUNT值區(qū)別于ERASE扇區(qū)分類。如在第三列214中所示,來自扇區(qū)狀態(tài)位值的三個位組的邏輯OR組合生成與用于READY扇區(qū)狀態(tài)的第一編程操作對應(yīng)的或運(yùn)算扇區(qū)狀態(tài)位值(例如,11_1111_1111),并且第四和第五列216、218包含識別相鄰的死扇區(qū)的反向和前向跳過值(例如,O、I或2)。
[0033]表200中的行223包括扇區(qū)分類READY(或空(EMPTY)),其可以被表示為在第二列212 中所示具有一組扇區(qū)狀態(tài)位值(例如,111_111_111_111_111_111_111_111_111_000 ),其中,最低有效狀態(tài)位或位組(例如,三位組狀態(tài)位)被編程為“邏輯O”電平,從而區(qū)別READY扇區(qū)分類與READY (第一編程)扇區(qū)分類。如在第三列214中所示,來自扇區(qū)狀態(tài)位值的三位組的邏輯OR組合生成與用于READY扇區(qū)狀態(tài)的第二編程操作對應(yīng)的或運(yùn)算扇區(qū)狀態(tài)位值(例如,11_1111_1110),并且第四和第五列216、218包含識別相鄰的死扇區(qū)的反向和前向跳過值(例如,0、1或2)。READY扇區(qū)分類與例如在圖1的空區(qū)域40處的扇區(qū)對應(yīng)。
[0034]表200中的行224包括扇區(qū)分類FILLING (第一編程),其可以被表示為在第二列212 中所示,具有一組扇區(qū)狀態(tài)位值(例如,111_111_111_111_111_111_111_111_000_000 ),其中下一個最低有效狀態(tài)位或位組(例如,第四、第五和第六最低有效狀態(tài)位)被編程到“邏輯O”電平,從而區(qū)別FILLING(第一編程)扇區(qū)分類與READY扇區(qū)分類。如在第三列214中所示,來自扇區(qū)狀態(tài)位值的三位組的邏輯OR組合生成了與用于FILLING扇區(qū)狀態(tài)的第一編程操作對應(yīng)的或運(yùn)算扇區(qū)狀態(tài)位值(例如,11_1111_1100),并且第四和第五列216、218包含識別相鄰的死扇區(qū)的反向和前向跳過值(例如,O、I或2)。[0035]表200中的行225包括扇區(qū)分類FILLING (或充滿(FULL)),其可以被表示為在第二列212中所示,具有一組扇區(qū)狀態(tài)位值(例如,111_111_111_111_111_111_111_000_000_
000),其中下一個最低有效狀態(tài)位或位組(例如,第七、第八和第九最低有效狀態(tài)位)被編程到“邏輯O”電平,從而區(qū)別FILLING扇區(qū)分類與FILLING(第一編程)扇區(qū)分類。如在第三列214中所示,來自扇區(qū)狀態(tài)位值的三位組的邏輯OR組合生成與用于FILLING扇區(qū)狀態(tài)的第二編程操作對應(yīng)的或運(yùn)算扇區(qū)狀態(tài)位值(例如,11_1111_1000),并且第四和第五列216、218包含識別相鄰的死扇區(qū)的反向和前向跳過值(例如,O、I或2)。FILLING(或FULL)扇區(qū)分類與例如圖1的當(dāng)前填充38處的扇區(qū)對應(yīng),并且FULL扇區(qū)分類與圖1的填充的扇區(qū)30、32、34和36對應(yīng)。在所選擇的實施例中,附加的狀態(tài)位可以被用于區(qū)別FILLING扇區(qū)和FULL扇區(qū)。在其它實施例中,F(xiàn)ILLING扇區(qū)可以由存儲器控制器22通過從第一空扇區(qū)后向搜索來識別以定位具有扇區(qū)狀態(tài)位值=111_111_111_111_111_111_111_000_000_000的第一扇區(qū)。
[0036]表200中的行226包括扇區(qū)分類被擦除的先前扇區(qū)(PREVIOUS SECTOR BEINGERASED),其可以被表示為在第二列212中所示,具有一組扇區(qū)狀態(tài)位值(例如,111_111_111_111_111_111_000_000_000_000),其中下一個最低有效狀態(tài)位或位組(例如,第十、第十一和第十二最低有效狀態(tài)位)被編程到“邏輯O”電平,從而區(qū)別PREVIOUS SECTOR BEINGERASED扇區(qū)分類與FILLING扇區(qū)分類。如在第三列214中所示,來自扇區(qū)狀態(tài)位值的三位組的邏輯OR組合生成與先前扇區(qū)對應(yīng)的或運(yùn)算扇區(qū)狀態(tài)位值(例如,11_1111_0000 ),并且第四和第五列216、218包含識別相鄰的死扇區(qū)的反向和前向跳過值(例如,0、1或2)。
[0037]表200中的行227包括扇區(qū)分類合格擦除的先前扇區(qū)(PREVIOUS SECTORQUALIFIED FOR ERASE),其可以被表示為在第二列212中所示,具有一組扇區(qū)狀態(tài)位值(例如,111_111_111_111_111_000_000_000_000_000 ),其中下一個最低有效狀態(tài)位或位組(例如,第十三、第十四和第十五最低有效狀態(tài)位)被編程到“邏輯O”電平,從而區(qū)別PREVIOUSSECTOR QUALIFIED FOR ERASE扇區(qū)分類與 PREVIOUS SECTOR BEING ERASED扇區(qū)分類。如在第三列214中所示,來自扇區(qū)狀態(tài)位值的三位組的邏輯OR組合生成與用于擦除先前扇區(qū)的第二編程操作對應(yīng)的或運(yùn)算扇區(qū)狀態(tài)位值(例如,11_1110_0000),并且第四和第五列216、218包含識別相鄰的死扇區(qū)的反向和前向跳過值(例如,0、1或2)。
[0038]表200中的行228包括扇區(qū)分類先前扇區(qū)擦除完成(PREVIOUS SECTOR ERASECOMPLETE),其可以被表示為在第二列212中所示,具有一組扇區(qū)狀態(tài)位值(例如,111_111_111_111_000_000_000_000_000_000 ),其中下一個最低有效狀態(tài)位或位組(例如,第十六、第十七和第十八最低有效狀態(tài)位)被編程到“邏輯O”電平,從而區(qū)別PREVIOUS SECTORERASE COMPLETE 扇區(qū)分類與 PREVIOUS SECTOR QUALIFIED FOR ERASE 扇區(qū)分類。如在第三列214中所示,來自扇區(qū)狀態(tài)位值的三位組的邏輯OR組合生成與用于擦除先前扇區(qū)的第三編程操作對應(yīng)的或運(yùn)算扇區(qū)狀態(tài)位值(例如,11_1100_0000),并且第四和第五列216、218包含識別相鄰的死扇區(qū)的反向和前向跳過值(例如,O、I或2)。
[0039]表200中的行229包括扇區(qū)分類擦除完成(ERASE COMPLETED),其可以被表示為在第二列212中所示,具有一組扇區(qū)狀態(tài)位值(例如,111_111_111_000_000_000_000_000_ooo_ooo),其中下一個最低有效狀態(tài)位或位組(例如,第十九、第二十和第二 i 最低有效狀態(tài)位)被編程到“邏輯O”電平,從而區(qū)別ERASEC0MPLETED扇區(qū)分類與PREVIOUS SECTORERASE COMPLETE扇區(qū)分類。如在第三列214中所示,來自扇區(qū)狀態(tài)位值的三位組的邏輯OR組合生成與用于擦除先前扇區(qū)的第四編程操作對應(yīng)的或運(yùn)算扇區(qū)狀態(tài)位值(例如,11_1000_0000),并且第四和第五列216、218包含識別相鄰的死扇區(qū)的反向和前向跳過值(例如,0、1或2)。ERASE COMPLETED扇區(qū)分類被存儲在在填充最早填充的扇區(qū)之后立即被填充的FULL扇區(qū)處。例如,當(dāng)擦除圖1中的最早填充的扇區(qū)30時,圖1的較早填充的扇區(qū)32 被用于存儲扇區(qū)狀態(tài)位值=111_111_111_000_000_000_000_000_000_000。
[0040]表200中的行230包括扇區(qū)分類壓縮(COMPRESS)(第一編程),其可以被表示為在第二列212中所示,具有一組扇區(qū)狀態(tài)位值(例如,111_111_000_000_000_000_000_000_000_000),其中下一個最低有效狀態(tài)位或位組(例如,第二十二、第二十三和第二十四最低有效狀態(tài)位)被編程到“邏輯O”電平,從而區(qū)別COMPRESS (第一編程)扇區(qū)分類與ERASE COMPLETED扇區(qū)分類。如在第三列214中所示,來自扇區(qū)狀態(tài)位值的三位組的邏輯OR組合生成與用于COMPRESS扇區(qū)狀態(tài)的第一編程操作對應(yīng)的或運(yùn)算扇區(qū)狀態(tài)位值(例如,11_0000_0000),并且第四和第五列216、218包含識別相鄰的死扇區(qū)的反向和前向跳過值(例如,O、I或2)。
[0041]表200中的行231包括扇區(qū)分類COMPRESS,其可以被表示為在第二列212中所示,具有一組扇區(qū)狀態(tài)位值(例如,111_000_000_000_000_000_000_000_000_000 ),其中下一個最低有效狀態(tài)位或位組(例如,第二十五、第二十六和第二十七最低有效狀態(tài)位)被編程到“邏輯O”電平,從而區(qū)別COMPRESS扇區(qū)分類與COMPRESS (第一編程)扇區(qū)分類。如在第三列214中所示,來自扇區(qū)狀態(tài)位值的三位組的邏輯OR組合生成與用于COMPRESS扇區(qū)狀態(tài)的第二編程操作對應(yīng)的或運(yùn)算扇區(qū)狀態(tài)位值(例如,10_0000_0000),并且第四和第五列216、218包含識別相鄰的死扇區(qū)的反向和前向跳過值(例如,0、1或2)。注意,在扇區(qū)變成最早填充的扇區(qū)和被壓縮并隨后被擦除的候選之前,在先前最早填充的扇區(qū)被擦除時將會已經(jīng)有較早填充的扇區(qū),并已接收扇區(qū)狀態(tài)位值=111_111_111_000_000_000_000_000_000_000。
[0042]如上所述,扇區(qū)頭碼可以被順序地編程以追蹤隨著多個不同的編程操作進(jìn)展的每個扇區(qū)狀態(tài)分類的生命周期進(jìn)展,從而提供了檢測并響應(yīng)潛在的限電或其它損壞事件的能力。例如,可以單獨或與ECOUNT值組合使用扇區(qū)狀態(tài)位來檢測隨著ERASED扇區(qū)被配置為READY而發(fā)生的潛在的限電事件。在圖2中所示的示例中,通過以順序的方式編程ECOUNT值和第一組三個狀態(tài)位(例如,第一扇區(qū)狀態(tài)指示器(2:0),這些扇區(qū)頭碼指示READY (第一編程)和READY編程操作已發(fā)生以配置給定的扇區(qū)。但是如果存儲器控制器22取回指示ECOUNT值被編程并且第一組狀態(tài)位未被編程的扇區(qū)頭碼,那么這會向存儲器控制器22發(fā)出限電事件可能在用于READY扇區(qū)狀態(tài)編程操作的第二編程操作之前已經(jīng)發(fā)生的信號。這可以在如果在第一扇區(qū)狀態(tài)指示器(2:0)處編程狀態(tài)位時發(fā)生限電時發(fā)生,在這種情況下,存儲器控制器22將扇區(qū)分類為新擦除的扇區(qū)并且再一次在第一扇區(qū)狀態(tài)指示器(2:0)處編程狀態(tài)位以將新擦除的扇區(qū)識別為空或READY扇區(qū)。
[0043]此外或在替代方案中,扇區(qū)狀態(tài)位或位組(從最低有效位到較高有效位)的順序編程允許扇區(qū)狀態(tài)分類的每個生命周期進(jìn)程用兩個不同的編程操作來實現(xiàn),所述兩個不同的編程操作可以被追蹤以檢測潛在的限電或其它損壞事件。例如,以順序的方式編程第二和第三組三個狀態(tài)位(例如,第二扇區(qū)狀態(tài)指示器(5:3 )和第三扇區(qū)狀態(tài)指示器(8:6 )),扇區(qū)狀態(tài)位指示FILLING(第一編程)和FILLING編程操作已發(fā)生以配置給定的扇區(qū)。但是如果存儲器控制器22從扇區(qū)識別頭/記錄取回了扇區(qū)狀態(tài)位,其中第二組位被編程但第三組位(例如,111_111_111_111_111_111_111_111_000_000 )未被編程,那么這會向存儲器控制器22發(fā)出限電事件可能已在用于FILLING扇區(qū)狀態(tài)編程操作的第二編程操作之前發(fā)生的信號。這可能在如果在第三扇區(qū)狀態(tài)指示器(8:6)處編程狀態(tài)位時發(fā)生限電的情況下發(fā)生,在這種情況下,存儲器控制器22得出扇區(qū)是空扇區(qū)的結(jié)論,并且再一次在第二扇區(qū)狀態(tài)指示器(5:3)和第三扇區(qū)狀態(tài)指示器(8:6)處編程狀態(tài)位以將扇區(qū)分類為當(dāng)前填充的扇區(qū)。
[0044]同樣,如果第四和第五組三個狀態(tài)位(例如,第四扇區(qū)狀態(tài)指示器(11:9 )和第五扇區(qū)狀態(tài)指示器(14:12))被順序地編程以指示PREVIOUS SECTOR BEING ERASED和PREVIOUSSECTOR QUALIFIED ERASE編程操作已發(fā)生,則其中第四(而不是第五)位組被編程(例如,11ι_ιιι_ιιι_ιιι_ιιι_ιι 1_000_000_000_000)的扇區(qū)狀態(tài)位的任何取回,這將發(fā)出限電事件可能在PREVIOUS SECTOR QUALIFIED ERASE編程操作之前已發(fā)生的信號。這可能在如果在第五扇區(qū)狀態(tài)指示器(14:12)處編程狀態(tài)位時發(fā)生限電的情況下發(fā)生,在這種情況下,存儲器控制器22得出扇區(qū)是填充的扇區(qū)的結(jié)論,并且再一次在第四扇區(qū)狀態(tài)指示器(11:9)和第五扇區(qū)狀態(tài)指示器(14:12)處編程狀態(tài)位以分類扇區(qū)以指示先前扇區(qū)合格被擦除。
[0045]以類似的方式,如果第六和第七組三個狀態(tài)位(例如,第六扇區(qū)狀態(tài)指示器(17:15)和第七扇區(qū)狀態(tài)指示器(20:18))被順序地編程以指示PREVIOUS SECTOR ERASEDCOMPLETE和ERASE COMPLETED編程操作已發(fā)生,則在其中第六(而不是第七)組位被編程的狀態(tài)位的任何取回(例如,111_111_111_111_000_000_000_000_000_000),這發(fā)出限電事件可能在ERASE COMPLETED編程操作之前已發(fā)生的信號。這可能在如果在第七扇區(qū)狀態(tài)指示器(20:18)處編程狀態(tài)位時發(fā)生限電的情況下發(fā)生,在這種情況下,存儲器控制器22得出扇區(qū)是PREVIOUS SECTOR QUALIFIED FOR ERASE的結(jié)論,并且再一次在第六扇區(qū)狀態(tài)指示器(17:15)和第七扇區(qū)狀態(tài)指示器(20:18)處編程狀態(tài)位以分類扇區(qū)以指示擦除操作完成。
[0046]最后,如果第八和第九組三個狀態(tài)位(例如,第八狀態(tài)指示器(23:21)和第九狀態(tài)指示器(26:24))被順序地編程以表示COMPRESS (第一編程)和COMPRESS編程操作已發(fā)生,則在其中第八(而不是第九)組位被編程的狀態(tài)位的任何取回(例如,111_111_000_000_000_000_000_000_000_000),這發(fā)出限電事件可能在壓縮編程操作之前已發(fā)生的信號。這可能在如果在第九扇區(qū)狀態(tài)指示器(26:24)處編程狀態(tài)位時發(fā)生限電的情況下發(fā)生,在這種情況下,存儲器控制器22得出扇區(qū)擦除操作已完成的結(jié)論,并且再一次在第八扇區(qū)狀態(tài)指示器(23:21)和第九扇區(qū)狀態(tài)指示器(26:24)處編程狀態(tài)位以分類扇區(qū)以指示壓縮操作完成。
[0047]如這里所述的,扇區(qū)識別狀態(tài)位可以被存儲器控制器22用來定義與仿真EEPROM系統(tǒng)中的扇區(qū)的生命周期相匹配(align with)的獨特的扇區(qū)狀態(tài)更新步驟。為了完成這個,每個扇區(qū)的分類進(jìn)程(例如,從ERASED到READY)由兩個不同的編程操作標(biāo)記以使它們耐限電。如果第二編程操作可以成功的鑒定其合格,則可以允許在第一步驟上編程的失敗。通過對每個新扇區(qū)分類進(jìn)程使用兩個編程步驟,可以檢測并避免限電問題。
[0048]如將理解的,在仿真EEPROM操作期間記錄的一個或多個扇區(qū)或塊可能具有不能解決的編程或擦除錯誤。在這樣的情況下,失敗的扇區(qū)被宣布為無效并被從仿真EEPROM操作丟棄,使得后續(xù)通過閃存存儲器陣列自動地跳過這個扇區(qū)。這被稱為被丟棄的或死扇區(qū)。為了跳過死扇區(qū),本公開所選擇的實施例提供了能夠自動追蹤系統(tǒng)內(nèi)的死扇區(qū)的扇區(qū)識別方案。為此,每個扇區(qū)識別頭/記錄存儲一個或多個偏移標(biāo)志,所述偏移標(biāo)志允許前向或反向通過扇區(qū)并發(fā)出即將遇到死扇區(qū)的警告。
[0049]現(xiàn)在參照圖3,根據(jù)本公開所選擇的實施例示出了使用扇區(qū)識別頭碼(例如,312-314)以在自動搜索和謄寫序列中跳過死扇區(qū)的EEPROM仿真方案中的多個閃存陣列扇區(qū)310、320、330、340的框圖300。在第一扇區(qū)310 (扇區(qū)O)中,頭碼包括用于存儲識別該扇區(qū)的狀態(tài)(例如,ERASED、FILLED等)的扇區(qū)識別狀態(tài)位的狀態(tài)位字段312、用于指定在反向通過扇區(qū)期間要被跳過的任何即將來臨的死扇區(qū)的存在的反向跳過字段313、用于指定在前向通過扇區(qū)期間要被跳過的任何即將來臨的死扇區(qū)的存在的前向跳過字段314、以及用于存儲第一扇區(qū)310的記錄的附加位置311。除了在其中各種字段被指示有“不在乎”值X的某些死扇區(qū)(例如,320)外,其它閃存陣列扇區(qū)320、330、340類似地被組織有狀態(tài)位字段(例如,332、342),反向跳過字段(例如,333、343),前向跳過字段(例如,334、344)、以及附加記錄字段(例如,331、341)。
[0050]在所描述的示例中,在第二扇區(qū)320 (扇區(qū)I)處的擦除失敗導(dǎo)致第二扇區(qū)被視為死扇區(qū)。為了避免死扇區(qū)320 (扇區(qū)1),用于第三扇區(qū)330 (扇區(qū)2)的扇區(qū)識別位置/記錄332-334被編程以在反向偏移標(biāo)志字段333處存儲反向跳過碼值RSKIP=I,從而指示任何反向搜索序列361在處理當(dāng)前扇區(qū)330 (扇區(qū)2)之后跳過(335)單個扇區(qū),從而避免死扇區(qū)320 (扇區(qū)I)并直接進(jìn)入到下一個運(yùn)作扇區(qū)310 (扇區(qū)O)。為了避免來自相反或謄寫方向的死扇區(qū)320 (扇區(qū)I),用于第一扇區(qū)310 (扇區(qū)O)的扇區(qū)識別位置/記錄312-314被編程以在前向偏移標(biāo)志字段314處存儲前向跳過碼值FSKIP=I,從而指示任何前向謄寫序列362在處理第一扇區(qū)310 (扇區(qū)O)之后跳過(315)單個扇區(qū),從而避免死扇區(qū)320 (扇區(qū)
I)并直接進(jìn)入到下一個運(yùn)作扇區(qū)330 (扇區(qū)2)。以類似的方式,剩余的扇區(qū)識別頭碼被編程以提供反向跳過碼值RSKIP=O和前向跳過碼值FSKIP=O以指示沒有相鄰的死扇區(qū),使得反向搜索和前向謄寫序列可以直接進(jìn)入到下一個相鄰的扇區(qū)。
[0051]為了識別要被跳過的扇區(qū)數(shù)量,反向和前向跳過字段可以包括被分配到每個被跳過的扇區(qū)的多個位(例如,2)。例如,如果在反向方向可以有最大值為兩個扇區(qū)被跳過并且兩個位被分配到每個被跳過的扇區(qū),那么rskip=iiii將指示不需要扇區(qū)跳過(或rskip=o)。同樣,Rskip=Iioo將指示一個相鄰的扇區(qū)應(yīng)該被跳過(或RSKip=I),以及Rskip=OOOO將指示兩個相鄰的扇區(qū)應(yīng)該被跳過(或rskip=2)。
[0052]為了避免來自存儲用于取回和參考的死扇區(qū)位置信息和通過硬件處理的計算費(fèi)用、復(fù)雜性和延遲,本公開所選擇的實施例直接編程扇區(qū)頭碼中的反向和前向跳過碼或偏移標(biāo)志值以使得自動序列能夠從最早到最新通過扇區(qū)以用于謄寫的并反向用于記錄搜索操作。為了說明用于編程扇區(qū)識別頭碼的示例序列,現(xiàn)在參照圖4,其中示出了隨著時間的推移(例如,從t=l到t=n+l)在EEPROM仿真方案中的多個閃存陣列扇區(qū)410、420、430、440的框圖400。在示例閃存陣列中,每個扇區(qū)410、420、430、440被組織有狀態(tài)字段、反向跳過(RSKP )字段、前向跳過(FSKP )字段,以及指示有編程狀態(tài)(例如,READY,、COMPRESS、RECORDSFILLED等)的附加記錄字段。
[0053]在第一時間間隔(t=l)處,閃存陣列包括為READY的第一扇區(qū)410 (扇區(qū)O)和為FILLED的第四扇區(qū)440 (扇區(qū)3)。此外如在401處指示,在第二扇區(qū)420 (扇區(qū)I)處的扇區(qū)記錄421擦除失敗,而第三扇區(qū)430 (扇區(qū)2)包括指示先前扇區(qū)(例如,扇區(qū)I)正被擦除的(先前編程的)狀態(tài)字段碼(例如,11_1111_0000 )。在這個時間點上,扇區(qū)410中的狀態(tài)和FSKP字段以初始狀態(tài)編程以指定相應(yīng)的狀態(tài)碼,連同指示沒有扇區(qū)被跳過的跳過或偏移標(biāo)志值 RSKIP=O、FSKIP=O。
[0054]在第二時間間隔(t=2)處,如果下面的扇區(qū)未能擦除(如在401處指示的),前向跳過被添加到第一扇區(qū)410 (扇區(qū)O)的扇區(qū)識別位置/記錄(扇區(qū)ID)。在這點上,第二和第四扇區(qū)420、440的狀態(tài)保持不變。然而,第三扇區(qū)430(扇區(qū)2)包括指示第三扇區(qū)430中的記錄431正被壓縮的狀態(tài)字段432(例如,10_0000_0000)。此外并如在402處所指示的,標(biāo)記被放置在第一扇區(qū)410 (扇區(qū)O)的扇區(qū)識別位置/記錄(扇區(qū)ID)中以標(biāo)志在前向謄寫方向中即將來臨的DEAD扇區(qū)422。特別是,第一扇區(qū)410中的前向跳過字段411被編程以指示任何前向謄寫序列412在處理第一扇區(qū)410 (扇區(qū)O)之后跳過一個扇區(qū)(FSKP=I),從而避免死扇區(qū)420 (扇區(qū)I)并直接進(jìn)入到下一個運(yùn)作扇區(qū)430 (扇區(qū)2)。否則,扇區(qū)410、420、430、440中的狀態(tài)、RSKP和FSKP字段保持不變。
[0055]在第三、后續(xù)的時間間隔(t=n)處,死扇區(qū)之后的新扇區(qū)通過了 ERASE變化(如在403處所指示的)。在這點上,第一和第二扇區(qū)410、420的狀態(tài)保持不變。然而,在第三扇區(qū)430 (扇區(qū)2)處的扇區(qū)記錄433現(xiàn)在是擦除的,并且第四扇區(qū)440 (扇區(qū)3)包括指示先前扇區(qū)(扇區(qū)2)擦除完成的狀態(tài)字段441 (例如,11_1100_0000)。否則,扇區(qū)410、420、430、440中的狀態(tài)、RSKP和FSKP字段保持不變。
[0056]在第四時間間隔(t=n+l)處,反向跳過(并且可選的ECOUNT值)在成功的擦除操作(如在403所指示的)之后被添加到第三扇區(qū)420(扇區(qū)2)的扇區(qū)識別位置/記錄(扇區(qū)ID)。在這點上,第二和第四扇區(qū)420、440的狀態(tài)字段保持不變。然而,在第三扇區(qū)430 (扇區(qū)2)處的扇區(qū)記錄435現(xiàn)在是READY,并且第三扇區(qū)430 (扇區(qū)2)包括指示第三扇區(qū)430中的記錄435是READY的狀態(tài)字段436(例如,11_1111_1110)。此外并如在404處所指示的,標(biāo)記被放置在第三扇區(qū)430 (扇區(qū)2)的扇區(qū)識別位置/記錄(扇區(qū)ID)中以標(biāo)志在反向搜索方向中即將來臨的DEAD扇區(qū)423。特別是,反向跳過字段437在第三扇區(qū)430中被編程以指示任何反向搜索序列438在處理第三扇區(qū)430 (扇區(qū)2)之后跳過一個扇區(qū)(RSKP=I),從而避免死扇區(qū)420 (扇區(qū)I)并直接進(jìn)入到下一個運(yùn)作扇區(qū)410 (扇區(qū)O)。否則,扇區(qū)410、420、430、440中的狀態(tài)、RSKP和FSKP字段保持不變。
[0057]現(xiàn)在轉(zhuǎn)到圖5,示出了根據(jù)本公開所選擇的實施例可以被用于生成用于EEPROM仿真單元中的閃存陣列508的受控地址序列的地址生成單元506和相關(guān)的控制模塊502、504的示意框圖500。在所選擇的實施例中,地址生成單元和相關(guān)的控制模塊可以在仿真EEPROM裝置的存儲器控制器中被實現(xiàn)為軟件、硬件、固件或上述的任何組合以給閃存存儲器508提供受控的地址序列507,用于用編程的前向和反向跳過指令完全地自動操作搜索和謄寫操作以避免死扇區(qū),而無需耗時的軟件中斷程序來處理死扇區(qū)。雖然沒有明確示出,但閃存存儲器508存儲了被排列到扇區(qū)的多個記錄,每個都包括其中扇區(qū)分類狀態(tài)碼以及反向和前向跳過值已被編程的扇區(qū)識別位置/記錄(扇區(qū)ID)。隨著記錄509從閃存存儲器508中被讀出,扇區(qū)ID解碼模塊502使用從地址生成單元506接收的相關(guān)聯(lián)的AGU地址來解碼記錄以識別任何扇區(qū)識別位置/記錄(扇區(qū)ID),并從中提取被編程的反向和前向跳過值RSKP、FSKP。提取的RSKP和FSKP值作為后向跳過和前向跳過扇區(qū)計數(shù)值被提供到死扇區(qū)識別模塊504,從而指示分別在反向或前向方向跳過的扇區(qū)數(shù)量。為了引導(dǎo)在死扇區(qū)識別模塊504處的計算,地址生成單元506提供前向或反向指示(For/Rev)到死扇區(qū)識別模塊504以指示地址生成單元506是否是在前向謄寫或反向搜索模式中。通過這些輸入,死扇區(qū)識別模塊504通過將扇區(qū)跳過計數(shù)轉(zhuǎn)換成饋送到地址生成單元506的地址調(diào)整值生成扇區(qū)大小調(diào)整信號(S+/-扇區(qū)大小)。使用扇區(qū)大小調(diào)整信號,地址生成單元506可以被配置來生成受控地址序列507,用于在閃存存儲器508處的搜索和謄寫操作期間自動地避免死扇區(qū)。
[0058]為了說明用于用所公開的扇區(qū)識別頭碼提供自動搜索和謄寫操作的示例EEPROM仿真方法,現(xiàn)在參照圖6,其示出了根據(jù)本公開所選擇的實施例的用于編程反向和前向跳過值的各種方法的簡化示意流程圖600。在所述的方法中,隨著擦除操作被應(yīng)用于所選擇的扇區(qū),在閃存扇區(qū)的陣列的前向謄寫處理期間處理開始于步驟601。如果扇區(qū)擦除操作失敗(決定602的失敗結(jié)果),則處理將具有跳躍值的先前合格的扇區(qū)中的FSKIP值編程到要被處理以進(jìn)行壓縮的下一個合格的扇區(qū)(例如,非死扇區(qū))。隨著下一個合格的扇區(qū)的壓縮,下一個合格的扇區(qū)對其狀態(tài)字段編程以指示壓縮狀態(tài)(在步驟606處),并且壓縮操作對下一個合格的扇區(qū)中的記錄上執(zhí)行(在步驟608處)。
[0059]在某個后續(xù)點處,擦除操作在下一個合格的扇區(qū)上執(zhí)行。這可以發(fā)生在反向搜索操作期間。直到這樣的擦除操作發(fā)生,下一個合格的扇區(qū)的處理被擱置(決定610的否定結(jié)果)。然而,當(dāng)著手下一個合格的扇區(qū)的擦除操作時(決定610的肯定結(jié)果),處理返回到步驟602以評估擦除操作的成功。如果下一個合格的扇區(qū)的擦除也失敗,根據(jù)需要重復(fù)處理步驟604、606、608或直至指定的限制,從而更新被編程的FSKIP值以避免失敗的或死扇區(qū)。然而,如果扇區(qū)擦除操作成功(決定602的通過結(jié)果),那么在步驟612處被擦除的扇區(qū)用READY狀態(tài)對其狀態(tài)字段編程。此外,在步驟612處的處理將具有跳躍值的擦除扇區(qū)中的RSKIP值編程到要被處理的下一個合格扇區(qū)(例如,非死扇區(qū))。在所選擇的實施例中,ECOUNT值可以被包括在被擦除扇區(qū)中的RSKIP值的編程中。一旦FSKIP和RSKIP值被編程在鄰近于一個或多個死扇區(qū)的扇區(qū)中,則死扇區(qū)從EEPROM仿真處理中被除去。在步驟612之后,處理等待直到擦除操作被應(yīng)用于下一個扇區(qū)(步驟610),在此時處理返回到步驟602。
[0060]目前應(yīng)理解,本發(fā)明提供了一種用于仿真非易失性存儲器或閃存存儲器中的EEPROM存儲器的方法和設(shè)備。在所公開的方法和系統(tǒng)中,在第一非易失性存儲器扇區(qū)上執(zhí)行第一編程操作時,通過在扇區(qū)識別記錄中存儲第一狀態(tài)指示器來編程用于所述第一非易失性存儲器扇區(qū)的所述扇區(qū)識別記錄。隨后,在所述第一非易失性存儲器扇區(qū)上執(zhí)行第二編程操作時,通過在所述扇區(qū)識別記錄中存儲第二狀態(tài)指示器作為多個扇區(qū)狀態(tài)位的一部分來編程用于所述第一非易失性存儲器扇區(qū)的所述扇區(qū)識別記錄。在所選擇的實施例中,可以通過在執(zhí)行所述第一編程操作時在所述多個扇區(qū)狀態(tài)位中存儲第一多個狀態(tài)位,用所述第一狀態(tài)指示器來編程所述扇區(qū)識別記錄,并且可以通過在執(zhí)行所述第二編程操作時在所述多個扇區(qū)狀態(tài)位中存儲第二多個狀態(tài)位,用所述第二狀態(tài)指示器來編程所述扇區(qū)識別記錄,其中所述第二多個狀態(tài)位被鄰近于所述第一多個狀態(tài)位存儲并且在所述多個扇區(qū)狀態(tài)位中處于較高有效位位置。在所述扇區(qū)識別記錄中,所述多個扇區(qū)狀態(tài)位定義多個狀態(tài)指示器,所述順序地排列以指定用于所述第一非易失性存儲器扇區(qū)的多個扇區(qū)配置狀態(tài),其中需要所述第一和第二編程操作來改變用于所述第一非易失性存儲器扇區(qū)的扇區(qū)配置狀態(tài)。用這樣的排列,在確定所述扇區(qū)識別記錄包括所述第一狀態(tài)指示器但不包括所述第二狀態(tài)指示器時可以檢測與所述第一和第二編程操縱相關(guān)聯(lián)的可能的扇區(qū)損壞事件。在所述第一和第二編程操作分別是就緒第一編程操作和就緒完成編程操作的實施例中,所述第一和第二狀態(tài)指示器分別是擦除計數(shù)值和存儲在所述多個扇區(qū)狀態(tài)位中的第一組最低有效狀態(tài)位。在所述第一和第二編程操作分別是填充第一編程操作和填充完成編程操作的實施例中,所述第一和第二狀態(tài)指示器分別是存儲在所述多個扇區(qū)狀態(tài)位中的第一組較低有效狀態(tài)位和存儲在所述多個扇區(qū)狀態(tài)位中的第二相鄰組較高有效狀態(tài)位。在所述第一和第二編程操作分別是被擦除的先前扇區(qū)編程操作和合格擦除的先前扇區(qū)編程操作的實施例中,所述第一和第二狀態(tài)指示器分別是存儲在所述多個扇區(qū)狀態(tài)位中的第一組較低有效狀態(tài)位和存儲在所述多個扇區(qū)狀態(tài)位中的第二相鄰組較高有效狀態(tài)位。在所述第一和第二編程操作分別是先前扇區(qū)擦除完成編程操作和擦除完成編程操作的實施例中,所述第一和第二狀態(tài)指示器分別是存儲在所述多個扇區(qū)狀態(tài)位中的第一組較低有效狀態(tài)位和存儲在所述多個扇區(qū)狀態(tài)位中的第二相鄰組較高有效狀態(tài)位。在所述第一和第二編程操作分別是壓縮第一編程操作和壓縮完成編程操作的實施例中,所述第一和第二狀態(tài)指示器分別是存儲在所述多個扇區(qū)狀態(tài)位中的第一組較低有效狀態(tài)位和存儲在所述多個扇區(qū)狀態(tài)位中的第二相鄰組較高有效狀態(tài)位。在用所述第一和第二狀態(tài)指示器來編程所述扇區(qū)識別記錄時,可以確定所述第一非易失性存儲器扇區(qū)已擦除失敗,在這種情況下,可以通過在用于先前非易失性存儲器扇區(qū)的扇區(qū)識別記錄中存儲前向跳過指示器來編程用于鄰近于所述第一非易失性存儲器扇區(qū)的所述先前非易失性存儲器扇區(qū)的所述扇區(qū)識別記錄,以在前向謄寫序列期間自動地繞過所述第一非易失性存儲器扇區(qū)。此外或在替代方案中,在確定鄰近于所述第一非易失性存儲器扇區(qū)的后續(xù)非易失性存儲器扇區(qū)被成功地擦除時,可以通過在用于所述后續(xù)非易失性存儲器扇區(qū)的所述扇區(qū)識別記錄中存儲反向跳過指示器來編程用于所述后續(xù)非易失性存儲器扇區(qū)的扇區(qū)識別記錄,以在反向搜索序列期間自動地繞過所述第一非易失性存儲器扇區(qū)。
[0061]以另一種形式,提供了一種仿真EEPROM系統(tǒng),包括易失性RAM、非易失性存儲器、以及控制模塊。所述易失性RAM用于經(jīng)由一個或多個訪問請求存儲和訪問數(shù)據(jù)。所述非易失性存儲器包括用于在所述易失性隨機(jī)存取存儲器中存儲所述數(shù)據(jù)的記錄的多個扇區(qū),其中每個扇區(qū)包括相應(yīng)的扇區(qū)頭,該扇區(qū)頭用于存儲定義了多個狀態(tài)指示器的多個扇區(qū)狀態(tài)位,所述多個狀態(tài)指示器排列為順序地指定用于所述扇區(qū)的扇區(qū)配置狀態(tài)的生命周期序列。例如,所述多個狀態(tài)位可以包括:第一多個狀態(tài)位,用于在執(zhí)行第一編程操作時編程第一狀態(tài)指示器;以及第二多個狀態(tài)位,用于在執(zhí)行第二編程操作時編程第二狀態(tài)指示器,其中所述第二多個狀態(tài)位被鄰近于所述第一多個狀態(tài)位存儲并且在所述多個扇區(qū)狀態(tài)位中處于較高有效位位置。所述扇區(qū)頭還可以存儲用于所述非易失性存儲器中的一個或多個相鄰的死扇區(qū)的前向跳過指示器,所述前向跳過指示器可用于在前向謄寫序列期間自動地繞過所述一個或多個相鄰的死扇區(qū),和/或存儲用于所述非易失性存儲器中的一個或多個相鄰的死扇區(qū)的反向跳過指示器,所述反向跳過指示器可用于在反向搜索序列期間自動地繞過所述一個或多個相鄰的死扇區(qū)。更通常地,所述扇區(qū)頭可以存儲用于所述非易失性存儲器中的一個或多個相鄰的死扇區(qū)的扇區(qū)跳過指示器,所述扇區(qū)跳過指示器可用于在自動的搜索或謄寫操作期間自動地繞過所述一個或多個相鄰的死扇區(qū)。在所選擇的實施例中,所述非易失性存儲器可以被實現(xiàn)為用于存儲多個閃存存儲器扇區(qū)的NAND或NOR閃存存儲器陣列,每個所述閃存存儲器扇區(qū)包括一個或多個EEPROM數(shù)據(jù)記錄和相應(yīng)的扇區(qū)頭記錄。所述控制模塊被耦接到所述非易失性存儲器和所述易失性RAM,并且可操作用于利用第一和第二編程操作來編程每個扇區(qū)的扇區(qū)頭中的所述多個扇區(qū)狀態(tài)位以改變用于所述扇區(qū)的扇區(qū)配置狀態(tài)。在所選擇的實施例中,所述控制模塊包括地址生成單元,用于基于源自所述扇區(qū)頭中的所述扇區(qū)跳過指示器的扇區(qū)大小調(diào)整信號生成受控的地址序列。
[0062]以又一種形式,提供了一種仿真電可擦除可編程只讀存儲器(EEEPR0M)裝置和相關(guān)聯(lián)的操作方法。如所公開的,所述EEPROM裝置包括仿真存儲器,其具有用于在多個記錄中順序地存儲信息的多個扇區(qū),其中每個扇區(qū)包括:(I)扇區(qū)識別記錄,用于存儲定義多個狀態(tài)指示器的多個扇區(qū)狀態(tài)位,所述狀態(tài)指示器排列為順序地指定用于所述扇區(qū)的扇區(qū)配置狀態(tài)的生命周期序列;(2)前向跳過指示器,用于所述仿真存儲器中的一個或多個相鄰的死扇區(qū),所述前向跳過指示器可用于在前向謄寫序列期間自動地繞過所述一個或多個相鄰的死扇區(qū);以及(3)反向跳過指示器,用于所述仿真存儲器中的一個或多個相鄰的死扇區(qū),所述反向跳過指示器可用于在反向搜索序列期間自動地繞過所述一個或多個相鄰的死扇區(qū)。所述EEEPR0M裝置還包括耦接到所述仿真存儲器的存儲器控制器,其中所述存儲器控制器可操作用于利用第一和第二編程操作來編程每個扇區(qū)的所述扇區(qū)識別記錄中的所述多個扇區(qū)狀態(tài)位以改變用于所述扇區(qū)的扇區(qū)配置狀態(tài)。在所選擇的實施例中,所述仿真存儲器可以被實現(xiàn)為用于存儲多個閃存存儲器扇區(qū)的NAND或NOR閃存存儲器,每個所述閃存存儲器扇區(qū)包括一個或多個EEPROM數(shù)據(jù)記錄和相應(yīng)的扇區(qū)識別記錄。
[0063]雖然這里所公開的描述的示例性實施例針對用于檢測限電事件并在搜索和謄寫操作期間自動地消除死扇區(qū)處理的方法和裝置,但本發(fā)明并不必限于說明本發(fā)明的適用于各種EEPROM仿真方案的發(fā)明方面的示例實施例。此外,所選擇的實施例可以用其它存儲器系統(tǒng),例如動態(tài)隨機(jī)存取存儲器(DRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)、磁阻隨機(jī)存取存儲器(MRAM)、或相變隨機(jī)存取存儲器(PCRAM)、或硬件驅(qū)動存儲系統(tǒng)來實現(xiàn)。由于本發(fā)明可以以對具有這里教導(dǎo)的利益的本領(lǐng)域技術(shù)人員明顯的不同的但等價的方式來修改和實踐,因此,上面公開的特定實施例僅僅是說明性的并且不應(yīng)該被認(rèn)為是對本發(fā)明的限制。因此,前面的描述不旨在將本發(fā)明限制到所闡述的特定形式,相反,旨在涵蓋如可以包括在由所附權(quán)利要求定義的本發(fā)明的精神和范圍內(nèi)的這樣的替代物、修改以及等價物,從而本領(lǐng)域技術(shù)人員應(yīng)該理解,他們可以做出各種修改、替換和改變而不脫離以其最寬泛的形式的本發(fā)明的精神及范圍。
[0064]上面已就特定實施例描述了益處、其它優(yōu)點、以及問題的解決方案。然而,可以導(dǎo)致任何益處、優(yōu)點或解決方案發(fā)生或變得更加顯著的益處、優(yōu)點、問題的解決方案、以及任何元素不被解釋為任何或全部權(quán)利要求的關(guān)鍵的、必需的、或必要的特征或元件。如這里所使用的,術(shù)語“包括”或其任何其它變化形式旨在涵蓋非排他性內(nèi)容,例如其包括元素列表但不僅僅包括這些元素的處理、方法、物件、或裝置,而可以包括沒有明確列出的或是這樣的處理、方法、物件、或裝置固有的其它元素。
【權(quán)利要求】
1.一種仿真非易失性存儲器中的EEPROM存儲器的方法,包括: 在第一非易失性存儲器扇區(qū)上執(zhí)行第一編程操作時,通過在扇區(qū)識別記錄中存儲第一狀態(tài)指示器來編程用于所述第一非易失性存儲器扇區(qū)的所述扇區(qū)識別記錄;以及 在所述第一非易失性存儲器扇區(qū)上執(zhí)行第二編程操作時,通過在所述扇區(qū)識別記錄中存儲第二狀態(tài)指示器作為多個扇區(qū)狀態(tài)位的一部分來編程用于所述第一非易失性存儲器扇區(qū)的所述扇區(qū)識別記錄, 其中所述多個扇區(qū)狀態(tài)位由順序地排列的多個狀態(tài)指示器來定義以指定所述第一非易失性存儲器扇區(qū)的多個扇區(qū)配置狀態(tài),并且其中需要所述第一和第二編程操作來改變所述第一非易失性存儲器扇區(qū)的扇區(qū)配置狀態(tài)。
2.根據(jù)權(quán)利要求1所述的方法,還包括在確定所述扇區(qū)識別記錄包括所述第一狀態(tài)指示器但不包括所述第二狀態(tài)指示器時,檢測與所述第一和第二編程操作相關(guān)聯(lián)的可能的扇區(qū)損壞事件。
3.根據(jù)權(quán)利要求1所述的方法,其中存儲所述第一狀態(tài)指示器包括在執(zhí)行所述第一編程操作時,在所述多個扇區(qū)狀態(tài)位中存儲第一多個狀態(tài)位,并且其中存儲所述第二狀態(tài)指示器包括在執(zhí)行所述第二編程操作時,在所述多個扇區(qū)狀態(tài)位中存儲第二多個狀態(tài)位,其中所述第二多個狀態(tài)位被鄰近于所述第一多個狀態(tài)位存儲并且在所述多個扇區(qū)狀態(tài)位中處于較高有效位位置。
4.根據(jù)權(quán)利要求1所述的方法,其中所述第一和第二編程操作分別包括就緒第一編程操作和就緒完成編程操作,并且其中所述第一和第二狀態(tài)指示器分別包括擦除計數(shù)值和存儲在所述多個扇區(qū)狀態(tài) 位中的第一組最低有效狀態(tài)位。
5.根據(jù)權(quán)利要求1所述的方法,其中所述第一和第二編程操作分別包括填充第一編程操作和填充完成編程操作,并且其中所述第一和第二狀態(tài)指示器分別包括存儲在所述多個扇區(qū)狀態(tài)位中的第一組較低有效狀態(tài)位和存儲在所述多個扇區(qū)狀態(tài)位中的第二相鄰組較聞有效狀態(tài)位。
6.根據(jù)權(quán)利要求1所述的方法,其中所述第一和第二編程操作分別包括被擦除的先前扇區(qū)編程操作和合格擦除的先前扇區(qū)編程操作,并且其中所述第一和第二狀態(tài)指示器分別包括存儲在所述多個扇區(qū)狀態(tài)位中的第一組較低有效狀態(tài)位和存儲在所述多個扇區(qū)狀態(tài)位中的第二相鄰組較高有效狀態(tài)位。
7.根據(jù)權(quán)利要求1所述的方法,其中所述第一和第二編程操作分別包括先前扇區(qū)擦除完成編程操作和擦除完成編程操作,并且其中所述第一和第二狀態(tài)指示器分別包括存儲在所述多個扇區(qū)狀態(tài)位中的第一組較低有效狀態(tài)位和存儲在所述多個扇區(qū)狀態(tài)位中的第二相鄰組較聞有效狀態(tài)位。
8.根據(jù)權(quán)利要求1所述的方法,其中所述第一和第二編程操作分別包括壓縮第一編程操作和壓縮完成編程操作,并且其中所述第一和第二狀態(tài)指示器分別包括存儲在所述多個扇區(qū)狀態(tài)位中的第一組較低有效狀態(tài)位和存儲在所述多個扇區(qū)狀態(tài)位中的第二相鄰組較高有效狀態(tài)位。
9.根據(jù)權(quán)利要求1所述的方法,還包括: 確定所述第一非易失性存儲器扇區(qū)已擦除失??;以及 通過在用于鄰近于所述第一非易失性存儲器扇區(qū)的先前非易失性存儲器扇區(qū)的扇區(qū)識別記錄中存儲前向跳過指示器來編程用于先前非易失性存儲器扇區(qū)的所述扇區(qū)識別記錄以在前向謄寫序列期間自動地繞過所述第一非易失性存儲器扇區(qū)。
10.根據(jù)權(quán)利要求9所述的方法,還包括: 確定鄰近于所述第一非易失性存儲器扇區(qū)的后續(xù)非易失性存儲器扇區(qū)被成功地擦除;以及 通過在用于所述后續(xù)非易失性存儲器扇區(qū)的所述扇區(qū)識別記錄中存儲反向跳過指示器來編程用于所述后續(xù)非易失性存儲器扇區(qū)的扇區(qū)識別記錄以在反向搜索序列期間自動地繞過所述第一非易失性存儲器扇區(qū)。
11.一種仿真EEPROM系統(tǒng),包括: 易失性隨機(jī)存取存儲器,用于經(jīng)由一個或多個訪問請求存儲和訪問數(shù)據(jù); 非易失性存儲器,包括用于在所述易失性隨機(jī)存取存儲器中存儲所述數(shù)據(jù)的記錄的多個扇區(qū),所述多個扇區(qū)的每個扇區(qū)包括相應(yīng)的扇區(qū)頭,所述扇區(qū)頭用于存儲定義多個狀態(tài)指示器的多個扇區(qū)狀態(tài)位,所述多個狀態(tài)指示器排列為順序地指定用于所述扇區(qū)的扇區(qū)配置狀態(tài)的生命周期序列;以及 控制模塊,其耦接到所述非易失性存儲器和所述易失性存儲器,其中所述控制模塊可操作用于利用第一和第二編程操作來編程每個扇區(qū)的扇區(qū)頭中的所述多個扇區(qū)狀態(tài)位以改變用于所述扇區(qū)的扇 區(qū)配置狀態(tài)。
12.根據(jù)權(quán)利要求11所述的仿真EEPROM系統(tǒng),其中所述非易失性存儲器包括用于存儲多個閃存存儲器扇區(qū)的閃存存儲器,每個所述閃存存儲器扇區(qū)包括一個或多個EEPROM數(shù)據(jù)記錄和相應(yīng)的扇區(qū)頭記錄。
13.根據(jù)權(quán)利要求12所述的仿真EEPROM系統(tǒng),其中閃存存儲器包括NAND閃存陣列或NOR閃存陣列。
14.根據(jù)權(quán)利要求11所述的仿真EEPROM系統(tǒng),其中所述多個狀態(tài)位包括: 第一多個狀態(tài)位,用于在執(zhí)行第一編程操作時編程第一狀態(tài)指示器;以及 第二多個狀態(tài)位,用于在執(zhí)行第二編程操作時編程第二狀態(tài)指示器, 其中所述第二多個狀態(tài)位被鄰近于所述第一多個狀態(tài)位存儲并且在所述多個扇區(qū)狀態(tài)位中處于較高有效位位置。
15.根據(jù)權(quán)利要求11所述的仿真EEPROM系統(tǒng),其中每個扇區(qū)頭還包括用于所述非易失性存儲器中的一個或多個相鄰的死扇區(qū)的用于存儲前向跳過指示器的前向跳過指示器位置,所述前向跳過指示器能用于在前向謄寫序列期間自動地繞過所述一個或多個相鄰的死扇區(qū)。
16.根據(jù)權(quán)利要求11所述的仿真EEPROM系統(tǒng),其中每個扇區(qū)頭還包括用于所述非易失性存儲器中的一個或多個相鄰的死扇區(qū)的用于存儲反向跳過指示器的反向跳過指示器位置,所述反向跳過指示器能用于在反向搜索序列期間自動地繞過所述一個或多個相鄰的死扇區(qū)。
17.根據(jù)權(quán)利要求11所述的仿真EEPROM系統(tǒng),其中每個扇區(qū)頭還包括用于所述非易失性存儲器中的一個或多個相鄰的死扇區(qū)的用于存儲扇區(qū)跳過指示器的扇區(qū)跳過指示器位置,所述扇區(qū)跳過指示器能用于在自動的搜索或謄寫操作期間自動地繞過所述一個或多個相鄰的死扇區(qū)。
18.根據(jù)權(quán)利要求17所述的仿真EEPROM系統(tǒng),其中所述控制模塊包括地址生成單元,用于基于源自所述扇區(qū)頭中的所述扇區(qū)跳過指示器的扇區(qū)大小調(diào)整信號生成受控的地址序列。
19.一種仿真電可擦除可編程只讀存儲器EEEPR0M裝置,包括: 仿真存儲器,其具有用于在多個記錄中順序地存儲信息的多個扇區(qū),每個扇區(qū)包括: 扇區(qū)識別記錄位置,用于存儲定義多個狀態(tài)指示器的多個扇區(qū)狀態(tài)位,所述多個狀態(tài)指示器排列為順序地指定用于所述扇區(qū)的扇區(qū)配置狀態(tài)的生命周期序列; 前向跳過指示器位置,用于所述仿真存儲器中的一個或多個相鄰的死扇區(qū),所述前向跳過指示器位置能用于在前向謄寫序列期間自動地繞過所述一個或多個相鄰的死扇區(qū);以及 反向跳過指示器位置,用于所述仿真存儲器中的一個或多個相鄰的死扇區(qū),所述反向跳過指示器位置能用于在反向搜索序列期間自動地繞過所述一個或多個相鄰的死扇區(qū);以及 存儲器控制器,其耦接到所述仿真存儲器,其中所述存儲器控制器可操作用于利用第一和第二編程操作來編程每個扇區(qū)的所述扇區(qū)識別記錄中的所述多個扇區(qū)狀態(tài)位以改變用于所述扇區(qū)的扇區(qū)配置狀態(tài)。
20.根據(jù)權(quán)利要求19所述的EEEPR0M裝置,其中所述仿真存儲器包括用于存儲多個閃存存儲器扇區(qū)的閃存存儲器,每個所述閃存存儲器扇區(qū)包括一個或多個EEPROM數(shù)據(jù)記錄和相應(yīng)的扇區(qū)識別記錄。
【文檔編號】G06F11/00GK104008020SQ201410049600
【公開日】2014年8月27日 申請日期:2014年2月13日 優(yōu)先權(quán)日:2013年2月25日
【發(fā)明者】R·S·斯考勒, J·C·坎寧漢姆, H·P·加斯奎特 申請人:飛思卡爾半導(dǎo)體公司