CN102591737B - 数据写入与读取方法、存储器控制器与存储器储存装置 - Google Patents
数据写入与读取方法、存储器控制器与存储器储存装置 Download PDFInfo
- Publication number
- CN102591737B CN102591737B CN201110009985.0A CN201110009985A CN102591737B CN 102591737 B CN102591737 B CN 102591737B CN 201110009985 A CN201110009985 A CN 201110009985A CN 102591737 B CN102591737 B CN 102591737B
- Authority
- CN
- China
- Prior art keywords
- data
- error
- correcting code
- order
- another
- 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)
- Read Only Memory (AREA)
Abstract
本发明提供一种数据写入与读取方法、存储器控制器与存储器储存装置该方法包括压缩原始数据以产生第一数据并且判断第一数据的数据长度是否小于预设长度。本方法还包括当第一数据的数据长度不小于预设长度时,输出此第一数据作为压缩数据。本方法还包括产生对应此压缩数据的错误校正码,根据此压缩数据与此错误校正码来产生错误校正码框并且将此错误校正码框写入至可擦除非易失性存储器模组中。基此,当从可擦除非易失性存储器模组中读取对应此写入数据的数据时,可有效地根据对应的此错误校正码来校正此所读取的数据中的错误位元并且还原为原始数据。
Description
技术领域
本发明是涉及一种用于可擦除非易失性存储器模组的数据写入与读取方法以及使用此方法的存储器控制器与存储器储存装置,其能够在现有错误校正电路下校正更多个错误位元。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可擦除非易失性存储器(rewritablenon-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记型电脑。固态硬盘就是一种以快速存储器作为储存媒体的储存装置。因此,近年快速存储器产业成为电子产业中相当热门的一环。
由于储存在快速存储器的数据可能会因各种因素(例如,存储器单元的漏电、程序化失败、损毁等)而产生错误位元,因此,在存储器储存系统中一般会配置错误校正电路(Error Correcting Circuit)并为所储存的数据产生错误校正码以确保数据的正确性。
具体来说,当与快速存储器储存装置连接的电脑主机传送欲写入的数据至快速存储器储存装置时,快速存储器储存装置中的错误校正电路会对应的产生一错误校正码(Error Correcting Code)并且快速存储器储存装置中的控制电路会将欲写入的数据与所产生的错误校正码写入至快速存储器储存装置的快速存储器中。之后,当电脑主机欲从快速存储器储存装置中读取此数据时,控制电路会从快速存储器中读取此数据及对应的错误校正码并且由错误校正电路依据此数据及对应的错误校正码执行一错误校正程序以确保数据的正确性。
图1是写入至快速存储器储存装置与从快速存储器储存装置中读取的数据的数据结构示意图。
请参照图1,在写入程序中,原始数据OD与对应此原始数据OD的错误校正码EC被写入至快速存储器储存装置中,并且之后,当从快速存储器储存装置读取原始数据OD时错误校正码EC会一并被读取以对所读取的原始数据OD进行错误校正程序。例如,当数据正确时,控制电路会将所读取的数据传送给电脑主机;当数据存有错误位元EB时,错误校正电路所执行的错误校正程序会尝试将此些错误位元EB更正,其中若错误位元EB的数目是在可被校正的范围内时,则错误位元EB会被校正并且控制电路会将已校正的正确数据传送给电脑主机,反之,若错误位元EB的数目超过可校正的范围时,则控制电路会告知电脑主机此数据已遗失。
基此,如何能够校正更多个错误位元是此领域技术人员所致力的目标。
发明内容
本发明提供一种数据写入与读取方法,其能够校正更多错误位元,以确保数据的正确性。
本发明提供一种存储器控制器,其能够校正更多错误位元。
本发明提供一种存储器储存装置,其具有较高的可靠度,以避免所储存的数据遗失。
本发明范例实施例提出一种数据写入方法,用于将一数据写入至可擦除非易失性存储器模组。本数据写入方法包括压缩此数据以产生第一数据并且判断第一数据的数据长度是否小于预设长度。本数据写入方法还包括,当第一数据的数据长度不小于预设长度时,输出此第一数据作为压缩数据。本数据写入方法还包括产生对应此压缩数据的错误校正码,根据此压缩数据与此错误校正码以产生错误校正码框并且将此错误校正码框写入至可擦除非易失性存储器模组中。
在本发明的一实施例中,上述的根据压缩数据与错误校正码产生错误校正码框的步骤包括:合并上述压缩数据、一预设整垫数据与上述错误校正码以产生此错误校正码框。
在本发明的一实施例中,上述的压缩数据以产生压缩数据的步骤还包括:当第一数据的长度小于预设长度时,使用至少一填塞位元填补上述第一数据以产生一第二数据并且将此第二数据作为上述压缩数据,其中第二数据的长度等于预设长度。
在本发明的一实施例中,上述的数据写入方法还包括:接收另一数据;压缩此另一数据并且产生对应此另一数据的另一压缩数据;产生对应此另一压缩数据的另一错误校正码;根据此另一压缩数据与另一错误校正码产生另一错误校正码框;以及将上述错误校正码框与此另一错误校正码框写入至可擦除非易失性存储器模组的多个实体页面之中的同一个实体页面中。
本发明范例实施例提出一种数据读取方法,用于从可擦除非易失性存储器模组中读取一数据。本数据读取方法包括从可擦除非易失性存储器模组中读取一错误校正码框并且根据预设整垫数据从错误校正码框中获取一未校正数据与一错误校正码。本数据读取方法还包括依据此错误校正码校正此未校正数据以产生已校正数据,解压缩此已校正数据的至少一部分来获取一解压缩数据并且将此解压缩数据输出作为所读取的数据。
在本发明的一实施例中,上述的解压缩已校正数据的至少一部分以获取解压缩数据的步骤包括:判断此已校正数据是否包含填塞位元;以及当此已校正数据未包含填塞位元时,解压缩整个已校正数据以获取上述解压缩数据。
在本发明的一实施例中,上述的解压缩已校正数据的至少一部分以获取解压缩数据的步骤还包括:当已校正数据包含填塞位元时,将此填塞位元从已校正数据中删除以产生一第三数据,解压缩此第三数据以获取上述解压缩数据。
本发明范例实施例提出一种存储器控制器,用于将来自于主机系统的一数据写入至可擦除非易失性存储器模组。本存储器控制器包括主机接口、存储器接口、存储器管理电路、错误校正电路以及数据压缩/解压缩电路。主机接口用以耦接至主机系统,存储器接口用以耦接至可擦除非易失性存储器模组,并且存储器管理电路,耦接至主机接口与存储器接口并且用以通过主机接口接收此数据。错误校正电路以及数据压缩/解压缩电路耦接至存储器管理电路。数据压缩/解压缩电路用以压缩此数据以产生第一数据。数据压缩/解压缩电路判断此第一数据的数据长度是否小于预设长度,并且当此第一数据的数据长度不小于预设长度时,数据压缩/解压缩电路输出此第一数据作为压缩数据。错误校正电路用以产生对应此压缩数据的一错误校正码。存储器管理电路用以根据压缩数据与错误校正码以产生一错误校正码框并且将此错误校正码框写入至可擦除非易失性存储器模组中。
在本发明的一实施例中,上述的存储器管理电路合并上述压缩数据、上述错误校正码与一预设整垫数据来产生上述错误校正码框。
在本发明的一实施例中,上述的可擦除非易失性存储器模组具有多个实体页面,其中上述存储器管理电路还用以从主机系统接收另一数据。上述数据压缩/解压缩电路还用以压缩此另一数据并且产生对应此另一数据的另一压缩数据。上述错误校正电路还用以产生对应此另一压缩数据的另一错误校正码。上述存储器管理电路根据此另一压缩数据与此另一错误校正码产生另一错误校正码框,并且将上述错误校正码框与另一错误校正码框写入至此些实体页面之中的同一个实体页面中。
在本发明的一实施例中,当第一数据的长度小于预设长度时,数据压缩/解压缩电路使用填塞位元填补上述第一数据以产生一第二数据并且将此第二数据作为上述压缩数据,其中第二数据的长度等于预设长度。
本发明范例实施例提出一种存储器控制器,用于从可擦除非易失性存储器模组中读取一数据。本存储器控制器包括主机接口、存储器接口、存储器管理电路、错误校正电路以及数据压缩/解压缩电路。主机接口用以耦接至主机系统。存储器接口用以耦接至可擦除非易失性存储器模组。存储器管理电路耦接至主机接口与存储器接口并且用以通过主机接口将所读取的数据传送给主机系统。错误校正电路以及数据压缩/解压缩电路皆耦接至存储器管理电路。存储器管理电路用以从可擦除非易失性存储器模组中读取一错误校正码框,并且根据一预设整垫数据从此错误校正码框中获取一未校正数据与一错误校正码。错误校正电路用以依据此错误校正码校正此未校正数据以产生一已校正数据,解压缩此已校正数据的至少一部分来获取一解压缩数据并且将此解压缩数据输出作为所读取的数据。
在本发明的一实施例中,上述的数据压缩/解压缩电路判断此已校正数据是否包含填塞位元。其中,当此已校正数据未包含时,该数据压缩/解压缩电路解压缩整个已校正数据来获取上述解压缩数据。
在本发明的一实施例中,当此已校正数据包含填塞位元时,数据压缩/解压缩电路将此填塞位元从已校正数据中删除以产生一第三数据,解压缩此第三数据以获取上述解压缩数据。
本发明范例实施例提出一种存储器储存装置,其包括连接器、可擦除非易失性存储器模组与存储器控制器。连接器用以耦接至一主机系统。存储器控制器耦接至连接器与可擦除非易失性存储器模组,并且用以从主机系统接收一数据。在此,存储器控制器还用以压缩此数据以产生一第一数据,并且判断此第一数据的数据长度是否小于预设长度。当此第一数据的数据长度不小于预设长度时,此存储器控制器会输出此第一数据作为压缩数据。此外,此存储器控制器会产生对应此压缩数据的错误校正码。再者,存储器控制器还用以根据此压缩数据以及此错误校正码以产生一错误校正码框,并且将此错误校正码框写入至可擦除非易失性存储器模组中。
在本发明的一实施例中,上述的存储器控制器合并上述压缩数据、上述错误校正码与一预设整垫数据来产生上述错误校正码框。
在本发明的一实施例中,当第一数据的长度小于预设长度时,存储器控制器使用填塞位元填补此第一数据以产生一第二数据并且将此第二数据作为上述压缩数据,其中第二数据的长度等于预设长度。
在本发明的一实施例中,上述的可擦除非易失性存储器模组具有多个实体页面,其中上述存储器控制器还用以从主机系统接收另一数据。上述存储器控制器压缩此另一数据并且产生对应此另一数据的另一压缩数据。上述存储器控制器产生对应此另一压缩数据的另一错误校正码。上述存储器控制器根据此另一压缩数据与此另一错误校正码产生另一错误校正码框,并且将上述错误校正码框与另一错误校正码框写入至此些实体页面之中的同一个实体页面中。
本发明范例实施例提出一种存储器储存装置,其包括连接器、可擦除非易失性存储器模组与存储器控制器。连接器用以耦接至主机系统。存储器控制器耦接至连接器与可擦除非易失性存储器模组,并且用以从可擦除非易失性存储器中读取一数据并且将所读取的数据传送给主机系统。在此,存储器控制器用以从可擦除非易失性存储器模组中读取一错误校正码框,并且根据一预设整垫数据从该错误校正码框中获取一未校正数据与一错误校正码。此外,存储器控制器还用以依据此错误校正码校正此未校正数据以产生一已校正数据,解压缩此已校正数据的至少一部分以获取一解压缩数据,并且将此解压缩数据输出作为所读取的数据。
在本发明的一实施例中,上述的存储器控制器判断此已校正数据是否包含至少一填塞位元。其中,当此已校正数据未包含填塞位元时,存储器控制器解压缩整个已校正数据来获取上述解压缩数据。
在本发明的一实施例中,上述的当已校正数据包含填塞位元时,存储器控制器将此填塞位元从已校正数据中删除以产生一第三数据,将并且解压缩此第三数据以获取上述解压缩数据。
基于上述,本发明范例实施例的数据写入与读取方法、存储器控制器以及存储器储存装置能够有效地将更多错误位元更正。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是写入至快速存储器储存装置与从快速存储器储存装置中读取的数据的数据结构示意图。
图2A是根据本发明范例实施例示出主机系统与存储器储存装置。
图2B是根据本发明范例实施例所示出的电脑、输入/输出装置与存储器储存装置的示意图。
图2C是根据本发明另一范例实施例所示出的主机系统与存储器储存装置的示意图。
图3是为图2A所示的存储器储存装置的概要方框图。
图4是根据本发明范例实施例所示出的存储器控制器的概要方框图。
图5是根据本发明范例实施例所示出的写入数据至实体页面的示意图。
图6是根据本发明范例实施例所示出产生将填塞位元填补至压缩数据的示意图。
图7是根据本发明范例实施例所示出的从实体页面中读取数据的示意图。
图8是根据本发明范例实施例所示出的错误位元分布的简化示意图。
图9是根据本发明范例实施例所示出的数据写入方法的流程图。
图10根据一范例实施例所示出的图9的步骤S901的详细流程图。
图11是根据本发明范例实施例所示出的数据读取方法的流程图。
图12根据一范例实施例所示出的图11的步骤S1107的详细流程图。
主要元件符号说明
OD:原始数据
EC:错误校正码
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:存储器接口
208:数据压缩/解压缩电路
210:错误校正电路
252:缓冲存储器
254:电源管理电路
WD:写入数据
ECC、ECC′:错误校正码
CD:压缩数据
PD、PD′:预设整垫数据
ECCF、ECCF′:错误校正码框
UD、UD′:使用者数据
PCD:前置压缩数据
PB:填塞位元
UCD:未校正数据
CCD:已校正数据
DCD:解压缩数据
RD:读取数据
EB:错误位元
S901、S903、S905、S907、S1001、S1003、S1005、S1007:数据写入的步骤
S1101、S1103、S1105、S1107、S1109、S1201、S1203、S1205:数据读取的步骤
具体实施方式
图2A是根据本发明范例实施例所示出的主机系统与存储器储存装置。
请参照图2A,主机系统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可以是如图2B所示的随身碟1212、存储卡1214或固态硬盘(Solid State Drive,SSD)1216等的可擦除非易失性存储器储存装置。
一般而言,主机系统1000为可实质地与存储器储存装置100配合以储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄影机、通信装置、音讯播放器或视讯播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,可擦除非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式储存装置1320(如图2C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接耦接于主机系统的基板上。
图3为图2A所示的存储器储存装置的概要方框图。
请参照图3,存储器储存装置100包括连接器102、存储器控制器104与可擦除非易失性存储器模组106。
在本范例实施例中,连接器102是相容于序列先进附件(Serial AdvancedTechnology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102亦可以是符合电气和电子工程师协会(Institute ofElectrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准、通用序列总线(Universal Serial Bus,USB)标准、安全数位(SecureDigital,SD)接口标准、记忆棒(Memory Stick,MS)接口标准、多媒体储存卡(Multi Media Card,MMC)接口标准、小型快速(Compact Flash,CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬件形式或固体形式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在可擦除非易失性存储器模组106中进行数据的写入、读取与抹除等运作。
可擦除非易失性存储器模组106是耦接至存储器控制器104,并且用以储存主机系统1000所写入的数据。可擦除非易失性存储器模组106具有多个实体区块。例如,此些实体区块可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体区块分别具有多个实体页面,并且每一实体页面具有至少一实体扇区,其中属于同一个实体区块的实体页面可被独立地写入且被同时地抹除。更详细来说,实体区块为抹除的最小单位。亦即,每一实体区块含有最小数目的一并被抹除的存储器单元。实体页面为程序化的最小单元。即,实体页面为写入数据的最小单元。然而,必须了解的是,在本发明另一范例实施例中,写入数据的最小单位亦可以是实体扇区或其他大小。
例如,每一实体区块是由128个实体页面所组成。然而,必须了解的是,本发明不限于此,每一实体区块是可由64个实体页面、256个实体页面或其他任意个实体页面所组成。每一实体页面包括使用者数据(user data)位元区与冗余(redundancy)位元区。使用者数据位元区用以储存使用者的数据,而冗余位元区用以储存系统的数据(例如,错误校正码)。在本范例实施例中,每一实体页面的使用主数据位元区的容量为2千位元组(Kilobyte,K)并且冗余位元区的容量为64位元组(byte)。
在本范例实施例中,可擦除非易失性存储器模组106为多阶存储器单元(Multi Level Cell,MLC)NAND快速存储器模组。然而,本发明不限于此,可擦除非易失性存储器模组106亦可是单阶存储器单元(Single Level Cell,SLC)NAND快速存储器模组、其他快速存储器模组或其他具有相同特性的存储器模组。
图4是根据本发明范例实施例所示出的存储器控制器的概要方框图。
请参照图4,存储器控制器104包括存储器管理电路202、主机接口204、存储器接口206、数据压缩/解压缩电路208与错误校正电路210。
存储器管理电路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所能接受的格式。
数据压缩/解压缩电路208是耦接至存储器管理电路202。在此,数据压缩/解压缩电路208用以压缩欲写入至可擦除非易失性存储器模组106的数据并且用以解压缩从可擦除非易失性存储器模组106中所读取的数据。例如,数据压缩/解压缩电路208包含压缩器(compressor)及解压缩器(decompressor)。压缩器用以找出原始数据(original data)中存在的数据冗余(data redundancy)、移除所找出的冗余,将剩余的必要数据编码并且输出编码结果(即,压缩数据(compressed data)。而,解压缩器用以将读入的压缩数据依据既定的步骤解码并送出解码结果(即,解压缩数据(decompresseddata)。在本范例实施例中,数据压缩/解压缩电路208是使用无失真压缩演算法来压缩数据,以使压缩后的数据能够被还原。
错误校正电路210是耦接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,在执行写入指令时,错误校正电路210会为欲写入的数据产生对应的错误校正码,并且存储器管理电路202会将此数据与对应的错误校正码写入至可擦除非易失性存储器模组106中。之后,当存储器管理电路202从可擦除非易失性存储器模组106中读取数据时会同时读取此数据对应的错误校正码,并且错误校正电路210会依据此错误校正码对所读取的数据执行错误检查与校正程序。值得一提的是,错误校正电路210能够校正的错误位元的数目会与所产生的错误校正码的长度成正比。也就是说,当错误校正电路210被设计能够校正的错误位元的数目越多时,则需要越多储存空间来储存所产生的错误校正码。如上所述,用以储存错误校正码的冗余位元区的容量是固定的(根据不同种类的可擦除非易失性存储器模组而不同)。因此,实作于错误校正电路210中的错误校正演算法会受限于可擦除非易失性存储器模组106的类型。例如,在本范例实施例中,错误校正电路210最多能够校正40个错误位元。也就是说,只要发生在所读取的数据上的错误位元的数目不超过40,错误校正电路210皆能够顺利地将错误位元更正。
特别是,在本范例实施例中,当欲写入数据至可擦除非易失性存储器模组106时,数据压缩/解压缩电路208与错误校正电路210会在存储器管理模组202的控制下将欲写入的数据进行压缩并且为压缩后的数据产生对应的错误校正码。由于压缩后的数据的长度较短,因此,相对的提升了错误校正电路210的保护能力。通过数据压缩来提升错误校正能力的数据写入方法与数据读取方法,将于以下配合附图作更详细的说明。
在本发明一范例实施例中,存储器控制器104还包括缓冲存储器252。缓冲存储器252是耦接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与指令或来自于可擦除非易失性存储器模组106的数据。
在本发明一范例实施例中,存储器控制器104还包括电源管理电路254。电源管理电路254是耦接至存储器管理电路202并且用以控制存储器储存装置100的电源。
在本范例实施例中,如上所述,在从主机系统1000中接收到写入指令以及对应此写入指令的数据之后,存储器控制器104的存储器管理电路202会以实体页面为单位将所接收的数据写入至可擦除非易失性存储器模组106中。特别是,存储器管理电路202会依据所接收的数据及对应的错误校正码来产生错误校正码框(ECC Frame)并且将错误校正码框写入至可擦除非易失性存储器模组106中。在本范例实施例中,一个错误校正码框所包含的使用者数据的长度为2K,因此,1个实体页面会储存1个错误校正码框。
然而,必须了解的是,本发明不限于此,在本发明另一范例实施例中,一个错误校正码框所包含的使用者数据的长度亦可为512Byte或1K。也就是说,1个实体页面可储存多个错误校正码框。
图5是根据本发明范例实施例所示出的写入数据至实体页面的示意图。
请参照图5,当存储器管理电路202欲将数据长度为2K的写入数据WD写入至实体页面402时,数据压缩/解压缩电路208会压缩写入数据WD以输出压缩数据CD。值得一提的是,数据压缩/解压缩电路208会使用无失真压缩演算法来压缩数据,然而,不同的写入数据经过压缩后所产生的压缩数据的长度可能会不同。为了方便数据的管理,数据压缩/解压缩电路208会以预设长度来输出所产生的压缩数据。也就是说,压缩数据CD的长度是等于预设长度。
例如,数据压缩/解压缩电路208在对数据执行压缩之后,会判断所产生的压缩数据的长度是否等于一预设长度。并且,当所产生的压缩数据的长度小于预设长度时,数据压缩/解压缩电路208会以填塞位元填补所产生的压缩数据,以使压缩数据的长度等于预设长度。在此,预设长度是根据数据压缩/解压缩电路208的压缩比来预先设定。也就是说,所有数据经过压缩/解压缩电路208压缩后其长度皆不会大于预设长度。例如,在本范例实施例中,数据压缩/解压缩电路208可将数据2K的数据至少压缩为1K的数据,基此,预设长度被设定为1K。
图6是根据本发明范例实施例所示出产生将填塞位元填补至压缩数据的示意图。
请参照图6,当写入数据WD被输入至数据压缩/解压缩电路208并产生小于预设长度的前置压缩数据PCD(亦称为第一数据)时,数据压缩/解压缩电路208会在前置压缩数据PCD之后放入至少一个填塞位元PB,以使最后输出的压缩数据CD的长度等于预设长度。在此,填塞位元PB为″F″,但本发明不限于此,填塞位元可以是任何符号。特别是,当需要以填塞位元来填补前置压缩数据PCD以产生压缩数据CD时,数据压缩/解压缩电路208会储存填塞信息,以记录此笔压缩数据CD被填入几个填塞位元,以便于还原此前置压缩数据PCD。例如,填塞信息会被记录在可擦除非易失性存储器模组106中用以储存系统数据的实体区块中或者储存在映射表中。值得一提的是,尽管在本范例实施例中,填塞位元PB是被填补在前置压缩数据PCD之后,然而,必须了解的是,本发明不限于此,填塞位元PB亦可置于前置压缩数据PCD之前或插入至前置压缩数据PCD之中。
之后,错误校正电路210会根据压缩数据CD产生对应的错误校正码ECC。
然后,请再参照图5,存储器管理电路202会将预设整垫数据PD、压缩数据CD与错误校正码ECC合并以产生错误校正码框ECCF。在此,预设整垫数据PD为每一位元皆为′F′的数据,但本发明不限于此。预设整垫数据可以是任何的数据状态(pattern)。
具体来说,如上所述,存储器管理电路202是将来自于主机系统1000的写入数据编码成固定长度的错误校正码框来写入至可擦除非易失性存储器模组106。压缩数据CD的长度小于写入数据WD,因此,存储器管理电路202会在压缩数据CD与错误校正码ECC之间插入预设整垫数据PD。例如,在本范例实施例中,由于数据压缩/解压缩电路208所输出的压缩数据的长度为1K,因此,预设整垫数据PD会是被设计为1K的数据,以使得写入至实体页面中的数据的长度维持2K。在此,压缩数据CD与预设整垫数据PD合称为使用者数据UD。
尽管在本范例实施例中,预设整垫数据PD是被插入在压缩数据CD与错误校正码ECC之间,然而,必须了解的是,本发明不限于此,预设整垫数据PD亦可置于压缩数据CD之前。
此外,值得一提的是,在写入数据是可以非固定长度的错误校正码框来写入至可擦除非易失性存储器模组106的系统中,可不需使用预设整垫数据来产生错误校正码框。特别是,在此例子中,在写入数据被压缩之后,1个实体页面可储存更多错误校正码框,由此可减少程序化(即,写入数据至实体页面)的次数,提升存储器储存装置的效能。
最后,存储器管理电路202会将错误校正码框ECCF写入至实体页面402中。
之后,当存储器管理电路202欲从实体页面402中读取数据以回应给主机系统1000时,存储器管理电路202与数据压缩/解压缩电路208必须以逆程序来还原数据。
图7是根据本发明范例实施例所示出的从实体页面中读取数据的示意图。
请参照图7,假设主机系统1000欲读取储存于实体页面402中的数据(即,先前所写入的写入数据WD)。首先,存储器管理电路202会从实体页面402中读取错误校正码框ECCF′,其中包含对应所写入的使用者数据UD的使用者数据UD′与对应所写入的错误校正码ECC的错误校正码ECC′。
接着,存储器管理电路202会从使用者数据UD′获取未校正数据UCD。具体来说,由于在数据写入时,预设整垫数据PD被插入在压缩数据CD与错误校正码ECC之间的固定位置,因此,存储器管理电路202可从使用者数据UD′中删除所包含的预设整垫数据PD′以获取对应压缩数据CD的未校正数据UCD。
之后,错误校正电路210会依据错误校正码ECC′对未校正数据UCD执行错误检查与校正程序,以产生已校正数据CCD。在此,在错误校正码ECC′与未校正数据UCD中的错误位元的数目小于40时,错误校正电路210将能够顺利将此些错误位元更正。
然后,数据压缩/解压缩电路208会根据所储存的填塞信息来判断已校正数据CCD是否存有填塞位元PB。倘若已校正数据CCD未存有填塞位元PB时,数据压缩/解压缩电路208会解压缩已校正数据CCD,以产生解压缩数据DCD。倘若已校正数据CCD存有填塞位元时,数据压缩/解压缩电路208会根据所储存的填塞信息从已校正数据CCD中移除填塞位元PB,然后才对已移除填塞位元的已校正数据CCD进行解压缩以产生解压缩数据DCD。
最后,存储器管理电路202会将解压缩数据DCD作为主机系统1000所读取的数据RD并且传送给主机系统1000。
图8是根据本发明范例实施例所示出的错误位元分布的简化示意图,其错误位元分布的情况是相同于图1并且假设在图1中,由于错误位元的数目超过错误校正电路210可错误校正的错误位元的数目(假设为7)而无法藉由错误校正码ECC来将原始数据OD还原。
请参照图8,由于在写入过程中,错误校正码ECC是根据压缩数据CD来产生,因此,在读取过程中,对应压缩数据CD的未校正数据UCD是藉由所读取的错误校正码ECC′来错误校正。在此,由于未校正数据UCD与错误校正码ECC′内的错误位元EB的数目为7,因此,错误校正电路210仍可顺利地将未校正数据UCD校正以还原压缩数据CD。具体来说,由于图8所示的9个错误位元之中,2个错误位元EB是发生在预设整垫数据PD′中,而未校正数据UCD与错误校正码ECC′内仅包含7个错误位元EB,因此,欲校正的错误位元数未超过错误校正电路210可错误校正的错误位元的数目。并且,之后压缩数据CD可被顺利地解压缩以取得读取数据RD(即,原写入的写入数据WD)。
图9是根据本发明范例实施例所示出的数据写入方法的流程图,其示出将属于一个错误校正码框的写入数据写入至可擦除非易失性存储器模组106中的步骤。
请参照图9,当存储器管理电路202欲将数据写入至可擦除非易失性存储器模组106中时,在步骤S901中,数据压缩/解压缩电路208会压缩欲写入的数据以产生压缩数据,并且在步骤S903中,错误校正电路210会产生对应此压缩数据的错误校正码。
之后,在步骤S905中,存储器管理电路202会合并压缩数据、预设整垫数据与错误校正码以产生错误校正码框,并且在步骤S907中,存储器管理电路202会将所产生的错误校正码框写入至可擦除非易失性存储器模组106中。
图10根据一范例实施例所示出的图9的步骤S901的详细流程图。
请参照图10,在步骤S1001中,数据压缩/解压缩电路208会压缩欲写入的数据以产生第一数据,并且在步骤S1003中数据压缩/解压缩电路208会判断所产生的第一数据的长度是否小于预设长度。
倘若第一数据的长度不小于预设长度时,在步骤S1005中,数据压缩/解压缩电路208会将第一数据输出作为压缩数据。
倘若第一数据的长度小于预设长度时,在步骤S1007中,数据压缩/解压缩电路208会使用填塞位元填补第一数据以产生第二数据并且将第二数据作为压缩数据,其中所产生的第二数据的长度等于预设长度。
图11是根据本发明范例实施例所示出的数据读取方法的流程图,其示出从可擦除非易失性存储器模组106中读取属于一个错误校正码框的数据的步骤。
请参照图11,在步骤S1101中,存储器管理电路202会从可擦除非易失性存储器模组106中读取一个错误校正码框,并且在步骤S1103中,存储器管理电路202会根据预设整垫数据从错误校正码框中获取未校正数据与错误校正码。
之后,在步骤S1105中,错误校正电路210会依据此错误校正码校正未校正数据以产生已校正数据。并且,在步骤S1107中,数据压缩/解压缩电路208会解压缩此已校正数据的至少一部分以获取一解压缩数据。
最后,在步骤S1109中,存储器管理电路202会将此解压缩数据输出作为欲读取的数据。
图12根据一范例实施例所示出的图11的步骤S1107的详细流程图。
请参照图12,在步骤S1201中,数据压缩/解压缩电路208会判断已校正数据是否包含填塞位元。例如,数据压缩/解压缩电路208会根据于写入数据时所储存的填塞信息来判断已校正数据是否包含填塞位元。
倘若已校正数据未包含该至少一填塞位元时,在步骤S1203中数据压缩/解压缩电路208会解压缩此已校正数据以获取解压缩数据。
倘若已校正数据包含填塞位元时,在步骤S1205中,数据压缩/解压缩电路208会将填塞位元从已校正数据中删除以产生第三数据,并且解压缩此第三数据以获取解压缩数据。
综上所述,本发明范例实施例的数据写入与读取方法即是藉由对欲写入的数据进行压缩,由此在现有的错误校正电路下能够校正更多的错误位元并且确保所存取的数据的正确性。此外,本发明范例实施例的存储器储存装置是由配置使用此方法的存储器控制器来管理可擦除非易失性存储器模组,因此,能够有效地提升存取数据的可靠度。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中的普通技术人员,当可作些许的更动与润饰,而不脱离本发明的精神和范围内。
Claims (9)
1.一种数据写入方法,用于将一数据写入至一可擦除非易失性存储器模组,其中该数据写入方法包括:
压缩该数据以产生一第一数据;
判断该第一数据的数据长度是否小于一预设长度;
当该第一数据的数据长度不小于该预设长度时,输出该第一数据作为一压缩数据;
当该第一数据的该长度小于该预设长度时,使用至少一填塞位元填补该第一数据以产生一第二数据并且将该第二数据作为该压缩数据,其中该第二数据的一长度等于该预设长度;
输入该压缩数据至一错误校正电路来产生一错误校正码;
合并该压缩数据、该错误校正码与一预设整垫数据来产生一错误校正码框;以及
将该错误校正码框写入至该可擦除非易失性存储器模组中。
2.根据权利要求1所述的数据写入方法,还包括:
接收另一数据;
压缩该另一数据并且产生对应该另一数据的另一压缩数据;
产生对应该另一压缩数据的另一错误校正码;
根据该另一压缩数据与该另一错误校正码产生另一错误校正码框;以及
将该错误校正码框与该另一错误校正码框写入至该可擦除非易失性存储器模组的多个实体页面之中的同一个实体页面中。
3.一种数据读取方法,用于从一可擦除非易失性存储器模组中读取一数据,该数据读取方法包括:
从该可擦除非易失性存储器模组中读取一错误校正码框;
根据一预设整垫数据从该错误校正码框中获取一未校正数据与一错误校正码;
依据该错误校正码校正该未校正数据以产生一已校正数据;
解压缩该已校正数据的至少一部分来获取一解压缩数据;以及
将该解压缩数据输出作为该数据,
其中解压缩该已校正数据的至少一部分来获取该解压缩数据的步骤包括:判断该已校正数据是否包含至少一填塞位元;当该已校正数据未包含该至少一填塞位元时,解压缩整个该已校正数据来获取该解压缩数据;以及当该已校正数据包含该至少一填塞位元时,将该至少一填塞位元从该已校正数据中删除以产生一第三数据,并且解压缩该第三数据以获取该解压缩数据。
4.一种存储器控制器,用于将来自于一主机系统的一数据写入至一可擦除非易失性存储器模组,该存储器控制器包括:
一主机接口,用以耦接至该主机系统;
一存储器接口,用以耦接至该可擦除非易失性存储器模组;
一存储器管理电路,耦接至该主机接口与该存储器接口并且用以通过该主机接口接收该数据;
一错误校正电路,耦接至该存储器管理电路;以及
一数据压缩/解压缩电路,耦接至该存储器管理电路,
其中该数据压缩/解压缩电路用以压缩该数据以产生一第一数据,
其中该数据压缩/解压缩电路判断该第一数据的数据长度是否小于一预设长度,并且当该第一数据的数据长度不小于该预设长度时,该数据压缩/解压缩电路输出该第一数据作为一压缩数据,
其中当该第一数据的该长度小于该预设长度时,该数据压缩/解压缩电路使用至少一填塞位元填补该第一数据以产生一第二数据并且将该第二数据作为该压缩数据,其中该第二数据的一长度等于该预设长度,
其中该错误校正电路用以接收该压缩数据来产生一错误校正码,
其中该存储器管理电路合并该压缩数据、该错误校正码与一预设整垫数据来产生一错误校正码框,
其中该存储器管理电路将该错误校正码框写入至该可擦除非易失性存储器模组中。
5.根据权利要求4所述的存储器控制器,
其中该可擦除非易失性存储器模组具有多个实体页面,
其中该存储器管理电路还用以从该主机系统接收另一数据,
其中该数据压缩/解压缩电路还用以压缩该另一数据并且产生对应该另一数据的另一压缩数据,
其中该错误校正电路还用以产生对应该另一压缩数据的另一错误校正码,
其中该存储器管理电路根据该另一压缩数据与该另一错误校正码产生另一错误校正码框,
其中该存储器管理电路将该错误校正码框与该另一错误校正码框写入至该些实体页面之中的同一个实体页面中。
6.一种存储器控制器,用于从一可擦除非易失性存储器模组中读取一数据,该存储器控制器包括:
一主机接口,用以耦接至一主机系统;
一存储器接口,用以耦接至该可擦除非易失性存储器模组;
一存储器管理电路,耦接至该主机接口与该存储器接口并且用以通过该主机接口将该读取数据传送给该主机系统;
一错误校正电路,耦接至该存储器管理电路;以及
一数据压缩/解压缩电路,耦接至该存储器管理电路,
其中该存储器管理电路用以从该可擦除非易失性存储器模组中读取一错误校正码框,
其中该存储器管理电路还用以根据一预设整垫数据从该错误校正码框中获取一未校正数据与一错误校正码,
其中该错误校正电路用以依据该错误校正码校正该未校正数据以产生一已校正数据,
其中该数据压缩/解压缩电路用以解压缩该已校正数据的至少一部分来获取一解压缩数据,
其中该存储器管理电路将该解压缩数据输出作为该数据,
其中该数据压缩/解压缩电路判断该已校正数据是否包含至少一填塞位元,
其中当该已校正数据未包含该至少一填塞位元时,该数据压缩/解压缩电路解压缩整个该已校正数据来获取该解压缩数据,
其中当该已校正数据包含该至少一填塞位元时,该数据压缩/解压缩电路将该至少一填塞位元从该已校正数据中删除以产生一第三数据,解压缩该第三数据以获取该解压缩数据。
7.一种存储器储存装置,包括:
一连接器,用以耦接至一主机系统;
一可擦除非易失性存储器模组;以及
一存储器控制器,耦接至该连接器与该可擦除非易失性存储器模组,
其中该存储器控制器用以从该主机系统接收一数据,
其中该存储器控制器还用以压缩该数据以产生一第一数据,
其中存储器控制器判断该第一数据的数据长度是否小于一预设长度,并且当该第一数据的数据长度不小于该预设长度时,存储器控制器输出该第一数据作为一压缩数据,
其中当该第一数据的该长度小于该预设长度时,该存储器控制器使用至少一填塞位元填补该第一数据以产生一第二数据并且将该第二数据作为该压缩数据,其中该第二数据的一长度等于该预设长度,
其中该存储器控制器还用以使用该压缩数据来产生一错误校正码,
其中该存储器控制器还用以合并该压缩数据、该错误校正码与一预设整垫数据来产生一错误校正码框,
其中该存储器控制器还用以将该错误校正码框写入至该可擦除非易失性存储器模组中。
8.根据权利要求7所述的存储器储存装置,
其中该可擦除非易失性存储器模组具有多个实体页面,
其中该存储器控制器还用以从该主机系统接收另一数据,
其中该存储器控制器压缩该另一数据并且产生对应该另一数据的另一压缩数据,
其中存储器控制器产生对应该另一压缩数据的另一错误校正码,
其中存储器控制器根据该另一压缩数据与该另一错误校正码产生另一错误校正码框,
其中存储器控制器将该错误校正码框与该另一错误校正码框写入至该些实体页面之中的同一个实体页面中。
9.一种存储器储存装置,包括:
一连接器,用以耦接至一主机系统;
一可擦除非易失性存储器模组;以及
一存储器控制器,耦接至该连接器与该可擦除非易失性存储器模组,用以从该可擦除非易失性存储器中读取一数据并且将该数据传送给该主机系统,
其中该存储器控制器用以从该可擦除非易失性存储器模组中读取一错误校正码框,
其中该存储器控制器还用以根据一预设整垫数据从该错误校正码框中获取一未校正数据与一错误校正码,
其中该存储器控制器还用以依据该错误校正码校正该未校正数据以产生一已校正数据,
其中该存储器控制器还用以解压缩该已校正数据的至少一部分以获取一解压缩数据,并且将该解压缩数据输出作为该数据,
其中该存储器控制器判断该已校正数据是否包含至少一填塞位元,
其中当该已校正数据未包含该至少一填塞位元时,该存储器控制器解压缩整个该已校正数据来获取该解压缩数据,
其中当该已校正数据包含该至少一填塞位元时,该存储器控制器将该至少一填塞位元从该已校正数据中删除以产生一第三数据,解压缩该第三数据以获取该解压缩数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110009985.0A CN102591737B (zh) | 2011-01-13 | 2011-01-13 | 数据写入与读取方法、存储器控制器与存储器储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110009985.0A CN102591737B (zh) | 2011-01-13 | 2011-01-13 | 数据写入与读取方法、存储器控制器与存储器储存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102591737A CN102591737A (zh) | 2012-07-18 |
CN102591737B true CN102591737B (zh) | 2015-04-22 |
Family
ID=46480440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110009985.0A Active CN102591737B (zh) | 2011-01-13 | 2011-01-13 | 数据写入与读取方法、存储器控制器与存储器储存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102591737B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107094144B (zh) * | 2014-01-29 | 2021-01-19 | 上海数字电视国家工程研究中心有限公司 | 基带帧的封装方法及解封装方法 |
CN107179960B (zh) * | 2016-03-09 | 2020-05-26 | 群联电子股份有限公司 | 解码方法、存储器控制电路单元及存储器存储装置 |
TWI625715B (zh) * | 2016-05-31 | 2018-06-01 | 瑞鼎科技股份有限公司 | 顯示驅動裝置及其運作方法 |
CN107957917A (zh) * | 2017-10-25 | 2018-04-24 | 深圳市致存微电子企业(有限合伙) | 数据处理方法、主机、存储设备及存储介质 |
TWI703438B (zh) * | 2018-09-11 | 2020-09-01 | 慧榮科技股份有限公司 | 映射表更新方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515335A (zh) * | 2009-03-30 | 2009-08-26 | 浙江工业大学 | 具有高压缩比汉字编码能力的彩色二维条码及其编码、解码方法 |
CN101876947A (zh) * | 2009-04-30 | 2010-11-03 | 国际商业机器公司 | 用于存储数据的方法及其系统 |
-
2011
- 2011-01-13 CN CN201110009985.0A patent/CN102591737B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515335A (zh) * | 2009-03-30 | 2009-08-26 | 浙江工业大学 | 具有高压缩比汉字编码能力的彩色二维条码及其编码、解码方法 |
CN101876947A (zh) * | 2009-04-30 | 2010-11-03 | 国际商业机器公司 | 用于存储数据的方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102591737A (zh) | 2012-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8560926B2 (en) | Data writing method, memory controller and memory storage apparatus | |
TWI459396B (zh) | 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置 | |
CN102760099B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
TWI540582B (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI455144B (zh) | 使用於快閃記憶體的控制方法與控制器 | |
TWI534618B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
US9690490B2 (en) | Method for writing data, memory storage device and memory control circuit unit | |
TWI545432B (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
US9430327B2 (en) | Data access method, memory control circuit unit and memory storage apparatus | |
CN104866429A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TW201705148A (zh) | 映射表存取方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN102591737B (zh) | 数据写入与读取方法、存储器控制器与存储器储存装置 | |
CN104733051A (zh) | 奇偶校验码的解码方法、存储器储存装置及控制电路单元 | |
TWI467590B (zh) | 資料處理方法、記憶體控制器及記憶體儲存裝置 | |
CN104881240A (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
US10546640B2 (en) | Data protecting method and memory storage device | |
CN105653391A (zh) | 数据存取方法、存储器控制电路单元及存储器储存装置 | |
CN108664350B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
CN106406746A (zh) | 映射表存取方法、存储器控制电路单元及存储器存储装置 | |
CN105335096A (zh) | 数据管理方法、存储器控制电路单元以及存储器存储装置 | |
CN102456400B (zh) | 使用于闪存的控制方法与控制器 | |
TWI545576B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN105573662B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN102890969B (zh) | 数据处理方法、存储器控制器及存储器储存装置 | |
CN105426113A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
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 |