CN105573662B - 数据写入方法、存储器控制电路单元以及存储器存储装置 - Google Patents
数据写入方法、存储器控制电路单元以及存储器存储装置 Download PDFInfo
- Publication number
- CN105573662B CN105573662B CN201410604459.2A CN201410604459A CN105573662B CN 105573662 B CN105573662 B CN 105573662B CN 201410604459 A CN201410604459 A CN 201410604459A CN 105573662 B CN105573662 B CN 105573662B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- control circuit
- unit
- length
- 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
Images
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种数据写入方法、存储器控制电路单元以及存储器存储装置。本方法包括:压缩数据以产生第一数据;判断第一数据的数据长度是否满足预先定义条件。本方法还包括:倘若第一数据的数据长度满足预先定义条件时,将第一数据写入至多个实体抹除单元之中的第一实体抹除单元中;并且倘若第一数据的数据长度不满足预先定义条件时,根据预先定义规则来产生虚拟数据(dummy data),将虚拟数据填补至第一数据以产生第二数据并且将第二数据写入至第一实体抹除单元,其中第二数据的数据长度满足预先定义条件。
Description
技术领域
本发明是有关于一种数据写入方法,且特别是有关于一种用于可复写式非易失性存储器模块的数据写入方法、存储器存储装置以及存储器控制电路单元。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本电脑。固态硬盘就是一种以快闪存储器作为存储媒体的存储装置。因此,近年快闪存储器产业成为电子产业中相当热门的一环。
为了提高存储装置的空间使用效率,厂商开始在存储装置中加入压缩数据的机制。具体来说,存储装置的控制电路会对欲存储的数据执行压缩操作之后,才将压缩后数据长度较原来的数据小的压缩数据写入至可复写式非易失性存储器模块。由于无法预测压缩后的压缩数据的数据长度,并且对于不同的数据其具有不同的压缩率,因此在物理存储单位的空间是固定的情况下,如何有效写入不同的数据长度的压缩数据,是此领域技术人员所致力的目标。
发明内容
本发明提供一种数据写入方法、存储器存储装置以及存储器控制电路单元,其能够产生固定数据长度的倍数的压缩数据,以便于增进存储器存储装置的数据写入效率以及数据管理的便利性。
本发明的一范例实施例提出一种数据写入方法,用于可复写式非易失性存储器模块,其中可复写式非易失性存储器模块包括多个实体抹除单元,且每一实体抹除单元包括多个实体程序化单元。本数据写入方法包括:压缩数据以产生第一数据;判断第一数据的数据长度是否满足预先定义条件。本数据写入方法还包括:倘若第一数据的数据长度满足预先定义条件时,将第一数据写入至此些实体抹除单元之中的第一实体抹除单元中;并且倘若第一数据的数据长度不满足预先定义条件时,根据预先定义规则来产生虚拟数据(dummydata),将虚拟数据填补至第一数据以产生第二数据并且将第二数据写入至此第一实体抹除单元中,其中第二数据的数据长度满足此预先定义条件。
在本发明的一范例实施例中,上述判断第一数据的数据长度是否满足预先定义条件的步骤包括:判断第一数据的数据长度是否等于预定长度的整数倍数;以及倘若第一数据的数据长度等于此预定长度的此整数倍数时,判定第一数据的数据长度满足预先定义条件。
在本发明的一范例实施例中,上述根据预先定义规则来产生虚拟数据的步骤包括:根据第一实体抹除单元的抹除次数以随机方式产生虚拟数据。
在本发明的一范例实施例中,上述根据预先定义规则来产生虚拟数据的步骤包括:辨识第一数据之中的多个数据比特,并且从第一数据的此些数据比特中选择至少一数据比特;以及根据所选择的至少一数据比特来产生虚拟数据。
在本发明的一范例实施例中,上述根据所选择的至少一数据比特来产生虚拟数据的步骤包括:重复地将所选择的至少一数据比特循序排序以形成上述虚拟数据。
在本发明的一范例实施例中,上述根据预先定义规则来产生虚拟数据的步骤包括:从填塞比特表选择至少一数据比特;以及根据所选择的至少一数据比特来产生虚拟数据。
本发明的一范例实施例提出一种用于控制可复写式非易失性存储器模块的存储器控制电路单元。存储器控制电路单元包括主机接口、存储器接口、存储器管理电路与数据压缩/解压缩电路。主机接口电性连接至主机系统。存储器接口电性连接至可复写式非易失性存储器模块,其中可复写式非易失性存储器模块包括多个实体抹除单元,且每一实体抹除单元包括多个实体程序化单元。存储器管理电路电性连接至主机接口与存储器接口。数据压缩/解压缩电路电性连接至存储器管理电路。存储器管理电路用以指示数据压缩/解压缩电路压缩数据以产生第一数据,并且判断第一数据的数据长度是否满足预先定义条件。倘若第一数据的数据长度满足预先定义条件时,存储器管理电路还用以传送指令序列至可复写式非易失性存储器模块以将第一数据写入至此些实体抹除单元之中的第一实体抹除单元中。以及,倘若第一数据的数据长度不满足预先定义条件时,存储器管理电路还用以根据预先定义规则来产生虚拟数据(dummy data),将虚拟数据填补至第一数据以产生第二数据并且传送指令序列至可复写式非易失性存储器模块以将第二数据写入至此些实体抹除单元之中的第一实体抹除单元中,其中第二数据的数据长度满足预先定义条件。
在本发明的一范例实施例中,在上述判断此第一数据的数据长度是否满足预先定义条件的运作中,存储器管理电路判断第一数据的数据长度是否等于预定长度的整数倍数。倘若第一数据的数据长度等于此预定长度的此整数倍数时,存储器管理电路判定第一数据的数据长度满足预先定义条件。
在本发明的一范例实施例中,在上述根据预先定义规则来产生此虚拟数据的运作中,存储器管理电路根据第一实体抹除单元的抹除次数以随机方式产生虚拟数据。
在本发明的一范例实施例中,在上述根据预先定义规则来产生此虚拟数据的运作中,存储器管理电路辨识第一数据之中的多个数据比特,从第一数据的此些数据比特中选择至少一数据比特,并且根据所选择的至少一数据比特来产生此虚拟数据。
在本发明的一范例实施例中,在上述根据所选择的至少一数据比特来产生此虚拟数据的运作中,存储器管理电路重复地将所选择的至少一数据比特循序排序以形成虚拟数据。
在本发明的一范例实施例中,在上述根据预先定义规则来产生虚拟数据的运作中,存储器管理电路从一填塞比特表选择至少一数据比特,并且根据所选择的至少一数据比特来产生虚拟数据。
本发明的一范例实施例提出一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块与存储器控制电路单元。连接接口单元用以电性连接至主机系统。可复写式非易失性存储器模块具有多个实体抹除单元,且每一实体抹除单元包括多个实体程序化单元。存储器控制电路单元电性连接至连接接口单元与可复写式非易失性存储器模块。存储器控制电路单元压缩数据以产生第一数据,并且判断第一数据的数据长度是否满足预先定义条件。倘若第一数据的数据长度满足预先定义条件时,存储器控制电路单元还用以传送指令序列至可复写式非易失性存储器模块以将第一数据写入至此些实体抹除单元之中的第一实体抹除单元中。以及,倘若第一数据的数据长度不满足预先定义条件时,存储器控制电路单元还用以根据预先定义规则来产生虚拟数据(dummy data),将虚拟数据填补至第一数据以产生第二数据并且传送指令序列至可复写式非易失性存储器模块以将第二数据写入至此些实体抹除单元之中的第一实体抹除单元中,其中第二数据的数据长度满足预先定义条件。
在本发明的一范例实施例中,在上述判断第一数据的数据长度是否满足预先定义条件的运作中,存储器控制电路单元判断第一数据的数据长度是否等于一预定长度的一整数倍数。倘若第一数据的数据长度等于此预定长度的此整数倍数时,存储器控制电路单元判定第一数据的数据长度满足预先定义条件。
在本发明的一范例实施例中,在上述根据预先定义规则来产生此虚拟数据的运作中,存储器控制电路单元还用以根据第一实体抹除单元的抹除次数以随机方式产生虚拟数据。
在本发明的一范例实施例中,在上述根据预先定义规则来产生虚拟数据的运作中,存储器控制电路单元辨识第一数据之中的多个数据比特,从第一数据的此些数据比特中选择至少一数据比特,并且根据所选择的至少一数据比特来产生虚拟数据。
在本发明的一范例实施例中,在上述根据所选择的至少一数据比特来产生虚拟数据的运作中,存储器控制电路单元重复地将所选择的至少一数据比特循序排序以形成虚拟数据。
在本发明的一范例实施例中,在上述根据预先定义规则来产生虚拟数据的运作中,存储器控制电路单元从一填塞比特表选择至少一数据比特,并且根据所选择的至少一数据比特来产生虚拟数据。
基于上述,本发明范例实施例的数据写入方法、存储器控制电路单元以及存储器存储装置能够产生固定数据长度的倍数的压缩数据,以便于增进存储器存储装置的数据写入效率以及数据管理的便利性。同时,根据本发明的数据写入方法,存储器存储装置还可以动态地改变每次产生压缩数据所附加的虚拟数据的数据比特。因此,在存储每笔压缩数据时,于存储器存储装置所写入的存储单位中不会存储相同的虚拟数据,进而使存储器存储装置可以有平均损耗的效果,以提升存储器存储装置的耐用性并延长存储器存储装置的寿命。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1A是根据第一范例实施例所示的主机系统与存储器存储装置的示意图;
图1B是根据第一范例实施例所示的电脑、输入/输出装置与存储器存储装置的示意图;
图1C是根据第一范例实施例所示的主机系统与存储器存储装置的示意图;
图2是根据第一范例实施例所示的存储器存储装置的概要方块图;
图3是根据第一范例实施例所示的存储器控制电路单元的概要方块图;
图4A与图4B是根据第一范例实施例所示的管理实体抹除单元的范例示意图;
图5~图7是根据第一范例实施例所示的写入数据至可复写式非易失性存储器模块的范例示意图;
图8是根据一范例所示的处理欲写入至可复写式非易失性存储器模块的数据的示意图;
图9是根据另一范例所示的处理欲写入至可复写式非易失性存储器模块的数据的示意图;
图10是根据另一范例所示的处理欲写入至可复写式非易失性存储器模块的数据的示意图。
图11是根据一范例实施例所示的产生图9所示的虚拟数据的方法的示意图;
图12是根据另一范例实施例所示的产生虚拟数据的方法的示意图;
图13是根据一范例实施例所示的填塞比特表的示意图;
图14是根据另一范例实施例所示的产生虚拟数据的方法的示意图;
图15是根据一范例实施例所示的数据写入方法的流程图。
附图标记说明:
1000:主机系统;
1100:电脑;
1102:微处理器;
1104:随机存取存储器(RAM);
1106:输入/输出装置;
1108:系统总线;
1110:数据传输接口;
1202:鼠标;
1204:键盘;
1206:显示器;
1208:打印机;
1212:随身盘;
1214:存储卡;
1216:固态硬盘;
1310:数码相机;
1312:SD卡;
1314:MMC卡;
1316:存储棒;
1318:CF卡;
1320:嵌入式存储装置;
100:存储器存储装置;
102:连接接口单元;
104:存储器控制电路单元;
106:可复写式非易失性存储器模块;
410(0)~410(N):实体抹除单元;
202:存储器管理电路;
204:主机接口;
206:存储器接口;
208:数据压缩/解压缩电路;
210:缓冲存储器;
212:电源管理电路;
214:错误检查与校正电路;
502:数据区;
504:闲置区;
506:系统区;
508:取代区;
LBA(0)~LBA(H):逻辑地址;
LZ(0)~LZ(M):逻辑区域;
UD1、CD1、UD2、CD2、FD2、UD3、CD3、FD3、CD4、CD5:数据;
DD2、DD3、DD4、DD5:虚拟数据;
CDL1、CDL2、FDL2、CDL3、FDL3:数据长度;
DL2、DL3:差值;
PL:预定长度;
1302:填塞比特表;
S1501、S1503、S1505、S1507、S1509:数据写入方法的步骤。
具体实施方式
一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1A是根据第一范例实施例所示的主机系统与存储器存储装置的示意图。
请参照图1A,主机系统1000一般包括电脑1100与输入/输出(input/output,简称I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(random access memory,简称RAM)1104、系统总线1108与数据传输接口1110。输入/输出装置1106包括如图1B的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,存储器存储装置100是通过数据传输接口1110与主机系统1000的其他元件电性连接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的运作可将数据写入至存储器存储装置100或从存储器存储装置100中读取数据。例如,存储器存储装置100可以是如图1B所示的随身盘1212、存储卡1214或固态硬盘(Solid StateDrive,简称SSD)1216等的可复写式非易失性存储器存储装置。
一般而言,主机系统1000为可实质地与存储器存储装置100配合以存储数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来做说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为图1C中的数码相机(摄影机)1310时,可复写式非易失性存储器存储装置则为其所使用的SD卡1312、MMC卡1314、存储棒(memory stick)1316、CF卡1318或嵌入式存储装置1320(如图1C所示)。嵌入式存储装置1320包括嵌入式多媒体卡(Embedded MMC,简称eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图2是根据第一范例实施例所示的存储器存储装置的概要方块图。
请参照图2,存储器存储装置100包括连接接口单元102、存储器控制电路单元104与可复写式非易失性存储器模块106。
在本范例实施例中,连接接口单元102是相容于串行高级技术附件(SerialAdvanced Technology Attachment,简称SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元102也可以是符合并行高级技术附件(Parallel Advanced TechnologyAttachment,简称PATA)标准、电气和电子工程师协会(Institute of Electrical andElectronic Engineers,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个实体程序化单元或其他任意个实体程序化单元所组成。
更详细来说,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储胞。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,控制信息与错误更正码)。在此,一个实体程序化单元的容量是定义为包含数据比特区的容量与冗余比特区的容量。例如,在本范例实施例中,每一实体程序化单元的使用者数据比特区的容量为2千字节(Kilobyte,简称KB)并且冗余比特区的容量为64字节(byte),也就是说,每一个实体程序化单元的数据比特区中会包含4个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,必须了解的是,本发明不限于此。例如,在其他范例实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一范例实施例中,实体抹除单元为实体区块,并且实体程序化单元为实体页面或实体扇区,但本发明不以此为限。
在本范例实施例中,可复写式非易失性存储器模块106为多阶存储胞(MultiLevel Cell,简称MLC)NAND型快闪存储器模块(即,一个存储胞中可存储2个比特数据的快闪存储器模块)。然而,本发明不限于此,可复写式非易失性存储器模块106也可是单阶存储胞(Single Level Cell,简称SLC)NAND型快闪存储器模块(即,一个存储胞中可存储1个比特数据的快闪存储器模块)、三阶存储胞(Trinary Level Cell,简称TLC)NAND型快闪存储器模块(即,一个存储胞中可存储3个比特数据的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
图3是根据第一范例实施例所示的存储器控制电路单元的概要方块图。
请参照图3,存储器控制电路单元104包括存储器管理电路202、主机接口204、存储器接口206与数据压缩/解压缩电路208。
存储器管理电路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并且用以电性连接至连接接口单元102,以接收与识别主机系统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是电性连接至存储器管理电路202。在此,数据压缩/解压缩电路208用以压缩欲写入至可复写式非易失性存储器模块106的数据并且用以解压缩从可复写式非易失性存储器模块106中所读取的数据。例如,数据压缩/解压缩电路208包含压缩器(compressor)及解压缩器(decompressor)。压缩器用以找出原始数据(originaldata)中存在的数据累赘(data redundancy)、移除所找出的累赘,将剩余的必要数据编码并且输出编码结果(即,压缩数据(compressed data))。而解压缩器用以将读入的压缩数据依据既定的步骤解码并送出解码结果(即,解压缩数据(decompressed data))。在本范例实施例中,数据压缩/解压缩电路208是使用无失真压缩演算法来压缩数据,以使压缩后的数据能够被还原。
在本发明一范例实施例中,存储器控制电路单元104还包括缓冲存储器210、电源管理电路212与错误检查与校正电路214。
缓冲存储器210是电性连接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与指令或来自于可复写式非易失性存储器模块106的数据。
电源管理电路212是电性连接至存储器管理电路202并且用以控制存储器存储装置100的电源。
错误检查与校正电路214是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路214会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,简称ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路202从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路214会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
值得一提的是,错误检查与校正电路214能够校正的错误比特的数目会与所产生的错误检查与校正码的大小成正比。也就是说,当错误检查与校正电路214被设计能够校正的错误比特的数目越多时,则需要越多存储空间来存储所产生的错误检查与校正码。然而,用以存储错误检查与校正码的冗余比特区的容量是固定的(根据不同种类的可复写式非易失性存储器模块而不同)。因此,实作于错误检查与校正电路214中的错误校正演算法会受限于可复写式非易失性存储器模块106的类型。具体来说,错误检查与校正电路214会被设计能够校正一数目的错误比特(以下称为最大可校正错误比特数)。例如,最大可校正错误比特数为48。倘若发生在所读取的数据的错误比特的数目非大于48个时,错误检查与校正电路214就能够依据错误检查与校正码将错误比特校正回正确的值。反之,错误检查与校正电路214会回报错误校正失败且存储器管理电路202会将指示数据已遗失的信息传送给主机系统1000。
图4A与图4B是根据第一范例实施例所示的管理实体抹除单元的范例示意图。
必须了解的是,在此描述可复写式非易失性存储器模块106的实体抹除单元的运作时,以“提取”、“分组”、“划分”、“关联”等词来操作实体抹除单元是逻辑上的概念。也就是说,可复写式非易失性存储器模块的实体抹除单元的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模块的实体抹除单元进行操作。
请参照图4A,存储器控制电路单元104(或存储器管理电路202)会将实体抹除单元410(0)~410-(N)逻辑地分组为数据区502、闲置区504、系统区506与取代区508。
逻辑上属于数据区502与闲置区504的实体抹除单元是用以存储来自于主机系统1000的数据。具体来说,数据区502的实体抹除单元是被视为已存储数据的实体抹除单元,而闲置区504的实体抹除单元是用以替换数据区502的实体抹除单元。也就是说,当从主机系统1000接收到写入指令与欲写入的数据时,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区502的实体抹除单元。
逻辑上属于系统区506的实体抹除单元是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。
逻辑上属于取代区508中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区508中仍存有正常的实体抹除单元并且数据区502的实体抹除单元损坏时,存储器控制电路单元104(或存储器管理电路202)会从取代区508中提取正常的实体抹除单元来更换损坏的实体抹除单元。
特别是,数据区502、闲置区504、系统区506与取代区508的实体抹除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置100的运作中,实体抹除单元关联至数据区502、闲置区504、系统区506与取代区508的分组关系会动态地变动。例如,当闲置区504中的实体抹除单元损坏而被取代区508的实体抹除单元取代时,则原本取代区508的实体抹除单元会被关联至闲置区504。
请参照图4B,存储器控制电路单元104(或存储器管理电路202)会配置逻辑地址LBA(0)~LBA(H)以映射数据区502的实体抹除单元,其中每一逻辑地址具有多个逻辑子单元以映射对应的实体抹除单元的实体程序化单元。并且,当主机系统1000欲写入数据至逻辑地址或更新存储于逻辑地址中的数据时,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取一个实体抹除单元来写入数据,以轮替数据区502的实体抹除单元。在本范例实施例中,逻辑子单元可以是逻辑页面或逻辑扇区。
为了识别数据每个逻辑地址的数据被存储在那个实体抹除单元,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会记录逻辑地址与实体抹除单元之间的映射。并且,当主机系统1000欲在逻辑子单元中存取数据时,存储器控制电路单元104(或存储器管理电路202)会确认此逻辑子单元所属的逻辑地址,并且在此逻辑地址所映射的实体抹除单元中来存取数据。例如,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会在可复写式非易失性存储器模块106中存储逻辑转实体地址映射表来记录每一逻辑地址所映射的实体抹除单元,并且当欲存取数据时存储器控制电路单元104(或存储器管理电路202)会将逻辑转实体地址映射表载入至缓冲存储器210来维护。
值得一提的是,由于缓冲存储器210的容量有限,无法存储记录所有逻辑地址的映射关系的映射表,因此,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会将逻辑地址LBA(0)~LBA(H)分组为多个逻辑区域LZ(0)~LZ(M),并且为每一逻辑区域配置一个逻辑转实体地址映射表。特别是,当存储器控制电路单元104(或存储器管理电路202)欲更新某个逻辑地址的映射时,对应此逻辑地址所属的逻辑区域的逻辑转实体地址映射表会被载入至缓冲存储器210来被更新。
图5~图7是根据第一范例实施例所示的写入数据至可复写式非易失性存储器模块的范例示意图。
请参照图5~图7,在本范例实施例中,存储器存储装置100的可复写式非易失性存储器模块106是以实体抹除单元为基础(也称为区块为基础(block based))来进行管理。具体而言,在逻辑地址LBA(0)是映射至实体抹除单元410(0)的映射状态下,当存储器控制电路单元104(或存储器管理电路202)从主机系统1000中接收到写入指令而欲写入数据至属于逻辑地址LBA(0)的逻辑存取地址时,存储器控制电路单元104(或存储器管理电路202)会依据逻辑转实体地址映射表识别逻辑地址LBA(0)目前是映射至实体抹除单元410(0)并且从闲置区504中提取实体抹除单元410(F)作为替换实体抹除单元来轮替实体抹除单元410(0)。然而,当存储器控制电路单元104(或存储器管理电路202)将新数据写入至实体抹除单元410(F)的同时,存储器控制电路单元104(或存储器管理电路202)不会立刻将实体抹除单元410(0)中的所有有效数据搬移至实体抹除单元410(F)而抹除实体抹除单元410(0)。具体来说,存储器控制电路单元104(或存储器管理电路202)会将实体抹除单元410(0)中欲写入实体程序化单元之前的有效数据(即,实体抹除单元410(0)的第0实体程序化单元与第1实体程序化单元中的数据)复制至实体抹除单元410(F)的第0实体程序化单元与第1实体程序化单元中(如图5所示),并且将新数据写入至实体抹除单元410(F)的第2实体程序化单元与第3实体程序化单元中(如图6所示)。此时,存储器控制电路单元104(或存储器管理电路202)即完成写入的运作。因为实体抹除单元410(0)中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将实体抹除单元410(0)中的有效数据搬移至实体抹除单元410(F)可能会造成无谓的搬移。此外,数据必须依序地写入至实体抹除单元内的实体程序化单元,因此,存储器控制电路单元104(或存储器管理电路202)仅会先搬移欲写入实体程序化单元之前的有效数据。
在本范例实施例中,暂时地维持此等母子暂态关系(即,实体抹除单元410(0)与实体抹除单元410(F))的运作称为开启(open)母子单元,并且原实体抹除单元称为母实体抹除单元而替换实体抹除单元称为子实体抹除单元。
之后,当需要将实体抹除单元410(0)与实体抹除单元410(F)的内容合并(merge)时,存储器控制电路单元104(或存储器管理电路202)才会将实体抹除单元410(0)与实体抹除单元410(F)的数据整并至一个实体抹除单元,由此提升实体抹除单元的使用效率。在此,合并母子单元的运作称为数据合并程序或关闭(close)母子单元。例如,如图7所示,当进行关闭母子单元时,存储器控制电路单元104(或存储器管理电路202)会将实体抹除单元410(0)中剩余的有效数据(即,实体抹除单元410(0)的第4实体程序化单元~第(K)实体程序化单元中的数据)复制至替换实体抹除单元410(F)的第4实体程序化单元~第(K)实体程序化单元中,然后将实体抹除单元410(0)抹除并关联至闲置区504,同时,将实体抹除单元410(F)关联至数据区502。也就是说,存储器控制电路单元104(或存储器管理电路202)会在逻辑转实体地址映射表中将逻辑地址LBA(0)重新映射至实体抹除单元410(F)。此外,在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会建立闲置区实体抹除单元表(未示出)来记录目前被关联至闲置区的实体抹除单元。值得一提的是,闲置区504中实体抹除单元的数目是有限的,基此,在存储器存储装置100运作期间,开启的母子单元的组数也会受到限制。因此,当存储器存储装置100接收到来自于主机系统1000的写入指令时,倘若已开启母子单元的组数达到上限时,存储器控制电路单元104(或存储器管理电路202)需关闭至少一组目前已开启的母子单元(即,执行关闭母子单元运作)以执行此写入指令。在此,图5~图7所示的写入运作称为一般写入模式。
值得注意的是,在另一范例实施例中,存储器存储装置100的可复写式非易失性存储器模块106也可以是以实体程序化单元为基础(也称为页面为基础(page based)来进行管理),本发明不加以限制。例如,在执行写入指令时,不管目前数据是要写入至那个逻辑单元的逻辑子单元,存储器控制电路单元104(或存储器管理电路202)皆会以一个实体程序化单元接续一个实体程序化单元的方式来写入数据(以下也称为随机写入机制)。具体来说,存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取一个空的实体抹除单元作为目前使用的实体抹除单元来写入数据。并且,当此目前使用的实体抹除单元已被写满时,存储器控制电路单元104(或存储器管理电路202)会再从闲置区504中提取另一个空的实体抹除单元作为目前使用的实体抹除单元,以继续写入对应来自于主机系统1000的写入指令的数据。
在本范例实施例中,当存储器控制电路单元104(或存储器管理电路202)欲写入一数据时,存储器控制电路单元104(或存储器管理电路202)会指示数据压缩/解压缩电路208来压缩此数据以产生压缩数据(以下称为第一数据)。值得注意的是,在另一范例实施例中,存储器控制电路单元104(或存储器管理电路202)会先判断此欲写入的数据是否可压缩,再根据判断结果来决定是否指示数据压缩/解压缩电路208来压缩此数据以产生第一数据。例如,当存储器控制电路单元104(或存储器管理电路202)判定欲写入的数据可压缩之后,再指示数据压缩/解压缩电路208对此数据进行压缩操作。
特别是,存储器控制电路单元104(或存储器管理电路202)会判断经过压缩操作所产生的第一数据的数据长度是否满足预先定义条件。倘若第一数据的数据长度满足所述预先定义条件时,存储器控制电路单元104(或存储器管理电路202)会选择目前使用的实体程序化单元(以下称为第一实体程序化单元)并且将第一数据写入至第一实体程序化单元中。倘若第一数据的数据长度不满足所述预先定义条件时,存储器控制电路单元104(或存储器管理电路202)会产生虚拟数据(dummy data),将虚拟数据填补至第一数据,以使填补后的数据(以下称为第二数据)满足此预先定义条件。存储器控制电路单元104(或存储器管理电路202)会将数据长度满足预先定义条件的压缩数据(即,数据长度满足预先定义条件的第一数据或第二数据)写入至第一实体程序化单元中。也就是说,根据本发明的数据写入方法,存储器控制电路单元104(或存储器管理电路202)所写入的压缩数据的数据长度必定会满足所述预先定义条件。
图8是根据一范例所示的处理欲写入至可复写式非易失性存储器模块的数据的示意图。
请参照图8,在本范例实施例中,举例来说,当存储器控制电路单元104(或存储器管理电路202)欲写入数据长度为4仟字节(kilobytes,简称K bytes)的数据UD1时,存储器控制电路单元104(或存储器管理电路202)会先指示数据压缩/解压缩电路208对数据UD1进行压缩操作。例如,数据压缩/解压缩电路208将数据UD1压缩为数据CD1,其中数据CD1的数据长度为1仟字节。
在本范例实施例中,存储器控制电路单元104(或存储器管理电路202)会判断数据CD1的数据长度CDL1是否满足预先定义条件。
例如,当压缩数据的数据长度的大小为预定长度的整数倍数时,存储器控制电路单元104(或存储器管理电路202)会判定此压缩数据的数据长度是满足此预先定义条件。在本范例实施例中,此预设长度会根据实体程序化单元内错误检查与校正码框(ErrorChecking and correcting code frame)的长度来设定。例如,在本范例实施例中,所述预定长度被设定为1仟字节(即,1024字节),而在另一范例实施例中,所述预定长度可根据厂商的需求被设定为2仟字节、3仟字节、4仟字节或其他长度。
在图8所示的例子中,由于数据CD1的数据长度CDL1的大小为1仟字节,并且等于预定长度PL。因此,存储器控制电路单元104(或存储器管理电路202)会判定数据CD1满足预先定义条件。之后,存储器控制电路单元104(或存储器管理电路202)会选择可用的实体程序化单元(以下称第一实体程序化单元),并且将数据长度满足预先定义条件的数据CD1写入至第一实体程序化单元中。
图9是根据另一范例所示的处理欲写入至可复写式非易失性存储器模块的数据的示意图。
请参照图9,举例来说,当存储器控制电路单元104(或存储器管理电路202)欲写入数据长度为4仟字节的数据UD2时,存储器控制电路单元104(或存储器管理电路202)会先指示数据压缩/解压缩电路208对数据UD2进行压缩操作。例如,数据压缩/解压缩电路208将数据UD2压缩为数据CD2,其中数据CD2的数据长度CDL2的大小为800字节。接着,存储器控制电路单元104(或存储器管理电路202)会判断数据CD2的数据长度CDL2是否满足预先定义条件。
在图9所示的例子中,由于数据CD2的数据长度CDL2的大小为800字节并且不等于预定长度PL的整数倍数(即,数据CD2的数据长度CDL2小于预定长度PL),因此,存储器控制电路单元104(或存储器管理电路202)会判定数据CD2不满足预先定义条件。特别是,由于数据CD2的数据长度CDL2是小于预定长度PL,因此,存储器控制电路单元104(或存储器管理电路202)会计算预定长度PL与数据CD2的数据长度CDL2之间的差值DL2(即,224字节),并且产生数据长度等于长度PL与数据CD2的数据长度CDL2之间的差值DL2的虚拟数据(dummydata)DD2。然后,存储器控制电路单元104(或存储器管理电路202)会将此虚拟数据DD2填补至数据CD2以形成数据FD2,由此使所形成的数据FD2的数据长度FDL2等于预定长度PL。基此,数据FD2的数据长度为预定长度PL的整数倍数并且满足上述预先定义条件。换言之,在数据CD2的数据长度不满足预先定义条件的例子中,存储器控制电路单元104(或存储器管理电路202)会通过填补虚拟数据DD2至数据CD2来产生满足预先定义条件的数据FD2。值得一提的是,虚拟数据DD2可被填补(加入)至数据CD2之后或是之前以形成数据FD2,本发明不限于此。
图10是根据另一范例所示的处理欲写入至可复写式非易失性存储器模块的数据的示意图。
请参照图10,相似于图9的例子,在图10所示的例子中,数据UD3被压缩成数据CD3,且数据CD3的数据长度CDL3的大小为1200字节。由于数据CD3的数据长度CDL3(1200字节)大于预定长度PL(即,1024字节)且小于2倍的预定长度PL(即,2048字节),并且第一数据CD3的数据长度与2倍的预定长度PL之间的差值DL3为848字节(即,2048-1200=848)。因此,存储器控制电路单元104(或存储器管理电路202)会产生数据长度为848字节的虚拟数据DD3,并将虚拟数据DD3填补至数据CD3以形成数据FD3,以让数据FD3的数据长度FDL3等于2倍的预定长度PL并且满足上述预先定义条件。
值得一提的是,在本范例实施例中,当压缩数据的数据长度的大小为预定长度的整数倍数时,存储器控制电路单元104(或存储器管理电路202)会判定此压缩数据的数据长度满足此预先定义条件,但本发明不限于此。压缩数据要求的条件也可不限于是压缩数据的数据长度的大小为预定长度的整数倍数。例如,在另一范例实施例中,若压缩数据的数据长度的大小为符合一固定值加上预定长度的总和时或一固定值加上预定长度的整数倍数的总和时,存储器控制电路单元104(或存储器管理电路202)会判定此压缩数据的数据长度满足此预先定义条件。
本发明会根据预先定义规则来产生虚拟数据。以下将配合附图以及多个范例实施例来详细说明本发明中如何根据预先定义规则来产生虚拟数据的方法。
图11是根据一范例实施例所示的产生图9所示的虚拟数据的方法的示意图。
在本范例实施例中,所述预先定义规则即是指存储器控制电路单元104(或存储器管理电路202)会根据所压缩的数据的数据比特内容来产生虚拟数据。具体来说,请参照图11,当数据压缩/解压缩电路208压缩数据UD2为数据CD2时,存储器控制电路单元104(或存储器管理电路202)会辨识数据CD2的数据比特内容,即“1011…0001”,并且获取数据CD2的第1个比特数据(即,图11中所圈选的“1”)作为一个基本态样并且依据此基本态样来产生虚拟数据DD2。具体来说,存储器控制电路单元104(或存储器管理电路202)会将重复地复制此基本态样并组合成数据长度为224字节的虚拟数据DD2,由此使得所形成的数据FD2的数据长度会满足预先定义条件。
值得注意的是,虚拟数据的数据比特的选取方式可以依据厂商的设定而改变,本发明不限于此。也就是说,所在压缩数据中所选取的数据比特的数目及位置可以根据厂商的设定而变动。例如,所选取的数据比特的数目可以为1个或是多于1个,并且所选取的数据比特的位置可以为压缩数据中任意位置的数据比特。例如,在另一范例实施例中,存储器控制电路单元104(或存储器管理电路202)会获取所压缩后的数据的最后一个或多个数据比特的内容来产生虚拟数据。或是,在另一范例实施例中,存储器控制电路单元104(或存储器管理电路202)也可选择所压缩的数据CD4的第二个数据比特“0”与倒数第二个数据比特“1”来成为基本态样(即,“01”),利用重复地复制此基本态样来形成虚拟数据DD4(即,“0101…01”),并且将此虚拟数据DD4填补至数据CD4来产生数据(如图12所示)。
此外,请参照图13与图14,在另一范例实施例中,所述预先定义规则是指存储器控制电路单元104(或存储器管理电路202)会记录填塞比特表1302于可复写式非易失性存储器模块106中或缓冲存储器210中,并且根据纪录填塞比特表1302来产生虚拟数据。填塞比特表1302存储有多个目录值,并且厂商可依据需求来设定填塞比特表1302以及其所存储的目录值。例如,当存储器控制电路单元104(或存储器管理电路202)欲产生虚拟数据以加入至数据CD5来形成数据长度满足预先定义条件的数据时,存储器控制电路单元104(或存储器管理电路202)会依序选择填塞比特表1302中的目录值来作为基本态样以产生虚拟数据。如图13中所示,若存储器控制电路单元104(或存储器管理电路202)所选择到的目录值为“7”时,如图14所示,存储器控制电路单元104(或存储器管理电路202)会复制所选择到的目录值以形成数据比特为“7777…77”的虚拟数据DD5。
值得一提的是,在下一次存储器控制电路单元104(或存储器管理电路202)欲产生虚拟数据时,存储器控制电路单元104(或存储器管理电路202)会根据上次所选择的目录值从填塞比特表1302中选择排序在上次所选择目录值之后的目录值(如,图13中的“8”)来形成虚拟数据。如此一来,每次所产生的虚拟数据会根据从填塞比特表1302中循序选择的目录值而变动。应注意的是,填塞比特表1302中的目录值并不限定于本发明。例如,填塞比特表1302中的目录值的数量可以为更多或是更少,填塞比特表1302中的目录值可为不同型态的数值,例如8进位、16进位等等,或是每个目录值可以为1个位数的数值或是多个位数的数值。
此外,在另一范例实施例中,所述预先定义规则是指在产生虚拟数据之前,存储器控制电路单元104(或存储器管理电路202)可先辨识被选择来写入数据的实体抹除单元的抹除次数,并且将此抹除次数,输入至一乱数产生函数来产生用于产生虚拟数据的基本态样,再根据此基本态样来产生虚拟数据。
举例来说,存储器控制电路单元104(或存储器管理电路202)会辨识被选择来写入数据的实体抹除单元的抹除次数为’777’,将’777’输入至一种子(Seed)函数(例如,C语言中的Srand()函数)中,藉此使得之后利用随机函数(例如,C语言中的rand()函数)所产生的数值会因为实体抹除单元的抹除次数不同而更加随机。然后,存储器控制电路单元104(或存储器管理电路202)会将利用随机函数所产生的数值作为基本态样来产生虚拟数据。例如,当所随机产生的数值为“100111”,存储器控制电路单元104(或存储器管理电路202)会使用“100111”作为虚拟数据的基本态样,并且复制此基本态样来产生数据比特为“100111…100111”的虚拟数据。换言之,每笔存储在不同的实体抹除单元压缩数据中的虚拟数据都会对应此些实体抹除单元的抹除次数的不同而动态改变。
此外,在另一范例实施例中,所述预先定义规则是指存储器控制电路单元104(或存储器管理电路202)也可同时根据被选来写入数据的实体抹除单元的抹除次数、上述填塞比特表中的数值和压缩后的数据的数据比特内容的至少其中两个的组合来产生虚拟数据。举例来说,存储器控制电路单元104(或存储器管理电路202)可将图13所示的填塞比特表1302中的目录值加上被选择来存储压缩数据(第二数据)的实体抹除单元的抹除次数来作为上述基本态样以形成虚拟数据。应注意的是,本发明并不限于随机函数的计算方式,本领域人员当可经由上述范例实施例的启示,自行设计用以产生随机数值的随机函数与种子。
图15是根据一范例实施例所示的数据写入方法的流程图。
请参照图15,在步骤S1501中,存储器控制电路单元104(或存储器管理电路202)指示数据压缩/解压缩电路208压缩数据以产生压缩后的数据(以下称为第一数据)。在步骤S1503中,存储器控制电路单元104(或存储器管理电路202)会判断第一数据的数据长度是否满足预先定义条件。若在步骤S1503中,存储器控制电路单元104(或存储器管理电路202)判定第一数据的数据长度满足预先定义条件时,在步骤S1505中,存储器控制电路单元104(或存储器管理电路202)会将第一数据写入至可复写式非易失性存储器模块106中的目前使用的实体抹除单元中(以下称为第一实体抹除单元)。
若在步骤S1503中,存储器控制电路单元104(或存储器管理电路202)判定第一数据的数据长度不满足预先定义条件时,在步骤S1507中,存储器控制电路单元104(或存储器管理电路202)根据预先定义规则来产生虚拟数据,并且在步骤S1509中,存储器控制电路单元104(或存储器管理电路202)将虚拟数据填补至第一数据以产生第二数据并且将第二数据写入至第一实体抹除单元中,其中第二数据的数据长度满足预先定义条件。
综上所述,本发明范例实施例的数据写入方法、存储器控制电路单元以及存储器存储装置能够产生固定数据长度的倍数的压缩数据,以便于增进存储器存储装置的数据写入效率以及数据管理的便利性。同时,根据本发明的数据写入方法,存储器存储装置还可以动态地改变每次产生压缩数据所附加的虚拟数据的数据比特。基此,在存储每笔压缩数据时,于存储器存储装置所写入的存储单位中不会存储相同的虚拟数据,进而使存储器存储装置可以有平均损耗的效过,以提升存储器存储装置的耐用性并延长存储器存储装置的寿命。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.一种数据写入方法,用于一可复写式非易失性存储器模块,其特征在于,该可复写式非易失性存储器模块包括多个实体抹除单元,且每一该些实体抹除单元包括多个实体程序化单元,其中该数据写入方法包括:
压缩数据以产生第一数据;
判断该第一数据的数据长度是否满足预先定义条件;
倘若该第一数据的数据长度满足该预先定义条件时,将该第一数据写入至该些实体抹除单元之中的第一实体抹除单元中;以及
倘若该第一数据的数据长度不满足该预先定义条件时,根据预先定义规则来产生虚拟数据,将该虚拟数据填补至该第一数据以产生第二数据并且将该第二数据写入至该第一实体抹除单元中,其中该第二数据的数据长度满足该预先定义条件,
其中上述根据该预先定义规则来产生该虚拟数据的步骤包括:
辨识第一实体抹除单元的抹除次数,将该抹除次数输入至一乱数产生函数来产生一乱数;
辨识该第一数据之中的多个数据比特,从该第一数据的该些数据比特中选择至少一数据比特;以及
将所述乱数与所选择所述至少一数据比特组合成基本态样数值,并且重复地复制该基本态样数值以形成该虚拟数据。
2.根据权利要求1所述的数据写入方法,其特征在于,上述判断该第一数据的数据长度是否满足该预先定义条件的步骤包括:
判断该第一数据的数据长度是否等于预定长度的整数倍数;以及
倘若该第一数据的数据长度等于该预定长度的该整数倍数时,判定该第一数据的数据长度满足该预先定义条件。
3.根据权利要求1所述的数据写入方法,其特征在于,上述根据该预先定义规则来产生该虚拟数据的步骤包括:
从填塞比特表选择至少一数据比特;以及
根据所选择的该至少一数据比特来产生该虚拟数据。
4.一种存储器控制电路单元,用于控制一可复写式非易失性存储器模块,其特征在于,该可复写式非易失性存储器模块包括多个实体抹除单元,且每一该些实体抹除单元包括多个实体程序化单元,该存储器控制电路单元包括:
主机接口,电性连接至主机系统;
存储器接口,电性连接至该可复写式非易失性存储器模块;
存储器管理电路,电性连接至该主机接口与该存储器接口;以及
数据压缩/解压缩电路,电性连接至该存储器管理电路,
其中该存储器管理电路用以指示该数据压缩/解压缩电路压缩数据以产生第一数据,
其中该存储器管理电路还用以判断该第一数据的数据长度是否满足预先定义条件,
其中倘若该第一数据的数据长度满足该预先定义条件时,该存储器管理电路还用以传送指令序列至该可复写式非易失性存储器模块以指示将该第一数据写入至该些实体抹除单元之中的第一实体抹除单元中,
其中倘若该第一数据的数据长度不满足该预先定义条件时,该存储器管理电路还用以根据预先定义规则来产生虚拟数据,将该虚拟数据填补至该第一数据以产生第二数据并且传送指令序列至该可复写式非易失性存储器模块以指示将该第二数据写入至该第一实体抹除单元中,其中该第二数据的数据长度满足该预先定义条件,
其中上述该存储器管理电路还用以根据该预先定义规则来产生该虚拟数据的运作包括:
该存储器管理电路辨识第一实体抹除单元的抹除次数,将该抹除次数输入至一乱数产生函数来产生一乱数;
该存储器管理电路辨识该第一数据之中的多个数据比特,从该第一数据的该些数据比特中选择至少一数据比特;以及
该存储器管理电路将所述乱数与所选择所述至少一数据比特组合成基本态样数值,并且重复地复制该基本态样数值以形成该虚拟数据。
5.根据权利要求4所述的存储器控制电路单元,其特征在于,上述该存储器管理电路还用以判断该第一数据的数据长度是否满足该预先定义条件的运作包括:
该存储器管理电路还用以判断该第一数据的数据长度是否等于预定长度的整数倍数,
其中倘若该第一数据的数据长度等于该预定长度的该整数倍数时,该存储器管理电路判定该第一数据的数据长度满足该预先定义条件。
6.根据权利要求4所述的存储器控制电路单元,其特征在于,上述该存储器管理电路还用以根据该预先定义规则来产生该虚拟数据的运作包括:
该存储器管理电路还用以从填塞比特表选择至少一数据比特,
其中该存储器管理电路还用以根据所选择的该至少一数据比特来产生该虚拟数据。
7.一种存储器存储装置,其特征在于,包括:
连接接口单元,用以电性连接至主机系统;
可复写式非易失性存储器模块,包括多个实体抹除单元,且每一该些实体抹除单元包括多个实体程序化单元;以及
存储器控制电路单元,电性连接至该连接接口单元与该可复写式非易失性存储器模块,
其中该存储器控制电路单元压缩数据以产生第一数据,
其中该存储器控制电路单元还用以判断该第一数据的数据长度是否满足预先定义条件,
其中倘若该第一数据的数据长度满足该预先定义条件时,该存储器控制电路单元还用以传送指令序列至该可复写式非易失性存储器模块以将该第一数据写入至该些实体抹除单元之中的第一实体抹除单元中,
其中倘若该第一数据的数据长度不满足该预先定义条件时,该存储器控制电路单元还用以根据预先定义规则来产生虚拟数据,将该虚拟数据填补至该第一数据以产生第二数据并且传送指令序列至该可复写式非易失性存储器模块以将该第二数据写入至该第一实体抹除单元中,其中该第二数据的数据长度满足该预先定义条件,
其中上述该存储器控制电路单元还用以根据该预先定义规则来产生该虚拟数据的运作包括:
该存储器控制电路单元辨识第一实体抹除单元的抹除次数,将该抹除次数输入至一乱数产生函数来产生一乱数;以及
该存储器控制电路单元辨识该第一数据之中的多个数据比特,从该第一数据的该些数据比特中选择至少一数据比特;以及
该存储器控制电路单元将所述乱数与所选择所述至少一数据比特组合成基本态样数值,并且重复地复制该基本态样数值以形成该虚拟数据。
8.根据权利要求7所述的存储器存储装置,其特征在于,上述该存储器控制电路单元还用以判断该第一数据的数据长度是否满足该预先定义条件的运作包括:
该存储器控制电路单元还用以判断该第一数据的数据长度是否等于预定长度的整数倍数,
其中倘若该第一数据的数据长度等于该预定长度的该整数倍数时,该存储器控制电路单元判定该第一数据的数据长度满足该预先定义条件。
9.根据权利要求7所述的存储器存储装置,其特征在于,上述该存储器控制电路单元还用以根据该预先定义规则来产生该虚拟数据的运作包括:
该存储器控制电路单元还用以从填塞比特表选择至少一数据比特,
其中该存储器控制电路单元还用以根据所选择的该至少一数据比特来产生该虚拟数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410604459.2A CN105573662B (zh) | 2014-10-31 | 2014-10-31 | 数据写入方法、存储器控制电路单元以及存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410604459.2A CN105573662B (zh) | 2014-10-31 | 2014-10-31 | 数据写入方法、存储器控制电路单元以及存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105573662A CN105573662A (zh) | 2016-05-11 |
CN105573662B true CN105573662B (zh) | 2020-05-26 |
Family
ID=55883860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410604459.2A Active CN105573662B (zh) | 2014-10-31 | 2014-10-31 | 数据写入方法、存储器控制电路单元以及存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105573662B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102513919B1 (ko) * | 2018-11-05 | 2023-03-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
CN109347763B (zh) * | 2018-09-11 | 2021-11-05 | 北京邮电大学 | 一种基于数据队列长度的数据调度方法、装置及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001024465A1 (en) * | 1999-09-30 | 2001-04-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Blind rate detection in a multiplexed transmission system |
CN102760099A (zh) * | 2011-04-29 | 2012-10-31 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060005208A (ko) * | 2004-07-12 | 2006-01-17 | 삼성전자주식회사 | 기록 장치, 재생 장치, 기록 방법, 재생 방법 및 광 기록정보 저장 매체 |
KR101517185B1 (ko) * | 2008-04-15 | 2015-05-04 | 삼성전자주식회사 | 메모리 시스템 및 그것의 동작 방법 |
-
2014
- 2014-10-31 CN CN201410604459.2A patent/CN105573662B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001024465A1 (en) * | 1999-09-30 | 2001-04-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Blind rate detection in a multiplexed transmission system |
CN1402923A (zh) * | 1999-09-30 | 2003-03-12 | 艾利森电话股份有限公司 | 多路传输系统中的盲目速率检测 |
CN102760099A (zh) * | 2011-04-29 | 2012-10-31 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105573662A (zh) | 2016-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI693516B (zh) | 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 | |
US8560926B2 (en) | Data writing method, memory controller and memory storage apparatus | |
TWI534618B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN109491588B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI725416B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI705331B (zh) | 有效資料合併方法、記憶體控制電路單元與記憶體儲存裝置 | |
US20170242597A1 (en) | Wear leveling method, memory control circuit unit and memory storage device | |
US9304907B2 (en) | Data management method, memory control circuit unit and memory storage apparatus | |
TW201705148A (zh) | 映射表存取方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
US20160110112A1 (en) | Data writing method, memoey control circuit unit and memory storage apparatus | |
TWI635495B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN107204205B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN105573662B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN108664350B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
US10546640B2 (en) | Data protecting method and memory storage device | |
CN109032957B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI545576B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN111208932A (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN112732199B (zh) | 数据存取方法、存储器控制电路单元及存储器存储装置 | |
TWI750013B (zh) | 資料存取方法、記憶體控制電路單元及記憶體儲存裝置 | |
US9600363B2 (en) | Data accessing method, memory controlling circuit unit and memory storage apparatus | |
US20210223981A1 (en) | Data writing method, memory controlling circuit unit and memory storage device | |
CN109522236B (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 |