CN110309013A - 存取闪存模块的方法及相关的闪存控制器与电子装置 - Google Patents

存取闪存模块的方法及相关的闪存控制器与电子装置 Download PDF

Info

Publication number
CN110309013A
CN110309013A CN201810833862.0A CN201810833862A CN110309013A CN 110309013 A CN110309013 A CN 110309013A CN 201810833862 A CN201810833862 A CN 201810833862A CN 110309013 A CN110309013 A CN 110309013A
Authority
CN
China
Prior art keywords
check code
data
metadata
adjustment
cyclic redundancy
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201810833862.0A
Other languages
English (en)
Other versions
CN110309013B (zh
Inventor
杨宗杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN110309013A publication Critical patent/CN110309013A/zh
Application granted granted Critical
Publication of CN110309013B publication Critical patent/CN110309013B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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),故在这些阶段有可能会造成该元数据的数据有错误产生,进而使得写入到该数据页的内容也是错误的,影响到后续数据读取时的困扰。
发明内容
因此,本发明的目的之一在于提供一种存取闪存模块的方法,其可以将来自主装置的元数据进行保护,以避免先前技术中所述的因为静态随机存取内存或是动态随机存取内存存取所造成的元数据错误的问题。
在本发明的一个实施例中,揭露一种存取闪存模块的方法,其包括以下步骤:自主装置接收数据及对应于该数据的元数据;对该数据进行循环冗余校验操作以产生循环冗余校验码;将该元数据与该循环冗余校验码进行编码操作以产生调整后校验码;将该数据与该调整后校验码一并进行编码操作以产生编码后数据,其中该编码后数据报括了该数据、该调整后校验码以及对应于该数据及该调整后校验码的错误更正码;以及将该编码后数据以及该元数据写入至该闪存模块的区块中的数据页。
在本发明的另一个实施例中,揭露了一种闪存控制器,其中该闪存控制器是用来存取闪存模块,且该闪存控制器包括只读存储器、微处理器以及多个编译码器,其中该只读存储器用来存储程序代码,且该微处理器用来执行该程序代码以控制对该闪存模块的存取。在闪存控制器的操作中,当该闪存控制器自主装置接收数据及对应于该数据的元数据时,该多个编译码器对该数据进行循环冗余校验操作以产生循环冗余校验码,将该元数据与该循环冗余校验码进行编码操作以产生调整后校验码,并将该数据与该调整后校验码一并进行编码操作以产生编码后数据,其中该编码后数据报括了该数据、该调整后校验码以及对应于该数据及该调整后校验码的错误更正码;以及该微处理器将该编码后数据以及该元数据写入至该闪存模块的区块中的数据页。
在本发明的另一个实施例中,揭露了一种电子装置,其包括闪存模块以及闪存控制器。当该闪存控制器自主装置接收数据及对应于该数据的元数据时,该闪存控制器对该数据进行循环冗余校验操作以产生循环冗余校验码,将该元数据与该循环冗余校验码进行编码操作以产生调整后校验码,并将该数据与该调整后校验码一并进行编码操作以产生编码后数据,其中该编码后数据报括了该数据、该调整后校验码以及对应于该数据及该调整后校验码的错误更正码;以及该闪存控制器将该编码后数据以及该元数据写入至该闪存模块的区块中的数据页。
附图说明
图1为依据本发明实施例的一种记忆装置的示意图。
图2为根据本发明实施例的存取闪存模块的方法的流程图。
图3为第一笔数据及对应的元数据的示意图。
图4为根据本发明实施例的循环冗余校验操作以及互斥或运算的示意图。
图5为根据本发明实施例的错误更正码组块以及区段组块的示意图。
图6为根据本发明实施例的读取闪存模块的方法的流程图。
图7为根据本发明另一实施例的循环冗余校验操作以及互斥或运算的示意图。
其中,附图标记说明如下:
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,图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 ofService,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.一种存取闪存模块的方法,包括:
自主装置接收数据及对应于该数据的元数据;
对该数据进行循环冗余校验操作以产生循环冗余校验码;
将该元数据与该循环冗余校验码进行编码操作以产生调整后校验码;
将该数据与该调整后校验码一并进行编码操作以产生编码后数据,其中该编码后数据报括了该数据、该调整后校验码以及对应于该数据及该调整后校验码的错误更正码;以及
将该编码后数据以及该元数据写入至该闪存模块的区块中的数据页。
2.如权利要求1所述的方法,其特征在于,将该元数据与该校验码进行编码操作以产生该调整后校验码的步骤包括:
将该元数据与该校验码进行互斥或运算以产生该调整后校验码。
3.如权利要求1所述的方法,其特征在于,该数据报括了多个部分,且对该数据进行循环冗余校验操作以产生该循环冗余校验码以及将该元数据与该校验码进行编码操作以产生该调整后校验码的步骤包括:
分别对该数据的该多个部分进行循环冗余校验操作以产生该循环冗余校验码的多个部分;
将该元数据划分为多个部分;以及
分别将该元数据的该多个部分与该循环冗余校验码的该多个部分进行编码操作以分别产生该调整后校验码的多个部分。
4.如权利要求3所述的方法,其特征在于,该元数据的每一个部分的位数与该循环冗余校验码的每一个部分的位数相同,且分别将该元数据的该多个部分与该循环冗余校验码的该多个部分进行编码操作以产生该调整后校验码的该多个部分的步骤包括:
将该元数据的该多个部分与该循环冗余校验码的该多个部分进行互斥或运算以产生该调整后校验码的该多个部分。
5.如权利要求1所述的方法,另包括:
因应该主装置的一读取请求以自该数据页中读取该编码后数据以及该元数据;
对该编码后数据进行译码以产生该数据以及该调整后校验码;
将该数据进行循环冗余校验操作以产生另循环冗余校验码;
将该另循环冗余校验码与自该数据页中所读取的该元数据进行编码以产生另调整后校验码;以及
比对该调整后校验码以及该另调整后校验码,以判断存储在该数据页中的该元数据是否有错误。
6.如权利要求5所述的方法,另包括:
当该调整后校验码与该另调整后校验码的内容不完全相同时,判断存储在该数据页中的该元数据有错误,并回传错误讯息至该主装置;以及
当该调整后校验码与该另调整后校验码的内容完全相同时,判断存储在该数据页中的该元数据正确,并将该数据以及该元数据回传至该主装置。
7.如权利要求1所述的方法,其特征在于,该元数据报括该数据的识别信息、哈希数据或是服务质量信息。
8.一种闪存控制器,其中该闪存控制器是用来存取闪存模块,且该闪存控制器包括:
只读存储器,用来存储程序代码;
微处理器,用来执行该程序代码以控制对该闪存模块的存取;以及多个编译码器;
其中当该闪存控制器自主装置接收数据及对应于该数据的元数据时,该多个编译码器对该数据进行循环冗余校验操作以产生循环冗余校验码,将该元数据与该循环冗余校验码进行编码操作以产生调整后校验码,并将该数据与该调整后校验码一并进行编码操作以产生编码后数据,其中该编码后数据报括了该数据、该调整后校验码以及对应于该数据及该调整后校验码的错误更正码;以及该微处理器将该编码后数据以及该元数据写入至该闪存模块的区块中的数据页。
9.如权利要求8所述的闪存控制器,其特征在于,该多个编译码器将该元数据与该校验码进行互斥或运算以产生该调整后校验码。
10.如权利要求8所述的闪存控制器,其特征在于,该数据报括了多个部分,且该多个编译码器分别对该数据的该多个部分进行循环冗余校验操作以产生该循环冗余校验码的多个部分,并将该元数据划分为多个部分,以分别将该元数据的该多个部分与该循环冗余校验码的该多个部分进行编码操作以分别产生该调整后校验码的多个部分。
11.如权利要求10所述的闪存控制器,其特征在于,该元数据的每一个部分的位数与该循环冗余校验码的每一个部分的位数相同,且该多个编译码器分别将该元数据的该多个部分与该循环冗余校验码的该多个部分进行互斥或运算以产生该调整后校验码的该多个部分。
12.如权利要求8所述的闪存控制器,其特征在于,该微处理器因应该主装置的一读取请求以自该数据页中读取该编码后数据以及该元数据;以及该多个编译码器对该编码后数据进行译码以产生该数据以及该调整后校验码,将该数据进行循环冗余校验操作以产生另循环冗余校验码,再将该另循环冗余校验码与自该数据页中所读取的该元数据进行编码以产生另调整后校验码;以及该微处理器比对该调整后校验码以及该另调整后校验码,以判断存储在该数据页中的该元数据是否有错误。
13.如权利要求12所述的闪存控制器,其特征在于,当该调整后校验码与该另调整后校验码的内容不完全相同时,该微处理器判断存储在该数据页中的该元数据有错误,并回传错误讯息至该主装置;以及当该调整后校验码与该另调整后校验码的内容完全相同时,该微处理器判断存储在该数据页中的该元数据正确,并将该数据以及该元数据回传至该主装置。
14.如权利要求8所述的闪存控制器,其特征在于,该元数据报括该数据的识别信息、哈希数据或是服务质量信息。
15.一种电子装置,包括:
闪存模块;以及
闪存控制器,用来存取该闪存模块;
其中当该闪存控制器自主装置接收数据及对应于该数据的元数据时,该闪存控制器对该数据进行循环冗余校验操作以产生循环冗余校验码,将该元数据与该循环冗余校验码进行编码操作以产生调整后校验码,并将该数据与该调整后校验码一并进行编码操作以产生编码后数据,其中该编码后数据报括了该数据、该调整后校验码以及对应于该数据及该调整后校验码的错误更正码;以及该闪存控制器将该编码后数据以及该元数据写入至该闪存模块的区块中的数据页。
16.如权利要求15所述的电子装置,该闪存控制器将该元数据与该校验码进行互斥或运算以产生该调整后校验码。
17.如权利要求15所述的电子装置,其中该数据报括了多个部分,且该闪存控制器分别对该数据的该多个部分进行循环冗余校验操作以产生该循环冗余校验码的多个部分,并将该元数据划分为多个部分,以分别将该元数据的该多个部分与该循环冗余校验码的该多个部分进行编码操作以分别产生该调整后校验码的多个部分。
18.如权利要求17所述的电子装置,其中该元数据的每一个部分的位数与该循环冗余校验码的每一个部分的位数相同,且该闪存控制器分别将该元数据的该多个部分与该循环冗余校验码的该多个部分进行互斥或运算以产生该调整后校验码的该多个部分。
19.如权利要求15所述的电子装置,其中该闪存控制器因应该主装置的一读取请求以自该数据页中读取该编码后数据以及该元数据;以及该闪存控制器对该编码后数据进行译码以产生该数据以及该调整后校验码,将该数据进行循环冗余校验操作以产生另循环冗余校验码,再将该另循环冗余校验码与自该数据页中所读取的该元数据进行编码以产生另调整后校验码;以及该闪存控制器比对该调整后校验码以及该另调整后校验码,以判断存储在该数据页中的该元数据是否有错误。
20.如权利要求19所述的电子装置,其中当该调整后校验码与该另调整后校验码的内容不完全相同时,该闪存控制器判断存储在该数据页中的该元数据有错误,并回传错误讯息至该主装置;以及当该调整后校验码与该另调整后校验码的内容完全相同时,该闪存控制器判断存储在该数据页中的该元数据正确,并将该数据以及该元数据回传至该主装置。
CN201810833862.0A 2018-03-20 2018-07-26 存取闪存模块的方法及相关的闪存控制器与电子装置 Active CN110309013B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN110309013A true CN110309013A (zh) 2019-10-08
CN110309013B CN110309013B (zh) 2022-10-21

