TWI764856B - 記憶體控制器與資料處理方法 - Google Patents
記憶體控制器與資料處理方法Info
- Publication number
- TWI764856B TWI764856B TW110146502A TW110146502A TWI764856B TW I764856 B TWI764856 B TW I764856B TW 110146502 A TW110146502 A TW 110146502A TW 110146502 A TW110146502 A TW 110146502A TW I764856 B TWI764856 B TW I764856B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- error correction
- read
- data block
- memory
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims description 21
- 238000012937 correction Methods 0.000 claims abstract description 147
- 238000000034 method Methods 0.000 claims abstract description 29
- 230000004044 response Effects 0.000 claims abstract description 11
- 230000003139 buffering effect Effects 0.000 claims description 4
- 238000013500 data storage Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000008439 repair process Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/1044—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 with specific ECC/EDC distribution
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1088—Reconstruction on already foreseen single or plurality of spare disks
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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]
Abstract
一種記憶體控制器包括錯誤更正碼引擎、緩衝記憶體以及微處理器。微處理器響應於既定資料之第一解碼結果對記憶體裝置執行反覆讀取操作,以取得包含既定資料之資料組塊的複數讀取結果,其中資料組塊包括複數位元。微處理器更根據資料組塊的讀取結果執行一資料重建與更正程序,於資料重建操作中,微處理器根據資料組塊的讀取結果決定資料組塊的位元所對應的一位元值,以產生一重建的資料組塊,以及於錯誤更正操作中,微處理器將重建的資料組塊提供給錯誤更正碼引擎,以取得既定資料之一第二解碼結果。
Description
本發明係有關於一種可有效改善記憶體裝置之錯誤更正效能之資料處理方法及對應之記憶體控制器。
隨著編碼技術的演進,現今已發展出許多種可用於記憶體裝置之錯誤更正碼引擎的錯誤更正碼(或稱糾錯碼),而各種錯誤更正碼的錯誤更正能力也不盡相同。一般而言,錯誤更正碼引擎的錯誤更正能力越強,價格越昂貴,因為其通常會採用設計較複雜且糾錯能力較強的錯誤更正碼進行開發。然而,基於成本考量,糾錯能力相對較弱的錯誤更正碼仍然會被廣泛使用。
舉例而言,對於較慢速的儲存裝置(例如,通用序列匯流排(Universal Serial Bus ,縮寫為USB)隨身碟)而言,BCH(取自Bose、Chaudhuri與Hocquenghem的縮寫)碼由於可以達到設計簡單、價格低廉、體積小巧等優勢,因此還是非常廣泛被選擇做為錯誤更正碼使用。然而,BCH碼的校正能力有限。在相同位元數的資料量之下,BCH碼所能更正的錯誤位元數通常低於其他較高階的錯誤更正碼所能更正的錯誤位元數。
為了在採用糾錯能力相對較弱的錯誤更正碼的產品中加強錯誤更正效能,本發明提出一種資料處理方法及對應之記憶體控制器,以改善記憶體裝置之錯誤更正效能。
本發明之一目的在於改善記憶體裝置之錯誤更正效能。
根據本發明之一實施例,一種記憶體控制器,耦接一記憶體裝置,用以控制記憶體裝置的存取操作,包括一錯誤更正碼引擎、一緩衝記憶體以及一微處理器。錯誤更正碼引擎用以編碼需被寫入記憶體裝置的資料,以及解碼讀取自記憶體裝置的資料。緩衝記憶體用以提供資料緩衝。微處理器響應於既定資料之第一解碼結果對記憶體裝置執行反覆讀取操作,以取得記憶體裝置中包含既定資料之資料組塊的複數讀取結果,其中資料組塊包括複數位元,並且讀取結果被儲存於緩衝記憶體。微處理器更根據資料組塊的讀取結果執行一資料重建與更正程序,其中資料重建與更正程序包括一資料重建操作與一錯誤更正操作,於資料重建操作中,微處理器根據資料組塊的讀取結果決定資料組塊的位元所對應的一位元值,以產生一重建的資料組塊,以及於錯誤更正操作中,微處理器將重建的資料組塊提供給錯誤更正碼引擎,以取得既定資料之一第二解碼結果。
根據本發明之另一實施例,一種資料處理方法,由耦接一記憶體裝置之一記憶體控制器所執行,包括:響應於一既定資料之一第一解碼結果對記憶體裝置執行一反覆讀取操作,以取得記憶體裝置中包含既定資料之一資料組塊的複數讀取結果,其中資料組塊包括複數位元,並且讀取結果被儲存於記憶體控制器的一緩衝記憶體中;以及根據資料組塊的讀取結果執行一資料重建與更正程序,以取得既定資料之一第二解碼結果。其中根據資料組塊的讀取結果執行資料重建與更正程序之步驟更包括:根據資料組塊的讀取結果決定資料組塊的位元所對應的一位元值,以產生一重建的資料組塊;以及將重建的資料組塊提供給記憶體控制器的一錯誤更正碼引擎,以取得既定資料之第二解碼結果。
在下文中,描述了許多具體細節以提供對本發明實施例的透徹理解。然而,本領域技術人員仍將理解如何在缺少一個或多個具體細節或依賴於其他方法、元件或材料的情況下實施本發明。在其他情況下,未詳細示出或描述公知的結構、材料或操作,以避免模糊本發明的主要概念。
在整個說明書中對「一實施例」或「一範例」的引用意味著結合該實施例或範例所描述的特定特徵、結構或特性係包括於本發明之多個實施例的至少一個實施例中。因此,貫穿本說明書在各個地方出現的短語「於本發明之一實施例中」、「根據本發明之一實施例」、「於一範例中」或「根據本發明之一範例」不一定都指到相同的實施例或範例。此外,特定特徵、結構或特性可以在一個或多個實施例或範例中以任何合適的組合和/或子組合進行結合。
此外,為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置的方塊圖範例。資料儲存裝置100可包括一記憶體裝置120與一記憶體控制器110。記憶體控制器110用以存取(Access)記憶體裝置120及控制記憶體裝置120之運作。記憶體裝置120可為一非揮發性(non-volatile,縮寫為NV)記憶體裝置(例如,一快閃記憶體(flash memory)),並且可包括一或多個記憶元件(例如,一或多個快閃記憶體晶粒、一或多個快閃記憶體晶片、或其他類似元件)。
資料儲存裝置100可耦接至一主機裝置130。主機裝置130可至少包括一處理器、一電源電路、以及至少一隨機存取記憶體(Random Access Memory,縮寫為RAM),例如至少一動態隨機存取記憶體(Dynamic RAM,縮寫為DRAM)、至少一靜態隨機存取記憶體(Static RAM,縮寫為SRAM)等(以上未示於第1圖)。處理器與隨機存取記憶體可透過一匯流排彼此相互連接,並且可耦接至電源電路以取得電源。處理器可控制主機裝置130之運作。電源電路可將電源供應至處理器、隨機存取記憶體以及資料儲存裝置100,例如輸出一或多個驅動電壓至資料儲存裝置100。資料儲存裝置100可自主機裝置130取得所述驅動電壓作為資料儲存裝置100的電源,並且為主機裝置130提供儲存空間。
根據本發明之一實施例,主機裝置130可對資料儲存裝置100發出指令,例如,讀取指令或寫入指令,用以存取記憶體裝置120所儲存之資料,或者主機裝置130可對資料儲存裝置100發出指令以進一步控制、管理資料儲存裝置100。
根據本發明之一實施例,記憶體控制器110可包括一微處理器112、一唯讀記憶體(Read Only Memory,縮寫為ROM)112M、一記憶體介面114、一緩衝記憶體116、與一主機介面118。唯讀記憶體112M係用以儲存程式碼112C。而微處理器112則用來執行程式碼112C以控制對記憶體裝置120之存取。程式碼112C可包括一或多個程式模組,例如啟動載入(boot loader)程式碼。當資料儲存裝置100自主機裝置130取得電源時,微處理器112可藉由執行程式碼112C執行資料儲存裝置100之一初始化程序。於初始化程序中,微處理器112可自記憶體裝置120載入一組系統內編程(In-System Programming,縮寫為ISP)程式碼(未示於第1圖)。微處理器112可執行該組系統內編程程式碼,使得資料儲存裝置100可具備各種功能。根據本發明之一實施例,該組系統內編程程式碼可包括,但不限於:一或多個與記憶體存取(例如,讀取、寫入與抹除)相關的程式模組,例如一讀取操作模組、一查找表格模組、一損耗均衡(wear leveling)模組、一讀取刷新(read refresh) 模組、一讀取回收(read reclaim)模組、一垃圾回收模組、一非預期斷電恢復(Sudden Power Off Recovery,縮寫為SPOR)模組、以及一不可更正錯誤更正碼(Uncorrectable Error Correction Code,縮寫為UECC)模組,其分別被提供用以執行對應之讀取、查找表格、損耗均衡、讀取刷新、讀取回收、垃圾回收、非預期斷電恢復以及對偵測到的UECC錯誤進行錯誤處理等操作。
記憶體介面114包含了一錯誤更正碼引擎140。錯誤更正碼引擎140內部可包含一資料緩衝器(圖未示),用以暫存資料,以輔助錯誤更正碼引擎140對資料執行編碼與解碼操作。於將資料寫入記憶體裝置120的寫入流程中,錯誤更正碼引擎140對需被寫入記憶體裝置120的資料進行編碼,例如執行錯誤更正碼(ECC)編碼,以產生額外的奇偶位元(parity bits)。而於將資料讀出記憶體裝置120的讀取流程中,錯誤更正碼引擎140對從記憶體裝置120所讀出的資料進行解碼,用以檢測資料中的錯誤位元,並且於可更正的情況下(例如,資料中的錯誤位元數量不超過錯誤更正碼引擎140所能更正的錯誤位元數上限),修正錯誤位元的位元值。
於典型狀況下,記憶體裝置120包含了多個記憶元件,例如多個快閃記憶體晶粒或多個快閃記憶體晶片,各記憶元件可包含複數個記憶體區塊(Block)。記憶體控制器110對記憶體裝置120進行抹除資料運作係以區塊為單位來進行。另外,一記憶體區塊可記錄(包含)特定數量的資料頁(Page),例如,實體資料頁,其中記憶體控制器110對記憶體裝置120進行寫入資料之運作係以資料頁為單位來進行寫入。
實作上,記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用記憶體介面114來控制記憶體裝置120之存取運作(尤其是對至少一記憶體區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用主機介面118來與主機裝置130溝通。
在一實施例中,記憶體控制器110透過主機介面118並使用一標準通訊協定與主機裝置130溝通。舉例而言,上述之標準通訊協定包含(但不限於):通用序列匯流排(USB)標準、SD介面標準、超高速一代 (Ultra High Speed-I,縮寫為UHS-I) 介面標準、超高速二代 (Ultra High Speed-II,縮寫為UHS-II) 介面標準、CF介面標準、MMC介面標準、eMMC介面標準、UFS介面標準、高技術組態(Advanced Technology Attachment,縮寫為ATA)標準、序列高技術組態(Serial ATA,縮寫為SATA)標準、快捷外設互聯標準(Peripheral Component Interconnect Express,縮寫為PCI-E)標準、並列先進附件(Parallel Advanced Technology Attachment,縮寫為PATA)標準等。
在一實施例中,用以提供資料緩衝之緩衝記憶體116係以隨機存取記憶體來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體,但本發明亦不限於此。於其他實施例中,緩衝記憶體116可以是動態隨機存取記憶體。
在一實施例中,資料儲存裝置100可以是可攜式記憶體裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡、USB隨身碟等裝置),且主機裝置130為一可與資料儲存裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦…等等。而在另一實施例中,資料儲存裝置100可以是固態硬碟或符合UFS或eMMC規格之嵌入式儲存裝置,並且可被設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主機裝置130可以是該電子裝置的一處理器。
如上所述,為了加強資料儲存裝置100的錯誤更正效能,本發明提出一種資料處理方法及對應之記憶體控制器,藉由將讀取的資料原始內容重新組合後再次執行錯誤更正操作,以試圖成功解碼資料。
第2圖係顯示根據本發明之一實施例所述之資料處理方法之範例流程圖。本發明提出之資料處理方法可由記憶體控制器110所執行,並且可包括以下步驟:
步驟S202: 響應於一既定資料之一第一解碼結果對記憶體裝置120執行一反覆讀取操作,以取得記憶體裝置120中包含既定資料之一資料組塊(Chunk)的複數讀取結果。於本發明之一實施例中,當第一解碼結果為指示錯誤更正失敗之一結果時,可觸發反覆讀取操作。
步驟S204: 根據資料組塊的多個讀取結果執行一資料重建與更正程序,以取得既定資料之一第二解碼結果。根據本發明之一實施例,資料重建與更正程序可包括資料重建操作與錯誤更正操作。於資料重建操作中,記憶體控制器110可根據資料組塊的多個讀取結果決定資料組塊中的各位元所對應的一位元值,以產生一重建的資料組塊。於錯誤更正操作中,記憶體控制器110可將重建的資料組塊提供給錯誤更正碼引擎140,使錯誤更正碼引擎140對重建的資料組塊進行解碼,以取得既定資料之第二解碼結果。
於本發明之實施例中,第二解碼結果可能是指示錯誤更正成功之一結果,也可能是指示錯誤更正失敗之一結果。當第二解碼結果指示錯誤更正成功,代表所述既定資料中的錯誤位元均可被檢測出來,並且可被更正回正確的位元值。即,既定資料的正確內容可被錯誤更正碼引擎140還原。相對地,當第二解碼結果指示錯誤更正失敗,代表所述既定資料中的錯誤位元數量仍超過錯誤更正碼引擎140所能更正的錯誤位元數上限,因此錯誤更正碼引擎140無法成功地對目前重建的資料組塊執行錯誤更正。
於本發明之實施例中,若第二解碼結果指示錯誤更正成功,記憶體控制器110可結束目前的資料處理流程。若第二解碼結果指示錯誤更正失敗,記憶體控制器110可更執行以下步驟:
步驟S206: 根據資料組塊的多個讀取結果重新執行資料重建與更正程序,以取得既定資料之一第三解碼結果。由於步驟S206非必須步驟,因此於第2圖中以虛線表示。
根據本發明之一實施例,於重新執行資料重建與更正程序時,記憶體控制器110可根據一或多個翻轉邏輯修改重建的資料組塊的至少一位元所對應的位元值,以重新產生重建的資料組塊,並將重新產生之重建的資料組塊提供給錯誤更正碼引擎140,使錯誤更正碼引擎140對重新產生之重建的資料組塊進行解碼,以取得既定資料之第三解碼結果。
類似地,於本發明之實施例中,若第三解碼結果指示錯誤更正成功,記憶體控制器110可結束目前的資料處理流程。若第三解碼結果指示錯誤更正失敗,記憶體控制器110可再次執行步驟S206,以取得既定資料之第四解碼結果,並以此類推。
一般而言,在記憶體控制器110響應於接收自主機裝置130欲讀取一既定資料之一讀取指令而執行記憶體裝置120的讀取操作時,記憶體控制器110會透過記憶體介面114存取記憶體裝置120用以將既定資料讀出,並且由錯誤更正碼引擎140對讀出的資料執行解碼處理。錯誤更正碼引擎140的解碼操作包含了檢測既定資料中的錯誤位元,並且嘗試更正錯誤位元,以修復既定資料被儲存於記憶體裝置120時所發生的錯誤。若既定資料中的錯誤位元數量未超過錯誤更正碼引擎140所能更正的錯誤位元數上限,錯誤更正碼引擎140可成功地修復既定資料中的錯誤位元,將既定資料的正確內容還原。若既定資料中的錯誤位元數量超過錯誤更正碼引擎140所能更正的錯誤位元數上限,意味著出現錯誤更正碼不可更正的錯誤(ECC Uncorrectable Error),錯誤更正碼引擎140無法判定既定資料的正確內容,因此會將解碼結果設定為指示錯誤更正失敗之一結果。
於既有的設計中,當發生錯誤更正失敗時,記憶體控制器110便會直接回報主機裝置130錯誤更正失敗(ECC Failure),並將讀取到的既定資料內容提供給主機裝置130。由於記憶體控制器110無法檢測出既定資料中的哪些位元為錯誤位元,進而無法修復既定資料中的錯誤位元,因此記憶體控制器110僅能將包含許多未知錯誤位元的讀取結果提供給主機裝置130。
為解決上述問題,特別是為了在採用糾錯能力相對較弱的錯誤更正碼的產品中加強錯誤更正效能,本發明提出前述之資料處理方法及對應之記憶體控制器,藉由將讀取的資料原始內容重新組合後再次執行錯誤更正操作,以試圖成功解碼資料。以下段落將做更詳細的說明。
第3圖係顯示根據本發明之一實施例所述之資料處理流程範例。於本發明之實施例中,應用前述之資料處理方法的資料處理流程可起始於錯誤更正失敗(ECC Failure)的狀態,但與既有設計不同的是,此時並不將此錯誤更正失敗回報主機裝置130。假設主機裝置130發出一讀取指令以讀取一筆大小為一千位元組(Kilo Byte,縮寫為KB)的既定資料,記憶體控制器110將響應於接收到的讀取指令存取記憶體裝置120,以嘗試讀取既定資料。當讀出的既定資料發生錯誤更正失敗時(步驟S302),記憶體控制器110之微處理器112會手動執行一反覆讀取操作,對包含既定資料之一資料組塊執行多次讀取操作(步驟S304)。
於本發明之實施例中,資料組塊可包括複數位元,並且資料組塊的內容可包含既定資料與既定資料所對應之奇偶(parity)資訊,其中的奇偶資訊為錯誤更正碼引擎140於將既定資料寫入記憶體裝置120時所產生之有助於後續更正錯誤的資訊。因此,微處理器112於步驟S304所讀取之資料組塊可包括既定資料的複數資料位元以及奇偶資訊所對應的一或多個位元(奇偶位元,parity bits)。例如,微處理器112於步驟S304中可讀取N次既定資料與對應之奇偶資訊,以得到N筆讀取結果,其中N為大於1之一正整數。
於本發明之實施例中,所述手動執行讀取操作或手動讀取操作係指微處理器112讀取記憶體裝置120時會略過錯誤更正碼引擎140的錯誤更正操作,因此,微處理器112所取得的資料為既定資料與奇偶資訊的最原始的讀取結果(raw data)。即,未被錯誤更正碼引擎140解碼過或者未被錯誤更正碼引擎140更正錯誤過的讀取結果。
一般而言,記憶體控制器110於開卡時,會將錯誤更正碼相關的設定值寫入記憶體裝置120的系統資料區塊中,其中系統資料區塊用以儲存記憶體控制器110運作時所需的資料。於資料儲存裝置100的初始化程序中,記憶體控制器110可根據系統資料區塊的儲存內容設定對應的控制模組,例如,由微處理器112藉由執行軟體或韌體程式碼所產生用於控制記憶體裝置120的一快閃記憶體控制模組。舉例而言,微處理器112可根據系統資料區塊的儲存內容為快閃記憶體控制模組設定奇偶位元(parity bits)的長度。
假設於先前將1KB(一千位元組)大小的既定資料寫入記憶體裝置120的寫入操作中,錯誤更正碼引擎140產生了額外的120B(120位元組)的奇偶資訊(或稱奇偶位元),此120B的奇偶資訊會隨同1KB的既定資料一併被寫入記憶體裝置120中。
於執行非手動讀取操作(即,一般的讀取操作)時,例如,前述記憶體控制器110響應於主機裝置130之讀取指令而讀取既定資料的讀取操作,微處理器112會透過快閃記憶體控制模組對記憶體裝置120發出讀取指令,於讀取指令中指定讀取操作的起始位址,並設定讀取長度為(1KB+120B),以一併讀取既定資料與其所對應之奇偶資訊。響應於此讀取指令,記憶體裝置120會將讀取之資料回傳給錯誤更正碼引擎140。讀取之資料會暫存於錯誤更正碼引擎140內部的資料緩衝器中,並且由錯誤更正碼引擎140對資料執行解碼操作。於解碼完成後,無論解碼結果為錯誤更正成功或錯誤更正失敗,錯誤更正碼引擎140會捨棄120B的奇偶資訊,而僅將1KB大小的既定資料(於存在錯誤位元且可更正的情況下,會是更正後的既定資料)傳給記憶體控制器110的緩衝記憶體116,再由記憶體控制器110回傳給主機裝置130。
而於執行手動讀取操作時,微處理器112同樣會透過快閃記憶體控制模組對記憶體裝置120發出讀取指令,於讀取指令中指定讀取操作的起始位址,並設定讀取長度為(1KB+120B) ,以一併讀取既定資料與其所對應之奇偶資訊,但此時微處理器112將使錯誤更正碼引擎140的解碼功能不作用,或者將之設定為禁用(disable)。響應於此讀取指令,記憶體裝置120會將讀取之資料回傳給錯誤更正碼引擎140,而暫存於錯誤更正碼引擎140內部的資料緩衝器中的(1KB+120B)讀取資料會直接被傳送至記憶體控制器110的緩衝記憶體116。因此,相較於執行一般的讀取操作時,錯誤更正碼引擎140僅會將要被讀取的既定資料傳送給緩衝記憶體116,於執行手動讀取操作時,錯誤更正碼引擎140會將要被讀取的既定資料與其所對應之奇偶資訊一併傳送給緩衝記憶體116。
根據本發明之一實施例,錯誤更正碼引擎140於執行反覆讀取操作之期間可被禁用。例如,錯誤更正碼引擎140可預設地被致能(enabled),而微處理器112可於需執行反覆讀取操作之期間(即,需執行多次前述手動讀取操作之期間)藉由設定對應的暫存器使錯誤更正碼引擎140暫時被禁用。根據本發明之另一實施例,微處理器112也可藉由其他設定方式使錯誤更正碼引擎140於需執行反覆讀取操作之期間暫時被禁用,或者使錯誤更正碼引擎140的解碼功能於需執行反覆讀取操作之期間暫時不作用。
根據本發明之一實施例,於步驟S304中,微處理器112會對包含既定資料與其所對應之奇偶資訊的資料組塊手動執行N次反覆讀取操作,使得資料組塊的每個位元都會有對應的N個讀取結果,並將各位元的N個讀取結果儲存於緩衝記憶體116中。
根據本發明之一實施例,於取得各位元的N個讀取結果後,微處理器112可利用讀取結果執行資料重建操作(步驟S306),以重建既定資料與其所對應之奇偶資訊的內容。步驟S306中,微處理器112可進一步分析各位元的讀取結果內容,例如,為資料組塊的各位元累計於N次讀取中共有幾次其位元值被判定為1,以及共有幾次其位元值被判定為0,以得到對應的統計結果。
第4圖係顯示根據本發明之一實施例所述之手動讀取之各位元的位元值統計表格範例。於統計表格400中,各位元係以不同的位元索引值做區隔,例如,表格中所示之位元索引值0~9151,其中的第0~8191個位元為既定資料的內容(於此範例中,既定資料大小為8KB),第8192~9151個位元為此既定資料所對應的奇偶位元。
根據本發明之一實施例,於資料重建操作中,微處理器112可根據各位元所對應的N個讀取結果選擇一多數值(Majority)作為該位元所對應的位元值。以統計表格400為例,由於第0、1、3個位元的10次讀取結果中位元值0的讀取結果為多數,微處理器112可於重建時將第0、1、3個位元的位元值設定為0。同理,由於第2個位元的10次讀取結果中位元值1的讀取結果為多數,微處理器112可重建時將第2個位元的位元值設定為1。其餘的位元可以此類推。微處理器112可依循此規則決定出資料組塊中的各位元所對應的一位元值,以產生一重建的資料組塊。需注意的是,本發明並不限於以選擇多數值的方式進行資料重建。舉例而言,於本發明之其他實施例中,亦可將N次讀取結果的少數值(minority)設定為部份位元所對應的位元值。
接著,微處理器112可將一重建的資料組塊提供給錯誤更正碼引擎140,並且由錯誤更正碼引擎140對重建的資料組塊執行錯誤更正的解碼操作(步驟S308)。於本發明之一實施例中,錯誤更正碼引擎140於非執行反覆讀取操作之期間便可被恢復為致能狀態,或者由微處理器112使錯誤更正碼引擎140的解碼功能恢復作用。
微處理器112可判斷步驟S308的解碼結果是否仍為錯誤更正失敗(步驟S310)。若否,代表錯誤更正成功,微處理器112可將由錯誤更正碼引擎140恢復的資料寫回記憶體裝置120中(步驟S312),以保存既定資料的正確內容。根據本發明之一實施例,微處理器112可藉由資料更新的操作將恢復的資料寫回記憶體裝置120中。例如,微處理器112可將由錯誤更正碼引擎140恢復的資料視為既定資料所對應之邏輯位址的更新資料,並將之存於記憶體裝置120中。於下次主機裝置130欲存取此邏輯位址的資料內容時,便可讀取到正確的內容。
如上所述,於解碼完成後,錯誤更正碼引擎140會將既定資料(於存在錯誤位元且可更正的情況下,會是更正後的既定資料或者前述恢復的資料)傳給記憶體控制器110的緩衝記憶體116。因此,微處理器112可將緩衝記憶體116內的資料寫回記憶體裝置120中。
若步驟S308的解碼結果仍為錯誤更正失敗,微處理器112可進一步判斷是否還有其他替代的資料重建操作可選擇(步驟S314)。於本發明之實施例中,步驟S204或第一次進入步驟S306中執行的資料重建操作可以是預設的資料重建操作,而本發明所提出之資料處理方法可另設計一或多個替代的資料重建操作,以提供於需要重新執行資料重建與更正程序時(例如,如第3圖所示,於步驟S310判斷為「是」時)使用。
若微處理器112判斷無其他替代的資料重建操作可選擇,便將錯誤更正失敗與資料恢復失敗回報主機裝置130(步驟S316)(於圖中係標示資料恢復失敗用以與步驟S302區隔),並將讀取到的既定資料內容提供給主機裝置130。若微處理器112判斷還有其他替代的資料重建操作可選擇,則處理流程可返回步驟S306(或者,於一些實施例中,可返回步驟S304)。
於本發明之實施例中,由於在重新執行資料重建與更正程序時僅資料重建操作的相關部分具有差異,錯誤更正操作的部分相同,因此以下將針對資料重建操作的相關部分做說明。
根據本發明之一實施例,於重新執行資料重建與更正程序時,微處理器112可基於先前取得之資料組塊的讀取結果與先前重建的資料組塊根據一或多個翻轉邏輯修改資料組塊中的至少一位元所對應的位元值,以重新產生重建的資料組塊。所述的翻轉邏輯為用於挑選出位元值可被翻轉(例如,將原先設定的位元值0翻轉為1,或者將原先設定的位元值1翻轉為0)的位元的邏輯條件。
根據本發明之一實施例,翻轉邏輯可以是讀取到的位元值被判定0與讀取到的位元值被判定1的機率相近,或者讀取到的位元值被判定0與讀取到的位元值被判定1的次數差少於一臨界值的邏輯條件。
舉例而言,微處理器112可挑選出於N次讀取中,位元值被判定為1與位元值被判定為0的次數差(即,統計表格400中計數值差值)小於一臨界值的一或多個位元,並且修改其中的至少一位元所對應的位元值,以重新產生重建的資料組塊。
以統計表格400為例,假設於第一次重新執行資料重建與更正程序時,臨界值被設定為3,微處理器112可至少挑選出第3個位元其位元值可被翻轉(因為第3個位元的計數值差值(6-4=2)小於3)。由於在先前執行資料重建與更正程序時,第3個位元的位元值被設定為0,因此於於第一次重新執行資料重建與更正程序時,微處理器112可將第3個位元的位元值修改為1。微處理器112可依循此邏輯挑選出位元值可被翻轉位元,並修改其位元值,以重新產生重建的資料組塊。
根據本發明之另一實施例,翻轉邏輯也可以是根據記憶體裝置120的屬性被設定。例如,翻轉邏輯可以是關於各位元是否被儲存於記憶體裝置120中易發生錯誤的儲存位置的邏輯條件。微處理器112可挑選出被儲存於記憶體裝置120中易發生錯誤的儲存位置的一或多個位元,並且修改其中的至少一位元所對應的位元值,以重新產生重建的資料組塊。
根據本發明之另一實施例,替代的資料重建操作也可以被設計為重新讀取資料組塊,並且重建資料組塊。例如,微處理器112可沿用之前設定的讀取電壓返回步驟S304再次對既定資料手動執行前述反覆讀取操作,再根據新取得的讀取結果於步驟S306執行資料重建操作,藉此也有機會達到修改資料組塊中的至少一位元所對應的位元值的結果。
根據本發明之又另一實施例,替代的資料重建操作也可以被設計為調整讀取電壓後重新讀取資料組塊,並且重建資料組塊。例如,微處理器112可透過對應之韌體分析目前記憶體裝置120被編程的電壓,以取得被編程的電壓分布圖,並且根據此電壓分布圖決定出一較佳的讀取電壓。接著,可利用新決定的讀取電壓返回步驟S304再次對既定資料手動執行前述反覆讀取操作,再根據新取得的讀取結果於步驟S306執行資料重建操作,藉此也有機會達到修改資料組塊中的至少一位元所對應的位元值的結果。
於本發明之實施例中,藉由反覆讀取資料與對應之奇偶資訊的操作取得多筆讀取結果,並由其中萃取出正確機率較高的讀取結果重建資料,如此可有助於提高錯誤更正碼引擎140的資料修復成功機率。假設錯誤更正碼引擎140所能更正的錯誤位元數上限為60位元,而於某次讀取中,包含既定資料的資料組塊中發生錯誤的位元數量為70位元,因而導致錯誤更正失敗。於此情況下,藉由應用本發明所提出之資料處理方法,若於資料重建或額外的位元值翻轉的操作中,將其中的10位元所對應的位元值重建為(或翻轉為)正確的數值,則既定資料的解碼結果便可不再是錯誤更正失敗。因此,藉由應用本發明所提出之資料處理方法,可大幅增加將具有錯誤的資料修正回來的機率,進而有效改善記憶體裝置之錯誤更正效能。特別是,對於配置有糾錯能力相對較弱的錯誤更正碼引擎的記憶體裝置,不僅記憶體裝置之錯誤更正效能可大幅改善,並且記憶體裝置的成本也可因而降低。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:記憶體介面
116:緩衝記憶體
118:主機介面
120:記憶體裝置
130:主機裝置
140:錯誤更正碼引擎
400:統計表格
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置的方塊圖範例。
第2圖係顯示根據本發明之一實施例所述之資料處理方法之範例流程圖。
第3圖係顯示根據本發明之一實施例所述之資料處理流程範例。
第4圖係顯示根據本發明之一實施例所述之手動讀取之各位元的位元值統計表格範例。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:記憶體介面
116:緩衝記憶體
118:主機介面
120:記憶體裝置
130:主機裝置
140:錯誤更正碼引擎
Claims (14)
- 一種記憶體控制器,耦接一記憶體裝置,用以控制該記憶體裝置的存取操作,包括: 一錯誤更正碼引擎,用以編碼需被寫入該記憶體裝置的資料,以及解碼讀取自該記憶體裝置的資料; 一緩衝記憶體,用以提供資料緩衝;以及 一微處理器,響應於一既定資料之一第一解碼結果對該記憶體裝置執行一反覆讀取操作,以取得該記憶體裝置中包含該既定資料之一資料組塊的複數讀取結果,其中該資料組塊包括複數位元,並且該等讀取結果被儲存於該緩衝記憶體, 該微處理器更根據該資料組塊的該等讀取結果執行一資料重建與更正程序,其中該資料重建與更正程序包括一資料重建操作與一錯誤更正操作,於該資料重建操作中,該微處理器根據該資料組塊的該等讀取結果決定該資料組塊的該等位元所對應的一位元值,以產生一重建的資料組塊,以及於該錯誤更正操作中,該微處理器將該重建的資料組塊提供給該錯誤更正碼引擎,以取得該既定資料之一第二解碼結果。
- 如申請專利範圍第1項所述之記憶體控制器,其中該既定資料之該第一解碼結果為指示錯誤更正失敗之一結果。
- 如申請專利範圍第1項所述之記憶體控制器,其中該資料組塊的內容包含該既定資料與該既定資料所對應之奇偶資訊。
- 如申請專利範圍第1項所述之記憶體控制器,其中該資料組塊的該等讀取結果為未被該錯誤更正碼引擎解碼過的讀取結果。
- 如申請專利範圍第1項所述之記憶體控制器,其中該錯誤更正碼引擎於執行該反覆讀取操作之期間被禁用。
- 如申請專利範圍第1項所述之記憶體控制器,其中於該資料重建操作中,該微處理器根據各位元所對應的該等讀取結果選擇一多數值作為該位元所對應的該位元值。
- 如申請專利範圍第1項所述之記憶體控制器,其中當該既定資料之該第二解碼結果為指示錯誤更正失敗之一結果時,該微處理器重新執行該資料重建與更正程序,其中於該微處理器重新執行該資料重建與更正程序時,該微處理器根據該資料組塊的該等讀取結果修改該重建的資料組塊的至少一位元所對應的該位元值,以重新產生該重建的資料組塊,並且將該重新產生之重建的資料組塊提供給該錯誤更正碼引擎,以取得該既定資料之一第三解碼結果。
- 一種資料處理方法,由耦接一記憶體裝置之一記憶體控制器所執行,包括: 響應於一既定資料之一第一解碼結果對該記憶體裝置執行一反覆讀取操作,以取得該記憶體裝置中包含該既定資料之一資料組塊的複數讀取結果,其中該資料組塊包括複數位元,並且該等讀取結果被儲存於該記憶體控制器的一緩衝記憶體中;以及 根據該資料組塊的該等讀取結果執行一資料重建與更正程序,以取得該既定資料之一第二解碼結果, 其中根據該資料組塊的該等讀取結果執行該資料重建與更正程序之步驟更包括: 根據該資料組塊的該等讀取結果決定該資料組塊的該等位元所對應的一位元值,以產生一重建的資料組塊;以及 將該重建的資料組塊提供給該記憶體控制器的一錯誤更正碼引擎,以取得該既定資料之該第二解碼結果。
- 如申請專利範圍第8項所述之資料處理方法,其中該既定資料之該第一解碼結果為指示錯誤更正失敗之一結果。
- 如申請專利範圍第8項所述之資料處理方法,其中該資料組塊的內容包含該既定資料與該既定資料所對應之奇偶資訊。
- 如申請專利範圍第8項所述之資料處理方法,其中該資料組塊的該等讀取結果為未被該錯誤更正碼引擎解碼過的讀取結果。
- 如申請專利範圍第8項所述之資料處理方法,更包括: 於執行該反覆讀取操作之期間使該錯誤更正碼引擎被禁用。
- 如申請專利範圍第8項所述之資料處理方法,其中根據該資料組塊的該等讀取結果決定該資料組塊的該等位元所對應的該位元值之步驟更包括: 根據各位元所對應的該等讀取結果選擇一多數值作為該位元所對應的該位元值。
- 如申請專利範圍第8項所述之資料處理方法,其中當該既定資料之該第二解碼結果為指示錯誤更正失敗之一結果時,該資料處理方法更包括: 重新執行該資料重建與更正程序,以取得該既定資料之一第三解碼結果, 其中重新執行該資料重建與更正程序之步驟更包括: 根據該資料組塊的該等讀取結果修改該重建的資料組塊的至少一位元所對應的該位元值,以重新產生該重建的資料組塊;以及 將該重新產生之重建的資料組塊提供給該錯誤更正碼引擎,以取得該既定資料之該第三解碼結果。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110146502A TWI764856B (zh) | 2021-12-13 | 2021-12-13 | 記憶體控制器與資料處理方法 |
CN202210301297.XA CN116263724A (zh) | 2021-12-13 | 2022-03-24 | 存储器控制器与数据处理方法 |
US18/072,725 US20230185667A1 (en) | 2021-12-13 | 2022-12-01 | Memory controller and data processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110146502A TWI764856B (zh) | 2021-12-13 | 2021-12-13 | 記憶體控制器與資料處理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI764856B true TWI764856B (zh) | 2022-05-11 |
TW202324433A TW202324433A (zh) | 2023-06-16 |
Family
ID=82594463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110146502A TWI764856B (zh) | 2021-12-13 | 2021-12-13 | 記憶體控制器與資料處理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230185667A1 (zh) |
CN (1) | CN116263724A (zh) |
TW (1) | TWI764856B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI327320B (en) * | 2005-12-27 | 2010-07-11 | Sandisk Corp | Method of generating parity bit groups,method of managing corrupted data in a non-volatile memory array,method of correcting data, method of storing data in a non-volatile memory array and removable non-volatile memory card |
TW201535382A (zh) * | 2014-03-03 | 2015-09-16 | Hewlett Packard Development Co | 動態隨機存取記憶體(dram)列備用技術 |
US9189334B2 (en) * | 2007-03-29 | 2015-11-17 | Violin Memory, Inc. | Memory management system and method |
US10621036B2 (en) * | 2017-10-19 | 2020-04-14 | SK Hynix Inc. | Memory system and operation method thereof |
US10990477B2 (en) * | 2017-10-18 | 2021-04-27 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Device and method for controlling the data refresh cycles in reprogrammable non-volatile memories |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4942579A (en) * | 1987-06-02 | 1990-07-17 | Cab-Tek, Inc. | High-speed, high-capacity, fault-tolerant error-correcting storage system |
US5623595A (en) * | 1994-09-26 | 1997-04-22 | Oracle Corporation | Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system |
US5592612A (en) * | 1995-04-28 | 1997-01-07 | Birk; Yitzhak | Method and apparatus for supplying data streams |
US6041423A (en) * | 1996-11-08 | 2000-03-21 | Oracle Corporation | Method and apparatus for using undo/redo logging to perform asynchronous updates of parity and data pages in a redundant array data storage environment |
US7900125B1 (en) * | 2004-05-24 | 2011-03-01 | Seagate Technology Llc | Majority detection in error recovery |
US9053748B2 (en) * | 2012-11-14 | 2015-06-09 | International Business Machines Corporation | Reconstructive error recovery procedure (ERP) using reserved buffer |
US8793552B2 (en) * | 2012-11-14 | 2014-07-29 | International Business Machines Corporation | Reconstructive error recovery procedure (ERP) for multiple data sets using reserved buffer |
US20160012916A1 (en) * | 2014-07-10 | 2016-01-14 | Kabushiki Kaisha Toshiba | Semiconductor memory device and memory system |
US9417955B2 (en) * | 2014-08-21 | 2016-08-16 | Datrium, Inc. | Data reconstruction in distributed data storage system with key-based addressing |
US10248487B1 (en) * | 2015-01-27 | 2019-04-02 | Violin Systems Llc | Error recovery for multi-stage simultaneously running tasks |
EP3430515B1 (en) * | 2016-03-15 | 2021-09-22 | Datomia Research Labs Ou | Distributed storage system data management and security |
US9841908B1 (en) * | 2016-06-30 | 2017-12-12 | Western Digital Technologies, Inc. | Declustered array of storage devices with chunk groups and support for multiple erasure schemes |
US9905289B1 (en) * | 2017-04-28 | 2018-02-27 | EMC IP Holding Company LLC | Method and system for systematic read retry flow in solid state memory |
EP3635529B1 (en) * | 2017-06-08 | 2024-02-14 | Hitachi Vantara LLC | Deduplicating distributed erasure coded objects |
EP3918484A4 (en) * | 2019-01-29 | 2023-03-29 | Cloud Storage, Inc. | METHOD FOR REPAIRING ENCODE AND MEMORY NODES FOR MINIMUM MEMORY REGENERATION CODES FOR DISTRIBUTED MEMORY SYSTEMS |
US11662955B2 (en) * | 2021-09-27 | 2023-05-30 | GRAID Technology Inc. | Direct memory access data path for RAID storage |
-
2021
- 2021-12-13 TW TW110146502A patent/TWI764856B/zh active
-
2022
- 2022-03-24 CN CN202210301297.XA patent/CN116263724A/zh active Pending
- 2022-12-01 US US18/072,725 patent/US20230185667A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI327320B (en) * | 2005-12-27 | 2010-07-11 | Sandisk Corp | Method of generating parity bit groups,method of managing corrupted data in a non-volatile memory array,method of correcting data, method of storing data in a non-volatile memory array and removable non-volatile memory card |
US9189334B2 (en) * | 2007-03-29 | 2015-11-17 | Violin Memory, Inc. | Memory management system and method |
TW201535382A (zh) * | 2014-03-03 | 2015-09-16 | Hewlett Packard Development Co | 動態隨機存取記憶體(dram)列備用技術 |
US10990477B2 (en) * | 2017-10-18 | 2021-04-27 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Device and method for controlling the data refresh cycles in reprogrammable non-volatile memories |
US10621036B2 (en) * | 2017-10-19 | 2020-04-14 | SK Hynix Inc. | Memory system and operation method thereof |
Also Published As
Publication number | Publication date |
---|---|
US20230185667A1 (en) | 2023-06-15 |
TW202324433A (zh) | 2023-06-16 |
CN116263724A (zh) | 2023-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8560926B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US8175012B2 (en) | Decoding/encoding method for booting from a NAND flash and system thereof | |
US8650463B2 (en) | Solid state drive and method of controlling an error thereof | |
US20170177259A1 (en) | Techniques to Use Open Bit Line Information for a Memory System | |
US20200350929A1 (en) | Memory system | |
US10691534B2 (en) | Data encoding method, data decoding method and storage controller | |
US11907059B2 (en) | Abnormal power loss recovery method, memory control circuit unit, and memory storage device | |
TWI529530B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN109426582B (zh) | 用于存储装置为错误处置进行数据处理的方法及控制器 | |
CN112051963B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
TWI764856B (zh) | 記憶體控制器與資料處理方法 | |
CN108664350B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
TWI738359B (zh) | 資料儲存裝置與資料處理方法 | |
TWI783522B (zh) | 資料重建方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN106897023B (zh) | 数据读取方法、存储器控制电路单元及存储器储存装置 | |
TW202125259A (zh) | 資料讀取方法、儲存控制器與儲存裝置 | |
CN113220502B (zh) | 存储器管理方法、存储器存储装置及存储器控制器 | |
CN112965670B (zh) | 主机存储器缓冲区管理方法、存储装置与控制电路单元 | |
US20240094912A1 (en) | Method for accessing flash memory module, flash memory controller, and memory device | |
US11437119B2 (en) | Error read flow component | |
US20240094915A1 (en) | Method for accessing flash memory module, flash memory controller, and memory device | |
TWI727327B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
US20230214297A1 (en) | Storage device including mapping memory and method of operating the same | |
CN117992282A (zh) | 异常断电后的编码方法和存储器存储装置 | |
CN115221077A (zh) | 数据重读方法、存储器存储装置及存储器控制电路单元 |