数据写入与读取方法、存储器控制器与存储器储存装置的制作方法

文档序号:6353302阅读:145来源:国知局

专利名称::数据写入与读取方法、存储器控制器与存储器储存装置的制作方法
技术领域
:本发明是涉及ー种用于可擦除非易失性存储器模组的数据写入与读取方法以及使用此方法的存储器控制器与存储器储存装置,其能够在现有错误校正电路下校正更多个错误位元。
背景技术
:数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速増加。由于可擦除非易失性存储器(rewritablenon-volatilememory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记型电脑。固态硬盘就是ー种以快速存储器作为储存媒体的储存装置。因此,近年快速存储器产业成为电子产业中相当热门的ー环。由于储存在快速存储器的数据可能会因各种因素(例如,存储器単元的漏电、程序化失败、损毁等)而产生错误位元,因此,在存储器储存系统中一般会配置错误校正电路(ErrorCorrectingCircuit)并为所储存的数据产生错误校正码以确保数据的正确性。具体来说,当与快速存储器储存装置连接的电脑主机传送欲写入的数据至快速存储器储存装置吋,快速存储器储存装置中的错误校正电路会对应的产生ー错误校正码(ErrorCorrectingCode)并且快速存储器储存装置中的控制电路会将欲写入的数据与所产生的错误校正码写入至快速存储器储存装置的快速存储器中。之后,当电脑主机欲从快速存储器储存装置中读取此数据时,控制电路会从快速存储器中读取此数据及对应的错误校正码并且由错误校正电路依据此数据及对应的错误校正码执行ー错误校正程序以确保数据的正确性。图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'使用者数据P⑶前置压缩数据PB填塞位元U⑶未校正数据CXD已校正数据D⑶解压缩数据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、随机存取存储器(randomaccessmemory,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或固态硬盘(SolidStateDrive,SSD)1216等的可擦除非易失性存储器储存装置。一般而言,主机系统1000为可实质地与存储器储存装置100配合以储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄影机、通信装置、音讯播放器或视讯播放器等系统。例如,在主机系统为数码相机(摄影机)1310吋,可擦除非易失性存储器储存装置则为其所使用的SD卡1312,MMC卡1314、记忆棒(memorystick)1316、CF卡1318或嵌入式储存装置1320(如图2C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(EmbeddedMMC,eMMC)。值得ー提的是,嵌入式多媒体卡是直接耦接于主机系统的基板上。图3为图2A所示的存储器储存装置的概要方框图。请參照图3,存储器储存装置100包括连接器102、存储器控制器104与可擦除非易失性存储器模组106。在本范例实施例中,连接器102是相容于序列先进附件(SerialAdvancedTechnologyAttachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102亦可以是符合电气和电子工程师协会QnstituteofElectricalandElectronicEngineers,IEEE)1394标准、高速周边零件连接接ロ(PeripheralComponentInterconnectExpress,PCIExpress)标准、通用序列总线(UniversalSerialBus,USB)标准、安全数位(SecureDigital,SD)接ロ标准、记忆棒(MemoryStick,MS)接ロ标准、多媒体储存卡(MultiMediaCard,MMC)接ロ标准、小型快速(CompactFlash,CF)接ロ标准、整合式驱动电子接ロantegratedDeviceElectronics,IDE)标准或其他适合的标准。存储器控制器104用以执行以硬件形式或固体形式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在可擦除非易失性存储器模组106中进行数据的写入、读取与抹除等运作。可擦除非易失性存储器模组106是耦接至存储器控制器104,并且用以储存主机系统1000所写入的数据。可擦除非易失性存储器模组106具有多个实体区块。例如,此些实体区块可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每ー实体区块分别具有多个实体页面,并且每一实体页面具有至少ー实体扇区,其中属于同一个实体区块的实体页面可被独立地写入且被同时地抹除。更详细来说,实体区块为抹除的最小単位。亦即,每ー实体区块含有最小数目的一并被抹除的存储器単元。实体页面为程序化的最小单元。即,实体页面为写入数据的最小単元。然而,必须了解的是,在本发明另一范例实施例中,写入数据的最小単位亦可以是实体扇区或其他大小。例如,每ー实体区块是由1个实体页面所組成。然而,必须了解的是,本发明不限于此,每一实体区块是可由64个实体页面、256个实体页面或其他任意个实体页面所组成。每ー实体页面包括使用者数据(userdata)位元区与冗余(redundancy)位元区。使用者数据位元区用以储存使用者的数据,而冗余位元区用以储存系统的数据(例如,错误校正码)。在本范例实施例中,每ー实体页面的使用主数据位元区的容量为2千位元组(Kilobyte,K)并且冗余位元区的容量为64位元组(byte)。在本范例实施例中,可擦除非易失性存储器模组106为多阶存储器単元(MultiLevelCell,MLC)NAND快速存储器模组。然而,本发明不限于此,可擦除非易失性存储器模组106亦可是单阶存储器単元(SingleLevelCell,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标准、IEEE1394标准、PCIExpress标准、USB标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。存储器接口206是耦接至存储器管理电路202并且用以存取可擦除非易失性存储器模组106。也就是说,欲写入至可擦除非易失性存储器模组106的数据会经由存储器接口206转换为存储器可擦除非易失性存储器模组106所能接受的格式。数据压缩/解压缩电路208是耦接至存储器管理电路202。在此,数据压缩/解压缩电路208用以压缩欲写入至可擦除非易失性存储器模组106的数据并且用以解压缩从可擦除非易失性存储器模组106中所读取的数据。例如,数据压缩/解压缩电路208包含压缩器(compressor)及解压缩器(decompressor)。压缩器用以找出原始数据(originaldata)中存在的数据冗余(dataredundancy)、移除所找出的冗余,将剩余的必要数据编码并且输出编码结果(即,压缩数据(compresseddata)。而,解压缩器用以将读入的压缩数据依据既定的步骤解码并送出解码结果(即,解压缩数据(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。电源管理电路2M是耦接至存储器管理电路202并且用以控制存储器储存装置100的电源。在本范例实施例中,如上所述,在从主机系统1000中接收到写入指令以及对应此写入指令的数据之后,存储器控制器104的存储器管理电路202会以实体页面为单位将所接收的数据写入至可擦除非易失性存储器模组106中。特别是,存储器管理电路202会依据所接收的数据及对应的错误校正码来产生错误校正码框(ECCFrame)并且将错误校正码框写入至可擦除非易失性存储器模组106中。在本范例实施例中,一个错误校正码框所包含的使用者数据的长度为2K,因此,1个实体页面会储存1个错误校正码框。然而,必须了解的是,本发明不限于此,在本发明另一范例实施例中,一个错误校正码框所包含的使用者数据的长度亦可为512Byte或1K。也就是说,1个实体页面可储存多个错误校正码框。图5是根据本发明范例实施例所示出的写入数据至实体页面的示意图。请参照图5,当存储器管理电路202欲将数据长度为I的写入数据WD写入至实体页面402时,数据压缩/解压缩电路208会压缩写入数据WD以输出压缩数据CD。值得一提的是,数据压缩/解压缩电路208会使用无失真压缩演算法来压缩数据,然而,不同的写入数据经过压缩后所产生的压缩数据的长度可能会不同。为了方便数据的管理,数据压缩/解压缩电路208会以预设长度来输出所产生的压缩数据。也就是说,压缩数据CD的长度是等于预设长度。例如,数据压缩/解压缩电路208在对数据执行压缩之后,会判断所产生的压缩数据的长度是否等于一预设长度。并且,当所产生的压缩数据的长度小于预设长度时,数据压缩/解压缩电路208会以填塞位元填补所产生的压缩数据,以使压缩数据的长度等于预设长度。在此,预设长度是根据数据压缩/解压缩电路208的压缩比来预先设定。也就是说,所有数据经过压缩/解压缩电路208压缩后其长度皆不会大于预设长度。例如,在本范例实施例中,数据压缩/解压缩电路208可将数据I的数据至少压缩为IK的数据,基此,预设长度被设定为1K。图6是根据本发明范例实施例所示出产生将填塞位元填补至压缩数据的示意图。请参照图6,当写入数据WD被输入至数据压缩/解压缩电路208并产生小于预设长度的前置压缩数据PCD(亦称为第一数据)时,数据压缩/解压缩电路208会在前置压缩数据P⑶之后放入至少一个填塞位元PB,以使最后输出的压缩数据⑶的长度等于预设长度。在此,填塞位元PB为"F",但本发明不限于此,填塞位元可以是任何符号。特别是,当需要以填塞位元来填补前置压缩数据PCD以产生压缩数据CD时,数据压缩/解压缩电路208会储存填塞信息,以记录此笔压缩数据CD被填入几个填塞位元,以便于还原此前置压缩数据PCD。例如,填塞信息会被记录在可擦除非易失性存储器模组106中用以储存系统数据的实体区块中或者储存在映射表中。值得一提的是,尽管在本范例实施例中,填塞位元PB是被填补在前置压缩数据PCD之后,然而,必须了解的是,本发明不限于此,填塞位元PB亦可置于前置压缩数据PCD之前或插入至前置压缩数据PCD之中。之后,错误校正电路210会根据压缩数据⑶产生对应的错误校正码ECC。然后,请再参照图5,存储器管理电路202会将预设整垫数据PD、压缩数据⑶与错误校正码ECC合并以产生错误校正码框ECCF。在此,预设整垫数据PD为每一位元皆为'F'的数据,但本发明不限于此。预设整垫数据可以是任何的数据状态(pattern)。具体来说,如上所述,存储器管理电路202是将来自于主机系统1000的写入数据编码成固定长度的错误校正码框来写入至可擦除非易失性存储器模组106。压缩数据⑶的长度小于写入数据WD,因此,存储器管理电路202会在压缩数据CD与错误校正码ECC之间插入预设整垫数据PD。例如,在本范例实施例中,由于数据压缩/解压缩电路208所输出的压缩数据的长度为1K,因此,预设整垫数据PD会是被设计为IK的数据,以使得写入至实体页面中的数据的长度维持观。在此,压缩数据CD与预设整垫数据PD合称为使用者数据UD。尽管在本范例实施例中,预设整垫数据PD是被插入在压缩数据⑶与错误校正码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'以获取对应压缩数据⑶的未校正数据U⑶。之后,错误校正电路210会依据错误校正码ECC‘对未校正数据U⑶执行错误检查与校正程序,以产生已校正数据(XD。在此,在错误校正码ECC'与未校正数据U⑶中的错误位元的数目小于40时,错误校正电路210将能够顺利将此些错误位元更正。然后,数据压缩/解压缩电路208会根据所储存的填塞信息来判断已校正数据CCD是否存有填塞位元PB。倘若已校正数据CXD未存有填塞位元PB时,数据压缩/解压缩电路208会解压缩已校正数据(XD,以产生解压缩数据D⑶。倘若已校正数据CXD存有填塞位元时,数据压缩/解压缩电路208会根据所储存的填塞信息从已校正数据CCD中移除填塞位元PB,然后才对已移除填塞位元的已校正数据CXD进行解压缩以产生解压缩数据D⑶。最后,存储器管理电路202会将解压缩数据D⑶作为主机系统1000所读取的数据RD并且传送给主机系统1000。图8是根据本发明范例实施例所示出的错误位元分布的简化示意图,其错误位元分布的情况是相同于图1并且假设在图1中,由于错误位元的数目超过错误校正电路210可错误校正的错误位元的数目(假设为7)而无法藉由错误校正码ECC来将原始数据OD还原。请参照图8,由于在写入过程中,错误校正码ECC是根据压缩数据⑶来产生,因此,在读取过程中,对应压缩数据⑶的未校正数据U⑶是藉由所读取的错误校正码ECC'来错误校正。在此,由于未校正数据UCD与错误校正码ECC'内的错误位元EB的数目为7,因此,错误校正电路210仍可顺利地将未校正数据UCD校正以还原压缩数据CD。具体来说,由于图8所示的9个错误位元之中,2个错误位元EB是发生在预设整垫数据PD'中,而未校正数据U⑶与错误校正码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,在步骤Sl101中,存储器管理电路202会从可擦除非易失性存储器模组106中读取一个错误校正码框,并且在步骤S1103中,存储器管理电路202会根据预设整垫数据从错误校正码框中获取未校正数据与错误校正码。之后,在步骤Sl105中,错误校正电路210会依据此错误校正码校正未校正数据以产生已校正数据。并且,在步骤Sl107中,数据压缩/解压缩电路208会解压缩此已校正数据的至少一部分以获取一解压缩数据。最后,在步骤Sl109中,存储器管理电路202会将此解压缩数据输出作为欲读取的数据。图12根据一范例实施例所示出的图11的步骤Sl107的详细流程图。请参照图12,在步骤S1201中,数据压缩/解压缩电路208会判断已校正数据是否包含填塞位元。例如,数据压缩/解压缩电路208会根据于写入数据时所储存的填塞信息来判断已校正数据是否包含填塞位元。倘若已校正数据未包含该至少一填塞位元时,在步骤S1203中数据压缩/解压缩电路208会解压缩此已校正数据以获取解压缩数据。倘若已校正数据包含填塞位元时,在步骤S1205中,数据压缩/解压缩电路208会将填塞位元从已校正数据中删除以产生第三数据,并且解压缩此第三数据以获取解压缩数据。综上所述,本发明范例实施例的数据写入与读取方法即是藉由对欲写入的数据进行压缩,由此在现有的错误校正电路下能够校正更多的错误位元并且确保所存取的数据的正确性。此外,本发明范例实施例的存储器储存装置是由配置使用此方法的存储器控制器来管理可擦除非易失性存储器模组,因此,能够有效地提升存取数据的可靠度。虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属
技术领域
中的普通技术人员,当可作些许的更动与润饰,而不脱离本发明的精神和范围内。权利要求1.一种数据写入方法,用于将ー数据写入至一可擦除非易失性存储器模组,其中该数据写入方法包括压缩该数据以产生一第一数据;判断该第一数据的数据长度是否小于ー预设长度;当该第一数据的数据长度不小于该预设长度吋,输出该第一数据作为ー压缩数据;产生对应该压缩数据的ー错误校正码;根据该压缩数据与该错误校正码产生ー错误校正码框;以及将该错误校正码框写入至该可擦除非易失性存储器模组中。2.根据权利要求1所述的数据写入方法,其中根据该压缩数据与该错误校正码产生该错误校正码框的步骤包括合并该压缩数据、该错误校正码与ー预设整垫数据来产生该错误校正码框。3.根据权利要求1所述的数据写入方法,还包括当该第一数据的该长度小于该预设长度吋,使用至少ー填塞位元填补该第一数据以产生一第二数据并且将该第二数据作为该压缩数据,其中该第二数据的一长度等于该预设长度。4.根据权利要求1所述的数据写入方法,还包括接收另ー数据;压缩该另ー数据并且产生对应该另一数据的另ー压缩数据;产生对应该另一压缩数据的另ー错误校正码;根据该另ー压缩数据与该另ー错误校正码产生另ー错误校正码框;以及将该错误校正码框与该另ー错误校正码框写入至该可擦除非易失性存储器模组的多个实体页面之中的同一个实体页面中。5.ー种数据读取方法,用于从一可擦除非易失性存储器模组中读取ー数据,该数据读取方法包括从该可擦除非易失性存储器模组中读取ー错误校正码框;根据ー预设整垫数据从该错误校正码框中获取一未校正数据与ー错误校正码;依据该错误校正码校正该未校正数据以产生一已校正数据;解压缩该已校正数据的至少一部分来获取ー解压缩数据;以及将该解压缩数据输出作为该数据。6.根据权利要求5所述的数据读取方法,其中解压缩该已校正数据的至少一部分来获取该解压缩数据的步骤包括判断该已校正数据是否包含至少ー填塞位元;以及当该已校正数据未包含该至少一填塞位元吋,解压缩整个该已校正数据来获取该解压縮数据。7.根据权利要求6所述的数据读取方法,其中解压缩该已校正数据的至少一部分来获取该解压缩数据的步骤还包括当该已校正数据包含该至少一填塞位元时,将该至少一填塞位元从该已校正数据中删除以产生一第三数据,并且解压缩该第三数据以获取该解压缩数据。8.一种存储器控制器,用于将来自于ー主机系统的ー数据写入至一可擦除非易失性存储器模組,该存储器控制器包括一主机接ロ,用以耦接至该主机系统;一存储器接ロ,用以耦接至该可擦除非易失性存储器模组;一存储器管理电路,耦接至该主机接ロ与该存储器接ロ并且用以通过该主机接ロ接收该数据;ー错误校正电路,耦接至该存储器管理电路;以及一数据压缩/解压缩电路,耦接至该存储器管理电路,其中该数据压缩/解压缩电路用以压缩该数据以产生一第一数据,其中该数据压缩/解压缩电路判断该第一数据的数据长度是否小于ー预设长度,并且当该第一数据的数据长度不小于该预设长度时,该数据压縮/解压缩电路输出该第一数据作为ー压缩数据,其中该错误校正电路用以产生对应该压缩数据的ー错误校正码,其中该存储器管理电路根据该压缩数据与该错误校正码以产生ー错误校正码框,其中该存储器管理电路将该错误校正码框写入至该可擦除非易失性存储器模组中。9.根据权利要求8所述的存储器控制器,其中该存储器管理电路合并该压缩数据、该错误校正码与ー预设整垫数据来产生该错误校正码框。10.根据权利要求8所述的存储器控制器,其中当该第一数据的该长度小于该预设长度时,该数据压縮/解压缩电路使用至少ー填塞位元填补该第一数据以产生一第二数据并且将该第二数据作为该压缩数据,其中该第二数据的ー长度等于该预设长度。11.根据权利要求8所述的存储器控制器,其中该可擦除非易失性存储器模组具有多个实体页面,其中该存储器管理电路还用以从该主机系统接收另ー数据,其中该数据压縮/解压缩电路还用以压缩该另ー数据并且产生对应该另一数据的另ー压缩数据,其中该错误校正电路还用以产生对应该另ー压缩数据的另ー错误校正码,其中该存储器管理电路根据该另ー压缩数据与该另ー错误校正码产生另ー错误校正码框,其中该存储器管理电路将该错误校正码框与该另ー错误校正码框写入至该些实体页面之中的同一个实体页面中。12.—种存储器控制器,用于从一可擦除非易失性存储器模组中读取ー数据,该存储器控制器包括一主机接ロ,用以耦接至一主机系统;一存储器接ロ,用以耦接至该可擦除非易失性存储器模组;一存储器管理电路,耦接至该主机接ロ与该存储器接ロ并且用以通过该主机接ロ将该读取数据传送给该主机系统;ー错误校正电路,耦接至该存储器管理电路;以及一数据压缩/解压缩电路,耦接至该存储器管理电路,其中该存储器管理电路用以从该可擦除非易失性存储器模组中读取ー错误校正码框,其中该存储器管理电路还用以根据ー预设整垫数据从该错误校正码框中获取一未校正数据与ー错误校正码,其中该错误校正电路用以依据该错误校正码校正该未校正数据以产生一已校正数据,其中该数据压縮/解压缩电路用以解压缩该已校正数据的至少一部分来获取ー解压縮数据,其中该存储器管理电路将该解压缩数据输出作为该数据。13.根据权利要求12所述的存储器控制器,其中该数据压缩/解压缩电路判断该已校正数据是否包含至少ー填塞位元,其中当该已校正数据未包含该至少一填塞位元时,该数据压縮/解压缩电路解压缩整个该已校正数据来获取该解压缩数据。14.根据权利要求13所述的存储器控制器,其中当该已校正数据包含该至少一填塞位元时,该数据压縮/解压缩电路将该至少ー填塞位元从该已校正数据中删除以产生一第三数据,解压缩该第三数据以获取该解压缩数据。15.一种存储器储存装置,包括ー连接器,用以耦接至一主机系统;一可擦除非易失性存储器模组;以及一存储器控制器,耦接至该连接器与该可擦除非易失性存储器模组,其中该存储器控制器用以从该主机系统接收一数据,其中该存储器控制器还用以压缩该数据以产生一第一数据,其中存储器控制器判断该第一数据的数据长度是否小于ー预设长度,并且当该第一数据的数据长度不小于该预设长度时,存储器控制器输出该第一数据作为ー压缩数据,其中该存储器控制器还用以产生对应该压缩数据的ー错误校正码,其中该存储器控制器还用以根据该压缩数据与该错误校正码以产生ー错误校正码框,其中该存储器控制器还用以将该错误校正码框写入至该可擦除非易失性存储器模组中。16.根据权利要求15所述的存储器储存装置,其中该存储器控制器合并该压缩数据、该错误校正码与ー预设整垫数据来产生该错误校正码框。17.根据权利要求15所述的存储器储存装置,其中当该第一数据的该长度小于该预设长度吋,该存储器控制器使用至少ー填塞位元填补该第一数据以产生一第二数据并且将该第二数据作为该压缩数据,其中该第二数据的一长度等于该预设长度。18.根据权利要求15所述的存储器储存装置,其中该可擦除非易失性存储器模组具有多个实体页面,其中该存储器控制器还用以从该主机系统接收另ー数据,其中该存储器控制器压缩该另ー数据并且产生对应该另一数据的另ー压缩数据,其中存储器控制器产生对应该另一压缩数据的另ー错误校正码,其中存储器控制器根据该另ー压缩数据与该另ー错误校正码产生另ー错误校正码框,其中存储器控制器将该错误校正码框与该另ー错误校正码框写入至该些实体页面之中的同一个实体页面中。19.一种存储器储存装置,包括ー连接器,用以耦接至一主机系统;一可擦除非易失性存储器模组;以及一存储器控制器,耦接至该连接器与该可擦除非易失性存储器模组,用以从该可擦除非易失性存储器中读取ー数据并且将该数据传送给该主机系统,其中该存储器控制器用以从该可擦除非易失性存储器模组中读取ー错误校正码框,其中该存储器控制器还用以根据ー预设整垫数据从该错误校正码框中获取一未校正数据与ー错误校正码,其中该存储器控制器还用以依据该错误校正码校正该未校正数据以产生一已校正数据,其中该存储器控制器还用以解压缩该已校正数据的至少一部分以获取一解压缩数据,并且将该解压缩数据输出作为该数据。20.根据权利要求19所述的存储器储存装置,其中该存储器控制器判断该已校正数据是否包含至少ー填塞位元,其中当该已校正数据未包含该至少一填塞位元吋,该存储器控制器解压缩整个该已校正数据来获取该解压缩数据。21.根据权利要求20所述的存储器储存装置,其中当该已校正数据包含该至少一填塞位元吋,该存储器控制器将该至少ー填塞位元从该已校正数据中删除以产生一第三数据,解压缩该第三数据以获取该解压缩数据。全文摘要本发明提供一种数据写入与读取方法、存储器控制器与存储器储存装置该方法包括压缩原始数据以产生第一数据并且判断第一数据的数据长度是否小于预设长度。本方法还包括当第一数据的数据长度不小于预设长度时,输出此第一数据作为压缩数据。本方法还包括产生对应此压缩数据的错误校正码,根据此压缩数据与此错误校正码来产生错误校正码框并且将此错误校正码框写入至可擦除非易失性存储器模组中。基此,当从可擦除非易失性存储器模组中读取对应此写入数据的数据时,可有效地根据对应的此错误校正码来校正此所读取的数据中的错误位元并且还原为原始数据。文档编号G06F11/08GK102591737SQ20111000998公开日2012年7月18日申请日期2011年1月13日优先权日2011年1月13日发明者梁立群申请人:群联电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1