CN109783001B - 数据编码方法、数据解码方法以及存储控制器 - Google Patents

数据编码方法、数据解码方法以及存储控制器 Download PDF

Info

Publication number
CN109783001B
CN109783001B CN201711114340.7A CN201711114340A CN109783001B CN 109783001 B CN109783001 B CN 109783001B CN 201711114340 A CN201711114340 A CN 201711114340A CN 109783001 B CN109783001 B CN 109783001B
Authority
CN
China
Prior art keywords
data
verification
original
error checking
original data
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.)
Active
Application number
CN201711114340.7A
Other languages
English (en)
Other versions
CN109783001A (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.)
Shenzhen Daxin Electronic Technology Co ltd
Original Assignee
Shenzhen Daxin Electronic Technology Co ltd
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 Shenzhen Daxin Electronic Technology Co ltd filed Critical Shenzhen Daxin Electronic Technology Co ltd
Priority to CN201711114340.7A priority Critical patent/CN109783001B/zh
Publication of CN109783001A publication Critical patent/CN109783001A/zh
Application granted granted Critical
Publication of CN109783001B publication Critical patent/CN109783001B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种数据编码方法、数据解码方法以及存储控制器。所述编码方法包括根据写入指令获得对应原始数据的验证数据;附加所述验证数据至所述原始数据,并且据以获得扰乱后数据;对所述扰乱后数据执行编码操作,以获得码字数据。所述解码方法包括对码字数据执行解码操作,以获得已解码码字数据,并且据以获得扰乱前数据;识别所述扰乱前数据中的验证数据与原始数据;根据读取指令识别对应所述原始数据的一或多个第一***数据;经由比对所述一或多个第一***数据与所述验证数据来判断所述原始数据是否正确。

Description

数据编码方法、数据解码方法以及存储控制器
技术领域
本发明涉及一种数据编码方法与数据解码方法,尤其涉及一种适用于配置有可复写式非易失性存储器模块的存储装置的数据编码方法、数据解码方法与存储控制器。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
一般来说,为了确保可复写式非易失性存储器模块所存储的数据的正确性,在将某一数据存储至可复写式非易失性存储器模块之前,此数据会先被编码。编码后的数据(包含原始数据与错误更正码)会被存储至可复写式非易失性存储器模块中。往后,编码后的数据可被从可复写式非易失性存储器模块中读取并且被解码,以更正其中可能存在的错误。以往错误更正码多使用代数解码算法,如(BCH code),而目前机率解码算法,如低密度奇偶检查码(low density parity code,以下也称为LDPC),则逐渐成熟。LDPC编码/解码器会使用一个稀疏矩阵(sparse matrix)来编码与迭代解码。然而,在一些特殊的数据错误的情况下,LDPC编码/解码器会所回传的解码成功后的数据却依然是错误的。上述所回应解码成功的数据本身依然是错误的现象可称为近似码字(Near Codeword)现象,并且所述数据可称为近似码字。上述近似码字现象也会出现在利用其他算法的编码/解码器中。
为了解决此近似码字的问题,在传统的作法中,会在原始数据进行编码之前,对原始数据进行循环冗余校验(Cyclic redundancy check,CRC)运算来获得对应的循环冗余校验码,并且将其附加至原始数据,再经由编码/解码器来进行编码操作。尔后,可通过循环冗余校验码来检查编码/解码器所回应的解码成功的数据是否正确。
然而,不论是执行循环冗余校验运算或是循环冗余校验码本身,都会需要额外耗费***额外的运算资源或是空间。因此,如何用更先进的方式来验证解码后数据是否正确,以解决近似码字的问题且提升编码/解码操作的准确性,进而提升存储装置的问定度与效率,为此领域技术人员所关心的议题。
发明内容
本发明提供一种数据编码方法、数据解码方法与存储控制器,可根据对应欲编码的数据的已知的验证数据来对所述数据进行编码操作。并且,可利用对欲目标数据的已知的验证数据,以验证解码后的数据操作是否正确。
本发明的一实施例提供适用于编码欲存储至可复写式非易失性存储器模块的原始数据的一种数据编码方法,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述多个实体单元的每一个实体单元包括多个实体子单元,其中多个实体地址被配置给所述多个实体子单元。所述方法包括开始执行写入指令,其中所述写入指令指示写入所述原始数据至所述多个实体地址中的一或多个目标实体地址;根据所述写入指令获得对应所述原始数据的验证数据;附加所述验证数据至所述原始数据成为扰乱前数据;对所述扰乱前数据执行扰乱操作,以获得扰乱后数据;对所述扰乱后数据执行编码操作,以获得码字数据;以及在获得所述码字数据后,写入所述码字数据至所述一或多个目标实体地址,以完成所述写入指令的执行。
本发明的一实施例提供用于解码存储在可复写式非易失性存储器模块中的码字数据的一种数据解码方法,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述多个实体单元的每一个实体单元包括多个实体子单元,其中多个实体地址被配置给所述多个实体子单元。所述方法包括开始执行读取指令,并且根据所述读取指令从所述多个实体地址中的一或多个目标实体地址读取所述码字数据;对所述码字数据执行解码操作,以获得已解码码字数据;对所述已解码码字数据执行解扰乱操作,以获得扰乱前数据;识别所述扰乱前数据中的验证数据与原始数据;根据所述读取指令识别对应所述原始数据的一或多个第一***数据;经由比对所述一或多个第一***数据与所述验证数据来判断所述原始数据是否正确,其中若所述验证数据等于所述一或多个第一***数据,判定所述原始数据正确;以及当判定所述原始数据是正确时,判定所述码字数据解码成功,传送所述原始数据,以完成所述读取指令的执行。
本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器,其中所述可复写式非易失性存储器模块具有多个实体单元,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述多个实体单元的每一个实体单元包括多个实体子单元,其中多个实体地址被配置给所述多个实体子单元。所述存储控制器包括存储器接口控制电路、错误检查与校正电路与处理器。存储器接口控制电路用以耦接至所述可复写式非易失性存储器模块。错误检查与校正电路用以编码欲存储至所述可复写式非易失性存储器模块的原始数据。处理器耦接至所述存储器接口控制电路及所述错误检查与校正电路。所述处理器用以开始执行写入指令,将所述原始数据传送至所述错误检查与校正电路,其中所述写入指令指示写入所述原始数据至所述多个实体地址中的一或多个目标实体地址。所述错误检查与校正电路用以根据所述写入指令获得对应所述原始数据的验证数据,其中所述错误检查与校正电路更用以附加所述验证数据至所述原始数据成为一扰乱前数据,其中所述错误检查与校正电路更用以对所述扰乱前数据执行一扰乱操作,以获得一扰乱后数据。此外,所述错误检查与校正电路更用以对所述扰乱后数据执行编码操作,以获得码字数据,并且回应所述处理器对应所述原始数据的所述码字数据已经编码完成,其中所述处理器更用以写入所述码字数据至所述一或多个目标实体地址,以完成所述写入指令的执行。
本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器,其中所述可复写式非易失性存储器模块具有多个实体单元,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述多个实体单元的每一个实体单元包括多个实体子单元,其中多个实体地址被配置给所述多个实体子单元。所述存储控制器包括存储器接口控制电路、错误检查与校正电路与处理器。存储器接口控制电路用以耦接至所述可复写式非易失性存储器模块。错误检查与校正电路用于解码存储在所述可复写式非易失性存储器模块中的码字数据。处理器耦接至所述存储器接口控制电路及所述错误检查与校正电路。所述处理器用以开始执行读取指令,根据所述读取指令从所述多个实体地址中的一或多个目标实体地址读取所述码字数据,并且将所述码字数据传送至所述错误检查与校正电路。所述错误检查与校正电路用以对所述码字数据执行解码操作,以获得已解码码字数据,其中所述错误检查与校正电路更用以对所述已解码码字数据执行解扰乱操作,以获得扰乱前数据。此外,所述错误检查与校正电路更用以识别所述扰乱前数据中的验证数据与原始数据,其中所述错误检查与校正电路更用以根据所述读取指令识别对应所述原始数据的一或多个第一***数据,其中所述错误检查与校正电路更用以经由比对所述一或多个第一***数据与所述验证数据来判断所述原始数据是否正确,其中若所述验证数据等于所述一或多个第一***数据,所述错误检查与校正电路判定所述原始数据正确。当判定所述原始数据是正确时,所述错误检查与校正电路判定所述码字数据解码成功,传送所述原始数据,并且回应所述处理器对应所述码字数据的所述原始数据已经解码成功,以完成所述读取指令的执行。
基于上述,本发明实施例所提供的数据编码方法、数据解码方法以及存储控制器,在编码操作中,可根据对应原始数据的写入指令来获得验证数据,以附加验证数据至原始数据再执行编码操作,并且不需要附加循环冗余校验码至原始数据,进而减少了整体码字数据的耗费空间。此外,在解码操作中,可根据对应码字数据的读取指令识别一或多个第一***数据,并且根据所述一或多个第一***数据与所述验证数据来判断解码后所获得的原始数据是否正确。特别是,上述的编码/解码操作可节省耗费于循环冗余校验码运算的资源/计算量。如此一来,可在不需要经由循环冗余校验码的情况下依然可检查解码后的数据是否正确,进而可解决近似码字的问题并且在节省资源的情况下增进了的存储装置编码/解码数据的整体效率。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一实施例所显示的主机***及存储装置的方块示意图;
图2是根据本发明的一实施例所显示的错误检查电路所执行的编码/解码操作的示意图;
图3A为根据本发明的一实施例所显示的被编码为码字数据的原始数据的示意图;
图3B为根据本发明的一实施例所显示的被解码为原始数据的码字数据的示意图;
图4A为根据本发明的一实施例所显示的数据编码方法的流程图;
图4B为根据本发明的一实施例所显示的图4A中的步骤S42的流程图;
图5A为根据本发明的一实施例所显示的数据解码方法的流程图;
图5B为根据本发明的一实施例所显示的图5A中的步骤S55的流程图。
附图标号说明:
10:主机***
20:存储装置
110、211:处理器
120:主机存储器
130:数据传输接口电路
210:存储控制器212:数据传输管理电路
213:存储器接口控制电路
214:错误检查与校正电路
220:可复写式非易失性存储器模块
230:连接接口电路
2140:检查单元
2141:扰乱器
2142:解扰乱器
2143:编码器
2144:解码器
2145:CRC(循环冗余校验器)
A10、A11、A12、A13、A20、A21、A22、A23:箭头
RD1、RD2:原始数据
CD1、CD2:码字数据
VD1、VD2:验证数据
RVD1、RVD2:扰乱前数据
RVSD1、RVSD2:扰乱后数据
ECC1、ECC2:错误检查与校正码
S41、S42、S43、S44、S45、S46:数据编码方法的流程步骤
S421、S423、S425:步骤S42的流程步骤
S51、S52、S53、S54、S55、S56、S57:数据解码方法的流程步骤
S551、S553、S555:步骤S55的流程步骤
具体实施方式
在本实施例中,存储装置包括可复写式非易失性存储器模块(rewritable non-volatile memory module)与存储装置控制器(也称,存储控制器或存储控制电路)。此外,存储装置是与主机***一起使用,以使主机***可将数据写入至存储装置或从存储装置中读取数据。
图1是根据本发明的一实施例所显示的主机***及存储装置的方块示意图。
请参照图1,主机***(Host System)10包括处理器(Processor)110、主机存储器(Host Memory)120及数据传输接口电路(Data Transfer Interface Circuit)130。在本实施例中,数据传输接口电路130耦接(也称,电性连接)至处理器110与主机存储器120。在另一实施例中,处理器110、主机存储器120与数据传输接口电路130之间利用***总线(System Bus)彼此耦接。
存储装置20包括存储控制器(Storage Controller)210、可复写式非易失性存储器模块(Rewritable Non-Volatile Memory Module)220及连接接口电路(ConnectionInterface Circuit)230。其中,存储控制器210包括处理器211、数据传输管理电路(DataTransfer Management Circuit)212与存储器接口控制电路(Memory Interface ControlCircuit)213。
在本实施例中,主机***10是通过数据传输接口电路130与存储装置20的连接接口电路230耦接至存储装置20来进行数据的存取操作。例如,主机***10可经由数据传输接口电路130将数据存储至存储装置20或从存储装置20中读取数据。
在本实施例中,处理器110、主机存储器120及数据传输接口电路130可设置在主机***10的主机板上。数据传输接口电路130的数目可以是一或多个。通过数据传输接口电路130,主机板可以经由有线或无线方式耦接至存储装置20。存储装置20可例如是随身盘、存储卡、固态硬盘(Solid State Drive,SSD)或无线存储器存储装置。无线存储器存储装置可例如是近距离无线通讯(Near Field Communication,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板也可以通过***总线耦接至全球定位***(Global Positioning System,GPS)模块、网络接口卡、无线传输装置、键盘、屏幕、喇叭等各式I/O装置。
在本实施例中,数据传输接口电路130与连接接口电路230是相容于高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准的接口电路。并且,数据传输接口电路130与连接接口电路230之间是利用快速非易失性存储器接口标准(Non-Volatile Memory express,NVMe)通讯协定来进行数据的传输。
然而,必须了解的是,本发明不限于此,数据传输接口电路130与连接接口电路230也可以是符合并列先进附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、序列先进附件(Serial Advanced Technology Attachment,SATA)标准、通用序列总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、记忆棒(MemoryStick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(MultiMedia Card,MMC)接口标准、eMMC接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated DeviceElectronics,IDE)标准或其他适合的标准。此外,在另一实施例中,连接接口电路230可与存储控制器210封装在一个芯片中,或者连接接口电路230是布设于一包含存储控制器210的芯片外。
在本实施例中,主机存储器120用以暂存处理器110所执行的指令或数据。例如,在本范例实施例中,主机存储器120可以是动态随机存取存储器(Dynamic Random AccessMemory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)等。然而,必须了解的是,本发明不限于此,主机存储器120也可以是其他适合的存储器。
存储控制器210用以执行以硬件型式或韧件型式实作的多个逻辑门或控制指令并且根据主机***10的指令在可复写式非易失性存储器模块220中进行数据的写入、读取与抹除等运作。
更详细来说,存储控制器210中的处理器211为具备运算能力的硬件,其用以控制存储控制器210的整体运作。具体来说,处理器211具有多个控制指令,并且在存储装置20运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
值得一提的是,在本实施例中,处理器110与处理器211例如是中央处理单元(Central Processing Unit,CPU)、微处理器(micro-processor)、或是其他可程序化的处理单元(Microprocessor)、数码信号处理器(Digital Signal Processor,DSP)、可程序化控制器、特殊应用集成电路(Application Specific Integrated Circuits,ASIC)、可程序化逻辑装置(Programmable Logic Device,PLD)或其他类似电路元件,本发明并不限于此。
在一实施例中,存储控制器210还具有只读存储器(未显示)及随机存取存储器(未显示)。特别是,此只读存储器具有开机码(boot code),并且当存储控制器210被致能时,处理器211会先执行此开机码来将存储于可复写式非易失性存储器模块220中的控制指令载入至存储控制器210的随机存取存储器中。之后,处理器211会运转此些控制指令以进行数据的写入、读取与抹除等运作。在另一实施例中,处理器211的控制指令也可以程序码型式存储于可复写式非易失性存储器模块220的特定区域,例如,可复写式非易失性存储器模块220中专用于存放***数据的实体存储单元中。
在本实施例中,如上所述,存储控制器210还包括数据传输管理电路212、存储器接口控制电路213与错误检查与校正电路214。应注意的是,存储控制器220各部件所执行的操作也可视为存储控制器220所执行的操作。
其中,数据传输管理电路212耦接至处理器211、存储器接口控制电路213与连接接口电路230。数据传输管理电路212用以接受处理器211的指示来进行数据的传输。例如,经由连接接口电路230从主机***10(如,主机存储器120)读取数据,并且将所读取的数据经由存储器接口控制电路213写入至可复写式非易失性存储器模块220中(如,根据来自主机***10的写入指令来进行写入操作)。又例如,经由存储器接口控制电路213从可复写式非易失性存储器模块220的一或多个实体单元中读取数据(数据可读取自一或多个实体单元中的一或多个存储单元/实体子单元),并且将所读取的数据经由连接接口电路230写入至主机***10(如,主机存储器120)中(如,根据来自主机***10的读取指令来进行读取操作)。在另一实施例中,数据传输管理电路212也可整合至处理器211中。
存储器接口控制电路213用以接受处理器211的指示,配合数据传输管理电路212来进行对于可复写式非易失性存储器模块220的写入(也称,程序化,Programming)操作、读取操作或抹除操作。
举例来说,处理器211可执行写入指令序列(或处理器211指示数据传输管理电路212发送写入指令序列至存储器接口控制电路213),以指示存储器接口控制电路213将数据写入至可复写式非易失性存储器模块220中的一或多个实体地址(也称,目标实体地址);处理器211可执行读取指令序列(或处理器211指示数据传输管理电路212发送读取指令序列至存储器接口控制电路213),以指示存储器接口控制电路213从可复写式非易失性存储器模块220的对应读取指令的一或多个实体地址(也称,目标实体地址)中读取数据;处理器211可执行抹除指令序列(或处理器211指示数据传输管理电路212发送抹除指令序列至存储器接口控制电路213),以指示存储器接口控制电路213对可复写式非易失性存储器模块220进行抹除操作。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示对可复写式非易失性存储器模块220执行相对应的写入、读取及抹除等操作。在一实施例中,处理器211还可以下达其他类型的指令序列给存储器接口控制电路213,以对可复写式非易失性存储器模块220执行相对应的操作。
此外,欲写入至可复写式非易失性存储器模块220的数据会经由存储器接口控制电路213转换为可复写式非易失性存储器模块220所能接受的格式。具体来说,若处理器211要存取可复写式非易失性存储器模块220,处理器211会传送对应的指令序列给存储器接口控制电路213以指示存储器接口控制电路213执行对应的操作。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(如,垃圾回收操作、损耗平衡操作等等)的相对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。
图2是根据本发明的一实施例所显示的错误检查电路所执行的编码/解码操作的示意图。请参照图2,在本实施例中,错误检查与校正电路214包括检查单元(checkingunit)2140、扰乱器(scrambler)2141、解扰乱器(descrambler)2142、编码器(encoder)2143与解码器(decoder)2144。在另一实施例中,错误检查与校正电路214更包括循环冗余校验器(Cyclic Redundancy Checker,CRC)2145。
在本实施例中,检查单元2140、编码器2143与解码器2144是以硬件电路的方式来实作。应注意的是,在一实施例中,扰乱器2141可与解扰乱器2142整合成一个扰乱/解扰乱器(scrambler/descrambler),并且编码器2143可与解码器2144整合一个编码/解码器。此外,在另一实施例中,扰乱器2141也可整合至编码器2143中,并且解扰乱器2142也可整合至解码器2144中。
错误检查与校正电路214用以执行错误检查与校正程序以确保存储在可复写式非易失性存储器模块220中的数据(也称,码字/码字数据,codeword/codeword data)的正确性。所述错误检查与校正程序又可区分为(1)将原始数据编篆为码字数据的编码程序(编码操作),以及(2)将码字数据解码为原始数据的解码程序(解码操作)。
在编码程序中,检查单元2140用以附加对应原始数据的验证数据至原始数据;扰乱器2141用以对所接收的数据进行扰乱操作,以输出已扰乱数据;编码器2143用以将所接收的数据(如,已扰乱数据)进行编码操作,以附加错误检查与校正码至所接收的数据而成为码字数据。
在解码程序中,解码器2144用以将所接收的数据(如,码字数据)进行解码操作,以根据其中的错误检查与校正码来解码/校正所接收的码字数据,进而输出数据(如,已扰乱数据)给解扰乱器2142;解扰乱器2142用以对所接收的数据进行解扰乱操作,以还原所接收的数据为进行扰乱操作前的数据(也称,扰乱前数据);检查单元2140用以根据对应码字数据(或预期的经过解码程序可获得的原始数据)的验证数据来检验所接收的数据(如,扰乱前数据),进而判定所述码字数据是否被正确地解码为原始数据。所述验证数据可为元数据(metadata)、***数据(system data)或其他已知数据。
在本实施例中,编码器2143与解码器2144所使用的算法为相同的算法。所述算法例如为低密度奇偶检查码(low density parity code,LDPC)算法。然而,在另一实施例中,编码器2143与解码器2144所使用的算法也可以是BCH码、回旋码(convolutional code)、涡轮码(turbo code)、位元翻转(bit flipping)等编/解码算法。
应注意的是,上述的检查单元2140也可整合至处理器211中,即,处理器211可具有检查单元2140的功能,以附加验证数据至原始数据再传送给错误检查与校正电路214来进行编码操作,或从错误检查与校正电路214接收原始数据后,经由对应原始数据的***数据与验证数据来检查所获得的原始数据是否正确。以下会通过多个附图来详述错误检查与校正电路214中的各元件的功能与协同运作方式。
可复写式非易失性存储器模块220是耦接至存储控制器210(存储器接口控制电路213)并且用以存储主机***10所写入的数据。可复写式非易失性存储器模块220可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个位元的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个位元的快闪存储器模块)、三阶存储单元(Triple LevelCell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个位元的快闪存储器模块)、三维NAND型快闪存储器模块(3D NAND flash memory module)或垂直NAND型快闪存储器模块(Vertical NAND flash memory module)等其他快闪存储器模块或其他具有相同特性的存储器模块。可复写式非易失性存储器模块220中的存储单元是以阵列的方式设置。
在本实施例中,可复写式非易失性存储器模块220的多个存储单元会构成多个实体程序化单元(也称,实体子单元),并且此些实体程序化单元会构成多个实体区块(也称,实体抹除单元或实体单元)。具体来说,同一条字元线(或同一个字元线层)上的存储单元会组成一或多个实体程序化单元。处理器211会分别配置多个实体地址给所述多个实体子单元。
在以下实施例中,是以存储单元作为写入(程序化)数据的最小单位。实体单元为抹除的最小单位,即,每一实体单元含有最小数目的一并被抹除的存储单元。此外,实体单元为实体区块,实体子单元为实体页面,并且每个实体地址用以指代对应的实体页面的地址。
应注意的是,在本实施例中,用以记录一实体单元的信息的***数据可称为实体单元信息,并且其可利用该实体单元中的一或多个实体子单元来记录,或是利用一个***区中用以记录所有***数据的特定实体单元的一或多个实体子单元来记录。在本实施例中,所述实体单元信息包括该实体单元的抹除次数值(Program erase cycle,PEC)、时间戳记(Timestamp)、读取次数值(Read counter value)、实体单元索引码(Physical UnitIndex)等信息。更详细来说,每当处理器211对一实体单元进行抹除操作时,在完成所述抹除操作后,处理器211会对当前对应该实体单元的抹除次数值加1(如,抹除次数值会随着每次的抹除操作而从0开始累加)。即,抹除次数值可反映出其所对应的实体单元的被抹除的次数的总和。所述时间戳记用以指示对应的实体单元存储其中的第一笔数据的时间。时间戳记的大小(数值差异)可用来表示时间的先后顺序。本发明并不限定所述时间戳记的详细格式。所述读取次数值用以统计对应的实体单元被读取的总次数。所述实体单元索引码用以代表对应的实体单元的独特的识别码,处理器211可根据实体单元索引码来识别其所对应的实体单元以及相关的数据。
存储控制器210会配置多个逻辑单元给可复写式非易失性存储器模块220。主机***10是通过所配置的逻辑单元来存取存储在多个实体单元中的使用者数据。在此,每一个逻辑单元可以是由一或多个逻辑地址组成。例如,逻辑单元可以是逻辑区块(LogicalBlock)、逻辑页面(Logical Page)或是逻辑扇区(Logical Sector)。一个逻辑单元可以是映射至一或多个实体单元,其中实体单元可以是一或多个实体地址、一或多个实体扇、一或多个实体程序化单元或者一或多个实体抹除单元。在本实施例中,逻辑单元为逻辑区块,并且逻辑子单元为逻辑页面。每一逻辑单元具有多个逻辑子单元。
此外,存储控制器210会建立逻辑转实体地址映射表(Logical To Physicaladdress mapping table)与实体转逻辑地址映射表(Physical To Logical addressmapping table),以记录配置给可复写式非易失性存储器模块220的逻辑单元(如,逻辑区块、逻辑页面或逻辑扇区)与实体单元(如,实体抹除单元、实体程序化单元、实体扇区)之间的映射关系。换言之,存储控制器210可通过逻辑转实体地址映射表来查找一逻辑单元所映射的实体单元,并且存储控制器210可通过实体转逻辑地址映射表来查找一实体单元所映射的逻辑单元。然而,上述有关逻辑单元与实体单元映射的技术概念为本领域技术人员的惯用技术手段,不再赘述于此。
在一实施例中,存储控制器210还包括缓冲存储器与电源管理电路。缓冲存储器是耦接至处理器211并且用以暂存来自于主机***10的数据与指令、来自于可复写式非易失性存储器模块220的数据或其他用以管理存储装置20的***数据,以让处理器211可快速地从缓冲存储器中存取所述数据、指令或***数据。电源管理电路是耦接至处理器211并且用以控制存储装置20的电源。
图3A为根据本发明的一实施例所显示的被编码为码字数据的原始数据的示意图。图4A为根据本发明的一实施例所显示的数据编码方法的流程图。请同时参照图2、图3A、图4A,在步骤S41中,处理器211开始执行写入指令,其中所述写入指令指示写入所述原始数据至所述多个实体地址中的一或多个目标实体地址。
举例来说,在本实施例中,假设主机***10发送写入指令与原始数据RD1至处理器211,并且写入指令指示将所述原始数据RD1存储至一或多个逻辑地址(也称,目标逻辑地址)。根据所述写入指令,处理器211会从可复写式非易失性存储器模块220的所有可用的实体地址中选择一或多个实体地址(也称,目标实体地址)来存储所述原始数据RD1。处理器211会将原始数据RD1传送给错误检查与校正电路214以开始进行对于原始数据RD1的编码程序(如图2所显示的箭头A10)。
接着,在接收到所述原始数据RD1后,在步骤S42中,检查单元2140从所述写入指令中获取对应所述原始数据的验证数据VD1。也就是说,检查单元2140可直接从写入指令读取对应所述原始数据的验证数据VD1。所述验证数据VD1可为用以存储原始数据RD1的一或多个目标逻辑地址。以下通过图4B,更详述步骤S42以及所述验证数据VD1的细节。
图4B为根据本发明的一实施例所显示的图4A中的步骤S42的流程图。请参照图4B,在本实施例中,在步骤S421中,检查单元2140从所述写入指令中识别对应所述原始数据的多个第一***数据。在本实施例中,写入指令包括多个第一***数据,以及指令叙述。所述第一***数据包括用以存储原始数据RD1的一或多个目标逻辑地址;用以存储原始数据RD1的一或多个目标实体地址;以及用以存储原始数据RD1的目标实体单元的实体单元信息。实体单元信息已举例如上,不再赘述于此。上述第一***数据分别会具有各自的数据长度。此外,所述处理器211可根据所述写入指令的指令叙述的信息知道所述写入指令欲将原始数据写入至所述一或多个目标逻辑地址。
接着,在步骤S423中,检查单元2140根据预设的检查能力来决定所述验证数据的长度。具体来说,厂商可根据需求来设定检查单元2140的检查能力的高低。随着检查能力的高低不同验证数据的长度的范围也会跟着变化。例如,验证数据的长度的范围可为1~16位元组。也就是说,验证数据的长度是可以被预先设定的。
接着,在步骤S425中,检查单元2140根据所述验证数据的所述长度从所述多个第一***数据中选择一或多个第二***数据,以将所选择的所述一或多个第二***数据组合成所述验证数据,其中所选择的所述一或多个第二***数据的总数据长度等于所述验证数据的所述长度。具体来说,由于验证数据的长度已决定,检查单元2140可据此来从所述多个第一***数据中选择一或多个,以使被选择的第一***数据(也称,一或多个第二***数据)的数据长度的总和(也称,总数据长度)可等于预设的验证数据的长度。接着,在决定完一或多个第二***数据后,检查单元2140可从写入指令中读取所述一或多的第二***数据来组合所述一或多个第二***数据,以构成一笔验证数据(检查单元2140获得验证数据)。也就是说,当验证数据的长度改变时,检查单元2140可对应地改变第二***数据的类型,以形成不同的验证数据。此外,在一实施例中,检查单元2140也可切割特定的一或多个第一***数据,以成为第二***数据,以使经由一或多个第二***数据所组合而成的验证数据的长度符合预设值。
应注意的是,用以构成验证数据的多个第二***数据的排列顺序可以依据需求或是设定来被改变。此外,经由图4B的说明,可知道验证数据可直接从对应所述原始数据的写入指令中读取,并不需要另外耗费资源来计算或是编码验证数据。
请再回到图4A,在获得验证数据后,在步骤S43中,如图2、图3A中的箭头A11所示,检查单元2140附加所述验证数据VD1至所述原始数据RD1成为扰乱前数据RVD1。此外,扰乱前数据RVD1会被传送给扰乱器2141,以进行扰乱操作。
在获得扰乱前数据RVD1后,在步骤S44中,如图2、图3A中的箭头A12所示,扰乱器2141对所述扰乱前数据RVD1执行扰乱操作,以获得扰乱后数据RVSD1。此外,扰乱后数据RVSD1会被传送给编码器2143,以进行编码操作。
在获得扰乱后数据RVSD1后,在步骤S45中,如图2、图3A中的箭头A13所示,编码器2143对所述扰乱后数据RVSD1执行编码操作,以获得码字数据CD1。具体来说,在对所述扰乱后数据RVSD1执行编码操作后,编码器2143会产生错误检查与校正码ECC1,并且编码器2143将错误检查与校正码ECC1附加至扰乱后数据RVSD1,以形成码字数据CD1(如图3A所显示)。
最后,在步骤S46中,在获得所述码字数据后,写入所述码字数据至所述一或多个目标实体地址,以完成所述写入指令的执行。具体来说,在获得码字数据CD1后,错误检查与校正电路214会回应处理器211对应原始数据RD1的码字数据已经编码完成。处理器211可将编码完成的码字数据CD1写入至所述一或多个目标实体地址,以完成所述写入指令的执行。此外,处理器211也可将所述一或多个目标逻辑地址映射至所述一或多个目标实体地址,并且回应主机***10所述原始数据RD1已写入至可复写式非易失性存储器模块220(写入指令已完成)。
应注意的是,在上述实施例中,写入指令为主机***所发送,以写入为使用者数据的原始数据。然而,在另一实施例中,写入指令也可用以执行处理器211为了管理所存储的数据的管理操作(如,数据合并操作、垃圾回收操作等)所对应执行的数据写入操作。
图3B为根据本发明的一实施例所显示的被编码为码字数据的原始数据的示意图。图5A为根据本发明的一实施例所显示的数据解码方法的流程图。请同时参照图2、图3B、图5A,在步骤S51中,处理器211开始执行读取指令,并且根据所述读取指令从所述多个实体地址中的一或多个目标实体地址读取所述码字数据。
举例来说,在本实施例中,假设主机***10发送读取指令至处理器211,并且所述读取指令指示从一或多个逻辑地址(也称,目标逻辑地址)读取原始数据。根据所述读取指令,处理器211会从可复写式非易失性存储器模块220的所有可用的实体地址中映射至所述一或多个目标逻辑地址的一或多个实体地址(也称,目标实体地址)来读取码字数据CD2(码字数据CD2为主机***10所欲读取的原始数据被编码且写入至目标实体地址的数据)。处理器211会将码字数据CD2传送给错误检查与校正电路214以开始进行对于码字数据CD2的解码程序(如图2所显示的箭头A20)。
接着,在接收到所述码字数据CD2后,在步骤S52中,如图2、图3A中的箭头A21所示,解码器2144对所述码字数据CD2执行解码操作,以获得已解码码字数据RVSD2(也称,扰乱后数据RVSD2)。具体来说,请参照图3B,解码器2144会识别码字数据CD2中的错误检查与校正码ECC2与扰乱后数据RVSD2,并且解码器2144会根据错误检查与校正码ECC2来检查及校正扰乱后数据RVSD2,最后输出解码后的已解码码字数据RVSD2。已解码码字数据RVSD2会被传送至解扰乱器2142,以进行解扰乱操作。
请再回到图4A,在获得已解码码字数据RVSD2后,在步骤S53中,如图2、图3A中的箭头A22所示,解扰乱器2142对所述已解码码字数据RVSD2执行解扰乱操作,以获得扰乱前数据RVD2。此外,扰乱前数据RVD2会被传送给检查单元2140,以进行检查操作。
在获得扰乱前数据RVD2后,在步骤S54中,检查单元2140识别所述扰乱前数据RVD2中的验证数据VD2与原始数据RD2(如图3B所示)。
接着,在步骤S55中,检查单元2140从所述读取指令中获取对应所述原始数据RD2的一或多个第一***数据。也就是说,检查单元2140可直接从读取指令中读取可检查验证数据VD2是否正确的***数据。所述***数据可为存储原始数据RD2的一或多个目标逻辑地址。以下通过图5B,更详述步骤S55以及所述***数据的细节。
图5B为根据本发明的一实施例所显示的图5A中的步骤S55的流程图。请参照图5B,在本实施例中,在步骤551中,检查单元2140从所述读取指令中识别对应所述原始数据的多个第二***数据。在本实施例中,所述多个第二***数据,为上述编码操作中的所述多个第一***数据,即对应原始数据的各种***数据的统称,并且所述读取指令包括指令描述以及所述多个第二***数据。其中,所述读取指令的所述指令描述用以指示处理器211从一或多个目标逻辑地址中读取原始数据RD2。接着,处理器211根据逻辑转实体表可查找出用以存储经由编码所述原始数据而获得的码字数据的一或多个目标实体地址。所述第二***数据可用以检查经由对所述码字数据执行的解码程序所获得的原始数据RD2是否来自于读取指令所欲读取的目标逻辑地址。
接着,在步骤S553中,检查单元2140根据预设的检查能力来决定所述验证数据VD2的长度。此步骤相同于步骤S423。
接着,在步骤S555中,检查单元2140根据所述验证数据的所述长度从所述多个第二***数据中选择一或多个第一***数据,以将所选择的所述一或多个第一***数据组合成所述验证数据,其中所选择的所述一或多个第一***数据的总数据长度等于所述验证数据的所述长度。具体来说,相似于上述步骤S425的说明,在本实施例所描述的解码程序中,所述所选择的所述一或多个第一***数据即为在编码程序中的被选择的所述一或多个第二***数据,其被用以根据预设的验证数据的长度来被选择且读取,以组合成验证数据。换言之,在步骤S555中,检查单元2140会根据验证数据VD2的长度识别出,读取指令中的所述多个第二***数据中应所述是哪些***数据(在本实施例中,称为第一***数据)来组成所述验证数据。如此一来,经由图4B的说明,可知道处理器211可直接从对应所述原始数据的读取指令中读取***数据,以经由和验证数据VD2的比对来检查从码字数据CD2所获得的原始数据RD2是否正确。上述用以与验证数据VD2比对的***数据并不需要另外经由耗费资源来计算或是解码才能获得。
请回到图5A,接着,在步骤S56中,检查单元2140经由比对所述一或多个第一***数据与所述验证数据VD2来判断所述原始数据RD2是否正确,其中若所述验证数据等于所述一或多个第一***数据,判定所述原始数据RD2正确。具体来说,在识别出所述一或多个第一***数据后,检查单元2140会去比对验证数据VD2是否相等于所识别出的所述一或多个第一***数据(即,检查单元2140的全部数据位元是否等于所述一或多个第一***数据所排序而成的多个数据位元)。若相等,则检查单元2140会判定原始数据RD2是正确的。
接着,在步骤S57中,当判定所述原始数据RD2是正确时,判定所述码字数据解码成功,错误检查与校正电路214传送所述原始数据RD2,以完成所述读取指令的执行。
具体来说,在判定原始数据RD2是正确后,错误检查与校正电路214会回应处理器211对应码字数据CD2的解码程序已经完成,并且获得对应的原始数据RD2。所述原始数据RD2为对应所述读取指令的原始数据。此外,处理器211可回应主机***10存储于所述一或多个逻辑地址的所述原始数据RD2已读取完毕,并且将所述原始数据RD2回传至主机***10,以完成所述读取指令的执行。
应注意的是,在上述实施例中,读取指令为主机***所发送,以读取为使用者数据的原始数据。然而,在另一实施例中,读取指令也可用以执行处理器211为了管理所存储的数据的管理操作(如,数据合并操作、垃圾回收操作等)所对应执行的数据读取操作。
应注意的是,上述错误检查与校正电路214的各元件的操作也可视为错误检查与校正电路214所执行的操作。
根据上述实施例所阐述的数据编码方法、数据解码方法及实施所述方法的存储控制器,可不需要在设置CRC的情况下,依然可以检查解码后的数据是否正确。
然而,以下会再提出另一种可结合现有CRC技术手段与上述数据编码方法与数据解码方法的另一实施例与上述实施例的不同的处。
具体来说,在编码程序中,在获得对应原始数据的验证数据后,检查单元2140对所述验证数据与所述原始数据执行循环冗余校验运算,以获得循环冗余校验码。接着,检查单元2140根据所述循环冗余校验码与所述验证数据执行互斥或运算,以获得调整后验证数据。接着,在上述检查单元2140附加所述验证数据至所述原始数据成为扰乱前数据的运作中(如箭头A11所示),检查单元2140将所述调整后验证数据代替所述验证数据以附加至所述原始数据成为所述扰乱前数据。
另一方面,在解码程序中,在识别出所述一或多个第一***数据后,检查单元2140对所述一或多个第一***数据与所述原始数据执行循环冗余校验运算,以获得循环冗余校验码。接着,检查单元2140根据所述循环冗余校验码与所述验证数据执行互斥或运算,以获得调整后验证数据。接着,在上述经由比对所述一或多个第一***数据与所述验证数据来判断所述原始数据是否正确的运作中,检查单元2140改为将调整后验证数据代替验证数据以与所述一或多个第一***数据进行比对。若调整后验证数据等于所述一或多个第一***数据,则检查单元2140判定所述原始数据RD2是正确的。如此一来,可通过经由CRC运算所获得的调整后验证数据来取代验证数据以加强编码程序与解码程序的可靠度。
综上所述,本发明实施例所提供的数据编码方法、数据解码方法以及存储控制器,在编码操作中,可根据对应原始数据的写入指令来获得验证数据,以附加验证数据至原始数据再执行编码操作,并且不需要附加循环冗余校验码至原始数据,进而减少了整体码字数据的耗费空间。此外,在解码操作中,可根据对应码字数据的读取指令识别一或多个第一***数据,并且根据所述一或多个第一***数据与所述验证数据来判断解码后所获得的原始数据是否正确。特别是,上述的编码/解码操作可节省耗费于循环冗余校验码运算的资源/计算量。如此一来,可在不需要经由循环冗余校验码的情况下依然可检查解码后的数据是否正确,进而可解决近似码字的问题并且在节省资源的情况下增进了的存储装置编码/解码数据的整体效率。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定的为准。

