TW202020868A - 非揮發性記憶體的防撕裂保護系統 - Google Patents
非揮發性記憶體的防撕裂保護系統 Download PDFInfo
- Publication number
- TW202020868A TW202020868A TW108136536A TW108136536A TW202020868A TW 202020868 A TW202020868 A TW 202020868A TW 108136536 A TW108136536 A TW 108136536A TW 108136536 A TW108136536 A TW 108136536A TW 202020868 A TW202020868 A TW 202020868A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- memory block
- reading mode
- read
- memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/141—Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/165—Auxiliary circuits
- G11C11/1673—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
本發明涉及一種非揮發性記憶體(3)的防撕裂保護系統(1),其包括第一記憶體區塊(5)和第二記憶體區塊(7),第一和第二記憶體區塊(5,7)被用來儲存資料集,此資料集包括使用者資料和基於使用者資料取得的錯誤偵測代碼。第一和第二記憶體區塊(5,7)可以在第一讀取模式下被讀取,以決定根據第一讀取模式包含在資料集中之資料元件的邏輯狀態。如果錯誤偵測代碼等於第一給定值,則根據第一讀取模式,將各別記憶體區塊中的使用者資料視為正確。第一和第二記憶體區塊(5,7)可以進一步在第二讀取模式下被讀取,以決定根據第二讀取模式包含在資料集中之資料元件的邏輯狀態。
如果錯誤偵測代碼等於第一給定值,並且在第二讀取模式下讀取的使用者資料被確定與第一讀取模式下讀取的使用者資料相同,則根據第二讀取模式,將各別記憶體區塊中的使用者資料視為正確。也可以定義第三讀取模式。第一讀取模式可被視為正常讀取模式,而第二和第三讀取模式可分別用於確定資料是否是強效寫入和抹除。
Description
本發明是關於例如是積體電路(IC)卡的非揮發性記憶體(NVM)的一種防撕裂保護系統。更明確的說,本文所建議的系統特別適用於定時約束系統,其中的記憶體區塊必須在非常短的時間內進行更新。本發明也關於一種操作所建議的防撕裂系統的方法。
在電源供應很容易中斷的系統中,例如從讀卡機中撕下也許是無線射頻識別(RFID)卡的積體電路卡,可能會在寫入過程裡中斷寫入操作,且損壞已寫入積體電路內部的資料。如果沒有其他系統來備份此資料,通常需要在積體電路內實現一種防撕裂保護系統。此類系統應確保在寫入操作期間發生斷電事件時,該系統能保存舊資料或是正確寫入新資料。
目前智慧卡或其他積體電路卡中的防撕裂系統是基於數種原理,以下將對該原理進行說明。一種常用的系統是帶有旗標的雙位置系統。根據此解決方案,積體電路在兩個不同位置中的一個位置進行資料寫入,而系統使用個別的旗標來指示那些資料為有效,亦即上次正確更新資料的位置。在新一次的寫入操作期間,積體電路選擇失效資料的位置(保持有效資料的位置)並更新該位置。當此操作結束時,系統將更新旗標以指向剛剛更新的位置。在資料更新期間發生撕裂的情況時,舊資料不變,並以旗標指向它們。在旗標更新期間發生撕裂的情況時,會發生旗標損壞,並且將會指向新資料或舊資料。但在更新旗標之前,新資料的寫入操作已正確完成。這可確保資料正確無損。但是,此系統的缺點是它至少需要兩個獨立的寫入操作:一個用於資料,另一個用於旗標。在許多定時約束的系統中,這種解決方案在實務上卻是不可行。
另一種已知防撕裂系統實例是帶有錯誤偵測代碼(EDC)的N字滾動緩衝器。資料儲存在N個位置(N為一個正整數),每個位置都包含一個順序編號(Nb)和一個錯誤偵測代碼。錯誤偵測代碼是由儲存的資料計算所得到,若資料正確,則糾錯檢查通過,若資料與錯誤偵測代碼無法對應,則糾錯檢查失敗。當資料進行更新時,新資料以Nb+1寫入,錯誤偵測機制的進行是以新資料為基礎。在開機時,積體電路使用錯誤偵測代碼檢查所有的位置和資料的正確性。具備有效錯誤偵測代碼和最高Nb的資料視為有效資料。這個系統的缺點是,如果N = 2,且若連續發生兩個撕裂事件,則資料會丟失。為了增加系統的強健性,N應顯著提高,這將佔用記憶體空間,亦即晶片面積。在任何情況下,此類系統僅對N-1撕裂事件是強健的。
已知防撕裂系統的另一個實例是具有錯誤校正碼(ECC)和回復功能的系統。在此系統中,積體電路寫入一個資料錯誤校正碼。錯誤校正碼會驗證寫入的資料是否一致,並且還允許對該資料進行更正。當寫入操作中斷時,在下次電源重啟期間,積體電路會驗證資料的完整性。如果檢測到資料不正確,亦即錯誤校正碼機制失敗,此系統將基於錯誤校正碼以回復正確的狀態,並在開機期間使用寫入操作來更正記憶體狀態。此系統的缺點是,如果在回復階段期間發生另一個撕裂事件,資料會完全丟失。此外,錯誤校正碼只能更正有限數量的錯誤位元。如果改變了更多位元,系統會失效。
本發明的目標之一是至少克服一些上述現存防撕裂系統的缺點。更明確的說,本發明的目的在為非揮發性記憶體提供一種防撕裂系統,該系統特別適用於具有嚴格定時約束的系統。
根據本發明的第一個態樣,如申請專利範圍第1項所述為非揮發性記憶體提供一種防撕裂保護系統。
建議之解決方案的優點是,在建議的系統中,只需要一個寫入操作即可更新記憶體區塊。例如,無需更新任何旗標。因此,建議的系統對於時序緊迫且只有一次寫入操作的系統來說是很方便的。建議的系統對於無限次數的撕裂攻擊也是強健的,因為它能夠保持有效完整的記憶體數值。此外,本系統有效率的使用晶片面積,因為它只需要兩個記憶體區塊。
根據本發明的第二個態樣,提供一種包括防撕裂保護系統的積體電路卡。
根據本發明的第三個態樣,提供一種操作防撕裂系統的方法。
本發明的其他態樣在本文所附的相關專利申請範圍項目中會加以敘述。
現在將參照圖式進行本發明實施例的詳細描述。本發明將描述射頻智慧卡的防撕裂系統,該射頻智慧卡例如是無線射頻識別積體電路卡。然而,本發明的指導並不限於此種環境或應用。不同圖面中顯示的相同或各別的功能和結構元件會被指定相同的參考編號。在本文的應用中,"和/或"是指表列中任一個或多個以"和/或"連結的項目。例如,"x和/或y"是指三元件集合{(x),(y),(x,y)}中的任一元件。換句話說,"x和/或y"是指"x和y中的一者或兩者"。舉另一例,"x,y和/或z"是指七元件集合{(x),(y),(z),(x、y),(x、z),(y、z),(x、y、z)}中的任一元件。換句話說,"x、y和/或z"是指"x、y和z中的一者或多者"。再者,"包括(comprise)"在此是一個開放的用詞。意指該物件包含列出的所有元件,但也可能包含其他未指名的元件。因此,"包括(comprise)"一詞在解釋上有更廣泛的含義"包含(include)"、"容納(contain)"或"綜合(comprehend)"。
建議的防撕裂系統專為例如是具有以下限制的非揮發性記憶體(NVM)系統而設計:
1) 使用的協定和非揮發性記憶體時序機制在重要資料更新期間只允許有一次更新操作。例如,此系統不能使用單獨的旗標;
2) 記憶體區域的限定僅允許有兩個記憶體位置。這些限定不允許使用N字滾動緩衝區;且
3) 目前的強健性僅受限於單一撕裂事件。
如下文之詳述,本發明提出一種新的解決方案,它驗證最後一次記憶體寫入操作的強健性。圖1圖示說明了建議的防撕裂系統1中的某些元件,這些元件有助於理解本發明的指導。圖1顯示一個非揮發性記憶體單元或元件3,或只是一個記憶體單元,它可以驗證寫入資料的強健性,亦即資料寫入的強弱程度。記憶體單元3包括第一記憶體區塊或緩衝區5和第二記憶體區塊或緩衝區7,在此例中,它們是獨立的記憶體區塊,有自己的記憶體位址或位置。這些記憶體區塊是非揮發性記憶體,此類記憶體即使在系統電源關閉後,也能回復之前儲存的資料或資訊。非揮發性記憶體的實例包含唯讀記憶體、快閃記憶體、電子可抹除式可程式化唯讀記憶體(EEPROM)、鐵電式隨機存取記憶體(FRAM)、磁性隨機存取記憶體(MRAM)、電阻隨機存取記憶體(RRAM)、許多類型的磁性電腦儲存裝置(包括硬碟驅動器、固態驅動器、軟式磁碟和磁帶)和光碟。
圖1顯示了架構為讀取第一記憶體區塊5和第二記憶體區塊7的處理單元9。這些記憶體區塊的優點為可以使用不同的記憶體讀取模式進行讀取,如此可以區分那些資料是正確的,因此有效,以及那些資料已損壞。與記憶體寫入單元11配合,該處理單元可確保始終保存著有效資料。記憶體寫入單元11包括一個系統,該系統在一個寫入操作期間被安排用來選擇性地將資料儲存在兩個獨立的記憶體區塊5、7(或記憶體位置)。在此實例中,每個記憶體區塊包括以下的資料:
• 使用者資料;
• 一個計數器,也稱為防撕裂(AT)計數器,用於指示何者為最後寫入的字或最後更新的記憶體區塊;且
• 一個藉由給定資料集計算得出的錯誤偵測代碼,在此實例中,其包括使用者資料和計數器。換句話說,在此實例中,錯誤偵測代碼是藉由使用者資料和計數器計算而得。
在本實例中,記憶體區塊5和記憶體區塊7中資料的強健性被安排成透過三種不同的或獨立的記憶體讀取模式或操作來進行檢查或驗證,亦即第一讀取模式,稱為正常讀取(NR)模式、第二讀取模式,稱為寫入邊距讀取(WMR)模式,以及第三讀取模式,稱為抹除邊距讀取(EMR)模式。這些模式之間的關係如圖2所示,根據此實例,垂直軸或y軸表示一個特定記憶胞的電荷位準(或另外的說法是電壓位準),該記憶胞用於儲存一個資料元件,亦即一個位元(bit)。但是,這些讀取模式可改為使用電荷位準或數值以外的其他參數定義。
如以下所詳述,不同的讀取模式可用來確定資料在記憶體中被寫入或抹除的強弱程度。正常讀取模式可被視為預設的讀取模式。正常讀取模式定義第一規則集,該規則集用於根據正常讀取模式以確定資料位元的邏輯狀態或位準。在此實例中,第一規則集包括可稱之為正常讀取位準13的第一閾值13。如圖2所示,正常讀取位準13對應於(近似)各別記憶胞的最大可能電荷位準Cmax的一半。因此,此實例中的正常讀取位準實質上等於Cmax/2。更廣泛的說,正常讀取位準13可能介於最大電荷位準的40%到60%之間(假設使用的是電荷位準)。因此,從記憶胞電荷值推導出來的位元,若等於或高於正常讀取位準13,將被確定為具有第一邏輯狀態,在此實例中是對應於位元值1,而從記憶胞電荷值推導出來的位元,若低於正常讀取位準13,將被確定為具有第二邏輯狀態,在此實例中就是位元值0。要注意的是給定的記憶胞電荷值可隨時間改變。結論是,一個記憶胞的電荷值最初是略高於正常讀取位準13,隨著時間的推移可能會下降到正常讀取位準以下。這意味著對應該記憶胞的位元值也會從一種狀態變更為另一種狀態,亦即在此實例中從1變更為0。
寫入邊距讀取(WMR)模式定義第二規則集,該規則集用於根據寫入邊距讀取模式以確定資料位元的邏輯狀態。在此實例中,第二規則集包括一個可稱之為寫入邊距讀取位準15的第二閾值15。如圖2所示,寫入邊距讀取位準15 設定為高於正常讀取位準13。在此特定實例中,寫入邊距讀取位準的電荷位準近似等於最大可能電荷位準的四分之三。換句話說,寫入邊距讀取位準15實質等於(3/4)•Cmax。更廣泛地說,寫入邊距讀取位準15可能介於Cmax的65%到85%之間。寫入邊距讀取位準用於確定之前抹除的記憶胞是否以強健的方式被寫入。因此,根據寫入邊距讀取模式,從記憶胞電荷值推導出來的位元,若其等於或高於寫入邊距讀取位準15,則確定為具有第一邏輯狀態,在本實例中對應到位元值1,而從記憶胞電荷值推導出來的位元,若其低於寫入邊距讀取位準,則確定具有第二邏輯狀態,即為本實例中的位元值0。因此,任何在寫入邊距讀取模式下確定為值1(在本例中)的邏輯狀態都可以被視為強效寫入,而且,在已知的保留時間內,強效寫入位元不太可能將其電荷位準變更為低於正常讀取位準,從而更改在正常讀取模式下讀取的值。
抹除邊距讀取模式(EMR)定義第三規則集,該規則集用於根據抹除邊距讀取模式以確定資料位元的邏輯狀態。在此實例中,第三規則集包括一個可稱之為抹除邊距讀取位準17的第三閾值17。再如圖2所示,抹除邊距讀取位準17設定為低於正常讀取位準13。在此特定的實例中,抹除邊距讀取位準的電荷位準近似等於最大可能電荷位準的四分之一。換句話說,抹除邊距讀取位準17實質等於(1/4)•Cmax。更廣泛的說,抹除邊距讀取位準可能介於Cmax的15%到35%之間。抹除邊距讀取位準17用於確定被抹除的記憶體胞是否是以強健的方式被抹除。因此,根據抹除邊距讀取模式,從記憶胞電荷值推導出來的位元,若其等於或高於抹除邊距讀取位準17,則被確定為具有第一邏輯狀態,在本實例中對應至位元值1,而從記憶胞電荷值推導出來的位元,若其低於抹除邊距讀取位準17,則被確定具有第二邏輯狀態,即本實例中的位元值0。因此,任何在抹除邊距讀取模式下確定為值0的邏輯狀態(在本例中)都可以被視為強效抹除,而且,在已知的保存時間內,強效抹除位元不太可能將其電荷位準變更為高於正常讀取位準,從而更改在正常讀取模式下讀取的值。
此三個閾值,亦即正常讀取位準13、寫入邊距讀取位準15和抹除邊距讀取準位17定義了四個如圖2所示的資料強度區域。寫入邊距讀取位準15上方的區域是強效寫入資料區域,寫入邊距讀取位準15和正常讀取位準13之間的區域是弱效寫入資料區域,正常讀取位準13和抹除邊距讀取位準17之間的區域是弱效抹除資料區域,且抹除邊距讀取位準17下方的區域是強效抹除資料區域。
鑒於上述情況,若使用抹除邊距讀取模式和/或寫入邊距讀取模式正確讀取資料,則可確保正常讀取資料是正確讀取,同時資料在指定的保留時間內保持正確。此外,若使用正常讀取模式但未使用抹除邊距讀取模式正確讀取資料,則資料被弱效抹除,而若使用正常讀取模式但未使用寫入邊距讀取模式正確讀取資料,則可以確定資料是弱效寫入。
即使只使用正常讀取(NR)模式和其他兩種讀取模式之一,建議的演算法也能正確運作防撕裂保護。僅使用兩種讀取模式的唯一限制是與非揮發性記憶體的生命週期結束有關。此時,資料損壞的其他成因可能是記憶體磨耗,因此即使資料寫入正確,也會隨機性的變動。在這種情況下,此風險是可以被接受的,因為這是產品的生命週期結束,或可加上一個計數器來限制記憶體的寫入週期數。但是,值得注意的是,如果增加了一種或多種定義其自身規則集的其他讀取模式,本發明的指導同樣適用。
接下來將解釋資料正確性的規則。在本實施例中,有定義使用正常讀取模式讀取且存在記憶體區塊中的資料被視為正確,若
1. 錯誤偵測代碼(EDC)是正確,亦即,等於f(AT,使用者資料),它在最後一次更新時是儲存在各別的記憶體中;且
防撕裂(AT)計數器有一個有效值。
進一步定義使用抹除邊距讀取模式或寫入邊距讀取模式讀取且存在記憶體區塊中的資料被視為正確,若
1. 錯誤偵測代碼(EDC)是正確,亦即,等於f(AT,使用者資料);
2. 防撕裂(AT)計數器有一個有效值;且
3. 在此模式下讀取的資料等於使用正常讀取所讀取的資料。
在這種情況下,由於有兩個記憶體區塊,防撕裂(AT)計數器由兩個可定義四個可能數值的位元組成。其中一個數值可因此用以指示一種無效狀態,而其餘三個數值將指示一種有效狀態。但是,其他計數器的實現也是可能的。
以下將定義防撕裂演算法規則,以確定那個記憶體區塊為有效。為了防撕裂演算法的目的,定義邊距讀取(MR)如下:
• 在同時採用抹除邊距讀取(EMR)和寫入邊距讀取(WMR)模式的實現中,邊距讀取(MR) = 抹除邊距讀取(EMR)且(AND)寫入邊距讀取(WMR);
• 在僅具有寫入邊距讀取(WMR)的實現中,邊距讀取(MR) = 寫入邊距讀取(WMR);且
• 在僅具有抹除邊距讀取(EMR)的實現中,邊距讀取(MR) = 抹除邊距讀取(EMR)。
為了簡化以下規則的描述,進一步定義:
• 區塊X可以是區塊1或區塊2;且
• 區塊Y則是多個區塊中的另一個區塊。
換句話說,如果區塊X是區塊1,則區塊Y是區塊2,且若區塊X是區塊2,則區塊Y是區塊1。
建議的演算法有以下規則:
1. 區塊X NR是正確且(AND)區塊1 MR是正確且(AND)
區塊Y NR是正確且(AND)區塊2 MR是正確,
則有效區塊就是防撕裂(AT)計數器指示較新的區塊,亦即最後被更新的塊區。在這種情境下,不會發生撕裂。
2. 區塊X NR是正確且(AND)區塊X MR是正確且(AND)
區塊Y NR是正確且(AND)區塊Y MR是不正確,
則區塊X是有效。在這種情境下,可以確定區塊Y在記憶體更新操作期間被毀損。
3. 區塊X NR是正確且(AND)
區塊Y NR是不正確,
則區塊X是有效。在這種情境下,無需使用邊距讀取(MR)模式,可確定區塊Y已損壞。
4. 區塊X NR是正確且(AND)區塊X MR是不正確且(AND)
區塊Y NR是正確且(AND)區塊Y MR是不正確,
則有效區塊就是防撕裂(AT)計數器指示較舊的區塊。在此狀況下,無法確切說那個區塊是被強效且弱效寫入。但是,歸功於建議的系統,我們知道舊區塊在過去至少有過一次 邊距讀取(MR)正確,因為我們已開始更新較新的區塊。但是,我們不能說此狀況適用在較新的區塊,因為這是它第一次被檢查。因此,較舊區塊的邊距位準較高,接近邊距讀取(MR),並且只會隨著時間的推移而惡化。
5. 區塊X NR是不正確且(AND)
區塊Y NR是不正確,
則可以確定記憶體區塊壽命即將結束。在這種情況下,不執行非揮發性記憶體的動作,並將此壽命結束告知另一個系統。進而避免寫入這些記憶體。
一旦如上述解釋內容確定有效的記憶體區塊,處理單元9可以通知記憶體寫入單元11有關確定的結果。因此,記憶體寫入單元11現在可以基於處理單元9的回饋,使用新的資訊或資料來更新無效的記憶體區塊。因此,記憶體更新規則如下:
1. 保留且不修改有效區塊;且
2. 使用一個新數值或一組新數值對無效區塊進行更新。
雖然本發明已配合圖式及先前描述進行圖解和詳細說明,但此類圖解和說明應視為說明性或示範性且不應有所限制,本發明不限於在此揭露的實施例。也應可理解存在其他的實施例和變體,並且可以通過此技術領域之專業人員基於對圖式的參閱及所附申請專利範圍的揭露,透過實現本主張發明而完成。例如是有可能在建議的系統中增加一個或多個記憶體區塊。
在此申請專利範圍中,"包括(Comprising)"一詞不排除其他的元件或步驟,且不定冠詞"a"或"an"不排除多數。在相互不同且獨立的申請專利範圍中出現不同特點之事實並不表示這些特點的組合不具有使用上的優勢。此申請專利範圍中的任何參考編號不應該被解釋來限制本發明的範圍。
1:防撕裂保護系統
3:非揮發性記憶體
5:第一記憶體區塊
7:第二記憶體區塊
9:處理單元
11:記憶體寫入單元
13:正常讀取位準
15:寫入邊距讀取位準
17:抹除邊距讀取位準
以下非限制性實施例在配合圖式的說明下,將顯現本發明其他的特性和優點,其中:
[圖1]依據本發明之實施例,顯示了一個簡化的方塊圖,其說明一個撕裂系統;且
[圖2]圖示了若干記憶體讀取準位,它們使用在圖1的防撕裂系統中。
1:防撕裂保護系統
3:非揮發性記憶體
5:第一記憶體區塊
7:第二記憶體區塊
9:處理單元
11:記憶體寫入單元
Claims (13)
- 一種非揮發性記憶體單元(3)的防撕裂保護系統(1),該防撕裂保護系統包括第一記憶體區塊(5)和第二記憶體區塊(7),該第一記憶體區塊(5)和該第二記憶體區塊(7)用於儲存資料集,該資料集包括使用者資料和基於該使用者資料所取得的錯誤偵測代碼,該第一記憶體區塊(5)和該第二記憶體區塊(7)被安排在第一讀取模式下進行讀取,該第一讀取模式定義第一規則集,用以根據該第一讀取模式確定包括於該資料集中之該資料元件的邏輯狀態,若該錯誤偵測代碼等於第一給定值,則根據該第一讀取模式將各別記憶體區塊中的該使用者資料視為正確,該第一規則集包括第一記憶體讀取閾值(13), 該防撕裂保護系統的特徵是,該第一記憶體區塊(5)和該第二記憶體區塊(7)進一步被安排在第二讀取模式下進行讀取,該第二讀取模式定義第二規則集,用以根據該第二讀取模式確定包括於該資料集中之該資料元件的該邏輯狀態,該第二規則集包括第二記憶體讀取閾值(15),其中該防撕裂保護系統(1)的處理單元(9)架構用於讀取該第一記憶體區塊(5)和該第二記憶體區塊(7),並且其中,在該處理單元(9)中,若該錯誤偵測代碼等於該第一給定值且在該第二讀取模式下讀取的該使用者資料確定是與在該第一讀取模式下讀取的該使用者資料相同,則根據該第二讀取模式將各別記憶體區塊中的該使用者資料視為正確,其中該資料集更包括計數器資料,該計數器資料用以指示出最後被更新的記憶體區塊(5,7),並且其中並基於該計數器資料進一步獲取該錯誤偵測代碼,該使用者資料正確性被安排用於決定該第一記憶體區塊(5)和該第二記憶體區塊(7)中的那一個將由該防撕裂保護系統(1)的記憶體寫入單元(11)進行下一次的更新。
- 根據申請專利範圍第1項的防撕裂保護系統(1),其中,若連結到資料元件的給定屬性等於或高於該第一讀取閾值(13),則該資料元件具有根據該第一讀取模式的第一邏輯狀態,若該給定屬性低於該第一讀取閾值,則該資料元件具有根據該第一讀取模式的不同的第二邏輯狀態,其中,若該給定屬性等於或高於該第二讀取閥值(15),則該資料元件具有根據該第二讀取模式的第一邏輯狀態,若該給定屬性低於該第二讀取閾值(15),則該資料元件具有根據該第二讀取模式的該第二邏輯狀態。
- 根據申請專利範圍第2項的防撕裂保護系統(1),其中該給定屬性可從記憶胞位準推導。
- 根據申請專利範圍第1項的防撕裂保護系統,其中該第一記憶體區塊(5)和該第二記憶體區塊(7)被進一步安排在第三讀取模式下進行讀取,該第三讀取模式定義不同於該第一規則集和第二規則集的第三規則集,用以根據該第三讀取模式確定包括在該資料集中的該資料元件的邏輯狀態,且其中,若該錯誤偵測代碼等於該第一給定值,並且若確定在該第三讀取模式下讀取的該使用者資料與在該第一讀取模式下讀取的該使用者資料相同,則依據該第三讀取模式將各別記憶體區塊中的該使用者資料視為正確。
- 根據申請專利範圍第1項的防撕裂保護系統(1),其中該第一給定值等於在前次之記憶體寫入操作期間,儲存在該各別記憶體區塊(5,7)中的該錯誤偵測代碼。
- 根據申請專利範圍第1項的抗撕裂保護系統(1),其中根據第一讀取模式和第二讀取模式對該使用者資料正確性的進一步的條件是該計數器資料具有給定計數值。
- 一種積體電路卡,包括申請專利範圍第1項所述的防撕裂保護系統(1)。
- 一種操作申請專利範圍第1項所述的防撕裂保護系統(1)的方法,其中若: - 該第一記憶體區塊(5)中的該資料集依據該第一讀取模式確定是正確,且根據該第二讀取模式也確定該第一記憶體區塊(5)中的該資料集是正確;且 - 該第二記憶體區塊(7)中的該資料集依據該第一讀取模式確定是正確,且根據該第二讀取模式也確定該第二記憶體區塊(7)中的該資料集是正確, 則其中該資料集也包括計數器資料,該計數器資料指示哪一個記憶體區塊(5,7)是最後更新的,且其中基於該計數器資料進一步取得該錯誤偵測代碼,以確定有效的記憶體區塊是最後更新的記憶體區塊,且用另一組資料去更新第一個被更新的記憶體區塊。
- 一種操作申請專利範圍第1項所述的防撕裂保護系統(1)的方法,其中若: - 根據該第一讀取模式確定該第一記憶體區塊(5)中的該資料集是正確,且根據該第二讀取模式確定該第一記憶體區塊(5)中的該資料集是正確;且 - 根據該第一讀取模式確定該第二記憶體區塊(7)中的該資料集是正確,且根據該第二讀取模式確定該第二記憶體區塊(7)中的該資料集不正確, 則確定該第一記憶體區塊是為有效,並用另一組資料去更新該第二記憶體區塊(7)。
- 一種操作申請專利範圍第1項所述的防撕裂保護系統(1)的方法,其中若: - 根據該第一讀取模式確定該第一記憶體區塊(5)中的該資料集是正確;且 - 根據該第一讀取模式確定該第二記憶體區塊(7)中的該資料集不正確, 則確定該第一記憶體區塊(5)為有效,並用另一組資料去更新該第二記憶體區塊(7)。
- 一種操作申請專利範圍第1項所述的防撕裂保護系統(1)的方法,其中若: - 根據該第一讀取模式確定該第一記憶體區塊(5)中的該資料集是正確,且根據該第二讀取模式確定該第一記憶體區塊(5)中的該資料集不正確;且 - 根據該第一讀取模式確定該第二記憶體區塊(7)中的該資料集是正確,且根據該第二讀取模式確定該第二記憶體區塊(7)中的該資料集不正確, 則其中該資料集也包括計數器資料,該計數器資料指示哪一個記憶體區塊(5,7)是最後更新的,且其中基於該計數器資料進一步取得該錯誤偵測代碼,以確定最先被更新的一個記憶體區塊即為有效的記憶體區塊,且用另一組資料去更新該最後被更新的記憶體區塊。
- 一種操作申請專利範圍第1項所述的防撕裂保護系統(1)的方法,其中若: - 根據該第一讀取模式確定該第一記憶體區塊(5)中的該資料集不正確;且 - 根據該第一讀取模式確定該第二記憶體區塊(7)中的該資料集不正確, 則確定該第一記憶體區塊(5)和該第二記憶體區塊(7)為無效。
- 根據申請專利範圍第12項的方法,其中該方法又包括防止對該第一記憶體區塊(5)和該第二記憶體區塊(7)進行再寫入的操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP18203819.0A EP3647952A1 (en) | 2018-10-31 | 2018-10-31 | Anti-tearing protection system for non-volatile memories |
EP18203819.0 | 2018-10-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202020868A true TW202020868A (zh) | 2020-06-01 |
TWI717856B TWI717856B (zh) | 2021-02-01 |
Family
ID=64051494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108136536A TWI717856B (zh) | 2018-10-31 | 2019-10-09 | 非揮發性記憶體的防撕裂保護系統 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11392449B2 (zh) |
EP (1) | EP3647952A1 (zh) |
JP (1) | JP6980736B2 (zh) |
KR (1) | KR102276774B1 (zh) |
CN (1) | CN111124739B (zh) |
TW (1) | TWI717856B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI748507B (zh) * | 2020-06-08 | 2021-12-01 | 瑞昱半導體股份有限公司 | 資料存取系統及操作資料存取系統的方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11941281B2 (en) | 2022-04-01 | 2024-03-26 | Nxp B.V. | Non-volative memory system configured to mitigate errors in read and write operations |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3906189B2 (ja) * | 2002-07-15 | 2007-04-18 | 株式会社東芝 | 不揮発性半導体メモリ |
DE10252059B3 (de) * | 2002-11-08 | 2004-04-15 | Infineon Technologies Ag | Verfahren zum Betreiben einer Speicheranordnung |
JP4331053B2 (ja) * | 2004-05-27 | 2009-09-16 | 株式会社東芝 | 半導体記憶装置 |
JP2006285976A (ja) * | 2005-03-10 | 2006-10-19 | Matsushita Electric Ind Co Ltd | 不揮発性記憶システム、不揮発性記憶装置、データ読出方法及び読出プログラム |
KR100871694B1 (ko) * | 2006-10-04 | 2008-12-08 | 삼성전자주식회사 | 6개의 문턱전압레벨을 이용하는 불휘발성 메모리 장치의프로그램 방법과 데이터 독출 방법, 및 상기 프로그램방법과 데이터 독출 방법을 이용하는 불휘발성 메모리 장치 |
EP1988550B1 (fr) * | 2007-05-02 | 2010-08-25 | Stmicroelectronics Sa | Mémoire non volatile à secteurs auxiliaires tournants |
EP2180408B1 (en) * | 2008-10-23 | 2018-08-29 | STMicroelectronics N.V. | Method for writing and reading data in an electrically erasable and programmable nonvolatile memory |
US9116830B2 (en) * | 2009-04-29 | 2015-08-25 | Texas Instruments Incorporated | Method to extend data retention for flash based storage in a real time device processed on generic semiconductor technology |
US8010854B2 (en) * | 2009-05-28 | 2011-08-30 | Freescale Semiconductor, Inc. | Method and circuit for brownout detection in a memory system |
JP5633125B2 (ja) | 2009-07-29 | 2014-12-03 | ソニー株式会社 | 情報処理方法、情報処理装置、およびプログラム |
EP2299363B1 (fr) * | 2009-09-21 | 2013-01-09 | STMicroelectronics (Rousset) SAS | Procédé de nivellement de l'usure dans une mémoire non volatile |
US8949509B2 (en) * | 2010-12-06 | 2015-02-03 | OCZ Storage Solutions Inc. | Mass storage systems and methods using solid-state storage media and ancillary interfaces for direct communication between memory cards |
US8977914B2 (en) * | 2012-05-30 | 2015-03-10 | Freescale Semiconductor, Inc. | Stress-based techniques for detecting an imminent read failure in a non-volatile memory array |
EP2713519A1 (en) * | 2012-09-27 | 2014-04-02 | Nxp B.V. | Electronic counter in non-volatile limited endurance memory |
US9141534B2 (en) | 2012-12-14 | 2015-09-22 | Sandisk Technologies Inc. | Tracking read accesses to regions of non-volatile memory |
CN104347122B (zh) | 2013-07-31 | 2017-08-04 | 华为技术有限公司 | 一种消息式内存模组的访存方法和装置 |
US9542631B2 (en) * | 2015-04-02 | 2017-01-10 | Em Microelectronic-Marin S.A. | Dual frequency HF-UHF identification device, in particular of the passive type |
KR20170111649A (ko) * | 2016-03-29 | 2017-10-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20170120741A (ko) | 2016-04-21 | 2017-11-01 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP6765331B2 (ja) | 2017-03-24 | 2020-10-07 | キオクシア株式会社 | メモリシステム |
KR102257050B1 (ko) * | 2017-05-26 | 2021-05-27 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
US10691536B2 (en) * | 2017-09-22 | 2020-06-23 | SK Hynix Inc. | Method to select flash memory blocks for refresh after read operations |
-
2018
- 2018-10-31 EP EP18203819.0A patent/EP3647952A1/en active Pending
-
2019
- 2019-10-09 TW TW108136536A patent/TWI717856B/zh active
- 2019-10-17 US US16/655,988 patent/US11392449B2/en active Active
- 2019-10-23 KR KR1020190132329A patent/KR102276774B1/ko active IP Right Grant
- 2019-10-24 JP JP2019193212A patent/JP6980736B2/ja active Active
- 2019-10-30 CN CN201911042530.1A patent/CN111124739B/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI748507B (zh) * | 2020-06-08 | 2021-12-01 | 瑞昱半導體股份有限公司 | 資料存取系統及操作資料存取系統的方法 |
Also Published As
Publication number | Publication date |
---|---|
KR102276774B1 (ko) | 2021-07-13 |
EP3647952A1 (en) | 2020-05-06 |
TWI717856B (zh) | 2021-02-01 |
KR20200050379A (ko) | 2020-05-11 |
CN111124739B (zh) | 2024-05-24 |
US11392449B2 (en) | 2022-07-19 |
CN111124739A (zh) | 2020-05-08 |
US20200133765A1 (en) | 2020-04-30 |
JP2020077405A (ja) | 2020-05-21 |
JP6980736B2 (ja) | 2021-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8694855B1 (en) | Error correction code technique for improving read stress endurance | |
US11494259B2 (en) | Variable resistance random-access memory and method for write operation having error bit recovering function thereof | |
US9159441B2 (en) | Method of operating memory device assuring reliability and memory system | |
US6977847B2 (en) | Detecting partially erased units in flash devices | |
US20170206157A1 (en) | Recovery for non-volatile memory after power loss | |
JP2846739B2 (ja) | Eepromメモリの安全更新方法 | |
JP2001501000A (ja) | エラー検出および訂正を有する半導体メモリ装置 | |
JP6080180B2 (ja) | 不揮発性メモリでのマーカプログラミング | |
TWI717856B (zh) | 非揮發性記憶體的防撕裂保護系統 | |
US7093115B2 (en) | Method and apparatus for detecting an interruption in memory initialization | |
JP5320511B2 (ja) | マルチレベル・ライトワンス・メモリ・セルを備える書き換え可能メモリデバイス | |
WO2011001486A1 (ja) | データ処理方法、半導体集積回路 | |
US7657795B2 (en) | Method and apparatus for writing to a target memory page of a memory | |
US20170255502A1 (en) | Storage control apparatus, storage apparatus, and storage control method | |
JP2003196165A (ja) | 不揮発性メモリ及びそのデータ更新方法 | |
JP2008310896A (ja) | 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法 | |
US9424176B2 (en) | Robust sector ID scheme for tracking dead sectors to automate search and copydown | |
JP6636930B2 (ja) | フラッシュメモリ内蔵マイコン、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法、および、フラッシュメモリへのデータを書込むプログラム | |
US20070274302A1 (en) | Data Storage Device, Memory Managing Method, and Program | |
JP4691355B2 (ja) | 不揮発性メモリ | |
KR100887499B1 (ko) | 차량용 전자 제어 시스템에서 강유전체 메모리를 이용한동작 시간 카운터의 저장 오류 복구 방법 | |
US10714189B2 (en) | Atomicity management in an EEPROM | |
JP4546256B2 (ja) | メモリカードに記録されているデータの安全な変更方法 | |
JP2005056144A (ja) | フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム | |
CN116893780A (zh) | 配置成减轻读取和写入操作错误的非易失性存储器系统 |