TWI658364B - 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 - Google Patents

存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 Download PDF

Info

Publication number
TWI658364B
TWI658364B TW107109497A TW107109497A TWI658364B TW I658364 B TWI658364 B TW I658364B TW 107109497 A TW107109497 A TW 107109497A TW 107109497 A TW107109497 A TW 107109497A TW I658364 B TWI658364 B TW I658364B
Authority
TW
Taiwan
Prior art keywords
data
check code
metadata
flash memory
adjusted
Prior art date
Application number
TW107109497A
Other languages
English (en)
Other versions
TW201941066A (zh
Inventor
楊宗杰
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW107109497A priority Critical patent/TWI658364B/zh
Priority to CN201810833862.0A priority patent/CN110309013B/zh
Priority to US16/056,555 priority patent/US10884851B2/en
Application granted granted Critical
Publication of TWI658364B publication Critical patent/TWI658364B/zh
Publication of TW201941066A publication Critical patent/TW201941066A/zh
Priority to US17/102,442 priority patent/US11372718B2/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本發明揭露一種存取一快閃記憶體模組的方法,其包含有以下步驟:自一主裝置接收一資料及對應於該資料的一元資料;對該資料進行循環冗餘校驗操作以產生一循環冗餘校驗碼;將該元資料與該循環冗餘校驗碼進行編碼操作以產生一調整後校驗碼;將該資料與該調整後校驗碼一併進行編碼操作以產生一編碼後資料,其中該編碼後資料包含了該資料、該調整後校驗碼以及對應於該資料及該調整後校驗碼的一錯誤更正碼;以及將該編碼後資料以及該元資料寫入至該快閃記憶體模組之一區塊中的一資料頁。

Description

存取快閃記憶體模組的方法及相關的快閃記憶體控制器 與電子裝置
本發明係有關於快閃記憶體,尤指一種存取快閃記憶體模組的方法。
當快閃記憶體控制器將來自一主裝置的資料寫入至快閃記憶體模組中的一資料頁時,會同時地在該資料頁的一備用區域(spare area)中寫入對應於該資料的一元資料(metadata),以供後續參考使用。上述的元資料可以由快閃記憶體控制器所產生,或是由主裝置所提供。然而,當該元資料是由主裝置所提供時,由於該元資料在寫入到該資料頁的過程中可能會暫時地儲存在快閃記憶體控制器的靜態隨機存取記憶體(Static Random Access Memory,SRAM)以及外部的動態隨機存取記憶體(Dynamic Random Access Memory,DRAM),故在這些階段有可能會造成該元資料的資料有錯誤產生,進而使得寫入到該資料頁的內容也是錯誤的,影響到後續資料讀取時的困擾。
因此,本發明的目的之一在於提供一種存取快閃記憶體模組的方 法,其可以將來自主裝置的元資料進行保護,以避免先前技術中所述之因為靜態隨機存取記憶體或是動態隨機存取記憶體存取所造成之元資料錯誤的問題。
在本發明的一個實施例中,揭露一種存取一快閃記憶體模組的方法,其包含有以下步驟:自一主裝置接收一資料及對應於該資料的一元資料;對該資料進行循環冗餘校驗操作以產生一循環冗餘校驗碼;將該元資料與該循環冗餘校驗碼進行編碼操作以產生一調整後校驗碼;將該資料與該調整後校驗碼一併進行編碼操作以產生一編碼後資料,其中該編碼後資料包含了該資料、該調整後校驗碼以及對應於該資料及該調整後校驗碼的一錯誤更正碼;以及將該編碼後資料以及該元資料寫入至該快閃記憶體模組之一區塊中的一資料頁。
在本發明的另一個實施例中,揭露了一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有一唯讀記憶體、一微處理器以及多個編解碼器,其中該唯讀記憶體用來儲存一程式碼,且該微處理器用來執行該程式碼以控制對該快閃記憶體模組之存取。在快閃記憶體控制器的操作中,當該快閃記憶體控制器自一主裝置接收一資料及對應於該資料的一元資料時,該多個編解碼器對該資料進行循環冗餘校驗操作以產生一循環冗餘校驗碼,將該元資料與該循環冗餘校驗碼進行編碼操作以產生一調整後校驗碼,並將該資料與該調整後校驗碼一併進行編碼操作以產生一編碼後資料,其中該編碼後資料包含了該資料、該調整後校驗碼以及對應於該資料及該調整後校驗碼的一錯誤更正碼;以及該微處理器將該編碼後資料以及該元資料寫入至該快閃記憶體模組之一區塊中的一資料頁。
在本發明的另一個實施例中,揭露了一種電子裝置,其包含有一快 閃記憶體模組以及一快閃記憶體控制器。當該快閃記憶體控制器自一主裝置接收一資料及對應於該資料的一元資料時,該快閃記憶體控制器對該資料進行循環冗餘校驗操作以產生一循環冗餘校驗碼,將該元資料與該循環冗餘校驗碼進行編碼操作以產生一調整後校驗碼,並將該資料與該調整後校驗碼一併進行編碼操作以產生一編碼後資料,其中該編碼後資料包含了該資料、該調整後校驗碼以及對應於該資料及該調整後校驗碼的一錯誤更正碼;以及該快閃記憶體控制器將該編碼後資料以及該元資料寫入至該快閃記憶體模組之一區塊中的一資料頁。
100‧‧‧記憶裝置
110‧‧‧快閃記憶體控制器
112‧‧‧微處理器
112C‧‧‧程式碼
112M‧‧‧唯讀記憶體
114‧‧‧控制邏輯
116‧‧‧緩衝記憶體
118‧‧‧介面邏輯
120‧‧‧快閃記憶體模組
130‧‧‧主裝置
132‧‧‧第一編解碼器
134‧‧‧第二編解碼器
136‧‧‧第三編解碼器
200~212、600~614‧‧‧步驟
D1~D8‧‧‧第一資料的多個部分
M1~M4‧‧‧元資料的多個部分
P1~P8、P11~P41‧‧‧循環冗餘校驗碼
P1’~P8’、P11’~P41’‧‧‧調整後校驗碼
ECC1、ECC2‧‧‧錯誤更正碼
第1圖為依據本發明一實施例之一種記憶裝置的示意圖。
第2圖為根據本發明一實施例之存取快閃記憶體模組的方法的流程圖。
第3圖為第一筆資料及對應之元資料的示意圖。
第4圖為根據本發明一實施例之循環冗餘校驗操作以及互斥或運算的示意圖。
第5圖為根據本發明一實施例之錯誤更正碼組塊以及區段組塊的示意圖。
第6圖為根據本發明一實施例之讀取快閃記憶體模組的方法的流程圖。
第7圖為根據本發明另一實施例之循環冗餘校驗操作以及互斥或運算的示意圖。
請參考第1圖,第1圖為依據本發明一實施例之一種記憶裝置100的示意圖。記憶裝置100包含有一快閃記憶體(Flash Memory)模組120以及一快閃記 憶體控制器110,且快閃記憶體控制器110用來存取快閃記憶體模組120。依據本實施例,快閃記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體模組120之存取(Access)。控制邏輯114包含了一第一編解碼器132、一第二編解碼器134及一第三編解碼器136,在本實施例中,第一編解碼器132係用來進行循環冗餘校驗(Cyclic redundancy check,CRC)操作,第二編解碼器134係用來進行互斥或(exclusive-OR,XOR)運算,而第三編解碼器136係用來進行低密度奇偶檢查碼(Low-density parity-check code,LDPC code)操作,但本發明並不以此為限。
於典型狀況下,快閃記憶體模組120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個區塊(Block),而該控制器(例如:透過微處理器112執行程式碼112C之快閃記憶體控制器110)對快閃記憶體模組120進行抹除等運作係以區塊為單位來進行。另外,一區塊可記錄特定數量的資料頁(Page),其中該控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)對快閃記憶體模組120進行寫入資料之運作係以資料頁為單位來進行寫入。在本實施例中,快閃記憶體模組120為一立體NAND型快閃記憶體(3D NAND-type flash)。
實作上,透過微處理器112執行程式碼112C之快閃記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體模組120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主 裝置(Host Device)130溝通。緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,SRAM),但本發明不限於此。
在一實施例中,記憶裝置100可以是可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主裝置130為一可與記憶裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦...等等。而在另一實施例中,記憶裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置,以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主裝置130可以是該電子裝置的一處理器。
第2圖為根據本發明一實施例之存取快閃記憶體模組120的方法的流程圖。在步驟200,流程開始,且快閃記憶體控制器110準備自主裝置130接收資料並儲存至快閃記憶體模組120中。在步驟202中,快閃記憶體控制器110自主裝置130接收第一筆資料及對應於第一筆資料的元資料,其中該元資料可以包含第一筆資料的識別資訊(ID)、雜湊資料(hash data)、服務品質(Quality of Service,QoS)資訊、或是其他的管理資訊,例如邏輯位址(logical address)與資料本身以外的管理資訊...等等。在本實施例中,參考第3圖,第一筆資料的大小為4千位元組(KB),而元資料為8位元組,而在本實施例之以下的操作中,第一筆資料被分為大小為512位元組的八個部分D1~D8,而元資料則被分為大小為2位元組的四個部分M1~M4。
在步驟204中,第一編解碼器132對第一筆資料進行循環冗餘校驗操作以產生一循環冗餘校驗碼,且在步驟206中第二編解碼器134將元資料與該循 環冗餘校驗碼進行編碼操作以產生一調整後校驗碼。具體來說,參考第4圖,第一編解碼器132先對第一筆資料的八個部分D1~D8分別進行循環冗餘校驗操作,以產生多個循環冗餘校驗碼P1~P8,其中每一個循環冗餘校驗碼P1~P8的大小為2位元組;之後,第二編解碼器134再將循環冗餘校驗碼P1~P4分別與元資料的四個部分M1~M4進行互斥或運算,以分別產生調整後校驗碼P1’~P4’;以及第二編解碼器134也將循環冗餘校驗碼P5~P8分別與元資料的四個部分M1~M4進行互斥或運算,以分別產生調整後校驗碼P5’~P8’。
需注意的是步驟204及步驟206係在快閃記憶體控制器110接收到第一筆資料以及元資料後便立刻進行,而此時第一筆資料及元資料尚未被儲存至緩衝記憶體116及/或外部的動態隨機存取記憶體(未繪示)中。步驟204中對第一筆資料進行循環冗餘校驗操作的目的是為了避免後續在緩衝記憶體116及/或外部的動態隨機存取記憶體的存取過程中發生錯誤(亦即,提供點對點保護(end to end protection)),而步驟206中將循環冗餘校驗碼P1~P4與元資料的四個部分M1~M4進行互斥或運算的目的則是為了讓調整後校驗碼P1’~P4’也能夠包含元資料的資訊內容,亦即調整後校驗碼P1’~P4’除了可以對第一筆資料提供保護之外,也可以同時地對元資料提供保護。
在步驟208中,第三編解碼器136將第一筆資料與調整後校驗碼一併進行編碼操作以產生一編碼後資料,其中編碼後資料包含了第一筆資料、調整後校驗碼以及對應於第一筆資料及調整後校驗碼的一錯誤更正碼。具體來說,參考第5圖,第三編解碼器136將第一筆資料的四個部分D1~D4以及對應的調整後校驗碼P1’~P4’一併進行編碼(LDPC編碼),以產生一錯誤更正碼ECC1,而第一筆資料的四個部分D1~D4、調整後校驗碼P1’~P4’以及錯誤更正碼ECC1則構成 了一個錯誤更正碼組塊(ECC chunk);且第三編解碼器136也將第一筆資料的另外四個部分D5~D8以及對應的調整後校驗碼P5’~P8’一併進行編碼,以產生一錯誤更正碼ECC2,而第一筆資料的四個部分D5~D8、調整後校驗碼P5’~P8’以及錯誤更正碼ECC2則構成了另一個錯誤更正碼組塊。
在步驟210中,第5圖所示的兩個錯誤更正碼組塊構成了一個區段組塊,並暫存至緩衝記憶體116及/或外部的動態隨機存取記憶體中,其中上述的區段組塊係用來儲存至一資料頁的一個區段中。
在步驟212中,假設一個資料頁的大小為16千位元組,則快閃記憶體控制器110重複步驟202~210以自主裝置130接收第二、三、四筆資料及對應之元資料並產生對應的區段組塊之後,再將四個區段組塊連同32位元組的元資料寫入至快閃記憶體模組120中一區塊的一個資料頁中,其中元資料係儲存在該資料頁的一備用區域(spare area)中。
第6圖為根據本發明一實施例之讀取快閃記憶體模組120的方法的流程圖,其中第6圖的流程係接續著第2~5圖所示的實施例,亦即快閃記憶體控制器110讀取儲存有四個區段組塊SC1~SC4以及32位元組之元資料的資料頁。在步驟600,流程開始。在步驟602中,快閃記憶體控制器110接收到來自主裝置130的一讀取命令,而在本實施例中係假設該讀取命令係要求讀取區段組塊SC1的資料以及對應的元資料。
在步驟604中,第三編解碼器136區段組塊SC1中的第一個錯誤更正碼組塊與第二個錯誤更正碼組塊進行解碼,以產生如第5圖所示之第一筆資料的四 個部分D1~D4與調整後校驗碼P1’~P4’、以及第一筆資料的另四個部分D5~D8與調整後校驗碼P5’~P8’。
在步驟606中,第一編解碼器132對解碼所產生的第一筆資料的四個部分D1~D4分別進行循環冗餘校驗操作以產生另一循環冗餘校驗碼,且在步驟608中,第二編解碼器134對該另一循環冗餘校驗碼與自該資料頁中所讀取的元資料進行編碼以產生另一調整後校驗碼。具體來說,參考第7圖,第一編解碼器132先對所解碼出之第一筆資料的四個部分D1~D4分別進行循環冗餘校驗操作,以產生多個循環冗餘校驗碼P11~P41,其中每一個循環冗餘校驗碼P11~P41的大小為2位元組;之後,第二編解碼器134再將循環冗餘校驗碼P11~P41分別與自資料頁中所讀取之元資料的四個部分M1~M4進行互斥或運算,以分別產生調整後校驗碼P11’~P41’。
在步驟610中,微處理器112判斷調整後校驗碼P11’~P41’是否分別與調整後校驗碼P1’~P4’完全相同,若是,流程進入步驟612;若否,則流程進入步驟614。
在步驟612中,由於整後校驗碼P11’~P41’分別與調整後校驗碼P1’~P4’完全相同,因此可以確保第一筆資料的四個部分D1~D4以及元資料的內容均是正確的,則後續微處理器112可以將第一筆資料的四個部分D1~D4及對應的元資料傳送至主裝置130。此外,在一實施例中,由於元資料的內容已經被確認正確了,故第一筆資料的另外四個部分D5~D8可以直接一起被傳送給主裝置130,而不需要再次進行步驟606~610的操作。
在步驟614中,由於整後校驗碼P11’~P41’分別與調整後校驗碼P1’~P4’不完全相同,則由於可能是第一筆資料的內容有錯誤或是元資料的內容有誤,故微處理器112回傳一錯誤訊息至主裝置130。
簡要歸納本發明,在本發明的實施例中,在快閃記憶體控制器自主裝置接收到一資料及對應的元資料時,會先對該資料進行循環冗餘校驗操作以產生一循環冗餘校驗碼,並再將元資料與循環冗餘校驗碼一併進行編碼以產生具有相同位元數的調整後校驗碼,以使得調整後校驗碼除了可以對該資料進行點對點保護之外,也可以對元資料進行點對點保護。透過本發明的實施例,可以不需要再額外對元資料進行循環冗餘校驗操作,且也不會額外增加資料量,以盡可能地節省快閃記憶體的空間。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。

Claims (20)

  1. 一種存取一快閃記憶體模組的方法,包含有:自一主裝置接收一資料及對應於該資料的一元資料(metadata);對該資料進行循環冗餘校驗(Cyclic redundancy check,CRC)操作以產生一循環冗餘校驗碼;將該元資料與該循環冗餘校驗碼進行一第一編碼操作以產生一調整後校驗碼;將該資料與該調整後校驗碼一併進行一第二編碼操作以產生一編碼後資料,其中該編碼後資料包含了該資料、該調整後校驗碼以及對應於該資料及該調整後校驗碼的一錯誤更正碼;以及將該編碼後資料以及該元資料寫入至該快閃記憶體模組之一區塊中的一資料頁。
  2. 如申請專利範圍第1項所述之方法,其中將該元資料與該校驗碼進行該第一編碼操作以產生該調整後校驗碼的步驟包含有:將該元資料與該校驗碼進行互斥或(XOR)運算以產生該調整後校驗碼。
  3. 如申請專利範圍第1項所述之方法,其中該資料包含了多個部分,且對該資料進行循環冗餘校驗操作以產生該循環冗餘校驗碼以及將該元資料與該校驗碼進行該第一編碼操作以產生該調整後校驗碼的步驟包含有:分別對該資料的該多個部分進行循環冗餘校驗操作以產生該循環冗餘校驗碼的多個部分;將該元資料劃分為多個部分;以及分別將該元資料的該多個部分與該循環冗餘校驗碼的該多個部分進行該第一編碼操作以分別產生該調整後校驗碼的多個部分。
  4. 如申請專利範圍第3項所述之方法,其中該元資料的每一個部分的位元數與該循環冗餘校驗碼的每一個部分的位元數相同,且分別將該元資料的該多個部分與該循環冗餘校驗碼的該多個部分進行該第一編碼操作以產生該調整後校驗碼的該多個部分的步驟包含有:將該元資料的該多個部分與該循環冗餘校驗碼的該多個部分進行互斥或運算以產生該調整後校驗碼的該多個部分。
  5. 如申請專利範圍第1項所述之方法,另包含有:因應該主裝置的一讀取請求以自該資料頁中讀取該編碼後資料以及該元資料;對該編碼後資料進行解碼以產生該資料以及該調整後校驗碼;將該資料進行循環冗餘校驗操作以產生另一循環冗餘校驗碼;將該另一循環冗餘校驗碼與自該資料頁中所讀取的該元資料進行編碼以產生另一調整後校驗碼;以及比對該調整後校驗碼以及該另一調整後校驗碼,以判斷儲存在該資料頁中的該元資料是否有錯誤。
  6. 如申請專利範圍第5項所述之方法,另包含有:當該調整後校驗碼與該另一調整後校驗碼的內容不完全相同時,判斷儲存在該資料頁中的該元資料有錯誤,並回傳一錯誤訊息至該主裝置;以及當該調整後校驗碼與該另一調整後校驗碼的內容完全相同時,判斷儲存在該資料頁中的該元資料正確,並將該資料以及該元資料回傳至該主裝置。
  7. 如申請專利範圍第1項所述之方法,其中該元資料包含該資料的識別資訊、雜湊資料或是服務品質(Quality of Service,QoS)資訊。
  8. 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有:一唯讀記憶體,用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;以及多個編解碼器;其中當該快閃記憶體控制器自一主裝置接收一資料及對應於該資料的一元資料(metadata)時,該多個編解碼器對該資料進行循環冗餘校驗(Cyclic redundancy check,CRC)操作以產生一循環冗餘校驗碼,將該元資料與該循環冗餘校驗碼進行一第一編碼操作以產生一調整後校驗碼,並將該資料與該調整後校驗碼一併進行一第二編碼操作以產生一編碼後資料,其中該編碼後資料包含了該資料、該調整後校驗碼以及對應於該資料及該調整後校驗碼的一錯誤更正碼;以及該微處理器將該編碼後資料以及該元資料寫入至該快閃記憶體模組之一區塊中的一資料頁。
  9. 如申請專利範圍第8項所述之快閃記憶體控制器,其中該多個編解碼器將該元資料與該校驗碼進行互斥或(XOR)運算以產生該調整後校驗碼。
  10. 如申請專利範圍第8項所述之快閃記憶體控制器,其中該資料包含了多個部分,且該多個編解碼器分別對該資料的該多個部分進行循環冗餘校驗操作以產生該循環冗餘校驗碼的多個部分,並將該元資料劃分為多個部分,以分別將該元資料的該多個部分與該循環冗餘校驗碼的該多個部分進行該第一編碼操作以分別產生該調整後校驗碼的多個部分。
  11. 如申請專利範圍第10項所述之快閃記憶體控制器,其中該元資料的每一個部分的位元數與該循環冗餘校驗碼的每一個部分的位元數相同,且該多個編解碼器分別將該元資料的該多個部分與該循環冗餘校驗碼的該多個部分進行互斥或運算以產生該調整後校驗碼的該多個部分。
  12. 如申請專利範圍第8項所述之快閃記憶體控制器,其中該微處理器因應該主裝置的一讀取請求以自該資料頁中讀取該編碼後資料以及該元資料;以及該多個編解碼器對該編碼後資料進行解碼以產生該資料以及該調整後校驗碼,將該資料進行循環冗餘校驗操作以產生另一循環冗餘校驗碼,再將該另一循環冗餘校驗碼與自該資料頁中所讀取的該元資料進行編碼以產生另一調整後校驗碼;以及該微處理器比對該調整後校驗碼以及該另一調整後校驗碼,以判斷儲存在該資料頁中的該元資料是否有錯誤。
  13. 如申請專利範圍第12項所述之快閃記憶體控制器,其中當該調整後校驗碼與該另一調整後校驗碼的內容不完全相同時,該微處理器判斷儲存在該資料頁中的該元資料有錯誤,並回傳一錯誤訊息至該主裝置;以及當該調整後校驗碼與該另一調整後校驗碼的內容完全相同時,該微處理器判斷儲存在該資料頁中的該元資料正確,並將該資料以及該元資料回傳至該主裝置。
  14. 如申請專利範圍第8項所述之快閃記憶體控制器,其中該元資料包含該資料的識別資訊、雜湊資料或是服務品質(Quality of Service,QoS)資訊。
  15. 一種電子裝置,包含有:一快閃記憶體模組;以及一快閃記憶體控制器,用來存取該快閃記憶體模組;其中當該快閃記憶體控制器自一主裝置接收一資料及對應於該資料的一元資料(metadata)時,該快閃記憶體控制器對該資料進行循環冗餘校驗(Cyclic redundancy check,CRC)操作以產生一循環冗餘校驗碼,將該元資料與該循環冗餘校驗碼進行一第一編碼操作以產生一調整後校驗碼,並將該資料與該調整後校驗碼一併進行一第二編碼操作以產生一編碼後資料,其中該編碼後資料包含了該資料、該調整後校驗碼以及對應於該資料及該調整後校驗碼的一錯誤更正碼;以及該快閃記憶體控制器將該編碼後資料以及該元資料寫入至該快閃記憶體模組之一區塊中的一資料頁。
  16. 如申請專利範圍第15項所述之電子裝置,該快閃記憶體控制器將該元資料與該校驗碼進行互斥或(XOR)運算以產生該調整後校驗碼。
  17. 如申請專利範圍第15項所述之電子裝置,其中該資料包含了多個部分,且該快閃記憶體控制器分別對該資料的該多個部分進行循環冗餘校驗操作以產生該循環冗餘校驗碼的多個部分,並將該元資料劃分為多個部分,以分別將該元資料的該多個部分與該循環冗餘校驗碼的該多個部分進行該第一編碼操作以分別產生該調整後校驗碼的多個部分。
  18. 如申請專利範圍第17項所述之電子裝置,其中該元資料的每一個部分的位元數與該循環冗餘校驗碼的每一個部分的位元數相同,且該快閃記憶體控制器分別將該元資料的該多個部分與該循環冗餘校驗碼的該多個部分進行互斥或運算以產生該調整後校驗碼的該多個部分。
  19. 如申請專利範圍第15項所述之電子裝置,其中該快閃記憶體控制器因應該主裝置的一讀取請求以自該資料頁中讀取該編碼後資料以及該元資料;以及該快閃記憶體控制器對該編碼後資料進行解碼以產生該資料以及該調整後校驗碼,將該資料進行循環冗餘校驗操作以產生另一循環冗餘校驗碼,再將該另一循環冗餘校驗碼與自該資料頁中所讀取的該元資料進行編碼以產生另一調整後校驗碼;以及該快閃記憶體控制器比對該調整後校驗碼以及該另一調整後校驗碼,以判斷儲存在該資料頁中的該元資料是否有錯誤。
  20. 如申請專利範圍第19項所述之電子裝置,其中當該調整後校驗碼與該另一調整後校驗碼的內容不完全相同時,該快閃記憶體控制器判斷儲存在該資料頁中的該元資料有錯誤,並回傳一錯誤訊息至該主裝置;以及當該調整後校驗碼與該另一調整後校驗碼的內容完全相同時,該快閃記憶體控制器判斷儲存在該資料頁中的該元資料正確,並將該資料以及該元資料回傳至該主裝置。