Family

ID=67347925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810833862.0A Active CN110309013B (zh) 2018-03-20 2018-07-26 存取闪存模块的方法及相关的闪存控制器与电子装置

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
CN110928890A (zh) * 2019-11-08 2020-03-27 广州华多网络科技有限公司 数据存储方法、装置、电子设备及计算机可读介质

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
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
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544073A (zh) * 2012-07-17 2014-01-29 慧荣科技股份有限公司 读取闪存中区块的数据的方法及相关的记忆装置
US20140122963A1 (en) * 2012-10-26 2014-05-01 Ravi H. Motwani Identification of non-volatile memory die for use in remedial action
US20140245103A1 (en) * 2013-02-27 2014-08-28 Kabushiki Kaisha Toshiba Memory controller, storage device, and memory control method
CN107391296A (zh) * 2016-04-27 2017-11-24 慧荣科技股份有限公司 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN107403646A (zh) * 2016-04-27 2017-11-28 慧荣科技股份有限公司 闪存装置及闪存存储管理方法

Family Cites Families (16)

* 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
EP1035682A1 (en) * 1999-03-06 2000-09-13 Deutsche Thomson-Brandt Gmbh Method and bus interface employing a memory in an integrated circuit for linking a bus with an application device
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
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
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
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
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544073A (zh) * 2012-07-17 2014-01-29 慧荣科技股份有限公司 读取闪存中区块的数据的方法及相关的记忆装置
US20140122963A1 (en) * 2012-10-26 2014-05-01 Ravi H. Motwani Identification of non-volatile memory die for use in remedial action
US20140245103A1 (en) * 2013-02-27 2014-08-28 Kabushiki Kaisha Toshiba Memory controller, storage device, and memory control method
CN107391296A (zh) * 2016-04-27 2017-11-24 慧荣科技股份有限公司 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN107403646A (zh) * 2016-04-27 2017-11-28 慧荣科技股份有限公司 闪存装置及闪存存储管理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928890A (zh) * 2019-11-08 2020-03-27 广州华多网络科技有限公司 数据存储方法、装置、电子设备及计算机可读介质
CN110928890B (zh) * 2019-11-08 2023-01-24 广州华多网络科技有限公司 数据存储方法、装置、电子设备及计算机可读存储介质