Claims (8)

1.一种数据编码方法,适用于编码欲存储至可复写式非易失性存储器模块的原始数据,其特征在于,所述可复写式非易失性存储器模块具有多个实体单元,并且所述多个实体单元的每一个实体单元包括多个实体子单元,其中多个实体地址被配置给所述多个实体子单元,所述方法包括:
开始执行写入指令,其中所述写入指令指示写入所述原始数据至所述多个实体地址中的一或多个目标实体地址;
从所述写入指令中直接获取对应所述原始数据的验证数据;
附加所述验证数据至所述原始数据成为扰乱前数据;
对所述扰乱前数据执行扰乱操作,以获得扰乱后数据;
对所述扰乱后数据执行编码操作,以获得码字数据;以及
在获得所述码字数据后,写入所述码字数据至所述一或多个目标实体地址,以完成所述写入指令的执行,
其中,从所述写入指令中直接获取对应所述原始数据的验证数据的步骤包括:
从所述写入指令中识别对应所述原始数据的多个第一***数据;
根据预设的一检查能力来决定所述验证数据的长度;以及
根据所述验证数据的所述长度从所述多个第一***数据中选择一或多个第二***数据,以将所选择的所述一或多个第二***数据组合成所述验证数据,其中所选择的所述一或多个第二***数据的总数据长度等于所述验证数据的所述长度,
其中,所述第一***数据包括用以存储所述原始数据的一或多个目标逻辑地址;用以存储所述原始数据的一或多个目标实体地址;以及用以存储所述原始数据的目标实体单元的实体单元信息。
2.根据权利要求1所述的数据编码方法,其特征在于,还包括:
在获得对应所述原始数据的所述验证数据后,对所述验证数据与所述原始数据执行循环冗余校验运算,以获得循环冗余校验码;
根据所述循环冗余校验码与所述验证数据执行互斥或运算,以获得调整后验证数据;以及
在附加所述验证数据至所述原始数据成为所述扰乱前数据的步骤中,将所述调整后验证数据代替所述验证数据以附加至所述原始数据成为所述扰乱前数据。
3.一种数据解码方法,用于解码存储在可复写式非易失性存储器模块中的码字数据,其特征在于,所述可复写式非易失性存储器模块具有多个实体单元,并且所述多个实体单元的每一个实体单元包括多个实体子单元,其中多个实体地址被配置给所述多个实体子单元,所述方法包括:
开始执行读取指令,并且根据所述读取指令从所述多个实体地址中的一或多个目标实体地址读取所述码字数据;
对所述码字数据执行解码操作,以获得已解码码字数据;
对所述已解码码字数据执行解扰乱操作,以获得扰乱前数据;
识别所述扰乱前数据中的验证数据与原始数据;
从所述读取指令中直接获取对应所述原始数据的一或多个第一***数据;
经由比对所述一或多个第一***数据与所述验证数据来判断所述原始数据是否正确,其中若所述验证数据等于所述一或多个第一***数据,判定所述原始数据正确;以及
当判定所述原始数据是正确时,判定所述码字数据解码成功,传送所述原始数据,以完成所述读取指令的执行,
其中,从所述读取指令中直接获取对应所述原始数据的一或多个第一***数据的步骤包括:
从所述读取指令中识别对应所述原始数据的多个第二***数据;
根据预设的检查能力来决定所述验证数据的长度;以及
根据所述验证数据的所述长度识别所述多个第二***数据中的所述一或多个第一***数据,其中所述一或多个第一***数据的总数据长度等于所述验证数据的所述长度,
其中,所述第二***数据包括用以存储所述原始数据的一或多个目标逻辑地址;用以存储所述原始数据的一或多个目标实体地址;以及用以存储所述原始数据的目标实体单元的实体单元信息。
4.根据权利要求3所述的数据解码方法,其特征在于,还包括:
在识别出所述一或多个第一***数据后,对所述一或多个第一***数据与所述原始数据执行循环冗余校验运算,以获得循环冗余校验码;
根据所述循环冗余校验码与所述验证数据执行互斥或运算,以获得调整后验证数据;以及
在上述经由比对所述一或多个第一***数据与所述验证数据来判断所述原始数据是否正确的步骤中,将所述调整后验证数据代替所述验证数据以与所述一或多个第一***数据比对。
5.一种存储控制器,用于控制配置有可复写式非易失性存储器模块的存储装置,其特征在于,所述可复写式非易失性存储器模块具有多个实体单元,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述多个实体单元的每一个实体单元包括多个实体子单元,其中多个实体地址被配置给所述多个实体子单元,所述存储控制器包括:
存储器接口控制电路,用以耦接至所述可复写式非易失性存储器模块;
错误检查与校正电路,用以编码欲存储至所述可复写式非易失性存储器模块的原始数据;以及
处理器,耦接至所述存储器接口控制电路及所述错误检查与校正电路,
其中所述处理器用以开始执行写入指令,将所述原始数据传送至所述错误检查与校正电路,其中所述写入指令指示写入所述原始数据至所述多个实体地址中的一或多个目标实体地址,
其中所述错误检查与校正电路用以根据所述写入指令直接获得对应所述原始数据的验证数据,
其中所述错误检查与校正电路还用以附加所述验证数据至所述原始数据成为扰乱前数据,
其中所述错误检查与校正电路还用以对所述扰乱前数据执行扰乱操作,以获得扰乱后数据,
其中所述错误检查与校正电路还用以对所述扰乱后数据执行编码操作,以获得码字数据,并且回应所述处理器对应所述原始数据的所述码字数据已经编码完成,
其中所述处理器还用以写入所述码字数据至所述一或多个目标实体地址,以完成所述写入指令的执行,
所述错误检查与校正电路还用以根据所述写入指令直接获得对应所述原始数据的所述验证数据的运作中,
所述错误检查与校正电路根据所述写入指令识别对应所述原始数据的多个第一***数据,
其中所述错误检查与校正电路根据预设的检查能力来决定所述验证数据的长度,
其中所述错误检查与校正电路根据所述验证数据的所述长度从所述多个第一***数据中选择一或多个第二***数据,以将所选择的所述一或多个第二***数据组合成所述验证数据,其中所选择的所述一或多个第二***数据的总数据长度等于所述验证数据的长度,
其中,所述第一***数据包括用以存储所述原始数据的一或多个目标逻辑地址;用以存储所述原始数据的一或多个目标实体地址;以及用以存储所述原始数据的目标实体单元的实体单元信息。
6.根据权利要求5所述的存储控制器,其特征在于,
在获得对应所述原始数据的所述验证数据后,所述错误检查与校正电路对所述验证数据与所述原始数据执行循环冗余校验运算,以获得循环冗余校验码,
其中所述错误检查与校正电路根据所述循环冗余校验码与所述验证数据执行互斥或运算,以获得调整后验证数据,
其中所述错误检查与校正电路还用以附加所述验证数据至所述原始数据成为所述扰乱前数据的运作中,所述错误检查与校正电路将所述调整后验证数据代替所述验证数据以附加至所述原始数据成为所述扰乱前数据。
7.一种存储控制器,用于控制配置有可复写式非易失性存储器模块的存储装置,其特征在于,所述可复写式非易失性存储器模块具有多个实体单元,其中所述可复写式非易失性存储器模块具有多个实体单元,并且所述多个实体单元的每一个实体单元包括多个实体子单元,其中多个实体地址被配置给所述多个实体子单元,所述存储控制器包括:
存储器接口控制电路,用以耦接至所述可复写式非易失性存储器模块;
错误检查与校正电路,用于解码存储在所述可复写式非易失性存储器模块中的码字数据;以及
处理器,耦接至所述存储器接口控制电路及所述错误检查与校正电路,
其中所述处理器用以开始执行读取指令,根据所述读取指令从所述多个实体地址中的一或多个目标实体地址读取所述码字数据,并且将所述码字数据传送至所述错误检查与校正电路,
其中所述错误检查与校正电路用以对所述码字数据执行解码操作,以获得已解码码字数据,
其中所述错误检查与校正电路还用以对所述已解码码字数据执行解扰乱操作,以获得扰乱前数据,
其中所述错误检查与校正电路还用以识别所述扰乱前数据中的验证数据与原始数据,
其中所述错误检查与校正电路还用以根据所述读取指令直接获取对应所述原始数据的一或多个第一***数据,
其中所述错误检查与校正电路还用以经由比对所述一或多个第一***数据与所述验证数据来判断所述原始数据是否正确,其中若所述验证数据等于所述一或多个第一***数据,所述错误检查与校正电路判定所述原始数据正确,
其中当判定所述原始数据是正确时,所述错误检查与校正电路判定所述码字数据解码成功,传送所述原始数据,并且回应所述处理器对应所述码字数据的所述原始数据已经解码成功,以完成所述读取指令的执行,
在上述所述错误检查与校正电路还用以根据所述读取指令直接获取对应所述原始数据的所述一或多个第一***数据的运作中,
所述错误检查与校正电路根据所述读取指令识别对应所述原始数据的多个第二***数据,
其中所述错误检查与校正电路根据预设的检查能力来决定所述验证数据的长度,
其中所述错误检查与校正电路根据所述验证数据的所述长度识别所述多个第二***数据中的所述一或多个第一***数据,其中所述一或多个第一***数据的总数据长度等于所述验证数据的长度,
其中,所述第二***数据包括用以存储所述原始数据的一或多个目标逻辑地址;用以存储所述原始数据的一或多个目标实体地址;以及用以存储所述原始数据的目标实体单元的实体单元信息。
8.根据权利要求7所述的存储控制器,其特征在于,
在识别出所述一或多个第一***数据后,所述错误检查与校正电路对所述一或多个第一***数据与所述原始数据执行循环冗余校验运算,以获得循环冗余校验码,
其中所述错误检查与校正电路根据所述循环冗余校验码与所述验证数据执行互斥或运算,以获得调整后验证数据,
其中在上述经由比对所述一或多个第一***数据与所述验证数据来判断所述原始数据是否正确的运作中,所述错误检查与校正电路将所述调整后验证数据代替所述验证数据以与所述一或多个第一***数据比对。
CN201711114340.7A 2017-11-13 2017-11-13 数据编码方法、数据解码方法以及存储控制器 Active CN109783001B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711114340.7A CN109783001B (zh) 2017-11-13 2017-11-13 数据编码方法、数据解码方法以及存储控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711114340.7A CN109783001B (zh) 2017-11-13 2017-11-13 数据编码方法、数据解码方法以及存储控制器

