CN101625897A - 用于快闪存储器的数据写入方法、储存系统与控制器 - Google Patents
用于快闪存储器的数据写入方法、储存系统与控制器 Download PDFInfo
- Publication number
- CN101625897A CN101625897A CN200810136061A CN200810136061A CN101625897A CN 101625897 A CN101625897 A CN 101625897A CN 200810136061 A CN200810136061 A CN 200810136061A CN 200810136061 A CN200810136061 A CN 200810136061A CN 101625897 A CN101625897 A CN 101625897A
- Authority
- CN
- China
- Prior art keywords
- page address
- data
- write
- those
- page
- 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.)
- Granted
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种在多层记忆胞(Multi Level Cell,MLC)NAND快闪存储器中写入数据的方法及使用此方法的储存系统与控制器,其中此MLC NAND快闪存储器包括多个区块,其中每一区块包括多个页面地址且这些页面地址区分为多个上页地址与写入速度快于上页地址的多个下页地址,此数据写入方法包括接收写入指令与欲写入的数据,以及写入数据至页面地址中,其中当欲写入的页面地址为上页地址且欲写入的页面地址所对应的下页地址已储存先前写入指令所写入的有效数据时则跳过此欲写入的页面地址。基此,能够在对MLC NAND快闪存储器发生编程错误时,确保先前写入指令所写入的数据的正确性。
Description
技术领域
本发明是有关于一种数据写入方法,且特别是有关于一种写入数据至多层记忆胞(Multi Level Cell,MLC)与非(NAND)快闪存储器的数据写入方法及使用此方法的储存系统与控制器。
背景技术
数字相机、手机相机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加,由于快闪存储器(F1ash Memory)具有数据非挥发性、省电、体积小与无机械结构等的特性,适合可携式应用,最适合使用于这类可携式由电池供电的产品上。除了可携式产品内建存储器需要之外,对于小型记忆卡与随身盘等外接式产品来说,每个人可能同时拥有多个随身盘与小型记忆卡,所以市场规模较那些设备更大。因此,近年快闪存储器产业成为电子产业中相当热门的一环。
随着快闪存储器由单层记忆胞(Single Level Cell,SLC)NAND快闪存储器发展至MLC NAND快闪存储器,由于MLC NAND快闪存储器物理特性的关系,在编程(programming)部分的页面地址(page address)时电荷较不稳定,并且可能会影响到邻近的页面地址,因此造成MLC NAND快闪存储器虽容量较大,但储存可靠度较差的状况。也就是说,在此次写入指令所写入的页面地址发生编程错误时可能造成先前所写入数据的错误。此外,由于MLC NAND快闪存储器的可储存容量越来越大以逐渐可作为一般硬盘的使用(例如固态硬盘)的发展趋势下,数据的可靠度更成为以快闪存储器为储存媒体的固态硬盘能否成功的关键。
为了解决上述问题,有需要发展能够增加快闪存储器存取数据可靠度的一数据写入方法。
发明内容
有鉴于此,本发明提供一种数据写入方法,其能够在对MLC NAND快闪存储器发生编程错误时,确保先前写入指令所写入的数据的正确性。
此外,本发明提供一种控制器,其使用上述数据写入方法来管理MLC NAND快闪存储器,以在发生编程错误时能够确保先前写入指令所写入的数据的正确性。
再者,本发明提供一种储存系统,其使用上述数据写入方法来管理MLCNAND快闪存储器,以在发生编程错误时能够确保先前写入指令所写入的数据的正确性。
本发明提出一种数据写入方法,其用以写入数据至MLC NAND快闪存储器,其中此MLC NAND快闪存储器包括多个区块,其中每一区块包括多个页面地址且此些页面地址区分为多个上页地址与写入速度快于上页地址的多个下页地址,此数据写入方法包括接收写入指令与此写入指令欲写入的数据,以及写入数据至区块中,其中当欲写入的页面地址为上页地址且欲写入的页面地址所对应的下页地址储存先前写入指令所写入的有效数据时则跳过此欲写入的页面地址。
在本发明的一实施例中,上述的数据写入方法更包括以未储存数据的下页地址继续写入数据。
在本发明的一实施例中,上述的写入数据至区块中的步骤包括:(1)从写入指令中获取欲写入数据的页面地址;(2)判断此页面地址是否为区块的下页地址,其中当此页面地址为区块的下页地址时,则进行步骤(4),并且当此页面地址不为区块的下页地址时,则进行步骤(3);(3)判断对应此页面地址的下页地址是否已储存先前写入指令所写入的有效数据,其中当对应此页面地址的下页地址无储存先前写入指令所写入的有效数据时进行步骤(4),并且当对应此页面地址的下页地址已储存先前写入指令所写入的有效数据时则以此页面地址的下一个页面地址作为欲写入数据的页面地址且返回至步骤(2);以及(4)写入数据至欲写入数据的此页面地址中。
在本发明的一实施例中,上述的判断此页面地址是否为区块的下页地址的步骤包括依据页面地址查询表来判断此页面地址是否为区块的下页地址。
在本发明的一实施例中,上述的数据写入方法更包括当写入数据至此页面地址且发生异常事件时则在重新启动后判断在区块中已写入的数据是否发生损毁。
在本发明的一实施例中,上述的数据写入方法更包括当在区块中已写入的数据的至少一部分发生损毁时则将未损毁的数据复制至另一区块中。
本发明提出一种控制器,其适用于具有MLC NAND快闪存储器的储存装置,其中MLC NAND快闪存储器具有多个区块,且每一区块包括多个页面地址且此些页面地址区分为多个上页地址与写入速度快于上页地址的多个下页地址,此控制器包括微处理器单元、快闪存储器介面、缓冲存储器与存储器管理模块。快闪存储器介面是耦接至微处理器单元且用以存取上述MLC NAND快闪存储器。缓冲存储器是耦接至微处理器单元且用以暂时地储存数据。存储器管理模块是耦接至微处理器单元且具有可由微处理器单元执行的多个机器指令以对MLC NAND快闪存储器进行多个数据写入步骤,这些数据写入步骤包括接收写入指令与写入指令欲写入的数据以及写入数据至区块中,其中当欲写入的页面地址为上页地址且欲写入的页面地址所对应的下页地址储存先前写入指令所写入的有效数据时则跳过此欲写入的页面地址。
在本发明的一实施例中,上述的数据写入步骤更包括以未储存数据的下页地址继续写入数据。
在本发明的一实施例中,上述的微处理器单元执行上述机器指令以写入数据至区块中的步骤包括:(1)从写入指令中获取欲写入数据的页面地址;(2)判断此页面地址是否为区块的下页地址,其中当此页面地址为区块的下页地址时,则进行步骤(4),并且当此页面地址不为区块的下页地址时,则进行步骤(3);(3)判断对应此页面地址的下页地址是否已储存先前写入指令所写入的有效数据,其中当对应该页面地址的下页地址无储存先前写入指令所写入的有效数据时进行步骤(4),并且当对应此页面地址的下页地址已储存先前写入指令所写入的有效数据时则以此页面地址的下一个页面地址作为欲写入数据的页面地址且返回至步骤(2);以及(4)写入数据至欲写入数据的页面地址中。
在本发明的一实施例中,上述的存储器管理模块具有一页面地址查询表,用以记录下页地址与上页地址的对应关系。
在本发明的一实施例中,上述的由微处理器单元执行上述机器指令以执行的数据写入步骤更包括当写入数据至此页面地址且发生异常事件时则在重新启动后判断在区块中已写入的数据是否发生损毁。
在本发明的一实施例中,上述的微处理器单元执行上述机器指令以执行的数据写入步骤更包括当在区块中已写入的数据的至少一部分发生损毁时则将未损毁的数据复制至另一区块中。
在本发明的一实施例中,上述的储存装置为USB随身盘、快闪记忆卡或固态硬盘。
本发明提出一种储存系统,其包括MLC NAND快闪存储器、传输连接介面与控制器。MLCNAND快闪存储器用以储存数据,其中MLC NAND快闪存储器包括多个区块,每一区块包括多个页面地址且这些页面地址区分为多个上页地址与写入速度快于上页地址的多个下页地址。传输连接介面用以连接一主机。控制器是耦接至MLC NAND快闪存储器与传输连接介面,此控制器会执行一存储器管理模块的多个机器指令以执行多个数据写入步骤,此些数据写入步骤包括接收写入指令与写入指令欲写入的数据以及写入数据至区块中,其中当欲写入的页面地址为上页地址且欲写入的页面地址所对应的下页地址储存先前写入指令所写入的有效数据时则跳过此欲写入的页面地址。
在本发明的一实施例中,上述的数据写入步骤更包括以未储存数据的下页地址继续写入数据。
在本发明的一实施例中,上述的控制器执行上述机器指令以写入数据至区块中的步骤包括(1)从写入指令中获取欲写入数据的页面地址;(2)判断此页面地址是否为区块的下页地址,其中当此页面地址为区块的下页地址时,则进行步骤(4),并且当此页面地址不为区块的下页地址时,则进行步骤(3);(3)判断对应此页面地址的下页地址是否已储存先前写入指令所写入的有效数据,其中当对应该页面地址的下页地址无储存先前写入指令所写入的有效数据时进行步骤(4),并且当对应此页面地址的下页地址已储存先前写入指令所写入的有效数据时则以此页面地址的下一个页面地址作为欲写入数据的页面地址且返回至步骤(2);以及(4)写入数据至欲写入数据的页面地址中。
在本发明的一实施例中,上述的存储器管理模块具有一页面地址查询表,用以记录下页地址与上页地址的对应关系。
在本发明的一实施例中,上述的由控制器执行上述该些机器指令以执行的该些数据写入步骤更包括当写入数据至此页面地址且发生异常事件时则在重新启动后判断在区块中已写入的数据是否发生损毁。
在本发明的一实施例中,上述的由该控制器执行上述机器指令以执行的数据写入步骤更包括当在区块中已写入的数据的至少一部分发生损毁时则将未损毁的数据复制至另一区块中。
在本发明的一实施例中,上述的存储器管理模块以硬件形式配置在该控制器中。
在本发明的一实施例中,上述的存储器管理模块以固件形式储存在MLCNAND快闪存储器中。
在本发明的一实施例中,上述的存储器管理模块以固件形式储存在控制器的程序存储器中。
在本发明的一实施例中,上述的传输连接介面为PCI Express介面、USB介面、IEEE 1394介面、SATA介面、MS介面、MMC介面、SD介面、CF介面或IDE介面。
本发明所采用的数据写入方法是仅将数据写入至MLC NAND快闪存储器的下页地址或者无储存先前写入指令所写入的有效数据的下页地址所对应的上页地址中,由此可以避免此次写入指令发生编程错误而影响前次写入指令所写入的数据而造成系统误用错误数据的情况。
为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。
附图说明
图1是根据本发明实施例绘示快闪存储器储存系统的概要方块图。
图2A到图2C是根据本发明实施例绘示快闪存储器及其运作的详细方块图。
图3A是根据本发明实施例绘示MLC NAND快闪存储器两阶段程序的示意图。
图3B是根据本发明实施例绘示MLC NAND快闪存储器的区块的页面地址示意图。
图4A是根据本发明实施例绘示数据写入方法的流程图。
图4B是根据本发明实施例绘示数据写入异常事件回复程序的流程图。
图5(a)-(b)是根据本发明实施例绘示范例区块的写入示意图。
【主要元件符号说明】
100:快闪存储器储存系统 110:控制器
110a:微处理器单元 110b:存储器管理模块
110c:快闪存储器介面 110d:缓冲存储器
120:传输连接介面 130:快闪存储器
130-0、130-1、130-2、130-N:物理区块
200:主机 202:系统区
204:数据区 206:备用区
208:替换区块208 S、M、C:区块
S401、S403、S405、S407、S409、S411、S413、S415:数据写入步骤。
具体实施方式
图1是根据本发明实施例绘示快闪存储器储存系统的概要方块图。请参照图1,快闪存储器储存系统100包括控制器110、传输连接介面120以及快闪存储器130。
通常快闪存储器储存系统100会与主机200一起使用,以使主机200可将数据写入至快闪存储器储存系统100或从快闪存储器储存系统100中读取数据。在本实施例中,快闪存储器储存系统120为固态硬盘(Solid StateDrive,SSD)。但必须了解的是,在本发明另一实施例中快闪存储器储存系统120亦可以是记忆卡或随身盘。
控制器110会执行以硬件形式或固件形式实作的多个指令以配合传输连接介面120与快闪存储器130以进行数据的储存、读取与抹除等运作。控制器110包括微处理器单元110a、存储器管理模块110b、快闪存储器介面110c与缓冲存储器110d。
微处理器单元110a用以与存储器管理模块110b、快闪存储器介面110c与缓冲存储器110d等协同合作以进行快闪存储器储存系统100的各种操作。
存储器管理模块110b是耦接至微处理器单元110a。存储器管理模块110b具有可由微处理器单元110a执行的多个机器指令以管理快闪存储器130,例如执行平均磨损(wear leveling)功能、坏区块管理、维护映射表(mappingtable)等的机器指令。特别是,在本发明实施例中,存储器管理模块110b包含可完成根据本实施例的数据写入步骤(如图4A与4B所示)的机器指令。具体来说,在本实施例中,存储器管理模块110b是以一固件形式来实作在控制器110中,例如以程序存储器(例如,只读存储器(Read 0nly Memory,ROM))并将相关机械指令存于其中来实作存储器管理模块110b,其中当快闪存储器储存系统100运作时,存储器管理模块110b会被载入至缓冲存储器110d中以由微处理器单元110a来执行。
在本发明另一实施例中,亦可将存储器管理模块110b的机械指令以固件形式储存于快闪存储器130的特定区域(例如,下述的系统区)中,同样的当快闪存储器储存系统100运作时,存储器管理模块110b会被载入至缓冲存储器110d中以由微处理器单元110a来执行。此外,在本发明另一实施例中存储器管理模块110b亦可以一硬件形式实作在控制器110中。
快闪存储器介面110c是耦接至微处理器单元110a并且用以存取快闪存储器130。也就是,主机200欲写入至快闪存储器130的数据会经由快闪存储器介面110c转换为快闪存储器130所能接受的格式。
缓冲存储器110d是耦接至微处理器单元110a并且用以暂时地储存系统数据(例如逻辑物理映射表)或者主机200所读取或写入的数据。在本实施例中,缓冲存储器110d为静态随机存取存储器(static random access memory,SRAM)。然而,必须了解的是,本发明不限于此,动态随机存取存储器(DynamicRandom Access memory,DRAM)、磁阻式存储器(Magnetoresistive RandomAccess Memory,MRAM)、相变化存储器(Phase Change Random Access Memory,PRAM)或其他适合的存储器亦可应用于本发明。
此外,虽未绘示于本实施例,但控制器110可更包括错误校正模块与电源管理模块等用于控制快闪存储器的一般功能模块。
传输连接介面120用以透过汇流排300连接主机200。在本实施例中,传输连接介面120为PCI Express介面。然而,必须了解的是本发明不限于此,传输连接介面120亦可以是USB介面、IEEE 1394介面、SATA介面、MS介面、MMC介面、SD介面、CF介面、IDE介面或其他适合的数据传输介面。
快闪存储器130是耦接至控制器110并且用以储存数据。快闪存储器130通常实质上分割为多个物理区块(physical block)130-0至130-N。一般而言,在快闪存储器中物理区块为抹除的最小单位。亦即,每一物理区块含有最小数目的一并被抹除的记忆胞。每一物理区块通常会分割为数个页面地址(page)。页面地址通常为编程(program)的最小单元。但要特别说明的是于有些不同的快闪存储器设计,最小的编程单位也可为一个扇区(sector)。也就是说,一页面地址中有多个扇区并以一扇区为编程的最小单元。换言之,页面地址为写入数据或读取数据的最小单元。每一页面地址通常包括使用者数据区D与冗余区R。使用者数据区用以储存使用者的数据,而冗余区用以储存系统的数据(例如,错误校正码(error correcting code,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的区域数、每一区域的物理区块数、每一物理区块的页面地址数、记录逻辑区块与物理区块映射关系的映射表(mapping table)等。
数据区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中欲页面地址之前的有效数据(即页P0与P1)复制至物理区块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所示的数据写入方法中,由于快闪存储器的编程规格要求必须从每一物理区块的第一页开始写入至最后一页并且在每个位元仅能编程一次(即由仅能“1”变为“0”)的条件下,一旦存储器物理区块的页面地址写入数据后,若欲更新已写入的数据就必须如图2B所示提取一空物理区块重新进行图2C所示的步骤。因此,当物理区块在未进行图2C的(c)合并动作之前(即处于图2C的(b)所示的暂态),而发生必须更新刚搬移的数据(例如图2C的P0-P1)时,则所搬移的旧数据就必须再搬移一次,此称为混乱(Random)写入模式时。例如,一般在储存装置中会使用文件分配表(File Allocation Table,FAT)来管理储存媒体,其中FAT数据的存取是非常频繁。因此,当存取FAT表时可能会因为不断更新刚搬移的数据而进入混乱写入模式。在进入上述混乱写入模式时,控制器110的存储器管理模块110b会从备用区206中再提取一物理区块来暂时地写入此类不断更新的数据,以避免在混乱写入模式下不断重复执行图2B与图2C的动作,而造成每次执行写入数据时必须等待存储器管理模块110b搬移数据而使得快闪存储器储存系统装置100的效能降低。
此外,在本实施中快闪存储器130为多层记忆胞(Multi Level Cell,MLC)与非(NAND)快闪存储器,而MLC NAND快闪存储器的区块的编程可分为多阶段。例如,以4层记忆胞为例,如图3A所示,物理区块的编程可分为2阶段。第一阶段是下页地址(lower page)的写入部分,其物理特性类似于单层记忆胞(Single Level Cell,SLC)NAND快闪存储器,在完成第一阶段之后才会编程上页地址(upper page)。在其编程的过程中下页地址的写入速度会快于上页地址。因此,每一区块的页面地址可区分为上页地址与下页地址(如图3B所示的物理区块130-0)。特别是,上页地址与下页地址具有耦合关系。也就是说,在编程上页地址时,若发生异常,可能造成所对应下页地址的不稳定(即数据可能遗失)。这也是MLC NAND快闪存储器的可靠度低于SLC NAND快闪存储器的原因。类似地,在8层记忆胞或16层记忆胞的案例中,记忆胞会包括更多个页面地址并且会以更多阶段来写入。在此,将写入速度最快的页面地址称为下页地址,其他写入速度较慢的页面地址统称为上页地址。例如,上页地址包括具有不同写入速度的多个页。
特别是,由于在本发明实施例中快闪存储器130的区块的多个页面地址可如上述区分为上页地址与下页地址,因此在存储器管理模块110b会储存有一页面地址查询表,其中会记录在每一区块中哪些页面地址属于上页地址以及哪些页面地址属于下页地址。必须了解的是,图3B所示的上页地址与下页地址的配置仅为范例,本发明不限于此。因此,在使用不同上页与下页地址的配置的MLC快闪存储器时可使用上述页面地址查询表来作记录。
值得一提的是,在上述快闪存储器储存系统100的架构下,当主机200请求快闪存储器储存系统100的控制器110执行一写入指令时,在控制器110完成数据写入后既使快闪存储器130的物理区块处于上述母子区块的暂态关系或者进入上述混乱写入模式时,控制器110仍会回应主机200已完成数据写入。此时倘若控制器110于执行主机200的下一个写入指令且发生上述因编程上页地址失败而造成其对应下页地址中先前写入指令所写入数据的遗失时,主机200仅知道此次写入指令执行失败而对应地产生相关错误信息或重写动作,然对于先前写入指令所写入的数据会误认为正常。因此,当主机200后续对此页面地址进行存取时会造成读取错误。因此,在上述快闪存储器储存系统100的架构下存储器管理模块110b会执行根据本发明实施例的数据写入步骤来保护数据。
图4A是根据本发明实施例绘示数据写入步骤的流程图。图5是根据本发明实施例绘示一快闪存储器130的范例区块的写入示意图,其中图5的(a)表示此区块中左栏部分为属于下页地址的页面地址而右栏属于上页地址的页面地址,并且假设在属于下页地址的页面地址0-3以及属于上页地址的页面地址4-5中已储存由先前写入指令写入的有效数据,另外图5的(b)表示此次写入指令所写入的数据。
请参照图4A与图5的(b),在步骤S401中控制器110会执行存储器管理模块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会依据错误校正码来进行数据正确性的检查。
倘若在步骤S413发现在物理区块中有至少一部分页面地址的数据损毁时,则在步骤S415中会将未损毁的数据与其对应母区块(例如,物理区块M)的有效数据一起写入至快闪存储器130的另一区块中,并结束此组母子区块关系。
在本实施例的步骤S409中,数据写入步骤会跳过此页面地址并再回至步骤S403来再确认下一个页面地址是否满足可写入的条件。然而,在本发明另一实施例中,当欲写入的页面地址为上页地址且该欲写入的页面地址所对应的下页地址已储存先前写入指令所写入的有效数据时,数据写入步骤亦可直接以未储存数据的下页地址来继续写入数据。
综合上述,本发明是在MLC NAND快闪存储器进行写入时,仅会将数据写入至下页地址或者无储存先前写入指令所写入的有效数据的下页地址所对应的上页地址中,由此可以避免此次写入指令发生错误而影响前次写入指令所写入的数据而造成系统误用错误数据的情况。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视后附的权利要求书所界定者为准。
Claims (23)
1.一种数据写入方法,其用以写入数据至一多层记忆胞(Multi LevelCell,MLC)与非(NAND)快闪存储器,其中该MLC NAND快闪存储器包括多个区块,其中每一区块包括多个页面地址且该些页面地址区分为多个上页地址与写入速度快于该些上页地址的多个下页地址,该数据写入方法包括:
接收一写入指令与欲写入的数据;以及
写入该数据至该些区块中,其中当欲写入的页面地址为该些上页地址且该欲写入的页面地址所对应的下页地址储存先前写入指令所写入的有效数据时则跳过该欲写入的页面地址。
2.如权利要求1所述的数据写入方法,更包括以未储存数据的该些下页地址继续写入该数据。
3.如权利要求1所述的数据写入方法,其中写入该数据至该些区块中的步骤包括:
(1)从该写入指令中获取欲写入该数据的页面地址;
(2)判断该页面地址是否为该些区块的下页地址,其中当该页面地址为该些区块的下页地址时,则进行步骤(4),并且当该页面地址不为该些区块的下页地址时,则进行步骤(3);
(3)判断对应该页面地址的下页地址是否已储存先前写入指令所写入的有效数据,其中当对应该页面地址的下页地址无储存先前写入指令所写入的有效数据时进行步骤(4),并且当对应该页面地址的下页地址已储存先前写入指令所写入的有效数据时则以该页面地址的下一个页面地址作为欲写入该数据的页面地址且返回至步骤(2);以及
(4)写入该数据至欲写入该数据的该页面地址中。
4.如权利要求3所述的数据写入方法,其中判断该页面地址是否为该些区块的下页地址的步骤包括依据一页面地址查询表来判断该页面地址是否为该些区块的下页地址。
5.如权利要求3所述的数据写入方法,更包括当写入该数据至该页面地址且发生一异常事件时则在重新启动后判断在该些区块中已写入的数据是否发生损毁。
6.如权利要求5所述的数据写入方法,更包括当在该些区块中已写入的数据的至少一部分发生损毁时则将未损毁的数据复制至另一区块中。
7.一种控制器,其适用于具有一多层记忆胞(Multi Level Cell,MLC)与非(NAND)快闪存储器的一储存装置,其中该MLC NAND快闪存储器包括多个区块,每一区块包括多个页面地址且该些页面地址区分为多个上页地址与写入速度快于该些上页地址的多个下页地址,该控制器包括:
一微处理器单元;
一快闪存储器介面,耦接至该微处理器单元且用以存取该MLC NAND快闪存储器;
一缓冲存储器,耦接至该微处理器单元且用以暂时地储存数据;以及
一存储器管理模块,耦接至该微处理器单元且具有可由该微处理器单元执行的多个机器指令以对该MLC NAND快闪存储器进行多个数据写入步骤,该些数据写入步骤包括:
接收一写入指令与该写入指令欲写入的数据;以及
写入该数据至该些区块中,其中当欲写入的页面地址为该些上页地址且该欲写入的页面地址所对应的下页地址储存先前写入指令所写入的有效数据时则跳过该欲写入的页面地址。
8.如权利要求7所述的控制器,其中由该微处理器单元执行该些机器指令以执行的该些数据写入步骤更包括以未储存数据的该些下页地址继续写入该数据。
9.如权利要求7所述的控制器,其中该微处理器单元执行该些机器指令以写入该数据至该些区块中的步骤包括:
(1)从该写入指令中获取欲写入该数据的页面地址;
(2)判断该页面地址是否为该些区块的下页地址,其中当该页面地址为该些区块的下页地址时,则进行步骤(4),并且当该页面地址不为该些区块的下页地址时,则进行步骤(3);
(3)判断对应该页面地址的下页地址是否已储存先前写入指令所写入的有效数据,其中当对应该页面地址的下页地址无储存先前写入指令所写入的有效数据时进行步骤(4),并且当对应该页面地址的下页地址已储存先前写入指令所写入的有效数据时则以该页面地址的下一个页面地址作为欲写入该数据的页面地址且返回至步骤(2);以及
(4)写入该数据至欲写入该数据的该页面地址中。
10.如权利要求9所述的控制器,其中该存储器管理模块具有一页面地址查询表,用以记录该些下页地址与该些上页地址的对应关系。
11.如权利要求9所述的控制器,其中由该微处理器单元执行该些机器指令以执行的该些数据写入步骤更包括当写入该数据至该页面地址且发生一异常事件时则在该储存装置重新启动后判断在该些区块中已写入的数据是否发生损毁。
12.如权利要求11所述的控制器,其中由该微处理器单元执行该些机器指令以执行的该些数据写入步骤更包括当在该些区块中已写入的数据的至少一部分发生损毁时则将未损毁的数据复制至另一区块中。
13.如权利要求7所述的控制器,其中该储存装置为一USB随身盘、一快闪记忆卡或一固态硬盘。
14.一种储存系统,包括:
一多层记忆胞(Multi Level Cell,MLC)与非(NAND)快闪存储器,用以储存数据,其中该MLC NAND快闪存储器包括多个区块,每一区块包括多个页面地址且该些页面地址区分为多个上页地址与写入速度快于该些上页地址的多个下页地址;
一传输连接介面,用以连接一主机;以及
一控制器,耦接至该MLC NAND快闪存储器与该传输连接介面,该控制器会执行一存储器管理模块的多个机器指令以执行多个数据写入步骤,该些数据写入步骤包括:
接收一写入指令与该写入指令欲写入的数据;以及
写入该数据至该些区块中,其中当欲写入的页面地址为该些上页地址且该欲写入的页面地址所对应的下页地址储存先前写入指令所写入的有效数据时则跳过该欲写入的页面地址。
15.如权利要求14所述的储存系统,其中由该控制器执行该些机器指令以执行的该些数据写入步骤更包括以未储存数据的该些下页地址继续写入该数据。
16.如权利要求14所述的储存系统,其中该控制器执行该些机器指令以写入该数据至该些区块中的步骤包括:
(1)从该写入指令中获取欲写入该数据的页面地址;
(2)判断该页面地址是否为该些区块的下页地址,其中当该页面地址为该些区块的下页地址时,则进行步骤(4),并且当该页面地址不为该些区块的下页地址时,则进行步骤(3);
(3)判断对应该页面地址的下页地址是否已储存先前写入指令所写入的有效数据,其中当对应该页面地址的下页地址无储存先前写入指令所写入的有效数据时进行步骤(4),并且当对应该页面地址的下页地址已储存先前写入指令所写入的有效数据时则以该页面地址的下一个页面地址作为欲写入该数据的页面地址且返回至步骤(2);以及
(4)写入该数据至欲写入该数据的该页面地址中。
17.如权利要求16所述的储存系统,其中该存储器管理模块具有一页面地址查询表,用以记录该些下页地址与该些上页地址的对应关系。
18.如权利要求16所述的储存系统,其中由该控制器执行该些机器指令以执行的该些数据写入步骤更包括当写入该数据至该页面地址且发生一异常事件时在重新启动后判断在该些区块中已写入的数据是否发生损毁。
19.如权利要求18所述的储存系统,其中由该控制器执行该些机器指令以执行的该些数据写入步骤更包括当在该些区块中已写入的数据的至少一部分发生损毁时则将未损毁的数据复制至另一区块中。
20.如权利要求14所述的储存系统,其中该存储器管理模块以一硬件形式配置在该控制器中。
21.如权利要求14所述的储存系统,其中该存储器管理模块以一固件形式储存在MLC NAND快闪存储器中。
22.如权利要求14所述的储存系统,其中该存储器管理模块以一固件形式储存在该控制器的一程序存储器中。
23.如权利要求14所述的储存系统,其中该传输连接介面为PCI Express介面、USB介面、IEEE 1394介面、SATA介面、MS介面、MMC介面、SD介面、CF介面或IDE介面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101360615A CN101625897B (zh) | 2008-07-11 | 2008-07-11 | 用于快闪存储器的数据写入方法、储存系统与控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101360615A CN101625897B (zh) | 2008-07-11 | 2008-07-11 | 用于快闪存储器的数据写入方法、储存系统与控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101625897A true CN101625897A (zh) | 2010-01-13 |
CN101625897B CN101625897B (zh) | 2012-05-30 |
Family
ID=41521696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101360615A Active CN101625897B (zh) | 2008-07-11 | 2008-07-11 | 用于快闪存储器的数据写入方法、储存系统与控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101625897B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609370A (zh) * | 2012-02-06 | 2012-07-25 | 记忆科技(深圳)有限公司 | 防止固态硬盘数据丢失的方法及其固态硬盘 |
CN102789422A (zh) * | 2012-06-25 | 2012-11-21 | 记忆科技(深圳)有限公司 | 固态硬盘的数据写入方法及系统 |
CN102792381A (zh) * | 2010-02-17 | 2012-11-21 | 马维尔国际贸易有限公司 | 用于多电平存储器单元(mlc)快闪存储器的防数据破坏的保护 |
WO2014127650A1 (zh) * | 2013-02-22 | 2014-08-28 | 中兴通讯股份有限公司 | 一种数据保护方法、装置及设备 |
CN108108261A (zh) * | 2016-11-24 | 2018-06-01 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN108614744A (zh) * | 2016-12-09 | 2018-10-02 | 北京京存技术有限公司 | 基于NAND flash的掉电保护方法和装置 |
WO2019048933A1 (en) * | 2017-09-11 | 2019-03-14 | C-Sky Microsystems Co., Ltd. | METHOD AND APPARATUS FOR DELETING OR WRITING FLASH DATA |
CN111538676A (zh) * | 2014-10-14 | 2020-08-14 | 慧荣科技股份有限公司 | 数据储存装置及其数据存取方法 |
CN112099731A (zh) * | 2019-06-17 | 2020-12-18 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
CN113360303A (zh) * | 2020-02-19 | 2021-09-07 | 慧荣科技股份有限公司 | 进行数据存储管理以提升数据可靠度的方法以及相关设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930167A (en) * | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
-
2008
- 2008-07-11 CN CN2008101360615A patent/CN101625897B/zh active Active
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102792381A (zh) * | 2010-02-17 | 2012-11-21 | 马维尔国际贸易有限公司 | 用于多电平存储器单元(mlc)快闪存储器的防数据破坏的保护 |
CN102792381B (zh) * | 2010-02-17 | 2016-09-07 | 马维尔国际贸易有限公司 | 用于多电平存储器单元(mlc)快闪存储器的防数据破坏的保护 |
CN102609370B (zh) * | 2012-02-06 | 2014-12-17 | 记忆科技(深圳)有限公司 | 防止固态硬盘数据丢失的方法及其固态硬盘 |
CN102609370A (zh) * | 2012-02-06 | 2012-07-25 | 记忆科技(深圳)有限公司 | 防止固态硬盘数据丢失的方法及其固态硬盘 |
CN102789422A (zh) * | 2012-06-25 | 2012-11-21 | 记忆科技(深圳)有限公司 | 固态硬盘的数据写入方法及系统 |
CN102789422B (zh) * | 2012-06-25 | 2016-03-23 | 记忆科技(深圳)有限公司 | 固态硬盘的数据写入方法 |
WO2014127650A1 (zh) * | 2013-02-22 | 2014-08-28 | 中兴通讯股份有限公司 | 一种数据保护方法、装置及设备 |
US10191670B2 (en) | 2013-02-22 | 2019-01-29 | Xi'an Zhongxing New Software Co., Ltd. | Method and device of data protection, storage equipment |
CN111538676B (zh) * | 2014-10-14 | 2023-08-15 | 慧荣科技股份有限公司 | 数据储存装置及其数据存取方法 |
CN111538676A (zh) * | 2014-10-14 | 2020-08-14 | 慧荣科技股份有限公司 | 数据储存装置及其数据存取方法 |
CN108108261B (zh) * | 2016-11-24 | 2021-03-02 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN108108261A (zh) * | 2016-11-24 | 2018-06-01 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN108614744A (zh) * | 2016-12-09 | 2018-10-02 | 北京京存技术有限公司 | 基于NAND flash的掉电保护方法和装置 |
CN108614744B (zh) * | 2016-12-09 | 2021-12-03 | 北京兆易创新科技股份有限公司 | 基于NAND flash的掉电保护方法和装置 |
US11249677B2 (en) | 2017-09-11 | 2022-02-15 | C-Sky Microsystems Co., Ltd. | Method and apparatus for erasing or writing flash data |
WO2019048933A1 (en) * | 2017-09-11 | 2019-03-14 | C-Sky Microsystems Co., Ltd. | METHOD AND APPARATUS FOR DELETING OR WRITING FLASH DATA |
CN112099731A (zh) * | 2019-06-17 | 2020-12-18 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
CN112099731B (zh) * | 2019-06-17 | 2023-12-08 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
CN113360303A (zh) * | 2020-02-19 | 2021-09-07 | 慧荣科技股份有限公司 | 进行数据存储管理以提升数据可靠度的方法以及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101625897B (zh) | 2012-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
CN101483067B (zh) | 快闪存储器数据写入方法及其快闪存储器控制器 | |
US8131911B2 (en) | Data writing method, and flash storage system and controller using the same | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
CN101571832B (zh) | 数据写入方法及使用该方法的快闪存储系统与其控制器 | |
US20100042774A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
CN101640069B (zh) | 用于闪速存储器的平均磨损方法与平均磨损系统 | |
CN101634967B (zh) | 用于闪存的区块管理方法、储存系统与控制器 | |
CN101556555B (zh) | 用于闪存的区块管理方法、其控制器与储存系统 | |
CN101661431B (zh) | 用于快闪存储器的区块管理方法、快闪储存系统及控制器 | |
US8074128B2 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
CN101414282B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101788955A (zh) | 闪存数据的存取方法及其储存系统与控制系统 | |
CN101499315B (zh) | 快闪存储器平均磨损方法及其控制器 | |
CN101667157A (zh) | 闪存数据传输方法、闪存储存系统及控制器 | |
CN101425338B (zh) | 非易失性存储器的写入方法及使用此方法的控制器 | |
CN101567220A (zh) | 闪存的损坏区块辨识方法、储存系统及其控制器 | |
CN101408864B (zh) | 用于断电时的数据保护方法及使用此方法的控制器 | |
CN101630233A (zh) | 用于闪存的数据存取方法、储存系统与控制器 | |
CN101527169A (zh) | 闪存数据写入方法及其控制器 | |
CN101727397B (zh) | 区块管理与更换方法、闪存储存系统及其控制器 | |
CN101625661B (zh) | 用于闪存的数据管理方法、储存系统与控制器 | |
CN101409108B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101661432B (zh) | 闪存区块管理方法、闪存储存系统及控制器 | |
CN101882111B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |