闪存装置以及资料更新方法 【技术领域】
本发明是有关于一种闪存装置及其资料更新方法,特别是有关于一种以区块为管理单位的闪存装置及其资料更新方法。
背景技术
闪存装置(Flash Memory apparatus)实质上是由一存储器控制器和多个储存区块(Block)所组成,其中每个储存区块又包括了多个页面(Page)。在闪存装置的资料更新机制中,当需要将一笔资料写入至某个储存区块的某个特定页面时,则必须判断该页面是否已经有写入资料,若该页面尚为空白状态,则可直接将该笔资料写入。反之,若该页面已经存有资料,则无法采取直接覆写的方法,而必须使用另一个空白的储存区块来进行资料的更新。
举例来说,参考图1,图中包括了外部电脑10和闪存装置11。闪存装置11中包括了一存储器控制器12,负责控制资料的读取和写入。在图1中,外部电脑10提供了一欲写入闪存装置11的资料X,假设欲写入闪存装置11中的目的储存区块b13的页面1,由于页面1为空白的无资料状态,因此存储器控制器12可直接将资料X填入页面1。另一方面,假设资料X欲写入闪存装置11中的目的储存区块b13的页面2,由于该页面已经存有资料,因此无法写入。对于这种情况,存储器控制器12利用另一个空白的储存区块b14,先将目的储存区块b13的页面0和页面1复制到空白储存区块b14相对应的页面上,接着把资料X写入空白储存区块b14对应的页面2,再将页面3以下的其他页面的资料复制到空白储存区块b14相对应的页面上,来达到资料的更新。而原本目的储存区块b13的所有资料则被抹除(Erase),因此其可视为另一空白区块,用于后续的资料复制程序。
这样的方法即利用所谓的母/子储存区块(Mother/Child Block)关系来执行资料的更新,原本欲更新的目的储存区块b13即为母储存区块,而空白储存区块b14即为子储存区块。然而,对于上述的现有资料写入方法,由于闪存装置的储存区块是有限的,若欲写入的目的储存区块数量太多,则有可能占用太多的空白区块来执行资料的复制,因此会造成效率不佳以及耗费成本的缺点。
【发明内容】
基于以上的考量,本发明提出一种闪存装置及其资料更新方法,特别是低成本且高效率的闪存装置及资料更新方法。
有鉴于此,本发明揭露一种闪存装置,包括多个储存区块和一存储器控制器。储存区块包括一第一储存区块,第一储存区块包括一第一页面。存储器控制器用以接收欲写入第一页面的一第一资料,当第一页面为已写入状态时,从储存区块中挑选出一者做为一第一快取区块,将第一资料写入第一快取区块的一第一快取页面,纪录第一储存区块的编号和第一页面的编号于第一快取页面,以及当接收到一资料更新命令时,根据纪录于第一快取页面中第一储存区块编号和第一页面编号更新第一储存区块。
此外,本发明另外揭露一种资料更新方法,用于一闪存装置,闪存装置包括一第一储存区块,第一储存区块包括一第一页面。该资料更新方法包括接收欲写入第一页面的一第一资料,当第一页面为已写入状态时,从储存区块中挑选出一者做为一第一快取区块。将第一资料写入第一快取区块的一第一快取页面,纪录第一储存区块的编号和第一页面的编号于第一快取页面,以及当接收到一资料更新命令时,根据纪录于第一快取页面中第一储存区块的编号和第一页面的编号更新第一储存区块。
【附图说明】
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
图1显示现有外部电脑和闪存装置的通讯架构示意图;
图2显示根据本发明一实施例所述的闪存装置的方块图;
图3显示根据本发明一实施例所述的闪存装置的资料写入流程图;
图4显示根据本发明另一实施例所述的闪存装置的方块图;以及
图5显示根据本发明一实施例所述的闪存装置的另一资料写入流程图。
主要元件符号说明:
10~外部电脑 11、20~闪存装置
12~存储器控制器 b1、b2、...、bM~储存区块
c1、c2、c24~快取区块
【具体实施方式】
为使本发明的上述目地、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下:
图2显示根据本发明一实施例所述的闪存装置20的方块图。闪存装置20包括一存储器控制器12和M个储存区块,其编号依序为b1、b2、b3...b(M-1)和bM。其中,每一储存区块分别具有多个页面,编号分别为0、1、2、3...等等,如图2所示。假设存储器控制器12接收到资料X、Y和Z等三笔资料,分别用以写入储存区块b1的页面3、储存区块b2的页面2和储存区块b3的页面0。由于以上三个储存区块的三个页面都已为具有资料的写入状态,因此存储器控制器12无法直接将资料写入三个不同的储存区块。此时,存储器控制器12必须从其他的储存区块中挑出一空白储存区块,当作资料更新用的快取区块。该快取区块同样具有多个页面,编号分别为0、1、2、3...等等,如图2所示。
接着,存储器控制器12将所接收的用以写入储存区块b1页面3的资料X写入快取区块的页面0(编号为0的页面),并将资料X原本应写入的储存区块的编号和页面的编号纪录于快取区块页面0中的预留区(Spare Area),亦即”储存区块b1,页面3”的纪录讯息。接着,存储器控制器12将所接收的用以写入储存区块b2页面2的资料Y写入快取区块的下个页面页面1,并将资料Y原本应写入的储存区块的编号和页面的编号纪录于快取区块页面1中的预留区,亦即”储存区块b2,页面2”的纪录讯息。同样的,对于资料Z的写入,存储器控制器12将所接收的用以写入储存区块b3页面0的资料Z写入快取区块的下个页面页面2,并将资料Z原本应写入的储存区块的编号和页面的编号纪录于快取区块页面2中的预留区,亦即”储存区块b3,页面0”的纪录讯息。
在上述实施例中,只需要一个快取区块即可储存多笔欲写入不同储存区块的资料。此后,当该快取区块建置好且备妥之后,可随时用来进行资料的更新。例如当使用者决定对资料进行更新时,透过对操作系统执行操作向电脑发出资料更新的命令。当存储器控制器12接收到该资料更新命令时,便会根据快取区块内所储存的资料X、Y和Z,以及保留区中所纪录的相关信息来更新资料。举例来说,存储器控制器12根据写入于快取区块页面0中的资料X,以及纪录于页面0预留区中的储存区块编号和页面编号讯息”储存区块b1,页面3”,即可知道资料X是用以更新至储存区块b1的页面3,因此利用另一空白储存区块,将资料X写入该空白储存区块的页面3,而空白储存区块其他页面的资料则由储存区块b1的相关对应页面复制过来。资料更新完成之后,原本的储存区块b1则会被抹除,并释放出来成为另一个新的空白区块。同理,资料Y和Z的更新流程亦如上所述,因此不再重复叙述。
图3显示根据本发明一实施例所述的闪存装置的资料写入流程图,其中闪存装置具有多个储存区块,每一储存区块具有多个页面。流程一开始,首先接收欲写入闪存装置所包括的第一储存区块的第一页面的第一资料(步骤S30)。接着,判断该欲写入的第一页面是否为可写入状态(步骤S31)。若该欲写入的第一页面非为可写入状态,则从闪存装置的多个储存区块中挑出一空白储存区块当作快取区块(步骤S32)。若该欲写入的第一页面为可写入状态,则直接将所接收的第一资料写入该第一页面(步骤S33)。于步骤S32之后,将第一资料写入快取区块的一页面,并纪录第一储存区块的编号和第一页面的编号于该页面的保留区(步骤S34)。接着,再接收欲写入闪存装置所包括的第二储存区块的第二页面的第二资料(步骤S35)。接着,判断该欲写入的第二页面是否为可写入状态(步骤S36)。若该欲写入的第二页面为可写入状态,则直接将所接收的第二资料写入该第二页面(步骤S37)。若该欲写入的第二页面非为可写入状态,将第二资料写入快取区块的另一页面,并纪录第二储存区块的编号和第二页面的编号于该另一页面的保留区(步骤S38)。最后,于接收到使用者的资料更新命令时,根据快取区块两个页面所写入的第一资料和第二资料,以及其分别对应的纪录讯息”第一储存区块编号,第一页面编号”和”第二储存区块编号,第二页面编号”,来更新第一储存区块和第二储存区块(步骤S39)。
在以上的实施例中,提到了可用单一快取区块执行多个储存区块的更新任务,然而,由于一个闪存装置是由多个储存区块构成,因此可根据上述实施例的概念,进一步将闪存装置中所有的储存区块分成多个储存区块群组,每一群组对应一快取区块,详细如下所述。
图4显示根据本发明另一实施例所述的闪存装置20的方块图。在图4中,与第一实施例相同,闪存装置20由M个储存区块构成,编号分别为b1、b2、...、bM。假设M为1024,亦即闪存装置20由1024个储存区块构成,则存储器控制器12可从这1024个储存区块中选出一既定比例的N者做为快取区块,编号为c1、c2、...、cN。假设N为24,则原本储存区块的数目即剩下M-N=1000个。在这情况下,存储器控制器12可将这1000个储存区块平均分配给24个快取区块使用,每个快取区块分配到个储存区块。如此一来,编号b1至b42的储存区块所构成的第一储存区块群组分配给编号c1的快取区块,-而编号b43至b84的储存区块所构成的第二储存区块群组分配给编号c2的快取区块等等。
根据多个组成的储存区块群组,当存储器控制器12接收到一资料,用以写入某一储存区块群组所包括的某一储存区块时,存储器控制器12可用对应于该群组的快取区块来执行资料的更新。例如存储器控制器12接收到资料X、Y和Z等三笔欲写入的资料,其中资料X用以写入第一储存区块群组内的储存区块b2的页面3,资料Y用以写入第一储存区块群组内的储存区块b5的页面1,而资料Z用以写入第二储存区块群组内的储存区块b55的页面7。在这情况下,由于资料X和Y都用以写入同一储存区块群组内的储存区块,因此只使用第一储存区块群组所对应的快取区块c1来更新这两笔资料。其更新的原理与第一实施例相同,因此不再重复叙述。另一方面,由于资料Z用以写入另一储存区块群组内的储存区块,因此需使用第二储存区块群组所对应的快取区块c2来更新资料。以这样的方式,当有资料欲更新至不同储存区块群组内的储存区块时,可使用对应的快取区块来更新资料。因此,使用少数(N)的快取区块即可有效管理闪存装置中所有的储存区块。
另外,在以上的实施例中,储存区块群组内所包括的储存区块都是连续的(每42个连续编号为一组)。然而,在另一个实施例中,储存区块群组内所包括的储存区块也可以是不连续的。例如,本发明可将每隔编号42的所有储存区块组成同一群组,则储存区块b1、b43、b85...等的储存区块将对应至快取区块c1,而储存区块b2、b44、b86...等的储存区块将对应至快取区块c2,其他以此类推。这样的做法是因为当欲进行资料更新的储存区块过于连续集中时,会造成只用到少数快取区块的现象。为了让所有的快取区块均能平均使用,因此储存区块的分组方式可为不连续编号。
此外,在另一实施例中,储存区块的分组可采用随机的方式。例如当储存区块b1至b1000中,一开始第一笔资料欲写入其中的储存区块b3,则可分配快取区块c1供其资料更新。接着,若有第二笔资料欲写入储存区块b300,则可分配快取区块c2供其资料更新,一直到第24笔资料需要更新时,将会用过所有的24个快取区块。此时,若出现第25笔资料需要更新于储存区块b10,则可将储存区块b10分配给这24个快取区块的任一者,其他以此类推。用这样的随机方式,可根据所需更新的储存区块的发生顺序来分组,进行资料更新。
此外,在另一实施例中,上述图3流程图中的步骤S31、S33、S36和S37甚至是可以忽略而不影响本发明的功效,如图5的流程图所示。在图5中,首先接收欲写入闪存装置所包括的第一储存区块的第一页面的第一资料(步骤S50)。接着,从闪存装置的多个储存区块中挑出一空白储存区块当作快取区块(步骤S51)。接着,将第一资料写入快取区块的一页面,并纪录第一储存区块的编号和第一页面的编号于该页面的保留区(步骤S52)。接着,再接收欲写入闪存装置所包括的第二储存区块的第二页面的第二资料(步骤S53)。接着,将第二资料写入快取区块的另一页面,并纪录第二储存区块的编号和第二页面的编号于该另一页面的保留区(步骤S54)。最后,根据快取区块两个页面所写入的第一资料和第二资料,以及其分别对应的纪录讯息”第一储存区块编号,第一页面编号”和”第二储存区块编号,第二页面编号”,来更新第一储存区块和第二储存区块(步骤S55)。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。