CN105335096B - 数据管理方法、存储器控制电路单元以及存储器存储装置 - Google Patents
数据管理方法、存储器控制电路单元以及存储器存储装置 Download PDFInfo
- Publication number
- CN105335096B CN105335096B CN201410393824.XA CN201410393824A CN105335096B CN 105335096 B CN105335096 B CN 105335096B CN 201410393824 A CN201410393824 A CN 201410393824A CN 105335096 B CN105335096 B CN 105335096B
- Authority
- CN
- China
- Prior art keywords
- data
- initial address
- free space
- address
- programmed cell
- 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是根据本发明范例实施例所示出的电脑、输入/输出装置与存储器存储装置的示意图;
图3是根据本发明范例实施例所示出的主机系统与存储器存储装置的示意图;
图4是示出图1所示的存储器存储装置的概要方块图;
图5是根据本发明范例实施例所示出的存储器控制电路单元的概要方块图;
图6与图7是根据本发明范例实施例所示出的管理实体抹除单元的范例示意图;
图8A~8C是根据本发明范例实施例所示出的将不可压缩数据存储至实体程序化单元的示意图;
图9是根据本发明的另一范例实施例所示出的将不可压缩数据存储至实体程序化单元的示意图;
图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:存储器接口;
208:缓冲存储器;
210:电源管理电路;
212:错误检查与校正电路;
214:数据压缩/解压缩电路;
410(0)~410(N):实体抹除单元;
502:数据区;
504:闲置区;
506:系统区;
508:取代区;
LBA(0)~LBA(H):逻辑单元;
LZ(0)~LZ(M):逻辑区域;
CD1:第一压缩数据;
PD1:第一填补数据;
D2:第二数据;
D3:第三数据;
D4:第四数据;
Addr_S1:第一起始实体地址;
Addr_S2:第二起始实体地址;
Addr_S4:第四起始实体地址;
Addr_E1:第一结束实体地址;
Addr_E2:第二结束实体地址;
Addr_A1:第一可用空间起始地址;
Addr_A4:第四可用空间起始地址;
ECCF1:第一错误检查与校正码框;
ECCF2:第二错误检查与校正码框;
ECCF3:第三错误检查与校正码框;
ECCF4:第四错误检查与校正码框;
DBA1:第一数据比特区;
DBA2:第二数据比特区;
DBA3:第三数据比特区;
DBA4:第四数据比特区;
DMI1:第一数据管理信息;
DMI2:第二数据管理信息;
DMI3:第三数据管理信息;
DMI4:第四数据管理信息;
SBA1:第一冗余比特区;
SBA2:第二冗余比特区;
SBA3:第三冗余比特区;
SBA4:第四冗余比特区;
S1001、S1003、S1005、S1007、S1009、S1011、S1013、S1015:本发明数据管理方法的步骤。
具体实施方式
图1是根据本发明范例实施例所示出的主机系统与存储器存储装置的示意图。
请参照图1,主机系统1000一般包括电脑1100与输入/输出(input/output,简称I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(random access memory,简称RAM)1104、系统总线1108与数据传输接口1110。输入/输出装置1106包括如图2的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图2所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,存储器存储装置100是通过数据传输接口1110与主机系统1000的其他元件电性连接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的运作可将数据写入至存储器存储装置100或从存储器存储装置100中读取数据。例如,存储器存储装置100可以是如图2所示的优盘1212、存储卡1214或固态硬盘(Solid StateDrive,简称SSD)1216等的可复写式非易失性存储器模块存储装置。
一般而言,主机系统1000为可实质地与存储器存储装置100配合以存储数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来做说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,可复写式非易失性存储器模块存储装置则为其所使用的SD卡1312、MMC卡1314、存储棒(memory stick)1316、CF卡1318或嵌入式存储装置1320(如图3所示)。嵌入式存储装置1320包括嵌入式多媒体卡(EmbeddedMMC,简称eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接在主机系统的基板上。
图4是示出图1所示的存储器存储装置的概要方块图。
请参照图4,存储器存储装置100包括连接接口单元102、存储器控制电路单元104与可复写式非易失性存储器模块106。
在本范例实施例中,连接接口单元102是符合串行高级技术附件(SerialAdvanced Technology Attachment,简称SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元102也可以是符合并行高级技术附件(Parallel Advanced TechnologyAttachment,简称PATA)标准、电气和电子工程师协会(Institute of Electrical andElectronic Engineers,简称IEEE)1394标准、高速外围组件互连接口(PeripheralComponent Interconnect Express,简称PCI Express)标准、通用串行总线(UniversalSerial Bus,简称USB)标准、超高速一代(Ultra High Speed-I,简称UHS-I)接口标准、超高速二代(Ultra High Speed-II,简称UHS-II)接口标准、串行高级技术附件(SerialAdvanced Technology Attachment,简称SATA)标准、存储棒(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)或者属于不同的存储器晶粒。每一实体抹除单元分别具有复数个实体程序化单元,例如本发明的范例实施例中,每一个实体抹除单元包含258个实体程序化单元,而其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一实体抹除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。
更详细来说,实体抹除单元为抹除的最小单位。即,每一实体抹除单元含有最小数目的一并被抹除的存储单元。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据比特区(Data bits area,简称DBA)与冗余比特区(Spare bits area,简称SBA)。数据比特区包含多个实体存取地址用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,控制信息、压缩信息或是错误检查与校正码)。在本范例实施例中,每一个实体程序化单元的数据比特区的大小为4096字节(bytes)并且包含4个实体存取地址,且一个实体存取地址的大小为1024字节。然而,在其他范例实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一范例实施例中,实体抹除单元为实体区块,并且实体程序化单元为实体页面或实体扇区,但本发明不以此为限。
在本范例实施例中,可复写式非易失性存储器模块106为多层单元(Multi LevelCell,简称MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特数据的快闪存储器模块,以下称MLC NAND型快闪存储器模块),然而,本发明不限于此,可复写式非易失性存储器模块106也可是单层单元(Single Level Cell,简称SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特数据的快闪存储器模块)、三层单元(Trinary LevelCell,简称TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特数据的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
图5是根据本发明范例实施例所示出的存储器控制电路单元的概要方块图。
请参照图5,存储器控制电路单元104包括存储器管理电路202、主机接口204、存储器接口206、缓冲存储器208、电源管理电路210、错误检查与校正电路212与数据压缩/解压缩电路214。
存储器管理电路202用以控制存储器控制电路单元104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器存储装置100运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
在本范例实施例中,存储器管理电路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标准、PCIExpress标准、USB标准、UHS-I接口标准、UHS-II接口标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是电性连接至存储器管理电路202并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会经由存储器接口206转换为可复写式非易失性存储器模块106所能接受的格式。
在本发明一范例实施例中,存储器控制电路单元104还包括缓冲存储器208、电源管理电路210、错误检查与校正电路212与数据压缩/解压缩电路214。
缓冲存储器208是电性连接至存储器管理电路202并且用以寄存来自于主机系统1000的数据与指令或来自于可复写式非易失性存储器模块106的数据。存储器控制电路单元104在缓冲存储器208中规划寄存来自于主机系统1000的数据或来自于可复写式非易失性存储器模块106的数据,以使数据组织成预定单位大小或是成为传输单元大小,并写入到可复写式非易失性存储器模块106或是回传到主机系统。
电源管理电路210是电性连接至存储器管理电路202并且用以控制存储器存储装置100的电源。
错误检查与校正电路212是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路212会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,简称ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路202从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路212会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
数据压缩/解压缩电路214是电性连接至存储器管理电路202。在此,数据压缩/解压缩电路214用以压缩欲写入至可复写式非易失性存储器模块106的数据并且用以解压缩从可复写式非易失性存储器模块106中所读取的数据。例如,数据压缩/解压缩电路214包含压缩器(compressor)及解压缩器(decompressor)。压缩器用以找出原始数据(originaldata)中存在的数据冗余(data redundancy)、移除所找出的冗余,将剩余的必要数据编码并且输出编码结果,即,压缩数据(compressed data)。而,解压缩器用以将读入的压缩数据依据既定的步骤解码并送出解码结果,即,解压缩数据(decompressed data)。在本范例实施例中,数据压缩/解压缩电路214是使用无损压缩演算法来压缩数据,以使压缩后的数据能够被还原。
图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的实体抹除单元,其中每一逻辑单元具有多个逻辑子单元以映射对应的实体抹除单元的实体程序化单元。并且,当主机系统1000欲写入数据至逻辑单元或更新存储在逻辑单元中的数据时,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取一个实体抹除单元来写入数据,以轮替数据区502的实体抹除单元。在本范例实施例中,逻辑子单元可以是逻辑页面或逻辑扇区。在本范例实施例中,逻辑子单元为逻辑页面,大小为4千字节(kilobytes,简称K bytes),与实体程序化单元的大小相同。
为了识别每个逻辑单元的数据被存储在那个实体抹除单元,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会记录逻辑单元与实体抹除单元之间的映射。并且,当主机系统1000欲在逻辑子单元中存取数据时,存储器控制电路单元104(或存储器管理电路202)会确认此逻辑子单元所属的逻辑单元,并且对可复写式非易失性存储器模块106下达对应的指令序列以在此逻辑单元所映射的实体抹除单元中来存取数据。例如,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会在可复写式非易失性存储器模块106中存储逻辑转实体地址映射表来记录每一逻辑单元所映射的实体抹除单元,并且当欲存取数据时存储器控制电路单元104(或存储器管理电路202)会将逻辑转实体地址映射表载入至缓冲存储器208来维护。
值得一提的是,由于缓冲存储器208的容量有限无法存储记录所有逻辑单元的映射关系的映射表,因此,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会将逻辑单元LBA(0)~LBA(H)分组为多个逻辑区域LZ(0)~LZ(M),并且为每一逻辑区域配置一个逻辑转实体地址映射表。特别是,当存储器控制电路单元104(或存储器管理电路202)欲更新某个逻辑单元的映射时,对应此逻辑单元所属的逻辑区域的逻辑转实体地址映射表会被载入至缓冲存储器208来被更新。
如上所述,在本范例实施例中,存储器存储装置100的可复写式非易失性存储器模块106是以实体程序化单元为基础来进行管理,因此,在执行写入指令时,不管目前数据是要写入至那个逻辑单元的逻辑子单元,存储器控制电路单元104(或存储器管理电路202)都会以一个实体程序化单元接续一个实体程序化单元的方式来写入数据。具体来说,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取一个空的实体抹除单元作为目前使用的实体抹除单元来写入数据。并且,当此目前使用的实体抹除单元已被写满时,存储器控制电路单元104(或存储器管理电路202)会再从闲置区504中提取另一个空的实体抹除单元作为目前使用的实体抹除单元,以继续写入对应来自于主机系统1000的写入指令的数据。特别是,为了避免闲置区504的实体抹除单元被耗尽,当存储器控制电路单元104(或存储器管理电路202)欲从闲置区504中提取实体抹除单元且闲置区504的实体抹除单元快耗尽时,存储器控制电路单元104(或存储器管理电路202)会先执行数据合并程序,来使数据区502的至少一个实体抹除单元中的数据成为无效数据,并且将数据区502中所存储的数据已为无效数据的实体抹除单元关联回闲置区504。
在本范例实施例中,如上所述,在存储器存储装置100的错误检查与校正电路212会被配置来验证可复写式非易失性存储器模块106中所存储的数据是否正确。然而,在执行错误校正程序时,无论是编码或解码步骤,错误检查与校正电路212都是需要清楚知道所要保护的数据长度为何,如此才能计算出正确的特征码,以检查出正确的错误位置。在本范例实施例中,当存储器控制电路单元104(或存储器管理电路202)接收到数据时,存储器控制电路单元104(或存储器管理电路202)会先将数据分割为至少一个码框(Frame),之后错误检查与校正电路212再分别对每个码框的数据产生对应的错误检查与校正码(ErrorChecking and Correcting Code,简称ECC)。接着,存储器控制电路单元104(或存储器管理电路202)会将每个码框的数据与所对应的错误检查与校正码划分为一个错误检查与校正码框,并且将数据以错误检查与校正码框为单位来写入至可复写式非易失性存储器模块106。在此,错误检查与校正码框的大小可由厂商依设计需求来决定,例如考量实体程序化单元的大小、错误检查与校正电路212的硬件成本或数据长度与错误检查与校正码的相对关系。当错误检查与校正码框设定为4千比特大小时,存储器控制电路单元104(或存储器管理电路202)会将数据切割为每单位为小于4千比特且固定大小的码框。而错误检查与校正电路212则会针对每个码框的数据进行错误校正编码,以使产生的错误检查与校正码与每个码框的大小总和为4千比特。而在另一范例实施例中,每个码框可直接为4千比特,而对应每个码框的数据所产生的错误检查与校正码再与4千比特的码框一同被划分为一个错误检查与校正码框。或是,对应每个码框所产生的错误检查与校正码存储在对应此码框的冗余比特区中,并且此时每个码框的数据便可以受到错误检查与校正电路212的保护。
但必须了解的是,本发明不限于此,在另一范例实施例中,错误检查与校正码框的大小也可以是1千比特、2千比特或3千比特等等。值得一提的是,每个实体程序化单元的大小会存储至少一个错误检查与校正码框,以使存储在实体程序化单元的数据,以错误检查与校正码框的大小为单位,可以受到错误检查与校正电路212的保护。
例如,在本范例实施例中,错误检查与校正电路212的最大保护能力,为24个比特,故当错误检查与校正码框所发生的错误比特数目大于24(例如,25)时,错误检查与校正电路212将无法校正在错误检查与校正码框内的错误数据,导致存储在此错误检查与校正码框的数据不能正常读取,成为不能恢复的损毁数据。当此状况发生时,通常是代表具有此损毁数据的实体抹除单元已经过于老化而不堪使用。故,存储器控制电路单元104(或存储器管理电路202)会将错误比特数目超过错误检查与校正电路212最大保护能力或一预定错误比特数目门槛值的实体程序化单元标记成不良实体程序化单元。例如,存储器控制电路单元104(或存储器管理电路202)会使用不良实体程序化单元分布表来记录不良实体程序化单元。
在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会使用对齐模式来存储不可压缩的数据。以下将配合附图说明使用对齐模式将不可压缩数据存储到实体程序化单元的方法。应了解的是,在下述范例实施例中的判断步骤/运作是选择性的,并且仅用于说明本发明之用,本发明不限于此。
图8A~8C是根据本发明范例实施例所示出的将不可压缩数据存储至实体程序化单元的示意图。
在本范例实施例中,实体抹除单元的实体地址规划,是根据实体程序化单元的数据比特区顺序,在依序的数据比特区中,以字节为一个单位来依序使用。举例来说,请参照图8A与图8B,第一实体抹除单元的第一个实体程序化单元为第一实体程序化单元,并且第一实体程序化单元的第一数据比特区DBA1的实体地址,从数值为0的第一起始实体地址Addr_S1,排序到数值为4095的第一结束实体地址Addr_E1。依此类推,请参照图8A,接续在第一实体程序化单元后的第二实体程序化单元的第二数据比特区DBA2的实体地址分布为,从数值为4096的第二起始实体地址Addr_S2开始,到数值为8191的第二结束实体地址Addr_E2。
请参照图8A与图8B,举例来说,第一实体程序化单元包括大小为4096字节的第一数据比特区DBA1,和第一冗余比特区SBA1。第一数据比特区DBA1已存储有第一错误检查与校正码框ECCF1,其中第一错误检查与校正码框ECCF1是由第一压缩数据CD1与对应第一压缩数据CD1的第一数据管理信息DMI1所组成,并且第一错误检查与校正码框ECCF1的大小为2048字节,因此,第一数据比特区DBA1的剩余可用空间大小为2048字节。
在此范例中,存储器控制电路单元104(或存储器管理电路202)在接收到一个第二写入指令与对应第二写入指令且大小为4096字节的第二数据D2后,存储器控制电路单元104(或存储器管理电路202)会先判断第二数据D2是否可以压缩。倘若第二数据D2为不可压缩时,存储器控制电路单元104(或存储器管理电路202)会使用对齐模式来存储第二数据D2,识别该第一实体程序化单元中的第一可用空间起始地址Addr_A1,并且判断第一可用空间起始地址是否满足起始地址要求。“可用空间起始地址”意指在实体程序化单元中的可用空间的起始地址,并且“第一可用空间起始地址Addr_A1”意指第一实体程序化单元中的可用空间的起始地址(如图8A、8C所绘示)。
在本范例实施例中,上述起始地址要求,举例来说,可为错误检查与校正码框长度的整数倍数或是为错误检查与校正码框长度的倍数与一固定值的和,其中此错误检查与校正码框长度的大小为4096字节。以下的范例实施例中,会将起始地址要求设定为错误检查与校正码框长度的整数倍数,以便于说明本发明的概念,如,上述判断第一可用空间起始地址是否满足起始地址要求,即可设定为判断第一可用空间起始地址是否为错误检查与校正码框长度的整数倍数。值的一提的是,上述设定起始地址要求的例子,仅为说明本发明之用,本发明不受限于此,上述起始地址要求的设定方式还能够为厂商依其需求而设定。
请参照图8A,举例来说,将起始地址要求设定为错误检查与校正码框长度的整数倍数。因为已经从第一起始实体地址Addr_S1开始存储了大小为2048字节的第一错误检查与校正码框ECCF1,故,第一可用空间起始地址Addr_A1为2048。在此例子中,数值为2048的第一可用空间起始地址Addr_A1不为错误检查与校正码框长度(4096)的整数倍数,即,第一可用空间起始地址Addr_A1不满足起始地址要求。因此存储器控制电路单元104(或存储器管理电路202)会规划从第一可用空间起始地址Addr_A1开始填补一笔填补数据(Paddingdata,以下称第一填补数据PD1)直到第一结束实体地址Addr_E1,并且从接续地址开始存储第二数据D2,其中填补数据可为虚拟数据(Dummy data)。
请参考图8C,举例来说,存储器控制电路单元104(或存储器管理电路202)会识别在第一可用空间起始地址Addr_A1之后的下一个数值为错误检查与校正码框长度(4096)的整数倍数的实体地址,并且设定此实体地址为接续地址,并且从第一可用空间起始地址Addr_A1开始存储第一填补数据PD1直到上述接续地址的前一个可存储数据的实体地址。如上述的例子,第一可用空间起始地址Addr_A1(即,数值为2048的地址)之后的下一个为错误检查与校正码框长度的整数倍数的实体地址为第二实体程序化单元的第二起始实体地址Addr_S2(即,数值为4096的地址),因此,存储器控制电路单元104(或存储器管理电路202)会设定接续地址为第二起始实体地址Addr_S2。由于第二起始实体地址Addr_S2的前一个可存储数据的实体地址为第一实体程序化单元的第一结束实体地址Addr_E1,故,存储器控制电路单元104(或存储器管理电路202)会存储第一填补数据PD1在第一可用空间起始地址Addr_A1与第一结束实体地址Addr_E1之间。接着,存储器控制电路单元104(或存储器管理电路202)会规划从接续地址(即,第二起始实体地址Addr_S2)开始存储第二数据D2。
值得一提的是,在另一范例实施例中,倘若第一可用空间起始地址Addr_A1不为错误检查与校正码框长度的整数倍数时,存储器控制电路单元104(或存储器管理电路202)也可依据第一可用空间起始地址Addr_A1与该接续地址之间的可用空间的大小,规划将小于此可用空间的有效数据存储至此可用空间中,并接着使用第一填补数据PD1填满存储此有效数据后的剩余的可用空间。
此外,在另一范例实施例中,若第一可用空间起始地址Addr_A1不为该错误检查与校正码框长度的整数倍数时,在设定数值为错误检查与校正码框长度的整数倍数的接续地址之后,存储器控制电路单元104(或存储器管理电路202)也可先判断该第二数据D2的大小是否大于预先定义值。倘若第二数据D2的大小大于预先定义值时,存储器控制电路单元104(或存储器管理电路202)才规划从第一可用空间起始地址Addr_A1开始存储第一填补数据PD1,并且规划从接续地址开始存储第二数据D2。倘若第二数据D2的大小非大于预先定义值时,存储器控制电路单元104(或存储器管理电路202)会规划从第一可用空间起始地址Addr_A1开始存储该第二数据D2的第一部分,并且规划从接续地址开始存储第二数据D2的第二部分。
值得一提的是,在另一范例实施例中,若第一可用空间起始地址Addr_A1不为该错误检查与校正码框长度的整数倍数时,在设定数值为错误检查与校正码框长度的整数倍数的接续地址之后,存储器控制电路单元104(或存储器管理电路202)会先判断规划为排序在第二数据D2之后连续存储的不可压缩数据的总长度是否大于一个预定长度。倘若规划为排序在第二数据D2之后连续存储的不可压缩数据的总长度大于此预定长度时,存储器控制电路单元104(或存储器管理电路202)会规划从第一可用空间起始地址Addr_A1开始存储第一填补数据PD1,并且规划从接续地址开始存储第二数据D2,其中接续地址为错误检查与校正码框长度的整数倍数。倘若规划为排序在该第一数据之后连续存储的不可压缩数据的总长度非大于此预定长度时,存储器控制电路单元104(或存储器管理电路202)会规划从第一可用空间起始地址Addr_A1开始存储第二数据D2的第一部分,并且规划从接续地址开始存储第二数据D2的第二部分。也就是说,存储器控制电路单元104(或存储器管理电路202)会识别,当连续接收到欲存储的不可压缩数据的笔数大于一个预定笔数时,或是当所接收到多笔欲存储的不可压缩数据的数据总长度大于一个预定长度时,才执行填补动作,以避免接收到多笔可压缩数据与不可压缩数据交错并且接着进行填补操作所导致的效率降低问题。
图9是根据本发明的另一范例实施例所示出的将不可压缩数据存储至实体程序化单元的示意图。
请参照图9,举例来说,第三实体程序化单元包括大小为4096字节的第三数据比特区DBA3,与第三冗余比特区SBA3。假设,第三数据比特区DBA3已经存储有第三数据D3,并且第三数据D3的大小为4096字节。
当接收到一个第四写入指令与对应第四写入指令且大小为4096字节的第四数据D4,其时,由于第三实体程序化单元已无存储空间,因此,存储器控制电路单元104(或存储器管理电路202)会识别在可复写式非易失性存储器模块106的多个实体程序化单元之中的第四实体程序化单元并且规划将第四数据D4程序化至第四实体程序化单元中。
特别是,存储器控制电路单元104(或存储器管理电路202)会先识别被选择作为存储第四数据D4的第四实体程序化单元的第四数据比特区DBA4中的可用空间的起始实体地址(以下称第四可用空间起始地址Addr_A4)。接着,存储器控制电路单元104(或存储器管理电路202)会先判断第四数据D4是否可以压缩。倘若存储器控制电路单元104(或存储器管理电路202)识别第四数据D4不可压缩时,存储器控制电路单元104(或存储器管理电路202)会使用对齐模式来存储第四数据D4,并且存储器控制电路单元104(或存储器管理电路202)会判断第四可用空间起始地址Addr_A4是否为错误检查与校正码框长度的整数倍数,即,判断第四可用空间起始地址Addr_A4是否满足起始地址要求。“可用空间起始地址”意指在实体程序化单元中的可用空间的起始地址,并且“第四可用空间起始地址Addr_A4”意指第四实体程序化单元中的可用空间的起始地址(如图9所绘示)。在图9中,“第四可用空间起始地址Addr_A4”等于“第四起始实体地址Addr_S4”。
在上述的例子中,因为第四可用空间起始地址Addr_A4为第四实体程序化单元的起始实体地址(以下称第四起始实体地址Addr_S4)且其数值为12288(即,错误检查与校正码框长度的3倍),故,存储器控制电路单元104(或存储器管理电路202)会规划从第四可用空间起始地址Addr_A4来开始存储该第四数据D4。
值得一提的是,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会判断实体抹除单元中填补数据的数量是否大于预先定义填补数据门槛值。倘若实体抹除单元的填补数据数量超过预先定义填补数据门槛值时,存储器控制电路单元104(或存储器管理电路202)会对此实体抹除单元进行垃圾回收操作。
图10为根据本发明范例实施例所示出的数据管理方法的流程图。
请参考图10,在步骤S1001中,存储器控制电路单元104(或存储器管理电路202)接收第一数据,接着在步骤S1003中,存储器控制电路单元104(或存储器管理电路202)识别实体程序化单元之中的第一实体程序化单元。然后在步骤S1005中,存储器控制电路单元104(或存储器管理电路202)会先识别第一实体程序化单元的可用空间起始地址,并且在步骤S1007中,存储器控制电路单元104(或存储器管理电路202)会判断第一数据是否为不可压缩。
根据步骤S1007的判断结果,倘若第一数据为不可压缩时,在步骤S1009中,存储器控制电路单元104(或存储器管理电路202)会判断第一实体程序化单元的可用空间起始地址是否满足起始地址要求。
接着,根据判断结果,倘若第一实体程序化单元的可用空间起始地址满足起始地址要求时,在步骤S1011中,存储器控制电路单元104(或存储器管理电路202)规划从可用空间起始地址开始存储第一数据,并结束整个数据管理方法的流程。
倘若第一实体程序化单元的可用空间起始地址不满足起始地址要求时,在步骤S1013中,存储器控制电路单元104(或存储器管理电路202)规划从可用空间起始地址开始存储填补数据,并且规划从接续地址开始存储第一数据,其中接续地址满足起始地址要求,并结束整个数据管理方法的流程。
此外,根据步骤S1007的判断结果,倘若第一数据为可压缩,在步骤S1015中,存储器控制电路单元104(或存储器管理电路202)压缩第一数据以产生第一压缩数据,并且将第一压缩数据与第一数据管理信息程序化至实体程序化单元之中的第一实体程序化单元的第一数据比特区,并结束整个数据管理方法的流程。
综上所述,本发明可以使不可压缩数据可以对齐实体程序化单元的数据比特区来存储,以避免读取较多的实体程序化单元。也就是说,本发明可以使不可压缩数据得以对齐实体程序化单元的方式来存储,例如,大小为小于或等于一个实体程序化单元大小的不可压缩数据,必定会只被存储在一个实体程序化单元之中,并且本发明会从实体程序单元的起始位置存储非压缩数据。如此一来,在读取非压缩数据的时候,便可以不需要读取多余的实体程序化单元,进而增进快闪存储器装置的读取效率。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (24)
1.一种数据管理方法,用于一可复写式非易失性存储器模块,其特征在于,该可复写式非易失性存储器模块包含多个实体抹除单元,多个逻辑单元以映射至少部分的该些实体抹除单元,并且每一实体抹除单元具有多个实体程序化单元,其中每一该些实体程序化单元至少存储一错误检查与校正码框,该数据管理方法包括:
接收一第一数据;
识别该些实体程序化单元之中的一第一实体程序化单元;
识别该第一实体程序化单元中的一可用空间起始地址;
判断该第一数据是否为不可压缩;
倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址满足一起始地址要求时,从该可用空间起始地址来开始存储该第一数据;以及
倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址不满足该起始地址要求时,从该可用空间起始地址开始存储一填补数据,并且从一接续地址开始存储该第一数据,其中该接续地址满足该起始地址要求。
2.根据权利要求1所述的数据管理方法,其特征在于,该接续地址为该些实体程序化单元之中的一第二实体程序化单元的一起始实体地址。
3.根据权利要求1所述的数据管理方法,其特征在于,更包括:判断该第一实体程序化单元中的该可用空间起始地址是否为一错误检查与校正码框长度的一整数倍数;以及
倘若该第一实体程序化单元中的该可用空间起始地址为该错误检查与校正码框长度的该整数倍数时,识别该第一实体程序化单元中的该可用空间起始地址满足该起始地址要求;
其中该接续地址为该错误检查与校正码框长度的该整数倍数。
4.根据权利要求1所述的数据管理方法,其特征在于,更包括:判断该第一实体程序化单元中的该可用空间起始地址是否为一错误检查与校正码框长度的一倍数与一固定值之和;以及
倘若该第一实体程序化单元中的该可用空间起始地址为该错误检查与校正码框长度的该倍数与该固定值之和时,识别该第一实体程序化单元中的该可用空间起始地址满足该起始地址要求;
其中该接续地址为该错误检查与校正码框长度的该倍数与该固定值之和。
5.根据权利要求1所述的数据管理方法,其特征在于,在上述从该可用空间起始地址开始存储该填补数据的步骤包括:
将小于一可用空间的一有效数据存储至该可用空间中,并使用该填补数据填满该可用空间,
其中该可用空间是在该可用空间起始地址与该接续地址之间。
6.根据权利要求1所述的数据管理方法,其特征在于,上述倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址不满足该起始地址要求时,从该可用空间起始地址开始存储该填补数据,并且从该接续地址开始存储该第一数据的步骤包括:
倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址不满足该起始地址要求时,判断该第一数据的大小是否大于一预先定义值;
倘若该第一数据的大小大于该预先定义值时,从该可用空间起始地址开始存储该填补数据,并且规划从该接续地址开始存储该第一数据,其中该接续地址满足该起始地址要求。
7.根据权利要求1所述的数据管理方法,其特征在于,上述倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址不满足该起始地址要求时,从该可用空间起始地址开始存储该填补数据,并且从该接续地址开始存储该第一数据的步骤包括:
倘若该第一数据为不可压缩、该第一实体程序化单元中的该可用空间起始地址不满足该起始地址要求并且欲被储存在该第一数据之后的不可压缩数据的笔数大于一预定笔数时,从该可用空间起始地址开始存储该填补数据,并且从该接续地址开始存储该第一数据,其中该接续地址满足该起始地址要求。
8.根据权利要求1所述的数据管理方法,其特征在于,还包括:
倘若多个实体抹除单元之中的一第一实体抹除单元的填补数据数量超过一预先定义填补数据门槛值时,对该第一实体抹除单元进行一垃圾回收操作。
9.一种存储器控制电路单元,用于控制一可复写式非易失性存储器模块,其特征在于,该存储器控制电路单元包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,用以电性连接至该可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块包含多个实体抹除单元并且被配置多个逻辑单元以映射至少部分的该些实体抹除单元,其中每一实体抹除单元具有多个实体程序化单元,其中每一该些实体程序化单元至少存储一错误检查与校正码框;
一存储器管理电路,电性连接至该主机接口与该存储器接口,并且配置多个逻辑单元以映射至少部分的该些实体抹除单元;以及
其中该存储器管理电路用以接收一第一数据;
其中该存储器管理电路还用以识别该些实体程序化单元之中的一第一实体程序化单元;
其中该存储器管理电路还用以识别该第一实体程序化单元中的一可用空间起始地址;
其中倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址满足一起始地址要求时,该存储器管理电路还用以从该可用空间起始地址来开始存储该第一数据;
其中倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址不满足该起始地址要求时,该存储器管理电路还用以从该可用空间起始地址开始存储一填补数据,并且从一接续地址开始存储该第一数据,其中该接续地址满足该起始地址要求。
10.根据权利要求9所述的存储器控制电路单元,其特征在于,该接续地址为该些实体程序化单元之中的一第二实体程序化单元的一起始实体地址。
11.根据权利要求9所述的存储器控制电路单元,其特征在于,该存储器管理电路用以判断该第一实体程序化单元中的该可用空间起始地址是否为一错误检查与校正码框长度的一整数倍数;以及
倘若该第一实体程序化单元中的该可用空间起始地址为该错误检查与校正码框长度的该整数倍数时,该存储器管理电路识别该第一实体程序化单元中的该可用空间起始地址满足该起始地址要求;
其中该接续地址为该错误检查与校正码框长度的该整数倍数。
12.根据权利要求9所述的存储器控制电路单元,其特征在于,该存储器管理电路判断该第一实体程序化单元中的该可用空间起始地址是否为一错误检查与校正码框长度的一倍数与一固定值之和;以及
倘若该第一实体程序化单元中的该可用空间起始地址为该错误检查与校正码框长度的该倍数与该固定值之和时,该存储器管理电路识别该第一实体程序化单元中的该可用空间起始地址满足该起始地址要求;
其中该接续地址为该错误检查与校正码框长度的该倍数与该固定值之和。
13.根据权利要求9所述的存储器控制电路单元,其特征在于,在上述从该可用空间起始地址开始存储该填补数据的运作中:
该存储器管理电路用以将小于一可用空间的一有效数据存储至该可用空间中,并使用该填补数据填满该可用空间,
其中该可用空间是在该可用空间起始地址与该接续地址之间。
14.根据权利要求9所述的存储器控制电路单元,其特征在于,在上述倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址不满足该起始地址要求时,该存储器管理电路还用以从该可用空间起始地址开始存储该填补数据,并且从该接续地址开始存储该第一数据的运作中:
倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址不满足该起始地址要求时,该存储器管理电路判断该第一数据的大小是否大于一预先定义值;
其中倘若该第一数据的大小大于该预先定义值时,该存储器管理电路从该可用空间起始地址开始存储该填补数据,并且从该接续地址开始存储该第一数据,其中该接续地址满足该起始地址要求。
15.根据权利要求9所述的存储器控制电路单元,其特征在于,在上述倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址不满足该起始地址要求时,该存储器管理电路还用以从该可用空间起始地址开始存储该填补数据,并且规划从该接续地址开始存储该第一数据的运作中:
倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址不满足该起始地址要求时,该存储器管理电路判断规划为排序在该第一数据之后存储的不可压缩数据的笔数是否大于一预定笔数;
其中倘若规划为排序在该第一数据之后存储的不可压缩数据的笔数大于该预定笔数时,该存储器管理电路从该可用空间起始地址开始存储该填补数据,并且从该接续地址开始存储该第一数据,其中该接续地址满足该起始地址要求。
16.根据权利要求9所述的存储器控制电路单元,其特征在于,
倘若多个实体抹除单元之中的一第一实体抹除单元的填补数据数量超过一预先定义填补数据门槛值时,该存储器管理电路还用以对该第一实体抹除单元进行一垃圾回收操作。
17.一种存储器存储装置,其特征在于,包括:
一连接接口单元,用以电性连接至一主机系统;
一可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块具有多个实体抹除单元并且被配置多个逻辑单元以映射至少部分的该些实体抹除单元,其中每一实体抹除单元具有多个实体程序化单元,其中每一该些实体程序化单元至少存储一错误检查与校正码框;以及
一存储器控制电路单元,电性连接至该连接接口单元与该可复写式非易失性存储器模块,并且配置多个逻辑单元以映射至少部分的该些实体抹除单元,其中该存储器控制电路单元用以接收一第一数据;
其中该存储器控制电路单元还用以识别该些实体程序化单元之中的一第一实体程序化单元;
其中该存储器控制电路单元还用以识别该第一实体程序化单元中的一可用空间起始地址;
其中倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址满足一起始地址要求时,该存储器控制电路单元还用以从该可用空间起始地址来开始存储该第一数据;
其中倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址不满足该起始地址要求时,该存储器控制电路单元还用以从该可用空间起始地址开始存储一填补数据,并且从一接续地址开始存储该第一数据,其中该接续地址满足该起始地址要求。
18.根据权利要求17所述的存储器存储装置,其特征在于,该接续地址为该些实体程序化单元之中的一第二实体程序化单元的一起始实体地址。
19.根据权利要求17所述的存储器存储装置,其特征在于,在上述该存储器控制电路单元还用以判断该第一实体程序化单元中的该可用空间起始地址是否满足该起始地址要求的运作中:该存储器控制电路单元判断该第一实体程序化单元中的该可用空间起始地址是否为一错误检查与校正码框长度的一整数倍数;以及
倘若该第一实体程序化单元中的该可用空间起始地址为该错误检查与校正码框长度的该整数倍数时,该存储器控制电路单元识别该第一实体程序化单元中的该可用空间起始地址满足该起始地址要求;
其中该接续地址为该错误检查与校正码框长度的该整数倍数。
20.根据权利要求17所述的存储器存储装置,其特征在于,在上述该存储器控制电路单元还用以判断该第一实体程序化单元中的该可用空间起始地址是否满足该起始地址要求的运作中:该存储器控制电路单元判断该第一实体程序化单元中的该可用空间起始地址是否为一错误检查与校正码框长度的一倍数与一固定值之和;以及
倘若该第一实体程序化单元中的该可用空间起始地址为该错误检查与校正码框长度的该倍数与该固定值之和时,该存储器控制电路单元识别该第一实体程序化单元中的该可用空间起始地址满足该起始地址要求;
其中该接续地址为该错误检查与校正码框长度的该倍数与该固定值之和。
21.根据权利要求17所述的存储器存储装置,其特征在于,在上述从该可用空间起始地址开始存储该填补数据的运作中:
该存储器控制电路单元将小于一可用空间的一有效数据存储至该可用空间中,并使用该填补数据填满该可用空间,
其中该可用空间是在该可用空间起始地址与该接续地址之间。
22.根据权利要求17所述的存储器存储装置,其特征在于,在上述倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址不满足该起始地址要求时,该存储器控制电路单元还用以从该可用空间起始地址开始存储该填补数据,并且从该接续地址开始存储该第一数据的运作中:
倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址不满足该起始地址要求时,该存储器控制电路单元判断该第一数据的大小是否大于一预先定义值;
其中倘若该第一数据的大小大于该预先定义值时,该存储器控制电路单元从该可用空间起始地址开始存储该填补数据,并且从该接续地址开始存储该第一数据,其中该接续地址满足该起始地址要求。
23.根据权利要求17所述的存储器存储装置,其特征在于,在上述倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址不满足该起始地址要求时,该存储器控制电路单元还用以规划从该可用空间起始地址开始存储该填补数据,并且规划从该接续地址开始存储该第一数据的运作中:
倘若该第一数据为不可压缩并且该第一实体程序化单元中的该可用空间起始地址不满足该起始地址要求时,该存储器控制电路单元判断欲被储存至该第一数据之后的不可压缩数据的笔数是否大于一预定笔数;
其中倘若规划为排序在该第一数据之后存储的不可压缩数据的笔数大于该预定笔数时,该存储器控制电路单元从该可用空间起始地址开始存储该填补数据,并且从该接续地址开始存储该第一数据,其中该接续地址满足该起始地址要求。
24.根据权利要求17所述的存储器存储装置,其特征在于,
倘若多个实体抹除单元之中的一第一实体抹除单元的填补数据数量超过一预先定义填补数据门槛值时,该存储器控制电路单元还用以对该第一实体抹除单元进行一垃圾回收操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410393824.XA CN105335096B (zh) | 2014-08-12 | 2014-08-12 | 数据管理方法、存储器控制电路单元以及存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410393824.XA CN105335096B (zh) | 2014-08-12 | 2014-08-12 | 数据管理方法、存储器控制电路单元以及存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335096A CN105335096A (zh) | 2016-02-17 |
CN105335096B true CN105335096B (zh) | 2018-09-25 |
Family
ID=55285678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410393824.XA Active CN105335096B (zh) | 2014-08-12 | 2014-08-12 | 数据管理方法、存储器控制电路单元以及存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335096B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI631456B (zh) * | 2016-10-07 | 2018-08-01 | 慧榮科技股份有限公司 | 資料儲存裝置及資料維護方法 |
CN108121663B (zh) * | 2016-11-29 | 2022-05-03 | 群联电子股份有限公司 | 数据存储方法、存储器存储装置及存储器控制电路单元 |
CN108958640B (zh) * | 2017-05-26 | 2021-07-27 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元及存储器存储装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103620564A (zh) * | 2011-05-10 | 2014-03-05 | 马维尔国际贸易有限公司 | 用于存储器设备的数据压缩和紧缩 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI459396B (zh) * | 2010-12-30 | 2014-11-01 | Phison Electronics Corp | 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置 |
US8996807B2 (en) * | 2011-02-15 | 2015-03-31 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a multi-level cache |
US9003104B2 (en) * | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
TWI459197B (zh) * | 2011-04-21 | 2014-11-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
-
2014
- 2014-08-12 CN CN201410393824.XA patent/CN105335096B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103620564A (zh) * | 2011-05-10 | 2014-03-05 | 马维尔国际贸易有限公司 | 用于存储器设备的数据压缩和紧缩 |
Also Published As
Publication number | Publication date |
---|---|
CN105335096A (zh) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10713178B2 (en) | Mapping table updating method, memory controlling circuit unit and memory storage device | |
CN104765568B (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN104866429B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN104423888B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN104699413B (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
CN105005450B (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN104636267B (zh) | 存储器控制方法、存储器存储装置与存储器控制电路单元 | |
US9304907B2 (en) | Data management method, memory control circuit unit and memory storage apparatus | |
CN106681652A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN106372000A (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
CN106951186A (zh) | 数据程序化方法、存储器存储装置及存储器控制电路单元 | |
CN105022695A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN105335096B (zh) | 数据管理方法、存储器控制电路单元以及存储器存储装置 | |
CN105653391B (zh) | 数据存取方法、存储器控制电路单元及存储器储存装置 | |
US9312011B1 (en) | Data writing method, memory storage device and memory control circuit unit | |
CN106814968A (zh) | 存储器管理方法与系统及其存储器存储装置 | |
CN106648443B (zh) | 有效数据合并方法、存储器控制器与存储器存储装置 | |
CN109273033A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN111208932B (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN105630687B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN107305510A (zh) | 数据处理方法、存储器存储装置及存储器控制电路单元 | |
CN107103930A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
TW201441816A (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
CN110442299A (zh) | 数据写入方法、存储器控制电路单元以及存储器储存装置 | |
CN109032957A (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 |