TW202011392A - 資料儲存裝置與資料處理方法 - Google Patents
資料儲存裝置與資料處理方法 Download PDFInfo
- Publication number
- TW202011392A TW202011392A TW107130822A TW107130822A TW202011392A TW 202011392 A TW202011392 A TW 202011392A TW 107130822 A TW107130822 A TW 107130822A TW 107130822 A TW107130822 A TW 107130822A TW 202011392 A TW202011392 A TW 202011392A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- character line
- line group
- memory
- memory controller
- Prior art date
Links
Images
Classifications
-
- 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/30—Power supply 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
-
- 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
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- 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/1012—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 codes or arrangements adapted for a specific type of error
-
- 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
- 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
- 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
- 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/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/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/08—Address circuits; Decoders; Word-line control circuits
-
- 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/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
- G11C16/225—Preventing erasure, programming or reading when power supply voltages are outside the required ranges
-
- 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
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/143—Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
-
- 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
- G11C16/28—Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
-
- 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
-
- 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
- G11C2029/1202—Word line control
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/148—Details of power up or power down circuits, standby circuits or recovery circuits
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Power Engineering (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
一種資料儲存裝置,包括一記憶體裝置以及一記憶體控制器。記憶體裝置包括一目前使用的記憶體區塊。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置。因應於記憶體控制器偵測到記憶體裝置上電前發生過非預期斷電,記憶體控制器藉由掃描目前使用的記憶體區塊之複數資料頁以找出一最後有效資料頁以及最後有效資料頁所對應之一最後有效字元線,並且根據目前使用的記憶體區塊所對應之一讀取計數值與一抹除計數值決定是否繼續使用最後有效資料頁所屬之一字元線群組所包含之一或多個空白資料頁。
Description
本發明係有關於適用於一資料儲存裝置之一種資料處理方法,可於資料儲存裝置遭遇非預期斷電後之一回復程序中有效減少需被檢查的資料頁數量、需被虛擬編程的資料頁數量以及需被搬移的資料頁數量,以加速回復程序的操作。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合SD/MMC規格、CF規格、MS規格與XD規格的記憶卡、固態硬碟、嵌入式多媒體記憶卡(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體儲存(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,有效率的存取控制也變成一個重要的議題。
一般而言,若在編程快閃記憶體時遭遇非預期斷電(Sudden Power Off,縮寫為SPO),正在寫入的資料或已寫入的資料可能會被破壞。舉例來說,當快閃記憶體在編程某個區塊(即,目前用以接收資料的記憶體區塊,以下稱之為目前使用的記憶體區塊(Current block))的過程時突然發生斷電時,將可能導致目前使用的記憶體區塊產生毀損。因此,於快閃記 憶體重新上電後,通常會執行對應之一回復程序,例如,一非預期斷電回復(Sudden Power Off Recovery,SPOR)程序,於回復程序中逐頁掃描並檢查目前使用的記憶體區塊中各資料頁的內容,用以搜尋出最後的有效資料頁及可能被或已被損毀的資料頁的所在位置,並且嘗試針對已被損毀之資料頁進行修復。
然而,有時非預期斷電攻擊可能會進一步波及到屬於相同字元線群組的其他資料頁。如此一來,於後續的編程操作中是否應繼續使用該字元線群組之判斷將變得困難。
有鑒於此,本發明提出一種資料處理方法,可有效判斷是否繼續使用字元線群組以及採用何種方式進行資料修復,如此可有效減少需被檢查的資料頁數量、需被虛擬編程的資料頁數量以及需被搬移的資料頁數量,以加速回復程序的操作。
本發明揭露一種資料儲存裝置,包括一記憶體裝置以及一記憶體控制器。記憶體裝置包括一目前使用的記憶體區塊。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置。因應於記憶體控制器偵測到記憶體裝置上電前發生過非預期斷電,記憶體控制器藉由掃描目前使用的記憶體區塊之複數資料頁以找出一最後有效資料頁以及最後有效資料頁所對應之一最後有效字元線,並且根據目前使用的記憶體區塊所對應之一讀取計數值與一抹除計數值決定是否繼續使用最後有效資料頁所屬之一字元線群組所包含之一或多個空白資料頁。
本發明揭露一種資料處理方法,適用於一資料儲存裝置,資料儲存裝置包括一記憶體裝置以及一記憶體控制器記憶體裝置包括一目前使用的記憶體區塊,記憶體控制器耦接記憶體裝置,用以存取記憶體裝置,此方法包括:當偵測到該記憶體裝置上電前發生過非預期斷電,藉由掃描該目前使用的記憶體區塊之複數資料頁找出一最後有效資料頁以及該最後有效資料頁所對應之一最後有效字元線;以及根據該目前使用的記憶體區塊所對應之一讀取計數值與一抹除計數值決定是否繼續使用該最後有效資料頁所屬之一字元線群組所包含之一或多個空白資料頁。
100‧‧‧資料儲存裝置
110‧‧‧記憶體控制器
112‧‧‧微處理器
112M‧‧‧唯讀記憶體
112C‧‧‧程式碼
114‧‧‧控制邏輯
116‧‧‧緩衝記憶體
118‧‧‧介面邏輯
120‧‧‧記憶體裝置
130‧‧‧主機裝置
132‧‧‧編碼器
134‧‧‧解碼器
136‧‧‧累計電路
200‧‧‧記憶體區塊
202‧‧‧浮動閘極電晶體
BL1、BL2、BL3‧‧‧位元線
LP、UP‧‧‧資料頁
SB0、SB1、SB2、SB3、SB4、SB5、SB6、SB7、WL0、WL1、WL2、WL4、WL5、WL6‧‧‧字元線
第1圖係顯示根據本發明之一實施例所述之記憶體裝置的示意圖。
第2圖係顯示根據本發明之一實施例所述之記憶體裝置中一記憶體區塊的示意圖。
第3圖係顯示根據本發明之一實施例所述之資料處理方法流程圖。
第4A圖係顯示出一字元線群組範例用以說明根據本發明之一實施例所述之第一種資料修復方法。
第4B圖係顯示出一字元線群組範例用以說明根據本發明之一實施例所述之第三種資料修復方法。
第5A圖係顯示出一字元線群組範例用以說明根據本發明之一實施例所述之第二種資料修復方法。
第5B圖係顯示出一字元線群組範例用以說明根據本發明之一實施例所述之第四種資料修復方法。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置100的示意圖。資料儲存裝置100包括一記憶體裝置120,例如,一快閃記憶體(Flash Memory)模組,以及一記憶體控制器110,且記憶體控制器110用來存取(Access)記憶體裝置120。根據本發明一實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對記憶體裝置120之存取。控制邏輯114包含了一編碼器132、一解碼器134以及一累計電路136。編碼器132用來對寫入到記憶體裝置120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC)。解碼器134用來對從記憶體裝置120所讀出的資料進行解碼。累計電路136用來計算資料頁所包含之一特定位元之數量,例如,位元’0’或位元’1’之數量(以下將作更詳細的介紹),用以作為一些特定判斷的依據。
於典型狀況下,記憶體裝置120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個記憶體區塊(Block),而該控制器(例如,透過微處理器112執行程式碼112C之記憶體控制器110)對記憶體裝置120進行抹除資料運作係以區塊為單位來進行。另外,一記憶體區塊可記錄(包含)特定數量的資料頁(Page),其中該控制器(例如,透過微處理器112執行程式碼112C之記憶體控制器110)對記憶體裝置120進行寫入資料之運作係以資料頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制記憶體裝置120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主機裝置(Host Device)130溝通。緩衝記憶體116係以隨機存取記憶體(Random Access Memory,RAM)來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,SRAM),但本發明不限於此。
在一實施例中,資料儲存裝置100可以是可攜式記憶體裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主機裝置130為一可與資料儲存裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦...等等。而在另一實施例中,資料儲存裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置, 以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主機裝置130可以是該電子裝置的一處理器。
主機裝置130可對資料儲存裝置100發出指令,例如,讀取指令或寫入指令,用以存取記憶體裝置120所儲存之資料,或者進一步控制、管理資料儲存裝置100。
根據本發明之一實施例,記憶體裝置120所包含之複數個記憶體區塊中可包含單層式儲存(Single-Level Cell,SLC)記憶體區塊、多層式儲存(Multiple-Level Cell,MLC)記憶體區塊以及/或是三層式儲存(Triple-Level Cell,TLC)記憶體區塊。SLC記憶體區塊的每個記憶體單元中儲存一個位元資料,MLC記憶體區塊的每個記憶體單元中儲存兩個位元資料,TLC記憶體區塊的每個記憶體單元中儲存三個位元資料。
根據本發明之一實施例,各記憶體區塊包括一既定數量之資料頁。其中,所述之資料頁可以是一邏輯資料頁,因此,SLC記憶體區塊、MLC記憶體區塊以及TLC記憶體區塊所對應的既定數量可能為不同。例如,MLC記憶體區塊所包含的邏輯資料頁數量可為SLC記憶體區塊的兩倍,TLC記憶體區塊所包含的邏輯資料頁數量可為SLC記憶體區塊的三倍。
第2圖係顯示根據本發明之一實施例所述之記憶體裝置中一記憶體區塊的示意圖,其中於此實施例,記憶體裝置120為立體NAND型快閃記憶體。如第2圖所示,記憶體區塊200包含了多個記憶單元(例如圖示的浮動閘極電晶體202 或是其他的電荷捕捉(charge trap)元件),其透過多條位元線(圖示僅繪示了BL1~BL3)及多條字元線(例如圖示WL0~WL2、WL4~WL6)來構成立體NAND型快閃記憶體架構。在第2圖中,以最上面的一個平面為例,字元線WL0上的所有浮動閘極電晶體構成了至少一資料頁,字元線WL1上的所有浮動閘極電晶體構成了另至少一資料頁,而字元線WL2的所有浮動閘極電晶體構成了再另至少一資料頁...以此類堆。此外,根據快閃記憶體寫入方式的不同,字元線WL0與資料頁(邏輯資料頁)之間的定義也會有所不同,詳細來說,當使用單層式儲存(Single-Level Cell,SLC)的方式寫入時,字元線WL0上的所有浮動閘極電晶體僅對應到單一邏輯資料頁;當使用多層式儲存(Multi-Level Cell,MLC)的方式寫入時,字元線WL0上的所有浮動閘極電晶體對應到兩個邏輯資料頁;當使用三層式儲存(Triple-Level Cell,TLC)的方式寫入時,字元線WL0上的所有浮動閘極電晶體對應到三個邏輯資料頁;以及當使用四層式儲存(Quad-Level Cell,QLC)的方式寫入時,字元線WL0上的所有浮動閘極電晶體對應到四個邏輯資料頁。由於本技術領域中具有通常知識者應能了解立體NAND型快閃記憶體的結構以及字元線及資料頁之間的關係,故相關的細節在此不予贅述。
在第2圖所示的架構中,會將多條字元線定義為一字元線群組,而該字元線群組會共同具有部分的控制電路,進而導致當資料寫入到該字元線群組之一條字元線上的浮動閘極電晶體發生失敗時(例如發生非預期斷電而造成寫入失敗),可能會連帶導致該字元線群組的其他字元線上的浮動閘極電 晶體的資料發生錯誤。在一實施例中,位於同一個平面上的字元線會被設定為一字元線群組,參考第2圖,假設同一個平面上有四個位元線,則字元線WL0~WL3會被歸於第一字元線群組,而字元線WL4~WL7會被歸於第二字元線群組...以此類推。假設快閃記憶體控制器110將資料寫入到第一字元線群組的資料頁中時係循序將資料寫入到字元線WL0、WL1、WL2、WL3中的浮動閘極電晶體202,而假設字元線WL0、WL1、WL2上的資料都成功寫入,但是當資料寫入字元線WL3時發生寫入錯誤,則可能會連帶使得字元線WL0、WL1、WL2上原本寫入成功的資料也發生錯誤。此外,假設快閃記憶體控制器110將資料寫入到第二字元線群組的資料頁中時係循序將資料寫入到字元線WL4、WL5、WL6、WL7中的浮動閘極電晶體202,而假設字元線WL4上在寫入資料的時候發生錯誤,則也會連帶使得字元線WL5、WL6、WL7不穩定而不適合再繼續寫入資料。
如上述,若在編程快閃記憶體時遭遇非預期斷電(SPO),正在寫入的資料或已寫入的資料可能會被破壞,有時甚至可能進一步波及到與被攻擊之資料頁屬於相同字元線群組的其他資料頁。如此一來,於後續的編程操作中是否應繼續使用該字元線群組剩餘之空白資料頁之判斷將變得困難。
為解決上述問題,本發明提出一種資料處理方法,可有效判斷是否繼續使用同一字元線群組剩餘之空白資料頁,並且可根據資料頁受損程度不同,而採用不同的方式進行資料修復。藉由本發明所提出之方法,可有效減少需被檢查的資料 頁數量、需被虛擬編程的資料頁數量以及需被搬移的資料頁數量,以加速回復程序的操作。
根據本發明之一實施例,當資料儲存裝置100上電時,記憶體控制器110可自記憶體裝置120讀取一些變數值(例如,非預期斷電旗標或SPO計數值),以判斷是否發生過非預期斷電。其中,SPO計數值係用於累計發生非預期斷電的次數,當SPO計數值增加,則代表記憶體裝置120的上次關機是非預期斷電造成的。此外,非預期斷電旗標係用於指出資料儲存裝置100上一次的關機是否是非預期斷電造成的,例如:當非預期斷電旗標的值為1時,代表發生非預期斷電,當非預期斷電旗標的值為0時,代表正常關機。於每次資料儲存裝置100上電時,記憶體控制器110可將非預期斷電旗標設定為1並儲存於記憶體裝置120,而當記憶體裝置120正常關機時,記憶體控制器110可將非預期斷電旗標設定為0並儲存於記憶體裝置120,因此若發生非預期斷電後時再次上電時,非預期斷電旗標仍會保持在數值1。
當記憶體控制器110偵測到或判斷出上電前發生過非預期斷電時,記憶體控制器110可執行對應之一回復程序,例如,一非預期斷電回復(SPOR)程序,於回復程序中逐頁掃描並檢查目前使用的記憶體區塊(current block)中各資料頁的內容,用以搜尋出最後有效資料頁及可能被或已被損毀的資料頁的所在位置。舉例而言,記憶體控制器110可根據所搜尋之資料頁的一備用區域(spare region)或資料區域(data region)的內容判斷所搜尋之資料頁是否為空白資料頁。例如,記憶體控制 器110可以根據備用區域是否記載相關的元資料(metadata)來判斷資料頁是否是空白資料頁。若備用區域所記載的內容為一預設值,例如,為全1(0XFFFFFFFF)的一數值,則判斷該資料頁為空白資料頁。
由於在資料儲存裝置100的操作中,記憶體控制器110係依序(即,資料頁序號遞增之方向)將資料寫入至目前使用的記憶體區塊中,因此,待找到第一個空白頁後,記憶體控制器110可由第一個空白資料頁往前(即,資料頁序號遞減之方向)依序讀取以決定出最後有效資料頁,其中,於本發明之實施例中,所述之有效頁為不包含解碼器134無法更正之錯誤之資料頁(即,所述之有效頁為非UECC資料頁)。值得注意的是,資料儲存裝置100亦可採用其他方式找出最後有效資料頁,因此,確認最後有效資料頁的方法並不限於上述的方式。
根據本發明之一實施例,記憶體控制器110可根據目前使用的記憶體區塊所對應之一讀取計數值與一抹除計數值決定是否繼續使用最後有效資料頁所對應之一字元線群組所包含之一或多個剩餘之空白資料頁,其中,一字元線群組可包含複數條字元線,而各字元線可構成一或多個資料頁。字元線群組所包含之字元線的數量係取決於記憶體裝置120所採用的製程,不同製程可能會有不同的設計。
此外,根據本發明之一實施例,記憶體控制器110可進一步根據資料頁受損程度不同(例如,是否偵測到UECC資料頁),決定採用何種方式進行資料修復。此外,根據本發明之一實施例,當記憶體控制器110判斷資料頁為相對安全時, 便不再進行額外的檢查、虛擬編程及資料搬移,或僅進行少量的虛擬編程及資料搬移,如此一來,可大幅加速回復程序的操作。
第3圖係顯示根據本發明之一實施例所述之資料處理方法流程圖。首先,當偵測到記憶體裝置120於上電前發生過非預期斷電,記憶體控制器110可藉由掃描目前使用的記憶體區塊之複數資料頁找出一最後有效資料頁以及其所對應之一最後有效字元線(步驟S302),其中,掃描的操作包含讀取資料頁的內容,並且對於已編輯資料頁進行錯誤檢查與更正。接著,記憶體控制器110取得目前使用的記憶體區塊所對應之一讀取計數值與一抹除計數值(步驟S304)。根據本發明之一實施例,各記憶體區塊所對應之讀取計數值與抹除計數值可被記錄於記憶體裝置120所儲存的一既定表格內。於資料儲存裝置100/記憶體裝置120上電/開機時,既定表格的內容可被讀出並暫存於緩衝記憶體116。當記憶體裝置120被存取時,既定表格的內容可被對應地更新,並且於資料儲存裝置100關機時,既定表格的內容可再被儲存回記憶體裝置120。
接著,記憶體控制器110可根據目前使用的記憶體區塊所對應之一讀取計數值與一抹除計數值決定於後續的編程操作中,是否將繼續使用最後有效資料頁所屬之一字元線群組所包含之一或多個空白資料頁(步驟S306)。值得注意的是,於步驟S306中,記憶體控制器110亦可再執行一輔助判斷程序,用以輔助決定是否繼續使用該字元線群組所包含之該一或多個空白資料頁。
若決定續用剩餘之空白資料頁,則記憶體控制器110進一步判斷目前使用的記憶體區塊是否包含至少一資料頁,其所儲存之資料包含解碼器134無法更正之錯誤(即,無法藉由錯誤更正碼更正之錯誤(Uncorrectable ECC Error,縮寫為UECC Error)(步驟S308)。
若目前使用的記憶體區塊包含至少一UECC資料頁,則記憶體控制器110決定採用第一種方式進行資料修復(步驟S310)。根據本發明之一實施例,第一種方式包含了虛擬編程(dummy programming)字元線群組中與最後有效字元線相鄰之一字元線所對應之複數資料頁(例如,UECC資料頁與其配對頁),並且續用剩餘之空白資料頁(若有)。舉例而言,記憶體控制器110可藉由寫入一虛擬資料、無效資料或一預定圖樣以虛擬編程一資料頁。
若目前使用的記憶體區塊不包含UECC資料頁,則記憶體控制器110決定採用第二種方式進行資料修復(步驟S312)。根據本發明之一實施例,第二種方式包含了虛擬編程字元線群組中與最後有效字元線相鄰之一字元線所對應之複數資料頁(例如,與最後有效字元線相鄰之次一條字元線所對應之資料頁),並且續用剩餘之空白資料頁(若有)。
另一方面,若決定不續用剩餘之空白資料頁,則記憶體控制器110亦進一步判斷目前使用的記憶體區塊是否包含至少一UECC資料頁(步驟S314)。
若目前使用的記憶體區塊包含至少一UECC資料頁,則記憶體控制器110決定採用第三種方式進行資料修復(步 驟S316)。根據本發明之一實施例,第三種方式包含了自UECC資料頁與其配對頁開始虛擬編程資料頁,直至字元線群組所包含之最後一個空白資料頁為止(即,字元線群組中剩餘之空白資料頁(若有)同樣會被虛擬編程)。
若目前使用的記憶體區塊不包含UECC資料頁,則記憶體控制器110決定採用第四種方式進行資料修復(步驟S318)。根據本發明之一實施例,第四種方式包含了自最後有效資料頁與其配對頁開始虛擬編程資料頁,直至字元線群組所包含之最後一個空白資料頁為止(即,字元線群組中剩餘之空白資料頁(若有)同樣會被虛擬編程)。
以下段落將結合圖示,進一步說明本發明所提出之決定是否續用剩餘之空白資料頁判斷方式(包含輔助判斷程序),以及上述之四種資料修復方法。
根據本發明之一實施例,記憶體控制器110可根據讀取計數值(Read_Count)之一加權值以及抹除計數值(Erase_Count)之一加權值之和決定是否續用剩餘之空白資料頁或者要進一步藉由執行輔助判斷程序判斷是否續用剩餘之空白資料頁。記憶體控制器110可採取以下策略進行判斷:
當讀取計數值之加權值(例如,Read_Count*y)以及抹除計數值之加權值(例如,Erase_Count*x)之和小於或等於一第一臨界值TH_1時(參考以下條件式(1)),記憶體控制器110可直接決定繼續使用字元線群組所包含之一或多個空白資料頁(若有)。
(Erase_Count*x+ Read_Count*y)<=TH_1 條 件式(1)
即,當條件式(1)滿足時,記憶體控制器110判斷字元線群組所包含之已編程資料頁與空白資料頁為相對安全的,因此,記憶體控制器110可決定採取第一種方式(當有偵測到UECC資料頁)進行資料修復或者採取第二種方式(當無偵測到UECC資料頁)進行資料修復。
當讀取計數值之加權值(例如,Read_Count*y)以及抹除計數值之加權值(例如,Erase_Count*x)之和大於一第二臨界值TH_2時(參考以下條件式(2)),記憶體控制器110可直接決定不繼續使用字元線群組所包含之一或多個空白資料頁(若有)。
(Erase_Count*x+ Read_Count*y)> TH_2 條件式(2)
即,當條件式(2)滿足時,記憶體控制器110可判斷字元線群組所包含之已編程資料頁與空白資料頁為相對危險的,因此,記憶體控制器110可決定採取第三種方式(當有偵測到UECC資料頁)進行資料修復或者採取第四種方式(當無偵測到UECC資料頁)進行資料修復。
其中,加權值x與y、臨界值TH_1與TH_2的數值可考慮記憶體裝置的物理特性、所採用的製程等因素而被設計。
當讀取計數值之加權值(例如,Read_Count*y)以及抹除計數值之加權值(例如,Erase_Count*x)之和大於第一臨界值TH_1並且小於或等於第二臨界值TH_2時(參考以下條件式 (3)),記憶體控制器110可決定再執行一輔助判斷程序,用以決定是否繼續使用字元線群組所包含之一或多個空白資料頁(若有)。
TH_1<(Erase_Count*x+ Read_Count*y)<= TH_2 條件式(3)
於輔助判斷程序中,記憶體控制器110將檢查字元線群組所包含之已編程資料頁(若有)所儲存之內容,以及/或檢查字元線群組所包含之空白資料頁(若有)所儲存之內容。
根據本發明之一實施例,於輔助判斷程序中,記憶體控制器110可進一步解碼/檢查同一字元線群組所包含之一或多個已編程資料頁所儲存之內容,以取得各已編程資料頁所發生之錯誤位元之數量。當任一個已編程資料頁所發生之錯誤位元之數量大於一錯誤位元臨界值時,記憶體控制器110可判斷字元線群組所包含之已編程資料頁與空白資料頁為相對危險的,因此,記憶體控制器110可決定不繼續使用此字元線群組所包含之一或多個空白資料頁(若有)。
反之,若各已編程資料頁所發生之錯誤位元之數量均未大於錯誤位元臨界值,記憶體控制器110可判斷字元線群組所包含之已編程資料頁與空白資料頁為相對安全的,因此,記憶體控制器110可決定繼續使用此字元線群組所包含之一或多個空白資料頁(若有)。
根據本發明之另一實施例,於輔助判斷程序中,記憶體控制器110可進一步解碼/檢查同一字元線群組所包含之一或多個已編程資料頁所儲存之內容,以決定出可用以成功 解碼各已編程資料頁所儲存之內容之一錯誤更正再試檔位(retry level),其中,再試檔位用以代表記憶體控制器110提供給對應之字元線用以讀取資料的電壓檔位或解碼器134所使用之錯誤更正碼參數檔位。一般而言,再試檔位越高,所需付出的解碼/更正錯誤的努力(例如,運算的負擔或調整的範圍)也越大。當任一個已編程資料頁所對應之錯誤更正再試檔位高於一再試檔位臨界值時,記憶體控制器110可判斷字元線群組所包含之已編程資料頁與空白資料頁為相對危險的,因此,記憶體控制器110可決定不繼續使用該字元線群組所包含之該一或多個空白資料頁。
反之,若各已編程資料頁所對應之錯誤更正再試檔位均不高於再試檔位臨界值,記憶體控制器110可判斷字元線群組所包含之已編程資料頁與空白資料頁為相對安全的,因此,記憶體控制器110可決定繼續使用此字元線群組所包含之一或多個空白資料頁(若有)。
除檢查已編程資料頁以外,於輔助判斷程序中,記憶體控制器110亦可進一步檢查同一字元線群組所包含之空白資料頁所儲存之內容是否與預期相符。舉例而言,記憶體控制器110可自最後有效字元線的次兩條(例如,字元線序號+2)(舉例而言,第4A圖與第4B圖所示範例的字元線SB4,第5A圖與第5B圖所示範例的字元線SB5)開始檢查各空白資料頁所儲存的內容,直到同一字元線群組的最後一個空白資料頁。假設空白資料頁所儲存的內容應為全1(0XFFFF)的一數值,則記憶體控制器110可透過累計電路136累計各資料頁包含位 元’0’之數量為何。當任一個空白資料頁包含位元’0’之數量大於一累計臨界值時,記憶體控制器110可判斷字元線群組所包含之已編程資料頁與空白資料頁為相對危險的,因此,記憶體控制器110可決定不繼續使用該字元線群組所包含之該一或多個空白資料頁。
反之,若各空白資料頁包含位元’0’之數量均不大於累計臨界值時,記憶體控制器110可判斷字元線群組所包含之已編程資料頁與空白資料頁為相對安全的,因此,記憶體控制器110可決定繼續使用此字元線群組所包含之一或多個空白資料頁(若有)。
於輔助判斷程序中,若依任一個條件判斷出字元線群組所包含之已編程資料頁與空白資料頁為相對危險的,記憶體控制器110可決定不繼續使用該字元線群組所包含之該一或多個空白資料頁。
如上述,當記憶體控制器110於步驟S306中根據以上策略決定出是否繼續使用此字元線群組所包含之一或多個空白資料頁後,可再根據目前使用的記憶體區塊是否包含至少一UECC資料頁決定採用哪種修復方法。
值得注意的是,於本發明之實施例中,若此字元線群組已無空白資料頁(例如,UECC資料頁或者最後有效資料頁為該字元線群組包含的最後一個資料頁或對應於該字元線群組的最後一條字元線),則無需考慮是否繼續使用此字元線群組所包含之一或多個空白資料頁,記憶體控制器110僅需決定採用哪種修復方法進行修復。
第4A圖為一記憶體區塊範例,顯示出字元線群組及其所包含之複數字元線與複數資料頁,用以說明步驟S310所採用的第一種資料修復方法,其中,SB0~SB7為字元線,UP與LP為各字元線所對應之資料頁,一字元線群組可包含8條字元線,因此,一個字元線群組可包含連續的16個資料頁。例如,每行(row)資料頁歸屬於(對應於)同一字元線群組,每列(column)資料頁歸屬於(對應於)不同字元線群組,因此,於此範例中,資料頁16~31對應於同一字元線群組。
於此實施例中,假設資料頁23為記憶體控制器110偵測到的UECC資料頁,因此,資料頁21為最後有效資料頁,SB2為最後有效字元線,資料頁16~22為資料頁23之前的已編程資料頁,資料頁24~31為資料頁23之後的空白資料頁。
根據本發明之一實施例,當記憶體控制器110偵測到目前使用的記憶體區塊包含UECC資料頁,並且已透過上述策略判斷字元線群組所包含之已編程資料頁與空白資料頁為相對安全的而決定出繼續使用此字元線群組所包含之一或多個空白資料頁時,採用第一種資料修復方法。於第一種資料修復方法,記憶體控制器110僅放棄UECC資料頁及其配對頁。因此,於此範例中,記憶體控制器110僅虛擬編程資料頁22與23(亦為與最後有效字元線SB2相鄰之次一字元線SB3所對應之資料頁)。
值得注意的是,雖第4A圖之範例係顯示使用多層式儲存(MLC)的方式寫入之記憶體區塊,本發明並不限於此,本發明所提出之資料處理方法亦可應用於使用三層式儲存 (TLC)、四層式儲存(QLC)等其他的方式寫入的記憶體區塊。
第4B圖為另一記憶體區塊範例,顯示出字元線群組及其所包含之複數字元線與複數資料頁,用以說明步驟S316所採用的第三種資料修復方法。於此實施例中,假設資料頁23為記憶體控制器110偵測到的UECC資料頁,因此,資料頁21為最後有效資料頁,SB2為最後有效字元線,資料頁16~22為資料頁23之前的已編程資料頁,資料頁24~31為資料頁23之後的空白資料頁。
根據本發明之一實施例,當記憶體控制器110偵測到目前使用的記憶體區塊包含UECC資料頁,並且已透過上述策略判斷字元線群組所包含之已編程資料頁與空白資料頁為相對危險的而決定不繼續使用此字元線群組所包含之一或多個空白資料頁時,採用第三種資料修復方法。於第三種資料修復方法,記憶體控制器110決定放棄UECC資料頁與其配對頁,並且不再使用此字元線群組所包含其他空白資料頁。因此,於此範例中,記憶體控制器110自資料頁22開始執行虛擬編程,直到字元線群組所包含之最後一個空白資料頁31。
此外,記憶體控制器110更進一步將此字元線群組所包含之已編程資料頁所儲存之資料搬移至次一字元線群組的資料頁。更具體的說,記憶體控制器110更進一步讀出資料頁16~21所儲存之資料,對讀出的資料進行錯誤檢查與更正,並且將經過錯誤檢查與更正後的資料依序重新寫入資料頁32~37中。
值得注意的是,於此實施例中,若記憶體控制器 110偵測到的UECC資料頁為資料頁30或31,記憶體控制器110僅需對資料頁30與31執行虛擬編程,以及將此字元線群組所包含之已編程資料頁所儲存之資料搬移至次一字元線群組的資料頁。
此外,值得注意的是,雖第4B圖之範例係顯示使用多層式儲存(MLC)的方式寫入之記憶體區塊,本發明並不限於此,本發明所提出之資料處理方法亦可應用於使用三層式儲存(TLC)、四層式儲存(QLC)等其他的方式寫入的記憶體區塊。
第5A圖為另一記憶體區塊範例,顯示出字元線群組及其所包含之複數字元線與複數資料頁,用以說明步驟S312所採用的第二種資料修復方法。於此實施例中,記憶體控制器110並未偵測到目前使用的記憶體區塊包含UECC資料頁,因此,資料頁23為最後有效資料頁,字元線SB3為最後有效字元線,資料頁16~22為資料頁23之前的已編程資料頁,資料頁24~31為資料頁23之後的空白資料頁。
根據本發明之一實施例,當記憶體控制器110並未偵測到目前使用的記憶體區塊包含UECC資料頁,並且已透過上述策略判斷字元線群組所包含之已編程資料頁與空白資料頁為相對安全的而決定出繼續使用此字元線群組所包含之一或多個空白資料頁時,採用第二種資料修復方法。於第二種資料修復方法中,由於記憶體控制器110無法確定字元線SB3與SB4的何者受到非其斷電攻擊,因此,記憶體控制器110決定將最後有效字元線SB3所對應之資料頁所儲存之資料搬移至其他空白資料頁,並且放棄字元線SB4所對應之資料頁。更 具體的說,記憶體控制器110虛擬編程與最後有效字元線SB3相鄰之次一字元線SB4所對應之資料頁24與25,並且進一步讀出資料頁22與23所儲存之資料,對讀出的資料進行錯誤檢查與更正,以及將經過錯誤檢查與更正後的資料依序重新寫入資料頁26與27中。
值得注意的是,於此實施例中,若最後有效資料頁為資料頁30或31,記憶體控制器110僅需將最後有效字元線SB7所對應之資料頁所儲存之資料搬移至次一字元線群組的空白資料頁。
此外,值得注意的是,雖第5A圖之範例係顯示使用多層式儲存(MLC)的方式寫入之記憶體區塊,本發明並不限於此,本發明所提出之資料處理方法亦可應用於使用三層式儲存(TLC)、四層式儲存(QLC)等其他的方式寫入的記憶體區塊。
第5B圖為另一記憶體區塊範例,顯示出字元線群組及其所包含之複數字元線與複數資料頁,用以說明步驟S318所採用的第四種資料修復方法。於此實施例中,記憶體控制器110並未偵測到目前使用的記憶體區塊包含UECC資料頁,因此,資料頁23為最後有效資料頁,SB3為最後有效字元線,資料頁16~22為資料頁23之前的已編程資料頁,資料頁24~31為資料頁23之後的空白資料頁。
根據本發明之一實施例,當記憶體控制器110並未偵測到目前使用的記憶體區塊包含UECC資料頁,並且已透過上述策略判斷字元線群組所包含之已編程資料頁與空白資料頁為相對危險的而決定不繼續使用此字元線群組所包含之 一或多個空白資料頁時,採用第四種資料修復方法。於第四種資料修復方法,由於記憶體控制器110無法確定字元線SB3與SB4的何者受到非其斷電攻擊,因此,記憶體控制器110決定放棄字元線SB4所對應之資料頁以及此字元線群組所包含其他空白資料頁,並且將目前已編程資料頁所儲存之資料搬移至次一字元線群組的資料頁。
更具體的說,於此範例中,記憶體控制器110自資料頁24開始執行虛擬編程,直到相同字元線群組所包含之最後一個空白資料頁31。記憶體控制器110更進一步讀出資料頁16~23所儲存之資料,對讀出的資料進行錯誤檢查與更正,並且將經過錯誤檢查與更正後的資料依序重新寫入資料頁32~39中。
值得注意的是,於此實施例中,若最後有效資料頁為資料頁30或31,記憶體控制器110僅需將目前已編程資料頁所儲存之資料搬移至次一字元線群組的空白資料頁。
此外,值得注意的是,雖第5B圖之範例係顯示使用多層式儲存(MLC)的方式寫入之記憶體區塊,本發明並不限於此,本發明所提出之資料處理方法亦可應用於使用三層式儲存(TLC)、四層式儲存(QLC)等其他的方式寫入的記憶體區塊。
於傳統技術中,一旦發生非預期斷電,與被攻擊或可能被攻擊之資料頁屬於同一字元線群組中的資料頁都必須一律放棄。然而,於本案中,當記憶體區塊的讀取計數值與抹除計數值相對低時,仍可決定繼續使用同一字元線群組內剩餘之空白資料頁(若有)。因此,相較於傳統技術,本案所提出 之資料處理方法可有效避免過度浪費記憶體裝置的剩餘空間,並且可有效減少因決定放棄而需被虛擬編程的資料頁數量以及需被搬移的資料頁數量。
此外,於本發明所提出之資料處理方法中,藉由參考記憶體區塊的讀取計數值與抹除計數值,便可初步判斷是否繼續使用字元線群組剩餘之空白資料頁,因此可有效減少需被檢查的資料頁數量。更具體的說,於本案步驟S306中,若條件式(1)或(2)滿足,則無需執行輔助判斷程序,如此一來,可簡化判斷流程,並且可有效減少需被檢查的資料頁數量,以加速回復程序的操作。
此外,於本發明所提出之資料處理方法中,記憶體控制器110更根據資料頁受損程度彈性地決定後續採用的資料修復方法,以及需被虛擬編程的資料頁及/或需被搬移的資料頁的範圍,如此一來,不僅可依資料頁受損程度選擇出最適當的資料修復方法,更可以將需被虛擬編程的資料頁及/或需被搬移的資料頁的範圍最小化,以加速回復程序的操作。
申請專利範圍中用以修飾元件之“第一”、“第二”等序數詞之使用本身未暗示任何優先權、優先次序、各元件之間之先後次序、或方法所執行之步驟之次序,而僅用作標識來區分具有相同名稱(具有不同序數詞)之不同元件。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧資料儲存裝置
110‧‧‧記憶體控制器
112‧‧‧微處理器
112M‧‧‧唯讀記憶體
112C‧‧‧程式碼
114‧‧‧控制邏輯
116‧‧‧緩衝記憶體
118‧‧‧介面邏輯
120‧‧‧記憶體裝置
130‧‧‧主機裝置
132‧‧‧編碼器
134‧‧‧解碼器
136‧‧‧累計電路
Claims (15)
- 一種資料儲存裝置,包括:一記憶體裝置,包括複數記憶體區塊,該等記憶體區塊包括一目前使用的記憶體區塊;以及一記憶體控制器,耦接該記憶體裝置,用以存取該記憶體裝置,其中因應於該記憶體控制器偵測到該記憶體裝置上電前發生過非預期斷電,該記憶體控制器藉由掃描該目前使用的記憶體區塊之複數資料頁以找出一最後有效資料頁以及該最後有效資料頁所對應之一最後有效字元線,並且根據該目前使用的記憶體區塊所對應之一讀取計數值與一抹除計數值決定是否繼續使用該最後有效資料頁所屬之一字元線群組所包含之一或多個空白資料頁。
- 如申請專利範圍第1項所述之資料儲存裝置,其中當該讀取計數值之一加權值以及該抹除計數值之一加權值之和小於或等於一第一臨界值時,該記憶體控制器決定繼續使用該字元線群組所包含之該一或多個空白資料頁。
- 如申請專利範圍第1項所述之資料儲存裝置,其中當該讀取計數值之一加權值以及該抹除計數值之一加權值之和大於一第二臨界值時,該記憶體控制器決定不繼續使用該字元線群組所包含之該一或多個空白資料頁。
- 如申請專利範圍第1項所述之資料儲存裝置,其中當該讀取計數值之一加權值以及該抹除計數值之一加權值之和大於一第一臨界值並且小於或等於一第二臨界值時,該記憶 體控制器決定執行一輔助判斷程序,用以決定是否繼續使用該字元線群組所包含之該一或多個空白資料頁。
- 如申請專利範圍第4項所述之資料儲存裝置,其中於該輔助判斷程序,該記憶體控制器進一步解碼該字元線群組所包含之一或多個已編程資料頁所儲存之內容,以取得各已編程資料頁所發生之錯誤位元之數量,其中當任一個已編程資料頁所發生之錯誤位元之數量大於一錯誤位元臨界值時,該記憶體控制器決定不繼續使用該字元線群組所包含之該一或多個空白資料頁。
- 如申請專利範圍第4項所述之資料儲存裝置,其中於該輔助判斷程序,該記憶體控制器進一步解碼該字元線群組所包含之一或多個已編程資料頁所儲存之內容,以決定出用以成功解碼各已編程資料頁所儲存之內容之一錯誤更正再試檔位,其中當任一個已編程資料頁所對應之該錯誤更正再試檔位高於一再試檔位臨界值時,該記憶體控制器決定不繼續使用該字元線群組所包含之該一或多個空白資料頁。
- 如申請專利範圍第1項所述之資料儲存裝置,其中當該記憶體控制器決定不繼續使用該字元線群組所包含之該一或多個空白資料頁時,該記憶體控制器虛擬編程該一或多個空白資料頁直到該字元線群組所包含之最後一個空白資料頁為止。
- 如申請專利範圍第1項所述之資料儲存裝置,其中當該記憶體控制器決定繼續使用該字元線群組所包含之該一或多 個空白資料頁時,該記憶體控制器僅虛擬編程與該最後有效字元線相鄰之一字元線所對應之複數資料頁。
- 一種資料處理方法,適用於一資料儲存裝置,該資料儲存裝置包括一記憶體裝置以及一記憶體控制器,該記憶體裝置包括複數記憶體區塊,該等記憶體區塊包括一目前使用的記憶體區塊,該記憶體控制器耦接該記憶體裝置,用以存取該記憶體裝置,該方法包括:當偵測到該記憶體裝置上電前發生過非預期斷電,藉由掃描該目前使用的記憶體區塊之複數資料頁找出一最後有效資料頁以及該最後有效資料頁所對應之一最後有效字元線;以及根據該目前使用的記憶體區塊所對應之一讀取計數值與一抹除計數值決定是否繼續使用該最後有效資料頁所屬之一字元線群組所包含之一或多個空白資料頁。
- 如申請專利範圍第9項所述之資料處理方法,其中根據該目前使用的記憶體區塊所對應之一讀取計數值與一抹除計數值決定是否繼續使用該最後有效字元線所屬之一字元線群組所包含之一或多個空白資料頁之步驟更包括:當該讀取計數值之一加權值以及該抹除計數值之一加權值之和小於或等於一第一臨界值時,決定繼續使用該字元線群組所包含之該一或多個空白資料頁。
- 如申請專利範圍第9項所述之資料處理方法,其中根據該目前使用的記憶體區塊所對應之一讀取計數值與一抹除計數值決定是否繼續使用該最後有效字元線所屬之一字元線 群組所包含之一或多個空白資料頁之步驟更包括:當該讀取計數值之一加權值以及該抹除計數值之一加權值之和大於一第二臨界值時,決定不繼續使用該字元線群組所包含之該一或多個空白資料頁。
- 如申請專利範圍第9項所述之資料處理方法,其中根據該目前使用的記憶體區塊所對應之一讀取計數值與一抹除計數值決定是否繼續使用該最後有效字元線所屬之一字元線群組所包含之一或多個空白資料頁之步驟更包括:當該讀取計數值之一加權值以及該抹除計數值之一加權值之和大於一第一臨界值並且小於或等於一第二臨界值時,執行一輔助判斷程序,用以決定是否繼續使用該字元線群組所包含之該一或多個空白資料頁。
- 如申請專利範圍第12項所述之資料處理方法,執行該輔助判斷程序之步驟更包括:解碼該字元線群組所包含之一或多個已編程資料頁所儲存之內容,以取得各已編程資料頁所發生之錯誤位元之數量;以及當任一個已編程資料頁所發生之錯誤位元之數量大於一錯誤位元臨界值時,決定不繼續使用該字元線群組所包含之該一或多個空白資料頁。
- 如申請專利範圍第12項所述之資料處理方法,執行該輔助判斷程序之步驟更包括:解碼該字元線群組所包含之一或多個已編程資料頁所儲存之內容,以決定出用以成功解碼各已編程資料頁所儲存之 內容之一錯誤更正再試檔位;以及當任一個已編程資料頁所對應之該錯誤更正再試檔位高於一再試檔位臨界值時,決定不繼續使用該字元線群組所包含之該一或多個空白資料頁。
- 如申請專利範圍第9項所述之資料處理方法,更包括:當決定不繼續使用該字元線群組所包含之該一或多個空白資料頁時,虛擬編程該一或多個空白資料頁直到該字元線群組所包含之最後一個空白資料頁為止;以及當決定繼續使用該字元線群組所包含之該一或多個空白資料頁時,僅虛擬編程與該最後有效字元線相鄰之一字元線所對應之複數資料頁。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107130822A TWI677879B (zh) | 2018-09-03 | 2018-09-03 | 資料儲存裝置與資料處理方法 |
CN201811357826.8A CN110874187B (zh) | 2018-09-03 | 2018-11-15 | 数据储存装置与数据处理方法 |
US16/518,615 US10818371B2 (en) | 2018-09-03 | 2019-07-22 | Data storage devices and data processing methods |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107130822A TWI677879B (zh) | 2018-09-03 | 2018-09-03 | 資料儲存裝置與資料處理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI677879B TWI677879B (zh) | 2019-11-21 |
TW202011392A true TW202011392A (zh) | 2020-03-16 |
Family
ID=69188932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107130822A TWI677879B (zh) | 2018-09-03 | 2018-09-03 | 資料儲存裝置與資料處理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10818371B2 (zh) |
CN (1) | CN110874187B (zh) |
TW (1) | TWI677879B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI821965B (zh) * | 2021-09-29 | 2023-11-11 | 慧榮科技股份有限公司 | 編碼歷程資訊的存取方法及電腦程式產品及裝置 |
TWI831118B (zh) * | 2022-01-21 | 2024-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其編程應力消除方法 |
US11966607B2 (en) | 2021-09-29 | 2024-04-23 | Silicon Motion, Inc. | Method and non-transitory computer-readable storage medium and apparatus for accessing to encoding-history information |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102583810B1 (ko) * | 2018-05-15 | 2023-10-05 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
JP2020067753A (ja) * | 2018-10-23 | 2020-04-30 | キオクシア株式会社 | メモリシステム及びその制御方法 |
US10872639B2 (en) | 2018-12-31 | 2020-12-22 | Micron Technology, Inc. | Recovery of memory from asynchronous power loss |
TWI738390B (zh) * | 2020-06-19 | 2021-09-01 | 群聯電子股份有限公司 | 資料保護方法、記憶體儲存裝置及記憶體控制電路單元 |
US11409446B2 (en) * | 2020-11-11 | 2022-08-09 | Micro Technology, Inc. | Media management on power-up |
KR20230020297A (ko) * | 2021-08-03 | 2023-02-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작 방법 |
CN114116309B (zh) * | 2021-11-19 | 2023-04-14 | 合肥康芯威存储技术有限公司 | 一种存储器的数据存取方法及系统 |
US11978490B2 (en) * | 2022-05-24 | 2024-05-07 | Western Digital Technologies, Inc. | Back pattern counter measure for solid state drives |
US11960745B2 (en) * | 2022-08-17 | 2024-04-16 | Micron Technology, Inc. | Empty page scan operations adjustment |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7849302B2 (en) * | 2006-04-10 | 2010-12-07 | Apple Inc. | Direct boot arrangement using a NAND flash memory |
US8977831B2 (en) * | 2009-02-11 | 2015-03-10 | Stec, Inc. | Flash backed DRAM module storing parameter information of the DRAM module in the flash |
US7990797B2 (en) * | 2009-02-11 | 2011-08-02 | Stec, Inc. | State of health monitored flash backed dram module |
US8429436B2 (en) * | 2009-09-09 | 2013-04-23 | Fusion-Io, Inc. | Apparatus, system, and method for power reduction in a storage device |
US8661301B1 (en) * | 2012-09-07 | 2014-02-25 | Storart Technology Co. Ltd. | Method for dodging bad page and bad block caused by suddenly power off |
KR102320955B1 (ko) * | 2015-02-02 | 2021-11-05 | 삼성전자주식회사 | 불 휘발성 메모리 장치 및 그것의 읽기 방법 |
US10007451B2 (en) * | 2015-03-20 | 2018-06-26 | SK Hynix Inc. | Scalable SPOR algorithm for flash memories |
US9947399B2 (en) * | 2015-03-26 | 2018-04-17 | Sandisk Technologies Llc | Updating resistive memory |
TWI554886B (zh) | 2015-08-19 | 2016-10-21 | 群聯電子股份有限公司 | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 |
CN106708754B (zh) * | 2015-11-13 | 2020-04-07 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
US10101939B2 (en) * | 2016-03-09 | 2018-10-16 | Toshiba Memory Corporation | Storage system having a host that manages physical data locations of a storage device |
TWI607312B (zh) * | 2016-10-07 | 2017-12-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料寫入方法 |
TWI626541B (zh) | 2017-08-31 | 2018-06-11 | 慧榮科技股份有限公司 | 將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
-
2018
- 2018-09-03 TW TW107130822A patent/TWI677879B/zh active
- 2018-11-15 CN CN201811357826.8A patent/CN110874187B/zh active Active
-
2019
- 2019-07-22 US US16/518,615 patent/US10818371B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI821965B (zh) * | 2021-09-29 | 2023-11-11 | 慧榮科技股份有限公司 | 編碼歷程資訊的存取方法及電腦程式產品及裝置 |
US11966607B2 (en) | 2021-09-29 | 2024-04-23 | Silicon Motion, Inc. | Method and non-transitory computer-readable storage medium and apparatus for accessing to encoding-history information |
TWI831118B (zh) * | 2022-01-21 | 2024-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其編程應力消除方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110874187A (zh) | 2020-03-10 |
CN110874187B (zh) | 2023-04-07 |
TWI677879B (zh) | 2019-11-21 |
US20200075114A1 (en) | 2020-03-05 |
US10818371B2 (en) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI677879B (zh) | 資料儲存裝置與資料處理方法 | |
US10846173B2 (en) | Method for accessing flash memory module and associated flash memory controller and memory device | |
US8316278B2 (en) | Memory system that detects bit errors due to read disturbance and methods thereof | |
US10474573B2 (en) | Method for managing flash memory module and associated flash memory controller and electronic device | |
US20130238955A1 (en) | System and method to decode data subject to a disturb condition | |
TWI389122B (zh) | 用來存取一快閃記憶體之方法以及相關之記憶裝置及其控制器 | |
US10348332B2 (en) | Method for accessing flash memory module and associated flash memory controller and memory device | |
US9471418B2 (en) | Memory system that detects bit errors due to read disturbance and methods thereof | |
TWI664634B (zh) | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 | |
CN109390027B (zh) | 解码方法及相关的闪存控制器与电子装置 | |
TWI722938B (zh) | 記憶裝置、快閃記憶體控制器及其存取方法 | |
US11068201B2 (en) | Flash memory controller, method for managing flash memory module and associated electronic device | |
US11113201B2 (en) | Flash memory controller, method and associated electronic device for managing priority of quality detection or garbage collection of block | |
US10809943B2 (en) | Data processing method for improving utilization rate and program time after sudden power off event and associated data storage device | |
TWI720852B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI746927B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI691967B (zh) | 解碼方法及相關的快閃記憶體控制器與電子裝置 | |
TWI852008B (zh) | 快閃記憶體控制器與電子裝置 | |
US20240233813A1 (en) | Dummy data-based read reference voltage search of nand memory |