CN102890969B - 数据处理方法、存储器控制器及存储器储存装置 - Google Patents
数据处理方法、存储器控制器及存储器储存装置 Download PDFInfo
- Publication number
- CN102890969B CN102890969B CN201110203498.8A CN201110203498A CN102890969B CN 102890969 B CN102890969 B CN 102890969B CN 201110203498 A CN201110203498 A CN 201110203498A CN 102890969 B CN102890969 B CN 102890969B
- Authority
- CN
- China
- Prior art keywords
- error
- data
- compressed information
- packed data
- correcting
- 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
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
一种数据处理方法、存储器控制器及存储器储存装置,数据处理方法包括如下步骤。压缩一数据并取得一压缩数据。取得对应压缩数据的压缩信息。分别为压缩信息及压缩数据产生错误校正码。分别将压缩信息、压缩数据及错误校正码写入至可复写式非易失性存储器模组中。分别读取可复写式非易失性存储器模组中的压缩信息、压缩数据及错误校正码。根据对应压缩信息的错误校正码,对压缩信息执行错误校正程序,以取得所读取的压缩信息在写入时所对应的储存状态。根据压缩信息的储存状态以及压缩数据的错误校正码,对压缩数据执行错误校正程序,以取得所读取的压缩数据在写入时所对应的储存状态。
Description
技术领域
本发明涉及一种数据处理方法,且尤其涉及一种存储器控制器及存储器储存装置的数据处理方法,以及存储器控制器及存储器储存装置。
背景技术
在存储器储存装置的设计上一般都会使用错误检查与校正电路来验证存储器储存装置中所储存的数据是否正确。具体来说,当与存储器储存装置连接的主机系统传送欲写入的数据至存储器储存装置时,存储器储存装置中的错误检查与校正电路会对应的产生一错误校正码(ErrorCorrecting Code)并且存储器储存装置中的存储器管理电路会将欲写入的数据与所产生的错误校正码写入至存储器储存装置的可复写式非易失性存储器模组中。之后,当主机系统欲从存储器储存装置中读取此数据时,存储器管理电路会从可复写式非易失性存储器模组中读取此数据及对应的错误校正码并且由错误检查与校正电路依据此数据及对应的错误校正码执行一错误校正程序以确保数据的正确性。
然而,在执行错误校正程序时,无论是编码或解码步骤,错误检查与校正电路都是需要清楚知道所要保护的数据长度为何,如此才能计算出正确的特征码,以检查出正确的错误位置。因此,如果所要保护的数据经过压缩,其数据长度将变的不固定,在解码时将会造成错误检查与校正电路无法正确地执行错误校正程序。因此,如何在解码压缩数据时让错误检查与校正电路正确地执行错误校正程序以提升数据的正确性,是此领域技术人员所致力的目标。
发明内容
本发明提供一种数据处理方法,其根据被压缩的数据的压缩信息,对被压缩的数据执行错误校正程序,以确保错误校正程序能够有效地被执行。
本发明提供一种存储器控制器,其根据被压缩的数据的压缩信息,对被压缩的数据执行错误校正程序,以确保错误校正程序能够有效地被执行。
本发明提供一种存储器储存装置,其错误校正程序根据被压缩的数据的压缩信息来执行,以确保错误校正程序的正确性。
本发明提供一种数据处理方法,用于一可复写式非易失性存储器模组。数据处理方法包括如下步骤。压缩至少一数据并取得至少一压缩数据。取得对应压缩数据的至少一压缩信息。分别为压缩信息及压缩数据产生不同的错误校正码(Error Correction Code,ECC)。分别将压缩信息、压缩数据及错误校正码写入至可复写式非易失性存储器模组中。
在本发明一实施例中,上述的数据处理方法还包括如下步骤。分别读取可复写式非易失性存储器模组中的压缩信息、压缩数据及错误校正码。根据对应压缩信息的错误校正码,对压缩信息执行一第一错误校正程序,以取得所读取的压缩信息在写入时所对应的储存状态。根据压缩信息在写入时所对应的储存状态以及对应压缩数据的错误校正码,对压缩数据执行一第二错误校正程序,以取得所读取的压缩数据在写入时所对应的储存状态。对执行完第二错误校正程序的压缩数据进行一数据解压缩程序,以取得未压缩前的数据。
在本发明一实施例中,上述的压缩数据并取得压缩数据的步骤包括从一主机系统接收数据,并对数据进行一数据数据压缩程序,以取得压缩数据。
在本发明一实施例中,上述的可复写式非易失性存储器模组包括多个实体区块,每一实体区块包括多个实体页面,每一实体页面包括多个档头区及多个错误校正码框(ECC frame)。错误校正码框配置在档头区之后。将压缩信息、压缩数据及错误校正码写入至可复写式非易失性存储器模组中的步骤包括将压缩信息及对应压缩信息的错误校正码写入至档头区。
在本发明一实施例中,上述的将压缩信息、压缩数据及错误校正码写入至可复写式非易失性存储器模组中的步骤还包括将压缩数据及对应压缩数据的错误校正码写入至错误校正码框中。
本发明提供一种存储器控制器,包括一主机系统接口、一主机系统接口、一存储器接口、一压缩暨解压缩模组、一错误检查与校正电路以及一存储器管理电路。主机系统接口耦接一主机系统。存储器接口耦接一可复写式非易失性存储器模组。压缩暨解压缩模组耦接至一存储器管理电路,压缩至少一数据并取得至少一压缩数据以及对应压缩数据的至少一压缩信息。错误检查与校正电路耦接至存储器管理电路,分别为压缩信息及压缩数据产生对应的错误校正码(Error Correction Code,ECC)。存储器管理电路耦接至主机系统接口与存储器接口。存储器管理电路将压缩信息、压缩数据及对应压缩信息及压缩数据的错误校正码一同写入至可复写式非易失性存储器模组中。
在本发明一实施例中,上述的存储器管理电路分别读取可复写式非易失性存储器模组中的压缩信息、压缩数据及对应压缩信息及压缩数据的错误校正码。错误检查与校正电路根据对应压缩信息的错误校正码,对压缩信息执行一第一错误校正程序,以取得所读取的压缩信息在写入时所对应的储存状态。错误检查与校正电路根据压缩信息在写入时所对应的储存状态以及对应压缩数据的错误校正码,对压缩数据执行一第二错误校正程序,以取得所读取的压缩数据在写入时所对应的储存状态。压缩暨解压缩模组对执行完第二错误校正程序的压缩数据进行一数据解压缩程序,以取得未压缩前的数据。
在本发明一实施例中,上述的错误检查与校正电路包括一第一错误检查与校正模组以及一第二错误检查与校正模组。第一错误检查与校正模组耦接至存储器管理电路,根据对应压缩信息的错误校正码,对压缩信息执行第一错误校正程序,以取得所读取的压缩信息在写入时所对应的储存状态。第二错误检查与校正模组耦接至存储器管理电路,根据压缩信息在写入时所对应的储存状态以及对应压缩数据的错误校正码,对压缩数据执行第二错误校正程序,以取得所读取的压缩数据在写入时所对应的储存状态。
在本发明一实施例中,上述的可复写式非易失性存储器模组包括多个实体区块。每一实体区块包括多个实体页面,每一实体页面包括多个档头区及多个错误校正码框(ECC frame)。错误校正码框配置在档头区之后,存储器管理电路将压缩信息及对应压缩信息的错误校正码写入至档头区。
在本发明一实施例中,上述的存储器管理电路将压缩数据及对应压缩数据的错误校正码写入至错误校正码框中。
本发明提供一种存储器储存装置,包括一连接器、一可复写式非易失性存储器模组以及一存储器控制器。连接器耦接一主机系统。存储器控制器耦接至连接器与可复写式非易失性存储器模组。存储器控制器压缩至少一数据并取得至少一压缩数据以及对应压缩数据的至少一压缩信息,分别为压缩信息及压缩数据产生对应的错误校正码。存储器控制器将压缩信息、压缩数据及对应压缩信息及压缩数据的错误校正码一同写入至可复写式非易失性存储器模组中。
在本发明一实施例中,上述的存储器控制器分别读取可复写式非易失性存储器模组中的压缩信息、压缩数据及对应压缩信息及压缩数据的错误校正码。存储器控制器根据对应压缩信息的错误校正码,对压缩信息执行一第一错误校正程序,以取得所读取的压缩信息在写入时所对应的储存状态。存储器控制器根据压缩信息在写入时所对应的储存状态以及对应压缩数据的错误校正码,对压缩数据执行一第二错误校正程序,以取得所读取的压缩数据在写入时所对应的储存状态。存储器控制器对执行完第二错误校正程序的压缩数据进行一数据解压缩程序,以取得未压缩前的数据。
在本发明一实施例中,上述的可复写式非易失性存储器模组包括多个实体区块。每一实体区块包括多个实体页面,每一实体页面包括多个档头区及多个错误校正码框(ECC frame)。错误校正码框配置在档头区之后。存储器控制器将压缩信息及对应压缩信息的错误校正码写入至档头区。
在本发明一实施例中,上述的存储器控制器将压缩数据及对应压缩数据的错误校正码写入至错误校正码框中。
在本发明一实施例中,上述的在每一实体页面中,档头区全部配置在错误校正码框之前,且档头区还包括储存有一固件信息。
在本发明一实施例中,上述的压缩信息包括压缩数据的数据长度信息。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1A是根据本发明实施例显示使用可复写式非易失性存储器储存装置的主机系统。
图1B是根据本发明范例实施例所显示的计算机、输入/输出装置与存储器储存装置的示意图。
图1C是根据本发明另一范例实施例所显示的主机系统与存储器储存装置的示意图。
图2是显示图1A所示的存储器储存装置的概要方框图。
图3是根据本发明范例实施例所显示的存储器控制器的概要方框图。
图4是根据本发明范例实施例所显示的单一笔数据在写入可复写式非易失性存储器模组106时的压缩暨编码示意图。
图5是根据本发明范例实施例所显示的数据写入可复写式非易失性存储器模组106时的步骤流程图。
图6是根据本发明范例实施例所显示的单一笔数据从可复写式非易失性存储器模组106中读出时的解压缩暨解码示意图。
图7是根据本发明范例实施例所显示的从可复写式非易失性存储器模组106读取数据时的步骤流程图。
图8根据本发明范例实施例所显示的可复写式非易失性存储器模组106的数据格式示意图。
图9根据本发明另一范例实施例所显示的可复写式非易失性存储器模组106的数据格式示意图。
图10是根据本发明范例实施例所显示的数据处理方法的步骤流程图。
附图标记:
1000:主机系统
1100:计算机
1102:微处理器
1104:随机存取存储器
1106:输入/输出装置
1108:系统总线
1110:数据传输接口
1202:鼠标
1204:键盘
1206:显示器
1208:打印机
1212:移动存储器
1214:存储卡
1216:固态硬盘
1310:数码相机
1312:SD卡
1314:MMC卡
1316:记忆棒
1318:CF卡
1320:嵌入式储存装置
100:存储器储存装置
102:连接器
104:存储器控制器
106:可复写式非易失性存储器模组
202:存储器管理电路
204:主机系统接口
206:存储器接口
252:储存单元
254:电源管理电路
256:错误检查与校正电路
404:压缩暨解压缩模组
406a:第一错误检查与校正模组
406b:第二错误检查与校正模组
S500、S502、S504、S506:数据写入方法的步骤
S700、S702、S704、S706:数据读取方法的步骤
S1000、S1002、S1004、S1006、S1008、S1010、S1012、S1014:数据处理方法的步骤
C_DATA:被压缩的数据
ECC:被压缩的数据的错误校正码
H_ECC:压缩信息的错误校正码
DATA:未压缩前的数据
H:档头区
具体实施方式
有鉴于现有的错误校正程序的限制,本发明的范例实施例提出一个数据处理方法,其应用于具有不同于现有的数据格式的存储器储存装置。此方法在可复写式非易失性存储器模组的每一实体页面的起始地址处放置对应数据位元区的档头数据(header)。各该档头数据储存对应各数据的压缩信息,而该等压缩信息亦拥有自身的错误校正保护,可独立地被解码。因此,当存储器控制器在读取数据前可先将压缩信息读出,接着再根据该等压缩信息来对所欲读取的数据进行错误校正程序,以确保该错误校正程序能够有效地被执行。此外,由于该等压缩信息亦有错误校正的保护,因此其正确性亦无庸置疑。为更清楚地了解本发明,以下将配合附图,以至少一范例实施例来作详细说明。
图1A是根据本发明实施例显示使用可复写式非易失性存储器储存装置的主机系统。
请参照图1A,主机系统1000一般包括计算机1100与输入/输出(input/output,I/O)装置1106。计算机1100包括微处理器1102、随机存取存储器(random access memory,RAM)1104、系统总线1108以及数据传输接口1110。输入/输出装置1106包括如图2B的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图2B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中可复写式非易失性存储器储存装置100是通过数据传输接口1110与主机系统1000的其他元件耦接。藉由微处理器1102、随机存取存储器1104与输入/输出装置1106的处理可将数据写入至可复写式非易失性存储器储存装置100或从可复写式非易失性存储器储存装置100中读取数据。例如,可复写式非易失性存储器储存装置100可以是如图1B所示的移动存储器1212、存储卡1214或固态硬盘(Solid StateDrive,SSD)1216。
一般而言,主机1000可实质地为可储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以计算机系统来作说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,可复写式非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接耦接于主机系统的基板上。
图2是显示图1A所示的存储器储存装置的概要方框图。
请参照图2,存储器储存装置100包括连接器102、存储器控制器104与可复写式非易失性存储器模组106。在本范例实施例中,连接器102是相容于序列先进附件(Serial Advanced Technology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102亦可以是符合电气和电子工程师协会(Institute of Electrical and ElectronicEngineers,IEEE)1394标准、平行先进附件(Parallel Advanced TechnologyAttachment,PATA)标准、高速周边零件连接接口(Peripheral ComponentInterconnect Express,PCI Express)标准、通用串行总线(Universal SerialBus,USB)标准、安全数位(Secure Digital,SD)接口标准、记忆棒(MemoryStick,MS)接口标准、多媒体储存卡(Multi Media Card,MMC)接口标准、小型可复写式非挥发性(Compact Flash,CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模组106中进行数据的写入、读取与抹除等运作。
可复写式非易失性存储器模组106是耦接至存储器控制器104,并且用以储存主机系统1000所写入的数据。在本范例实施例中,可复写式非易失性存储器模组106为多阶存储单元(Multi Level Cell,MLC)NAND快闪存储器模组。然而,本发明不限于此,可复写式非易失性存储器模组106亦可是单阶存储单元(Single Level Cell,SLC)NAND快闪存储器模组、其他可复写式非易失性存储器模组或其他具有相同特性的存储器模组。
图3是根据本发明范例实施例所显示的存储器控制器的概要方框图。
请参照图3,存储器控制器104包括存储器管理电路202、主机系统接口204与存储器接口206。
存储器管理电路202用以控制存储器控制器104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器储存装置100运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
在本范例实施例中,存储器管理电路202的控制指令是以固件型式来实作。例如,存储器管理电路202具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器储存装置100运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在本发明另一范例实施例中,存储器管理电路202的控制指令亦可以程序码型式储存于可复写式非易失性存储器模组106的特定区域(例如,存储器模组中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码段,并且当存储器控制器104被使能时,微处理器单元会先执行此驱动码段来将储存于可复写式非易失性存储器模组106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。此外,在本发明另一范例实施例中,存储器管理电路202的控制指令亦可以一硬件型式来实作。
主机系统接口204是耦接至存储器管理电路202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机系统接口204来传送至存储器管理电路202。在本范例实施例中,主机系统接口204是相容于SATA标准。然而,必须了解的是本发明不限于此,主机系统接口204亦可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是耦接至存储器管理电路202并且用以存取可复写式非易失性存储器模组106。也就是说,欲写入至可复写式非易失性存储器模组106的数据会经由存储器接口206转换为可复写式非易失性存储器模组106所能接受的格式。
在本发明一范例实施例中,存储器控制器104还包括一储存单元252。储存单元252是耦接至存储器管理电路202可用以暂存来自于主机系统1000的数据与指令或来自于可复写式非易失性存储器模组106的数据。
在本发明一范例实施例中,存储器控制器104还包括电源管理电路254。电源管理电路254是耦接至存储器管理电路202并且用以控制存储器储存装置100的电源。
在本发明一范例实施例中,存储器控制器104还包括压缩暨解压缩模组404,用以对来自于主机系统1000的数据或来自于可复写式非易失性存储器模组106的数据进行压缩或解压缩。在本实施例中,压缩暨解压缩模组404例如是独立配置于存储器控制器104内的一硬件电路。在另一实施例中,压缩暨解压缩模组404亦可以固件的形式配置于存储器管理电路202内。
在本发明一范例实施例中,存储器控制器104还包括错误检查与校正电路256。错误检查与校正电路256是耦接至存储器管理电路202并且用以执行错误校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路256会为对应此写入指令的数据产生对应的错误校正码(ErrorChecking and Correcting Code,ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误校正码写入至可复写式非易失性存储器模组106中。之后,当存储器管理电路202从可复写式非易失性存储器模组106中读取数据时会同时读取此数据对应的错误校正码,并且错误检查与校正电路256会依据此错误校正码对所读取的数据执行错误校正程序。
在本范例实施例中,错误检查与校正电路256包括第一错误检查与校正模组406a及第二错误检查与校正模组406b。第一错误检查与校正模组406a用以执行一第一错误校正程序以确保压缩暨解压缩模组404所提供的压缩信息的正确性。第二错误检查与校正模组406b用以执行一第二错误校正程序以确保来自于压缩暨解压缩模组404的数据或来自于可复写式非易失性存储器模组106的数据的正确性。
可复写式非易失性存储器模组106是耦接至存储器控制器104,并且用以储存主机系统1000所写入的数据。可复写式非易失性存储器模组106具有实体区块。例如,实体区块可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体区块分别具有多个实体页面,并且每一实体页面具有至少一实体扇区,其中属于同一个实体区块的实体页面可被独立地写入且被同时地抹除。例如,每一实体区块是由128个实体页面所组成,并且每一实体页面具有8个实体扇区(sector)。也就是说,在每一实体扇区为512字节(byte)的例子中,每一实体页面的容量为4千字节(Kilobyte,K)。然而,必须了解的是,本发明不限于此,每一实体区块是可由64个实体页面、256个实体页面或其他任意个实体页面所组成。
更详细来说,实体区块为抹除的最小单位。亦即,每一实体区块含有最小数目之一并被抹除的存储单元。实体页面为程序化的最小单元。即,实体页面为写入数据的最小单元。然而,必须了解的是,在本发明另一范例实施例中,写入数据的最小单位亦可以是实体扇区或其他大小。每一实体页面通常包括数据位元区与冗余位元区。数据位元区用以储存使用者的数据,而冗余位元区用以储存系统的数据(例如,错误检查与校正码)。
值得说明的是,在本发明的一范例实施例中,可复写式非易失性存储器模组106的每一实体页面的数据位元区前配置有对应的档头区,其实体区块的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模组106的实体区块进行操作。也就是说,当存储器控制器104在读取数据前先将储存于档头区的压缩信息读出,并进行第一错误校正程序,接着再根据该等压缩信息来对各数据位元区的数据进行第二错误校正程序。藉此,可确保第二错误校正程序能够有效地被执行。各该档头区除了储存对应各数据的压缩信息,还具有压缩信息自身的错误校正码保护,可独立地被解码。
图4是根据本发明范例实施例所显示的单一笔数据在写入可复写式非易失性存储器模组106时的压缩暨编码示意图。
请参照图3至图4,在本实施例中,当存储器控制器104从主机系统1000的接收数据后,压缩暨解压缩模组404首先会对来自于主机系统1000的数据进行数据压缩程序,以取得被压缩的数据。接着,压缩暨解压缩模组404会将对应压缩数据的压缩信息,诸如数据长度等信息,提供至第一错误检查与校正模组406a。
具体来说,当存储器控制器104欲将数据写入可复写式非易失性存储器模组106时,第一错误检查与校正模组406a会针对压缩信息产生对应的错误校正码,并将压缩信息及其对应的错误校正码经由存储器接口206写入至可复写式非易失性存储器模组106。于此同时,第二错误检查与校正模组406b会针对来自于压缩暨解压缩模组404的数据产生对应的错误校正码,并将被压缩的数据及其对应的错误校正码经由存储器接口206写入至可复写式非易失性存储器模组106。
进一步而言,在欲将数据写入至可复写式非易失性存储器模组106时,存储器控制器104会从主机系统1000接收所欲写入的数据DATA,并藉由压缩暨解压缩模组404对数据DATA进行一数据压缩程序,以取得被压缩后的数据C_DATA及其压缩信息。应注意的是,在本实施例中,由于压缩信息的数据量较小,因此压缩暨解压缩模组404无须对数据C_DATA的压缩信息进行数据压缩程序,但本发明并不加以限制,设计者可依据实际需求来决定压缩或不压缩该压缩信息。
接着,在取得数据C_DATA的压缩信息后,存储器管理电路202会分别将数据C_DATA及其压缩信息传递至第二错误检查与校正模组406b及第一错误检查与校正模组406a。之后,第一错误检查与校正模组406a为压缩信息产生错误校正码H_ECC,同时,第二错误检查与校正模组406b对被压缩的数据C_DATA执行一ECC编码程序,以产生错误校正码ECC并将压缩信息、错误校正码H_ECC、被压缩的数据C_DATA以及对应被压缩的数据C_DATA的错误校正码ECC一同写入至可复写式非易失性存储器模组106中。惟应注意的是,本实施例的第一错误检查与校正模组406a及第二错误检查与校正模组406b的作动次序原则上并无时间先后的关联,两者可独立操作,不互相影响。
因此,本实施例的数据在经过压缩后会产生压缩完的数据,以及压缩完的数据长度。在图4中,数据C_DATA是经过压缩的数据,所以其数据长度的信息将与数据C_DATA分别经过ECC的编码后就可以写入可复写式非易失性存储器模组106。如此一来,错误校正码ECC就只需保护数据量较短的数据C_DATA而不是未经压缩的数据DATA,因而可以提升错误校正码ECC本身的保护能力。
此外,上述的数据写入方法可简结如下。图6是根据本发明范例实施例所显示的数据写入可复写式非易失性存储器模组106时的步骤流程图。
请参照图5。首先,在步骤S500中,从主机系统1000接收所欲写入的数据DATA,并对其进行数据压缩程序,以取得被压缩的数据C_DATA。接着,在步骤S502中,取得被压缩的数据C_DATA的压缩信息。之后,在步骤S504中,分别为被压缩的数据C_DATA及其压缩信息产生不同的错误校正码ECC及H_ECC。继之,在步骤S506中,一同将压缩信息、被压缩的数据C_DATA及错误校正码ECC及H_ECC写入至可复写式非易失性存储器模组106中。
本发明的实施例的数据写入方法可以由图3至图4的实施例的叙述中获得足够的教示、建议与实施说明,因此不再赘述。
图6是根据本发明范例实施例所显示的单一笔数据从可复写式非易失性存储器模组106中读出时的解压缩暨解码示意图。
请参照图3及图6,当存储器控制器104欲从可复写式非易失性存储器模组106中读取数据时,第一错误检查与校正模组406a会根据压缩信息的错误校正码,对其执行一第一错误校正程序,以取得所读取的压缩信息在写入时所对应的储存状态。于此同时,第二错误检查与校正模组406b会根据压缩信息在写入时所对应的储存状态以及被压缩的数据的错误校正码,对被压缩的数据执行一第二错误校正程序,以取得所读取的被压缩的数据在写入时所对应的储存状态。
进一步而言,在欲从可复写式非易失性存储器模组106读取数据时,存储器管理电路202会分别读取可复写式非易失性存储器模组中的压缩信息、被压缩的数据C_DATA及错误校正码ECC及H_ECC。接着,在读取压缩信息、被压缩的数据C_DATA及错误校正码ECC及H_ECC后,存储器管理电路202会分别将压缩信息及错误校正码H_ECC传递至第一错误检查与校正模组406a,以及将被压缩的数据C_DATA及错误校正码ECC传递至第二错误检查与校正模组406b。之后,第一错误检查与校正模组406a根据压缩信息的错误校正码H_ECC,对该压缩信息执行错误校正程序,诸如错误校正码H_ECC的解码程序等,以取得所读取的压缩信息在写入时所对应的储存状态。同时,第二错误检查与校正模组406b根据压缩信息在写入时所对应的储存状态以及被压缩的数据的错误校正码ECC,对被压缩的数据C_DATA执行错误校正程序,诸如错误校正码ECC的解码程序等,以取得所读取的被压缩的数据在写入时所对应的储存状态。继之,压缩暨解压缩模组404再对经错误校正的被压缩的数据C_DATA执行数据解压缩程序,以取得未压缩前的数据DATA。
在本实施例中,由于压缩信息的数据量较小,因此可以较快地被解码并更正,以得到正确的压缩信息。在有了压缩信息之后,被压缩的数据C_DATA的错误校正程序就可以正确地被执行,进而得到正确的被压缩数据C_DATA,以及未压缩前的数据DATA。
另一方面,在本实施例中,错误检查与校正电路256包括第一错误检查与校正模组406a及第二错误检查与校正模组406b,两者分别用以产生压缩信息及被压缩数据C_DATA的错误校正码,以及执行第一错误校正程序及第二错误校正程序,惟本发明并不限于此。在另一实施例中,错误检查与校正电路256亦可仅使用单一错误检查与校正电路来产生压缩信息及被压缩数据C_DATA的错误校正码,以及执行第一错误校正程序及第二错误校正程序。
此外,上述的数据读取方法可简结如下。图7是根据本发明范例实施例所显示的从可复写式非易失性存储器模组106读取数据时的步骤流程图。
请参照图7。首先,在步骤S700中,分别从可复写式非易失性存储器模组106读取压缩信息、被压缩的数据C_DATA及错误校正码ECC及H_ECC。接着,在步骤S702中,根据压缩信息的错误校正码H_ECC,对该压缩信息执行错误校正程序,以取得所读取的压缩信息在写入时所对应的储存状态。之后,在步骤S704中,根据压缩信息在写入时所对应的储存状态以及被压缩的数据的错误校正码ECC,对被压缩的数据C_DATA执行错误校正程序,以取得所读取的被压缩的数据在写入时所对应的储存状态。继之,在步骤S706中,对经错误校正的被压缩的数据C_DATA执行数据解压缩程序,以取得未压缩前的数据DATA。
本发明的实施例的数据写入方法可以由图3及图6的实施例的叙述中获得足够的教示、建议与实施说明,因此不再赘述。
图8根据本发明范例实施例所显示的可复写式非易失性存储器模组106的数据格式示意图。图8所显示者即实体页面的数据格式示意图。本实施例的各实体页面在逻辑概念上可包括多个档头区H(header area)及多个错误校正码框(ECC frame)。并且,在本实施例的各实体页面中,其各档头区H对应地配置在各错误校正码框之前,如图8所示。各档头区H所储存的数据包括其所对应的被压缩数据C_DATA的压缩信息,以及该压缩信息的错误校正码H_ECC。而各错误校正码框所对应的数据包括被压缩数据C_DATA及其所对应的错误校正码ECC。
因此,本实施例的存储器管理电路202例如将压缩信息及对应压缩信息的错误校正码H_ECC写入至档头区H,并将被压缩的数据C_DATA及其错误校正码ECC形成错误校正码框写入至各档头区H之后。换句话说,图5的步骤S506可还包括将压缩信息及其错误校正码H_ECC写入至档头区H,以及将被压缩的数据C_DATA及其错误校正码ECC形成错误校正码框写入至各档头区H之后等两步骤。
应注意的是,上述的“前”、“后”方向是参照图8说明时的参考,并不用以限定本发明的数据格式。另外,本发明的数据格式亦不限定于将各档头区对应地配置在各错误校正码框之前。各档头区亦可集中配置于其页面的起始位置。
图9根据本发明另一范例实施例所显示的可复写式非易失性存储器模组106的数据格式示意图。请参照图9,本实施例的数据格式的配置方式将各档头区H集中在一起,而配置于在此实体页面的最前头(即实体页面的起始地址)。并且,本实施例的各档头区H所储存的数据除了包括其所对应的被压缩数据C_DATA的压缩信息,以及该压缩信息的错误校正码H_ECC之外,至少还包括各冗余位元区(未示出)的固件相关信息。此种配置方式的其中的一优点在于所有储存在各档头区H的数据可以被单独地读取出来解码。当固件只需要冗余位元区的信息时,就可以单独将其读出来解码,而且因为其数据量较小,所以错误校正的解码时间也会相对较短,相较于现有的数据格式,本发明的固件可以更快得到正确的冗余位元区的相关信息。
图10是根据本发明范例实施例所显示的数据处理方法的步骤流程图。
请参照图10。首先,在步骤S1000中,从主机系统1000接收所欲写入的数据DATA,并对其进行数据压缩程序,以取得被压缩的数据C_DATA。接着,在步骤S1002中,取得被压缩的数据C_DATA的压缩信息。之后,在步骤S1004中,分别为被压缩的数据C_DATA及其压缩信息产生不同的错误校正码ECC及H_ECC。继之,在步骤S1006中,一同将压缩信息、被压缩的数据C_DATA及错误校正码ECC及H_ECC写入至可复写式非易失性存储器模组106中。换句话说,图10的步骤S1006可还包括将压缩信息及其错误校正码H_ECC写入至档头区H,以及将被压缩的数据C_DATA及其错误校正码ECC所形成的错误校正码框写入至各档头区H之后等两步骤。
接着,在步骤S1008中,分别从可复写式非易失性存储器模组106读取压缩信息、被压缩的数据C_DATA及错误校正码ECC及H_ECC。之后,在步骤S1010中,根据压缩信息的错误校正码H_ECC,对该压缩信息执行错误校正程序,以取得所读取的压缩信息在写入时所对应的储存状态。继之,在步骤S1012中,根据压缩信息在写入时所对应的储存状态以及被压缩的数据的错误校正码ECC,对被压缩的数据C_DATA执行错误校正程序,以取得所读取的被压缩的数据在写入时所对应的储存状态。接着,在步骤S1014中,对经错误校正的被压缩的数据C_DATA执行数据解压缩程序,以取得未压缩前的数据DATA。
本发明的实施例的数据处理方法可以由图1A至图9的实施例的叙述中获得足够的教示、建议与实施说明,因此不再赘述。
综上所述,在本发明的范例实施例中,数据处理方法是应用于具有不同于现有的数据格式的存储器储存装置。当存储器控制器在读取数据前可先将压缩信息读出,再根据该等压缩信息来对所欲读取的数据进行错误校正程序,以确保该错误校正程序能够有效地被执行。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中的普通技术人员,当可作些许更动与润饰,而不脱离本发明的精神和范围。
Claims (20)
1.一种数据处理方法,用于一可复写式非易失性存储器模组,该数据处理方法包括:
压缩至少一数据并取得至少一压缩数据;
取得对应该至少一压缩数据的至少一压缩信息;
分别为该至少一压缩信息及该至少一压缩数据产生不同的错误校正码;以及
分别将该至少一压缩信息、该至少一压缩数据及该些错误校正码写入至该可复写式非易失性存储器模组中。
2.根据权利要求1所述的数据处理方法,其中还包括:
分别读取该可复写式非易失性存储器模组中的该至少一压缩信息、该至少一压缩数据及该些错误校正码;
根据对应该至少一压缩信息的错误校正码,对该至少一压缩信息执行一第一错误校正程序,以取得所读取的该至少一压缩信息在写入时所对应的储存状态;
根据该至少一压缩信息在写入时所对应的储存状态以及对应该至少一压缩数据的错误校正码,对该至少一压缩数据执行一第二错误校正程序,以取得所读取的该至少一压缩数据在写入时所对应的储存状态;以及
对执行完该第二错误校正程序的该至少一压缩数据进行一数据解压缩程序,以取得未压缩前的该至少一数据。
3.根据权利要求1所述的数据处理方法,其中压缩该至少一数据并取得该至少一压缩数据的步骤包括:
从一主机系统接收该至少一数据,并对该至少一数据进行一数据压缩程序,以取得该至少一压缩数据。
4.根据权利要求1所述的数据处理方法,其中该可复写式非易失性存储器模组包括多个实体区块,每一该些实体区块包括多个实体页面,每一该些实体页面包括多个档头区及多个错误校正码框,其中该些错误校正码框配置在该些档头区之后,将该至少一压缩信息、该至少一压缩数据及该些错误校正码写入至该可复写式非易失性存储器模组中的步骤包括:
将该至少一压缩信息及对应该至少一压缩信息的错误校正码写入至该些档头区。
5.根据权利要求4所述的数据处理方法,其中将压缩信息、压缩数据及错误校正码写入至可复写式非易失性存储器模组中的该步骤还包括:
将该至少一压缩数据及对应该至少一压缩数据的错误校正码写入至该些错误校正码框中。
6.根据权利要求4所述的数据处理方法,其中在每一该些实体页面中,该些档头区全部配置在该些错误校正码框之前,且该些档头区还包括储存有一固件信息。
7.根据权利要求1所述的数据处理方法,其中该些压缩信息包括该至少一压缩数据的数据长度信息。
8.一种存储器控制器,包括:
一主机系统接口,耦接一主机系统;
一存储器接口,耦接一可复写式非易失性存储器模组;
一压缩暨解压缩模组,耦接至一存储器管理电路,压缩至少一数据并取得至少一压缩数据以及对应该至少一压缩数据的至少一压缩信息;
一错误检查与校正电路,耦接至该存储器管理电路,分别为该至少一压缩信息及该至少一压缩数据产生对应的错误校正码;以及
该存储器管理电路,耦接至该主机系统接口与该存储器接口,该存储器管理电路将该至少一压缩信息、该至少一压缩数据及对应该至少一压缩信息及该至少一压缩数据的错误校正码一同写入至该可复写式非易失性存储器模组中。
9.根据权利要求8所述的存储器控制器,其中
该存储器管理电路分别读取该可复写式非易失性存储器模组中的该至少一压缩信息、该至少一压缩数据及对应该至少一压缩信息及该至少一压缩数据的错误校正码;
该错误检查与校正电路根据对应该至少一压缩信息的错误校正码,对该至少一压缩信息执行一第一错误校正程序,以取得所读取的该至少一压缩信息在写入时所对应的储存状态,以及该错误检查与校正电路根据该至少一压缩信息在写入时所对应的储存状态以及对应该至少一压缩数据的该些错误校正码,对该至少一压缩数据执行一第二错误校正程序,以取得所读取的该至少一压缩数据在写入时所对应的储存状态;以及
该压缩暨解压缩模组对执行完该第二错误校正程序的该至少一压缩数据进行一数据解压缩程序,以取得未压缩前的该至少一数据。
10.根据权利要求9所述的存储器控制器,其中该错误检查与校正电路包括;
一第一错误检查与校正模组,耦接至该存储器管理电路,根据对应该至少一压缩信息的该些错误校正码,对该至少一压缩信息执行该第一错误校正程序,以取得所读取的该至少一压缩信息在写入时所对应的储存状态;以及
一第二错误检查与校正模组,耦接至该存储器管理电路,根据该至少一压缩信息在写入时所对应的储存状态以及对应该至少一压缩数据的该些错误校正码,对该至少一压缩数据执行该第二错误校正程序,以取得所读取的该至少一压缩数据在写入时所对应的储存状态。
11.根据权利要求8所述的存储器控制器,其中该可复写式非易失性存储器模组包括多个实体区块,每一该些实体区块包括多个实体页面,每一该些实体页面包括多个档头区及多个错误校正码框,其中该些错误校正码框配置在该些档头区之后,该存储器管理电路将该至少一压缩信息及对应该至少一压缩信息的错误校正码写入至该些档头区。
12.根据权利要求11所述的存储器控制器,其中该存储器管理电路将该至少一压缩数据及对应该至少一压缩数据的错误校正码写入至该些错误校正码框中。
13.根据权利要求11所述的存储器控制器,其中在每一该些实体页面中,该些档头区全部配置在该些错误校正码框之前,且该些档头区还包括储存有一固件信息。
14.根据权利要求8所述的存储器控制器,其中该至少一压缩信息包括该至少一压缩数据的数据长度信息。
15.一种存储器储存装置,包括:
一连接器,耦接一主机系统;
一可复写式非易失性存储器模组;以及
一存储器控制器,耦接至该连接器与该可复写式非易失性存储器模组,该存储器控制器压缩至少一数据并取得至少一压缩数据以及对应该至少一压缩数据的至少一压缩信息;分别为该至少一压缩信息及该至少一压缩数据产生对应的错误校正码;将该至少一压缩信息、该至少一压缩数据及对应该至少一压缩信息及该至少一压缩数据的错误校正码一同写入至该可复写式非易失性存储器模组中。
16.根据权利要求15所述的存储器储存装置,其中该存储器控制器分别读取该可复写式非易失性存储器模组中的该至少一压缩信息、该至少一压缩数据及对应该至少一压缩信息及该至少一压缩数据的错误校正码;该存储器控制器根据对应该至少一压缩信息的错误校正码,对该至少一压缩信息执行一第一错误校正程序,以取得所读取的该至少一压缩信息在写入时所对应的储存状态;该存储器控制器根据该至少一压缩信息在写入时所对应的储存状态以及对应该至少一压缩数据的错误校正码,对该至少一压缩数据执行一第二错误校正程序,以取得所读取的该至少一压缩数据在写入时所对应的储存状态;以及该存储器控制器对执行完该第二错误校正程序的该至少一压缩数据进行一数据解压缩程序,以取得未压缩前的该至少一数据。
17.根据权利要求15所述的存储器储存装置,其中该可复写式非易失性存储器模组包括多个实体区块,每一该些实体区块包括多个实体页面,每一该些实体页面包括多个档头区及多个错误校正码框,其中该些错误校正码框配置在该些档头区之后,该存储器控制器将该至少一压缩信息及对应该至少一压缩信息的错误校正码写入至该些档头区。
18.根据权利要求17所述的存储器储存装置,其中该存储器控制器将该至少一压缩数据及对应该至少一压缩数据的错误校正码写入至该些错误校正码框中。
19.根据权利要求17所述的存储器储存装置,其中在每一该些实体页面中,该些档头区全部配置在该些错误校正码框之前,且该些档头区还包括储存有一固件信息。
20.根据权利要求15所述的存储器储存装置,其中该至少一压缩信息包括该至少一压缩数据的数据长度信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110203498.8A CN102890969B (zh) | 2011-07-20 | 2011-07-20 | 数据处理方法、存储器控制器及存储器储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110203498.8A CN102890969B (zh) | 2011-07-20 | 2011-07-20 | 数据处理方法、存储器控制器及存储器储存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102890969A CN102890969A (zh) | 2013-01-23 |
CN102890969B true CN102890969B (zh) | 2015-06-10 |
Family
ID=47534448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110203498.8A Active CN102890969B (zh) | 2011-07-20 | 2011-07-20 | 数据处理方法、存储器控制器及存储器储存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102890969B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110660421B (zh) * | 2018-06-29 | 2021-11-23 | 上海磁宇信息科技有限公司 | 一种带纠错和压缩电路的磁性随机存储器 |
CN112540719A (zh) * | 2019-09-23 | 2021-03-23 | 深圳宏芯宇电子股份有限公司 | 数据编码方法、存储器存储装置及存储器控制器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6295617B1 (en) * | 1997-06-30 | 2001-09-25 | Nec Corporation | Testing method of semiconductor memory device and semiconductor memory device applicable to the method |
CN1509478A (zh) * | 2001-05-21 | 2004-06-30 | ӡ�����Ƽ��ɷ�����˾ | 用于测试数据存储器的测试方法 |
US7162681B2 (en) * | 2001-06-14 | 2007-01-09 | Pioneer Corporation | Information reproducing apparatus, method of correcting reproducing program, and information recording medium |
CN101876947A (zh) * | 2009-04-30 | 2010-11-03 | 国际商业机器公司 | 用于存储数据的方法及其系统 |
-
2011
- 2011-07-20 CN CN201110203498.8A patent/CN102890969B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6295617B1 (en) * | 1997-06-30 | 2001-09-25 | Nec Corporation | Testing method of semiconductor memory device and semiconductor memory device applicable to the method |
CN1509478A (zh) * | 2001-05-21 | 2004-06-30 | ӡ�����Ƽ��ɷ�����˾ | 用于测试数据存储器的测试方法 |
US7162681B2 (en) * | 2001-06-14 | 2007-01-09 | Pioneer Corporation | Information reproducing apparatus, method of correcting reproducing program, and information recording medium |
CN101876947A (zh) * | 2009-04-30 | 2010-11-03 | 国际商业机器公司 | 用于存储数据的方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102890969A (zh) | 2013-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8560926B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US9201785B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US9336081B2 (en) | Data writing and reading method, and memory controller and memory storage apparatus using the same for improving reliability of data access | |
CN102760099B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
TWI540582B (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
US9304907B2 (en) | Data management method, memory control circuit unit and memory storage apparatus | |
CN105653199A (zh) | 数据读取方法、存储器存储装置及存储器控制电路单元 | |
CN104866429A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN104636267A (zh) | 存储器控制方法、存储器存储装置与存储器控制电路单元 | |
CN104733051A (zh) | 奇偶校验码的解码方法、存储器储存装置及控制电路单元 | |
CN103631670A (zh) | 存储器储存装置、存储器控制器与数据处理方法 | |
US8966344B2 (en) | Data protecting method, memory controller and memory storage device | |
TWI467590B (zh) | 資料處理方法、記憶體控制器及記憶體儲存裝置 | |
CN109491828B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN103514103A (zh) | 数据保护方法、存储器控制器与存储器储存装置 | |
CN113360336A (zh) | 用于预测顺序命令操作的功率的存储器系统及其操作方法 | |
CN104182293A (zh) | 数据写入方法、存储器存储装置与存储器控制器 | |
CN102591737B (zh) | 数据写入与读取方法、存储器控制器与存储器储存装置 | |
CN104252317A (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
CN103914391A (zh) | 数据读取方法、存储器控制器与存储器存储装置 | |
CN102890969B (zh) | 数据处理方法、存储器控制器及存储器储存装置 | |
CN104252600A (zh) | 数据保护方法、存储器控制器与存储器储存装置 | |
CN108664350B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
CN112051963A (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
US10546640B2 (en) | Data protecting method and memory storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |