用于闪存的数据写入方法及其控制器与储存系统的制作方法

文档序号:6582757阅读:162来源:国知局
专利名称:用于闪存的数据写入方法及其控制器与储存系统的制作方法
技术领域
本发明涉及一种用于闪存的数据写入方法,且特别是涉及一种能够有效率地将数 据写入至闪存的数据写入方法及其控制器与储存系统。
背景技术
由于闪存(Flash Memory)具有数据非挥发性、省电、体积小与无机械结构等的特 性,最适合使用于由电池供电的可携式电子产品上。例如,固态硬盘就是一种以NAND闪存 作为储存媒体的储存装置,并且已广泛配置于笔记本电脑中作为主要的储存装置。一般来说,闪存储存装置的闪存芯片(chip)会划分为多个实体区块,其中实体区 块还可划分为多个实体页面,而实体区块是闪存的抹除单位并且实体页面是闪存的写入单 位。由于在程序化闪存的存储单元时,仅能执行单向的程序化(即,仅能将存储单元的值由 1程序化为0),因此无法对已程序化的实体页面(即,存有旧数据的页面)直接进行写入, 而是必须先将此实体页面抹除后方可重新程序化。特别是,由于闪存的抹除是以实体区块 为单位,所以,当欲将存有旧数据的实体页面执行抹除运作时,必须对此实体页面所属的整 个实体区块进行抹除。基于闪存以实体页面为写入的单元而以实体区块为抹除的单元的特 性,一般来说,在闪存装置中闪存芯片的实体区块会被区分为数据区与备用区,其中数据区 的实体区块是已被使用来储存数据的实体区块,而备用区中的实体区块是未被使用的实体 区块。当主机系统欲写入数据至闪存储存装置时,闪存储存装置的控制电路会从备用区中 提取实体区块来写入数据,并且将所提取的实体区块关联至数据区。并且,在将对数据区的 实体区块执行抹除运作(erase operation)之后将已抹除的实体区块关联至备用区。由于主机系统是以逻辑地址为单位来进行写入的,并且主机系统写入数据至逻辑 地址时往往不会依据逻辑地址的顺序来写入。因此,主机系统所写入的数据会零散地储存 于多个实体区块中。基此,当闪存储存装置需要对实体区块进行抹除运作时,闪存储存装置 需要花费相当多的时间来整理实体区块中的有效数据与无效数据,因此,造成闪存储存装 置的写入速度无法有效地提升。因此,如何提升在闪存所写入数据的速度是此领域技术人 员所致力的目标。

发明内容
本发明提供一种用于闪存的数据写入方法,其能够有效地降低每一实体区块中数 据的零散程度,缩短整理闪存的实体区块中有效数据与无效数据的时间,进而提升写入数 据至闪存的速度。本发明提供一种闪存控制器,其能够有效地降低每一实体区块中数据的零散程 度,缩短整理闪存的实体区块中有效数据与无效数据的时间,进而提升写入数据至闪存的 速度。本发明提供一种闪存储存系统,其能够有效地降低每一实体区块中数据的零散程 度,缩短整理闪存的实体区块中有效数据与无效数据的时间,进而提升写入数据至闪存的速度。本发明实施例提出一种用于闪存的数据写入方法,用于将来自于一主机系统的数 据写入至一闪存芯片中,其中此闪存芯片包括多个实体区块。本数据写入方法包括配置多 个逻辑存取地址,以及从主机系统中接收一写入数据,其中此写入数据欲被写入至至少一 逻辑存取地址。本数据写入方法也包括判断是否存有至少一已开启实体区块,并且当实体 区块之中无存有已开启实体区块时,则从实体区块之中提取一实体区块,将此写入数据写 入至所提取的实体区块中,并且将此至少一逻辑存取地址的其中之一设定为所提取的实体 区块的一地址中心。本发明实施例提出一种闪存控制器,用于将来自于一主机系统的数据写入至一闪 存芯片中,其中此闪存芯片包括多个实体区块。本闪存控制器包括微处理器单元、闪存接口 单元、主机接口单元与存储器管理单元。闪存接口单元电性连接至微处理器单元,并且用以 电性连接至闪存芯片。主机接口单元电性连接至微处理器单元,并且用以电性连接至主机 系统。存储器管理单元电性连接至微处理器单元,并且用以配置多个逻辑存取地址。此外, 主机接口单元从主机系统中接收一写入数据,其中写入数据欲被写入至至少一逻辑存取地 址。存储器管理单元判断是否存有至少一已开启实体区块,其中实体区块之中无存有已开 启实体区块时,则存储器管理单元从实体区块之中提取一实体区块,将此写入数据写入至 所提取的实体区块中,并且将此至少一逻辑存取地址的其中之一设定为所提取的实体区块 的一地址中心。本发明实施例提出一种闪存储存系统,其包括闪存芯片、连接器与闪存控制器。闪 存芯片具有多个实体区块。连接器用以电性连接至一主机系统。闪存控制器电性连接至闪 存芯片与连接器,并且用以配置多个逻辑存取地址。此外,闪存控制器从主机系统中接收一 写入数据,其中此写入数据是欲被写入至至少一逻辑存取地址。闪存控制器判断是否存有 至少一已开启实体区块。并且,当实体区块之中无存有已开启实体区块时,则闪存控制器从 实体区块之中提取一实体区块,将此写入数据写入至所提取的实体区块中,并且将此至少 一逻辑存取地址的其中之一设定为所提取的实体区块的一地址中心。基于上述,本发明实施例能够有效地提升写入数据至闪存的速度。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详 细说明如下。


图IA是根据本发明第一实施例所示的使用闪存储存装置的主机系统;图IB是根据本发明实施例所示的电脑、输入/输出装置与闪存储存装置的示意 图;图IC是根据本发明另一实施例所示的主机系统与闪存储存装置的示意图;图ID是图IA所示的闪存储存装置的结构示意图;图2是根据本发明另一实施例所示的闪存控制器的结构示意图;图3A是根据本发明第一实施例所示的闪存芯片的结构示意图;图3B是根据本发明第一实施例所示的逻辑页地址与实体页地址的映射示意图;图4A与图4B是根据本发明第一实施例所示的逻辑页转实体页映射表及实体页转逻辑页映射表的示意图;图5A与图5B是根据本发明第一实施例所示的对应一数据写入范例的逻辑页转实 体页映射表及实体页转逻辑页映射表的示意图;图6A与图6B是根据本发明第一实施例所示的对应另一数据写入范例的逻辑页转 实体页映射表及实体页转逻辑页映射表的示意图;图7A与图7B是根据本发明第一实施例所示的对应又一数据写入范例的逻辑页转 实体页映射表及实体页转逻辑页映射表的示意图;图8A与图8B是根据本发明第一实施例所示的对应再一数据写入范例的逻辑页转 实体页映射表及实体页转逻辑页映射表的示意图;图9是根据本发明第一实施例所示的数据写入方法的流程图;图10是图9的步骤S907的详细步骤;图11是根据本发明第二实施例所示的逻辑页地址的分组示意图;图12A与图12B是根据本发明第二实施例所示的对应一数据写入的逻辑页转实体 页映射表及实体页转逻辑页映射表的示意图;图13A与图13B是根据本发明第二实施例所示的对应另一数据写入的逻辑页转实 体页映射表及实体页转逻辑页映射表的示意图;图14A与图14B是根据本发明第二实施例所示的对应又一数据写入的逻辑页转实 体页映射表及实体页转逻辑页映射表的示意图15是根据本发明第二实施例所示的数据写入方法的流程图 图16是图15的步骤S1507的详细步骤。 附图中主要元件符号说明
1000-主机系统; 1102-微处理器; 1106-输入/输出装置; 1110-数据传输接口 ; 1204-键盘; 1208-打印机; 1214-记忆卡; 1310-数码相机; 1314-MMC 卡; 1318-CF 卡; 100-闪存储存装置; 104、104,-闪存控制器
1100-电脑; 1104-随机存取存储器 1108-系统总线; 1202鼠标; 1206-显示器; 1212-随身盘; 1216-固态硬盘; 1312-SD 卡; 1316-记忆棒; 1320-嵌入式储存装置 102-连接器; 106-闪存芯片;122-(0) 122-(N)-实体区块;202--微处理器单元
204-存储器管理单元; 206-主机接口单元;
208-闪存接口单元;252-缓冲存储器;
254-电源管理单元;256-错误校正单元;
302-系统区;304-储存区;
304a-数据区;304b-_备用区;
306-取代区;410-逻辑页转实体页映射表;420-实体页转逻辑页映射表;LAA (0) LAA (H)-逻辑存取地址;LPA (0) LPA (L)-逻辑页地址;PPA (0) PPA (K)-实体页地址;LPAG (0) LPAG (U)-逻辑页地址群组;S901、S903、S905、S907、S100U S1003、S1005、S1007、S1009、SlOlU S1013、 S1015-数据写入步骤;S1501、S1503、S1505、S1507、S1601、S1603、S1605、S1607、S1609、S1611、S1613、 S1615、S1617、S1619、S1621、S1623、S1625、S1627-数据写入步骤。
具体实施例方式闪存储存装置一般而言包括闪存芯片与控制器(也称为,控制电路)。通常闪存储 存装置会与主机系统一起使用,以使主机系统可将数据写入至闪存储存装置或从闪存储存 装置中读取数据。另外,还有闪存储存装置是包括嵌入式闪存与可执行于主机系统上以实 质地作为此嵌入式闪存的控制器的软件。[第一实施例]图IA是根据本发明第一实施例所示的使用闪存储存装置的主机系统。图IB是根据本发明实施例所示的电脑、输入/输出装置与闪存储存装置的示意 图。图IC是根据本发明另一实施例所示的主机系统与闪存储存装置的示意图。请参照图1A,主机系统1000包括电脑1100与输入/输出(input/output,I/O)装 置1106。电脑1100包括微处理器1102、随机存取存储器(random accessmemory, RAM) 1104、 系统总线1108以及数据传输接口 1110。输入/输出装置1106包括如图IB所示的鼠标 1202、键盘1204、显示器1206与打印机1208。必须了解的是,图IB所示的装置不限制输入 /输出装置1106,输入/输出装置1106还可包括其他装置。在本发明实施例中,闪存储存装置100是通过数据传输接口 1110与主机系统1000 的其他元件电性连接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106 的处理主机系统1000可将数据写入至闪存储存装置100或从闪存储存装置100中读取数 据。例如,闪存储存装置100可以是如图IB所示的随身盘1212、记忆卡1214或固态硬盘 (Solid State Drive, SSD)1216。一般而言,主机系统1000为可储存数据的任意系统。虽然在本实施例中,主机 系统1000是以电脑系统来作说明,然而,在本发明另一实施例中,主机系统1000还可以 是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数 码相机1310时,闪存储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式储存装置1320 (如图IC所示)。嵌入式储存装置1320包 括嵌入式多媒体卡(Embedded MMC, eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连 接于主机系统的基板上。图ID是图IA所示的闪存储存装置的结构示意图。请参照图1D,闪存储存装置100包括连接器102、闪存控制器104与闪存芯片106。连接器102电性连接至闪存控制器104并且用以电性连接至主机系统1000。在 本实施例中,连接器102为串行高级技术附件(Serial AdvancedTechnology Attachment,SATA)连接器。然而,必须了解的是本发明不限于此,连接器102还可以是并行高级 技术附件(Parallel Advanced TechnologyAttachment, PATA)连接器、通用串行总线 (Universal Serial Bus,USB)连接器、电气和电子工程师协会(Institute of Electrical and Electronic Engineers, IEEE) 1394 连接器、高速周边零件连接接口(Peripheral Component InterconnectExpress, PCI Express)连接器、安全数石马(secure digital, SD)接口连接器、记忆棒(Memory Sick, MS)接口连接器、多媒体储存卡(Multi Media Card, MMC)接口连接器、小型快闪(Compact Flash, CF)接口连接器、集成设备电路接口 (Integrated Device Electronics, IDE)连接器或其他适合的连接器。闪存控制器104会执行以硬件形式或固件形式实作的多个逻辑门或控制指令,并 且根据主机系统1000的指令在闪存芯片106中进行数据的写入、读取与抹除等运作。闪存 控制器104包括微处理器单元202、存储器管理单元204、主机接口单元206、闪存接口单元 208。微处理器单元202为闪存控制器104的主控单元,用以与存储器管理单元204、主 机接口单元206与闪存接口单元208等协同合作以进行闪存储存装置100的各种运作。存储器管理单元204电性连接至微处理器单元202,用以执行根据本实施例的数 据写入机制与区块管理机制,存储器管理单元204的运作将于以下配合附图作详细说明。在本实施例中,存储器管理单元204以一固件形式实作在闪存控制器104中。例 如,将包括多个控制指令的存储器管理单元204烧录至一程序存储器(例如,只读存储器 (Read Only Memory, ROM))中并且将此程序存储器嵌入在闪存控制器104中,当闪存储存 装置100运作时,存储器管理单元204的多个控制指令会由微处理器单元202来执行以完 成根据本发明实施例的数据写入机制与区块管理机制。在本发明另一实施例中,存储器管理单元204的控制指令还可以程序代码的形式 储存于闪存芯片106的特定区域(例如,闪存芯片中专用于存放系统数据的系统区)中。同 样的,当闪存储存装置100运作时,存储器管理单元204的多个控制指令会由微处理器单元 202来执行。此外,在本发明另一实施例中,存储器管理单元204还可以一硬件形式实作在 闪存控制器104中。主机接口单元206电性连接至微处理器单元202并且用以接收与识别主机系统 1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口 单元206来传送至微处理器单元202。在本实施例中,主机接口单元206对应连接器102为 SATA接口。然而,必须了解的是本发明不限于此,主机接口单元206还可以是PATA接口、 USB 接口、IEEE 1394 接口、PCI Express 接口、SD 接口、MS 接口、MMC 接口、CF 接口、IDE 接 口或其他适合的数据传输接口。闪存接口单元208电性连接至微处理器单元202并且用以存取闪存芯片106。也 就是说,欲写入至闪存芯片106的数据会经由闪存接口单元208转换为闪存芯片106所能 接受的格式。在本发明另一实施例中,闪存控制器还可包括其他功能模组。图2是根据本发明 另一实施例所示的闪存控制器的结构示意图。请参照图2,除了微处理器单元202、存储器管理单元204、主机接口单元206与闪 存接口单元208之外,闪存控制器104'还包括缓冲存储器252、电源管理单元254与错误校正单元256。缓冲存储器252电性连接至微处理器单元202并且用以暂存来自于主机系统1000 的数据与指令或来自于闪存芯片106的数据。电源管理单元254电性连接至微处理器单元202并且用以控制闪存储存装置100 的电源。错误校正单元256电性连接至微处理器单元202并且用以执行一错误校正程序以 确保数据的正确性。具体来说,当存储器管理单元204从主机系统1000中接收到主机写入 指令时,错误校正单元256会为对应此主机写入指令的写入数据产生对应的错误检查与校 正码(Error Checking and Correcting Code, ECC Code),并且存储器管理单元204会将此 写入数据与对应的错误校正码写入至闪存芯片106中。之后,当存储器管理单元204从闪 存芯片106中读取数据时会同时读取此数据对应的错误校正码,并且错误校正单元256会 依据此错误校正码对所读取的数据执行错误校正程序。请再参照图1D,闪存芯片106电性连接至闪存控制器104并且用以储存数据。闪存 芯片106具有实体区块122-(0) 122-(N)。实体区块为抹除的最小单位。也就是说,每一 实体区块含有最小数目之一并被抹除的存储单元。每一实体区块具有128个实体页面(即, 实体页地址)。在本实施例中,实体页面为程序化的最小单元。换言之,实体页面为写入数 据或读取数据的最小单元。每一实体页面通常包括使用者数据区与冗余区。使用者数据区 用以储存使用者的数据,而冗余区用以储存系统的数据(例如,错误检查与校正码)。然而, 必须了解,本发明不限于每一实体区块具有128个实体页面,在本发明另一实施例中,实体 区块的实体页面数还可以是64、256或其他适当数目。在本实施例中,闪存芯片106为多层 存储单元(Multi Level Cell,MLC)NAND闪存芯片。然而,本发明不限于此,闪存芯片106 还可是单层存储单元(Single LevelCel 1,SLC) NAND闪存芯片。图3A是根据本发明第一实施例所示的闪存芯片的结构示意图。图3B是根据本发 明第一实施例所示的逻辑页地址与实体页地址的映射示意图。必须了解的是,在此描述闪 存的实体区块的运作时,以“提取”、“交换”、“分组”、“轮替”等词来操作实体区块是逻辑上 的概念。也就是说,闪存的实体区块的实际位置并未更动,而是逻辑上对闪存的实体区块进 行操作。请参照图3A,存储器管理单元204会将实体区块122- (0) 122- (N)逻 辑地分组为系统区(system area)302、储存区(storage area)304与取代区 (replacementarea)306。逻辑上属于系统区302的实体区块122_(0) 122_(S)用以记录系统数据,此系 统数据包括关于闪存芯片的制造商与型号、每一闪存芯片的区域数、每一区域的实体区块 的数目、每一实体区块的实体页面数等。逻辑上属于储存区304的实体区块122-(S+1) 122-(A)用以主机系统1000所写 入的数据。也就是说,闪存储存装置100会使用分组为储存区304的实体区块来实际地储存 主机系统1000所写入的数据。更详细来说,储存区304的实体区块122-(S+1) 122_(A) 还分组为数据区304a与备用区304b,其中数据区304a的实体区块122-(S+1) 122-(D) 是已被写满数据的实体区块,而备用区304b的实体区块122-(D+1) 122-(A)是未被使用 来储存数据的实体区块。具体来说,当存储器管理单元204从备用区304b提取实体区块并且将所提取的实体区块写满数据时,所提取的实体区块会被关联至数据区304a,并且当关 联至数据区304a的实体区块被执行抹除运作之后,已抹除的实体区块会被关联至备用区 304b。逻辑上属于取代区306中的实体区块122-(A+1) 122-(N)是替代实体区块。例 如,闪存芯片106于出厂时会预留4%的实体区块作为更换使用。也就是说,当系统区302 与储存区304中的实体区块损毁时,预留于取代区306中的实体区块可用以取代损坏的实 体区块(S卩,坏实体区块(bad block))。因此,倘若取代区306中仍存有可用的实体区块且 发生实体区块损毁时,存储器管理单元204会从取代区306中提取可用的实体区块来更换 损毁的实体区块。倘若取代区306中无可用的实体区块且发生实体区块损毁时,则闪存储 存装置100将会被宣告为写入保护(write protect),而无法再写入数据。必须了解的是,在闪存储存装置100的运作中,实体区块122_(0) 122_(N)被分 组为系统区302、数据区304a、备用区304b与取代区306的映射关系会动态地变动。也就 是说,当存储器管理单元204将数据写入至原本属于备用区304b的实体区块(例如,实体 区块122-(D+2))后,此实体区块会被关联至数据区304a。或者,当数据区304a(或备用区 304b)中的实体区块损坏时而被取代区306的实体区块取代时,则原本取代区306的实体区 块会被关联至数据区304a (或备用区304b)。由于闪存储存装置100以轮替地使用储存区304的实体区块来储存主机系统1000 欲写入的数据,因此存储器管理单元204会提供逻辑存取地址LAA(O) LAA(H)给主机系 统1000以进行数据存取。特别是,在本实施例中,存储器管理单元204会将逻辑存取地址 LAA (0) LAA (H)分组为逻辑页地址LPA (0) LPA (L),并且将逻辑页地址LPA (0) LPA (L) 映射至储存区304的实体区块的实体页地址(如图3B所示)。在本实施例中,存储器管理 单元204会使用一运算规则来设定每一逻辑存取地址所映射的逻辑页地址。在本实施例 中,每一逻辑页地址由4个逻辑存取地址所组成,例如,逻辑存取地址LAA(O) LAA(3)属 于逻辑页地址LPA(O);逻辑存取地址LAA (4) LAA (7)属于逻辑页地址LPA(I);逻辑存取 地址LAA(S) LAA(Il)属于逻辑页地址LPA(2)...等。在此,逻辑存取地址可以是扇区 (sector)、丛集(cluster)等。此外,存储器管理单元204会维护逻辑页转实体页映射表以 及实体页转逻辑页映射表来记录逻辑页地址与实体页地址之间的映射关系。也就是说,当 主机系统1000欲在逻辑存取地址中存取数据时,存储器管理单元204会确认此逻辑存取地 址所映射的逻辑页地址,并且在此逻辑页地址所映射的实体页地址中来存取数据。在本实施例中,存储器管理单元204会为已被写入数据的实体区块记录一地址中 心与一地址半径,并且依据主机系统1000欲写入数据的逻辑存取地址(也称为被写入逻辑 存取地址)、已开启实体区块的地址中心与地址半径来将数据写入至闪存芯片106中。具体来说,实体区块的地址中心是指在此实体区块中被写入的第一笔数据所对应 的逻辑页地址中的第一个逻辑存取地址。也就是说,当存储器管理单元204从备用区304b 提取一个实体区块并且将数据写入至所提取的实体区块时,所提取实体区块的地址中心会 被设定为此数据所对应的逻辑页地址中的第一个逻辑存取地址。然而,必须了解的是本发 明不限于此,实体区块的地址中心还可以在此实体区块中被写入的第一笔数据所对应的逻 辑页地址中的任一逻辑存取地址来设定。此外,实体区块的地址半径用以控制储存于实体 区块中的数据的零散程度,每一实体区块的地址半径是预定的任意适当值,且每一实体区块的地址半径可以是相同或不同。在本实施例中,每一实体区块的地址半径皆被设定为130 个页地址。特别是,在本实施例中,每一实体区块内所储存的数据所对应的逻辑存取地址的 其中之一与此实体区块的地址中心之间的距离(即,每一实体区块内所储存的数据所对应 的逻辑存取地址的其中之一减去此实体区块的地址中心的一绝对值)必须小于或等于此 实体区块的地址半径(如公式(1)所示)I LPA (PPA (t)) -C (PPA (t)) | 彡 R (PPA (t))公式(1)其中,LPA(PPA(t))表示在闪存芯片106中第t个实体页地址中所储存的数据所 对应的逻辑存取地址,C(PPA(t))表示第t个实体页地址所属的实体区块的地址中心,并且 R(PPA(t))表示第t个实体页地址所属的实体区块的地址半径。在本实施例中,存储器管理 单元204是通过维护具有实体区块索引栏位与地址中心栏位的实体区块地址中心表(未示 出)来记录实体区块的地址中心。在本实施例中,当主机系统1000欲将数据写入至逻辑存取地址LAA(O) LAA(H) 中时,存储器管理单元204会将数据写入至已开启实体区块中。在此,所谓已开启实体区块 是指其中部分实体页地址已被写入数据的实体区块。也就是说,当存储器管理单元204从 备用区304b中提取一个实体区块,且在此所提取的实体区块的部分实体页地址中写入数 据时,此实体区块会被视为已开启实体区块。在闪存储存装置100中存有已开启实体区块 的状态下,当主机系统1000欲将数据写入至逻辑存取地址LAA(O) LAA(H)中时,存储器 管理单元204会在满足上述公式(1)的状态下依序地在已开启实体区块的实体页地址中写 入来自于主机系统的数据;而在闪存储存装置100中未存有已开启实体区块的状态下,当 主机系统1000欲将数据写入至逻辑存取地址LAA(O) LAA(H)中时,存储器管理单元204 会从备用区304b中提取一个实体区块作为已开启实体区块以写入主机系统1000欲写入的 数据。例如,当存储器管理单元204开始使用实体区块122_(D+1)来储存主机系统1000 欲写入的数据时,即使主机系统1000所写入逻辑存取地址所属的逻辑页地址为非连续的, 只要满足上述公式(1)的状态下,存储器管理单元204仍会依序地使用实体区块122-Φ+1) 的实体页地址来写入来自于主机系统1000的写入数据。也就是说,在满足上述公式(1)的 状态下,存储器管理单元204会依序地使用一个实体区块内的实体页地址来写入来自于主 机系统1000的数据,并且当已开启实体区块内的实体页地址都被使用完后存储器管理单 元204才会再选择另一个无储存数据的实体区块(即,再从备用区304b中提取一个实体区 块),并且在新选择的实体区块的实体页地址中继续依序地写入数据。在本实施例中,在存 储器管理单元204将数据写入至实体页地址后,存储器管理单元204会更新逻辑页转实体 页映射表与实体页转逻辑页映射表以正确地记录逻辑页地址与实体页地址的映射关系。值得一提的是,在本发明实施例中,在闪存储存装置100运作期间,上述已开启实 体区块的数目必须小于一已开启实体区块数门槛值。更详细来说,由于闪存储存装置100 的资源(例如,缓冲存储器的大小或闪存芯片中实体区块)是有限的,因此,存储器管理单 元204所使用的已开启实体区块的数目必须受到限制。在本实施例中,已开启实体区块数 门槛值为5 (即,存储器管理单元204最多可使用4个已开启实体区块),然而,必须了解的 是,本发明不限于此。图4A与图4B是根据本发明第一实施例所示的逻辑页转实体页映射表及实体页转逻辑页映射表的示意图,其中储存区304的实体区块的实体页地址PPA(O) PPA(K)是以 轮替的方式映射至逻辑页地址LPA(O) LPA(L)的。在本实施例中,逻辑页转实体页映射 表410具有逻辑页索引栏位与实体页地址栏位来记录每一逻辑页地址所映射的实体页地 址,并且实体页转逻辑页映射表420具有实体页索引栏位与逻辑页地址栏位来记录每一实 体页地址所映射的逻辑页地址。请参照图4A与4B,假设逻辑页地址LPA (0) 逻辑页地址LPA (L)是分别映射实 体页地址PPA(O) 实体页地址PPA(L)的,也就是说,实体页地址PPA(O) 实体页地址 PPA(L)已分别储存主机系统1000在逻辑页地址LPA(O) 逻辑页地址LPA(L)中所写入的 数据。此外,在闪存储存装置100中目前无已开启实体区块。图5A与图5B是根据本发明第一实施例所示的对应一数据写入范例的逻辑页转实 体页映射表及实体页转逻辑页映射表的示意图。请参照图5A与5B,当在图4A与图4B所示的状态下主机系统1000欲写入数据至 逻辑存取地址LAA (4) LAA (6)时,存储器管理单元204会确认逻辑存取地址LAA (4) LAA(6)是属于逻辑页地址LPA(I)的;接着从备用区304b中提取一个实体区块,例如,具有 实体页地址PPA(L+1) PPA(L+128)的实体区块122_(D+1);并且将主机系统1000欲写入 的数据写入至实体页地址PPA(L+1)中。另外,存储器管理单元204会在逻辑页转实体页映 射表410中将逻辑页地址LPA(I)的映射更新为实体页地址PPA (L+1),并且在实体页转逻辑 页映射表420中将实体页地址PPA (L+1)的映射更新为逻辑页地址LPA(I)。此时,实体区块 122-(D+1)会成为闪存储存装置100中的已开启实体区块,并且已开启实体区块122-(D+1) 的地址中心会被设定为逻辑存取地址LAA (4)。在此,逻辑页地址LPA(I)的第一个逻辑存取 地址(即,逻辑存取地址LAA(4))被用来作为已开启实体区块122-(D+1)的地址中心。然 而,本发明不限于此,在本发明另一实施例中,可使用逻辑存取地址LAA(4) LAA(7)中的 任何一个来作为已开启实体区块的地址中心。此外,必须了解的是,由于闪存的存取是以 “页”为单位,因此尽管主机系统1000仅欲写入数据至逻辑存取地址LAA(4) LAA(6)中, 但存储器管理单元204会将整个逻辑页地址LPA(I)的数据(即,逻辑存取地址LAA(4) LAA(7)的数据)写入至对应的实体页地址中。图6A与图6B是根据本发明第一实施例所示的对应另一数据写入范例的逻辑页转 实体页映射表及实体页转逻辑页映射表的示意图。请参照图6A与6B,当在图5A与图5B的状态下主机系统1000欲写入数据至逻辑 存取地址LAA(13)时,存储器管理单元204会确认逻辑存取地址LAA(13)是属于逻辑页地 址LPA(3)的;判断逻辑存取地址LAA(13)与已开启实体区块122_(D+1)的地址中心(即, 逻辑存取地址LAA (4))的距离是小于实体区块122-(D+1)的地址半径(即,130个逻辑存取 地址)的,因此,存储器管理单元204会将主机系统1000欲写入的数据写入至实体页地址 PPA(L+2)中。此外,存储器管理单元204会在逻辑页转实体页映射表410中将逻辑页地址 LPA (3)的映射更新为实体页地址PPA (L+2),并且在实体页转逻辑页映射表420中将实体页 地址PPA(L+2)的映射更新为逻辑页地址LPA(3)。图7A与图7B是根据本发明第一实施例所示的对应又一数据写入范例的逻辑页转 实体页映射表及实体页转逻辑页映射表的示意图。请参照图7A与7B,当在图6A与图6B的映射关系下主机系统1000欲写入数据至逻辑页存取地址LAA (518)时,存储器管理单元204会确认逻辑存取地址LAA (518)属于逻辑 页地址LPA(129);判断逻辑存取地址LAA(518)与已开启实体区块122-(D+1)的地址中心 (即,逻辑存取地址LAA(4))之间的距离大于实体区块122-(D+1)的地址半径(即,130个逻 辑存取地址)。因此,在闪存储存装置100中无任何已开启实体区块可在满足公式(1)的情 况下被用来储存欲写入至逻辑页地址LPA(129)的写入数据。在此中,存储器管理单元204 会从备用区304b中提取一个实体区块,例如,具有实体页地址PPA(L+129) PPA(L+256) 的实体区块122- (D+2),并且存储器管理单元204会将主机系统1000欲写入的数据写入至 实体页地址PPA(L+129)中。此外,存储器管理单元204会在逻辑页转实体页映射表410中 将逻辑页地址LPA(129)的映射更新为实体页地址PPA(L+129),并且在实体页转逻辑页映 射表420中将实体页地址PPA(L+129)的映射更新为逻辑页地址LPA(129)。此时,实体区 块122-Φ+2)会成为闪存储存装置100中的另一个已开启实体区块,并且已开启实体区块 122-(D+2)的地址中心被设定为逻辑存取地址LAA(516)。图8A与图8B是根据本发明第一实施例所示的对应再一数据写入范例的逻辑页转 实体页映射表及实体页转逻辑页映射表的示意图。请参照图8A与8B,当在图7A与图7B的状态下主机系统1000欲写入数据至逻辑 存取地址LAA (84) LAA (87)时,存储器管理单元204会确认逻辑存取地址LAA (84)属于逻 辑页地址LPA(21);判断逻辑存取地址LAA(84)与已开启实体区块122-(D+1)的地址中心 (即,逻辑存取地址LAA(4))之间的距离小于实体区块122-(D+1)的地址半径(即,130个逻 辑存取地址),而逻辑存取地址LAA(84)与已开启实体区块122-(D+2)的地址中心(即,逻 辑存取地址LAA(516))之间的距离大于实体区块122-Φ+2)的地址半径(即,130个逻辑存 取地址)。因此,在此中,存储器管理单元204会将主机系统1000欲写入的数据写入至已开 启实体区块122-(D+1)的实体页地址PPA(L+3)中。此外,存储器管理单元204会在逻辑页 转实体页映射表410中将逻辑页地址LPA (21)的映射更新为实体页地址PPA (L+3),并且在 实体页转逻辑页映射表420中将实体页地址PPA (L+3)的映射更新为逻辑页地址LPA (21)。在本实施例中,存储器管理单元204会比对逻辑页转实体页映射表410以及实体 页转逻辑页映射表420中的记录来判断哪些实体页地址为无效的实体页地址与有效的实 体页地址,其中所谓无效的实体页地址是指其中所储存的数据为无效的旧数据,而有效的 实体页地址是指其中所储存的数据是映射目前逻辑页地址的有效数据。例如,以图8A与8B 为例,当欲判断实体页地址PPA(O)是否为有效的实体页地址时,存储器管理单元204会从 实体页转逻辑页映射表420中读出实体页地址PPA (0)是映射逻辑页地址LPA (0),并且依据 逻辑页地址LPA(O)从逻辑页转实体页映射表410读出逻辑页地址LPA(O)是映射实体页地 址PPA(O),因此,存储器管理单元204会判断实体页地址PPA(O)为有效的实体页地址。另 外,当欲判断实体页地址PPA(I)是否为有效的实体页地址时,存储器管理单元204会从实 体页转逻辑页映射表420中读出实体页地址PPA(I)是映射逻辑页地址LPA(I),并且依据逻 辑页地址LPA(I)从逻辑页转实体页映射表410读出逻辑页地址LPA(I)是映射实体页地址 PPA(L+1),因此,存储器管理单元204会判断实体页地址PPA(I)为无效的实体页地址。也 就是说,存储器管理单元204会依据待判断的实体页地址,通过实体页转逻辑页映射表420 与逻辑页转实体页映射表410查询待判断的实体页地址映射的逻辑页地址所映射的实体 页地址,倘若待判断的实体页地址和所查询得到的实体页地址相符时,则此待判断的实体页地址为有效的实体页地址,反之则为无效的实体页地址。值得一提的是,如上所述,在本实施例中,存储器管理单元204最多能使用的已开 启实体区块的数目会受到已开启实体区块数门槛值的限制,因此,当存储器管理单元204 需从备用区304b提取实体区块作为已开启实体区块时,存储器管理单元204会判断目前已 开启实体区块的数目是否小于已开启实体区块数门槛值。特别是,倘若目前已开启实体区 块的数目非小于已开启实体区块数门槛值时,存储器管理单元204会执行数据整理程序以 将其中一个已开启实体区块中未写入数据的实体页地址填满有效数据,并且执行无效数据 抹除程序以将至少一个储存无效数据的实体区块进行抹除,由此将所抹除的实体区块关联 至备用区304b,以释放储存无效数据的实体区块。具体来说,在数据整理程序中,存储器管 理单元204会通过上述比对将其他实体区块中有效的实体页地址内的数据复制到已开启 实体区块中,以使得其中一个已开启实体区块的实体页地址都被写入数据而被关联至数据 区304a。此外,由于闪存芯片106是以实体区块作为抹除的最小单位的,因此,在无效数据 抹除程序中存储器管理单元204会通过上述比对将有效的实体页地址内的数据进行整理 以使数据区304a中的至少一个实体区块的实体页地址中的数据都成为无效数据,由此,仅 储存无效数据的实体区块就可被抹除并被关联至备用区304b。例如,存储器管理单元204 可将一个实体区块中有效的实体页地址内的数据复制到其他实体区块的实体页地址中,并 且对此实体区块进行抹除运作,由此可将零散的有效数据集中并且将存有无效数据的实体 区块释放出来。例如,在进行有效数据整理以释放存有无效数据的实体区块后,存储器管理单元 204会更新实体页转逻辑页映射表420,以将所抹除之实体区块的实体页地址的映射关系 更新为空值(例如,“NULL”)。必须注意的是,在执行数据整理程序与无效数据抹除程序而 搬移有效数据时,存储器管理单元204还会使每一实体区块中所储存得数据所对应的逻辑 页地址尽量满足上述公式(1)的限制。依据上述,当闪存控制器104的主机接口单元206从主机系统1000接收到主机写 入指令与写入数据时,存储器管理单元204会依据欲写入此写入数据的被写入逻辑存取地 址,来判断已开启实体区块之中是否存有在符合公式(1)的限制下可写入此写入数据的至 少一可写入实体区块,其中当存有至少一可写入实体区块时,存储器管理单元204会将此 写入数据写入至这些可写入实体区块的其中之一中;反之,存储器管理单元204会从备用 区304b中提取一个实体区块作为已开启实体区块来写入此写入数据。以下将配合附图详 细描述本发明实施例的数据写入方法。图9是根据本发明第一实施例所示的数据写入方法的流程图。请参照图9,在步骤S901中主机接口单元206经由连接器102从主机系统1000中 接收主机写入指令与写入数据。之后,在步骤S903中存储器管理单元204判断主机写入指 令对应的被写入逻辑页地址(即,主机系统1000欲写入数据的逻辑页地址),并且在步骤 S905中判断已开启实体区块。最后,在步骤S907中存储器管理单元204会依据被写入逻 辑存取地址以及已开启实体区块的地址中心与地址半径来将写入数据写入至闪存芯片106 的实体页地址中。图10是图9的步骤S907的详细步骤。请参照图10,在步骤S1001中存储器管理单元204判断已开启实体区块之中是否存有可写入实体区块,其中此可写入实体区块的地址半径是大于被写入逻辑存取地址的其 中之一与此可写入实体区块的地址中心之间的距离的(即,满足上述公式(1))。倘若在步骤S1001中判断已开启实体区块之中存有可写入实体区块时,则在步骤 S1003中将所接收到的写入数据写入至此可写入实体区块的实体页地址中。接着,在步骤 S1005中存储器管理单元204会更新实体页转逻辑页映射表420与逻辑页转实体页映射表 410中的映射关系(例如,如图8A与8B所示),并且结束图10的流程。值得一提的是,倘若在步骤S1001中判断存有多个可写入实体区块时,存储器管 理单元204可任意选择其中一个可写入实体区块来写入所接收到的写入数据,或者依据被 写入逻辑存取地址与每一可写入实体区块的地址中心之间的距离来选择距离最短的可写 入实体区块来写入所接收到的写入数据。倘若在步骤S1001中判断已开启实体区块之中未存有可写入实体区块时,则在步 骤S1007中存储器管理单元204会判断已开启实体区块的数目是否小于已开启实体区块数 门槛值。在步骤S1007中判断已开启实体区块的数目非小于已开启实体区块数门槛值时, 则在步骤S1009中执行数据整理程序以将已开启实体区块的其中之一关联至数据区30 , 并且在步骤SlOll中执行无效数据抹除程序以抹除数据区30 中的至少一个实体区块及 将所抹除的实体区块关联至备用区304b。之后,在步骤S1013中存储器管理单元204从备用区304b中提取一个实体区块, 并且将写入数据写入至所提取的实体区块的实体页地址中。然后,在步骤S1015中存储器 管理单元204更新所提取的实体区块的地址中心。具体来说,在步骤S1015中存储器管理 单元204会将在步骤SlOll中所提取的实体区块的地址中心设定为步骤S903中所判断的 被写入逻辑页地址中的其中一个逻辑存取地址,且将在步骤SlOll中已抹除实体区块的地 址中心设为空值(例如,“NULL”)。在步骤S1015之后,步骤S1005会被执行并结束图10的 流程。[第二实施例]本发明第二实施例的闪存储存装置与主机系统本质上相同于第一实施例的闪存 储存装置与主机系统,其中差异在于第二实施例的存储器管理单元会将逻辑页地址分组为 多个逻辑页地址群组,并且以逻辑页地址群组为单位来写入来自于主机系统的写入数据。 以下将配合第一实施例的图1A、图ID与图3来描述第二实施例。图11是根据本发明第二实施例所示的逻辑页地址的分组示意图。请参照图11,在本实施例中,存储器管理单元204会将逻辑页地址LPA(O) LPA(L)分组为逻辑页地址群组LPAG(O) LPAG(U),其中每一逻辑页地址群组是由4个逻 辑页地址所组成,然而,必须需了解的是,本发明不限于此。特别是,在本实施例中,存储器管理单元204会以所分组的逻辑页地址群组为 单位来写入数据。具体来说,在主机系统1000仅欲写入数据至逻辑存取地址LAA(4) LAA(7),且逻辑页地址LPA(O) LPA(3)属于同一个逻辑页地址群组LPAG(0)的例子中,存 储器管理单元204会判断逻辑存取地址LAA (4) LAA (7)是属于逻辑页地址LPA (1);依据 实体页转逻辑页映射表420与逻辑页转实体页映射表410从闪存芯片106中读取属于逻辑 页地址LPA(O)、LPA⑵与LPA(3)的数据;并且将来自于主机系统1000的数据和所读取的数据以逻辑页地址群组LPAG(O)为单位写入至闪存芯片106中。图12A与图12B是根据本发明第二实施例所示的对应一数据写入的逻辑页转实体 页映射表及实体页转逻辑页映射表的示意图。请参照图12A与12B,当在图4A与图4B所示的状态下主机系统1000欲写入数据 至逻辑存取地址LAA (4) LAA (7)时,存储器管理单元204会判断主机系统1000仅欲写入 数据至逻辑存取地址LAA (4) LAA (7)所属的逻辑页地址LPA(I),而非整个逻辑页地址群 组。在此中,存储器管理单元204会从实体页地址PPA(O)、实体页地址PPA ( 与实体页地 址PPA (3)中读取属于逻辑页地址LPA(O)、逻辑页地址LPA O)与逻辑页地址LPA (3)的数 据;从备用区304b中提取一个实体区块,例如,具有实体页地址PPA (L+1) PPA(L+128)的 实体区块122-Φ+1);并且将所读取的属于逻辑页地址LPA(O)的数据、主机系统1000欲写 入的属于逻辑页地址LPA(I)的数据、所读取的属于逻辑页地址LPAO)的数据与所读取的 属于逻辑页地址LPA (3)的数据依序地写入至实体页地址PPA (L+1)、实体页地址PPA (L+2)、 实体页地址PPA(L+;3)与实体页地址PPA (L+4)中。此外,存储器管理单元204会在逻辑页转 实体页映射表410中将逻辑页地址LPA(O)的映射更新为实体页地址PPA(L+1);将逻辑页 地址LPA(I)的映射更新为实体页地址PPA(L+2);将逻辑页地址LPA(2)的映射更新为实体 页地址PPA(L+3);以及将逻辑页地址LPA(3)的映射更新为实体页地址PPA(L+4)。并且,存 储器管理单元204会在实体页转逻辑页映射表420中将实体页地址PPA(L+1)的映射更新 为逻辑页地址LPA(O);将实体页地址PPA (L+2)的映射更新为逻辑页地址LPA(1);将实体 页地址PPA (L+3)的映射更新为逻辑页地址LPA (2);以及将实体页地址PPA (L+4)的映射更 新为逻辑页地址LPA (3)。在此中,实体区块122-(D+1)会成为闪存储存装置100中的已开 启实体区块,并且已开启实体区块122-(D+1)的地址中心会被设为逻辑存取地址LAA0)。图13A与图1 是根据本发明第二实施例所示的对应另一数据写入的逻辑页转实 体页映射表及实体页转逻辑页映射表的示意图。请参照图13A与13B,当在图12A与图12B所示的状态下主机系统1000欲写入 数据至逻辑存取地址LAA (516) LAA (519)时,存储器管理单元204会判断逻辑存取地址 LAA (516)与已开启实体区块122-Φ+1)的地址中心(即,逻辑存取地址LAA )的距离 大于实体区块122-(D+1)的地址半径(即,130个逻辑存取地址)。因此,在闪存储存装置 100中无任何已开启实体区块可在满足公式(1)的情况下被用来储存欲写入至逻辑存取地 址LAA(516) LAA(519)的写入数据。此外,存储器管理单元204会判断主机系统1000 仅欲写入数据至逻辑存取地址LAA (516) LAA (519)所属的逻辑页地址LPA (1 ),而非整 个逻辑页地址群组。在此中,存储器管理单元204会从实体页地址PPA(US)、实体页地址 PPA(130)与实体页地址PPA(131)中读取属于逻辑页地址LPA(128)、逻辑页地址LPA(130) 与逻辑页地址LPA(131)的数据;从备用区304b中提取一个实体区块,例如,具有实体页 地址PPA(L+U9) PPA(L+256)的实体区块122_(D+2);并且将所读取的属于逻辑页地址 LPA(128)的数据、主机系统1000欲写入的属于逻辑页地址LPA(U9)的数据、所读取的属 于逻辑页地址LPA (130)的数据与所读取的属于逻辑页地址LPA (131)的数据依序地写入至 实体页地址PPA(L+U9)、实体页地址PPA(L+130)、实体页地址PPA(L+131)与实体页地址 PPA(L+132)中。此时,存储器管理单元204会在逻辑页转实体页映射表410中将逻辑页地 址LPA(US)的映射更新为实体页地址PPA(L+U9);将逻辑页地址LPA(1 )的映射更新为实体页地址PPA(L+130);将逻辑页地址LPA(130)的映射更新为实体页地址PPA(L+131); 以及将逻辑页地址LPA(131)的映射更新为实体页地址PPA(L+132)。并且,存储器管理单 元204会在实体页转逻辑页映射表420中将实体页地址PPA(L+U9)的映射更新为逻辑页 地址LPA(U8);将实体页地址PPA(L+130)的映射更新为逻辑页地址LPA(1 );将实体页 地址PPA(L+131)的映射更新为逻辑页地址LPA (130);以及将实体页地址PPA (L+132)的映 射更新为逻辑页地址LPA(131)。在此中,实体区块122-Φ+2)会成为闪存储存装置100中 的另一已开启实体区块,并且已开启实体区块122-(D+2)的地址中心会被设为逻辑存取地 址 LAA (516)。图14A与图14B是根据本发明第二实施例所示的对应又一数据写入的逻辑页转实 体页映射表及实体页转逻辑页映射表的示意图。请参照图14A与14B,当在图13A与图1 所示的状态下主机系统1000欲写入数据 至逻辑存取地址LAA (80) LAA(%)时,存储器管理单元204会判断逻辑存取地址LAA (80) 与已开启实体区块122-Φ+1)的地址中心(即,逻辑存取地址LAAG))之间的距离小于实 体区块122-(D+1)的地址半径(即,130个逻辑存取地址),而逻辑存取地址LAA(SO)与已 开启实体区块122-(D+2)的地址中心(S卩,逻辑存取地址LAA (516))之间的距离大于实体 区块122-(D+2)的地址半径(即,130个逻辑存取地址)。此外,存储器管理单元204会判 断主机系统1000欲写入数据至整个逻辑页地址群组LPAG ( 。因此,在此中,存储器管理 单元204会将主机系统1000欲写入的属于逻辑页地址LPA00)的数据、属于逻辑页地址 LPA(21)的数据、属于逻辑页地址LPA02)的数据与属于逻辑页地址LPAQ3)的数据依序 地写入至实体页地址PPA (L+5)、实体页地址PPA (L+6)、实体页地址PPA (L+7)与实体页地址 PPA(L+8)中。此外,存储器管理单元204会在逻辑页转实体页映射表410中将逻辑页地址 LPA(20)的映射更新为实体页地址PPA(L+5);将逻辑页地址LPAQl)的映射更新为实体页 地址PPA(L+6);将逻辑页地址LPA 02)的映射更新为实体页地址PPA (L+7);以及将逻辑页 地址LPA03)的映射更新为实体页地址PPA(L+8)。并且,存储器管理单元204会在实体页 转逻辑页映射表420中将实体页地址PPA (L+5)的映射更新为逻辑页地址LPA 00);将实体 页地址PPA(L+6)的映射更新为逻辑页地址LPA;将实体页地址PPA(L+7)的映射更新 为逻辑页地址LPA 02);以及将实体页地址PPA (L+8)的映射更新为逻辑页地址LPA Q3)。图15是根据本发明第二实施例所示的数据写入方法的流程图。请参照图15,在步骤S1501中闪存控制器104的主机接口单元206经由连接器102 从主机系统1000中接收主机写入指令与写入数据。之后,在步骤S1503中存储器管理单元 204判断此主机写入指令对应的被写入逻辑页地址(即,主机系统1000欲写入数据的逻辑 页地址),并且在步骤S1505中判断已开启实体区块。最后,在步骤S1507中存储器管理单 元204会依据被写入逻辑存取地址、已开启实体区块的地址中心与地址半径来以逻辑页地 址群组为单位将写入数据写入至闪存芯片106的实体页地址中。图16是图15的步骤S1507的详细步骤。请参照图16,在步骤S1601中存储器管理单元204判断已开启实体区块之中是否 存有可写入实体区块,其中此可写入实体区块的地址半径是大于被写入逻辑存取地址的其 中之一与此可写入实体区块的地址中心的距离的(即,满足上述公式(1))。倘若在步骤S1601中判断已开启实体区块之中存有可写入实体区块时,则在步骤S1603中存储器管理单元204判断所接收到的写入数据是否对应整个逻辑页地址群组,其 中倘若所接收到的写入数据非对应整个逻辑页地址群组时,则在步骤S1605中存储器管理 单元204会从实体页地址中读取对应的数据,并且在步骤S1607中存储器管理单元204将 所接收到的写入数据和所读取的数据写入至此可写入实体区块的实体页地址中。倘若在步骤S1603中判断所接收到的写入数据是对应整个逻辑页地址群组时,则 在步骤S1609中存储器管理单元204将所接收到的写入数据写入至此可写入实体区块的实 体页地址中。之后,在步骤S1611中存储器管理单元204会更新实体页转逻辑页映射表420与 逻辑页转实体页映射表410中的映射关系(例如,如图14A与14B所示),并且结束图16的 流程。倘若在步骤S1601中判断已开启实体区块之中未存有可写入实体区块时,则在步 骤S1613中存储器管理单元204会判断已开启实体区块的数目是否小于已开启实体区块数 门槛值。在步骤S1613中判断已开启实体区块的数目未小于已开启实体区块数门槛值时, 则在步骤S1615中执行数据整理程序以将已开启实体区块的其中之一关联至数据区30 , 并且在步骤S1617中执行无效数据抹除程序以抹除数据区30 中的至少一个实体区块并 将所抹除的实体区块关联至备用区MOb。然后,在步骤S1619中存储器管理单元204判断所接收到的写入数据是否对应整 个逻辑页地址群组,其中倘若所接收到的写入数据未对应整个逻辑页地址群组时,则在步 骤S1621中存储器管理单元204会从实体页地址中读取对应的数据。之后,在步骤S1623 中存储器管理单元204从备用区304b中提取一个实体区块,并且将所接收到的写入数据和 所读取的数据写入至所提取的实体区块的实体页地址中。倘若在步骤S1619中判断所接收到的写入数据对应整个逻辑页地址群组时,则在 步骤S1625中存储器管理单元204从备用区304b中提取一个实体区块,并且将所接收到的 写入数据写入至所提取的实体区块的实体页地址中。然后,在步骤S1627中存储器管理单元204会更新实体区块的地址中心,并且步骤 S1611会被执行。综上所述,本发明实施例的数据写入方法通过设定实体区块的地址中心与地址半 径以及依据欲写入数据之逻辑存取地址和实体区块的地址中心与地址半径来选择适当的 实体页地址来写入数据,由此使得连续的逻辑页地址的数据能较集中地储存于同一实体区 块内,以致于减少整理实体区块中有效数据与无效数据的时间,并且提升在闪存中写入数 据的速度。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
权利要求
1.一种用于闪存的数据写入方法,用于将来自于一主机系统的数据写入至一闪存芯片 中,其中该闪存芯片包括多个实体区块,该数据写入方法包括配置多个逻辑存取地址;从该主机系统中接收一写入数据,其中该写入数据欲被写入至至少一逻辑存取地址;判断是否存有至少一已开启实体区块;以及当所述实体区块之中无存有该至少一已开启实体区块时,则从所述实体区块之中提取 一实体区块,将该写入数据写入至所提取的实体区块中,并且将该至少一逻辑存取地址的 其中之一设定为所提取的实体区块的一地址中心。
2.根据权利要求1所述的用于闪存的数据写入方法,还包括维护一实体区块地址中心 表来记录所设定的地址中心。
3.根据权利要求1所述的用于闪存的数据写入方法,其中当所述实体区块之中存有该 至少一已开启实体区块时,判断该至少一已开启实体区块之中是否存有至少一可写入实体 区块,其中当该至少一已开启实体区块之中存有该至少一可写入实体区块时,则将该写入数 据写入至该至少一可写入实体区块中,其中该至少一可写入实体区块的一地址半径大于该 至少一逻辑存取地址的其中之一与该至少一可写入实体区块的地址中心之间的一距离。
4.根据权利要求3所述的用于闪存的数据写入方法,当该至少一已开启实体区块之中 无存有该至少一可写入实体区块时,判断该至少一已开启实体区块的数目是否小于一已开 启实体区块数门槛值,其中当该至少一已开启实体区块的数目小于该已开启实体区块数门槛值时,则从所述 实体区块之中提取一实体区块,将该写入数据写入至所提取的实体区块中,并且将该至少 一逻辑存取地址的其中之一设定为所提取的实体区块的地址中心。
5.根据权利要求4所述的用于闪存的数据写入方法,其中当该至少一已开启实体区块 的数目不小于该已开启实体区块数门槛值时,执行一数据整理程序以抹除所述实体区块的 其中之一。
6.根据权利要求1所述的用于闪存的数据写入方法,还包括将所述逻辑存取地址分组为多个逻辑页地址;以及将所述逻辑页地址分组为多个逻辑页地址群组。
7.根据权利要求6所述的用于闪存的数据写入方法,其中将该写入数据写入至所提取 的实体区块中的步骤包括以所述逻辑页地址群组的其中之一为单位将该写入数据写入至该闪存芯片中。
8.根据权利要求7所述的用于闪存的数据写入方法,其中以所述逻辑页地址群组的其 中之一为单位将该写入数据写入至该闪存芯片中的步骤包括判断该写入数据的该至少一逻辑存取地址是否对应整个所述逻辑页地址群组的其中 之一;当该写入数据的该至少一逻辑存取地址是对应整个所述逻辑页地址群组的其中之一 时,则将该写入数据写入至该闪存芯片中;以及当该写入数据的该至少一逻辑存取地址未对应整个所述逻辑页地址群组的其中之一 时,则从所述实体区块中读取对应该至少一逻辑存取地址所属的逻辑页地址群组的其他数据,并且将该写入数据和该其他数据一起写入至该闪存芯片中。
9.一种闪存控制器,用于将来自于一主机系统的数据写入至一闪存芯片中,其中该闪 存芯片包括多个实体区块,该闪存控制器包括一微处理器单元;一闪存接口单元,电性连接至该微处理器单元,用以电性连接至该闪存芯片;一主机接口单元,电性连接至该微处理器单元,用以电性连接至该主机系统;以及一存储器管理单元,电性连接至该微处理器单元,用以配置多个逻辑存取地址,其中该主机接口单元从该主机系统中接收一写入数据,其中该写入数据欲被写入至至 少一逻辑存取地址,其中该存储器管理单元判断是否存有至少一已开启实体区块,其中当所述实体区块之 中无存有该至少一已开启实体区块时,则该存储器管理单元从所述实体区块之中提取一实 体区块,将该写入数据写入至所提取的实体区块中,并且将该至少一逻辑存取地址的其中 之一设定为所提取的实体区块的一地址中心。
10.根据权利要求9所述的闪存控制器,其中该存储器管理单元维护一实体区块地址 中心表来记录所设定的地址中心。
11.根据权利要求9所述的闪存控制器,其中当所述实体区块之中存有该至少一已开 启实体区块时,则该存储器管理单元判断该至少一已开启实体区块之中是否存有至少一可 写入实体区块,其中当该至少一已开启实体区块之中存有该至少一可写入实体区块时,则该存储器管 理单元将该写入数据写入至该至少一可写入实体区块中,其中该至少一可写入实体区块的 一地址半径大于该至少一逻辑存取地址的其中之一与该至少一可写入实体区块的地址中 心之间的一距离。
12.根据权利要求11所述的闪存控制器,其中当该至少一已开启实体区块之中无存有 至少一可写入实体区块时,则该存储器管理单元判断该至少一已开启实体区块的数目是否 小于一已开启实体区块数门槛值,其中当该至少一已开启实体区块的数目小于该已开启实体区块数门槛值时,则该存储 器管理单元从所述实体区块之中提取一实体区块,将该写入数据写入至所提取的实体区块 中,并且将该至少一逻辑存取地址的其中之一设定为所提取的实体区块的地址中心。
13.根据权利要求12所述的闪存控制器,其中当该至少一已开启实体区块的数目不小 于该已开启实体区块数门槛值时,则该存储器管理单元执行一数据整理程序以抹除所述实 体区块的其中之一。
14.根据权利要求9所述的闪存控制器,其中该存储器管理单元将所述逻辑存取地址 分组为多个逻辑页地址,并且将所述逻辑页地址分组为多个逻辑页地址群组。
15.根据权利要求14所述的闪存控制器,其中该存储器管理单元以所述逻辑页地址群 组的其中之一为单位将该写入数据写入至该闪存芯片中。
16.根据权利要求15所述的闪存控制器,其中该存储器管理单元判断该写入数据的该 至少一逻辑存取地址是否对应整个所述逻辑页地址群组的其中之一,其中当该写入数据的该至少一逻辑存取地址是对应整个所述逻辑页地址群组的其中 之一时,则该存储器管理单元将该写入数据写入至该闪存芯片中,其中当该写入数据的该至少一逻辑存取地址未对应整个所述逻辑页地址群组的其中 之一时,则该存储器管理单元从所述实体区块中读取对应该至少一逻辑存取地址所属的逻 辑页地址群组的其他数据,并且将该写入数据和该其他数据一起写入至该闪存芯片中。
17.—种闪存储存系统,包括一闪存芯片,具有多个实体区块;一连接器,用以电性连接至一主机系统;以及一闪存控制器,电性连接至该闪存芯片与该连接器,用以配置多个逻辑存取地址,其中该闪存控制器从该主机系统中接收一写入数据,其中该写入数据欲被写入至至少 一逻辑存取地址,其中该闪存控制器判断是否存有至少一已开启实体区块,其中当所述实体区块之中无 存有该至少一已开启实体区块时,则该闪存控制器从所述实体区块之中提取一实体区块, 将该写入数据写入至所提取的实体区块中,并且将该至少一逻辑存取地址的其中之一设定 为所提取的实体区块的一地址中心。
18.根据权利要求17所述的闪存储存系统,其中该闪存控制器维护一实体区块地址中 心表来记录所设定的地址中心。
19.根据权利要求17所述的闪存储存系统,其中当所述实体区块之中存有该至少一已 开启实体区块时,则该闪存控制器判断该至少一已开启实体区块之中是否存有至少一可写 入实体区块,其中当该至少一已开启实体区块之中存有该至少一可写入实体区块时,则该闪存控制 器将该写入数据写入至该至少一可写入实体区块中,其中该至少一可写入实体区块的一地 址半径大于该至少一逻辑存取地址的其中之一与该至少一可写入实体区块的地址中心之 间的一距离。
20.根据权利要求19所述的闪存储存系统,其中当该至少一已开启实体区块之中无存 有该至少一可写入实体区块时,则该闪存控制器判断该至少一已开启实体区块的数目是否 小于一已开启实体区块数门槛值,其中当该至少一已开启实体区块的数目小于该已开启实体区块数门槛值时,则该闪存 控制器从所述实体区块之中提取一实体区块,将该写入数据写入至所提取的实体区块中, 并且将该至少一逻辑存取地址的其中之一设定为所提取的实体区块的地址中心。
21.根据权利要求20所述的闪存储存系统,其中当该至少一已开启实体区块的数目不 小于该已开启实体区块数门槛值时,则该闪存控制器执行一数据整理程序以抹除所述实体 区块的其中之一。
22.根据权利要求17所述的闪存储存系统,其中该闪存控制器将所述逻辑存取地址分 组为多个逻辑页地址,并且将所述逻辑页地址分组为多个逻辑页地址群组。
23.根据权利要求22所述的闪存储存系统,其中该闪存控制器以所述逻辑页地址群组 的其中之一为单位将该写入数据写入至该闪存芯片中。
24.根据权利要求23所述的闪存储存系统,其中该闪存控制器判断该写入数据的该至 少一逻辑存取地址是否对应整个所述逻辑页地址群组的其中之一,其中当该写入数据的该至少一逻辑存取地址是对应整个所述逻辑页地址群组的其中 之一时,则该闪存控制器将该写入数据写入至该闪存芯片中,其中当该写入数据的该至少一逻辑存取地址未对应整个所述逻辑页地址群组的其中 之一时,则该闪存控制器从所述实体区块中读取对应该至少一逻辑存取地址所属的逻辑页 地址群组的其他数据,并且将该写入数据和该其他数据一起写入至该闪存芯片中。
全文摘要
本发明提供了一种用于闪存的数据写入方法及其控制器与储存系统,用于将来自于主机系统的数据写入至具有多个实体区块的闪存芯片中。本数据写入方法包括配置多个逻辑存取地址及记录实体区块的一地址中心与一地址半径。本数据写入方法也包括接收欲写入至逻辑存取地址的数据;取得实体区块之中的已开启实体区块;及依据欲写入数据的逻辑存取地址和已开启实体区块的地址中心与地址半径来将数据写入至闪存芯片中。基此,本数据写入方法可有效地降低每一实体区块中数据的零散程度,减少整理有效数据所需的时间,并且提升写入数据的速度。
文档编号G06F12/06GK102063381SQ200910206460
公开日2011年5月18日 申请日期2009年11月13日 优先权日2009年11月13日
发明者朱健华 申请人:群联电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1