TW107109497A 2018-03-20 2018-03-20 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 TWI658364B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
TW107109497A TWI658364B (zh) 2018-03-20 2018-03-20 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN201810833862.0A CN110309013B (zh) 2018-03-20 2018-07-26 存取闪存模块的方法及相关的闪存控制器与电子装置
US16/056,555 US10884851B2 (en) 2018-03-20 2018-08-07 Method for accessing flash memory module and associated flash memory controller and electronic device
US17/102,442 US11372718B2 (en) 2018-03-20 2020-11-24 Method for accessing flash memory module and associated flash memory controller and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107109497A TWI658364B (zh) 2018-03-20 2018-03-20 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置

Publications (2)

Publication Number Publication Date
TWI658364B true TWI658364B (zh) 2019-05-01
TW201941066A TW201941066A (zh) 2019-10-16

Family

ID=67347925

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107109497A TWI658364B (zh) 2018-03-20 2018-03-20 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置

Country Status (3)

Country Link
US (2) US10884851B2 (zh)
CN (1) CN110309013B (zh)
TW (1) TWI658364B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI730661B (zh) * 2019-05-30 2021-06-11 慧榮科技股份有限公司 用來藉助於資訊排列進行記憶裝置的存取管理的方法、記憶裝置及其控制器、以及電子裝置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10802910B2 (en) * 2018-09-17 2020-10-13 Intel Corporation System for identifying and correcting data errors
US10761928B2 (en) * 2019-03-28 2020-09-01 Intel Corporation Combined secure mac and device correction using encrypted parity with multi-key domains
CN110928890B (zh) * 2019-11-08 2023-01-24 广州华多网络科技有限公司 数据存储方法、装置、电子设备及计算机可读存储介质
KR20220066601A (ko) * 2020-11-16 2022-05-24 삼성전자주식회사 스토리지 장치, 상기 스토리지 장치를 포함하는 전자 시스템 및 상기 스토리지 장치의 동작 방법
JP7161583B1 (ja) * 2021-06-29 2022-10-26 ウィンボンド エレクトロニクス コーポレーション 半導体装置
US11768734B2 (en) * 2021-08-17 2023-09-26 Micron Technology, Inc. Post error correction code registers for cache metadata

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4712215A (en) * 1985-12-02 1987-12-08 Advanced Micro Devices, Inc. CRC calculation machine for separate calculation of checkbits for the header packet and data packet
CN1266316A (zh) * 1999-03-06 2000-09-13 德国汤姆森-布兰特有限公司 使用在集成电路中的存储器的总线接口及方法
US7055085B2 (en) * 2002-03-07 2006-05-30 Broadcom Corporation System and method for protecting header information using dedicated CRC
US20090271532A1 (en) * 2008-04-24 2009-10-29 Allison Brian D Early header CRC in data response packets with variable gap count

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553511B1 (en) * 2000-05-17 2003-04-22 Lsi Logic Corporation Mass storage data integrity-assuring technique utilizing sequence and revision number metadata
US7315976B2 (en) * 2002-01-31 2008-01-01 Lsi Logic Corporation Method for using CRC as metadata to protect against drive anomaly errors in a storage array
US7855959B2 (en) * 2008-04-28 2010-12-21 Newport Media, Inc. Fast common overhead services acquisition for MediaFLO
US8713404B2 (en) * 2011-07-01 2014-04-29 Apple Inc. Controller interface providing improved data reliability
TWI594254B (zh) * 2012-07-17 2017-08-01 慧榮科技股份有限公司 讀取快閃記憶體中區塊之資料的方法及相關的記憶裝置
US9037943B2 (en) * 2012-10-26 2015-05-19 Intel Corporation Identification of non-volatile memory die for use in remedial action
US9043672B2 (en) * 2013-02-27 2015-05-26 Kabushiki Kaisha Toshiba Memory controller, storage device, and memory control method
US9384128B2 (en) * 2014-04-18 2016-07-05 SanDisk Technologies, Inc. Multi-level redundancy code for non-volatile memory controller
US9563382B2 (en) * 2014-06-05 2017-02-07 Sandisk Technologies Llc Methods, systems, and computer readable media for providing flexible host memory buffer
US10353775B1 (en) * 2014-08-06 2019-07-16 SK Hynix Inc. Accelerated data copyback
US10044374B2 (en) * 2015-07-30 2018-08-07 Quantum Corporation Adaptive erasure codes
US10248345B1 (en) * 2016-02-26 2019-04-02 Veritas Technologies Llc Persisting data as information
US9910772B2 (en) * 2016-04-27 2018-03-06 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
CN107391296B (zh) * 2016-04-27 2020-11-06 慧荣科技股份有限公司 存取闪存模块的方法及相关的闪存控制器与记忆装置
US10069597B2 (en) * 2016-09-07 2018-09-04 Western Digital Technologies, Inc. Aggregated metadata transfer at a data storage device
CN107918571B (zh) * 2016-10-08 2021-04-30 上海宝存信息科技有限公司 测试储存单元的方法以及使用该方法的装置
KR20180088180A (ko) * 2017-01-26 2018-08-03 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4712215A (en) * 1985-12-02 1987-12-08 Advanced Micro Devices, Inc. CRC calculation machine for separate calculation of checkbits for the header packet and data packet
CN1266316A (zh) * 1999-03-06 2000-09-13 德国汤姆森-布兰特有限公司 使用在集成电路中的存储器的总线接口及方法
US7055085B2 (en) * 2002-03-07 2006-05-30 Broadcom Corporation System and method for protecting header information using dedicated CRC
US20090271532A1 (en) * 2008-04-24 2009-10-29 Allison Brian D Early header CRC in data response packets with variable gap count

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI730661B (zh) * 2019-05-30 2021-06-11 慧榮科技股份有限公司 用來藉助於資訊排列進行記憶裝置的存取管理的方法、記憶裝置及其控制器、以及電子裝置
TWI760215B (zh) * 2019-05-30 2022-04-01 慧榮科技股份有限公司 用來藉助於資訊排列進行記憶裝置的存取管理的方法、記憶裝置及其控制器、以及電子裝置
US11354231B2 (en) 2019-05-30 2022-06-07 Silicon Motion, Inc. Method for performing access management of memory device with aid of information arrangement, associated memory device and controller thereof, associated electronic device

