新四季網

用於追蹤死扇區以自動搜索和謄寫的魯棒扇區id方案的製作方法

2023-06-05 11:31:26 4

用於追蹤死扇區以自動搜索和謄寫的魯棒扇區id方案的製作方法
【專利摘要】本發明公開了一種用於追蹤死扇區以自動搜索和謄寫的魯棒扇區ID方案。一種耐限電的EEPROM的仿真器(18)使用存儲在每個扇區的扇區識別記錄(45)中的多個扇區狀態位(451)和前向/反向跳過標誌(452、453)管理在易失性存儲器(20)和非易失性存儲器(24)處的存儲器操作,以定義多個順序地排列的多個狀態指示器來指定用於每個存儲器扇區的多個扇區配置狀態,以及在前向謄寫和反向搜索操作期間自動地繞過非易失性存儲器陣列中的一個或多個死扇區。
【專利說明】用於追蹤死扇區以自動搜索和謄寫的魯棒扇區ID方案
【技術領域】
[0001]本發明通常涉及快閃記憶體存儲器及其操作方法。一方面,本發明涉及使用快閃記憶體存儲器來仿真電可擦可編程只讀存儲器(EEPROM)的系統及方法。
【背景技術】
[0002]電可擦可編程只讀存儲器(EEPROM)是與微控制器、微處理器、計算機和其它電子裝置(例如,汽車嵌入式控制器)一起使用以存儲數據的一種類型的非易失性存儲器(NVM)。EEPROM的典型特徵在於多次地擦除和寫入存儲器的單個字節的能力,同時當電源被斷開的時候,被編程的位置在延長的時段保留其數據。然而,因為對EEPROM存儲器的增加的成本和尺寸要求以及製作的困難,一些裝置使用可擦除快閃記憶體存儲器的扇區或塊的一部分仿真EEPROM存儲器來反映(miiror)存儲在RAM中的信息,使得所存儲的信息在裝置未通電時被保持在快閃記憶體存儲器中。然而,在克服快閃記憶體存儲器周期以及會不利地影響存儲在快閃記憶體陣列中的仿真的EEPROM數據完整性的可靠性方面還存在著挑戰,例如在電源不穩定時(被稱為「限電」)以及在裝置處的異步復位會導致在快閃記憶體存儲器處的鏡像信息的損壞。此外,在大量編程和擦除周期防止解決編程或擦除錯誤之後,快閃記憶體存儲器的潛在缺陷可能會導致用於扇區的快閃記憶體操作失敗,在這種情況下,「死(DEAD)」扇區被宣告為無效並從操作流中被丟棄。雖然已提出EEPROM仿真的扇區識別方案以使用與扇區擦除操作交錯的狀態位使得能夠確定開始、停止和系統內的扇區狀態,但發現這些方案在更新步驟期間存在缺陷並且沒有提供追蹤快閃記憶體存儲器中的死扇區的能力。
【專利附圖】

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

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