闪存数据写入方法及其控制器的利记博彩app

文档序号:6782008阅读:355来源:国知局

专利名称::闪存数据写入方法及其控制器的利记博彩app
技术领域
:本发明涉及一种数据写入方法,特别是涉及一种闪存的数据写入方法及其控制器。
背景技术
:数字相机、手机相机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加,由于闪存(FlashMemory)具有数据非易失性、省电、体积小与无机械结构等的特性,适合便携式应用,最适合使用于这类便携式由电池供电的产品上。除了便携式产品内建内存需要的夕卜,对于小型存储卡与随身盘等外接式产品来说,每个人可能同时拥有多个随身盘与小型存储卡,所以市场规模较那些设备更大。因此,近年闪存产业成为电子产业中相当热门的一环。闪存通常实质上分割为多个实体区块(physicalblock),为方便说明以下将实体区块简称为区块。闪存区块的每个位在编程(program)时仅能由'T,变为"0",因此当欲写入的内存地址存有旧数据时,则必须执行擦除(erase)的动作。一般而言,在闪存中区块为擦除的最小单位。亦即,每一区块含有最小数目的一并被擦除的存储单元。每一区块通常会分割为数个页(page)。页通常为编程(program)的最小单元,换言之,页为写入数据或读取数据的最小单元。但要特别说明的是于有些不同的闪存设计,最小的编程单位也可为一个扇区(sector)大小,即一页中有多个扇区并以一扇区为编程的最小单元,例如使用编程次数(numberofprogram,NOP)为4的技术的SIX訓D闪存。因此,在编程单位小于擦除单位的情况下,当欲进行写入新数据时,现有技术是从闪存中提取一替换区块并且将原区块中的旧数据写入至替换区块,然后接续写入新数据。然而,使用上述现有方法搬移数据时一旦发生下一个写入指令要更新稍早写入至替换区块的旧数据时,会产生旧数据无意义的搬移。因此,造成系统效能的降低。
发明内容本发明提供一种数据写入方法,其适用于闪存的数据写入,其可减少无意义的数据搬移以提升系统效能。本发明提供一种闪存控制器,其用以执行上述数据写入方法,其可减少无意义的数据搬移以提升系统效能。本发明提出一种数据写入方法,其适用于闪存,此数据写入方法包括从闪存的备用区中提取一区块作为替换区块,其是用以替换数据区中欲写入新数据的一数据区块。接着,从替换区块的开始页直接写入此新数据,其中在数据区块中欲写入新数据的地址之前具有有效数据。在本发明的一实施例中,上述的数据写入方法还包括将在数据区块中欲写入此新数据的地址之后的有效数据接续在新数据之后写入至替换区块。在本发明的一实施例中,上述的数据写入方法还包括将在数据区块中欲写入新数据的地址之前的有效数据接续在数据区块中欲写入新数据的地址之后的有效数据之后写入至替换区块。在本发明的一实施例中,上述的数据写入方法还包括将在数据区块中欲写入新数据的地址之前的有效数据接续在新数据之后写入至替换区块。在本发明的一实施例中,上述的数据写入方法还包括记录开始页所记录的新数据对映的逻辑地址。在本发明的一实施例中,上述的记录逻辑地址是记录在逻辑实体区块对映表中。本发明提出一种闪存控制器,其适用于具有至少一个闪存的储存装置,此闪存控制器包括微处理单元、闪存接口、緩冲存储器以及内存管理模块。微处理单元用以操作闪存。闪存接口是电性连接至微处理单元并且用以存取闪存。緩冲存储器是电性连接至微处理单元并且用以暂时地储存数据。内存管理模块是电性连接至微处理单元并且用以管理闪存,其中内存管理模块会从闪存的备用区中提取一区块作为替换区块,其是用以替换数据区中欲写入新数据的一数据区块,其中内存管理模块会从替换区块的开始页直接写入此新数据,其中在数据区块中欲写入新数据的地址之前具有有效数据。在本发明的一实施例中,上述的内存管理模块会将在数据区块中欲写入此新数据的地址之后的有效数据接续在新数据之后写入至替换区块。在本发明的一实施例中,上述的内存管理模块会将在数据区块中欲写入新数据的地址之前的有效数据接续在数据区块中欲写入新数据的地址之后的有效数据之后写入至替换区块。在本发明的一实施例中,上述的内存管理模块会将在数据区块中欲写入新数据的地址之前的有效数据接续在新数据之后写入至替换区块。在本发明的一实施例中,上述的闪存为SLC(SingleLevelCell)NAND(NAND)闪存或MLC(MultiLevelCell)NAND(NAND)闪存。在本发明的一实施例中,上述的储存装置为USB随身盘、快闪存储卡或固态硬盘。在本发明的一实施例中,上述的内存管理模块会记录开始页所记录的新数据对映的逻辑地址。在本发明的一实施例中,上述的内存管理模块是在逻辑实体区块对映表中记录逻辑地址。因此可提升系统效能并且避免长时间的写入中断。为使本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并结合附图详细"i兌明如下。图1A是根据本发明实施例绘示使用闪存储存装置的主机。图1B是绘示图IA所示闪存储存装置的详细方块图。图1C是根据本发明另一实施例绘示控制器的方块图。图2A与2B是根据本发明实施例绘示闪存及其运作的方块图。图2C是根据图2B绘示闪存的详细运作示意图。图3A与3B是根据本发明另一实施例绘示数据写入的范例。图4是根据本发明实施例绘示闪存数据写入方法的流程图。图5是根据图4所示闪存数据写入方法绘示数据写入的范例。附图符号说明100:主机102:微处理器104:随机存耳又内存(randomaccessmemory,RAM)106:输入/输出(input/output,1/0)装置108:系统总线110:数据传输接口120:闪存储存装置122:控制器124:闪存124-0、124-1、124-2、124-N:实体区块122a微处理单元122b内存管理模块122c闪存接口122d緩冲存储器122e主机传输接口122f程序内存122g错误校正模块122h电源管理才莫块202:系统区204:数据区206:备用区208:替换区块M、S、C、A、A,、B、B,区块S401、S403、S405、S407:数据写入方法的步骤具体实施例方式闪存储存系统一般而言包括闪存与控制器(控制芯片)。通常闪存储存系统会与主机系统一起使用,以使主机系统可将数据写入至闪存储存系统或从闪存储存系统中读取数据。另外,亦有闪存储存系统是包括嵌入式闪存与可执行于主机系统上以实质地作为此嵌入式闪存的控制器的软件。图1A是根据本发明实施例绘示使用闪存储存装置的主机。请参照图1A,主机100—般包括微处理器102、随机存取内存(randomaccessmemory,RAM)104、输入/输出(i叩ut/output,I/O)装置106、系统总线108以及数据传输接口110。必须了解的是,主机100可还包括其它组件,例如显示器装置或网络装置等。主机1GG可以是计算机、数字相机、摄影机、通信装置、音讯播放器或视讯播放器等系统。一般而言,主机100可实质地为可储存数据的任意系统。在本发明实施例中闪存储存装置120是透过数据传输接口110与主机100的其它组件电性连接。藉由微处理器102、随机存取内存104与输入/输出装置106的处理可将数据写入至闪存储存装置120或从闪存储存装置120中读取数据。闪存储存装置120包括随身盘、存储卡或固态硬盘(SolidStateDrive,SSD)。图1B是绘示图IA所示闪存储存装置的详细方块图。请参照图IB,闪存储存装置120—般包括控制器122与闪存124。控制器122用以控制对闪存124的操作,例如数据的储存、读取与擦除等。控制器122包括微处理单元12h、内存管理模块l"b、闪存接口l"c与缓冲存储器122d。微处理单元122a会协调内存管理模块122b、闪存接口与緩冲存储器122d之间的运作。内存管理模块122b是电性连接至微处理单元122a。内存管理模块122b会管理闪存124,例如执行平均磨损(wearleveling)方法、坏区块管理、维护对映表(ma卯ingtable)等。特别是,在本发明实施例中,内存管理模块122b会执行根据本发明实施例的数据写入方法的步骤(如图4所示),其可为一具有用以执行本方法的只读存储器。闪存接口122c是电性连接至微处理单元122a并且用以存取闪存124。也就是,主机IOO欲写入至闪存124的数据会经由闪存接口122c转换为闪存124所能接受的格式。缓冲存储器122d用以暂时地储存系统数据(例如对映表)或者主机100所读取或写入的数据。在本实施例中,緩冲存储器122d为静态随机存取内存(staticrandomaccessmemory,SRAM)。然而,必须了解的是,本发明不限于此,动态随机存取内存(DynamicRandomAccessmemory,DRAM)、磁阻式内存(MagnetoresistiveRandomAccessMemory,MRAM)、相变化内存(PhaseChangeRandomAccessMemory,PRAM)或其它适合的内存亦可应用于本发明。在本发明另一实施例中,控制器还包括主机传输接口122e、程序内存122f、错误校正模块122g与电源管理模块122h(如图1C的控制器122,所示)。主机传输接口122e是电性连接至微处理单元122a并且用以与主机100通讯,主机传输接口122e可以是USB接口、IEEE1394接口、SATA接口、PCIExpress接口、MS接口、MMC接口、SD卡接口、CF卡接口或IDE接口。程序内存122f是电性连接至微处理单元122a并且用以储存控制器所执行用以控制闪存储存装置120的程序代码。错误校正模块122g是电性连接至微处理单元122a并且用以计算错误校正码(errorcorrectingcode)来检查与校正主机所读取或写入的数据。电源管理模块122h是电性连接至微处理单元122a并且用以管理闪存储存装置120的电源。闪存124用以储存数据。在本实施中闪存124为多层存储单元(MultiLevelCell,MLC)NAND(NAND)闪存。但必须了解的是,本发明不限于此,例如闪存124亦可为单层存储单元(SingleLevelCell,SLC)NAND闪存。闪存124通常实质上分割为多个实体区块(physicalblock)124-0至124-N,为方便说明以下将实体区块简称为区块。一般而言,在闪存中区块为擦除的最小单位。亦即,每一区块含有最小数目的一并被擦除的存储单元。每一区块通常会分割为数个页(page)。页通常为编程(program)的最小单元,但要特别说明的是于有些不同的闪存设计,最小的编程单位也可为一个扇区(sector)大小,即一页中有多个扇区并以一扇区为编程的最小单元。换言的,页为写入数据会读取数据的最小单元。每一页通常包括使用者数据区D与冗余区R。使用者数据区用以储存使用者的数据,而冗余区用以储存系统的数据(例如,上述的ECCcode)。为对应于磁盘驱动器的扇区(sector)大小,一般而言,使用者数据区D通常为512字节,而冗余区R通常为16字节。也就是,一页为一个扇区。然而,亦可以多个扇区形成一页,例如一页包括4个扇区。9一4殳而言,区块可由任意数目的页所组成,例如64页、128页、256页等。区块124-0至124-N通常也可被分组为数个区域(zone),以区域来管理内存某种程度上是彼此独立地操作以增加操作执行的平行程度且简化管理的复杂度。以下将根据本发明并配合图式详细说明闪存的运作。必须了解的是,在以下描述中使用"提取"、"搬移"、"交换,,等词来操作闪存区块是逻辑上的概念。也就是说,闪存区块的实际位置并未更动,而是逻辑上对闪存区块进行操作。图2A与2B是根据本发明实施例绘示闪存124及其运作的方块图。请参照图2A,在本发明实施例中,为了有效率地编程(即写入与擦除)闪存124,闪存124的区块124-1至124-N会在逻辑上分组为一系统区202、一数据区204与一备用区206。一般来说,闪存124中属于数据区204的区块会占90%以上。系统区202中的区块用以记录系统数据,系统数据例如是关于闪存124的区域数、每一区域的区块数、每一区块的页数、逻辑实体对映表等。数据区204中的区块用以储存使用者的数据,一般来说就是主机100所操作的逻辑区块地址所对应的区块。备用区206中的区块是用以替换数据区204中的区块,因此在备用区206中的区块为空或可使用的区块,即无记录数据或标记为已没用的无效数据。具体来说,由于若要对已写过数据位置再次写入数据时,必须先执行擦除的动作。然而,如前所述闪存写入单位为页,而擦除单位为区块。一个擦除的单位大于写入的单位,这表示若要执行区块擦除动作,必须先将欲擦除区块中的有效页复制至其它区块后才可进行。因此,当欲在数据区204中已写过数据位置的区块M中写入新数据时,一般会在备用区206中提取一区块S,然后将区块M中的有效数据复制至区块S且将新数据写入区块S后,将区块M擦除后搬移至备用区206同时将区块S搬移至数据区204。必须了解的是,将区块M擦除后搬移至备用区206同时将区块S搬移至数据区204是逻辑上将区块M关联于备用区206而将区块S关联于数据区204。其中本领域的技术人员皆能了解数据区204中区块的逻辑关系可由逻辑实体对映表来维护。在本发明实施例中,为了更有效率地使用闪存124,区块124-1至124-N在逻辑上更分为一替换区块208。图2B是绘示闪存的另一种运作方式,而图2C是绘示图2B的详细运作示意图。请参照图2B,替换区块208是用以替换数据区204的区块的瞬时。更详细而言,当上述备用区206的区块C被提取来取代数据区204的区块M时,在本发明实施例中会将新数据写入至区块C,但不会立刻将区块M中的有效数据搬移至区块C而擦除区块M。具体来说,会将区块M中欲写入地址之前的有效数据(即页P0与Pl)复制至区块C(如图2C的(a)),并且将新数据(即区块C的页P2与P3)写入至C区块(如图2C的(b))。此时,将含有部分的有效旧数据与所写入新数据的区块C会暂时地关联为替换区块208。此是因为,区块M中的有效数据有可能在下个操作中变成无效,因此立刻将区块M中的所有有效数据搬移至实体区块C可能会造成无谓的搬移。在本实施例中,在逻辑区块地址与实体区块地址的对映上会记录多个实体区块地址对应到一个逻辑区块地址的情况,也就是区块M与区块C的内容整合起来才是所对映逻辑区块的内容。这种母子区块(区块M与区块C)的关系可依据控制器122中緩冲存储器122d的大小而定,在本发明实施例中是以五组来实作。之后,当需要将区块M与区块C的内容真正合并时,才将区块M与区块C整并为一区块,由此提升区块的使用效率。例如,如图2C的(c)所示,当进行整并时,区块M中剩余的有效数据(即页P4PN)会复制至区块C,然后将区块M擦除并关联为备用区206,同时,将区块C关联为数据区204,由此完成合并。值得一提的是,在如图2C所示的数据写入方法中,由于闪存的编程规格要求必须从每一区块的第一页开始写入至最后一页并且在每个位仅能编程一次(即由仅能"1"变为"0")的条件下,一旦内存区块的页写入数据后,若欲更新已写入的数据就必须如图2B所示提取一空区块重新进行图2C所示的步骤。因此,当区块在未进行图2C的(c)合并动作之前(即处于图2C的(b)所示的瞬时),而发生必须更新刚搬移的数据(例如图2C的P0Pl)时,即所谓的混乱(Random)写入模式时,则所搬移的旧数据就必须再搬移一次。例如,一般在储存装置中会使用档案配置表(FileAllocationTable,FAT)来管理储存媒体,其中FAT数据的存取是非常频繁。因此,当存取FAT表时可能会因为不断更新刚搬移的数据而进入混乱写入模式。在混乱写入模式下可能会重复执行图2B与图2C的动作,因此造成每次执行写入数据时必须等待内存管理模块122b搬移数据而使得闪存储存装置120的效能降低。此外,假设先前写入指令是写入区块A的首页,并且缓冲存储器122d记录区块A与其替换区块A,是处于的如上所述的瞬时的例子(如图3A所示)中,也就是新数据已写入替换区块A,的页PO,区块A的其它有效数据暂时未写入至替换区块A'。此时,倘若此次写入指令是要写入区块B的最后一页,且因緩冲存储器122d容量的因素必须合并区块A与其替换区块A,日十,则如图3B所示,内存管理模块122b必须先搬移区块A中的有效数据(即区块A页P1PN的数据)至替换区块A,以完成区块的合并,然后选择一个替换区块B,,之后搬移区块B中的有效数据(即区块B页P0~PN-1的数据)至替换区块B,的页P0PN-1,最后才能写入新数据至替换区块B'的页PN。然而,在许多系统的应用(例如数字录像机等)中并不允许数据写入时发生如此长时间的中断,因此使用上述母子区块关系的管理架构可能会造成系统的死机。基此,在本发明实施例中在使用上述母子区块关系来管理数据的写入混乱写入模式而造成的效能降低或者因长时间的中断而造成的死机。图4是根据本发明实施例绘示闪存数据写入方法的流程图,图5是根据图4所示闪存数据写入方法绘示数据写入的范例。请参照图4与图5,在步骤401中当欲写入新数据至闪存时,会从闪存124的备用区206中提取一区块C作为替换区块208。如上所述区块C用以替换数据区204中欲写入新数据的区块M。之后,在步骤403中会从替换区块208的开始页写入新数据。换言的,在本实施例中在区块M中欲写入新数据的地址之前的有效旧数据(即区块M的页P0P1的数据)并不会先复制至区块C。在步骤S403中会直接将新数据写入至区块C的页P0P1。此时,闪存管理模块120b会保持此一瞬时。如上所述,在本发明实施例中闪存管理模块120b会记录五组此瞬时的关系(区块M与区块C)。基于上述,当主机100对闪存储存装置120写入数据时,闪存储存装12置120先不搬移旧数据,由此可避免因下一个写入指令是更新所搬移的数据时而造成无意义的搬移。此外,当主机100对闪存储存装置120发出写入指令后,闪存储存装置120可在最快时间内完成写入指令并且回复主机100,之后再进行合并其它的母子区块,由此可避免因长时间等候而造成系统的死机。在本发明另一实施例中,倘若必须合并母子区块时,则如图4的(b)所示,在步骤S405中会将在数据区块中欲写入新数据的地址之后的有效数据接续在新数据之后写入至替换区块。并且在步骤S407中会再将在数据区块中欲写入新数据的地址之前的有效数据接续在数据区块中欲写入新数据的地址之后的有效数据之后写入至替换区块。例如,合并区块M与区块C时,会将区块M页P4~PN的数据搬移至区块C页P2~PN-2中(如图5的(b)所示)。最后,会再将区块M页P0P1的数据搬移至区块C页PN-1PN中(如图5的(c)所示)。另外,在本发明另一实施中,倘若在数据区块中欲写入的地址之后已无有效数据时,则在之后合并时,则仅需将在数据区块中欲写入新数据的地址之前的有效数据接续在新数据之后写入至替换区块。'一般来说,在闪存的写入作业上,为了方便管理逻辑区块的逻辑地址会直接地对映实体区块的实体地址,例如逻辑区块的页PO对映实体区块的页P0、逻辑区块的页Pl对映实体区块的页Pl…逻辑区块的页PN对映实体区块的页PN。然而,在使用本发明实施例的数据写入方法后,上述对映关系会遭破坏。例如,如图5的(c)所示,逻辑区块的页P0P1对映实体区块的页PN-1~PN、逻辑区块的页P2P3对映实体区块的页P0P1且逻辑区块的页P4PN对映实体区块的页P2~PN-2。记录所写入新数据对映的逻辑地址。具体来说,由于闪存出厂时其区块的区块的页。例如,假设每个区块有128页时,倘若在实体区块的开始页所记录的数据是对映逻辑区块的页60时,则开始页之后的页分别表示对映逻辑区块的页60~页127以及页0~页59。在本发明另一实施例中,开始页的逻辑地址是一起记录在逻辑实体区块对映表中。换言之,就是将此信息与闪存储存装置原本的逻辑实体区块对映信息一起记录在逻辑实体区块对映表,而不会造成额外的区块管理负荷。然而,此非限制本发明,在不违背本发明精神下,其它记录方式皆可适用。综上所述,本发明采用将新数据直接写入至替换区块的开始页,由此可在当闪存储存装置进入混乱写入模式时减少无意义的搬移,由此提升闪存储存装置的效能。此外,藉由先将新数据直接写入至替换区块以响应系统的写入指令,之后在于背后完成先前区块的合并,由此可避免因长时间的写入中断而造成的系统死机。虽然本发明已以较佳实施例披露如上,然其并非用以限定本发明,本领域的技术人员在不脱离本发明的精神和范围的前提下可作些许的更动与润饰,因此本发明的保护范围以本发明的权利要求为准。权利要求1.一种数据写入方法,其适用于一闪存,数据写入方法包括从该闪存的一备用区中提取一区块作为一替换区块,用以替换一数据区中欲写入新数据的一数据区块;以及从该替换区块的开始页直接写入该新数据,其中在该数据区块中欲写入该新数据的地址之前具有有效数据。2.如权利要求1所述的数据写入方法,还包括将在该数据区块中欲写入该新数据的地址之后的有效数据接续在该新数据之后写入至该替换区块。3.如权利要求2所述的数据写入方法,还包括将在该数据区块中欲写入该新数据的地址之前的有效数据接续在该数据区块中欲写入该新数据的地址之后的有效数据之后写入至该替换区块。4.如权利要求1所述的数据写入方法,还包括将在该数据区块中欲写入该新数据的地址之前的有效数据接续在该新数据之后写入至该替换区块。5.如权利要求1所述的数据写入方法,还包括记录该开始页所记录的新数据对映的一逻辑地址。6.如权利要求5所述的数据写入方法,其中记录该逻辑地址是记录在一逻辑实体区块对映表中。7.—种闪存控制器,其适用于具有至少一个闪存的一储存装置,该闪存控制器包括一微处理单元,用以操作该闪存;一闪存接口,电性连接至该微处理单元并且用以存取该闪存;一緩冲存储器,电性连接至该微处理单元并且用以暂时地储存数据;以及一内存管理模块,电性连接至该微处理单元并且用以管理该闪存,其中该内存管理模块会从该闪存的一备用区中提取一区块作为一替换区块,用以替换一数据区中欲写入新数据的一数据区块,其中该内存管理模块会从该替换区块的开始页直接写入该新数据,其中在该数据区块中欲写入该新数据的地址之前具有有效数据。8.如权利要求7所述的闪存控制器,其中该内存管理模块会将在该数据区块中欲写入该新数据的地址之后的有效数据接续在该新数据之后写入至该替换区块。9.如权利要求8所述的闪存控制器,其中该内存管理模块会将在该数据区块中欲写入该新数据的地址之前的有效数据接续在该数据区块中欲写10.如权利要求7所述的闪存控制器,其中该内存管理模块会将在该数据区块中欲写入该新数据的地址之前的有效数据接续在该新数据之后写入至该替换区块。11.如权利要求7所述的闪存控制器,其中该闪存为一SLCNAND闪存或一MLCNAND闪存。12.如权利要求7所述的闪存控制器,其中该储存装置为一USB随身盘、一快闪存储卡或一固态硬盘。13.如权利要求7所述的闪存控制器,其中该内存管理模块会记录该开始页所记录新数据对映的一逻辑地址。14.如权利要求13所述的闪存控制器,其中该内存管理模块是在一逻辑实体区块对映表中记录该逻辑地址。全文摘要一种数据写入方法,其适用于闪存。此数据写入方法包括从闪存的备用区中提取一区块作为替换区块,其是用以替换数据区中欲写入新数据的一数据区块。接着,从替换区块的开始页直接写入此新数据,其中在数据区块中欲写入新数据的地址之前包含有有效数据。基此,可减少无意义的数据搬移以提升系统效能并且避免长写入等待时间。文档编号G11C16/08GK101527169SQ200810082120公开日2009年9月9日申请日期2008年3月3日优先权日2008年3月3日发明者叶志刚,张瑞贤,朱健华,苏建友申请人:群联电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1