闪存数据的存取方法及其储存系统与控制系统的制作方法

文档序号:6480962阅读:153来源:国知局

专利名称::闪存数据的存取方法及其储存系统与控制系统的制作方法
技术领域
:本发明是有关于一种用于闪存的数据存取方法及使用此方法的闪存储存系统与闪存控制器。
背景技术
:数字相机、手机相机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于闪存(FlashMemory)具有数据非易失性、省电、体积小与无机械结构等的特性,适合可携式应用,最适合使用于这类可携式由电池供电的产品上。固态硬盘就是一种以NAND闪存作为储存媒体的储存装置。—般来说,闪存储存系统的闪存芯片(chip)会划分为多个实体区块,其中实体区块更划分为多个页,而实体区块是闪存的抹除单位并且页是闪存的写入单位。由于在程序化闪存的记忆单元时,仅能执行单向的程序化(即,仅能将记忆单元的值由1程序化为0),因此无法对已程序化的页(B卩,存有旧数据的页)直接进行写入,而是必须先将此页抹除后方可重新程序化。特别是,由于闪存的抹除是以实体区块为单位,因此当欲将存有旧数据的页执行抹除运作时,必须对此页所属的整个实体区块进行抹除。因此,传统上闪存的写入机制会以实体区块为基础来进行。例如,在传统写入方法中会将此些实体区块会界定为数据区(dataarea)与备用区(sparearea),其中归类为数据区的实体区块中会储存由写入指令所写入的有效数据,而备用区中的实体区块是用以在执行写入指令时替换数据区中的实体区块。具体来说,当闪存储存系统接受到主机系统的写入指令而欲对数据区的实体区块进行写入时,闪存储存系统会从备用区中提取实体区块并且将在数据区中欲更新的实体区块中的有效旧数据与欲写入的新数据写入至从备用区中提取的实体区块并且将已写入新数据的实体区块关联为数据区,并且将原本数据区的实体区块进行抹除并关联为备用区。为了能够让主机系统能够顺利地存取以轮替方式储存数据的实体区块,闪存储存系统会配置逻辑区块以供主机系统进行存取,其中逻辑区块是根据实体区块以一个或多个实体区块的大小来配置。也就是说,闪存储存系统会建立逻辑区块-实体区块对映表(logicalblock-physicalblockmappingtable),并且在此表中记录与更新逻辑区块与数据区的实体区块之间的对映关系来反映实体区块的轮替,所以主机系统仅需要针对所提供逻辑区块进行存取而闪存储存系统会依据逻辑区块_实体区块对映表来对所对映的实体区块进行实际地读取或写入数据。因此当主机系统仅更新一个逻辑区块中的一部分数据时,上述数据存取方法除了写入新数据的动作之外还必须包括搬移实体区块内的有效旧数据的动作。特别是,当更新的数据量越小,致使所需要搬移的有效旧数据量越多时,完成上述写入动作的所需时间会大幅的增加。特别是,目前计算机发展的趋势已逐渐将闪存(即,固态硬盘)作为计算机系统的主硬盘,同时计算机操作系统具有频繁地更新少量数据的特性,因此闪存芯片的写入速度将严重影响整体计算机系统的运作效率。因此,有需要发展一套可减少数据搬移的数据存取方法,以提升写入数据至闪存的速度。
发明内容本发明提供一种数据存取方法,其能够在写入数据至闪存芯片时减少数据搬移动作,进而提升闪存的数据写入速度。本发明提供一种控制器系统,其能够在写入数据至闪存芯片时减少数据搬移动作,进而提升闪存的数据写入速度。本发明提供一种闪存储存系统,其在写入数据时可减少数据搬移动作,进而提升闪存的数据写入速度。本发明提出一种数据存取方法,其是由一闪存控制器执行以在至少一闪存芯片的多个实体区块的多个实体页地址(physicalpageaddress)中写入数据。此数据存取方法包括提供主机系统多个逻辑页地址(logicalpageaddress),建立逻辑页转实体页对映表(logicalpagetophysicalpagemappingtable)以分另U土也记录逻车茸页t也址所X寸映的实体页地址,以及建立实体页转逻辑页对映表(physicalpagetologicalpagem即pingtable)以分别地记录实体页地址所对映的逻辑页地址。此数据存取方法也包括从此主机系统接收一欲写入数据及一欲写入逻辑页地址;写入此欲写入数据于一实体页地址;在上述逻辑页转实体页对映表中更新此欲写入逻辑页地址是对映写入此数据的实体页地址;并且在上述实体页转逻辑页对映表中更新写入此欲写入数据的实体页地址是对映此欲写入逻辑页地址。此数据存取方法亦包括比对逻辑页转实体页对映表与实体页转逻辑页对映表来判断已写入数据的实体页地址之中无效的实体页地址与有效的实体页地址。在本发明的一实施例中,上述的数据存取方法更包括建立实体区块无效页地址计数表以记录每一实体区块中无效的实体页地址的数目,以及在此实体区块无效页地址计数表中更新在上述欲写入逻辑页地址原始对映的实体页地址中无效的实体页地址的数目。在本发明的一实施例中,上述的数据存取方法更包括建立实体区块有效页地址计数表以记录每一实体区块中有效的实体页地址的数目,以及在此实体区块有效页地址计数表中更新在上述欲写入逻辑页地址原始对映的实体页地址中有效的实体页地址的数目。在本发明的一实施例中,上述的数据存取方法更包括判断未写入数据的该些实体区块的数目是否少于一无数据实体区块数门槛值,其中当未写入数据的实体区块的数目少于此无数据实体区块数门槛值时,则执行一无效数据抹除程序,其中此无效数据抹除程序包括依据上述实体区块无效页地址计数表从已写入数据的实体区块之中选择至少一第一实体区块;从未写入数据的实体区块之中选择至少一第二实体区块;将此第一实体区块中有效的实体页地址中的数据复制至属于第二实体区块的实体页地址中;更新上述逻辑页转实体页对映表、实体页转逻辑页对映表与实体区块无效页地址计数表;以及抹除此第一实体区块。在本发明的一实施例中,其中在已写入数据的实体区块之中上述第一实体区块存有最少数目的有效的实体页地址。在本发明的一实施例中,上述的数据存取方法更包括建立一无数据实体区块管理表,以记录未写入数据的实体区块。在本发明的一实施例中,上述的比对该逻辑页转实体页对映表与该实体页转逻辑页对映表判断已写入数据的该些实体页地址之中无效的该些实体页地址与有效的该些实体页地址的步骤包括从实体页面地址之中选择一待判断实体页地址;依据实体页转逻辑页对映表查询待判断实体页地址对映的逻辑页地址;依据逻辑页转实体页对映表查询所对映的逻辑页地址对映的实体页地址;判断所查询的实体页地址是否相同于待测实体页地址。在此判断中倘若所查询的实体页地址相同于待测实体页地址,则待判断实体页地址为有效,并且倘若所查询的实体页地址不同于待测实体页地址,则待判断实体页地址为无效。在本发明的一实施例中,上述的数据存取方法更包括依据上述实体区块无效页地址计数表判断在已写入数据的实体区块之中至少一第一实体区块内无效的实体页地址占其所有实体页地址的比例是否超过一无效实体页地址门槛值,其中当此第一实体区块内无效的实体页地址占其所有实体页地址的比例超过此无效实体页地址门槛值时,则执行一无效数据抹除程序,其中此无效数据抹除程序包括从未写入数据的实体区块之中选择至少一第二实体区块;将此第一实体区块中有效的该些实体页地址中的数据复制至属于此第二实体区块的实体页地址中;更新上述逻辑页转实体页对映表、实体页转逻辑页对映表与实体区块无效页地址计数表;以及抹除此第一实体区块。在本发明的一实施例中,上述的数据存取方法更包括依据上述实体区块无效页地址计数表判断在已写入数据的实体区块之中至少一第一实体区块内是否无任何有效的该些实体页地址,其中当此第一实体区块内无有效的实体页地址时,则抹除第一实体区块并且更新上述实体区块无效页地址计数表。在本发明的一实施例中,上述的数据存取方法更包括建立一可写入实体页指针,以标记下一个可写入的实体页地址。本发明提出一种控制器系统,适用在至少一闪存芯片的多个实体区块的多个实体页地址中写入数据,此控制器系统包括微处理器单元、用以连接主机系统的主机接口单元、用以连接闪存芯片的闪存接口单元,用以暂存数据的缓冲存储器、逻辑页转实体页对映表、实体页转逻辑页对映表以及页管理模块。微处理器单元用以从主机系统接收一欲写入数据及一欲写入逻辑页地址,逻辑页转实体页对映表是用以记录逻辑页地址所对映的实体页地址,而实体页转逻辑页对映表是用以记录实体页地址所对映的逻辑页地址。页管理模块用以写入此欲写入数据于一实体页地址,在上述逻辑页转实体页对映表中更新此欲写入逻辑页地址是对映写入此数据的实体页地址,并且在上述实体页转逻辑页对映表中更新写入此欲写入数据的实体页地址是对映此欲写入逻辑页地址。此外,页管理模块会比对逻辑页转实体页对映表与实体页转逻辑页对映表判断已写入数据的实体页地址之中无效的实体页地址与有效的实体页地址。在本发明的一实施例中,上述的控制器系统更包括一实体区块无效页地址计数表,用以记录每一实体区块中无效的实体页地址的数目,其中页管理模块更用以在此实体区块无效页地址计数表中更新在上述欲写入逻辑页地址原始对映的实体页地址中无效的实体页地址的数目。在本发明的一实施例中,上述的控制器系统更包括一实体区块有效页地址计数表,用以记录每一实体区块中有效的实体页地址的数目,其中页管理模块更用以在此实体区块有效页地址计数表中更新在上述欲写入逻辑页地址原始对映的实体页地址中有效的实体页地址的数目。在本发明的一实施例中,上述的页管理模块更用以判断未写入数据的实体区块的数目是否少于一无数据实体区块数门槛值,其中当未写入数据的该些实体区块的数目少于该无数据实体区块数门槛值时,该页管理模块更用以依据上述实体区块无效页地址计数表从已写入数据的实体区块之中选择至少一第一实体区块,从未写入数据的实体区块之中选择至少一第二实体区块,将此第一实体区块中有效的实体页地址中的数据复制至属于此第二实体区块的实体页地址中,更新上述逻辑页转实体页对映表、实体页转逻辑页对映表与实体区块无效页地址计数表,并且抹除此第一实体区块。在本发明的一实施例中,在已写入数据的该些实体区块之中上述的第一实体区块与第二实体区块存有最少数目的有效的实体页地址。在本发明的一实施例中,上述的控制器系统更包括一无数据实体区块管理表,用以记录未写入数据的实体区块。在本发明的一实施例中,上述的页管理模块是通过从实体页面地址的中选择一待判断实体页地址,依据上述实体页转逻辑页对映表查询此待判断实体页地址对映的逻辑页地址,依据此逻辑页转实体页对映表查询所对映的逻辑页地址对映的实体页地址,以及判断所查询的实体页地址是否相同于此待测实体页地址来判断无效的实体页地址与有效的实体页地址,其中倘若所查询的实体页地址相同于此待测实体页地址,则此待判断实体页地址为有效,并且倘若所查询的实体页地址不同于此待测实体页地址,则此待判断实体页地址为无效。在本发明的一实施例中,上述的页管理模块更用以依据上述实体区块无效页地址计数表来判断在已写入数据的实体区块之中至少一第一实体区块内无效的实体页地址占其所有实体页地址的比例是否超过一无效实体页地址门槛值,其中当此第一实体区块内无效的该些实体页地址占其所有该些实体页地址的比例超过该无效实体页地址门槛值时上述页管理模块更用以从未写入数据的实体区块之中选择至少一第二实体区块,将此第一实体区块中有效的实体页地址中的数据复制至属于此第二实体区块的实体页地址中,更新上述逻辑页转实体页对映表、实体页转逻辑页对映表与实体区块无效页地址计数表,并且抹除此第一实体区块。在本发明的一实施例中,上述的页管理模块更用以依据上述实体区块无效页地址计数表来判断在已写入数据的该些实体区块之中至少一第一实体区块内是否无任何有效的该些实体页地址,其中当此第一实体区块内无有效的该些实体页地址时上述页管理模块更用以抹除此第一实体区块并且更新上述实体区块无效页地址计数表。在本发明的一实施例中,上述的控制器系统更包括一可写入实体页指针,用以标记下一个可写入的实体页地址。本发明提出一种闪存储存系统,其包括属于多个实体区块的多个实体页地址、用以连接主机系统的连接器、电性连接至实体页地址与此连接器的闪存控制器、逻辑页转实体页对映表以及实体页转逻辑页对映表。逻辑页转实体页对映表是用以记录逻辑页地址所对映的实体页地址,而实体页转逻辑页对映表是用以记录实体页地址所对映的逻辑页地址。闪存控制器用以从此主机系统接收一欲写入数据及一欲写入逻辑页地址。此外,闪存用以写入此欲写入数据于一实体页地址,在上述逻辑页转实体页对映表中更新此欲写入逻辑页地址是对映写入此数据的实体页地址,并且在上述实体页转逻辑页对映表中更新写入此欲写入数据的实体页地址是对映此欲写入逻辑页地址。此外,闪存控制器用以比对逻辑页转实体页对映表与实体页转逻辑页对映表判断已写入数据的实体页地址之中无效的实体页地址与有效的实体页地址。在本发明的一实施例中,上述的闪存储存系统更包括一实体区块无效页地址计数表,用以记录每一实体区块中无效的实体页地址的数目,其中当上述闪存控制器更用以在此实体区块无效页地址计数表中更新在欲写入逻辑页地址原始对映的实体页地址中无效的实体页地址的数目。在本发明的一实施例中,上述的闪存储存系统,更包括一实体区块有效页地址计数表,用以记录每一实体区块中有效的该些实体页地址的数目,其中闪存控制器更用以在此实体区块有效页地址计数表中更新在欲写入逻辑页地址原始对映的实体页地址中有效的实体页地址的数目。在本发明的一实施例中,上述的闪存控制器更以判断未写入数据的实体区块的数目是否少于一无数据实体区块数门槛值,其中当未写入数据的该些实体区块的数目少于该无数据实体区块数门槛值时,闪存控制器更用以依据上述实体区块无效页地址计数表从已写入数据的实体区块之中选择至少一第一实体区块,从未写入数据的实体区块之中选择至少一第二实体区块,将此第一实体区块中有效的实体页地址中的数据复制至属于此第二实体区块的实体页地址中,更新上述逻辑页转实体页对映表、实体页转逻辑页对映表与实体区块无效页地址计数表,并且抹除此第一实体区块。在本发明的一实施例中,上述的闪存控制器是通过从实体页面地址之中选择一待判断实体页地址,依据上述实体页转逻辑页对映表查询此待判断实体页地址对映的逻辑页地址,依据此逻辑页转实体页对映表查询所对映的逻辑页地址对映的实体页地址,以及判断所查询的实体页地址是否相同于此待测实体页地址来判断无效的实体页地址与有效的实体页地址,其中倘若所查询的实体页地址相同于此待测实体页地址,则此待判断实体页地址为有效,并且倘若所查询的实体页地址不同于此待测实体页地址,则此待判断实体页地址为无效。基于上述,本发明使用逻辑页转实体页对映表与实体页转逻辑页对映表来记录逻辑页地址与实体页地址的对映关系,由此可以页为基础对闪存芯片进行写入,可有效地提升闪存储存系统的效能。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。图1是根据本发明一实施例绘示闪存储存系统的概要方块图。图2是根据本发明一范例实施例绘示闪存芯片的概要方块图。图3是根据本发明范例实施例绘示闪存芯片中储存区的概要示意图。图4A图4C是根据本发明一范例实施例绘示逻辑页转实体页对映表及实体页转逻辑页对映表的范例。图5是根据本发明一范例实施例所绘示闪存储存系统的存取运作的流程图。图6是根据本发明另一实施例绘示闪存储存系统的概要方块图。图7是根据本发明一范例实施例绘示实体区块无效页地址计数表的范例。11图8是根据本发明另一范例实施例所绘示闪存储存系统的存取运作的流程图。图9是根据本发明另一范例实施例所绘示闪存储存系统的存取运作的流程图。图10是根据本发明另一范例实施例所绘示闪存统的存取运作的流程图。具体实施例方式图1是根据本发明一实施例绘示闪存储存系统的概要方块图。请参照图1,闪存储存系统100具有连接器110、闪存芯片120、以及包括闪存控制器130、逻辑页转实体页对映表140与实体页转逻辑页对映表150的控制器系统。通常闪存储存系统100会与主机系统200—起使用,以使主机系统200可将数据写入至闪存储存系统100或从闪存储存系统100中读取数据。在本范例实施例中,闪存储存系统100为固态硬盘(SolidStateDrive,SSD)。但必须了解的是,在本发明另一实施例中闪存储存系统100亦可以是存储卡或随身碟。连接器110是电性连接至闪存控制器130,并且用以透过总线300连接主机系统200。在本范例实施例中,连接器110为SATA连接器。然而,必须了解的是本发明不限于此,连接器110亦可以是USB连接器、IEEE1394连接器、PCIExpress连接器、MS连接器、匪C连接器、SD连接器、CF连接器、IDE连接器或其它适合的连接器。闪存芯片120是电性连接至闪存控制器130并且用以储存数据。在本范例实施中闪存芯片120为多层记忆单元(MultiLevelCell,MLC)NAND闪存。然而,必须了解的是,本发明不限于此,在本发明另一实施例中,单层记忆单元(SingleLevelCell,SLC)NAND闪存亦可应用于本发明。图2是根据本发明一范例实施例绘示闪存芯片的概要方块图。必须了解的是,在此描述闪存芯片的运作时以"选择"、"搬移"、"划分"、"替换"、"轮替"、"分组"等词来操作闪存芯片120的实体区块是逻辑上的概念。也就是说,闪存的实体区块的实际位置并未更动,而是逻辑上对闪存的实体区块进行操作。值得一提的是,闪存芯片120的运作(例如,写入、读取、抹除等运作)是由闪存控制器130来控制。请参照图2,闪存芯片120具有多个实体区块(physicalblock)120-0120_N。一般而言,在闪存中,实体区块为抹除的最小单位。亦即,每一实体区块含有最小数目之一并被抹除的记忆单元。在本范例实施例中实体区块120-0120-N分别具有128个页(page),其中页为程序化(program)的最小单元。换言的,页为写入数据或读取数据的最小单元。每一页包括使用者数据区D与冗余区R。使用者数据区D用以储存使用者数据,而冗余区R用以储存系统的数据(例如,ECC码、实体页地址所对映的逻辑页地址等)。在本范例实施例中,使用者数据区D为512字节,而冗余区R为16字节。实体区块120-0120-N会在逻辑上分组为系统区210、储存区220与替代区230。分组为系统区210的实体区块120-0实体区块120-S是用以储存系统数据,此系统数据包括逻辑页转实体页对映表140、实体页转逻辑页对映表150、闪存芯片120的实体区块数、每一实体区块的页地址数、记录逻辑页地址与实体页地址的关系等。分组为储存区220的实体区块120-(S+l)实体区块120-(S+D)是用以储存主机系统200所写入的数据。也就是说,闪存储存系统100会使用分组为储存区220的实体区块120-(S+l)实体区块120-(S+D)来实际地储存主机系统200所写入的数据。分组为替代区230中的实体区块120-(S+D)实体区块120-N是替代实体区块。具体来说,闪存芯片120于出厂时会预留4%的实体区块作为更换使用,也就是说,当储存区220中的实体区块损毁时,预留于替代区230中的实体区块可用以取代损坏的实体区块。因此,倘若当储存区220中的实体区块发生损毁且替代区230中仍存有可用的实体区块时,闪存控制器130可从替代区230中提取可用的实体区块来更换损毁的实体区块。倘若当储存区220中的实体区块发生损毁且替代区230中无可用的实体区块时,闪存储存系统100将会被宣告无法再使用。图3是根据本发明范例实施例绘示闪存芯片中储存区的概要示意图。请参照图3,储存区220的每一实体区块包括127个实体页地址,因此储存区220的实体区块120-(S+1)实体区块120-(S+D)共包括(127XD)个实体页地址,其中实体页地址0实体页地址127属于实体区块120-(S+l),实体页地址128实体页地址254属于实体区块120-(S+2),实体页地址255实体页地址381属于实体区块120-(S+3),...,实体页地址(127(D-l)+l)实体页地址127D属于实体区块120-(S+D)。此外,在本发明范例实施例中,闪存统100100会提供对映储存区220的实体页地址的逻辑页地址0逻辑页地址L给主机系统200以进行存取。在本发明范例实施例中,S、D与L为整数,其是依据闪存芯片120的容量由设计者来设定,一般来说,实体页地址的数目是大于逻辑页地址的数目。请再参照图1,闪存控制器130会执行以硬件型式、软件型式或固件型式实作的多个指令来与连接器110和闪存芯片120—起完成数据的储存、读取与抹除等运作。闪存控制器130包括微处理器单元130a、缓冲存储器130b、主机接口单元130c与闪存块130130d。微处理器单元130a用以控制闪存控制器130的运作,例如与缓冲存储器130b、主机接口单元130c、闪存接口模块130d和页管理模块130e等协同合作以对闪存储存系统100进行写入、读取、抹除等指令。缓冲存储器130b是耦接至微处理器单元130a并且用以暂时地储存系统数据或者主机系统200所读取或写入的数据。在本范例实施例中,缓冲存储器130b为静态随机存取内存(staticrandomaccessmemory,SRAM)。然而,必须了解的是,本发明不限于此,动态随机存取内存(DynamicRandomAccessmemory,DRAM)、磁阻式内存(MagnetoresistiveRandomAccessMemory,M廳)、相变化内存(PhaseChangeRandomAccessMemory,PRAM)或其它适合的内存亦可应用于本发明。主机接口单元130c是耦接至微处理器单元130a并且用以接收与识别主机系统200所传送的指令。也就是,主机系统200所传送的指令与数据会透过主机接口单元130c来传送至微处理器单元130a。在本范例实施例中,主机接口单元130c为SATA接口。然而,必须了解的是本发明不限于此,主机接口单元130c亦可以是USB接口、IEEE1394接口、PCIExpress接口、MS接口、匪C接口、SD接口、CF接口、IDE接口或其它适合的数据传输接口。特别是,主机接口单元130c会与连接器110相对应。也就是,主机接口单元130c必须与连接器110互相搭配。闪存接口模块130d是耦接至微处理器单元130a并且用以存取闪存芯片120。也就是,欲写入至闪存芯片120的数据会经由闪存接口模块130d转换为闪存芯片120所能接受的格式。具体来说,闪存接口模块130d可支持闪存接口信号,例如,闪存接口信号包含芯片使能信号/CE,命令闩锁信号/CLE,地址闩锁信号/ALE,数据读取控制信号/RE,数据写入13控制信号/WE,写入保护信号/WP,芯片状态信号R/B及多个数据输出入信号/10等。页管理模块130e是用以在微处理单元130a单元的控制下管理闪存芯片120。在本发明范例实施例中,页管理模块130e以一固件型式实作在闪存控制器130中。例如,将包括多个程序指令的页管理模块130e烧录至一程序内存(例如,只读存储器(ReadOnlyMemory,ROM))中并且将此程序内存嵌入在闪存控制器130中,其中当闪存储存系统100运作时,微处理器单元130a会从此程序内存中加载页管理模块130e来对闪存芯片120执行抹除、读取、写入等运作。此外,在本发明另一范例实施例中,页管理模块130e亦可以是以软件型式储存于闪存芯片120的特定区域(例如,在闪存芯片120中的系统区210)中,其中当闪存储存系统100运作时,页管理模块130e会被加载至缓冲存储器130b中并且由微处理器单元130a来执行以进行抹除、读取、写入等运作。再者,在本发明另一实施例中,页管理模块130e亦可以一硬件型式(例如,逻辑闸)直接地布局(layout)在闪存控制器130中。此外,虽未绘示于本范例实施例,但闪存控制器130亦可更包括错误校正模块与电源管理模块等用于控制闪存的一般功能模块。逻辑页转实体页对映表140是由微处理器单元130a经由执行页管理模块130e来操作以记录逻辑页地址0逻辑页地址L所对映的实体页地址,而实体页转逻辑页对映表150是由微处理器单元130a经由执行页管理模块130e来操作以记录实体页地址0实体页地址127D所对映的逻辑页地址。例如,逻辑页转实体页对映表140与实体页转逻辑页对映表150是储存在闪存芯片120的系统区210中,并且在闪存储存系统100运作时,逻辑页转实体页对映表140与实体页转逻辑页对映表150会被加载至缓冲存储器130b中并且由页管理模块130e来操作,并且会不定时地被回存至闪存芯片120的系统区210,以避免闪存储存系统100不正常地断电,而遗失其中已更新的内容。具体来说,在本发明范例实施例中,当主机系统200在任意逻辑页地址0逻辑页地址L中写入数据时,微处理器单元130a所闪存控制器130所执行的页管理模块130e的程序指令的程序指令会在实体区块120-(S+1)实体区块120-(S+D)中将数据依序地写入至实体页地址中。具体来说,当页管理模块130e的程序指令的程序指令开始使用实体区块120-(S+1)来储存主机系统200欲写入的数据时,不管主机系统200是写入那个逻辑页地址,页管理模块130e的程序指令的程序指令都会将数据依序地写入至实体页地址0实体页地址127;而当页管理模块130e的程序指令的程序指令开始使用实体区块120-(S+2)来储存主机系统200欲写入的数据时,不管主机系统200是写入那个逻辑页地址,页管理模块130e的程序指令的程序指令都会将数据依序地写入至实体页地址128实体页地址254。也就是说,在写入主机系统200欲写入的数据时,页管理模块130e的码程序指令依序地使用一个实体区块内的实体页地址来写入数据,并且当此实体区块内的实体页地址被使用完后才会再选择另一个无数据的实体区块,并且在新选择的实体区块的实体页地址中继续依序地写入数据。特别是,在页管理模块130e的程序指令将数据写入至实体页地址后,页管理模块130e的程序指令会更新逻辑页转实体页对映表140与实体页转逻辑页对映表150以正确地记录逻辑页地址与实体页地址的对映关系。值得一提的是,在本发明一范例实施例中,在页管理模块130e中更包括一可写入实体页指针(AvailablePhysicalPagePointer),用以指示下一个可写入的实体页地址,基此,当闪存控制器130执行页管理模块130e的程序指令来写入主机系统200欲写入的数据时,可依据可写入实体页指针的标记依序地将数据写入至闪存芯片120的实体页地址中。此外,值得说明的是,在另一实施例中,当闪存芯片120为多层记忆单元(MultilevelCell,MLC)NAND闪存芯片,且写入方式是指定写入实体区块中的写入速度较同一实体区块中的上页(u卯erpage)快的下页(lowerpage)时,由于该等下页的实体页地址并非连续,故页管理模块130e的程序指令会依据该实体区块中的下页的实体页地址,由小至大地写入数据,而该可写入实体页指针也会依据下页的实体页地址由小至大的指示下一个可写入的实体页地址。此外,当此实体页指针欲从一实体区块改指向另一实体区块时,可在无数据状态的实体区块之中依该等实体区块被抹除的次序选择最早被抹除的实体区块的最小实体页地址为下一欲写入数据的实体页地址,其中该等实体区块被抹除的次序可由一区块抹除次序记录(未绘示)得知。图4A图4C是根据本发明一范例实施例绘示逻辑页转实体页对映表及实体页转逻辑页对映表的范例。请参照图4A,假设逻辑页地址0逻辑页地址L是分别地对映实体页地址0实体页地址L,也就是,实体页地址0实体页地址L是分别储存主机系统200在逻辑页地址0逻辑页地址L中写入的数据。因此,逻辑页转实体页对映表140以及实体页转逻辑页对映表150会记录此些对映关系,并且此时可写入实体页指针会指向实体页地址(L+l)。倘若主机系统200欲写入数据至逻辑页地址1时,页管理模块130e的程序指令会依据可写入实体页指针将主机系统200欲写入的数据写入至实体页地址(L+l)中,并且将可写入实体页指针改为指向实体页地址(L+2)。此时,页管理模块130e的程序指令会在逻辑页转实体页对映表140中将逻辑页地址1的对映更新为实体页地址(L+l),并且在实体页转逻辑页对映表150中将实体页地址(L+l)的对映更新为逻辑页地址1(如图4B所示)。接着,倘若主机系统200欲写入数据至逻辑页地址129时,页管理模块130e的程序指令会依据可写入实体页指针将主机系统200欲写入的数据写入至实体页地址(L+2)中,并且将可写入实体页指针改为指向实体页地址(L+3)。此时,页管理模块130e的程序指令会在逻辑页转实体页对映表140中将逻辑页地址129的对映更新为实体页地址(L+2),并且在实体页转逻辑页对映表150中将实体页地址(L+2)的对映更新为逻辑页地址129(如图4C所示)。图5是根据本发明一范例实施例所绘示闪存储存系统100的存取运作的流程图。请参照图5,当闪存储存系统100与主机系统200连接并激活时,在步骤S501中会提供多个逻辑页地址以供主机系统200存取。接着,在步骤S503中会建立逻辑页转实体页对映表140与实体页转逻辑页对映表150。之后,在步骤S505中会待命并且判断所接收的指令。倘若在步骤S505中接收到读取指令时,则在步骤S507中会根据欲读取的逻辑页地址从逻辑页转实体页对映表140中读出对映的实体页地址,并且在步骤S509中从对映的15实体页地址读取数据并且将此数据传送给主机系统。之后,返回步骤S505待命。例如,当在闪存芯片140的储存区220是处于图4的(b)的状态并且主机系统200欲读取逻辑页地址1的数据时,页管理模块130e的程序指令会从逻辑页转实体页对映表140中读出对映逻辑页地址1的实体页地址为实体页地址(L+l),并且从实体页地址(L+l)中读取数据并将数据传送给主机系统200。倘若在步骤S505中接收到写入指令时,则在步骤S511中会将数据写入至可写入实体页指针所指向的实体页地址。然后,在步骤S513中会在逻辑页转实体页对映表140中将欲写入数据的逻辑页地址所对映的实体页地址更新为可写入实体页指针所指向的实体页地址。接着,在步骤S515中在实体页转逻辑页对映表150中更新写入此数据的实体页地址所对映的逻辑页地址,并且在步骤S517中将可写入实体页指针指向下一个可写入的实体页地址。最后,在步骤S519中判断与记录有效实体页地址与无效的实体页地址,之后返回步骤S505。例如,当在闪存芯片140的储存区220是处于图4B的状态并且主机系统200欲写入数据至逻辑页地址129时,页管理模块130e的程序指令会将数据写入至实体页地址(L+2)中并且如图4C所示更新逻辑页转实体页对映表140与实体页转逻辑页对映表150。值得一提的是,在本发明范例实施例中,页管理模块130e的程序指令会通过比对逻辑页转实体页对映表140以及实体页转逻辑页对映表150中的记录来判断哪些实体页地址为无效的实体页地址与有效的实体页地址,其中所谓无效的实体页地址是指其中所储存的数据为无效的旧数据,而有效的实体页地址是指其中所储存的数据是对映目前逻辑页地址的有效数据。例如,以图4C为例,当欲判断实体页地址0是否为有效的实体页地址时,页管理模块130e的程序指令会从实体页转逻辑页对映表150中读出实体页地址0是对映逻辑页地址0,并且依据逻辑页地址0从逻辑页转实体页对映表140读出逻辑页地址0是对映实体页地址0,因此实体页地址0为有效的实体页地址。另外,当欲判断实体页地址1是否为有效的实体页地址时,页管理模块130e的程序指令会从实体页转逻辑页对映表150中读出实体页地址1是对映逻辑页地址1,并且依据逻辑页地址1从逻辑页转实体页对映表140读出逻辑页地址1是对映实体页地址(L+l),因此实体页地址1为无效的实体页地址。类似地,当欲判断实体页地址129是否为有效的实体页地址时,页管理模块130e的程序指令会从实体页转逻辑页对映表150中读出实体页地址129是对映逻辑页地址129,并且依据逻辑页地址129从逻辑页转实体页对映表140读出逻辑页地址129是对映实体页地址(L+2),因此实体页地址129为无效的实体页地址。也就是说,页管理模块130e的程序指令会依据待判断的实体页地址透过实体页转逻辑页对映表150与逻辑页转实体页对映表140查询待判断的实体页地址对映的逻辑页地址所对映的实体页地址,倘若待判断的实体页地址和所查询的实体页地址相符时,则此待判断的实体页地址为有效的实体页地址,反的则为无效的实体页地址。值得一提的是,由于闪存芯片120是以实体区块作为抹除的最小单位,因此页管理模块130e的程序指令可透过上述比对将有效的实体页地址中的数据进行合并以释放无效的实体页地址来写入新的数据。例如,页管理模块130e的程序指令可将至少一个实体区块中有效实体页地址中的数据复制到未写入任何数据的实体区块的实体页地址中,并且将此实体区块进行抹除运作,由此可将分散的有效数据合并并且将无效的实体页地址释放出16来(以下称为无效数据抹除程序)。值得一提的是,在进行有效数据合并以释放无效的实体页地址后,页管理模块130e的程序指令会更新实体页转逻辑页对映表150与逻辑页转实体页对映表140中逻辑页地址与实体页地址的对映关系。在本发明一范例实施例中,控制器系统更包括实体区块无效页地址计数表170(如图6的闪存储存系统100'所示)以记录每一实体区块120-0140-(S+D)中无效的实体页地址的数目,以作为将有效的实体页地址中的数据进行合并以释放无效的实体页地址的依据。类似地,是储存在闪存芯片120的系统区210中,并且在闪存储存系统100运作时,实体区块无效页地址计数表170会被加载至缓冲存储器130b中并且由闪存控制器130执行页管理模块130e的程序指令来操作,并且会不定时地被回存至闪存芯片120的系统区210,以避免闪存储存系统100不正常地断电,而遗失其中已更新的内容。图7是根据本发明一范例实施例绘示实体区块无效页地址计数表的范例,其中实体区块无效页地址计数表170是对应图4的范例。请参照图7的(a)与图4A,在对应图4A所示的状态下,实体区块无效页地址计数表170会记录每一实体区块120-0120-(S+D)的无效实体页地址的计数值为0。请参照图7的(b)与图4B,在对应图4B所示的状态下,由于主机系统200欲写入的逻辑页地址1的数据被写入至实体页地址(L+l),因此页管理模块130e的程序指令会更新逻辑页转实体页对映表140中逻辑页地址1的对映以及实体页转逻辑页对映表150中实体页地址(L+l)的对映。特别是,在页管理模块130e的程序指令更新逻辑页转实体页对映表140之前会读出逻辑页地址1原对映的实体页地址为实体页地址1并且在实体区块无效页地址计数表170中将关于实体页地址1所属的实体区块120-(S+l)的无效实体页地址的计数值加1。类似地,请参照图7的(c)与图4C,在对应图4C所示的状态下,由于主机系统200欲写入的逻辑页地址129的数据被写入至实体页地址(L+2),因此页管理模块130e的程序指令会更新逻辑页转实体页对映表140中逻辑页地址129的对映以及实体页转逻辑页对映表150中实体页地址(L+2)的对映。特别是,在页管理模块130e的程序指令更新逻辑页转实体页对映表140之前会读出逻辑页地址129原对映的实体页地址为实体页地址129并且在实体区块无效页地址计数表170中将关于实体页地址129所属的实体区块120-(S+l)的无效实体页地址的计数值加1。例如,在本发明一范例实施例中,当进行无效数据抹除程序时会依据实体区块无效页地址计数表170选择存有最少数目的有效实体页地址的至少一个实体区块来进行数据合并程序。值得一提的是,上述范例实施例是以建立实体区块无效页地址计数表170来计数实体区块中无效的实体页地址的数目。然而,在本发明另一实施例中,亦可以建立实体区块有效页地址计数表来计数实体区块中有效的实体页地址的数目,以在进行无效数据抹除程序由此选择有效数据数据最少的实体区块来数据合并。此外,在本发明一范例实施例中,控制器系统更新包括无数据实体区块管理表(未绘示)以记录未写入任何数据的实体区块。也就是说,记录在无数据实体区块管理表中的实体区块是已被抹除可供写入数据的实体区块。特别是,页管理模块130e的程序指令可依据无数据实体区块管理表中的信息来更新可写入实体页指针。例如,在可写入实体页指17针已指向实体页地址127D并执行写入指令时,页管理模块130e的程序指令会依据无数据实体区块管理表中可写入实体页指针指向其中一个未写入任何数据的实体区块的第一个实体页地址。特别是,如上所述当进行无效数据抹除程序中需要未写入任何数据的实体区块来写入有效实体页地址中的数据,因此在本发明一范例实施例中,页管理模块130e的程序指令会依据无数据实体区块管理表中判断仅剩1个未写入任何数据的实体区块时,则会进行无效数据抹除程序以释放无效的实体页地址。值得一提的是,本发明不限于在剩l个未写入任何数据的实体区块时进行无效数据抹除。此外,在本发明另一范例实施例中,页管理模块130e的程序指令亦可根据实体区块无效页地址计数表170中的计数值判断当有至少一个实体区块内无效实体页地址的比例超过一无效实体页地址门槛值时,则进行数据合并以释放无效的实体页地址的程序。在此,此无效实体页地址门槛值是可由使用者自行设定,其中当此无效实体页地址门槛值越低时,则执行数据合并程序的频率越高,反之,则越低。在本发明一范例实施例中,此无效实体页地址门槛值是设定为80%。另外,在本发明另一范例实施例中,页管理模块130e的程序指令亦可根据实体区块无效页地址计数表170中的计数值判断当有任一实体区块内无任何有效实体页地址时,则将此无任何有效实体页地址的实体区块执行抹除运作以释放无效的实体页地址,并且将此实体区块记录在无数据实体区块管理表中。图8是根据本发明一范例实施例所绘示闪存储存系统100'的存取运作的流程图。请参照图8,当闪存储存系统100与主机系统200连接并激活时,在步骤S801中会提供多个逻辑页地址以供主机系统200存取。接着,在步骤S803中会建立逻辑页转实体页对映表140、实体页转逻辑页对映表150与实体区块无效页地址计数表170。之后,在步骤S805中会待命并且判断所接收的指令。倘若在步骤S805中接收到读取指令时,则在步骤S807中会根据欲读取的逻辑页地址从逻辑页转实体页对映表140读出对映的实体页地址,并且在步骤S809中从对映的实体页地址读取数据并且将此数据传送给主机系统。之后,返回步骤S805待命。倘若在步骤S805中接收到写入指令时,则在步骤S811中会将数据写入至可写入实体页指针所指向的实体页地址。然后,在步骤S813中会在实体区块无效页地址计数表170中将欲写入数据的逻辑页地址目前所对映的实体区块的无效实体页地址的计数值加1。之后,在步骤S815中会在逻辑页转实体页对映表140中将欲写入数据的逻辑页地址所对映的实体页地址更新为可写入实体页指针所指向的实体页地址。接着,在步骤S817中在实体页转逻辑页对映表150中更新写入此数据的实体页地址所对映的逻辑页地址,并且在步骤S819中将可写入实体页指针指向下一个可写入的实体页地址。特别是在完成写入动作之后,在步骤S821中会判断未写入数据的实体区块的数目是否少于无数据实体区块数门槛值(例如,如上所述,本范例实施例是设定为1)。倘若在步骤S821中判断未写入数据的实体区块少于无数据实体区块数门槛值时,则会执行无效数据抹除程序。例如,在步骤S823中会依据实体区块无效页地址计数表170从已写入数据的实体区块中选择2个实体区块。例如,所选择的2个实体区块是已写入数据的实体区块之中存有最少数目的有效实体页地址的2个实体区块,并且在步骤S825中比对逻辑页转实体页对映表140与实体页转逻辑页对映表150以判断所选择的2个实体区块中的有效实体页地址。然后,在步骤S827中会从闪存芯片120中选择1个未写入数据的实体区块,并且在步骤S829中将在步骤S825中所判断的有效实体页地址内的数据复制到在步骤S827中所选择的实体区块的实体页面地址中。接着,在步骤S831中将步骤S823中所选择的2个实体区块进行抹除运作以释放可用的储存空间。最后,在步骤S833中更新逻辑页转实体页对映表140、实体页转逻辑页对映表150与实体区块无效页地址计数表170,而完成无效数据抹除程序并返回步骤S805待命。必须了解的是,虽然图8是选择已写入数据的2个实体区块以1个未写入数据的实体区块来进行无效数据抹除程序,然而本发明不限于此,当进行无效数据抹除程序时可选择1个或多个已写入数据的实体区块来进行无效数据抹除,并且可选择1个或多个未写入数据的实体区块来储存所合并的有效数据。图9是根据本发明另一范例实施例所绘示闪存储存系统100'的存取运作的流程图。i青参照图9,步骤S901、S903、S905、S907、S909、S911、S913、S915、S917与S919是相同于步骤S801、S803、S805、S807、S809、S811、S813、S815、S817与S819,在此不再赘述。在步骤S921中,会依据实体区块无效页地址计数表170判断是否有实体区块内无效实体页地址的比例超过无效实体页地址门槛值(例如,本范例实施例是设定80%)。倘若在步骤S921中判断有至少1个实体区块内无效实体页地址的比例超过无效实体页地址门槛值时,则会执行一无效数据抹除程序(例如,步骤S923S929)。在步骤S923中会比对逻辑页转实体页对映表140与实体页转逻辑页对映表150来判断此实体区块中的有效实体页地址。然后,在步骤S925中会依据所判断无效实体页地址的比例超过无效实体页地址门槛值的实体区块数目从闪存芯片120中选择至少1个未写入数据的实体区块,并且在步骤S927中将在步骤S923中所判断的有效实体页地址内的数据复制到在步骤S925中所选择的实体区块的实体页面地址中。接着,在步骤S927中将步骤S921中所判断的实体区块进行抹除运作以释放可用的储存空间。最后,在步骤S929中更新逻辑页转实体页对映表140、实体页转逻辑页对映表150与实体区块无效页地址计数表170,而完成无效数据抹除程序并返回步骤S905待命。图10是根据本发明另一范例实施例所绘示闪存储存系统100'的存取运作的流程图。i青参照图IO,步骤S1001、S1003、S1005、S1007、S1009、S1011、S1013、S1015、S1017与S1019是相同于步骤S801、S803、S805、S807、S809、S811、S813、S815、S817与S819,在此不再赘述。在步骤S1021中,会依据实体区块无效页地址计数表170判断是否存有任何其的实体页地址皆为无效的实体区块。倘若在步骤S1021中判断存有实体页地址皆为无效的实体区块时,则在步骤S1023中会将实体页地址皆为无效的实体区块执行抹除运作以释放可用的储存空间。最后,在步骤S1025中更新实体区块无效页地址计数表,而完成数据合并程序并返回步骤S1005待命。19必须了解的是,在上述图5、图8、图9与图IO中虽未绘示结束运作的步骤,然而此领域技术人员可轻易了解在闪存储存系统停止运作此些流程会终止。此外,本范例实施例图5、图8、图9与图IO所述步骤的顺序并非限定本发明,此领域熟知技艺者可根据本发明的精神轻易地以非本范例实施例所述的顺序来实作本发明。综上所述,本发明使用逻辑页转实体页对映表与实体页转逻辑页对映表来记录逻辑页地址与实体页地址的对映关系,由此可以页为基础对闪存芯片进行写入,可有效地提升闪存储存系统的效能。此外,透过比对逻辑页转实体页对映表与实体页转逻辑页对映表即可判定无效的实体页地址与有效的实体页地址而进行数据合并以释放无效的实体页地址。再者,本发明使用实体区块无效页地址计数表来记录每一实体区块内无效实体页地址的数目,由此可快速地判断能够在抹除后释放较多空间的实体区块,以提升闪存储存系统的效能。虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属
技术领域
中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当以权利要求所界定的为准。权利要求一种数据存取方法,其由一闪存控制器执行以在至少一闪存芯片的多个实体区块的多个实体页地址中存取数据,该数据存取方法包括提供多个逻辑页地址,以供一主机系统存取;建立一逻辑页转实体页对映表以分别地记录该些逻辑页地址所对映的该些实体页地址;建立一实体页转逻辑页对映表以分别地记录该些实体页地址所对映的该些逻辑页地址;从该主机系统接收一欲写入数据及一欲写入逻辑页地址,写入该欲写入数据于一实体页地址,并在该逻辑页转实体页对映表中更新该欲写入逻辑页地址是对映写入该数据的实体页地址,并且在该实体页转逻辑页对映表中更新写入该欲写入数据的实体页地址是对映该欲写入逻辑页地址;以及比对该逻辑页转实体页对映表与该实体页转逻辑页对映表判断已写入数据的该些实体页地址之中无效的该些实体页地址与有效的该些实体页地址。2.如权利要求1所述的数据存取方法,其特征在于,更包括建立一实体区块无效页地址计数表以记录每一该些实体区块中无效的该些实体页地址的数目;以及在该实体区块无效页地址计数表中更新在该欲写入逻辑页地址原始对映的实体页地址中无效的该些实体页地址的数目。3.如权利要求1所述的数据存取方法,其特征在于,更包括建立一实体区块有效页地址计数表以记录每一该些实体区块中有效的该些实体页地址的数目;以及在该实体区块有效页地址计数表中更新在该欲写入逻辑页地址原始对映的实体页地址中有效的该些实体页地址的数目。4.如权利要求2所述的数据存取方法,其特征在于,更包括判断未写入数据的该些实体区块的数目是否少于一无数据实体区块数门槛值,其中当未写入数据的该些实体区块的数目少于该无数据实体区块数门槛值时,则执行一无效数据抹除程序,该无效数据抹除程序包括依据该实体区块无效页地址计数表从已写入数据的该些实体区块之中选择至少一第一实体区块;从未写入数据的该些实体区块之中选择至少一第二实体区块;将该至少一第一实体区块中有效的该些实体页地址中的数据复制至属于该至少一第二实体区块的该些实体页地址中;更新该逻辑页转实体页对映表、该实体页转逻辑页对映表与该实体区块无效页地址计数表;以及抹除该至少一第一实体区块。5.如权利要求4所述的数据存取方法,其特征在于,在已写入数据的该些实体区块之中该至少一第一实体区块存有最少数目的有效的该些实体页地址。6.如权利要求4所述的数据存取方法,其特征在于,更包括建立一无数据实体区块管理表,以记录未写入数据的该些实体区块。7.如权利要求1所述的数据存取方法,其特征在于,比对该逻辑页转实体页对映表与该实体页转逻辑页对映表判断已写入数据的该些实体页地址之中无效的该些实体页地址与有效的该些实体页地址的步骤包括从该些实体页面地址之中选择一待判断实体页地址;依据该实体页转逻辑页对映表查询该待判断实体页地址对映的逻辑页地址;依据该逻辑页转实体页对映表查询所对映的逻辑页地址对映的实体页地址;判断所查询的实体页地址是否相同于该待测实体页地址,其中倘若所查询的实体页地址相同于该待测实体页地址,则该待判断实体页地址为有效,并且倘若所查询的实体页地址不同于该待测实体页地址,则该待判断实体页地址为无效。8.如权利要求2所述的数据存取方法,其特征在于,更包括依据该实体区块无效页地址计数表判断在已写入数据的该些实体区块的中至少一第一实体区块内无效的该些实体页地址占其所有该些实体页地址的比例是否超过一无效实体页地址门槛值,其中当该至少一第一实体区块内无效的该些实体页地址占其所有该些实体页地址的比例超过该无效实体页地址门槛值时,则执行一无效数据抹除程序,该无效数据抹除程序包括从未写入数据的该些实体区块之中选择至少一第二实体区块;将该至少一第一实体区块中有效的该些实体页地址中的数据复制至属于该至少一第二实体区块的该些实体页地址中;更新该逻辑页转实体页对映表、该实体页转逻辑页对映表与该实体区块无效页地址计数表;以及抹除该至少一第一实体区块。9.如权利要求2所述的数据存取方法,其特征在于,更包括依据该实体区块无效页地址计数表判断在已写入数据的该些实体区块之中至少一第一实体区块内是否无任何有效的该些实体页地址,其中当该至少一第一实体区块内无有效的该些实体页地址时,则抹除该至少一第一实体区块并且更新该实体区块无效页地址计数表。10.如权利要求1所述的数据存取方法,其特征在于,更包括建立一可写入实体页指针,以标记下一个可写入的该些实体页地址。11.一种控制器系统,适用在至少一闪存芯片的多个实体区块的多个实体页地址中写入数据,该控制器系统包括一主机接口单元,用以连接一主机系统;一微处理器单元,用以从该主机系统接收一欲写入数据及一欲写入逻辑页地址;一闪存接口单元,用以连接该至少一闪存芯片;一缓冲存储器,用以暂存数据;一逻辑页转实体页对映表,用以记录该些逻辑页地址所对映的该些实体页地址;一实体页转逻辑页对映表,用以记录该些实体页地址所对映的该些逻辑页地址;以及一页管理模块,用以写入该欲写入数据于一实体页地址,并在该逻辑页转实体页对映表中更新该欲写入逻辑页地址是对映写入该数据的实体页地址,并且在该实体页转逻辑页对映表中更新写入该欲写入数据的实体页地址是对映该欲写入逻辑页地址,其中该页管理模块比对该逻辑页转实体页对映表与该实体页转逻辑页对映表来判断已写入数据的该些实体页地址之中无效的该些实体页地址与有效的该些实体页地址。12.如权利要求11所述的控制器系统,其特征在于,更包括一实体区块无效页地址计数表,用以记录每一该些实体区块中无效的该些实体页地址的数目,其中该页管理模块更用以在该实体区块无效页地址计数表中更新在该欲写入逻辑页地址原始对映的实体页地址中无效的该些实体页地址的数目。13.如权利要求11所述的控制器系统,其特征在于,更包括一实体区块有效页地址计数表,用以记录每一该些实体区块中有效的该些实体页地址的数目,其中该页管理模块更用以在该实体区块有效页地址计数表中更新在该欲写入逻辑页地址原始对映的实体页地址中有效的该些实体页地址的数目。14.如权利要求12所述的控制器系统,其特征在于,该页管理模块更用以判断未写入数据的该些实体区块的数目是否少于一无数据实体区块数门槛值,其中当未写入数据的该些实体区块的数目少于该无数据实体区块数门槛值时,该页管理模块更用以依据该实体区块无效页地址计数表从已写入数据的该些实体区块之中选择至少一第一实体区块,从未写入数据的该些实体区块之中选择至少一第二实体区块,将该至少一第一实体区块中有效的该些实体页地址中的数据复制至属于该至少一第二实体区块的该些实体页地址中,更新该逻辑页转实体页对映表、该实体页转逻辑页对映表与该实体区块无效页地址计数表,并且抹除该至少一第一实体区块。15.如权利要求14所述的闪存控制器,其特征在于,在已写入数据的该些实体区块之中该至少一第一实体区块存有最少数目的有效的该些实体页地址。16.如权利要求14所述的控制器系统,其特征在于,更包括一无数据实体区块管理表,用以记录未写入数据的该些实体区块。17.如权利要求11所述的闪存控制器,其特征在于,该页管理模块是通过从该些实体页面地址之中选择一待判断实体页地址,依据该实体页转逻辑页对映表查询该待判断实体页地址对映的逻辑页地址,依据该逻辑页转实体页对映表查询所对映的逻辑页地址对映的实体页地址,以及判断所查询的实体页地址是否相同于该待测实体页地址来判断无效的该些实体页地址与有效的该些实体页地址,其中倘若所查询的实体页地址相同于该待测实体页地址,则该待判断实体页地址为有效,并且倘若所查询的实体页地址不同于该待测实体页地址,则该待判断实体页地址为无效。18.如权利要求12所述的控制器系统,其特征在于,该页管理模块更用以依据该实体区块无效页地址计数表判断在已写入数据的该些实体区块之中至少一第一实体区块内无效的该些实体页地址占其所有该些实体页地址的比例是否超过一无效实体页地址门槛值,其中当该至少一第一实体区块内无效的该些实体页地址占其所有该些实体页地址的比例超过该无效实体页地址门槛值时,该页管理模块更用以从未写入数据的该些实体区块之中选择至少一第二实体区块,将该至少一第一实体区块中有效的该些实体页地址中的数据复制至属于该至少一第二实体区块的该些实体页地址中,更新该逻辑页转实体页对映表、该实体页转逻辑页对映表与该实体区块无效页地址计数表,并且抹除该至少一第一实体区块。19.如权利要求12所述的控制器系统,其特征在于,该页管理模块更用以依据该实体区块无效页地址计数表判断在已写入数据的该些实体区块之中至少一第一实体区块内是否无任何有效的该些实体页地址,其中当该至少一第一实体区块内无有效的该些实体页地址时,该页管理模块更用以抹除该至少一第一实体区块并且更新该实体区块无效页地址计数表。20.如权利要求11所述的控制器系统,其特征在于,更包括一可写入实体页指针,用以标记下一个可写入的该些实体页地址。21.—种闪存储存系统,包括多个实体页地址,其中该些实体页地址属于多个实体区块;一连接器,用以连接一主机系统;一逻辑页转实体页对映表,用以记录该些逻辑页地址所对映的该些实体页地址;一实体页转逻辑页对映表,用以记录该些实体页地址所对映的该些逻辑页地址;以及一闪存控制器,电性连接至该些实体页地址与该连接器,并且用以从该主机系统接收一欲写入数据及一欲写入逻辑页地址,其中该闪存控制器更用以写入该欲写入数据于一实体页地址,并在该逻辑页转实体页对映表中更新该欲写入逻辑页地址是对映写入该数据的实体页地址,并且在该实体页转逻辑页对映表中更新写入该欲写入数据的实体页地址是对映该欲写入逻辑页地址,其中该闪存控制器比对该逻辑页转实体页对映表与该实体页转逻辑页对映表来判断已写入数据的该些实体页地址之中无效的该些实体页地址与有效的该些实体页地址。22.如权利要求21所述的闪存储存系统,其特征在于,更包括一实体区块无效页地址计数表,用以记录每一该些实体区块中无效的该些实体页地址的数目,其中该闪存控制器更用以在该实体区块无效页地址计数表中更新在该欲写入逻辑页地址原始对映的实体页地址中无效的该些实体页地址的数目。23.如权利要求21所述的闪存储存系统,其特征在于,更包括一实体区块有效页地址计数表,用以记录每一该些实体区块中有效的该些实体页地址的数目,其中该闪存控制器更用以在该实体区块有效页地址计数表中更新在该欲写入逻辑页地址原始对映的实体页地址中有效的该些实体页地址的数目。24.如权利要求22所述的闪存储存系统,其特征在于,该闪存控制器更用以判断未写入数据的该些实体区块的数目是否少于一无数据实体区块数门槛值,其中当未写入数据的该些实体区块的数目少于该无数据实体区块数门槛值时,该闪存控制器更用以依据该实体区块无效页地址计数表从已写入数据的该些实体区块之中选择至少一第一实体区块,从未写入数据的该些实体区块之中选择至少一第二实体区块,将该至少一第一实体区块中有效的该些实体页地址中的数据复制至属于该至少一第二实体区块的该些实体页地址中,更新该逻辑页转实体页对映表、该实体页转逻辑页对映表与该实体区块无效页地址计数表,并且抹除该至少一第一实体区块。25.如权利要求21所述的闪存储存系统,其特征在于,该闪存控制器是通过从该些实体页面地址之中选择一待判断实体页地址,依据该实体页转逻辑页对映表查询该待判断实体页地址对映的逻辑页地址,依据该逻辑页转实体页对映表查询所对映的逻辑页地址对映的实体页地址,以及判断所查询的实体页地址是否相同于该待测实体页地址来判断无效的该些实体页地址与有效的该些实体页地址,其中倘若所查询的实体页地址相同于该待测实体页地址,则该待判断实体页地址为有效,并且倘若所查询的实体页地址不同于该待测实体页地址,则该待判断实体页地址为无效。全文摘要本发明公开了一种闪存数据的存取方法及其储存系统与控制系统,用以在闪存芯片的多个实体区块的多个实体页地址中写入数据。此数据存取方法包括提供主机系统多个逻辑页地址,建立逻辑页转实体页对映表与实体页转逻辑页对映表以记录逻辑页地址与实体页地址的对映。此数据存取方法也包括当主机系统写入数据至逻辑页地址时,在实体页地址中写入数据,并且更新逻辑页转实体页对映表与实体页转逻辑页对映表。此数据存取方法亦包括比对逻辑页转实体页对映表与实体页转逻辑页对映表来判断已写入数据的实体页地址之中无效的实体页地址与有效的实体页地址。文档编号G06F12/08GK101788955SQ20091000987公开日2010年7月28日申请日期2009年1月23日优先权日2009年1月23日发明者朱健华申请人:群联电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1