Publications (2)

Publication Number Publication Date
CN109783001A CN109783001A (zh) 2019-05-21
CN109783001B true CN109783001B (zh) 2022-04-22

Family

ID=66493072

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711114340.7A Active CN109783001B (zh) 2017-11-13 2017-11-13 数据编码方法、数据解码方法以及存储控制器

Country Status (1)

Country Link
CN (1) CN109783001B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112099985B (zh) * 2019-06-17 2023-09-12 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN113053451B (zh) * 2021-03-05 2022-05-10 深圳三地一芯电子有限责任公司 Nandflash内生成softbit的方法、***、主机以及储存介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188472A (zh) * 2007-12-10 2008-05-28 华中科技大学 可动态配置自适应编码调制器
US9354872B2 (en) * 2014-04-24 2016-05-31 Xitore, Inc. Apparatus, system, and method for non-volatile data storage and retrieval

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484529B2 (en) * 2010-06-24 2013-07-09 International Business Machines Corporation Error correction and detection in a redundant memory system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188472A (zh) * 2007-12-10 2008-05-28 华中科技大学 可动态配置自适应编码调制器
US9354872B2 (en) * 2014-04-24 2016-05-31 Xitore, Inc. Apparatus, system, and method for non-volatile data storage and retrieval

Also Published As

