用于闪存的数据管理方法、储存系统与控制器
技术领域
本发明是有关于一种数据管理方法,且特别是有关于一种存取闪存的数据管理方法及使用此方法的储存系统与控制器。
背景技术
数字相机、手机相机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于闪存(Flash Memory)具有数据非易失性、省电、体积小与无机械结构等的特性,适合可携式应用,最适合使用于这类可携式由电池供电的产品上。存储卡就是一种以与非(NAND)闪存作为储存媒体的储存装置。由于存储卡体积小容量大且携带方便,所以已广泛用于个人重要数据的储存。因此,近年闪存产业成为电子产业中相当热门的一环。
一般来说,闪存会划分为多个物理区块并且此些物理区块会分组为数据区(data area)与备用区(spare area),例如图1A所示的数据区204与备用区206。归类为数据区的物理区块中会储存由写入指令所写入的有效数据,而备用区中的物理区块是用以在执行写入指令时替换数据区中的物理区块。为了能够让主机存取以轮替方式储存数据的物理区块,闪存储存系统会提供逻辑区块(例如图1A中逻辑地址210中的多个逻辑区块)给主机以进行数据存取。具体来说,闪存储存系统会维护逻辑区块与物理区块映射表来记录逻辑区块与物理区块的映射关系,其中一个逻辑区块会映射数据区块中的一个物理区块。同时,当执行写入指令而使数据区的物理区块与备用区的物理区块进行替换时,闪存储存系统会更新逻辑区块与物理区块映射表以利后续正确地存取。
图1A与1B是根据已知技术绘示闪存的物理区块进行轮替的示意图。
请参照图1A,若要对已写过数据的区块地址再次写入数据时,必须先执行抹除的操作。然而,闪存的写入单位(即页面)是小于抹除单位(即区块),因此若要执行物理区块的抹除操作时,必须先将欲抹除的物理区块中的有效页面地址的数据复制至其它物理区块后才可进行。例如,当主机欲写入数据至所配置多个逻辑区块210之中的逻辑区块L时,闪存储存系统会通过逻辑区块与物理区块映射表得知逻辑区块L目前是映射数据区204中的物理区块M。因此,闪存储存系统将对物理区块M中的数据进行更新,期间,闪存储存系统会从备用区206中提取物理区块C来取代数据区204的物理区块M。然而当将新数据入至物理区块C的同时,不会立刻将物理区块M中的所有有效数据搬移至物理区块C而抹除物理区块M。具体来说,会将物理区块M中欲写入页面地址之前的有效数据(即页P0与P1)复制至物理区块C(如图1B的(a)),并且将新数据(即物理区块C的页P2与P3)写入至C区块(如图1B的(b))。此时,将含有部分的有效旧数据与所写入新数据的物理区块C暂时地关联为替换物理区块208。此是因为,物理区块M中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将物理区块M中的所有有效数据搬移至物理区块C可能会造成无谓的搬移。在此案例中,物理区块M与物理区块C的内容整合起来才是所映射逻辑区块L的完整内容。此等母子区块(即,物理区块M与物理区块C)的瞬时关系可依据控制器中缓冲存储器的大小而定,例如一般会使用五组来实作。
之后,当需要将物理区块M与物理区块C的内容真正合并时,才将物理区块M与物理区块C整并为一区块,由此提升区块的使用效率。例如,如图1B的(c)所示,当进行整并时,物理区块M中剩余的有效数据(即页P4~PN)会复制至物理区块C,然后将物理区块M抹除并关联为备用区206,同时,将物理区块C关联为数据区204,并且在逻辑区块与物理区块映射表中将逻辑区块L的映射更改为物理区块C,由此完成合并。
由于闪存的可编程规格要求必须从每一物理区块的第一页开始写入至最后一页并且在每个位仅能程序一次(即由仅能“1”变为“0”)的条件下,一旦存储器物理区块的页面地址写入数据后,若欲更新已写入的数据就必须如图1A所示从备用区206中提取物理区块重新进行图1B所示的步骤。因此,当物理区块在未进行图1B的(c)合并操作之前(即处于图1B的(b)所示的瞬时),而发生必须更新刚搬移的数据(例如图1B的P0~P1)时,则所搬移的旧数据就必须再搬移一次,此称为混乱(Random)写入模式时。例如,一般在储存装置中会使用文件配置表(File Allocation Table,FAT)来管理储存媒体,其中FAT数据的存取是非常频繁。因此,当存取FAT表时可能会因为不断更新刚搬移的数据而进入混乱写入模式。在进入上述混乱写入模式时,控制器会将欲写入的数据依序地写入至物理区块C的页面中而不进行如图1B的(a)所示的有效数据搬移,并且于混乱写入模式结束时才进行有效数据的整合,以避免在混乱写入模式下不断重复执行图1A与图1B的操作。
由于如上所述闪存的一个物理区块是映射一个逻辑区块,因此当对逻辑区块进行混乱写入模式,仅会在一个物理区块中记录欲写入的数据。然而,在混乱写入模式中频繁更新的数据是属于小数据量,且在闪存制程上的进步而使得可编程单位与抹除单位的设计容量会越来越大的同时,会使得用于此混乱写入模式的物理区块利用率偏低。
发明内容
有鉴于此,本发明提供一种区块存取入方法,其能够改善物理区块的利用率并且提升区块存取的速度。
此外,本发明提供一种控制器,其使用上述数据管理方法来存取闪存,以改善物理区块的利用率并且提升区块存取的速度。
再者,本发明提供一种储存系统,其使用上述数据管理方法来存取闪存,以改善物理区块的利用率并且提升区块存取的速度。
本发明提出一种数据管理方法,其适用于存取闪存储存系统的闪存,其中闪存包括多个物理区块且物理区块至少分组为数据区与备用区,此数据管理方法包括配置多个逻辑区块以供主机存取。此方法也包括在每一物理区块中划分多个物理部,并且将上述逻辑区块分别地映射所划分的物理部。此方法还包括依据主机欲存取的逻辑区块来存取所映射的物理部。
在本发明的一实施例中,上述的数据管理方法还包括在逻辑区块与物理区块映射表中记录每一逻辑区块所映射的物理区块与所映射的物理部。
在本发明的一实施例中,上述的在每一物理区块中上述逻辑区块所映射的物理部为连续页面地址或不连续页面地址。
在本发明的一实施例中,上述的分别地在物理区块中划分多个物理部的步骤包括将每一物理区块划分为上物理部与下物理部。
在本发明的一实施例中,上述的数据管理方法还包括当主机写入数据至逻辑区块时,从备用区中选择多个物理区块作为替换物理区块并且使用替换物理区块的物理部来替换在数据区中映射欲写入数据的逻辑区块的物理部,其中此些替换物理区块的上物理部会先被使用来写入数据,并且在所有替换物理区块的上物理部皆被使用后才使用替换物理区块的下物理部来写入数据。
在本发明的一实施例中,上述的数据管理方法还包括当所有替换物理区块的上物理部与下物理部皆已被使用时,将数据区中至少一物理区块的有效数据搬移至从备用区中新提取的物理区块中,其中在此数据区的物理区块中仅上物理部或下物理部储存有效数据。
在本发明的一实施例中,上述的数据管理方法还包括当主机以混乱写入模式写入数据至逻辑区块时,从备用区中选择多个物理区块作为混乱替换物理区块并且在每一混乱替换物理区块中记录对两个逻辑区块所写入的数据。
本发明提出一种控制器,其适用于具有闪存的储存装置,其中闪存包括多个物理区块且此些物理区块至少分组为数据区与备用区,此控制器包括微处理器单元、闪存接口、缓冲存储器与存储器管理模块。闪存接口耦接至微处理器单元且用以存取闪存。缓冲存储器耦接至微处理器单元且用以暂时地储存数据。存储器管理模块耦接至微处理器单元且具有可由微处理器单元执行的多个机器指令以对闪存进行多个数据管理步骤,此些数据管理步骤包括配置多个逻辑区块以供主机存取。此些数据管理步骤也包括在每一物理区块中划分多个物理部,并且将上述逻辑区块分别地映射所划分的物理部。此些数据管理步骤还包括依据主机欲存取的逻辑区块来存取所映射的物理部。
在本发明的一实施例中,上述的数据管理步骤还包括在逻辑区块与物理区块映射表中记录每一逻辑区块所映射的物理区块与所映射的物理部,其中逻辑区块与物理区块映射表是储存在缓冲存储器中。
在本发明的一实施例中,上述的在每一物理区块中上述逻辑区块所映射的物理部为连续页面地址或不连续页面地址。
在本发明的一实施例中,上述的分别地在物理区块中划分多个物理部的步骤包括将每一物理区块划分为上物理部与下物理部。
在本发明的一实施例中,上述的数据管理步骤还包括当主机写入数据至逻辑区块时,从备用区中选择多个物理区块作为替换物理区块并且使用替换物理区块的物理部来替换在数据区中映射欲写入数据的逻辑区块的物理部,其中此些替换物理区块的上物理部会先被使用来写入数据,并且在所有替换物理区块的上物理部皆被使用后才使用替换物理区块的下物理部来写入数据。
在本发明的一实施例中,上述的数据管理步骤还包括当所有替换物理区块的上物理部与下物理部皆已被使用时,将数据区中至少一物理区块的有效数据搬移至从备用区中新提取的物理区块中,其中在此数据区的物理区块中仅上物理部或下物理部储存有效数据。
在本发明的一实施例中,上述的数据管理步骤还包括当主机以混乱写入模式写入数据至逻辑区块时,从备用区中选择多个物理区块作为混乱替换物理区块并且在每一混乱替换物理区块中记录对两个逻辑区块所写入的数据。
在本发明的一实施例中,上述的储存装置为USB随身碟、快闪存储卡或固态硬盘。
本发明提出一种储存系统,其包括闪存、传输连接接口与控制器。闪存用以储存数据,其中闪存包括多个物理区块且此些物理区块至少分组为数据区与备用区。传输连接接口用以连接主机。控制器耦接至闪存与传输连接接口,此控制器会执行存储器管理模块的多个机器指令以执行多个数据管理步骤,此些数据管理步骤包括配置多个逻辑区块以供主机存取。此些数据管理步骤也包括在每一物理区块中划分多个物理部,并且将上述逻辑区块分别地映射所划分的物理部。此些数据管理步骤还包括依据主机欲存取的逻辑区块来存取所映射的物理部。
在本发明的一实施例中,上述的数据管理步骤还包括在逻辑区块与物理区块映射表中记录每一逻辑区块所映射的物理区块与所映射的物理部,其中逻辑区块与物理区块映射表是储存在上述控制器的缓冲存储器中。
在本发明的一实施例中,上述的在每一物理区块中上述逻辑区块所映射的物理部为连续页面地址或不连续页面地址。
在本发明的一实施例中,上述的分别地在物理区块中划分多个物理部的步骤包括将每一物理区块划分为上物理部与下物理部。
在本发明的一实施例中,上述的数据管理步骤还包括当主机写入数据至逻辑区块时,从备用区中选择多个物理区块作为替换物理区块并且使用替换物理区块的物理部来替换在数据区中映射欲写入数据的逻辑区块的物理部,其中此些替换物理区块的上物理部会先被使用来写入数据,并且在所有替换物理区块的上物理部皆被使用后才使用替换物理区块的下物理部来写入数据。
在本发明的一实施例中,上述的数据管理步骤还包括当所有替换物理区块的上物理部与下物理部皆已被使用时,将数据区中至少一物理区块的有效数据搬移至从备用区中新提取的物理区块中,其中在此数据区的物理区块中仅上物理部或下物理部储存有效数据。
在本发明的一实施例中,上述的数据管理步骤还包括当主机以混乱写入模式写入数据至逻辑区块时,从备用区中选择多个物理区块作为混乱替换物理区块并且在每一混乱替换物理区块中记录对两个逻辑区块所写入的数据。
在本发明的一实施例中,上述的存储器管理模块是以硬件形式配置在控制器中。
在本发明的一实施例中,上述的存储器管理模块是以固件形式储存在该闪存中。
在本发明的一实施例中,上述的存储器管理模块是以固件形式储存在控制器的程序存储器中。
本发明因采用多逻辑区块映射一个物理区块的结构来对闪存进行区块存取,因此可减少整并物理区块的次数,由此提升区块存取的速度。
为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
图1A与1B是根据已知技术绘示闪存的物理区块进行轮替的示意图。
图2是根据本发明实施例绘示闪存储存系统的概要方块图。
图3是根据本实施例绘示数据管理步骤的流程图。
图4是根据本实施例绘示逻辑区块与物理区块的映射关系的示意图。
图5A与5B是根据本发明实施例绘示替换物理区块的运作范例示意图。
[主要元件标号说明]
S、M、L:区块 100:闪存储存系统
110:控制器 110a:微处理器单元
110b:存储器管理模块 110c:闪存接口
110d:缓冲存储器 120:传输连接接口
130:闪存 130-0~130-N:物理区块
140-0~140-M:逻辑区块 200:主机
204:数据区 206:备用区
208:替换区块
S301、S303、S305、S307、S309:数据管理步骤。
具体实施方式
图2是根据本发明实施例绘示闪存储存系统的概要方块图。请参照图2,闪存储存系统100包括控制器110、传输连接接口120以及闪存130。
通常闪存储存系统100会与主机200一起使用,以使主机200可将数据写入至闪存储存系统100或从闪存储存系统100中读取数据。在本实施例中,闪存储存系统120为固态硬盘(Solid State Drive,SSD)。但必须了解的是,在本发明另一实施例中闪存储存系统120亦可以是存储卡或随身碟。
控制器110会执行以硬件形式或固件形式实作的多个指令以配合传输连接接口120与闪存130以进行数据的储存、读取与抹除等运作。控制器110包括微处理器单元110a、存储器管理模块110b、闪存接口110c与缓冲存储器110d。
微处理器单元110a用以与存储器管理模块110b、闪存接口110c与缓冲存储器110d等协同合作以进行闪存储存系统100的各种操作。
存储器管理模块110b是耦接至微处理器单元110a。存储器管理模块110b具有可由微处理器单元110a执行的多个机器指令以管理闪存130,例如执行平均磨损(wear leveling)功能、坏区块管理、维护映射表(mapping table)等的机器指令。特别是,在本发明实施例中,存储器管理模块110b包含可完成根据本实施例的数据管理步骤(如图3所示)的机器指令。具体来说,在本实施例中,存储器管理模块110b是以固件形式来实作在控制器110中,例如以程序存储器(例如,只读存储器(Read Only 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 randomaccess memory,SRAM)。然而,必须了解的是,本发明不限于此,动态随机存取存储器(Dynamic Random Access memory,DRAM)、磁阻式存储器(Magnetoresistive Random Access Memory,MRAM)、相变化存储器(PhaseChange 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),以区域来管理存储器某种程度上是彼此独立地操作以增加操作执行的平行程度且简化管理的复杂度。
此外,在本实施例中,控制器110会执行存储器管理模块110b的机械指令以如图1A与1B的方式来操作闪存130。也就是说,物理区块130-0至130-N会被分组为数据区204与备用区206且以前述使用替换物理区块208的轮替方式进行区块的存取,此外存储器管理模块110b会提供多个逻辑区块140-0至140-M(如图4所示)来映射关联为数据区204的物理区块以供主机200来存取。
值得一提的是,在本实施例中微处理器单元110a会执行存储器管理模块110b的机械指令以将每一物理区块130-0至130-N分割为多个物理部,并且每一逻辑区块140-0至140-M是映射每一物理区块130-0至130-N的物理部,因此当主机200存取逻辑区块140-0至140-M时,存储器管理模块110b会依据所映射的物理部来进行存取。以下将配合图式详细说明本实施例的数据管理步骤。
必须了解的是,在此描述闪存的运作时以“提取”、“搬移”、“交换”、“分割”等词来操作数据区204与备用区206中的物理区块是逻辑上的概念。也就是说,闪存区块的实际位置并未更动,而是逻辑上对闪存的物理区块进行操作。
图3是根据本实施例绘示数据管理步骤的流程图,且图4是根据本实施例绘示逻辑区块140-0至140-M与物理区块130-0至130-N的映射关系的示意图。
请参照图3与图4,控制器110的微处理器单元110a会执行存储器管理模块110b的机械指令以完成下述数据管理步骤。在步骤S301中,多个逻辑区块会被配置以供主机200来存取。如上所述,基于闪存的抹除与可编程特性,物理区块会以轮替方式来储存数据,因此在步骤S301中会配置逻辑区块140-0至140-M(如图4所示)以提供主机200存取的依据。
接着,在步骤S303中会分别地在物理区块中划分多个物理部,并且在步骤S305中会将所配置的逻辑区块分别地映射所划分的物理部。例如,如图4所示,在本实施例中每一物理区块130-0至130-N会被划分为上物理部与下物理部,每一逻辑区块140-0至140-M是映射其中一个物理区块130-0至130-N的上物理部或下物理部。换言之,在本实施例中一个物理区块会映射两个逻辑区块。在本实施例中,每一物理区块130-0至130-N中的物理部为连续页面地址。然而,在本发明另一实施例中亦可以不连续页面地址来分割物理区块,例如第0、2、4...页面地址为上物理部而第1、3、5...页面地址为下物理部。
之后,在步骤S307中会将上述多个逻辑区块映射至一个物理区块的映射关系记录在缓冲存储器110d中。例如,在本实施例中是以逻辑区块与物理区块映射表来储存在缓冲存储器110d中。
最后,在步骤S309中会依据主机200欲存取的逻辑区块来检视逻辑区块与物理区块映射表并且存取所映射的物理部。
值得一提的是,在进行如图1A与1B所述的写入运作期间,当完成对特定逻辑区块所映射的物理部的合并操作(即合并属于母子关系的物理部)后母区块将成为无效区块,因此会对母区块进行抹除操作以重新关联为备用区206以提供之后写入数据时使用。由于在本实施例中一个物理区块会映射多个逻辑区块,因此在合并后无效物理部所属的物理区块中仍存有其它逻辑区块所映射的有效物理部。此时,无效物理部所属的物理区块无法立刻被抹除,因此在此本实施例的架构(即多个逻辑区块映射一个物理区块)下必须以特定的写入步骤来避免无效物理部过于分散而造成物理区块的实际使用率降低。
图5A与5B是根据本发明实施例绘示替换物理区块的运作范例示意图。图5A是绘示此范利目前数据储存的状态,其中逻辑区块140-0是映射物理区块130-0的上物理部,逻辑区块140-1是映射物理区块130-0的下物理部,逻辑区块140-2是映射物理区块130-1的上物理部,逻辑区块140-3是映射物理区块130-1的下物理部,逻辑区块140-4是映射物理区块130-2的上物理部,逻辑区块140-5是映射物理区块130-2的下物理部,逻辑区块140-6是映射物理区块130-3的上物理部,并且逻辑区块140-7是映射物理区块130-3的下物理部。另外,在本范例中控制器110会主机200中依序地接收到欲写入数据至逻辑区块140-0、140-2、140-4与140-6的写入指令,并且在缓冲存储器110d中可记录2组母子区块的瞬时关系。
请参照图5B,当控制器110接收到对逻辑区块140-0的写入指令时其会从备用区206中提取一物理区块(例如,物理区块130-N)作为第一替换物理区块并且以类似图1B的(a)与(b)所示的运作将原始映射逻辑区块140-0的物理区块130-0的上物理部的有效旧数据以及欲写入的新数据写入至第一替换物理区块130-N的上物理部(如图5B的(a))。此时,控制器110即完成写入运作,并且会响应主机200已完成写入而处于待命状态。
接着,当控制器110接收到对逻辑区块140-2的写入指令时其会从备用区206中再提取一物理区块(例如,物理区块130-(N-1))作为第二替换物理区块并且以类似图1B的(a)与(b)所示的运作将原始映射逻辑区块140-2的物理区块130-1的上物理部的旧有效数据以及欲写入的新数据写入至第二替换物理区块130-(N-1)的上物理部(如图5B的(b))。此时,控制器110即完成写入运作,并且会响应主机200已完成写入而处于待命状态。
接着,当控制器110接收到对逻辑区块140-4的写入指令时,由于假设缓冲存储器110d中仅可记录2组母子区块的瞬时关系,因此控制器110会以类似图1B的(c)所示的运作将原始映射逻辑区块140-0的物理区块130-0的上物理部的剩余有效旧数据搬移至第一替换物理区块的上物理部,并且将物理区块130-0的上物理部标示为无效。此时,在逻辑区块与物理区块映射表中逻辑区块140-0会被更新为映射物理区块130-N的上物理部。值得一提的是,物理区块130-0上仍有逻辑区块140-1的数据,因此物理区块130-0并不会被抹除,而会处于仅使用部分储存空间的状态。由于逻辑区块140-0已完成数据的整并,因此第一替换物理区块的下物理部就可用作为逻辑区块140-4的替换物理区块。也就是说,控制器110会以类似图1B的(a)与(b)所示的运作将原始映射逻辑区块140-4的物理区块130-2的上物理部的旧有效数据以及欲写入的新数据写入至第一替换物理区块130-N的下物理部(如图5B的(c))。此时,控制器110即完成写入运作,并且会响应主机200已完成写入而处于待命状态。
最后,当控制器110接收到对逻辑区块140-6的写入指令时,类似上述的运作控制器110会以类似图1B的(c)所示的运作将原始映射逻辑区块140-2的物理区块130-1的上物理部的剩余有效旧数据搬移至第二替换物理区块的上物理部,并且将原始映射逻辑区块140-2的物理区块130-1的上物理部标示为无效。此时,逻辑区块140-2会被更新为映射物理区块130-(N-1)的上物理部。同样的,物理区块130-1上仍有逻辑区块140-3的数据,因此物理区块130-1并不会被抹除,而会处于仅使用部分储存空间的状态。然后,控制器110会以类似图1B的(a)与(b)所示的运作将与原始映射逻辑区块140-6的物理区块130-3的上物理部的旧有效数据以及欲写入的新数据写入至第二替换物理区块的下物理部(如图5B的(d))。此时,控制器110即完成写入运作,并且会响应主机200已完成写入而处于待命状态。
综合图5B的(a)~(d)所示,替换物理区块的上物理部会先被使用来写入该数据,并且在所有替换物理区块的上物理部皆被使用后才使用替换物理区块的下物理部写入数据。
值得一提的是,在类似上述运作后,由于在数据区中会产生仅部分数据为有效的物理区块,因此在图5B的(d)所示的状态下欲再写入数据至其它逻辑区块(即非逻辑区块140-4与140-6)时,控制器110会将其中一个仅含有部分有效物理部的物理区块进行整并。
例如,假设当主机200欲写入数据至逻辑区块140-7时,控制器110会先整并一个母子区块。例如,控制器110会以类似图1B的(c)所示的运作将原始映射逻辑区块140-4的物理区块130-2的上物理部的剩余有效旧数据搬移至第一替换物理区块的下物理部,并且将原始映射逻辑区块140-4的物理区块130-2的上物理部标示为无效。此时,控制器110例如会从备用区206中提取物理区块130-(N-2)作为新的替换物理区块并且将物理区块130-0的有效部分(即下物理部)的数据搬移至新的替换物理区块130-(N-2)的上物理部,并且将原始映射逻辑区块140-1的物理区块130-0的下物理部标示为无效。然后,于物理区块130-(N-2)的下物理部中以如图1B的(a)与(b)所示的运作继续写入逻辑区块140-7的数据。此时,逻辑区块140-1会被更新为映射物理区块130-(N-2)的上物理部,且物理区块130-0已无任何有效数据因此物理区块130-0会被抹除并关联为备用区206。
值得一提是,在本发明实施例中,在图5B的(c)所示的步骤中倘若控制器110是对逻辑区块140-0与逻辑区块140-4执行前述的混乱写入模式时,则此时控制器110不会立刻整并逻辑区块140-0,而会直接依序地在替换物理区块130-N中写入欲写入至逻辑区块140-0与逻辑区块140-4的数据。也就是说,在进入混乱模式的每一替换物理区块(参考为混乱替换物理区块)中可记录对两个逻辑区块所写入的数据。基此,一个混乱替换物理区块可支持两个进行混乱写入模式的逻辑区块,因此可以提升在混乱写入模式时的物理区块利用率,并且提升混乱写入模式的速度。
综上所述,本发明将物理区块划分为多个物理部,并且以所划分的物理部来映射逻辑区块。基此,以使用多逻辑区块映射一个物理区块的区块存取下可减少整并物理区块的次数,由此提升区块存取的速度。特别是,闪存储存系统进入混乱写入模式时由于一个物理区块可支持多个逻辑区块的混乱写入,因此大幅提升混乱写入模式的速度。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。