TWI753777B - 具記憶體控制器的記憶體裝置及其資料保持方法 - Google Patents
具記憶體控制器的記憶體裝置及其資料保持方法 Download PDFInfo
- Publication number
- TWI753777B TWI753777B TW110105731A TW110105731A TWI753777B TW I753777 B TWI753777 B TW I753777B TW 110105731 A TW110105731 A TW 110105731A TW 110105731 A TW110105731 A TW 110105731A TW I753777 B TWI753777 B TW I753777B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- erase count
- error threshold
- error
- data
- 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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
- 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
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0653—Monitoring storage devices or 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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/0658—Controller construction arrangements
-
- 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
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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
- G11C2029/0409—Online test
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明提供一種記憶體控制器,用以存取記憶體裝置中的儲存記憶體陣列的位於記憶體區塊中的記憶體分頁。記憶體控制器讀取儲存於所存取記憶體分頁中的記憶體資料。記憶體控制器判定相關於記憶體資料的錯誤位元數。記憶體控制器獲得對應於所存取記憶體分頁的抹除計數,抹除計數指示在所存取記憶體分頁上進行的抹除操作的數目。記憶體控制器至少基於抹除計數自一或多個錯誤臨限值當中判定錯誤臨限值。記憶體控制器判定錯誤位元數與錯誤臨限值之間的關係。記憶體控制器在錯誤位元數與錯誤臨限值之間的關係滿足第一準則的情況下觸發所存取記憶體區塊的資料更新。
Description
以下所揭露內容是關於記憶體裝置,且具體而言,是關於與改進半導體記憶體裝置的資料保持效能從而得到記憶體裝置的更長壽命相關的方法、設備以及系統。
半導體記憶體裝置包括儲存記憶體(例如,快閃記憶體),以及管理儲存記憶體的記憶體控制器。記憶體控制器自主機裝置接收命令以對儲存於儲存記憶體中的資料進行操作。
本揭露內容描述用以改進半導體記憶體裝置中的資料保持從而得到記憶體裝置的更長壽命的方法、設備以及系統。記憶體裝置包括具有用於儲存資料的一或多個記憶單元陣列的儲存記憶體,以及記憶體控制器,用於例如耦接至記憶體裝置的主機裝置接收到讀取或程式化(program)/寫入(write)命令後管理對儲存記憶體的存取。記憶體控制器重新寫入儲存在一個或多個記憶單元中的資料,例如當資料損失(例如,以從其正確值改變的位元數計算)超過某些臨限值(例如,以位元數為單位)時,是由於對記憶單元的重複存取以進行程式化或抹除操作。在一些實施方案中,當資料損失超過臨限值時,記憶體控制器向主機裝置報告錯誤或損失狀態(例如,資料損失超過臨限值),且主機裝置控制重寫資料。
在一些實施方案中,記憶體控制器使用錯誤檢查引擎來比較記憶單元(例如,記憶體區塊或記憶體分頁)中的發生錯誤的位元數(稱為「錯誤位元」,例如,其值已自其正確值改變的位元)與用於錯誤位元的一或多個錯誤臨限值。若錯誤位元數滿足與一或多個錯誤臨限值中的選定錯誤臨限值的指定關係,則記憶體控制器重寫儲存於對應記憶單元中的資料以防止資料損失,或向主機裝置報告錯誤狀態(例如,藉由舉起錯誤臨限旗標以指示錯誤狀態),或兩者。為了比較錯誤位元與臨限值,記憶體控制器針對記憶單元儲存抹除計數,所述抹除計數指示已抹除記憶單元多少次,其指示例如記憶單元的程式化/抹除循環的數目。記憶體控制器將記憶單元的抹除計數映射至來自兩個或大於兩個抹除計數範圍的抹除計數範圍,其中抹除計數範圍相關於錯誤臨限值,該錯誤臨限值不同於相關於不同抹除計數範圍的另一錯誤臨限值。舉例而言,在一些實施方案中,較高錯誤臨限值相關於較低抹除計數範圍(例如,記憶單元的抹除操作的數目在較低抹除操作範圍中),且較低錯誤臨限值相關於較高抹除計數範圍(例如,記憶單元的抹除操作的數目在較高抹除操作範圍中)。在一些實施方案中,記憶體控制器將記憶單元的抹除計數儲存於記憶單元的指定區段內(例如,將抹除計數儲存於記憶體分頁的已知區段中)。在一些實施方案中,錯誤臨限值包括錯誤校正程式碼(Error Correcting Code;ECC)臨限值。
記憶體控制器中的錯誤計算引擎(例如,ECC引擎)取決於記憶單元的抹除計數判定相關於記憶單元的錯誤臨限值;比較記憶單元的錯誤位元數(例如,其值已因記憶體寫入或抹除干擾而自其正確值改變的位元)與所判定錯誤臨限值;以及輸出比較結果。記憶體控制器配置為取決於錯誤位元數與相關錯誤臨限值之間的關係來報告儲存於記憶單元中的資料及/或進行所述資料的更新(例如,資料重寫)。舉例而言,在一些實施方案中,若錯誤位元數等於或超過對應錯誤臨限值,則記憶體控制器舉起錯誤臨限旗標以向主機裝置報告狀態,或進行資料更新以防止資料的損失,或兩者(例如,向主機裝置報告狀態,且在回應於狀態報告而自主機裝置接收到命令後進行更新)。
在一些實施方案中,隨著記憶單元的抹除計數改變,將不同錯誤臨限值用於記憶單元。舉例而言,若更頻繁地抹除記憶單元,則記憶單元的抹除計數增加且映射至較高抹除計數範圍。在此類情況下,新的錯誤臨限值相關於記憶單元,其中新近相關的錯誤臨限值低於先前相關於記憶單元的錯誤臨限值。在此類實施方案中,相較於先前情形,新的較低臨限值觸發較低錯誤位元數的記憶體更新。因此,即使在更少數目個記憶體位元發生錯誤時,記憶體控制器亦更新儲存於記憶單元中的資料,此減輕因記憶單元的程式化/抹除循環的增加而導致資料損失的可能性。
在通用態樣中,一種方法包括由記憶體控制器存取記憶體裝置的儲存記憶體陣列的記憶體區塊中的記憶體分頁,其中儲存記憶體陣列由記憶體控制器管理。記憶體控制器讀取儲存於所存取記憶體分頁中的記憶體資料。記憶體控制器判定相關於記憶體資料的錯誤位元數。記憶體控制器獲得對應於所存取記憶體分頁的抹除計數,所述抹除計數指示在所存取記憶體分頁上進行的抹除操作的數目。記憶體控制器至少基於抹除計數自一或多個錯誤臨限值當中判定錯誤臨限值。記憶體控制器判定錯誤位元數與錯誤臨限值之間的關係。記憶體控制器在錯誤位元數與錯誤臨限值之間的關係滿足第一準則的情況下觸發所存取記憶體區塊的資料更新。
特定實施方案可包括以下特徵中的一或多者。抹除計數可包括程式化/抹除週期計數或指示所存取記憶體區塊的存取速率的資訊中的一者。判定錯誤位元數與錯誤臨限值之間的關係可包括比較錯誤位元數與錯誤臨限值。觸發以滿足第一準則的關係為條件的資料更新可包括判定錯誤位元數是否等於或超過錯誤臨限值,且若是,則觸發所存取記憶體區塊的資料更新。
觸發所存取記憶體區塊的資料更新可包括設定對應於所存取記憶體區塊的旗標,所述旗標指示待進行存取記憶體區塊的資料更新。耦接至記憶體裝置的主機裝置可讀取旗標且判定所述旗標指示待進行存取記憶體區塊的資料更新。回應於判定旗標指示待進行所存取記憶體區塊的資料更新,主機裝置可進行存取記憶體區塊的資料更新。
一或多個錯誤臨限值中的錯誤臨限值可指定待發生錯誤的記憶體資料的位元數以觸發資料更新。較高抹除計數範圍可相關於較低錯誤臨限值,而相對較低抹除計數範圍可相關於相對較高錯誤臨限值。較高抹除計數範圍的抹除計數範圍高於較低抹除計數範圍,較低錯誤臨限值的值低於較高錯誤臨限值,且抹除計數在多個抹除計數範圍中的一個抹除計數範圍內。
抹除計數可在多個抹除計數範圍中的經指定第一抹除計數範圍內,所述第一抹除計數範圍相關於第一錯誤臨限值。記憶體控制器可在第二次存取所存取記憶體分頁時,更新對應於第二次所存取記憶體分頁的抹除計數。記憶體控制器在多個抹除計數範圍中處於第二抹除計數範圍內可判定經更新的抹除計數,所述第二抹除計數範圍不同於第一抹除計數範圍。記憶體控制器可至少基於經更新抹除計數自一或多個錯誤臨限值當中判定第二錯誤臨限值。第二錯誤臨限值可不同於第一錯誤臨限值,且其中第二抹除計數範圍相關於所述第二錯誤臨限值。經更新抹除計數可大於抹除計數,且第二錯誤臨限值可小於第一錯誤臨限值。
實施方案包括一種記憶體裝置,所述記憶體裝置包括:儲存記憶體,包括一或多個記憶單元陣列;以及記憶體控制器,用以管理對記憶單元陣列的存取,其中記憶體控制器配置為進行上述操作。實施方案亦包括一種用於管理記憶體裝置的記憶體控制器,其中所述記憶體控制器包括:一或多個處理器;以及一或多個機器可讀媒體,儲存指令,所述指令在執行時使得所述一或多個處理器進行上述操作。
實施方案更包括非暫時性電腦可讀媒體及系統。一種非暫時性電腦可讀媒體儲存指令,所述指令在執行時使得一或多個處理器進行上述操作。一種系統包括記憶體裝置,所述記憶體裝置具有用以管理對記憶體裝置中的一或多個記憶單元陣列的存取的記憶體控制器,其中記憶體控制器配置為進行上述操作。在一些實施方案中,一種系統包括可通信地耦接至記憶體裝置且配置為存取記憶單元陣列的主機裝置。在此類實施方案中,記憶體控制器配置為向主機裝置報告錯誤狀態,且主機裝置配置為在判定錯誤狀態後進行更新/重寫(例如,藉由將更新/重寫命令發送至記憶體控制器)。
使用上文及本說明書的以下章節中所描述的新穎特徵,可改進半導體記憶體裝置(諸如快閃記憶體裝置)的壽命或效能,或兩者。用於快閃記憶體裝置的習知技術藉由週期性地重寫儲存的資料來解決資料保持或讀取干擾問題,以確保當資料損失超過錯誤校正臨限範圍時資料不會永久性損壞。週期性重寫通常以固定速率進行。然而,隨著更頻繁地存取記憶單元及記憶單元的程式化/抹除週期增加,資料更可能遭受損失,而對於具有較不頻繁存取的記憶單元,損失較不可能。在此類情況下,不顧及存取頻率的改變而將相同週期性重寫速率應用於記憶單元會因在低存取範圍下的資料重寫而導致不必要的寫入循環。此類浪費的寫入循環可能降低記憶單元的有用壽命,從而導致記憶體裝置的耐久性整體降低。
相比之下,使用所揭露技術,當記憶單元的抹除計數在較低抹除計數範圍中時,記憶體控制器以更低頻率抹除記憶單元,使得儲存於記憶單元中的資料較不可能在檢查之間遭受損失,驅使在此抹除計數範圍內的記憶單元設定較高錯誤臨限值。在一些實施方案中,當資料錯誤位元數低於對應錯誤臨限值時,可精確讀取儲存的資料,且不需要更新所述資料。然而,若資料錯誤位元數超過錯誤臨限值,則更新資料。隨著記憶單元的程式化/抹除循環的數目/頻率增加,記憶單元的抹除計數增加且映射至較高抹除計數範圍,所述較高抹除計數範圍具有對應較低錯誤臨限值,所述較低錯誤臨限值針對因增加的程式化/抹除循環而導致的較差資料損失率進行調整。因此,記憶體控制器取決於記憶單元的抹除速率而動態地調整記憶單元的錯誤臨限值,從而正確地解決較高資料損失速率。以此方式,所揭露技術動態地調整資料更新操作,且將更新操作的頻率限於需要更新操作以防止資料損失的情形,從而避免較低抹除速率的資料更新的不必要循環。藉此,所揭露技術延長記憶單元的壽命,以及包括記憶單元的一或多個陣列的壽命。因此,所揭露技術改進記憶體裝置的資料保持能力。
所揭露技術可應用於可受資料保持問題或讀取干擾問題影響的各種類型的非揮發性記憶體裝置。舉例而言,所揭露技術可應用於反及(NAND)快閃記憶體、反或(NOR)快閃記憶體或相變記憶體(phase change memory;PCM),以及其他。附加的地或替代地,所述技術可應用於各種類型的主記憶體或快取記憶體裝置,諸如電阻式隨機存取記憶體(resistive random access memory;ReRAM),或MRAM,以及其他。
在隨附圖式及以下描述中闡述一或多個所揭露實施方案的細節。其他特徵、態樣以及優點將自描述、圖式以及申請專利範圍而變得顯而易見。
圖1示出使用可變錯誤臨限值進行更新操作的實例系統100的方塊圖。系統100包括使用匯流排117耦接至主機裝置120的記憶體裝置110。記憶體裝置110包括記憶體控制器112,以及儲存資料及其他資訊的儲存陣列114。
在一些實施方案中,記憶體裝置110為儲存裝置。舉例而言,記憶體裝置110可為嵌入式多媒體卡(embedded multimedia card;eMMC)、安全數位(secure digital;SD)卡、固態驅動機(solid-state drive;SSD),或某一其他合適的儲存器。在一些實施方案中,記憶體裝置110為耦接至主機裝置120的客戶端裝置。舉例而言,記憶體裝置110可為耦接至作為主機裝置120的數位攝影機或媒體播放器的SD卡。
記憶體控制器112管理對儲存陣列114的存取及對所述儲存陣列114進行的操作。以下章節基於使用記憶體控制器112來管理儲存陣列114的實施方案來描述各種技術。然而,描述於以下章節中的技術亦可應用於使用記憶體裝置110中的另一類型的控制器(不同於記憶體控制器)來管理儲存陣列114的實施方案中。
在一些實施方案中,儲存陣列114為非揮發性記憶體,例如反及快閃記憶體或反或快閃記憶體,或某一其他合適的非揮發性記憶體。在儲存陣列114為反及快閃記憶體或反或快閃記憶體的實施方案中,記憶體裝置110為快閃記憶體裝置,例如快閃記憶體卡,且記憶體控制器112為快閃控制器。舉例而言,在一些情況下,記憶體裝置110為串列周邊介面(Serial Peripheral Interface;SPI)裝置,其中儲存記憶體為反或快閃記憶體或反及快閃記憶體。出於說明目的,以下描述使用快閃記憶體作為儲存陣列114的實例。
如所繪示,儲存陣列114包括多個記憶體區塊:記憶體區塊116a至記憶體區塊116n。記憶體區塊又包括一或多個記憶體分頁。舉例而言,記憶體區塊116a包括記憶體分頁116a_1……記憶體分頁116a_m;且記憶體區塊116n包括記憶體分頁116n_1……記憶體分頁116n_m。記憶體分頁由一或多個記憶單元構成。記憶體區塊及組成性記憶體分頁配置為將資料或指令或兩者儲存於記憶單元中以供主機裝置120使用。記憶單元可包括單層單元(single-level cell;SLC)、多層單元(multi-level cell;MLC)、三層單元(triple-level cell;TLC)、四層單元(quad-level cell;QLC),或超出QLC的更高階記憶單元,或此等的任何組合。SLC每記憶單元儲存一個位元的資料;MLC記憶單元每記憶單元儲存兩個位元的資料;TLC記憶單元每記憶單元儲存三個位元的資料;QLC記憶單元每記憶單元儲存四個位元的資料;且超出QLC的更高階記憶單元每記憶單元儲存五個或大於五個位元的資料。
記憶體控制器112可為微處理器或微控制器,或特殊應用積體電路(application specific integrated circuit;ASIC)晶片,以及其他合適的類型。記憶體控制器112經由匯流排117自主機裝置112接收寫入或讀取命令,以對儲存陣列114分別進行寫入或讀取操作。記憶體控制器112亦例如在主機裝置120未收到讀取或寫入命令時的空閒時間期間對儲存陣列進行內務處理操作。內務處理操作包括當資料的錯誤位元滿足預定條件時(例如當錯誤位元等於或超過錯誤臨限值時)向主機裝置120報告記憶體區塊116a……記憶體區塊116n中的記憶體分頁的錯誤狀態。另外或替代地,內務處理操作包括記憶體區塊116a……記憶體區塊116n中的記憶體分頁的更新操作,以最佳化儲存陣列114的壽命或效能。記憶體更新操作包括當資料的錯誤位元滿足預定條件時(例如當錯誤位元等於或超過錯誤臨限值時)將儲存於記憶體陣列114的部分中的資料重寫至記憶體陣列的其他部分。在一些實施方案中,回應於向主機裝置報告錯誤狀態,在自主機裝置120接收到命令後進行記憶體更新操作。在一些實施方案中,記憶體控制器112以記憶體分頁(諸如記憶體分頁116a_1、記憶體分頁116a_m、記憶體分頁116n_1或記憶體分頁116n_m)的精細度進行更新操作。在一些其他實施方案中,記憶體控制器112以記憶體區塊(諸如記憶體區塊116a或記憶體區塊116n)的精細度進行更新操作。亦可針對其他合適的記憶單元進行更新操作。
在以下章節中,相對於記憶體分頁描述藉由所揭露技術進行的更新操作。然而,所述技術亦可用以更新儲存陣列114中的不同精細度的記憶單元,諸如記憶體區塊或記憶單元,以及其他。
在一些實施方案中,記憶體控制器112追蹤抹除記憶體分頁的次數,且儲存所述數目作為記憶體分頁的抹除計數。舉例而言,記憶體控制器112追蹤抹除記憶體分頁116a_1、記憶體分頁116a_m、記憶體分頁116n_1或記憶體分頁116n_m中的每一者多少次,且儲存每一頁的抹除計數。
如在下文更詳細地描述,在一些實施方案中,記憶體控制器112將頁的抹除計數儲存於所述頁內的記憶單元中。舉例而言,在此類實施方案中,記憶體控制器112將頁116a_1、頁116a_m、頁116n_1或頁116n_m中的一或多者的抹除計數儲存於各別頁內的記憶單元中。在其他實施方案中,記憶體控制器112將頁的抹除計數儲存於不同位置中。舉例而言,記憶體控制器112可將頁116a_1、頁116a_m、頁116n_1或頁116n_m中的一或多者的抹除計數儲存於與頁116a_1、頁116a_m、頁116n_1或頁116n_m不同的記憶體分頁或記憶體區塊(諸如專用於儲存抹除計數的記憶體分頁或記憶體區塊)中。作為另一實例,記憶體控制器112可將頁116a_1、頁116a_m、頁116n_1或頁116n_m中的一或多者的抹除計數儲存於暫存器或與儲存陣列114不同的其他合適的儲存器中。
在一些實施方案中,記憶體分頁存取操作對應於記憶體分頁的抹除操作。在此類實施方案中,抹除計數表示針對記憶體分頁的抹除操作的數目。
在一些實施方案中,為了追蹤是否應更新記憶體分頁以防止資料損失,記憶體控制器112使用兩個或大於兩個抹除計數範圍,從而將特定錯誤臨限值相關於每個抹除計數範圍。對於記憶體分頁,記憶體控制器112判定涵蓋記憶體分頁抹除計數的抹除計數範圍,且接著比較記憶體分頁的錯誤位元數與所判定範圍相關的錯誤臨限值。若錯誤位元數與錯誤臨限值滿足已知關係(即第一準則),則記憶體控制器112設定旗標以觸發錯誤狀態報告,或記憶體分頁的更新,或兩者。在一些實施方案中,在判定設定了旗標後,主機裝置120例如藉由以下操作進行更新操作:讀取記憶體區塊中的資料,將資料儲存於外部,抹除記憶體區塊且接著將資料寫回至初始記憶體位址。在一些實施方案中,已知關係可為「大於或等於」關係。在此類實施方案中,若記憶體分頁的錯誤位元數大於或等於與所判定範圍相關的錯誤臨限值,則記憶體控制器112繼續進行至更新記憶體分頁。其他合適的關係亦可用於各種實施方案中。在一些實施方案中,當錯誤位元數與錯誤臨限值滿足已知關係時,記憶體控制器112進行更新操作,而無需自主機裝置120接收任何更新指令。
在一些實施方案中,不同錯誤臨限值相關於不同抹除計數範圍,其中與抹除計數範圍相關的錯誤臨限值不同於用於其他抹除計數範圍的錯誤臨限值。在一些情況下,較高錯誤臨限值相關於較低抹除計數範圍,且較低錯誤臨限值相關於較高抹除計數範圍。舉例而言,在一些情況下,四個抹除計數範圍(以循環為單位量測)可配置用於記憶體裝置110:
● 0個至100個程式化/抹除循環(稱為範圍A);
● 101個至1000個程式化/抹除循環(稱為範圍B);
● 1001個至10000個程式化/抹除循環(稱為範圍C);以及
● 10001個至100000個程式化/抹除循環(稱為範圍D)。
假定記憶體控制器112中的錯誤校正引擎可校正至多8位元錯誤,則相關於四個不同抹除計數範圍的錯誤臨限值可為:
● 範圍A(0個至100個程式化/抹除循環):錯誤臨限值=8個位元;
● 範圍B(101個至1000個程式化/抹除循環):錯誤臨限值=7個位元;
● 範圍C(1001個至10000個程式化/抹除循環):錯誤臨限值=6個位元;以及
● 範圍D(10001個至100000個程式化/抹除循環):錯誤臨限值=4個位元。
當記憶體分頁在較低抹除計數範圍(例如,範圍A)中時,記憶體分頁已被抹除少數幾次,使得儲存於記憶體分頁中的資料較不可能已在每一檢查之間損壞。因此,較高錯誤臨限值相關於此較低抹除計數範圍。隨著記憶體分頁的抹除操作的數目增加,記憶體分頁的資料損失的機率因更頻繁的抹除操作而增加。此反映於用於較高抹除計數範圍的較低錯誤臨限值中。隨著抹除操作的數目的增加,記憶體分頁的抹除計數進入下一較高抹除計數範圍(例如,範圍B),所述較高抹除計數範圍(相較於較低抹除計數範圍(範圍A))具有針對較差資料損失率進行調整的較低錯誤臨限值。當記憶體分頁的抹除計數在範圍A中時,記憶體控制器112基於比較記憶體分頁的錯誤位元與8個位元的錯誤臨限值來判定是否重寫資料。然而,當記憶體分頁的抹除計數在下一較高範圍B中時,記憶體控制器112基於比較記憶體分頁的錯誤位元與7個位元的較低錯誤臨限值來判定是否重寫資料。
以上抹除計數範圍及對應錯誤臨限值僅出於說明目的。不同實施方案可使用不同抹除計數範圍,或錯誤臨限值,或兩者。舉例而言,在一些情況下,抹除計數範圍可包括:0個至100個循環;100個至500個循環;500個至5000個循環;5000個至10000個循環,或其他合適的值。錯誤臨限值可為16個位元(例如,當錯誤校正引擎可校正至多16位元錯誤時)、14個位元、12個位元、10個位元,或其他合適的值。
在一些實施方案中,抹除計數範圍或對應錯誤臨限值或兩者由記憶體裝置110的製造商組態。在一些實施方案中,抹除計數範圍或對應錯誤臨限值或兩者可由記憶體裝置110的使用者(例如,裝置管理員)組態。裝置製造商可向記憶體裝置110傳送抹除計數範圍及對應錯誤臨限值的預設值(例如,取決於矽製造製程),但記憶體裝置110的使用者可根據使用者的具體需要在部署之前改變所述值。
如先前所提及,在一些實施方案中,記憶體控制器112將頁的抹除計數儲存於頁的區段中,例如頁內的記憶單元中。圖2示出將抹除計數儲存於記憶體裝置中的記憶體分頁內以用於動態地調整更新操作的錯誤臨限值的實例記憶體裝置210的方塊圖。記憶體裝置210包括記憶體控制器212,以及儲存資料及其他資訊的儲存陣列214。如圖2所繪示,儲存陣列114包括多個記憶體區塊,例如記憶體區塊216a至記憶體區塊216n。記憶體區塊包括一或多個記憶體分頁。舉例而言,記憶體區塊216a包括記憶體分頁216a_1、記憶體分頁216a_2……記憶體分頁216a_m;且記憶體區塊216n包括記憶體分頁216n_1、記憶體分頁216n_2……記憶體分頁216n_m。
在一些實施方案中,記憶體裝置210類似於系統100中的記憶體裝置110。在此類實施方案中,記憶體控制器212類似於記憶體控制器112。此外,儲存陣列214類似於儲存陣列114,其中記憶體區塊216a至記憶體區塊216n分別類似於記憶體區塊116a至記憶體區塊116n,且組成性記憶體分頁216a_1……記憶體分頁216a_m以及記憶體分頁216n_1……記憶體分頁216n_m分別類似於記憶體分頁116a_1……記憶體分頁116a_m以及記憶體分頁116n_1……記憶體分頁116n_m。在此類實施方案中,記憶體裝置210連接至主機裝置,例如類似於主機裝置120的主機裝置。
如圖2中所繪示,在一些實施方案中,將儲存陣列214中的記憶體分頁的抹除計數儲存於記憶體分頁自身的區段中。舉例而言,記憶體分頁216a_1、記憶體分頁216a_2……記憶體分頁216a_m包括各別區段217a_1、區段217a_2……區段217a_m以儲存抹除計數。類似地,記憶體分頁216n_1、記憶體分頁216n_2……記憶體分頁216n_m包括各別區段217n_1、區段217n_2……區段217n_m以儲存抹除計數。在一些實施方案中,記憶體控制器212使用記憶體分頁內的指定區段來儲存記憶體分頁自身的抹除計數。舉例而言,在此類實施方案中,記憶體控制器212將記憶體分頁216a_1的抹除計數儲存於記憶體分頁216a_1的區段217a_1中,且將記憶體分頁216n_1的抹除計數儲存於記憶體分頁216n_1的區段217n_1中。然而,在一些其他實施方案中,記憶體控制器212將至少一些記憶體分頁的抹除計數儲存於其他記憶體分頁的指定區段中。舉例而言,記憶體控制器212可將記憶體分頁216a_1的抹除計數儲存於區段217a_2、區段217a_m或區段217n_1或其他記憶體分頁中的區段中的一者中。如先前所提及,記憶單元與記憶單元的抹除計數儲存器的其他合適的組合亦為可能的。
在一些實施方案中,記憶體控制器212指定每一記憶體分頁中的已知數目個記憶單元以儲存抹除計數。指定的記憶單元的數目取決於表示抹除計數值所需的位元數,以及可儲存於記憶單元中的位元數,以及其他參數。舉例而言,在記憶體控制器212追蹤至多100000個抹除循環的情況下,可使用17個位元來儲存至多100000個抹除循環。若例如取決於用於儲存陣列214中的單元的類型而使用SLC單元,則抹除計數儲存區段(例如,區段217a_1、區段217a_2……區段217a_m、區段217n_1、區段217n_2……或區段217n_m中的一或多者)可包括17個SLC單元。然而,若使用MLC單元,則抹除計數儲存區段可包括9個SLC單元。
如圖2中所繪示,記憶體控制器212包括周邊電路220以及其他組件,所述周邊電路220用以檢查儲存陣列214中的記憶體分頁的抹除計數,以及比較抹除計數與錯誤臨限值。周邊電路220包括錯誤臨限解碼器222及比較器電路224。記憶體控制器212獲得針對記憶體分頁儲存的抹除計數且將抹除計數發送至錯誤臨限解碼器222,如輸入至錯誤臨限解碼器222的218所繪示。舉例而言,在(例如,回應於自連接的主機裝置接收到讀取命令而)讀取記憶體分頁216a_1後,記憶體控制器212例如自區段217a_1獲得記憶體分頁216a_1的當前抹除計數,以判定是否需要更新記憶體分頁216a_1。記憶體控制器212將抹除計數發送至錯誤臨限解碼器222,所述錯誤臨限解碼器222(自由記憶體裝置210使用的範圍當中)判定涵蓋記憶體分頁的當前抹除計數的抹除計數範圍,且識別相關於所判定抹除計數範圍的錯誤臨限值。
錯誤臨限解碼器222輸出錯誤臨限值,將所述錯誤臨限值提供為比較器224的輸入。記憶體控制器212亦讀出儲存於記憶體分頁中的資料(例如,針對以上實例中的記憶體分頁216a_1)且計算資料的錯誤位元數。將錯誤位元數提供為比較器224的另一輸入,如輸入至比較器224的輸入219所繪示。
比較器224比較錯誤位元數與錯誤臨限值以判定此些數值是否滿足已知關係,且輸出指示比較結果或狀態的錯誤臨界旗標的值。舉例而言,若錯誤位元數與錯誤臨限值滿足關係(諸如,在一些實施方案中,錯誤位元數等於或大於錯誤臨限值),則比較器224輸出錯誤臨限旗標的值以指示需要記憶體分頁的資料更新。取決於實施方案,錯誤臨限旗標的值可為「0」或「1」。另一方面,若錯誤位元數與錯誤臨限值並不滿足關係(諸如在以上實例中,錯誤位元數小於錯誤臨限值),則由比較器224輸出的錯誤臨限旗標的值指示不需要記憶體分頁的資料更新。在此情況下,錯誤臨限旗標的值將與上述值互補(例如,當滿足關係時在旗標值為「1」的情況下為「0」,或反之亦然)。主機120存取記憶體控制器212以得到錯誤臨限旗標且判定是否(例如,藉由將儲存於記憶體分頁中的資料重寫至儲存陣列214中的不同記憶體區塊)進行記憶體分頁的資料更新,以防止記憶體分頁中的資料不可撤銷地損壞。如先前所描述,在一些實施方案中,記憶體控制器212進行更新操作,而無需自主機120接收任何更新指令或命令。
如先前所描述,不同錯誤臨限值可相關於不同抹除計數範圍,其中在一些實施方案中,較低抹除計數範圍相較於較高抹除計數範圍而具有較高錯誤臨限值。因此,隨著記憶體分頁的抹除循環的數目增加,使得對應抹除計數增加且移動至較高抹除計數範圍,錯誤臨限值可降低,從而觸發具有較低錯誤位元數的資料更新。以此方式,記憶體控制器212可使用動態地改變的條件來更新記憶體分頁的資料,其中所述改變至少部分地取決於已抹除記憶體分頁的次數。
如先前所提及,在一些實施方案中,記憶體裝置210使用ECC引擎來校正位元錯誤。錯誤臨限解碼器222判定記憶體分頁的ECC臨限值,且比較器224比較ECC臨限值與記憶體分頁的錯誤位元數。
圖3示出由記憶體控制器用以更新儲存於記憶體裝置中的記憶體分頁中的資料的流程300的實例。在一些實施方案中,流程300由記憶體裝置210的記憶體控制器212(或等效地,由記憶體裝置110的記憶體控制器112)進行以更新儲存於記憶體陣列214中的記憶體分頁中的資料,所述記憶體分頁諸如記憶體區塊216a中的記憶體分頁216a_1、記憶體分頁216a_2……記憶體分頁216a_n,或記憶體區塊216n中的記憶體分頁217n_1、記憶體分頁217n_2……記憶體分頁217n_m。因此,以下章節相對於記憶體控制器212描述流程300。然而,流程300亦可由其他裝置進行。
流程300在記憶體控制器存取記憶體分頁時開始(302)。舉例而言,在自主機裝置接收到讀取命令後,記憶體控制器212藉由在位址翻譯表中進行位址查找來判定目標記憶體位置的實體位址,且接著存取對應記憶體分頁,諸如記憶體區塊216a中的記憶體分頁216a_1、記憶體分頁216a_2……記憶體分頁216a_m中的一者,或記憶體區塊216n中的記憶體分頁216n_1、記憶體分頁216n_2……記憶體分頁216n_m中的一者。
針對對應於記憶體分頁的記憶體資料計算錯誤位元(304)。舉例而言,記憶體控制器212讀出儲存於記憶體分頁(例如,以上實例中的記憶體分頁216a_1)中的資料且將資料提供至ECC引擎,所述ECC引擎計算資料的錯誤位元數。將錯誤位元數提供為比較器224的輸入。
記憶體控制器判定對應於記憶體分頁的抹除計數(306)。舉例而言,記憶體控制器212針對所存取記憶體分頁讀取對應抹除計數,所述對應抹除計數指示已存取記憶體分頁次數以用於抹除操作。在一些實施方案中,將抹除計數儲存於記憶體分頁的指定區段中,且記憶體控制器212自記憶體分頁的指定區段讀取抹除計數。舉例而言,在一些實施方案中,將記憶體分頁216a_1的抹除計數儲存於記憶體分頁的區段217a_1中;記憶體控制器212自區段217a_1讀取記憶體分頁216a_1的抹除計數。
記憶體控制器使用抹除計數判定錯誤臨限值(308)。舉例而言,記憶體控制器212將針對記憶體分頁(例如,針對以上實例中的記憶體分頁216a_1)判定的抹除計數提供至錯誤臨限解碼器222,所述錯誤臨限解碼器222將抹除計數映射至用於記憶體裝置210中的多個抹除計數範圍中的一者。錯誤臨限解碼器222接著判定相關於所映射抹除計數範圍的錯誤臨限值。將所判定錯誤臨限值提供至比較器224的輸入。
記憶體控制器判定錯誤位元與錯誤臨限值之間的關係是否滿足第一準則(310)。舉例而言,在一些實施方案中,比較器224檢查記憶體分頁(例如,以上實例中的記憶體分頁216a_1)的錯誤位元數是否等於或大於對應於記憶體分頁的抹除計數的錯誤臨限值,且提供指示比較結果的輸出值。
若錯誤位元與錯誤臨限值之間的關係滿足第一準則,則記憶體控制器舉起錯誤臨限旗標(312)。舉例而言,在一些實施方案中,當比較器224的輸出指示錯誤位元數等於或大於錯誤臨限值時,記憶體控制器212(例如,藉由將旗標設定為值「1」)設定錯誤臨限旗標的值以指示需要記憶體分頁的資料更新。主機裝置(例如,主機120)讀取錯誤臨限旗標值且判定是否進行資料更新操作以防止記憶體分頁中的資料被不可挽回地損壞。在一些實施方案中,主機裝置例如藉由讀出資料且將資料暫時儲存於外部來繼續進行資料更新操作,且接著將資料的每一頁寫入至儲存陣列214中的不同記憶體分頁。
另一方面,若錯誤位元與錯誤臨限值之間的關係並不滿足第一準則,則流程300結束。舉例而言,在一些實施方案中,當比較器224的輸出指示錯誤位元數小於錯誤臨限值時,記憶體控制器212設定錯誤旗標的值以指示不需要記憶體分頁的資料更新。在此類實施方案中,主機裝置(例如,主機120)讀取旗標值且意識到儲存於記憶體分頁中的資料的錯誤位元數在可恢復範圍內,使得不需要將資料重寫至儲存陣列214的另一區段。以上述方式,記憶體控制器212使用流程300來使用可變錯誤臨限值更新記憶體資料,該可變錯誤臨限值根據於記憶單元的抹除計數而動態地應用於記憶單元,從而使得儲存陣列214的壽命提高。
應注意,儘管流程步驟、方法步驟、演算法或類似者可按以上依序次序描述,但此類流程、方法以及演算法通常可配置為按替代次序工作,除非具體地相反陳述。
所揭露及其他實例可實施為一或多個電腦程式產品,例如在電腦可讀媒體上編碼的電腦程式指令的一或多個模組,所述一或多個模組由資料處理設備執行或控制資料處理設備的操作。電腦可讀媒體可為機器可讀儲存裝置、機器可讀儲存基底、記憶體裝置或其中的一或多者的組合。術語「資料處理設備」涵蓋用於處理資料的所有設備、裝置以及機器,藉助於實例包括可程式化處理器、電腦或多個處理器或電腦。除硬體以外,設備可包括為所討論的電腦程式創建執行環境的程式碼,例如構成處理器韌體、協定堆疊、資料庫管理系統、作業系統或其中的一或多者的組合的程式碼。
系統可涵蓋用於處理資料的所有設備、裝置以及機器,藉助於實例包括可程式化處理器、電腦或多個處理器或電腦。除硬體以外,系統可包括為所討論的電腦程式創建執行環境的程式碼,例如構成處理器韌體、協定堆疊、資料庫管理系統、作業系統或其中的一或多者的組合的程式碼。
電腦程式(亦稱為程式、軟體、軟體應用程式、指令碼或程式碼)可以任何形式的程式化語言寫入,包括編譯或解譯語言,且其可以任何形式部署,包括作為獨立程式或作為模組、組件、次常式或適合用於計算環境中的其他單元。電腦程式未必對應於檔案系統中的檔案。可將程式儲存於保存其他程式或資料(例如,儲存於標示語言文件中的一或多個指令碼)的檔案的一部分中、儲存於專用於所討論的程式的單一檔案中,或儲存於多個協調檔案(例如,儲存一或多個模組、子程式或部分程式碼的檔案)中。可部署電腦程式以在一個電腦上執行或在定位於一個位點或跨多個位點分佈且由通信網路互連的多個電腦上執行。
本文件中所描述的流程及邏輯流程可由一或多個可程式化處理器進行,所述可程式化處理器執行一或多個電腦程式以進行本文中所描述的功能。流程及邏輯流程亦可由專用邏輯電路系統(例如,FPGA或特殊應用積體電路(ASIC))進行,且設備亦可實施為所述專用邏輯電路系統。
適合於執行電腦程式的處理器藉助於實例包括通用微處理器及專用微處理器兩者,以及任何種類的數位電腦的任何一或多個處理器。適合於儲存電腦程式指令及資料的電腦可讀媒體可包括所有形式的非揮發性記憶體、媒體以及記憶體裝置。處理器及記憶體可由專用邏輯電路系統補充或併入於專用邏輯電路系統中。
儘管本文件可描述許多細節,但此等細節不應視為對本發明的所主張或可主張的範圍的限制,而是視為描述特定針對特定實施例的特徵。在單獨實施例的上下文中描述於本文件中的某些特徵亦可在單一實施例中組合地實施。相反,描述於單一實施例的上下文中的各種特徵亦可單獨地或以任何合適的子組合在多個實施例中實施。此外,儘管上文可將特徵描述為以某些組合起作用且甚至最初按此來主張,但來自所主張的組合的一或多個特徵在一些情況下可自所述組合刪除,且所主張的組合可針對子組合或子組合的變化。類似地,儘管在圖式中以特定次序來描繪操作,但不應將此理解為需要以所繪示的特定次序或以依序次序進行此類操作,或進行所有所示出操作以達成合乎需要的結果。
僅揭露幾個實例及實施方案。對所描述實例及實施方案以及其他實施方案的變化、修改以及增強可基於所揭露的內容進行。
100:系統
110、210:記憶體裝置
112、212:記憶體控制器
114、214:儲存陣列
116a、116n、216a、216n:記憶體區塊
116a_1、116a_m、116n_1、116n_m、216a_1、216a_2、216a_m、216n_1、216n_2、216n_m:記憶體分頁
117:匯流排
120:主機裝置
217a_1、217a_2、217a_m、217n_1、217n_2、217n_m:區段
218、219:輸入
220:周邊電路
222:錯誤臨限解碼器
224:比較器
300:流程
302、304、306、308、310、312:步驟
圖1示出使用可變錯誤臨限值進行更新操作的實例系統的方塊圖。
圖2示出將抹除計數儲存於記憶體裝置中的記憶體分頁內以用於動態地調整更新操作的錯誤臨限值的實例記憶體裝置的方塊圖。
圖3示出由記憶體控制器用以更新儲存於記憶體裝置中的記憶體分頁中的資料的流程的實例。
圖式中的類似附圖標號指示類似元件。
300:流程
302、304、306、308、310、312:步驟
Claims (17)
- 一種資料保持方法,適用於記憶體裝置,包括: 由記憶體控制器存取所述記憶體裝置的儲存記憶體陣列中記憶體區塊的記憶體分頁,所述儲存記憶體陣列由所述記憶體控制器管理; 由所述記憶體控制器讀取儲存於所存取記憶體分頁中的記憶體資料; 由所述記憶體控制器判定相關於所述記憶體資料的錯誤位元數; 由所述記憶體控制器獲得對應於所述所存取記憶體分頁的抹除計數,所述抹除計數指示在所述所存取記憶體分頁上進行的抹除操作的數目; 由所述記憶體控制器至少基於所述抹除計數自一或多個錯誤臨限值當中判定錯誤臨限值; 由所述記憶體控制器判定所述錯誤位元數與所述錯誤臨限值之間的關係;以及 由所述記憶體控制器以所述錯誤位元數與所述錯誤臨限值之間的所述關係滿足第一準則為條件觸發所存取記憶體區塊的資料更新。
- 如請求項1所述的資料保持方法,其中判定所述錯誤位元數與所述錯誤臨限值之間的所述關係包括比較所述錯誤位元數與所述錯誤臨限值,且 其中以所述關係滿足所述第一準則為條件觸發所述資料更新包括: 判定所述錯誤位元數是否等於或超過所述錯誤臨限值,且若是,則觸發所述所存取記憶體區塊的所述資料更新。
- 如請求項1所述的資料保持方法,其中觸發所述所存取記憶體區塊的所述資料更新包括: 設定對應於所述所存取記憶體區塊的旗標,所述旗標指示待進行所述所存取記憶體區塊的資料更新。
- 如請求項3所述的資料保持方法,更包括: 由耦接至所述記憶體裝置的主機裝置讀取所述旗標; 由所述主機裝置判定所述旗標指示待進行所述所存取記憶體區塊的資料更新;以及 回應於判定所述旗標指示待進行所述所存取記憶體區塊的資料更新,由所述主機裝置進行所述所存取記憶體區塊的資料更新。
- 如請求項1所述的資料保持方法,其中所述一或多個錯誤臨限值中的錯誤臨限值指定待發生錯誤的記憶體資料的位元數以觸發資料更新,且 其中較高抹除計數範圍相關於較低錯誤臨限值,而較低抹除計數範圍相關於較高錯誤臨限值,其中所述較高抹除計數範圍的抹除計數範圍高於所述較低抹除計數範圍,所述較低錯誤臨限值的值低於所述較高錯誤臨限值,且所述抹除計數在多個抹除計數範圍中的一者內。
- 如請求項1所述的資料保持方法,其中所述抹除計數在多個抹除計數範圍中的經指定第一抹除計數範圍內,所述第一抹除計數範圍相關於第一錯誤臨限值,所述方法更包括: 在第二時間處存取所述所存取記憶體分頁; 判定對應於所述第二時間處的所述所存取記憶體分頁的經更新抹除計數; 判定所述經更新抹除計數在所述多個抹除計數範圍中的經指定第二抹除計數範圍內,所述第二抹除計數範圍不同於所述第一抹除計數範圍;以及 至少基於所述經更新抹除計數自所述一或多個錯誤臨限值當中判定第二錯誤臨限值,其中所述第二錯誤臨限值不同於所述第一錯誤臨限值,且其中所述第二抹除計數範圍相關於所述第二錯誤臨限值。
- 如請求項6所述的資料保持方法,其中所述經更新抹除計數大於所述抹除計數,且其中所述第二錯誤臨限值小於所述第一錯誤臨限值。
- 如請求項1所述的資料保持方法,其中所述抹除計數包括程式化與抹除週期計數或指示所述所存取記憶體區塊的存取速率的資訊中的一者。
- 一種記憶體裝置,包括: 儲存陣列,包括一或多個記憶體區塊,其中所述記憶體區塊中的至少一者包括一或多個記憶體分頁; 記憶體控制器,用以管理對所述儲存陣列的存取,其中所述記憶體控制器配置為進行包括以下的操作: 存取所述記憶體裝置的儲存記憶體陣列中記憶體區塊的記憶體分頁,所述儲存記憶體陣列由所述記憶體控制器管理; 讀取儲存於所存取記憶體分頁中的記憶體資料; 判定相關於所述記憶體資料的錯誤位元數; 獲得對應於所述所存取記憶體分頁的抹除計數,所述抹除計數指示在所述所存取記憶體分頁上進行的抹除操作的數目; 至少基於所述抹除計數自一或多個錯誤臨限值當中判定錯誤臨限值; 判定所述錯誤位元數與所述錯誤臨限值之間的關係;以及 以所述錯誤位元數與所述錯誤臨限值之間的所述關係滿足第一準則為條件觸發所存取記憶體區塊的資料更新。
- 如請求項9所述的記憶體裝置,其中所述記憶體控制器包括比較器,所述比較器配置為比較所述錯誤位元數與所述錯誤臨限值以用於判定所述錯誤位元數與所述錯誤臨限值之間的所述關係,且 其中以所述關係滿足所述第一準則為條件觸發所述資料更新包括: 判定所述錯誤位元數是否等於或超過所述錯誤臨限值,且若是,則觸發所述所存取記憶體區塊的所述資料更新。
- 如請求項9所述的記憶體裝置,其中觸發所述所存取記憶體區塊的所述資料更新包括: 設定對應於所述所存取記憶體區塊的旗標,所述旗標指示待進行所述所存取記憶體區塊的資料更新。
- 如請求項11所述的記憶體裝置,其中耦接至所述記憶體裝置的主機裝置配置為讀取所述旗標, 其中所述記憶體控制器配置為回應於自所述主機裝置接收到命令而進行所述所存取記憶體區塊的資料更新,且 其中所述主機裝置配置為至少基於判定所述旗標指示待進行所述所存取記憶體區塊的資料更新來發送所述命令。
- 如請求項9所述的記憶體裝置,其中所述一或多個錯誤臨限值中的錯誤臨限值指定待發生錯誤的記憶體資料的位元數以觸發資料更新,且 其中較高抹除計數範圍相關於較低錯誤臨限值,而較低抹除計數範圍相關於較高錯誤臨限值,其中所述較高抹除計數範圍的抹除計數範圍高於所述較低抹除計數範圍,所述較低錯誤臨限值的值低於所述較高錯誤臨限值,且所述抹除計數在多個抹除計數範圍中的一者內。
- 如請求項9所述的記憶體裝置,其中所述抹除計數在多個抹除計數範圍中的經指定第一抹除計數範圍內,所述第一抹除計數範圍相關於第一錯誤臨限值,且其中所述操作更包括: 在第二時間處存取所述所存取記憶體分頁; 判定對應於所述第二時間處的所述所存取記憶體分頁的經更新抹除計數; 判定所述經更新抹除計數在所述多個抹除計數範圍中的經指定第二抹除計數範圍內,所述第二抹除計數範圍不同於所述第一抹除計數範圍;以及 至少基於所述經更新抹除計數自所述一或多個錯誤臨限值當中判定第二錯誤臨限值,其中所述第二錯誤臨限值不同於所述第一錯誤臨限值,且其中所述第二抹除計數範圍相關於所述第二錯誤臨限值。
- 如請求項14所述的記憶體裝置,其中所述經更新抹除計數大於所述抹除計數,且其中所述第二錯誤臨限值小於所述第一錯誤臨限值。
- 如請求項9所述的記憶體裝置,其中所述抹除計數包括程式化與抹除週期計數或指示所述所存取記憶體區塊的存取速率的資訊中的一者。
- 一種用於管理記憶體裝置的記憶體控制器,所述記憶體控制器包括: 一或多個處理器;以及 一或多個機器可讀媒體,儲存指令,所述指令在執行時使得所述一或多個處理器進行包括以下的操作: 存取所述記憶體裝置的儲存記憶體陣列中記憶體區塊的記憶體分頁,所述儲存記憶體陣列由所述記憶體控制器管理; 讀取儲存於所存取記憶體分頁中的記憶體資料; 判定相關於所述記憶體資料的錯誤位元數; 獲得對應於所述所存取記憶體分頁的抹除計數,所述抹除計數指示在所述所存取記憶體分頁上進行的抹除操作的數目; 至少基於所述抹除計數自一或多個錯誤臨限值當中判定錯誤臨限值; 判定所述錯誤位元數與所述錯誤臨限值之間的關係;以及 以所述錯誤位元數與所述錯誤臨限值之間的所述關係滿足第一準則為條件觸發所存取記憶體區塊的資料更新。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/089,972 | 2020-11-05 | ||
US17/089,972 US11461025B2 (en) | 2020-11-05 | 2020-11-05 | Data retention in memory devices |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI753777B true TWI753777B (zh) | 2022-01-21 |
TW202219961A TW202219961A (zh) | 2022-05-16 |
Family
ID=80809055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110105731A TWI753777B (zh) | 2020-11-05 | 2021-02-19 | 具記憶體控制器的記憶體裝置及其資料保持方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11461025B2 (zh) |
CN (1) | CN114443344A (zh) |
TW (1) | TWI753777B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10013335B2 (en) * | 2015-12-21 | 2018-07-03 | Intel Corporation | Data flow analysis in processor trace logs using compiler-type information method and apparatus |
US11106532B1 (en) * | 2020-04-29 | 2021-08-31 | Micron Technology, Inc. | Selective sampling of a data unit during a program erase cycle based on error rate change patterns |
TWI763608B (zh) * | 2021-11-02 | 2022-05-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其損壞資料行的篩選方法 |
KR20240072769A (ko) * | 2022-11-17 | 2024-05-24 | 에스케이하이닉스 주식회사 | 건강 상태에 적응적인 메모리 시스템과, 이를 위한 메모리 컨트롤러 및 그 동작 방법 |
TWI822596B (zh) * | 2023-02-23 | 2023-11-11 | 華邦電子股份有限公司 | 記憶體裝置及其擦除方法 |
CN117666972B (zh) * | 2024-02-01 | 2024-05-14 | 合肥康芯威存储技术有限公司 | 一种存储装置及其数据处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI490870B (zh) * | 2013-08-06 | 2015-07-01 | Silicon Motion Inc | 資料儲存裝置及其資料維護方法 |
US9620245B2 (en) * | 2013-12-17 | 2017-04-11 | Silicon Motion, Inc. | Data storage device and data maintenance method thereof |
US20170242786A1 (en) * | 2016-02-22 | 2017-08-24 | SK Hynix Inc. | Memory system and operation method thereof |
US9761326B2 (en) * | 2015-07-29 | 2017-09-12 | Toshiba Memory Corporation | Memory system and memory control method |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8489966B2 (en) * | 2010-01-08 | 2013-07-16 | Ocz Technology Group Inc. | Solid-state mass storage device and method for failure anticipation |
US8510637B2 (en) * | 2010-04-14 | 2013-08-13 | Phison Electronics Corp. | Data reading method, memory storage apparatus and memory controller thereof |
US9176800B2 (en) * | 2011-08-31 | 2015-11-03 | Micron Technology, Inc. | Memory refresh methods and apparatuses |
US9042181B2 (en) * | 2013-03-15 | 2015-05-26 | SanDisk Technologies, Inc. | Periodic erase operation for a non-volatile medium |
US9690655B2 (en) * | 2014-09-30 | 2017-06-27 | EMC IP Holding Company LLC | Method and system for improving flash storage utilization by predicting bad m-pages |
US9563504B2 (en) * | 2014-12-05 | 2017-02-07 | Sandisk Technologies Llc | Partial block erase for data refreshing and open-block programming |
TWI556103B (zh) * | 2016-02-05 | 2016-11-01 | 新唐科技股份有限公司 | 記憶體裝置及其資料存取方法 |
US10431315B2 (en) * | 2016-11-29 | 2019-10-01 | Samsung Electronics Co., Ltd. | Operation method of a nonvolatile memory device for controlling a resume operation |
KR102611345B1 (ko) * | 2018-07-31 | 2023-12-08 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR102530500B1 (ko) * | 2018-09-28 | 2023-05-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
JP7458763B2 (ja) * | 2018-12-13 | 2024-04-01 | ソニーセミコンダクタソリューションズ株式会社 | 階層セキュリティを備えたフラッシュ変換層 |
CN111326198A (zh) * | 2018-12-13 | 2020-06-23 | 北京兆易创新科技股份有限公司 | 非易失性存储器及其操作方法 |
US10937512B2 (en) * | 2019-01-22 | 2021-03-02 | International Business Machines Corporation | Managing programming errors in NAND flash memory |
KR20200122522A (ko) * | 2019-04-18 | 2020-10-28 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그 동작 방법 |
KR20210000414A (ko) * | 2019-06-25 | 2021-01-05 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
KR20210079555A (ko) * | 2019-12-20 | 2021-06-30 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
-
2020
- 2020-11-05 US US17/089,972 patent/US11461025B2/en active Active
-
2021
- 2021-02-19 TW TW110105731A patent/TWI753777B/zh active
- 2021-02-26 CN CN202110226820.2A patent/CN114443344A/zh active Pending
-
2022
- 2022-09-27 US US17/953,439 patent/US11853567B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI490870B (zh) * | 2013-08-06 | 2015-07-01 | Silicon Motion Inc | 資料儲存裝置及其資料維護方法 |
US9620245B2 (en) * | 2013-12-17 | 2017-04-11 | Silicon Motion, Inc. | Data storage device and data maintenance method thereof |
US9761326B2 (en) * | 2015-07-29 | 2017-09-12 | Toshiba Memory Corporation | Memory system and memory control method |
US20170242786A1 (en) * | 2016-02-22 | 2017-08-24 | SK Hynix Inc. | Memory system and operation method thereof |
Also Published As
Publication number | Publication date |
---|---|
TW202219961A (zh) | 2022-05-16 |
CN114443344A (zh) | 2022-05-06 |
US20220137842A1 (en) | 2022-05-05 |
US11461025B2 (en) | 2022-10-04 |
US11853567B2 (en) | 2023-12-26 |
US20230015202A1 (en) | 2023-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI753777B (zh) | 具記憶體控制器的記憶體裝置及其資料保持方法 | |
US11688485B2 (en) | Self-adaptive read voltage adjustment using boundary error statistics for memories with time-varying error rates | |
US9864545B2 (en) | Open erase block read automation | |
US20210090683A1 (en) | Self-adaptive read voltage adjustment using directional error statistics for memories with time-varying error rates | |
US20160118132A1 (en) | Low Impact Read Disturb Handling | |
US11783901B2 (en) | Multi-tier threshold voltage offset bin calibration | |
US9965345B2 (en) | Health management of non-volatile memory | |
US11150822B2 (en) | Memory system for determining usage of a buffer based on I/O throughput and operation method thereof | |
WO2020092642A1 (en) | Performing an on demand refresh operation of a memory sub-system | |
WO2016069196A1 (en) | Method and system for throttling power consumption | |
US10424383B1 (en) | Decoding method and storage controller | |
CN107924700B (zh) | 自适应多阶段擦除 | |
US11455107B2 (en) | Managing sequential write performance consistency for memory devices | |
TW201916041A (zh) | 資料讀取方法以及儲存控制器 | |
US11763914B2 (en) | Adapting an error recovery process in a memory sub-system | |
KR20240115798A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20200139913A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메타 정보 저장 장치 | |
US20160350191A1 (en) | Memory management method, memory storage device and memory control circuit unit | |
CN115145754A (zh) | 存储器装置中的错误处置流管理 | |
CN105761754B (zh) | 存储单元编程方法、存储器控制电路单元与存储装置 | |
CN113625939A (zh) | 保持非易失性存储器装置中的一致写入延迟 | |
TWI840882B (zh) | 借助緩衝器使用減少控制來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器 | |
US20240347127A1 (en) | Memory device health monitoring and dynamic adjustment of device parameters | |
US20240265973A1 (en) | Algorithm qualifier commands | |
US20240248612A1 (en) | Program pulse modification |