Publication number Publication date
CN109783001A (zh) 2019-05-21

Similar Documents

Publication Publication Date Title
US8560926B2 (en) Data writing method, memory controller and memory storage apparatus
TWI646543B (zh) 資料編碼方法、資料解碼方法以及儲存控制器
US10977116B2 (en) Data access method, memory control circuit unit and memory storage device
TW201810025A (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
CN111580741B (zh) 数据写入方法、存储器控制电路单元与存储器存储装置
TWI668699B (zh) 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置
CN109783001B (zh) 数据编码方法、数据解码方法以及存储控制器
CN109901784B (zh) 数据存取方法、存储器控制电路单元以及存储器储存装置
TWI709850B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI575533B (zh) 資料校正方法、記憶體控制電路單元與記憶體儲存裝置
CN109559774B (zh) 解码方法、存储器控制电路单元以及存储器存储装置
CN113724774B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN113140253B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
CN106897023B (zh) 数据读取方法、存储器控制电路单元及存储器储存装置
TWI751620B (zh) 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
CN110874282B (zh) 数据存取方法、存储器控制电路单元与存储器存储装置
CN110875081B (zh) 存储器测试方法与存储器测试***
TW202230377A (zh) 資料存取方法、記憶體控制電路單元及記憶體儲存裝置
CN109508252B (zh) 数据编码方法、存储器控制电路单元与存储器存储装置
CN109308930B (zh) 数据写入方法、存储器控制电路单元及存储器存储装置
CN111143253A (zh) 数据储存方法、存储器控制电路单元以及存储器储存装置
CN117608501B (zh) 电压调整方法、存储器存储装置及存储器控制电路单元
CN111666174B (zh) 数据写入方法、存储器控制电路单元以及存储器存储装置
CN113434331B (zh) 跨框编码管理方法、存储器存储装置及存储器控制电路
US20220413960A1 (en) Crossing frames encoding management method, memory storage apparatus and memory control circuit unit

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