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

文档序号:6782980阅读:98来源:国知局

专利名称::用于快闪存储器的数据写入方法、储存系统与控制器的制作方法
技术领域
:本发明是有关于一种数据写入方法,且特别是有关于一种写入数据至多层记忆胞(MultiLevelCell,MLC)与非(NAND)快闪存储器的数据写入方法及使用此方法的储存系统与控制器。
背景技术
:数字相机、手机相机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加,由于快闪存储器(FlashMemory)具有数据非挥发性、省电、体积小与无机械结构等的特性,适合可携式应用,最适合使用于这类可携式由电池供电的产品上。除了可携式产品内建存储器需要之外,对于小型记忆卡与随身盘等外接式产品来说,每个人可能同时拥有多个随身盘与小型记忆卡,所以市场规模较那些设备更大。因此,近年快闪存储器产业成为电子产业中相当热门的一环。随着快闪存储器由单层记忆胞(SingleLevelCell,SLC)NAND快闪存储器发展至MLCNAND快闪存储器,由于MLCNAND快闪存储器物理特性的关系,在编程(programming)部分的页面地址(pageaddress)时电荷较不稳定,并且可能会影响到邻近的页面地址,因此造成MLCNAND快闪存储器虽容量较大,但储存可靠度较差的状况。也就是说,在此次写入指令所写入的页面地址发生编程错误时可能造成先前所写入数据的错误。此外,由于MLCNAND快闪存储器的可储存容量越来越大以逐渐可作为一般硬盘的使用(例如固态硬盘)的发展趋势下,数据的可靠度更成为以快闪存储器为储存媒体的固态硬盘能否成功的关键。为了解决上述问题,有需要发展能够增加快闪存储器存取数据可靠度的一数据写入方法。
发明内容有鉴于此,本发明提供一种数据写入方法,其能够在对MLCNAND快闪存储器发生编程错误时,确保先前写入指令所写入的数据的正确性。此外,本发明提供一种控制器,其使用上述数据写入方法来管理MLCNAND快闪存储器,以在发生编程错误时能够确保先前写入指令所写入的数据的正确性。再者,本发明提供一种储存系统,其使用上述数据写入方法来管理MLCNAND快闪存储器,以在发生编程错误时能够确保先前写入指令所写入的数据的正确性。本发明提出一种数据写入方法,其用以写入数据至MLCNAND快闪存储器,其中此MLCNAND快闪存储器包括多个区块,其中每一区块包括多个页面地址且此些页面地址区分为多个上页地址与写入速度快于上页地址的多个下页地址,此数据写入方法包括接收写入指令与此写入指令欲写入的数据,以及写所对应的下页地址储存先前写入指令所写入的有效数据时则跳过此欲写入的页面地址。在本发明的一实施例中,上述的数据写入方法更包括以未储存数据的下页地址继续写入数据。在本发明的一实施例中,上述的写入数据至区块中的步骤包括(l)从写入指令中获取欲写入数据的页面地址;(2)判断此页面地址是否为区块的下页地址,其中当此页面地址为区块的下页地址时,则进行步骤(4),并且当此页面地址不为区块的下页地址时,则进行步骤(3);(3)判断对应此页面地址的下页地址是否已储存先前写入指令所写入的有效数据,其中当对应此页面地址的下页地址无储存先前写入指令所写入的有效数据时进行步骤(4),并且当对应此页面地址的下页地址已储存先前写入指令所写入的有效数据时则以此页面地址的下一个页面地址作为欲写入数据的页面地址且返回至步骤(2);以及(4)写入数据至欲写入数据的此页面地址中。在本发明的一实施例中,上述的判断此页面地址是否为区块的下页地址的步骤包括依据页面地址查询表来判断此页面地址是否为区块的下页地址。在本发明的一实施例中,上述的数据写入方法更包括当写入数据至此页面地址且发生异常事件时则在重新启动后判断在区块中已写入的数据是否发生损毁。在本发明的一实施例中,上述的数据写入方法更包括当在区块中已写入的数据的至少一部分发生损毁时则将未损毁的数据复制至另一区块中。本发明提出一种控制器,其适用于具有MLCNAND快闪存储器的储存装置,其中MLCNAND快闪存储器具有多个区块,且每一区块包括多个页面地址且此些页面地址区分为多个上页地址与写入速度快于上页地址的多个下页地址,此控制器包括微处理器单元、快闪存储器介面、緩冲存储器与存储器管理模块。快闪存储器介面是耦接至微处理器单元且用以存取上述MLCNAND快闪存储器。緩沖存储器是耦接至微处理器单元且用以暂时地储存数据。存储器管理模块是耦接至微处理器单元且具有可由微处理器单元执行的多个机器指令以对MLCNAND快闪存储器进行多个数据写入步骤,这些数据写入步骤包括接收写入指令与写入指令欲写入的数据以及写入数据至区块中,其中当欲写入指令所写入的有效数据时则跳过此欲写入的页面地址。在本发明的一实施例中,上述的数据写入步骤更包括以未储存数据的下页地址继续写入数据。在本发明的一实施例中,上述的微处理器单元执行上述机器指令以写入数据至区块中的步骤包括(l)从写入指令中获取欲写入数据的页面地址;(2)判断此页面地址是否为区块的下页地址,其中当此页面地址为区块的下页地址时,则进行步骤(4),并且当此页面地址不为区块的下页地址时,则进行步骤(3);(3)判断对应此页面地址的下页地址是否已储存先前写入指令所写入的有效数据,其中当对应该页面地址的下页地址无储存先前写入指令所写入的有效数据时进^^步骤(4),并且当对应此页面地址的下页地址已储存先前写入指令所写入的有效数据时则以此页面地址的下一个页面地址作为欲写入数据的页面地址且返回至步骤(2);以及(4)写入数据至欲写入数据的页面地址中。在本发明的一实施例中,上述的存储器管理模块具有一页面地址查询表,用以记录下页地址与上页地址的对应关系。在本发明的一实施例中,上述的由微处理器单元执行上述机器指令以执行的数据写入步骤更包括当写入数据至此页面地址且发生异常事件时则在重新启动后判断在区块中已写入的数据是否发生损毁。在本发明的一实施例中,上述的微处理器单元执行上述机器指令以执行的数据写入步骤更包括当在区块中已写入的数据的至少一部分发生损毁时则将未损毁的数据复制至另一区块中。在本发明的一实施例中,上述的储存装置为USB随身盘、快闪记忆卡或固态硬盘。本发明提出一种储存系统,其包括MLCMND快闪存储器、传输连接介面与控制器。MLCNAND快闪存储器用以储存数据,其中MLCNAND快闪存储器包括多个区块,每一区块包括多个页面地址且这些页面地址区分为多个上页地址与写入速度快于上页地址的多个下页地址。传输连接介面用以连接一主机。控制器是耦接至MLCNAND快闪存储器与传输连接介面,此控制器会执行一存储器管理模块的多个机器指令以执行多个数据写入步骤,此些数据写入步骤包括接收写入指令与写入指令欲写入的数据以及写入数据至区块中,其中当前写入指令所写入的有效数据时则跳过此欲写入的页面地址。在本发明的一实施例中,上述的数据写入步骤更包括以未储存数据的下页地址继续写入数据。在本发明的一实施例中,上述的控制器执行上述机器指令以写入数据至区块中的步骤包括(1)从写入指令中获取欲写入数据的页面地址;(2)判断此页面地址是否为区块的下页地址,其中当此页面地址为区块的下页地址时,则进行步骤(4),并且当此页面地址不为区块的下页地址时,则进行步骤(3);(3)判断对应此页面地址的下页地址是否已储存先前写入指令所写入的有效数据,其中当对应该页面地址的下页地址无储存先前写入指令所写入的有效数据时进行步骤(4),并且当对应此页面地址的下页地址已储存先前写入指令所写入的有效数据时则以此页面地址的下一个页面地址作为欲写入数据的页面地址且返回至步骤(2);以及(4)写入数据至欲写入数据的页面地址中。在本发明的一实施例中,上述的存储器管理模块具有一页面地址查询表,用以记录下页地址与上页i也址的对应关系。在本发明的一实施例中,上述的由控制器执行上述该些机器指令以执行重新启动后判断在区块中已写入的数据是否发生损毁。在本发明的一实施例中,上述的由该控制器执行上述机器指令以执行的数据写入步骤更包括当在区块中已写入的数据的至少一部分发生损毁时则将未损毁的数据复制至另一区块中。在本发明的一实施例中,上述的存储器管理模块以硬件形式配置在该控制器中。在本发明的一实施例中,上述的存储器管理模块以固件形式储存在MLCMND快闪存储器中。在本发明的一实施例中,上述的存储器管理模块以固件形式储存在控制器的程序存储器中。在本发明的一实施例中,上述的传输连接介面为PCIExpress介面、USB介面、IEEE1394介面、SATA介面、MS介面、固C介面、SD介面、CF介面或IDE介面。本发明所釆用的数据写入方法是仅将数据写入至MLCNAND快闪存储器的下页地址或者无储存先前写入指令所写入的有效数据的下页地址所对应的上页地址中,由此可以避免此次写入指令发生编程错误而影响前次写入指令所写入的数据而造成系统误用错误数据的情况。为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。图1是根据本发明实施例绘示快闪存储器储存系统的概要方块图。图2A到图2C是根据本发明实施例绘示快闪存储器及其运作的详细方块图。图3A是根据本发明实施例绘示MLCNAND快闪存储器两阶段程序的示意图。图3B是根据本发明实施例绘示MLCNAND快闪存储器的区块的页面地址示意图。图4A是根据本发明实施例绘示数据写入方法的流程图。图4B是#4居本发明实施例绘示数据写入异常事件回复程序的流程图。图5(a)-(b)是根据本发明实施例绘示范例区块的写入示意图。主要元件符号说明100:快闪存储器储存系统110a:微处理器单元110:控制器110b:存储器管理模块10110c:快闪存储器介面llOd:緩冲存储器120:传输连接介面130:快闪存储器130-0、130-1、130-2、130-N:物理区块200:主机202:系统区204:数据区206:备用区208:替换区块208S、M、C:区块S401、S403、S405、S407、S409、S411、S413、S415:数据写入步骤。具体实施例方式图1是根据本发明实施例绘示快闪存储器储存系统的概要方块图。请参照图1,快闪存储器储存系统100包括控制器110、传输连接介面120以及快闪存储器130。通常快闪存储器储存系统100会与主机200—起使用,以使主机200可将数据写入至快闪存储器储存系统100或从快闪存储器储存系统100中读取数据。在本实施例中,快闪存储器储存系统120为固态硬盘(SolidStateDrive,SSD)。但必须了解的是,在本发明另一实施例中快闪存储器储存系统120亦可以是记忆卡或随身盘。控制器110会执行以硬件形式或固件形式实作的多个指令以配合传输连接介面120与快闪存储器130以进行数据的储存、读取与抹除等运作。控制器110包括微处理器单元110a、存储器管理模块110b、快闪存储器介面110c与緩冲存储器110d。微处理器单元110a用以与存储器管理模块110b、快闪存储器介面110c与緩冲存储器110d等协同合作以进行快闪存储器储存系统100的各种操作。存储器管理模块11Ob是耦接至微处理器单元110a。存储器管理模块11Ob具有可由微处理器单元llOa执行的多个机器指令以管理快闪存储器130,例如执行平均磨损(wearleveling)功能、坏区块管理、维护映射表(mappingtable)等的机器指令。特别是,在本发明实施例中,存储器管理模块110b包含可完成根据本实施例的数据写入步骤(如图4A与4B所示)的机器指令。具体来说,在本实施例中,存储器管理模块110b是以一固件形式来实作在控制器110中,例如以程序存储器(例如,只读存储器(ReadOnlyMemory,ROM))并将相关机械指令存于其中来实作存储器管理模块110b,其中当快闪存储器ii储存系统100运作时,存储器管理模块110b会被载入至緩沖存储器llOd中以由微处理器单元110a来执行。在本发明另一实施例中,亦可将存储器管理才莫块110b的机械指令以固件形式储存于快闪存储器130的特定区域(例如,下述的系统区)中,同样的当快闪存储器储存系统IOO运作时,存储器管理模块110b会被载入至緩冲存储器110d中以由微处理器单元110a来执行。此外,在本发明另一实施例中存储器管理模块110b亦可以一硬件形式实作在控制器110中。快闪存储器介面110c是耦接至微处理器单元110a并且用以存取快闪存储器130。也就是,主机200欲写入至快闪存储器130的数据会经由快闪存储器介面110c转换为快闪存储器130所能接受的格式。緩冲存储器110d是耦接至微处理器单元110a并且用以暂时地储存系统数据(例如逻辑物理映射表)或者主机200所读取或写入的数据。在本实施例中,緩沖存储器110d为静态随机存取存储器(staticrandomaccessmemory:SRAM)。然而,必须了解的是,本发明不限于此,动态随机存取存储器(DynamicRandomAccessmemory,DRAM)、磁阻式存储器(MagnetoresistiveRandomAccessMemory,MRAM)、相变化存储器(PhaseChangeRandomAccessMemory,PRAM)或其他适合的存储器亦可应用于本发明。此外,虽未绘示于本实施例,但控制器110可更包括错误校正模块与电源管理模块等用于控制快闪存储器的一般功能模块。传输连接介面120用以透过汇流排300连接主机200。在本实施例中,传输连接介面120为PCIExpress介面。然而,必须了解的是本发明不限于此,传输连接介面120亦可以是USB介面、IEEE1394介面、SATA介面、MS介面、MMC介面、SD介面、CF介面、IDE介面或其他适合的数据传输介面。快闪存储器130是耦接至控制器110并且用以储存数据。快闪存储器130通常实质上分割为多个物理区块(physicalblock)130-0至130-N。一般而言,在快闪存储器中物理区块为抹除的最小单位。亦即,每一物理区块含有最小数目的一并被抹除的记忆胞。每一物理区块通常会分割为数个页面地址(page)。页面地址通常为编程(program)的最小单元。但要特别说明的是于有些不同的快闪存储器设计,最小的编程单位也可为一个扇区(sector)。也就是说,一页面地址中有多个扇区并以一扇区为编程的最小单元。换言之,页面地址为写入数据或读取数据的最小单元。每一页面地址通常包括使用者数据区D与冗余区R。使用者数据区用以储存使用者的数据,而冗余区用以储存系统的数据(例如,错误校正码(errorcorrectingcode,ECC))。为对应于磁盘驱动器的扇区(sector)大小,一般而言,使用者数据区D通常为512位元组,而冗余区R通常为16位元组。也就是,一页为一个扇区。然而,亦可以多个扇区形成一页,例如一页包括4个扇区。一般而言,物理区块可由任意数目的页面地址所组成,例如64个页面地址、128个页面地址、256个页面地址等。物理区块130-0至130-N通常也可被分组为数个区域(zone),以区域来管理存储器某种程度上是彼此独立地操作以增加操作执行的平行程度且简化管理的复杂度。以下将根据本发明并配合附图详细说明快闪存储器130的运作。必须了解的是,在以下描述中使用"提取"、"搬移"、"交换"等词来操作快闪存储器130的物理区块是逻辑上的概念。也就是说,快闪存储器区块的实际位置并未更动,而是逻辑上对快闪存储器130的物理区块进行操作。图2A到图2C是根据本发明实施例绘示快闪存储器130及其运作的详细方块图。请参照图2A,在本发明实施例中,为了有效率地编程(即写入与抹除)快闪存储器130,快闪存储器130的物理区块130-1至130-N会在逻辑上分组为一系统区202、一数据区204与一备用区206。一般来说,快闪存储器130中属于数据区204的物理区块会占90%以上。系统区202中的物理区块用以记录系统数据,系统数据例如是关于快闪存储器130的区域数、每一区域的物理区块数、每一物理区块的页面地址数、记录逻辑区块与物理区块映射关系的映射表(mappingtable)等。数据区204中的物理区块用以储存使用者的数据,一般来说就是主机200所操作的逻辑区块地址所对应的区块。备用区206中的物理区块是用以替换数据区204中的物理区块,因此在备用区206中的物理区块为空或可使用的区块,即无记录数据或标记为已没用的无效数据。具体来说,由于若要对已写过数据位置再次写入数据时,必须先执行抹除的动作。然而,如前所述快闪存储器写入单位为页,而抹除单位为区块,因此一个抹除的单位是大于写入的单位。此表示若要执行物理区块的抹除动作时,必须先将欲抹除物理区块中的有效页面地址复制至其它物理区块后才可进行。因此,当欲在数据区204中已写过数据位置的物理区块M中写入新数据时,一般会在备用区206中提取一物理区块S,然后将物理区块M中的有效数据复制至物理区块S且将新数据写入物理区块S后,将物理区块M抹除后搬移至备用区206同时将物理区块S搬移至数据区204。必须了解的是,将物理区块M抹除后搬移至备用区206同时将物理区块S搬移至数据区204是逻辑上将物理区块M关联于备用区206而将物理区块S关联于数据区204。其中此领域技术人员皆能了解数据区204中区块的逻辑关系可由逻辑物理映射表来维护。一般来说,为了更有效率地使用快闪存储器130,区块在逻辑上会更分为替换区块208。图2B是绘示快闪存储器的另一种运作方式,而图2C是绘示图2B的详细运作示意图。请参照图2B与2C,替换区块208是表示用来取代数据区204的物理区块的一暂态区块。更详细而言,当从上述备用区206中提取物理区块C来取代数据区204的物理区块M时,会将新数据入至物理区块C,但不会立刻将物理区块M中的所有有效数据搬移至物理区块C而抹除物理区块M。具体来说,会将物理区块M中欲页面地址之前的有效数据(即页PO与Pl)复制至物理区块C(如图2C的(a)),并且将新数据(即物理区块C的页P2与P3)写入至C区块(如图2C的(b))。此时,将含有部分的有效旧凝:据与所写入新数据的物理区块C暂时地关联为替换区块208。这是因为,物理区块M中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将物理区块M中的所有有效数据搬移至物理区块C可能会造成无谓的搬移。在此案例中,在逻辑区块地址与物理区块地址的映射上会记录多个物理区块地址对应到一个逻辑区块地址的情况,也就是物理区块M与物理区块C的内容整合起来才是所映射逻辑区块的内容。此等母子区块(即,物理区块M与物理区块C)的暂态关系可依据控制器110中緩冲存储器110d的大小而定,在本发明实施例中是以五组来实作。之后,当需要将物理区块M与物理区块C的内容真正合并时,才将物理区块M与物理区块C整并为一区块,由此提升区块的使用效率。例如,如图2C的(c)所示,当进行整并时,物理区块M中剩余的有效凝:据(即页P4-PN)会复制至物理区块C,然后将物理区块M抹除并关联为备用区206,同时,将物理区块C关联为数据区204,由此完成合并。值得一提的是,在如图2C所示的数据写入方法中,由于快闪存储器的编程规格要求必须从每一物理区块的第一页开始写入至最后一页并且在每个位元仅能编程一次(即由仅能"r变为"o")的条件下,一旦存储器物理区块的页面地址写入数据后,若欲更新已写入的数据就必须如图2B所示提取一空物理区块重新进行图2C所示的步骤。因此,当物理区块在未进行图2C的(c)合并动作之前(即处于图2C的(b)所示的暂态),而发生必须更新刚搬移的数据(例如图2C的P0-P1)时,则所搬移的旧数据就必须再搬移一次,此称为混乱(Random)写入模式时。例如,一般在储存装置中会使用文件分配表(FileAllocationTable,FAT)来管理储存々某体,其中FAT数据的存取是非常频繁。因此,当存取FAT表时可能会因为不断更新刚搬移的数据而进入混乱写入模式。在进入上述混乱写入模式时,控制器110的存储器管理模块110b会从备用区206中再提取一物理区块来暂时地写入此类不断更新的数据,以避免在混乱写入模式下不断重复执行图2B与图2C的动作,而造成每次执行写入数据时必须等待存储器管理模块110b搬移数据而使得快闪存储器储存系统装置100的效能降低。此外,在本实施中快闪存储器130为多层记忆胞(MultiLevelCell,MLC)与非(NAND)快闪存储器,而MLCNAND快闪存储器的区块的编程可分为多阶段。例如,以4层记忆胞为例,如图3A所示,物理区块的编程可分为2阶段。第一阶段是下页地址(lowerpage)的写入部分,其物理特性类似于单层记忆胞(SingleLevelCell,SLC)NAND快闪存储器,在完成第一阶段之后才会编程上页地址(upperpage)。在其编程的过程中下页地址的写入速度会快于上页地址。因此,每一区块的页面地址可区分为上页地址与下页地址(如图3B所示的物理区块130-0)。特别是,上页地址与下页地址具有耦合关系。也就是说,在编程上页地址时,若发生异常,可能造成所对应下页地址的不稳定(即数据可能遗失)。这也是MLCNAND快闪存储器的可靠度低于SLCNAND快闪存储器的原因。类似地,在8层记忆胞或16层记忆胞的案例中,记忆胞会包括更多个页面地址并且会以更多阶段来写入。在此,将写入速度最快的页面地址称为下页地址,其他写入速度较慢的页面地址统称为上页地址。例如,上页地址包括具有不同写入速度的多个页。特别是,由于在本发明实施例中快闪存储器130的区块的多个页面地址可如上述区分为上页地址与下页地址,因此在存储器管理^^莫块110b会储存有一页面地址查询表,其中会记录在每一区块中哪些页面地址属于上页地址以15及哪些页面地址属于下页地址。必须了解的是,图3B所示的上页地址与下页地址的配置仅为范例,本发明不限于此。因此,在使用不同上页与下页地址的配置的MLC快闪存储器时可使用上述页面地址查询表来作记录。值得一提的是,在上述快闪存储器储存系统100的架构下,当主机200请求快闪存储器储存系统100的控制器110执行一写入指令时,在控制器110完成数据写入后既使快闪存储器130的物理区块处于上述母子区块的暂态关系或者进入上述混乱写入模式时,控制器110仍会回应主机200已完成数据写入。此时倘若控制器110于执行主机200的下一个写入指令且发生上述因编程上页地址失败而造成其对应下页地址中先前写入指令所写入数据的遗失时,主机200仅知道此次写入指令执行失败而对应地产生相关错误信息或重写动作,然对于先前写入指令所写入的数据会误认为正常。因此,当主机200后续对此页面地址进行存取时会造成读取错误。因此,在上述快闪存储器储存系统100的架构下存储器管理模块110b会执行根据本发明实施例的数据写入步骤来保护数据。图4A是根据本发明实施例绘示数据写入步骤的流程图。图5是根据本发明实施例绘示一快闪存储器130的范例区块的写入示意图,其中图5的(a)表示此区块中左栏部分为属于下页地址的页面地址而右栏属于上页地址的页面地址,并且々H殳在属于下页地址的页面地址0-3以及属于上页地址的页面地址4-5中已储存由先前写入指令写入的有效数据,另外图5的(b)表示此次写入指令所写入的数据。请参照图4A与图5的(b),在步骤S401中控制器IIO会执行存储器管理模块110b的机械指令以从所接收的写入指令中获取欲在快闪存储器130中写入数据的页面地址。例如,所接收到的写入指令中指示欲写入数据至页面地址6-10。在步骤S403中会判断欲写入数据的页面地址是否属于上述所分类的下页地址。具体来说,如上所述本发明实施例的最小编程单位为页面地址,因此控制器110会一个页面地址接着一个页面地址来编程存储器130,并且在每编程一个页面地址时会判断此页面地址是否属于下页地址。例如,依据存储器管理模块110b所储存的页面地址查询表来查询欲写入数据的页面地址是否属于下页地址。倘若在步骤S403中判断欲写入数据的页面地址属于下页地址时,则在步骤S405中会直接将欲写入的数据写入至此页面地址中。例如,当判断写入指令欲写入数据的页面地址6-7时,因为页面地址6-7是属于下页地址,因此会将欲写入的数据直接写入至此页面地址中(如图5(b)所示)。倘若在步骤S403中判断欲写入数据的页面地址不属于下页地址(即属于上页地址时),则在步骤S407中会判断对应欲写入数据的页面地址的下页地址是否已储存先前写入指令所写入的有效数据。倘若在步骤S407中判断对应欲写入数据的页面地址的下页地址无储存先前写入指令所写入的有效数据时,则会进行步骤S405以将欲写入的数据直接写入至此页面地址中。倘若在步骤S407中判断对应欲写入数据的页面地址的下页地址已储存先前写入指令所写入的有效数据时,在步骤S409中会以原先欲写入数据的页面地址的下一个页面地址作为欲写入此数据的页面地址且返回执行步骤S403。也就是说,当判断对应欲写入数据的页面地址的下页地址已储存先前写入指令所写入的有效数据时则会跳过此页面地址,其中所谓跳过此页面地址是表示不在此页面地址上进行写入。如图5(b)所示,例如,当判断写入指令欲写入数据的页面地址8时,因为页面地址8是属于下页地址,因此会判断页面地址8所对应的下页地址(即,页面地址2)是否存有先前写入指令所写入的数据。由于页面地址2存有先前写入指令所写入的有效数据,因此会跳过页面地址8而以页面地址9作为预定写入此数据的页面地址,并且再重新进行页面地址的判断(即,步骤S403)。然而,经过类似判断,页面地址9属于下页地址且其对应的下页地址(即,页面地址3)已存有先前写入指令所写入的有效数据,因此会再跳过页面地址9而以页面地址10作为写入数据的页面地址并且再重新进行页面地址的判断(即,步骤S403)。经过上述判断后页面地址10属于下页地址,因此会将数据写入至页面地址10中。重复上述步骤后,由于跳过页面地址8-9不作写入,因此会以页面地址6-7与10-12来写入此次写入指令^:写入的数据。图4B是根据本发明实施例绘示数据写入步骤中异常事件回复的流程图。请参照图4B,当发生异常事件(例如断电)而重新启动后,在步骤S411中会依据系统数据(例如逻辑物理对应表、母子区块暂态关系表等)回复断电前的区块映射状态。之后,在步骤S413中会判断在此些暂态关系的物理区块(例如,上述的物理区块C或在进入混乱写入时用以暂时写入不断更新的数据的物理区块)的页面地址中是否发生数据损毁。具体来说,控制器110会依据错误校正码来进行数据正确性的4企查。倘若在步骤S413发现在物理区块中有至少一部分页面地址的数据损毁时,则在步骤S415中会将未损毁的数据与其对应母区块(例如,物理区块M)的有效数据一起写入至快闪存储器130的另一区块中,并结束此组母子区块关系。在本实施例的步骤S409中,数据写入步骤会跳过此页面地址并再回至步骤S403来再确认下一个页面地址是否满足可写入的条件。然而,在本发明另的下页地址已储存先前写入指令所写入的有效数据时,数据写入步骤亦可直接以未储存数据的下页地址来继续写入数据。综合上述,本发明是在MLCNAND快闪存储器进行写入时,仅会将数据写入至下页地址或者无储存先前写入指令所写入的有效数据的下页地址所对应的上页地址中,由此可以避免此次写入指令发生错误而影响前次写入指令所写入的数据而造成系统误用错误数据的情况。虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何所属
技术领域
中技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视后附的权利要求书所界定者为准。18权利要求1.一种数据写入方法,其用以写入数据至一多层记忆胞(MultiLevelCell,MLC)与非(NAND)快闪存储器,其中该MLCNAND快闪存储器包括多个区块,其中每一区块包括多个页面地址且该些页面地址区分为多个上页地址与写入速度快于该些上页地址的多个下页地址,该数据写入方法包括接收一写入指令与欲写入的数据;以及写入该数据至该些区块中,其中当欲写入的页面地址为该些上页地址且该欲写入的页面地址所对应的下页地址储存先前写入指令所写入的有效数据时则跳过该欲写入的页面地址。2.如权利要求1所述的数据写入方法,更包括以未储存数据的该些下页地址继续写入该^:据。3.如权利要求1所述的数据写入方法,其中写入该数据至该些区块中的步骤包括(1)从该写入指令中获取^:写入该数据的页面地址;(2)判断该页面地址是否为该些区块的下页地址,其中当该页面地址为该些区块的下页地址时,则进行步骤(4),并且当该页面地址不为该些区块的下页地址时,则进行步骤(3);(3)判断对应该页面地址的下页地址是否已储存先前写入指令所写入的有效数据,其中当对应该页面地址的下页地址无储存先前写入指令所写入的有效数据时进行步骤(4),并且当对应该页面地址的下页地址已储存先前写入指令所写入的有效数据时则以该页面地址的下一个页面地址作为欲写入该数据的页面地址且返回至步骤(2);以及(4)写入该数据至欲写入该数据的该页面地址中。4.如权利要求3所述的数据写入方法,其中判断该页面地址是否为该些区块的下页地址的步骤包括依据一页面地址查询表来判断该页面地址是否为该些区块的下页地址。5.如权利要求3所述的数据写入方法,更包括当写入该数据至该页面地址且发生一异常事件时则在重新启动后判断在该些区块中已写入的数据是否发生损毁。6.如权利要求5所述的数据写入方法,更包括当在该些区块中已写入的数据的至少一部分发生损毁时则将未损毁的数据复制至另一区块中。7.—种控制器,其适用于具有一多层记忆胞(MultiLevelCell,MLC)与非(NAND)快闪存储器的一储存装置,其中该MLCNAND快闪存储器包括多个区块,每一区块包括多个页面地址且该些页面地址区分为多个上页地址与写入速度快于该些上页地址的多个下页地址,该控制器包括一微处理器单元;一快闪存储器介面,耦接至该微处理器单元且用以存取该MLCNAND快闪存储器;一緩冲存储器,耦接至该微处理器单元且用以暂时地储存数据;以及一存储器管理模块,耦接至该微处理器单元且具有可由该微处理器单元执行的多个机器指令以对该MLCNAND快闪存储器进行多个数据写入步骤,该些数据写入步骤包括接收一写入指令与该写入指令欲写入的数据;以及写入该数据至该些区块中,其中当欲写入的页面地址为该些上页地址且该欲写入的页面地址所对应的下页地址储存先前写入指令所写入的有效^t据时则跳过该^i写入的页面地址。8.如权利要求7所述的控制器,其中由该微处理器单元执行该些机器指该数据。9.如权利要求7所述的控制器,其中该微处理器单元执行该些机器指令以写入该数据至该些区块中的步骤包括(1)从该写入指令中获取欲写入该数据的页面地址;(2)判断该页面地址是否为该些区块的下页地址,其中当该页面地址为该些区块的下页地址时,则进行步骤(4),并且当该页面地址不为该些区块的下页地址时,则进行步骤(3);(3)判断对应该页面地址的下页地址是否已储存先前写入指令所写入的有效数据,其中当对应该页面地址的下页地址无储存先前写入指令所写入的有效数据时进行步骤(4),并且当对应该页面地址的下页地址已储存先前写入指令所写入的有效数据时则以该页面地址的下一个页面地址作为欲写入该数据的页面地址且返回至步骤(2);以及(4)写入该数据至欲写入该数据的该页面地址中。10.如权利要求9所述的控制器,其中该存储器管理模块具有一页面地址查询表,用以记录该些下页地址与该些上页地址的对应关系。11.如权利要求9所述的控制器,其中由该微处理器单元执行该些机器指令以执行的该些数据写入步骤更包括当写入该数据至该页面地址且发生一异常事件时则在该储存装置重新启动后判断在该些区块中已写入的数据是否发生损毁。12.如权利要求11所述的控制器,其中由该微处理器单元执行该些机器一部分发生损毁时则将未损毁的凝:据复制至另一区块中。13.如权利要求7所述的控制器,其中该储存装置为一USB随身盘、一快闪记忆卡或一固态硬盘。14.一种储存系统,包括一多层记忆胞(MultiLevelCell,MLC)与非(NAND)快闪存储器,用以储存数据,其中该MLCNAND快闪存储器包括多个区块,每一区块包括多个页面地址且该些页面地址区分为多个上页地址与写入速度快于该些上页地址的多个下页地址;一传输连接介面,用以连接一主机;以及一控制器,耦接至该MLCNAND快闪存储器与该传输连接介面,该控制器会执行一存储器管理模块的多个机器指令以执行多个数据写入步骤,该些数据写入步骤包括接收一写入指令与该写入指令欲写入的数据;以及写入该数据至该些区块中,其中当欲写入的页面地址为该些上页地址且该欲写入的页面地址所对应的下页地址储存先前写入指令所写入的有效数据时则跳过该欲写入的页面地址。15.如权利要求14所迷的储存系统,其中由该控制器执行该些机器指令数据。16.如权利要求14所述的储存系统,其中该控制器执行该些机器指令以写入该数据至该些区块中的步骤包括(1)从该写入指令中获取;&欠写入该数据的页面地址;(2)判断该页面地址是否为该些区块的下页地址,其中当该页面地址为该些区块的下页地址时,则进行步骤(4),并且当该页面地址不为该些区块的下页地址时,则进行步骤(3);(3)判断对应该页面地址的下页地址是否已储存先前写入指令所写入的有效数据,其中当对应该页面地址的下页地址无储存先前写入指令所写入的有效数据时进行步骤(4),并且当对应该页面地址的下页地址已储存先前写入指令所写入的有效数据时则以该页面地址的下一个页面地址作为欲写入该数据的页面地址且返回至步骤(2);以及(4)写入该数据至欲写入该数据的该页面地址中。17.如权利要求16所述的储存系统,其中该存储器管理模块具有一页面地址查询表,用以记录该些下页地址与该些上页地址的对应关系。18.如权利要求16所迷的储存系统,其中由该控制器执行该些机器指令事件时在重新启动后判断在该些区块中已写入的数据是否发生损毁。19.如权利要求18所述的储存系统,其中由该控制器执行该些机器指令分发生损毁时则将未损毁的数据复制至另一区块中。20.如权利要求14所述的储存系统,其中该存储器管理模块以一硬件形式配置在该控制器中。21.如权利要求14所述的储存系统,其中该存储器管理模块以一固件形式储存在MLCNAND快闪存储器中。22.如权利要求14所述的储存系统,其中该存储器管理模块以一固件形式储存在该控制器的一程序存储器中。23.如权利要求14所述的储存系统,其中该传输连接介面为PCIExpress介面、USB介面、IEEE1394介面、SATA介面、MS介面、醒C介面、SD介面、CF介面或IDE介面。全文摘要一种在多层记忆胞(MultiLevelCell,MLC)NAND快闪存储器中写入数据的方法及使用此方法的储存系统与控制器,其中此MLCNAND快闪存储器包括多个区块,其中每一区块包括多个页面地址且这些页面地址区分为多个上页地址与写入速度快于上页地址的多个下页地址,此数据写入方法包括接收写入指令与欲写入的数据,以及写入数据至页面地址中,其中当欲写入的页面地址为上页地址且欲写入的页面地址所对应的下页地址已储存先前写入指令所写入的有效数据时则跳过此欲写入的页面地址。基此,能够在对MLCNAND快闪存储器发生编程错误时,确保先前写入指令所写入的数据的正确性。文档编号G11C16/08GK101625897SQ20081013606公开日2010年1月13日申请日期2008年7月11日优先权日2008年7月11日发明者朱健华申请人:群联电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1