Also Published As

Publication number Publication date
TW201941066A (zh) 2019-10-16
CN110309013B (zh) 2022-10-21
US10884851B2 (en) 2021-01-05
US20210081277A1 (en) 2021-03-18
US20190294499A1 (en) 2019-09-26
US11372718B2 (en) 2022-06-28
CN110309013A (zh) 2019-10-08

Similar Documents

Publication Publication Date Title
TWI658364B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
US9817749B2 (en) Apparatus and method of offloading processing from a data storage device to a host device
US8726140B2 (en) Dummy data padding and error code correcting memory controller, data processing method thereof, and memory system including the same
US10691534B2 (en) Data encoding method, data decoding method and storage controller
TWI658463B (zh) 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
TWI640865B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
TW201721435A (zh) 資料讀取方法、記憶體控制電路單元及記憶體儲存裝置
TW202019100A (zh) 快閃記憶體控制器及其中的編碼電路與解碼電路
TWI467590B (zh) 資料處理方法、記憶體控制器及記憶體儲存裝置
TWI668699B (zh) 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置
TW201919048A (zh) 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置
TWI661353B (zh) 用來於一記憶裝置中為錯誤處置進行資料處理之方法、記憶裝置及其控制器以及電子裝置
TW202029202A (zh) 解碼方法、記憶體控制電路單元與記憶體儲存裝置
TWI575533B (zh) 資料校正方法、記憶體控制電路單元與記憶體儲存裝置
CN108664350B (zh) 数据保护方法、存储器存储装置及存储器控制电路单元
US10546640B2 (en) Data protecting method and memory storage device
CN112051963A (zh) 数据写入方法、存储器控制电路单元以及存储器存储装置
TWI698750B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN106897023B (zh) 数据读取方法、存储器控制电路单元及存储器储存装置
TW201638957A (zh) 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
CN111143253A (zh) 数据储存方法、存储器控制电路单元以及存储器储存装置
TWI634557B (zh) 資料編碼方法、記憶體控制電路單元與記憶體儲存裝置
TWI782341B (zh) 快閃記憶體控制器及其中的編碼電路
TWI657454B (zh) 資料編碼方法、記憶體控制電路單元與記憶體儲存裝置