CN105630687B - 数据写入方法、存储器控制电路单元与存储器存储装置 - Google Patents
数据写入方法、存储器控制电路单元与存储器存储装置 Download PDFInfo
- Publication number
- CN105630687B CN105630687B CN201410582089.7A CN201410582089A CN105630687B CN 105630687 B CN105630687 B CN 105630687B CN 201410582089 A CN201410582089 A CN 201410582089A CN 105630687 B CN105630687 B CN 105630687B
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- compressed
- compressed data
- written
- 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
- Read Only Memory (AREA)
Abstract
本发明提供一种数据写入方法、存储器控制电路单元与存储器存储装置。本方法包括:倘若数据属于第一态样时,使用第一压缩/解压缩电路压缩此数据以产生压缩数据,并且将此压缩数据写入至可复写式非易失性存储器模块中;以及倘若此数据属于第二态样时,使用第二压缩/解压缩电路压缩该数据以产生另一压缩数据,并且将此另一压缩数据写入至可复写式非易失性存储器模块中,其中第一压缩/解压缩电路的压缩速度快于第二压缩/解压缩电路的压缩速度,并且第一压缩/解压缩电路的数据压缩率小于第二压缩/解压缩电路的数据压缩率。
Description
技术领域
本发明是有关于一种数据写入方法,且特别是有关于用于可复写式非易失性存储器模块的数据写入方法、存储器控制电路单元与存储器存储装置。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本电脑。固态硬盘就是一种以快闪存储器作为存储媒体的存储装置。因此,近年快闪存储器产业成为电子产业中相当热门的一环。
近年来,为了更有效利用存储器的空间或者提升数据错误校正的能力,快闪存储器存储装置的控制电路会利用压缩电路先将欲写入的数据压缩后再写入至快闪存储器中。例如,一个实体页面中包括存储使用者数据的数据比特区与存储管理信息(例如,错误校正码)的冗余比特区,若使用者数据可被压缩成较小的数据时,数据比特区未使用的空间可被用来存储更多个错误校正码或者填入固定的比特值,由此强化数据错误校正的能力。然而,为了避免延迟执行写入指令的时间,在快闪存储器存储装置中所配置的压缩电路所使用的是属于运算速度较快的压缩演算机制。然而,此类运算速度较快的压缩电路,其压缩效率往往较低。因此,如何能够在满足数据总线的频宽而不会延迟执行写入指令的时间,同时又达到较佳的压缩率,是此领域技术人员所致力的目标。
发明内容
本发明提供一种数据写入方法、存储器控制电路单元与存储器存储装置,能够在满足数据总线的频宽而不会延迟执行写入指令的时间,同时又达到较佳的压缩率。
本发明的一范例实施例提出一种数据写入方法,用于可复写式非易失性存储器模块,其中此可复写式非易失性存储器模块具有多个实体抹除单元,且每一所述实体抹除单元具有多个实体程序化单元。本数据写入方法包括:识别一数据是属于一第一态样或一第二态样;倘若此数据属于第一态样时,使用第一压缩/解压缩电路压缩此数据以产生压缩数据,并且将此压缩数据写入至此些实体程序化单元中;以及倘若此数据属于第二态样时,使用第二压缩/解压缩电路压缩该数据以产生另一压缩数据,并且将此另一压缩数据写入至此些实体程序化单元中,其中第一压缩/解压缩电路的压缩速度快于第二压缩/解压缩电路的压缩速度,并且第一压缩/解压缩电路的数据压缩率小于第二压缩/解压缩电路的数据压缩率。
在本发明的一范例实施例中,上述识别数据是属于第一态样或第二态样的步骤包括:将从主机系统中接收的写入指令所指示的第一数据识别为属于第一态样;以及将从此些实体程序化单元中所读取的第二数据识别为属于第二态样。
在本发明的一范例实施例中,上述使用第一压缩/解压缩电路压缩数据以产生压缩数据,并且将此压缩数据写入至此些实体程序化单元中的步骤包括:将第一数据通过存储器接口传送至可复写式非易失性存储器模块的同时,使用第一压缩/解压缩电路将第一数据压缩为第一压缩数据;以及将第一压缩数据写入至此些实体程序化单元之中的第一实体程序化单元中。
在本发明的一范例实施例中,上述数据写入方法还包括:执行一数据合并运作以从此些实体程序化单元之中的第二实体程序化单元中读取一已压缩数据,且使用上述第一压缩/解压缩电路解压缩从第二实体程序化单元中读取的已压缩数据以获得上述第二数据。并且,上述使用第二压缩/解压缩电路压缩该数据以产生另一压缩数据,并且将此另一压缩数据写入至此些实体程序化单元中的步骤包括:使用第二压缩/解压缩电路将第二数据压缩为一第二压缩数据;以及将此第二压缩数据写入至此些实体程序化单元之中的第三实体程序化单元中。
在本发明的一范例实施例中,上述数据写入方法还包括:执行一数据合并运作以从此些实体程序化单元之中的第二实体程序化单元中读取第二数据,其中此第二数据为经过第一压缩/解压缩电路压缩的数据。并且,上述使用第二压缩/解压缩电路压缩该数据以产生另一压缩数据,并且将此另一压缩数据写入至此些实体程序化单元中的步骤包括:使用第二压缩/解压缩电路将第二数据压缩为一第二压缩数据;以及将此第二压缩数据写入至此该些实体程序化单元之中的第三实体程序化单元中。
在本发明的一范例实施例中,上述识别数据是属于第一态样或第二态样的步骤包括:判断此数据的每个比特值是否皆为相同;倘若此数据的每个比特值皆为相同时,识别此数据属于该第一态样,其中上述使用该第一压缩/解压缩电路压缩此数据以产生压缩数据,并且将此压缩数据写入至此些实体程序化单元中的步骤是于一前景执行模式中被执行;以及倘若此数据的每个比特值不皆为相同时,识别此数据属于该第二态样,其中上述使用第二压缩/解压缩电路压缩数据以产生另一压缩数据,并且将此另一压缩数据写入至此些实体程序化单元中的步骤是在背景执行模式中被执行。
本发明的一范例实施例提出一种用于控制可复写式非易失性存储器模块的存储器控制电路单元。此存储器控制电路单元包括主机接口、存储器接口、存储器管理电路、第一压缩/解压缩电路与第二压缩/解压缩电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性存储器模块,其中可复写式非易失性存储器模块具有多个实体抹除单元并且每一实体抹除单元包括多个实体程序化单元。存储器管理电路电性连接至主机接口与存储器接口,且第一压缩/解压缩电路与第二压缩/解压缩电路是电性连接至存储器管理电路,其中第一压缩/解压缩电路的压缩速度快于第二压缩/解压缩电路的压缩速度,并且第一压缩/解压缩电路的数据压缩率小于第二压缩/解压缩电路的数据压缩率。在此,存储器管理电路会识别欲写入的数据是属于第一态样或第二态样。倘若此数据属于该第一态样时,第一压缩/解压缩电路压缩此数据以产生压缩数据,并且存储器管理电路下达指令序列将此压缩数据写入至此些实体程序化单元中。倘若数据属于第二态样时,第二压缩/解压缩电路压缩此数据以产生另一压缩数据,并且存储器管理电路下达指令序列将此另一压缩数据写入至此些实体程序化单元中。
在本发明的一范例实施例中,上述识别数据是属于第一态样或第二态样的运作中,存储器管理电路将从主机系统中接收的写入指令所指示的第一数据识别为属于第一态样,并且将从此些实体程序化单元中所读取的第二数据识别为属于第二态样。
在本发明的一范例实施例中,在压缩数据以产生压缩数据,并且将此压缩数据写入至此些实体程序化单元中的运作中,存储器管理电路将第一数据通过存储器接口传送至可复写式非易失性存储器模块的同时,第一压缩/解压缩电路将此第一数据压缩为第一压缩数据,其中第一压缩数据会被写入至此些实体程序化单元之中的第一实体程序化单元中。
在本发明的一范例实施例中,存储器管理电路执行一数据合并运作以从此些实体程序化单元之中的第二实体程序化单元中读取已压缩数据,且第一压缩/解压缩电路解压缩从第二实体程序化单元中读取的已压缩数据以获得上述第二数据。并且,在上述压缩数据以产生另一压缩数据,并且将此另一压缩数据写入至此些实体程序化单元中的运作中,第二压缩/解压缩电路将第二数据压缩为第二压缩数据,并且存储器管理电路将此第二压缩数据写入至此些实体程序化单元之中的第三实体程序化单元中。
在本发明的一范例实施例中,存储器管理电路执行一数据合并运作以从此些实体程序化单元之中的第二实体程序化单元中读取上述第二数据,其中第二数据为经过第一压缩/解压缩电路压缩的数据。并且,在上述压缩数据以产生另一压缩数据,并且将此另一压缩数据写入至此些实体程序化单元中的运作中,第二压缩/解压缩电路将此第二数据压缩为第二压缩数据,并且存储器管理电路将此第二压缩数据写入至此些实体程序化单元之中的第三实体程序化单元中。
在本发明的一范例实施例中,在上述识别数据是属于第一态样或第二态样的运作中,存储器管理电路判断数据的每个比特值是否皆为相同。倘若数据的每个比特值皆为相同时,存储器管理电路识别此数据属于第一态样,并且上述第一压缩/解压缩电路压缩此数据以产生压缩数据,并且存储器管理电路将此压缩数据写入至此些实体程序化单元中的运作是于前景执行模式中被执行。倘若数据的每个比特值不皆为相同时,存储器管理电路识别此数据属于第二态样,其中上述第二压缩/解压缩电路压缩该数据以产生另一压缩数据,并且存储器管理电路将此另一压缩数据写入至此些实体程序化单元中的运作是在背景执行模式中被执行。
本发明的一范例实施例提出一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块与存储器控制电路单元。连接接口单元用以电性连接至主机系统。可复写式非易失性存储器模块具有多个实体抹除单元,且每一实体抹除单元包括多个实体程序化单元。存储器控制电路单元电性连接至连接接口单元与可复写式非易失性存储器模块。存储器控制电路单元识别数据是属于第一态样或第二态样。倘若数据属于第一态样时,存储器控制电路单元利用第一压缩/解压缩电路压缩此数据以产生压缩数据,并且将此压缩数据写入至此些实体程序化单元中。倘若此数据属于第二态样时,存储器控制电路单元利用第二压缩/解压缩电路压缩此数据以产生另一压缩数据,并且将此另一压缩数据写入至此些实体程序化单元中。在此,第一压缩/解压缩电路的压缩速度快于第二压缩/解压缩电路的压缩速度,并且第一压缩/解压缩电路的数据压缩率小于第二压缩/解压缩电路的数据压缩率。
在本发明的一范例实施例中,在上述识别数据是属于第一态样或第二态样的运作中,存储器控制电路单元将从主机系统中接收的写入指令所指示的第一数据识别为属于第一态样,并且将从此些实体程序化单元中所读取的第二数据识别为属于第二态样。
在本发明的一范例实施例中,在利用第一压缩/解压缩电路压缩此数据以产生压缩数据,并且将此压缩数据写入至此些实体程序化单元中的运作中,存储器控制电路单元将第一数据通过存储器接口传送至可复写式非易失性存储器模块的同时,利用第一压缩/解压缩电路将第一数据压缩为第一压缩数据,其中第一压缩数据会被写入至此些实体程序化单元之中的第一实体程序化单元中。
在本发明的一范例实施例中,上述存储器控制电路单元执行一数据合并运作以从此些实体程序化单元之中的第二实体程序化单元中读取已压缩数据,且利用此第一压缩/解压缩电路解压缩从第二实体程序化单元中读取的已压缩数据以获得上述第二数据并且,在上述利用第二压缩/解压缩电路压缩此数据以产生另一压缩数据,并且将此另一压缩数据写入至此些实体程序化单元中的运作中,存储器控制电路单元利用第二压缩/解压缩电路将此第二数据压缩为第二压缩数据,并且存储器管理电路将此第二压缩数据写入至第二实体程序化单元中。
在本发明的一范例实施例中,上述存储器控制电路单元执行一数据合并运作以从此些实体程序化单元之中的第二实体程序化单元中读取此第二数据,其中第二数据为经过第一压缩/解压缩电路压缩的数据。并且,在上述利用第二压缩/解压缩电路压缩数据以产生另一压缩数据,并且将此另一压缩数据写入至此些实体程序化单元中的运作中,存储器控制电路单元利用第二压缩/解压缩电路将第二数据压缩为第二压缩数据,并且将此第二压缩数据写入至第二实体程序化单元中。
在本发明的一范例实施例中,在上述识别数据是属于第一态样或第二态样的运作中,存储器控制电路单元判断数据的每个比特值是否皆为相同。倘若数据的每个比特值皆为相同时,存储器控制电路单元识别此数据属于第一态样,并且上述压缩此数据以产生压缩数据,并且将此压缩数据写入至此些实体程序化单元中的运作是于前景执行模式中被执行。倘若此数据的每个比特值不皆为相同时,存储器控制电路单元识别此数据属于第二态样,其中上述压缩此数据以产生另一压缩数据,并且将此另一压缩数据写入至此些实体程序化单元中的运作是在背景执行模式中被执行。
基于上述,本发明范例实施例的数据写入方法、存储器控制电路单元与存储器存储装置能够根据欲写入至实体程序化单元的数据的态样来选择不同的压缩/解压缩电路来进行压缩,由此同时可兼顾高速与高压缩率的需求。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明所示的数据写入方法的流程图;
图2是根据一范例实施例所示的主机系统与存储器存储装置的示意图;
图3A是根据一范例实施例所示的电脑、输入/输出装置与存储器存储装置的示意图;
图3B是根据一范例实施例所示的主机系统与存储器存储装置的示意图;
图4是根据第一范例实施例所示的存储器存储装置的概要方块图;
图5是根据第一范例实施例所示的存储器控制电路单元的概要方块图;
图6与图7是根据第一范例实施例所示的管理实体区块的范例示意图;
图8~图20是根据第一范例实施例所示的写入数据的范例示意图;
图21与图22是根据第一范例实施例所示的执行有效数据合并程序以完成后续写入指令的简化范例示意图;
图23与图24是根据第一范例实施例所示的数据写入方法的流程图;
图25是根据第二范例实施例所示的数据写入方法的流程图。
附图标记说明:
S101、S103、S105、S107:数据写入方法的步骤;
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:第二压缩/解压缩电路;
212:缓冲存储器;
214:电源管理电路;
216:错误检查与校正电路;
410(0)~410(N):实体抹除单元;
502:数据区;
504:闲置区;
506:系统区;
508:取代区;
LBA(0)~LBA(H):逻辑单元;
LZ(0)~LZ(M):逻辑区域;
UD1~UD14:数据;
UD1’~UD14’、UD4”、UD6”、UD7”:压缩数据;
S2301、S2303、S2305、S2307、S2401、S2403、S2405、S2407、S2409、S2411、S2413:数据写入方法的步骤;
S2501、S2503、S2505、S2507、S2509:数据写入方法的步骤。
具体实施方式
为了能够同时兼顾压缩速度与压缩效率,本范例实施例提出一种在存储器存储装置中配置一个具较佳压缩速度的压缩/解压缩电路与一个具较佳压缩率的压缩/解压缩电路并且根据数据的态样来使用其中一个压缩/解压缩电路来处理数据。具体来说,如图1所示,当接收到一数据(S101)时,此数据是属于一第一态样或一第二态样会被识别(S103)。倘若此数据是属于第一态样时,第一压缩/解压缩电路会被用来压缩此数据以产生压缩数据,并且此压缩数据会被写入至实体程序化单元中(S105),并且倘若此数据是属于第二态样时,第二压缩/解压缩电路会被用来压缩此数据以产生另一压缩数据,并且此另一压缩数据会被写入至实体程序化单元中(S107),其中第一压缩/解压缩电路的压缩速度快于第二压缩/解压缩电路的压缩速度,并且第一压缩/解压缩电路的数据压缩率小于第二压缩/解压缩电路的数据压缩率。为了更清楚地了解本发明的技术,以下将配合图式以多个范例实施例来描述本发明。
第一范例实施例
一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图2是根据一范例实施例所示的主机系统与存储器存储装置的示意图。
请参照图2,主机系统1000一般包括电脑1100与输入/输出(input/output,简称I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(random access memory,简称RAM)1104、系统总线1108与数据传输接口1110。输入/输出装置1106包括如图3A的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图3A所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,存储器存储装置100是通过数据传输接口1110与主机系统1000的其他元件电性连接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的运作可将数据写入至存储器存储装置100或从存储器存储装置100中读取数据。例如,存储器存储装置100可以是如图3A所示的随身盘1212、存储卡1214或固态硬盘(Solid StateDrive,简称SSD)1216等的可复写式非易失性存储器存储装置。
一般而言,主机系统1000为可实质地与存储器存储装置100配合以存储数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,可复写式非易失性存储器存储装置则为其所使用的SD卡1312、MMC卡1314、存储棒(memory stick)1316、CF卡1318或嵌入式存储装置1320(如图3B所示)。嵌入式存储装置1320包括嵌入式多媒体卡(Embedded MMC,简称eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图4是根据第一范例实施例所示的存储器存储装置的概要方块图。
请参照图4,存储器存储装置100包括连接接口单元102、存储器控制电路单元104与可复写式非易失性存储器模块106。
在本范例实施例中,连接接口单元102是相容于序列先进附件(Serial AdvancedTechnology Attachment,简称SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元102也可以是符合并列先进附件(Parellel Advanced Technology Attachment,简称PATA)标准、电气和电子工程师协会(Institute of Electrical and ElectronicEngineers,简称IEEE)1394标准、高速周边零件连接接口(Peripheral ComponentInterconnect Express,简称PCI Express)标准、通用串行总线(Universal Serial Bus,简称USB)标准、超高速一代(Ultra High Speed-I,简称UHS-I)接口标准、超高速二代(Ultra High Speed-II,简称UHS-II)接口标准、安全数码(Secure Digital,简称SD)接口标准、存储棒(Memory Stick,简称MS)接口标准、多媒体存储卡(Multi Media Card,简称MMC)接口标准、小型快闪(Compact Flash,简称CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,简称IDE)标准或其他适合的标准。在本范例实施例中,连接接口单元可与存储器控制电路单元封装在一个芯片中,或布设于一包含存储器控制电路单元的芯片外。
存储器控制电路单元104用以执行以硬件型式或固件型式实作的多个逻辑闸或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模块106中进行数据的写入、读取与抹除等运作。
可复写式非易失性存储器模块106是电性连接至存储器控制电路单元104,并且用以存储主机系统1000所写入的数据。可复写式非易失性存储器模块106具有实体抹除单元410(0)~410(N)。例如,实体抹除单元410(0)~410(N)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有多个实体程序化单元,其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一实体抹除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。
更详细来说,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储胞。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个实体程序化单元的数据比特区中会包含4个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,在其他范例实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一范例实施例中,实体抹除单元为实体区块,并且实体程序化单元为实体页面或实体扇区,但本发明不以此为限。
在本范例实施例中,可复写式非易失性存储器模块106为多阶存储胞(MultiLevel Cell,简称MLC)NAND型快闪存储器模块(即,一个存储胞中可存储2个比特数据的快闪存储器模块)。然而,本发明不限于此,可复写式非易失性存储器模块106也可是单阶存储胞(Single Level Cell,简称SLC)NAND型快闪存储器模块(即,一个存储胞中可存储1个比特数据的快闪存储器模块)、三阶存储胞(Trinary Level Cell,简称TLC)NAND型快闪存储器模块(即,一个存储胞中可存储3个比特数据的快闪存储器模块)或其他具有相同特性的存储器模块。
图5是根据第一范例实施例所示的存储器控制电路单元的概要方块图。
请参照图5,存储器控制电路单元104包括存储器管理电路202、主机接口204、存储器接口206、第一压缩/解压缩电路208以及第二压缩/解压缩电路210。
存储器管理电路202用以控制存储器控制电路单元104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器存储装置100运作时,此些控制指令会被执行以对可复写式非易失性存储器模块106下达指令序列来将数据写入至可复写式非易失性存储器模块106、从可复写式非易失性存储器模块106读取数据或将可复写式非易失性存储器模块106上的数据抹除等运作。
在本范例实施例中,存储器管理电路202的控制指令是以固件型式来实作。例如,存储器管理电路202具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置100运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在本发明另一范例实施例中,存储器管理电路202的控制指令也可以程序码型式存储于可复写式非易失性存储器模块106的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元104被致能时,微处理器单元会先执行此驱动码段来将存储于可复写式非易失性存储器模块106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在本发明另一范例实施例中,存储器管理电路202的控制指令也可以一硬件型式来实作。例如,存储器管理电路202包括微控制器、存储胞管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储胞管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是电性连接至微控制器。其中,存储胞管理电路用以管理可复写式非易失性存储器模块106的实体抹除单元;存储器写入电路用以对可复写式非易失性存储器模块106下达写入指令以将数据写入至可复写式非易失性存储器模块106中;存储器读取电路用以对可复写式非易失性存储器模块106下达读取指令以从可复写式非易失性存储器模块106中读取数据;存储器抹除电路用以对可复写式非易失性存储器模块106下达抹除指令以将数据从可复写式非易失性存储器模块106中抹除;而数据处理电路用以处理欲写入至可复写式非易失性存储器模块106的数据以及从可复写式非易失性存储器模块106中读取的数据。
主机接口204是电性连接至存储器管理电路202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口204来传送至存储器管理电路202。在本范例实施例中,主机接口204是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204也可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、UHS-I接口标准、UHS-II接口标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是电性连接至存储器管理电路202并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会经由存储器接口206转换为可复写式非易失性存储器模块106所能接受的格式。
第一压缩/解压缩电路208以及第二压缩/解压缩电路210是电性连接至存储器管理电路202并且用以根据存储器管理电路202的指示对输入数据进行压缩或解压缩。在本范例实施例中,第一压缩/解压缩电路208的压缩速度快于第二压缩/解压缩电路210的压缩速度,但第一压缩/解压缩电路208的压缩率低于第二压缩/解压缩电路210的压缩率。具体来说,第一压缩/解压缩电路208所使用的压缩机制能够以较快的速度完成压缩,但其对于数据的压缩效率较差。而第二压缩/解压缩电路210的压缩速度虽然较慢,但其对于数据的压缩效率较佳。例如,使用第一压缩/解压缩电路208来对2字节的数据进行压缩时,压缩所需的时间可能为1微秒并且可产生1仟字节的压缩数据;而使用第二压缩/解压缩电路210来对同一笔数据进行压缩时,压缩所需的时间可能为2微秒并且可产生512字节的压缩数据。例如,在一范例实施例中,第一压缩/解压缩电路208为使用Lempel-Ziv(LZ)演算机制所实作的压缩电路,并且第二压缩/解压缩电路210为使用霍夫曼(Huffman)演算机制所实作的压缩电路。
在本发明一范例实施例中,存储器控制电路单元104还包括缓冲存储器212、电源管理电路214以及错误检查与校正电路216。
缓冲存储器212是电性连接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与指令或来自于可复写式非易失性存储器模块106的数据。
电源管理电路214是电性连接至存储器管理电路202并且用以控制存储器存储装置100的电源。
错误检查与校正电路216是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路216会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,简称ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路202从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路216会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图6与图7是根据第一范例实施例所示的管理实体区块的范例示意图。
请参照图6,存储器控制电路单元104(或存储器管理电路202)会将实体抹除单元410(0)~410-(N)逻辑地分组为数据区502、闲置区504、系统区506与取代区508。
逻辑上属于数据区502与闲置区504的实体抹除单元是用以存储来自于主机系统1000的数据。具体来说,数据区502的实体抹除单元是被视为已存储数据的实体抹除单元,而闲置区504的实体抹除单元是用以替换数据区502的实体抹除单元。也就是说,当从主机系统1000接收到写入指令与欲写入的数据时,存储器管理电路202会从闲置区504中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区502的实体抹除单元。
逻辑上属于系统区506的实体抹除单元是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。
逻辑上属于取代区508中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区508中仍存有正常的实体抹除单元并且数据区502的实体抹除单元损坏时,存储器管理电路202会从取代区508中提取正常的实体抹除单元来更换损坏的实体抹除单元。
特别是,数据区502、闲置区504、系统区506与取代区508的实体抹除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置100的运作中,实体抹除单元关联至数据区502、闲置区504、系统区506与取代区508的分组关系会动态地变动。例如,当闲置区504中的实体抹除单元损坏而被取代区508的实体抹除单元取代时,则原本取代区508的实体抹除单元会被关联至闲置区504。
请参照图7,存储器控制电路单元104(或存储器管理电路202)会配置逻辑单元LBA(0)~LBA(H)以映射数据区502的实体抹除单元,其中每一逻辑单元具有多个逻辑子单元以映射对应的实体抹除单元的实体程序化单元。并且,当主机系统100欲写入数据至逻辑单元或更新存储于逻辑单元中的数据时,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取一个实体抹除单元来写入数据,以轮替数据区502的实体抹除单元。在本范例实施例中,逻辑子单元可以是逻辑页面或逻辑扇区。
为了识别数据每个逻辑单元的数据被存储在那个实体抹除单元,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会记录逻辑单元与实体抹除单元之间的映射。并且,当主机系统1000欲在逻辑子单元中存取数据时,存储器控制电路单元104(或存储器管理电路202)会确认此逻辑子单元所属的逻辑单元,并且在此逻辑单元所映射的实体抹除单元中来存取数据。例如,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会在可复写式非易失性存储器模块106中存储逻辑转实体地址映射表来记录每一逻辑单元所映射的实体抹除单元,并且当欲存取数据时存储器控制电路单元104(或存储器管理电路202)会将逻辑转实体地址映射表载入至缓冲存储器212来维护。
值得一提的是,由于缓冲存储器212的容量有限无法存储记录所有逻辑单元的映射关系的映射表,因此,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会将逻辑单元LBA(0)~LBA(H)分组为多个逻辑区域LZ(0)~LZ(M),并且为每一逻辑区域配置一个逻辑转实体地址映射表。特别是,当存储器控制电路单元104(或存储器管理电路202)欲更新某个逻辑单元的映射时,对应此逻辑单元所属的逻辑区域的逻辑转实体地址映射表会被载入至缓冲存储器212来被更新。
在本范例实施例中,存储器存储装置100的可复写式非易失性存储器模块106是以实体程序化单元为基础(也称为页面为基础(page based)来进行管理,因此,在执行写入指令时,不管目前数据是要写入至那个逻辑单元的逻辑子单元,存储器控制电路单元104(或存储器管理电路202)皆会以一个实体程序化单元接续一个实体程序化单元的方式来写入数据(以下也称为随机写入机制)。具体来说,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取一个空的实体抹除单元作为目前使用的实体抹除单元来写入数据。并且,当此目前使用的实体抹除单元已被写满时,存储器控制电路单元104(或存储器管理电路202)会再从闲置区504中提取另一个空的实体抹除单元作为目前使用的实体抹除单元,以继续写入对应来自于主机系统1000的写入指令的数据。特别是,为了避免闲置区504的实体抹除单元被耗尽,当存储器控制电路单元104(或存储器管理电路202)欲从闲置区504中提取实体抹除单元且闲置区504的实体抹除单元的数目下降到所设定的垃圾回收门限值时,存储器控制电路单元104(或存储器管理电路202)会先执行数据合并运作,来使数据区502的至少一个实体抹除单元中的数据成为无效数据,并且将数据区502中所存储的数据皆为无效数据的实体抹除单元关联回闲置区504,以致于闲置区504的实体抹除单元的数目大于所设定的垃圾回收门限值。例如,在执行数据合并运作时,存储器控制电路单元104(或存储器管理电路202)至少需使用一个空的实体抹除单元,因此,垃圾回收门限值至少会被设定为大于1的数值。
特别是,在本范例实施例中,倘若存储器管理电路202从主机系统1000接收到写入指令且此写入指令指示将数据写入至逻辑子单元时,存储器管理电路202会指示(或利用)第一压缩/解压缩电路208来压缩对应此写入指令的数据,并将压缩后的数据写入至可复写式非易失性存储器模块106。也就是说,在此状态下,从主机系统1000中接收的写入数据是符合上述第一态样。另外,倘若存储器管理电路202从某个实体程序化单元读取数据,并要将此数据写入至另一个实体程序化单元时,存储器管理电路202会指示(或利用)第二压缩/解压缩电路210来压缩对应此写入指令的数据。也就是说,在此状态下,从可复写式非易失性存储器模块106中读取的欲搬移数据是符合上述第二态样。
图8~图20是根据第一范例实施例所示的写入数据的范例示意图。
请参照图8,为方便说明,在此假设数据区502初始地未有映射逻辑单元的实体抹除单元(即,存储器存储装置100于开卡后尚未写入过使用者数据),闲置区504具有5个实体抹除单元,每一实体抹除单元具有3个实体程序化单元,欲写入至每一实体抹除单元的数据必须依照实体程序化单元的顺序来被写入。此外假设存储器控制电路单元104(或存储器管理电路202)会配置3个逻辑单元以供主机系统1000存取,并且设定垃圾回收门限值为1其中每个逻辑单元具有3个逻辑子单元且每一个逻辑子单元的容量等于1实体抹除单元的容量。
请参照图9,假设欲程序化数据UD1并且数据UD1是属于逻辑单元LBA(0)的第1个逻辑子单元时,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取实体抹除单元410(0),利用第一压缩/解压缩电路208将数据UD1压缩为压缩数据UD1’,下达程序化指令以将此压缩数据UD1’写入至实体抹除单元410(0)的第0个实体程序化单元并且将实体抹除单元410(0)关联至数据区502。
请参照图10,接续图9,假设欲再程序化数据UD2并且数据UD2是属于逻辑单元LBA(1)的第0个逻辑子单元时,存储器控制电路单元104(或存储器管理电路202)会利用第一压缩/解压缩电路208将数据UD2压缩为压缩数据UD2’,且下达程序化指令以将此压缩数据UD2’写入至实体抹除单元410(0)的第1个实体程序化单元。
请参照图11,接续图10,假设欲再程序化数据UD3并且数据UD3是属于逻辑单元LBA(2)的第1个逻辑子单元时,存储器控制电路单元104(或存储器管理电路202)会利用第一压缩/解压缩电路208将数据UD3压缩为压缩数据UD3’,且下达程序化指令以将此压缩数据UD3’写入至实体抹除单元410(0)的第2个实体程序化单元。
请参照图12,接续图11,假设欲再程序化数据UD4并且数据UD4是属于逻辑单元LBA(0)的第0个逻辑子单元时,由于实体抹除单元410(0)已无存储空间,因此,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取实体抹除单元410(1),利用第一压缩/解压缩电路208将数据UD4压缩为压缩数据UD4’并且下达程序化指令以将此压缩数据UD4’写入至实体抹除单元410(1)的第0个实体程序化单元并且将实体抹除单元410(1)关联至数据区502。
请参照图13,接续图12,假设欲再程序化数据UD5并且数据UD5是属于逻辑单元LBA(1)的第1个逻辑子单元时,存储器控制电路单元104(或存储器管理电路202)会利用第一压缩/解压缩电路208将数据UD5压缩为压缩数据UD5’且下达程序化指令以将此压缩数据UD5’写入至实体抹除单元410(1)的第1个实体程序化单元。
请参照图14,接续图13,假设欲再程序化数据UD6并且数据UD6是属于逻辑单元LBA(0)的第2个逻辑子单元时,存储器控制电路单元104(或存储器管理电路202)会利用第一压缩/解压缩电路208将数据UD6压缩为压缩数据UD6’且下达程序化指令以将此压缩数据UD6’写入至实体抹除单元410(1)的第2个实体程序化单元。
请参照图15,接续图14,假设欲再程序化数据UD7并且数据UD7是属于逻辑单元LBA(2)的第0个逻辑子单元时,由于实体抹除单元410(1)已无存储空间,因此,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取实体抹除单元410(2),利用第一压缩/解压缩电路208将数据UD7压缩为压缩数据UD7’,且下达程序化指令以将此压缩数据UD7’写入至实体抹除单元410(2)的第0个实体程序化单元并且将实体抹除单元410(2)关联至数据区502。
请参照图16,接续图15,假设欲再程序化数据UD8并且数据UD8是属于逻辑单元LBA(1)的第2个逻辑子单元时,存储器控制电路单元104(或存储器管理电路202)会利用第一压缩/解压缩电路208将数据UD8压缩为压缩数据UD8’且下达程序化指令以将此压缩数据UD8’写入至实体抹除单元410(2)的第1个实体程序化单元。
请参照图17,接续图16,假设欲再程序化数据UD9并且数据UD9是属于逻辑单元LBA(2)的第2个逻辑子单元时,存储器控制电路单元104(或存储器管理电路202)会利用第一压缩/解压缩电路208将数据UD9压缩为压缩数据UD9’且下达程序化指令以将此压缩数据UD9’写入至实体抹除单元410(2)的第2个实体程序化单元。
请参照图18,接续图17,假设欲再程序化数据UD10并且数据UD10是属于逻辑单元LBA(1)的第2个逻辑子单元时,由于实体抹除单元410(2)已无存储空间,因此,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取实体抹除单元410(3),会利用第一压缩/解压缩电路208将数据UD10压缩为压缩数据UD10’且下达程序化指令以将此压缩数据UD10’写入至实体抹除单元410(3)的第0个实体程序化单元并且将实体抹除单元410(3)关联至数据区502,其中实体抹除单元410(2)的第1个实体程序化单元会被标记为无效数据状态(如虚线所示)。
请参照图19,接续图18,假设欲再程序化数据UD11并且数据UD11是属于逻辑单元LBA(2)的第2个逻辑子单元时,存储器控制电路单元104(或存储器管理电路202)会利用第一压缩/解压缩电路208将数据UD11压缩为压缩数据UD11’且下达程序化指令以将此压缩数据UD11’写入至实体抹除单元410(3)的第1个实体程序化单元,其中实体抹除单元410(2)的第2个实体程序化单元会被标记为无效数据状态(如虚线所示)。
请参照图20,接续图19,假设欲再程序化数据UD12并且数据UD12是属于逻辑单元LBA(1)的第1个逻辑子单元时,存储器控制电路单元104(或存储器管理电路202)会利用第一压缩/解压缩电路208将数据UD12压缩为压缩数据UD12’且下达程序化指令以将此压缩数据UD12’写入至实体抹除单元410(3)的第2个实体程序化单元,其中实体抹除单元410(1)的第1个实体程序化单元会被标记为无效数据状态(如虚线所示)。
以此类推,不论主机系统1000欲将数据存储至那个逻辑单元的逻辑子单元中,存储器控制电路单元104(或存储器管理电路202)会依序地将主机系统1000欲存储的数据写入目前使用的实体抹除单元中。特别是,当闲置区504的实体抹除单元的数目不大于垃圾回收门限值时,存储器控制电路单元104(或存储器管理电路202)会在执行写入指令时一并执行数据合并运作,以防止闲置区的实体抹除单元被用尽。
图21与图22是根据第一范例实施例所示的执行有效数据合并程序以完成后续写入指令的简化范例示意图。
接续图20,假设欲再程序化数据UD13与UD14并且数据UD13与UD14是属于逻辑单元LBA(2)的第0与第1个逻辑子单元时,由于实体抹除单元410(3)已无存储空间,因此,存储器控制电路单元104(或存储器管理电路202)需要从闲置区504中提取空的实体抹除单元。然而,此时,闲置区504的实体抹除单元的数目是不大于垃圾回收门限值,因此,存储器控制电路单元104(或存储器管理电路202)必须先执行数据合并运作。
请参照图21,例如,存储器控制电路单元104(或存储器管理电路202)从闲置区504中提取实体抹除单元410(4),读取实体抹除单元410(1)中的有效数据(即,压缩数据UD4’与UD6’)和实体抹除单元410(2)中的有效数据(即,压缩数据UD7’),使用第一压缩/解压缩电路208将压缩数据UD4’、压缩数据UD6’与压缩数据UD7’解压缩回数据UD4、数据UD6与数据UD7,使用第二压缩/解压缩电路210压缩数据UD4、数据UD6与数据UD7以产生压缩数据UD4”、压缩数据UD6”与压缩数据UD7”,将压缩数据UD4”、压缩数据UD6”与压缩数据UD7”写入至实体抹除单元410(4),将实体抹除单元410(4)关联至数据区502,将实体抹除单元410(1)的第0与1个实体程序化单元和实体抹除单元410(2)的第0实体程序化单元标记为无效,对仅存储无效数据的实体抹除单元(即,实体抹除单元410(1)与实体抹除单元410(2))执行实体抹除,并且将抹除后的实体抹除单元关联回闲置区504。此时,闲置区504的实体抹除单元的数目会回复为2(大于垃圾回收门限值)。
请参照图22,之后,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取实体抹除单元410(1),会利用第一压缩/解压缩电路208将数据UD13与数据UD14压缩为压缩数据UD13’与压缩数据UD14’,且下达程序化指令以将压缩数据UD13’与压缩数据UD14’写入至实体抹除单元410(1)的第0与第1个实体程序化单元并且将实体抹除单元410(1)关联至数据区502,其中逻辑单元LBA(2)的第0与第1个逻辑子单元所映射的实体程序化单元(即,实体抹除单元410(0)的第2个实体程序化单元以及实体抹除单元410(4)的第2个实体程序化单元)会被标记为无效数据状态。
综合图8~图22所示,对于来自于主机系统1000对写入指令的数据,存储器控制电路单元104(或存储器管理电路202)会利用第一压缩/解压缩电路208来进行压缩,由此尽速完成压缩,以避免延迟执行写入指令的时间。而对于执行数据合并运作时所搬移的数据,存储器控制电路单元104(或存储器管理电路202)会利用第二压缩/解压缩电路210来进行压缩,由此获得较佳的压缩率。
值得一提的是,尽管在图21所示的例子中,存储器控制电路单元104(或存储器管理电路202)会先利用第一压缩/解压缩电路208将从实体抹除单元410(1)中读取的有效数据(即,压缩数据UD4’与UD6’)和从实体抹除单元410(2)中读取的有效数据(即,压缩数据UD7’)解压缩回数据UD4、数据UD6与数据UD7后再重新利用第二压缩/解压缩电路210,但本发明不限于此。例如,在另一范例实施例中,存储器控制电路单元104(或存储器管理电路202)也可直接利用第二压缩/解压缩电路210来压缩从实体抹除单元410(1)中读取的压缩数据UD4’与UD6’和从实体抹除单元410(2)中读取的压缩数据UD7’以产生新的压缩数据UD4”、UD6”与UD7”。
此外,在本发明范例实施例中,对于来自于主机系统1000对写入指令的数据,存储器控制电路单元104(或存储器管理电路202)是先利用第一压缩/解压缩电路208来进行压缩以在缓冲存储器212中暂存所产生的压缩数据后,再下达指令序列将压缩数据写入至可复写式非易失性存储器模块106。然而,本发明不限于此,在另一范例实施例中,存储器控制电路单元104(或存储器管理电路202)也可直接下达指令序列将欲写入的数据通过存储器接口206传送至可复写式非易失性存储器模块106,并且在传送数据至可复写式非易失性存储器模块106的同时,第一压缩/解压缩电路208会以即时(on the fly)压缩方式对所传输的数据进行压缩。
图23与图24是根据第一范例实施例所示的数据写入方法的流程图。
请参照图23,在步骤S2301中,存储器控制电路单元104(或存储器管理电路202)会从主机系统1000接收写入指令与对应的数据(以下称为第一数据)。
在步骤S2303中,存储器控制电路单元104(或存储器管理电路202)会使用第一压缩/解压缩电路208将第一数据压缩为第一压缩数据。
在步骤S2305中,存储器控制电路单元104(或存储器管理电路202)会从可复写式非易失性存储器模块106中选择一空的实体程序化单元(以下称为第一实体程序化单元),并且在步骤S2307中,存储器控制电路单元104(或存储器管理电路202)会将第一压缩数据程序化至第一实体程序化单元。
请参照图24,在步骤S2401中,存储器控制电路单元104(或存储器管理电路202)会根据闲置区504中的实体抹除单元的数目判断是否执行数据合并程序。
倘若无需执行数据合并程序时,图24的流程会被结束。
倘若需执行数据合并程序时,在步骤S2403中,存储器控制电路单元104(或存储器管理电路202)会从数据区502中选择一个实体抹除单元(以下称为第一实体抹除单元),并且在步骤S2405中,存储器控制电路单元104(或存储器管理电路202)会从第一实体抹除单元的至少一个实体程序化单元(以下称为第二实体程序化单元)中读取有效数据(以下称为已压缩数据)。
在步骤S2407中,存储器控制电路单元104(或存储器管理电路202)会使用第一压缩/解压缩电路208将此已压缩数据解压缩回原始数据(以下称为第二数据),并且使用第二压缩/解压缩电路210压缩此第二数据以产生第二压缩数据。
在步骤S2409中,存储器控制电路单元104(或存储器管理电路202)会选择一空的实体程序化单元(以下称为第三实体程序化单元),并且在步骤S2411中,存储器控制电路单元104(或存储器管理电路202)会将第二压缩数据程序化至第三实体程序化单元。
之后,在步骤S2413中,存储器控制电路单元104(或存储器管理电路202)会抹除第一实体抹除单元,并且将抹除后的第一实体抹除单元关联至闲置区504。
第二范例实施例
第二范例实施例的存储器存储装置的硬件结构本质上是相同于第一范例实施例的存储器存储装置的硬件结构,其差异之处在于第一范例实施例的存储器存储装置是根据欲程序化的数据是来自于主机系统或可复写式非易失性存储器而使用第一或第二压缩/解压缩电路来压缩,而第二范例实施例的存储器存储装置是根据欲程序化的数据的每一比特值是否属于预设态样而使用第一或第二压缩/解压缩电路来压缩。以下将使用第一范例实施例的存储器存储装置的图式与元件编号来详细说明第二范例实施例的存储器存储装置的运作。
在第二范例实施例中,当欲写入数据至可复写式非易失性存储器模块106时,存储器控制电路单元104(或存储器管理电路202)会判断此数据的每个比特值是否属于预设态样。例如,此预设态样包括每个比特值皆为相同,并且,必须了解的是,本发明不限于此。例如,在另一范例实施例中,存储器控制电路单元104(或存储器管理电路202)可将多种数据内容型态(例如,“01010101….”、“10101010…”等态样)记录在一个预设态样表中,并且当欲写入的数据的比特值的态样相同于预设态样表中所记录的态样时,则识别此数据属于此预设态样。
倘若数据的每个比特值属于预设态样(即,符合上述第一态样)时,存储器控制电路单元104(或存储器管理电路202)会利用第一压缩/解压缩电路208来压缩此数据并且将所压缩的数据写入至可复写式非易失性存储器中。此外,倘若数据的每个比特值不属于预设态样(即,符合上述第二态样)时,存储器控制电路单元104(或存储器管理电路202)会利用第二压缩/解压缩电路210来压缩此数据并且将所压缩的数据写入至可复写式非易失性存储器模块106中。
值得一提的是,当存储器存储装置100接收到来自主机系统1000的指令时,存储器控制电路单元104(或存储器管理电路202)需立即执行并且回应主机系统1000,以避免逾时。在此,为回应主机系统1000所执行的程序的模式,称为前景执行模式。相对地,存储器控制电路单元104(或存储器管理电路202)也可在闲置下(即,未收到主机系统1000所传送的指令)运作,例如,搬移数据等。在此,非为回应主机系统1000所执行的程序的模式,称为背景执行模式。由于第一压缩/解压缩电路208的处理速度较快,可以满足主机系统1000的频宽,因此,存储器控制电路单元104(或存储器管理电路202)会于立即处理主机系统1000的指令当下(即,前景执行模式)使用第一压缩/解压缩电路208来压缩数据。反之,由于第二压缩/解压缩电路210的处理速度较慢,无法满足主机系统1000的频宽,因此,存储器控制电路单元104(或存储器管理电路202)会于背景执行模式中使用第二压缩/解压缩电路210来压缩数据。也就是说,当选择已背景执行模式来处理主机系统1000的指令时,存储器控制电路单元104(或存储器管理电路202)会将指令与数据暂存于缓冲存储器212并回复主机系统1000已完成此指令,并且在存储器存储装置100闲置时(例如,一段时间未收到主机系统1000的指令时),执行此指令。
图25是根据第二范例实施例所示的数据写入方法的流程图。
请参照图25,在步骤S2501中,存储器控制电路单元104(或存储器管理电路202)会从主机系统1000接收欲写入的数据。
在步骤S2503中,存储器控制电路单元104(或存储器管理电路202)会判断此数据的每个比特值是否为相同。
倘若此数据的每个比特值皆为相同时,在步骤S2505中,存储器控制电路单元104(或存储器管理电路202)会在前景执行模式下利用第一压缩/解压缩电路208来压缩此数据以产生一压缩数据,从可复写式非易失性存储器模块106选择一空的实体程序化单元,并且将所产生的压缩数据写入至所选择的实体程序化单元中。
倘若此数据的每个比特值不皆为相同时,在步骤S2507中,存储器控制电路单元104(或存储器管理电路202)会先在缓冲存储器212中暂存此数据。
然后,在步骤S2509中,存储器控制电路单元104(或存储器管理电路202)在背景执行模式下利用第二压缩/解压缩电路210来压缩此数据以产生另一压缩数据,从可复写式非易失性存储器模块106选择一空的实体程序化单元,并且将所产生的另一压缩数据写入至所选择的实体程序化单元中。
综上所述,本发明范例实施例所提出的数据写入方法、存储器控制电路单元与存储器存储装置能够根据欲写入至实体程序化单元的数据的态样来选择不同的压缩/解压缩电路来进行压缩,由此可以在需要顾及处理速度下以具较快速率的压缩机制来完成压缩,并且在有充裕时间下以具较佳压缩率的压缩机制来完成压缩,基此同时可兼顾高速与高压缩率的需求。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (17)
1.一种数据写入方法,其特征在于,用于一可复写式非易失性存储器模块,该可复写式非易失性存储器模块具有多个实体抹除单元,每一所述实体抹除单元具有多个实体程序化单元,该数据写入方法包括:
识别数据是属于第一态样或第二态样;
倘若该数据属于该第一态样时,使用第一压缩/解压缩电路压缩该数据以产生压缩数据,并且将该压缩数据写入至该些实体程序化单元中,其中上述使用该第一压缩/解压缩电路压缩该数据以产生该压缩数据,并且将该压缩数据写入至该些实体程序化单元中的步骤是在前景执行模式中被执行;以及
倘若该数据属于该第二态样时,使用第二压缩/解压缩电路压缩该数据以产生另一压缩数据,并且将该另一压缩数据写入至该些实体程序化单元中,其中上述使用该第二压缩/解压缩电路压缩该数据以产生该另一压缩数据,并且将该另一压缩数据写入至该些实体程序化单元中的步骤是在背景执行模式中被执行,
其中该第一压缩/解压缩电路的压缩速度快于该第二压缩/解压缩电路的压缩速度,并且该第一压缩/解压缩电路的数据压缩率小于该第二压缩/解压缩电路的数据压缩率。
2.根据权利要求1所述的数据写入方法,其特征在于,所述识别该数据是属于该第一态样或该第二态样的步骤包括:
将从主机系统中接收的写入指令所指示的第一数据识别为属于该第一态样;以及
将从该些实体程序化单元中所读取的第二数据识别为属于该第二态样。
3.根据权利要求2所述的数据写入方法,其特征在于,所述使用该第一压缩/解压缩电路压缩该数据以产生该压缩数据,并且将该压缩数据写入至该些实体程序化单元中的步骤包括:
将该第一数据通过一存储器接口传送至该可复写式非易失性存储器模块的同时,使用该第一压缩/解压缩电路将该第一数据压缩为第一压缩数据;以及
将该第一压缩数据写入至该些实体程序化单元之中的第一实体程序化单元中。
4.根据权利要求3所述的数据写入方法,其特征在于,还包括:
执行数据合并运作以从该些实体程序化单元之中的第二实体程序化单元中读取已压缩数据,且使用该第一压缩/解压缩电路解压缩从该第二实体程序化单元中读取的该已压缩数据以获得该第二数据,
其中所述使用该第二压缩/解压缩电路压缩该数据以产生该另一压缩数据,并且将该另一压缩数据写入至该些实体程序化单元中的步骤包括:
使用该第二压缩/解压缩电路将该第二数据压缩为第二压缩数据;以及
将该第二压缩数据写入至该些实体程序化单元之中的第三实体程序化单元中。
5.根据权利要求3所述的数据写入方法,其特征在于,还包括:
执行数据合并运作以从该些实体程序化单元之中的第二实体程序化单元中读取该第二数据,其中该第二数据为经过该第一压缩/解压缩电路压缩的数据,
其中所述使用该第二压缩/解压缩电路压缩该数据以产生该另一压缩数据,并且将该另一压缩数据写入至该些实体程序化单元中的步骤包括:
使用该第二压缩/解压缩电路将该第二数据压缩为第二压缩数据;以及
将该第二压缩数据写入至该些实体程序化单元之中的第三实体程序化单元中。
6.根据权利要求1所述的数据写入方法,其特征在于,所述识别该数据是属于该第一态样或该第二态样的步骤包括:
判断该数据的每个比特值是否皆为相同;
倘若该数据的每个比特值皆为相同时,识别该数据属于该第一态样;以及倘若该数据的每个比特值不皆为相同时,识别该数据属于该第二态样。
7.一种存储器控制电路单元,其特征在于,用于控制一可复写式非易失性存储器模块,该存储器控制电路单元包括:
主机接口,用以电性连接至主机系统;
存储器接口,用以电性连接至该可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块具有多个实体抹除单元,每一所述实体抹除单元具有多个实体程序化单元;
存储器管理电路,电性连接至该主机接口与该存储器接口;
第一压缩/解压缩电路,电性连接至该存储器管理电路;以及
第二压缩/解压缩电路,电性连接至该存储器管理电路,
其中该存储器管理电路识别数据是属于第一态样或第二态样,
倘若该数据属于该第一态样时,该第一压缩/解压缩电路压缩该数据以产生压缩数据,并且该存储器管理电路下达指令序列将该压缩数据写入至该些实体程序化单元中,
倘若该数据属于该第二态样时,该第二压缩/解压缩电路压缩该数据以产生另一压缩数据,并且该存储器管理电路下达指令序列将该另一压缩数据写入至该些实体程序化单元中,其中在上述压缩该数据以产生该另一压缩数据,并且将该另一压缩数据写入至该些实体程序化单元中的运作中,该第二压缩/解压缩电路将第二数据压缩为第二压缩数据,并且该存储器管理电路将该第二压缩数据写入至该些实体程序化单元之中的第三实体程序化单元中,
其中该第一压缩/解压缩电路的压缩速度快于该第二压缩/解压缩电路的压缩速度,并且该第一压缩/解压缩电路的数据压缩率小于该第二压缩/解压缩电路的数据压缩率,
其中该存储器管理电路执行数据合并运作以从该些实体程序化单元之中的第二实体程序化单元中读取已压缩数据,且该第一压缩/解压缩电路解压缩从该第二实体程序化单元中读取的该已压缩数据以获得该第二数据。
8.根据权利要求7项所述的存储器控制电路单元,其特征在于,在上述识别该数据是属于该第一态样或该第二态样的运作中,该存储器管理电路将从该主机系统中接收的写入指令所指示的第一数据识别为属于该第一态样,并且将从该些实体程序化单元中所读取的第二数据识别为属于该第二态样。
9.根据权利要求8所述的存储器控制电路单元,其特征在于,在压缩该数据以产生该压缩数据,并且将该压缩数据写入至该些实体程序化单元中的运作中,
该存储器管理电路将该第一数据通过该存储器接口传送至该可复写式非易失性存储器模块的同时,该第一压缩/解压缩电路将该第一数据压缩为第一压缩数据,
其中该第一压缩数据会被写入至该些实体程序化单元之中的第一实体程序化单元中。
10.根据权利要求7所述的存储器控制电路单元,其特征在于,该存储器管理电路执行数据合并运作以从该些实体程序化单元之中的第二实体程序化单元中读取该第二数据,其中该第二数据为经过该第一压缩/解压缩电路压缩的数据,
其中在上述压缩该数据以产生该另一压缩数据,并且将该另一压缩数据写入至该些实体程序化单元中的运作中,该第二压缩/解压缩电路将该第二数据压缩为第二压缩数据,并且该存储器管理电路将该第二压缩数据写入至该些实体程序化单元之中的第三实体程序化单元中。
11.根据权利要求7所述的存储器控制电路单元,其特征在于,在上述识别该数据是属于该第一态样或该第二态样的运作中,该存储器管理电路判断该数据的每个比特值是否皆为相同,
倘若该数据的每个比特值皆为相同时,该存储器管理电路识别该数据属于该第一态样,并且上述该第一压缩/解压缩电路压缩该数据以产生该压缩数据,并且该存储器管理电路将该压缩数据写入至该些实体程序化单元中的运作是在前景执行模式中被执行;以及
倘若该数据的每个比特值不皆为相同时,该存储器管理电路识别该数据属于该第二态样,其中上述该第二压缩/解压缩电路压缩该数据以产生该另一压缩数据,并且该存储器管理电路将该另一压缩数据写入至该些实体程序化单元中的运作是在背景执行模式中被执行。
12.一种存储器存储装置,其特征在于,包括:
连接接口单元,用以电性连接至主机系统;
可复写式非易失性存储器模块,具有多个实体抹除单元,每一该些实体抹除单元具有多个实体程序化单元;以及
存储器控制电路单元,电性连接至该连接接口单元与该可复写式非易失性存储器模块,
其中该存储器控制电路单元识别数据是属于第一态样或一第二态样,
倘若该数据属于该第一态样时,该存储器控制电路单元利用第一压缩/解压缩电路压缩该数据以产生压缩数据,并且将该压缩数据写入至该些实体程序化单元中,并且上述压缩该数据以产生该压缩数据,并且将该压缩数据写入至该些实体程序化单元中的运作是在一前景执行模式中被执行,
倘若该数据属于该第二态样时,该存储器控制电路单元利用第二压缩/解压缩电路压缩该数据以产生另一压缩数据,并且将该另一压缩数据写入至该些实体程序化单元中,其中上述压缩该数据以产生该另一压缩数据,并且将该另一压缩数据写入至该些实体程序化单元中的运作是在背景执行模式中被执行,
其中该第一压缩/解压缩电路的压缩速度快于该第二压缩/解压缩电路的压缩速度,并且该第一压缩/解压缩电路的数据压缩率小于该第二压缩/解压缩电路的数据压缩率。
13.根据权利要求12所述的存储器存储装置,其特征在于,在上述识别该数据是属于该第一态样或该第二态样的运作中,该存储器控制电路单元将从该主机系统中接收的写入指令所指示的第一数据识别为属于该第一态样,并且将从该些实体程序化单元中所读取的第二数据识别为属于该第二态样。
14.根据权利要求13项所述的存储器存储装置,其特征在于,在利用该第一压缩/解压缩电路压缩该数据以产生该压缩数据,并且将该压缩数据写入至该些实体程序化单元中的运作中,
该存储器控制电路单元将该第一数据通过存储器接口传送至该可复写式非易失性存储器模块的同时,利用该第一压缩/解压缩电路将该第一数据压缩为第一压缩数据,
其中该第一压缩数据会被写入至该些实体程序化单元之中的第一实体程序化单元中。
15.根据权利要求13所述的存储器存储装置,其特征在于,该存储器控制电路单元执行数据合并运作以从该些实体程序化单元之中的第二实体程序化单元中读取已压缩数据,且利用该第一压缩/解压缩电路解压缩从该第二实体程序化单元中读取的该已压缩数据以获得该第二数据,
其中在上述利用该第二压缩/解压缩电路压缩该数据以产生该另一压缩数据,并且将该另一压缩数据写入至该些实体程序化单元中的运作中,该存储器控制电路单元利用该第二压缩/解压缩电路将该第二数据压缩为第二压缩数据,并且该存储器管理电路将该第二压缩数据写入至该些实体程序化单元之中的第三实体程序化单元中。
16.根据权利要求13所述的存储器存储装置,其特征在于,该存储器控制电路单元执行数据合并运作以从该些实体程序化单元之中的第二实体程序化单元中读取该第二数据,其中该第二数据为经过该第一压缩/解压缩电路压缩的数据,
其中在上述利用该第二压缩/解压缩电路压缩该数据以产生该另一压缩数据,并且将该另一压缩数据写入至该些实体程序化单元中的运作中,该存储器控制电路单元利用该第二压缩/解压缩电路将该第二数据压缩为第二压缩数据,并且将该第二压缩数据写入至该些实体程序化单元之中的第三实体程序化单元中。
17.根据权利要求12所述的存储器存储装置,其特征在于,在上述识别该数据是属于该第一态样或该第二态样的运作中,该存储器控制电路单元判断该数据的每个比特值是否皆为相同,
倘若该数据的每个比特值皆为相同时,该存储器控制电路单元识别该数据属于该第一态样;以及
倘若该数据的每个比特值不皆为相同时,该存储器控制电路单元识别该数据属于该第二态样。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410582089.7A CN105630687B (zh) | 2014-10-27 | 2014-10-27 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410582089.7A CN105630687B (zh) | 2014-10-27 | 2014-10-27 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105630687A CN105630687A (zh) | 2016-06-01 |
CN105630687B true CN105630687B (zh) | 2019-01-08 |
Family
ID=56045657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410582089.7A Active CN105630687B (zh) | 2014-10-27 | 2014-10-27 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105630687B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019079113A (ja) * | 2017-10-20 | 2019-05-23 | 株式会社日立製作所 | ストレージ装置、データ管理方法、及びデータ管理プログラム |
TWI668699B (zh) | 2018-10-25 | 2019-08-11 | 群聯電子股份有限公司 | 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置 |
CN111143253A (zh) * | 2018-11-02 | 2020-05-12 | 群联电子股份有限公司 | 数据储存方法、存储器控制电路单元以及存储器储存装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1672135A (zh) * | 2002-08-06 | 2005-09-21 | 国际商业机器公司 | 基于可压缩性程度使用压缩主存储器的系统和方法 |
CN104008064A (zh) * | 2013-02-25 | 2014-08-27 | 国际商业机器公司 | 用于多级存储器压缩的方法和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI220959B (en) * | 2003-06-05 | 2004-09-11 | Carry Computer Eng Co Ltd | Storage device with optimized compression management mechanism |
US8370544B2 (en) * | 2009-07-23 | 2013-02-05 | Stec, Inc. | Data storage system with compression/decompression |
TWI459197B (zh) * | 2011-04-21 | 2014-11-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
-
2014
- 2014-10-27 CN CN201410582089.7A patent/CN105630687B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1672135A (zh) * | 2002-08-06 | 2005-09-21 | 国际商业机器公司 | 基于可压缩性程度使用压缩主存储器的系统和方法 |
CN104008064A (zh) * | 2013-02-25 | 2014-08-27 | 国际商业机器公司 | 用于多级存储器压缩的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105630687A (zh) | 2016-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104679437B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
TWI515735B (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN104732153B (zh) | 数据抹除方法、存储器控制电路单元及存储器存储装置 | |
CN109491588B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN106372000B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
TW201703052A (zh) | 平均磨損方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201702877A (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN104765568A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN106681652A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TW201705148A (zh) | 映射表存取方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI534814B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN107943710A (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
CN108733577A (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
TWI517165B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN103136111A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN105630687B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN105224238B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TW201531855A (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN106959818A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
CN106406746B (zh) | 映射表存取方法、存储器控制电路单元及存储器存储装置 | |
CN106648443B (zh) | 有效数据合并方法、存储器控制器与存储器存储装置 | |
CN109273033A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN102591737A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |