TW201901450A - 資料儲存裝置以及數據錯誤管理方法 - Google Patents
資料儲存裝置以及數據錯誤管理方法 Download PDFInfo
- Publication number
- TW201901450A TW201901450A TW106121559A TW106121559A TW201901450A TW 201901450 A TW201901450 A TW 201901450A TW 106121559 A TW106121559 A TW 106121559A TW 106121559 A TW106121559 A TW 106121559A TW 201901450 A TW201901450 A TW 201901450A
- Authority
- TW
- Taiwan
- Prior art keywords
- order
- designated
- data
- unit
- units
- Prior art date
Links
Classifications
-
- 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/44—Indication or identification of errors, e.g. for repair
-
- 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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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
-
- 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/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
一種高可靠度資料儲存裝置,其中非揮發式記憶體之儲存空間包括複數個第一階單元,且該等第一階單元更分組為複數個第二階單元。控制單元使第一階單元各自編有檢正校驗碼,並在讀取一指定之第一階單元時,根據該指定之第一階單元之檢正校驗碼判斷該指定之第一階單元之檢正校驗碼的數據狀況,據以自我檢測含括該指定之第一階單元的一指定之第二階單元的其他空間。
Description
本發明係有關於資料儲存裝置。
資料儲存裝置所採用的非揮發性記憶體可以是快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,簡稱STT-RAM)…等,用於長時間資料保存。如何確保非揮發性記憶體儲存內容的可靠度為本技術領域一項重要課題。
根據本案一種實施方式所實現的一資料儲存裝置包括一非揮發式記憶體以及一控制單元。該非揮發式記憶體提供劃分為複數個第一階單元的儲存空間,且該等第一階單元更分組為複數個第二階單元,使一個上述第二階單元包括多個上述第一階單元。該控制單元使該等第一階單元分別編有檢正校驗碼,並在讀取一指定之第一階單元時,根據該指定之第一階單元之檢正校驗碼判斷該指定之第一階單元的數據狀況,據以自我檢測該非揮發性記憶體之其他數據。該指定之第一階單元屬於該等第二階單元中一指定之第二階單元。基於該指定之第 一階單元之檢正校驗碼辨別出該指定之第一階單元之數據超過一第一臨界錯誤量時,該控制單元檢測另外N個第一階單元,N為數量。上述N個第一階單元屬於該指定之第二階單元。上述N個第一階單元中多於M個之數據超過一第二臨界錯誤量時,該控制單元標示該指定之第二階單元為損毀,M為數量。
根據本案一種實施方式所實現的一種數據錯誤管理方法,應用於一資料儲存裝置且包括:對一非揮發式記憶體進行檢正校驗碼編碼,其中,該非揮發式記憶體提供劃分為複數個第一階單元的儲存空間,且該等第一階單元更分組為複數個第二階單元,使一個上述第二階單元包括多個上述第一階單元;使該等第一階單元分別編有上述檢正校驗碼;且在讀取一指定之第一階單元時,根據該指定之第一階單元之檢正校驗碼判斷該指定之第一階單元之數據狀況,據以自我檢測該非揮發性記憶體之其他數據。該指定之第一階單元屬於該等第二階單元中一指定之第二階單元。基於該指定之第一階單元之檢正校驗碼辨別出該指定之第一階單元之數據超過一第一臨界錯誤量時,其他N個第一階單元更受檢測,其中,N為數量。上述N個第一階單元屬於該指定之第二階單元。上述N個第一階單元中多於M個之數據超過一第二臨界錯誤量時,該指定之第二階單元標示為損毀,其中,M為數量。
本案另一種實施方式所揭露的一資料儲存裝置包括一非揮發式記憶體以及一控制單元。該非揮發式記憶體包括複數物理區塊,每一該些物理區塊包括複數資料頁。該控制單元可對該些物理區塊之一目標區塊的該些資料頁之一目標頁 執行一讀取要求以取得一目標數據。當該目標數據之一錯誤位元數大於一預設值時,該控制單元主動地對該目標區塊之至少一其他資料頁執行該讀取要求以取得至少一其他數據。如果該至少一其他數據之至少一錯誤位元也大於該預設值時,該控制單元主動地將該目標區塊所儲存的有效資料複製至另一該些物理區塊。
本案所揭露技術使得損壞之儲存空間得以在數據無法救回前被發現。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
100‧‧‧資料儲存裝置
102‧‧‧快閃記憶體
104‧‧‧控制單元
106‧‧‧主機
202、204‧‧‧物理頁之部分空間
BLK‧‧‧物理區塊
LUN#0…LUN#k‧‧‧邏輯單元編號0…k
Plane#0、Plane#1‧‧‧面
S302…S312、S402…S412、S502…S508、S602…S608‧‧‧步驟
第1圖以方塊圖圖解根據本案一種實施方式所實現的一資料儲存裝置100;第2圖圖解一物理頁之儲存空間規劃;第3圖為流程圖,根據本案第一種實施方式圖解快閃記憶體102的數據錯誤管理程序;第4圖為流程圖,根據本案第二種實施方式圖解快閃記憶體102的數據錯誤管理程序;第5圖為流程圖,更將快閃記憶體102的數據錯誤管理程序應用至面(plane)的管理;且第6圖為流程圖,更將快閃記憶體102的數據錯誤管理程序應用至晶粒(die)的管理。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
關於一資料儲存裝置之實現,本案所使用的非揮發性記憶體可以是快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,簡稱STT-RAM)…等,具有長時間資料保存之記憶體裝置。以下特別以快閃記憶體(flash memory)為例進行討論,但並不意圖限定之。
第1圖以方塊圖圖解根據本案一種實施方式所實現的一資料儲存裝置100,其中包括快閃記憶體102以及一控制單元104。資料儲存裝置100以控制單元104耦接一主機106。根據主機106所下達的指令,控制單元104操作該快閃記憶體102。控制單元104可包括運算元件以及儲存指令或運算數據用的記憶空間。
第1圖更圖解快閃記憶體102的儲存空間規劃。快閃記憶體102包括多個晶粒(dies),各晶粒對應一邏輯單元(logical unit,簡稱LUN),圖中包括標號LUN#0…LUN#k。一邏輯單元之儲存空間可更劃分為複數面(planes)-例如,圖示中,邏輯單元LUN#0之空間包括面Plane#0以及面Plane#1。各面包括複數個物理區塊(physical blocks)BLK。各物理區塊BLK包括複數物理頁(physical pages),例如:256個物理頁。資料 儲存裝置100可為記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)...等產品。有一種應用是採多晶片封裝、將快閃記憶體102與其控制單元104包裝在一起-稱為嵌入式快閃記憶體模組(如eMMC)。可攜式電子裝置-例如,手機、平板…等-也常以快閃記憶體實現其中資料儲存裝置。圖示中的主機106可為可攜式電子裝置之微處理器。
快閃記憶體102之資料更新並非對同樣儲存空間作複寫,而是將更新資料儲存在閒置空間。原儲存空間的儲存內容則轉為無效。頻繁的寫入操作容易致使儲存空間充斥無效的儲存內容,致使快閃記憶體102的儲存內容的有效率低落。對於充斥無效物理頁的物理區塊,快閃記憶體102具有垃圾回收(Garbage Collection)設計。待整理之物理區塊的有效物理頁將被複製至其他物理區塊,使該物理區塊空留無效物理頁,得以藉抹除(erase)操作釋出其空間。然而,抹除操作對物理區塊的可靠度會有傷害,危及資料保存(data retention)。此外,快閃記憶體102更有讀取擾動議題(read disturbance issues)。讀取操作時,目標字線(WL)的周邊字線須備施加高電壓,將使得周邊字線的所操控的記憶單元內容產生擾動。快閃記憶體102可靠度也會因而降低。
因應快閃記憶體102至少以上的操作瓶頸,快閃記憶體102通常需要搭配錯誤校驗機制-例如,除了儲存數據至各物理頁外,亦儲存數據的檢正校驗碼(如錯誤校驗碼ECC(Error Correction Code))至各物理頁。檢正校驗碼其他較佳實施方式為BCH碼(Bose Chaudhuri Hocquengham Code)或低 密度奇偶修正碼(Low Density Parity Check Code,LDPC)。基於ECC、BCH或LDPC之檢證校驗都可以硬體或軟體方式來實現。另外,資料儲存裝置100中可設置多重檢正校驗碼,並依實際情況需啟動其中之一或依序啟動檢正校驗碼。在下述中將以LDPC為例進行說明,但不以此為限。
第2圖圖解一物理頁,其中除了提供空間202儲存主機106發下的數據,更規劃了空間204儲存檢正校驗碼與映射資訊…等後設資料(metadata)。以LDPC為例,其最大檢正校驗值為1KB數據之76位元錯誤。另外,一個物理頁的大小可儲存一組或多組數據。
第3圖為流程圖,根據本案第一種實施方式圖解快閃記憶體102的數據錯誤管理程序。步驟S302收到主機106發下的數據讀取指令,其中,該數據讀取指令包括一邏輯位址。所述邏輯位址可為邏輯區塊地址(Logical Block Addressing,LBA)或全局主機頁(Global Host Page,GHP)。步驟S304讀取邏輯位址所對應的物理位址(對應的目標區塊及對應的目標頁)的目標數據,其中,邏輯位址與物理位址的映射關係是記錄在一映射表H2F(Host logical-Flash physical)中。步驟S306判斷目標數據是否無法校驗(即1KB數據是否有超過76位元以上的錯誤)?若否,則流程結束。若是,控制單元104主動選取目標數據所在的記憶體物理區塊中的N個數據(步驟S308),其中,N個數據的選取可與主機106發下的數據讀取指令無關,或者,N個數據的物理地址不同於目標數據的物理地址。步驟S310判斷N個(例如,N=5)數據中是否有多於M個(例如,M=3)數據無法校驗? 若否,則流程結束。若是,步驟S312令控制單元104標示該物理區塊為損毀,並將該物理區塊之數據(全部、或僅有效數據)搬移(或複製)至另一物理區塊,以維護數據正確性。
第4圖為流程圖,根據本案第二種實施方式圖解快閃記憶體102的數據錯誤管理程序。步驟S402收到主機106發下的數據讀取指令。步驟S404讀取邏輯位址所對應的物理位址之目標數據。步驟S406判斷目標數據的錯誤位數是否大於一臨界錯誤量(例如,1KB是否有70位以上錯誤)?若否,流程結束。若是,控制單元104主動選取目標數據所在的物理區塊中的N個數據(步驟S408)。步驟S410判斷N個數據中是否有多於M個數據的錯誤位數大於該臨界錯誤量?若否,流程結束。若是,步驟S412令控制單元106標示該物理區塊為損毀,並將該物理區塊之數據(全部或僅有效數據)搬移(或複製)至另一物理區塊,以維護數據正確性。
第3圖和第4圖的主要差別在於步驟S306與S406、步驟S310與S410的判斷條件。步驟S306與S310的判斷條件為無法校驗,即數據的位錯誤數量超過LDPC最大校驗能力(即1KB數據中有超過76位以上錯誤)。步驟S406與S410的判斷條件為數據的錯誤位數是否大於一臨界錯誤量(例如,1KB有70位以上錯誤),即數據的位錯誤數量未超過LDPC的最大校驗能力。藉由使用該臨界錯誤量,第二種實施方式可在目標數據尚未損毀(即無法校驗)前,進行其他數據的檢測,並依據檢測的結果來決定是否將數據搬移(或複製)至另一物理區塊,以維護數據正確性。
本案更將快閃記憶體102的數據錯誤管理程序應用至面(plane)的管理。第5圖為流程圖。步驟S502判斷是否有一物理區塊被標示為損毀?(如步驟S312或S412中被標示為損毀的物理區塊)。步驟S504自該損毀物理區塊所在的面(plane)中主動選取N1個物理區塊執行損毀檢測程序,其中,損毀檢測可參考步驟S308至S312或是步驟S408至S412等用以檢測物理區塊是否為損毀物理區塊的程序,N1為正整數。步驟S506判斷N1個物理區塊中是否有多於M1個損毀物理區塊。若否,則流程結束。若是,步驟S508令控制單元104標示該面為損毀,並將該面的數據(全部或僅有效數據)搬移(或複製)至另一面,以維護數據正確性。
本案更將快閃記憶體102的數據錯誤管理程序應用至晶粒(die)的管理。第6圖為流程圖。步驟S602判斷是否有一物理區塊被標示為損毀?(如步驟S312或S412中被標示為損毀的物理區塊)。步驟S604自該損毀物理區塊所在的邏輯單元(LUN)主動選取N2個物理區塊執行損毀檢測程序,其中,損毀檢測可參考步驟S308至S312或是步驟S408至S412等用以檢測物理區塊是否為損毀物理區塊的程序,N2為正整數。步驟S606判斷N2個物理區塊中是否有多於M2個損毀物理區塊。若否,則流程結束。若是,步驟S608令控制單元104標示對應該邏輯單元的該晶粒為損毀,並將該晶粒的數據(全部或僅有效數據)搬移(或複製)至另一晶粒,以維護數據正確性。
以上階層式自我檢測與維護概念,可用於任何階層劃分架構。一種實施方式是以超級頁(superpage)為數據寫入 單位,所述超級頁是複數面(plane)或晶粒(die)的複數資料頁所提供的儲存空間。如此實施方式是基於「超級頁」概念選擇檢測標的。其他實施方式繁多,此處不再贅述。
整理之,本案並不只回應來自主機106的數據讀取指令對快閃記憶體102空間做檢測與維護。本案更由控制單元104主導儲存空間之檢測與維護。例如,步驟S308以及S408所檢測的N個物理頁、步驟S504所檢測的N1個物理區塊以及步驟S604所檢測的N2個物理區塊,皆非步驟S302或S402之主機106所欲讀取的邏輯位址所對應的物理位址。如此自發的數據錯誤管理程序可在儲存空間損毀而數據無法校驗前,即搬移(或複製)數據至其他儲存空間。如此一來,快閃記憶體102的數據可靠度大大提升。甚至,適當設計的臨界錯誤量可大大降低數據無法以檢正校驗碼修復的可能性。
一種實施方式中,所述之數據錯誤管理程序是由主機106的讀取要求觸發,即進入步驟S302或S402。
一種實施方式中,所述之數據錯誤管理程序可以是由主機106的寫入要求觸發。控制單元104在對快閃記憶體102執行主機106發下的寫入要求後,可將寫入數據回讀。如此回讀動作可用來進入第3、或4圖程序。
一種實施方式中,所述之數據錯誤管理程序可以是由垃圾回收機制(garbage collection)觸發。控制單元104在對快閃記憶體102進行垃圾回收時,其中所涉及的數據讀取即可更用來進入第3、或4圖程序。
一種實施方式中,所述之數據錯誤管理程序可以 是以前景方式或背景方式(控制單元104非根據主機106指令操作快閃記憶體102)進行數據自我檢測與維護。
特別是,本案是以複數個數據(遍及複數個物理頁)的狀況來判斷所屬物理區塊的狀態-相較以單一數據(於單一物理頁)判斷所屬物理區塊損壞與否更為可靠。
在一種實施方式中,數據若無法以LDPC進行校驗,數據儲存裝置100仍可採用獨立硬盤冗餘陣列(Redundant Array of Independent Disks,RAID)來進行數據修復。
其他採用上述概念完成數據自我檢測與維護的技術都屬於本案所欲保護的範圍。基於以上技術內容,本案更涉及資料儲存裝置操作方法。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (27)
- 一種資料儲存裝置,包括:一非揮發式記憶體,提供劃分為複數個第一階單元的儲存空間,且該等第一階單元更分組為複數個第二階單元,使一個上述第二階單元包括多個上述第一階單元;以及一控制單元,使該等第一階單元分別編有檢正校驗碼,並在讀取一指定之第一階單元時,根據該指定之第一階單元之檢正校驗碼判斷該指定之第一階單元之數據狀況,據以自我檢測該非揮發性記憶體之數據;其中:該指定之第一階單元屬於該等第二階單元中一指定之第二階單元;基於該指定之第一階單元之檢正校驗碼判別該指定之第一階單元之數據超過一第一臨界錯誤量時,該控制單元檢測其他N個第一階單元,N為數量;上述N個第一階單元屬於該指定之第二階單元;且上述N個第一階單元中多於M個之數據超過一第二臨界錯誤量時,該控制單元標示該指定之第二階單元為損毀,M為數量。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該控制單元標示該指定之第二階單元損毀時,更搬移該指定之第二階單元之數據至另一上述第二階單元。
- 如申請專利範圍第1項所述之資料儲存裝置,其中: 該等第二階單元更分組為複數個第三階單元,使一個上述第三階單元包括多個上述第二階單元;該控制單元在標示該指定之第二階單元為損毀時,更檢測分布於N1個第二階單元的其他N2個第一階單元,N1與N2為數量;且上述N1個第二階單元與該指定之第二階單元同屬上述第三階單元中一指定之第三階單元。
- 如申請專利範圍第3項所述之資料儲存裝置,其中:上述N2個第一階單元中多於M2個之數據超過一第三臨界錯誤量時,該控制單元標示該指定之第三階單元為損毀,M2為數量。
- 如申請專利範圍第4項所述之資料儲存裝置,其中:該控制單元標示該指定之第三階單元為損毀時,更搬移該指定之第三階單元之數據至另一上述第三階單元。
- 如申請專利範圍第5項所述之資料儲存裝置,其中:該非揮發式記憶體為快閃記憶體;上述第一階單元為物理頁;上述第二階單元為物理區塊;且上述第三階單元為晶粒。
- 如申請專利範圍第6項所述之資料儲存裝置,其中:上述晶粒更各自包括複數個面,上述面各自包括多個上述物理區塊;該控制單元判別為損毀之物理區塊屬於一指定晶粒的一指定面;且 該控制單元包括自該指定晶粒除上述指定面以外的其他面選擇物理頁做檢測。
- 如申請專利範圍第6項所述之資料儲存裝置,其中:上述檢正校驗碼的檢正能力為每千位元組檢正L位元錯誤,L為數字;且上述第一、第二以及第三臨界錯誤量全數小於L。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該控制單元係根據一主機的一讀取指令讀取該指定之第一單元、或根據該主機對該指定之第一單元的一寫入指令讀取該指定之第一單元以回讀寫入之內容。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該控制單元是在垃圾收集時讀取該指定之第一單元。
- 一種數據錯誤管理方法,可應用於一資料儲存裝置,該方法包括:對一非揮發式記憶體進行檢正校驗碼編碼,其中,該非揮發式記憶體提供劃分為複數個第一階單元的儲存空間,且該等第一階單元更分組為複數個第二階單元,使一個上述第二階單元包括多個上述第一階單元;使該等第一階單元分別編有上述檢正校驗碼;且在讀取一指定之第一階單元時,根據該指定之第一階單元之檢正校驗碼判斷該指定之第一階單元之數據狀況,據以自我檢測該非揮發性記憶體之數據;其中: 該指定之第一階單元屬於該等第二階單元中一指定之第二階單元;基於該指定之第一階單元之檢正校驗碼判別該指定之第一階單元之數據超過一第一臨界錯誤量時,另外N個第一階單元更受檢測,其中,N為數量;上述N個第一階單元屬於該指定之第二階單元;且上述N個第一階單元中多於M個之數據超過一第二臨界錯誤量時,該指定之第二階單元標示為損毀,其中,M為數量。
- 如申請專利範圍第11項所述之數據錯誤管理方法,更包括:標示該指定之第二階單元為損毀時,更搬移該指定之第二階單元之數據至另一上述第二階單元。
- 如申請專利範圍第11項所述之數據錯誤管理方法,更包括:標示該指定之第二階單元為損毀時,更檢測分布於N1個第二階單元的N2個第一階單元;其中:N1與N2為數量;該等第二階單元更分組為複數個第三階單元,使一個上述第三階單元包括多個上述第二階單元;且上述N1個第二階單元與該指定之第二階單元同屬上述第三階單元中一指定之第三階單元。
- 如申請專利範圍第13項所述之數據錯誤管理方法,更包括:上述N2個第一階單元中多於M2個之數據超過一第三臨界錯誤量時,標示該指定之第三階單元為損毀,其中,M2為數量。
- 如申請專利範圍第14項所述之數據錯誤管理方法,更包括:標示該指定之第三階單元為損毀時,更搬移該指定之第三階單元之數據至另一上述第三階單元。
- 如申請專利範圍第15項所述之數據錯誤管理方法,其中:該非揮發式記憶體為快閃記憶體;上述第一階單元為物理頁;上述第二階單元為物理區塊;且上述第三階單元為晶粒。
- 如申請專利範圍第16項所述之數據錯誤管理方法,其中:上述晶粒更各自包括複數個面,上述面各自包括多個上述物理區塊;判別為損毀之物理區塊屬於一指定晶粒的一指定面;且所述資料儲存裝置操作方法包括自該指定晶粒除上述指定面以外的其他面選擇物理頁做檢測。
- 如申請專利範圍第16項所述之數據錯誤管理方法,其中:上述檢正校驗碼的檢正能力為每千位元組檢正L位元錯誤,L為數字;且上述第一、第二以及第三臨界錯誤量全數小於L。
- 如申請專利範圍第11項所述之數據錯誤管理方法,更包括:根據一主機的一讀取指令讀取該指定之第一單元、或根據該主機對該指定之第一單元的一寫入指令讀取該指定之第一單元以回讀寫入之內容。
- 如申請專利範圍第11項所述之數據錯誤管理方法,更包括:在垃圾收集時讀取該指定之第一單元。
- 一種資料儲存裝置,包括:一非揮發式記憶體,包括複數物理區塊,每一該些物理區塊包括複數資料頁;以及一控制單元,可對該些物理區塊之一目標區塊的該些資料頁之一目標頁執行一讀取要求以取得一目標數據,當該目標數據之一錯誤位元數大於一預設值時,主動地對該目標區塊之至少一其他資料頁執行該讀取要求以取得至少一其他數據,如果該至少一其他數據之至少一錯誤位元也大於該預設值時,主動地將該目標區塊所儲存的有效資料複製至另一該些物理區塊。
- 如申請專利範圍第21項所述之資料儲存裝置,其中:該預設值等於一檢正校驗碼的一最大檢正校驗能力值。
- 如申請專利範圍第21項所述之資料儲存裝置,其中:該預設值小於一檢正校驗碼的一最大檢正校驗能力值。
- 如申請專利範圍第21項所述之資料儲存裝置,其中:該讀取要求係來自於一主機。
- 如申請專利範圍第21項所述之資料儲存裝置,其中:該讀取要求係對應至一主機的一寫入要求。
- 如申請專利範圍第21項所述之資料儲存裝置,其中:該讀取要求係由一垃圾回收機制所觸發。
- 如申請專利範圍第21項所述之資料儲存裝置,其中:該目標區塊包括複數該些物理區塊,該目標頁包括複數該些資料頁。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710362875.XA CN108958961B (zh) | 2017-05-22 | 2017-05-22 | 数据储存装置以及数据错误管理方法 |
??201710362875.X | 2017-05-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201901450A true TW201901450A (zh) | 2019-01-01 |
TWI650647B TWI650647B (zh) | 2019-02-11 |
Family
ID=64272666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106121559A TWI650647B (zh) | 2017-05-22 | 2017-06-28 | 資料儲存裝置以及數據錯誤管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10446252B2 (zh) |
CN (1) | CN108958961B (zh) |
TW (1) | TWI650647B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI697006B (zh) * | 2019-05-09 | 2020-06-21 | 點序科技股份有限公司 | 快閃記憶體管理方法及快閃記憶體 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112099985B (zh) * | 2019-06-17 | 2023-09-12 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
KR20210003633A (ko) * | 2019-07-02 | 2021-01-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
TWI805231B (zh) | 2022-02-18 | 2023-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
CN116665756A (zh) | 2022-02-18 | 2023-08-29 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
TWI802279B (zh) * | 2022-02-18 | 2023-05-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9092361B2 (en) * | 2005-07-15 | 2015-07-28 | Panasonic Intellectual Property Management Co., Ltd. | Nonvolatile storage device, memory controller, and defective region detection method |
US7631245B2 (en) * | 2005-09-26 | 2009-12-08 | Sandisk Il Ltd. | NAND flash memory controller exporting a NAND interface |
US8402217B2 (en) * | 2009-09-15 | 2013-03-19 | Marvell International Ltd. | Implementing RAID in solid state memory |
TWI408688B (zh) * | 2009-10-12 | 2013-09-11 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
US8645776B2 (en) * | 2010-03-24 | 2014-02-04 | Apple Inc. | Run-time testing of memory locations in a non-volatile memory |
US20130031431A1 (en) * | 2011-07-28 | 2013-01-31 | Eran Sharon | Post-Write Read in Non-Volatile Memories Using Comparison of Data as Written in Binary and Multi-State Formats |
CN103176752A (zh) * | 2012-07-02 | 2013-06-26 | 晶天电子(深圳)有限公司 | 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器 |
US9329948B2 (en) * | 2012-09-15 | 2016-05-03 | Seagate Technology Llc | Measuring cell damage for wear leveling in a non-volatile memory |
TWI501249B (zh) * | 2012-11-14 | 2015-09-21 | Winbond Electronics Corp | 晶片上之反及閘快閃記憶體及其損壞區塊管理方法 |
US9071281B2 (en) * | 2013-03-10 | 2015-06-30 | Intel Corporation | Selective provision of error correction for memory |
CN103488583B (zh) * | 2013-09-09 | 2016-08-10 | 华中科技大学 | 一种高性能高可靠的固态盘实现方法 |
US9389956B2 (en) * | 2014-01-10 | 2016-07-12 | International Business Machines Corporation | Implementing ECC control for enhanced endurance and data retention of flash memories |
US10432353B2 (en) * | 2014-12-04 | 2019-10-01 | Samsung Display Co., Ltd. | Memory-efficient methods of transporting error correction codes in a symbol encoded transmission stream |
US9916237B2 (en) * | 2014-12-12 | 2018-03-13 | Sandisk Technologies Llc | Model based configuration parameter management |
DE102015103809B3 (de) * | 2015-03-16 | 2016-07-07 | Intel IP Corporation | Verfahren und Vorrichtung zum Schützen eines Datentransportblocks gegen Speicherfehler und Übertragungsfehler |
US10373695B2 (en) * | 2016-12-30 | 2019-08-06 | Western Digital Technologies, Inc. | Methods and apparatus for read disturb detection and handling |
-
2017
- 2017-05-22 CN CN201710362875.XA patent/CN108958961B/zh active Active
- 2017-06-28 TW TW106121559A patent/TWI650647B/zh active
-
2018
- 2018-01-08 US US15/864,219 patent/US10446252B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI697006B (zh) * | 2019-05-09 | 2020-06-21 | 點序科技股份有限公司 | 快閃記憶體管理方法及快閃記憶體 |
Also Published As
Publication number | Publication date |
---|---|
US20180336961A1 (en) | 2018-11-22 |
US10446252B2 (en) | 2019-10-15 |
TWI650647B (zh) | 2019-02-11 |
CN108958961B (zh) | 2021-11-30 |
CN108958961A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI650647B (zh) | 資料儲存裝置以及數據錯誤管理方法 | |
US9274887B2 (en) | Non-regular parity distribution detection via metadata tag | |
US11862263B2 (en) | Storage device and method of operating the same | |
US8788876B2 (en) | Stripe-based memory operation | |
TWI442407B (zh) | 在固態儲存系統中之資料回復 | |
US10915394B1 (en) | Schemes for protecting data in NVM device using small storage footprint | |
US8645776B2 (en) | Run-time testing of memory locations in a non-volatile memory | |
TWI645404B (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
US8612836B2 (en) | Non-volatile memory device with uncorrectable information region and operation method using the same | |
US10127103B2 (en) | System and method for detecting and correcting mapping table errors in a non-volatile memory system | |
US10133645B2 (en) | Data recovery in three dimensional non-volatile memory array after word line short | |
KR20210099895A (ko) | 메모리 시스템 및 그것의 동작방법 | |
TWI639112B (zh) | 儲存裝置及其控制單元、可用於儲存裝置的資料儲存方法 | |
US20240054046A1 (en) | Error-handling management during copyback operations in memory devices | |
US11467903B2 (en) | Memory system and operating method thereof | |
US11934266B2 (en) | Memory compaction management in memory devices | |
US11250913B2 (en) | Scrambling using different scrambling seeds for defect reduction and improved programming efficiency | |
US20240069765A1 (en) | Two-tier defect scan management | |
US20240176705A1 (en) | System recovery during cgi-wl defect | |
US20240006008A1 (en) | Operating and testing semiconductor devices | |
US20240231987A1 (en) | Storage device, method of operating storage device, and method of operating non-volatile memory | |
US20230186995A1 (en) | Performing data integrity checks to identify defective wordlines | |
KR20220010789A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
CN114579355A (zh) | 存储装置及其操作方法 |