Also Published As

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

Similar Documents

Publication Publication Date Title
CN110309013A (zh) 存取闪存模块的方法及相关的闪存控制器与电子装置
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
CN107678695B (zh) 基于可用存储器空间选择冗余存储配置
US9336081B2 (en) Data writing and reading method, and memory controller and memory storage apparatus using the same for improving reliability of data access
CN108268337B (zh) 于记忆装置中进行数据管理的方法、记忆装置及其控制器
CN102760099B (zh) 数据写入方法、存储器控制器与存储器储存装置
KR20140005989A (ko) 비휘발성 메모리 내의 데이터 저장 방법
TWI540582B (zh) 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
US10691534B2 (en) Data encoding method, data decoding method and storage controller
TW201721435A (zh) 資料讀取方法、記憶體控制電路單元及記憶體儲存裝置
CN111538676A (zh) 数据储存装置及其数据存取方法
TWI467590B (zh) 資料處理方法、記憶體控制器及記憶體儲存裝置
US9922718B2 (en) Flash command that reports a count of cell program failures
US11709729B2 (en) Performing error checking operations on encrypted write data in a memory sub-system
CN102591737B (zh) 数据写入与读取方法、存储器控制器与存储器储存装置
US20190044546A1 (en) Re-encoding data associated with failed memory devices
CN111048142B (zh) 应用于闪存控制器的编码器自我测试电路及相关的方法
CN108664350B (zh) 数据保护方法、存储器存储装置及存储器控制电路单元
CN115827308A (zh) 一种固态硬盘数据纠错方法及一种固态硬盘
CN105354107A (zh) NOR Flash的数据传输方法及系统
TWI634561B (zh) 資料保護方法、記憶體儲存裝置及記憶體控制電路單元
CN106897023B (zh) 数据读取方法、存储器控制电路单元及存储器储存装置
CN109783001A (zh) 数据编码方法、数据解码方法以及存储控制器
TWI698750B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant