数据储存装置及其数据维护方法与流程

文档序号:19925311发布日期:2020-02-14 16:50阅读:146来源:国知局
数据储存装置及其数据维护方法与流程

本发明系关于一种数据储存装置,特别系关于以特定方式维护预取区域中的数据的数据储存装置。



背景技术:

闪存为一种普遍的非挥发性数据储存装置,系以电性方式抹除与程序化。以非及闸型的闪存(即nandflash)为例,常用作记忆卡(memorycard)、通用序列汇流排闪存装置(usbflashdevice)、固态硬盘(ssd)、嵌入式闪存模组(emmc)…等使用。

闪存(如,nandflash)的储存阵列包括多个个区块(blocks),其中浮置闸极电晶体可用以构成闪存。浮置闸极电晶体中的浮置闸极,可捕捉的电荷以储存数据。另外,闪存中的实体页面与主机装置所指定的逻辑页面的转换关系需要一个实体转逻辑表记录。然而,需要很大的容量才可以将全部的实体逻辑表载入随机存取存储器中。如何有效更新管理随机存储器中所载入的数据是一个重要的课题。



技术实现要素:

本发明所提供的数据储存装置以及数据维护方法可藉由三种表来维护储存于随机存储器中的数据。

本发明提供一种数据储存装置。数据储存装置包括一闪存以及一随机存取存储器。闪存包括多个区块,每一区块包括多个页面,每一页面具有一逻辑地址以及一实体地址,其中闪存具有一数据链接关系表用以记录所有页面的逻辑地址以及实体地址的多个对应关系,数据链接关系表被分割为多个数据链接关系集合,每一数据链接关系集合具有多于一个对应关系,并且每一数据链接关系集合相应于一集合指标。随机存取存储器具有一预取区域、一顺序表、一反序表以及一预取区域对应表,其中预取区域具有多个区段用以储存数据链接关系表中部分的数据链接关系集合,预取区域对应表具有多个区段对应栏用以记录相应于预取区域中的数据链接关系集合的集合指标,顺序表用以记录数据链接关系集合自预取区域中被读取的顺序,并且反序表用以记录数据链接关系集合自预取区域中被读取的反向的顺序。

其中,区段依序具有多个共用指标,预取区域对应表中的区段对应栏依序相应于预取区域中的区段,顺序表具有多个顺序栏依序相应于预取区域中的区段,反序表具有多个反序栏依序相应于预取区域中的区段,并且区段对应栏、顺序栏、反序栏与其相应的区段具有相同的共用指标。顺序表中的每一顺序栏系用以储存另一顺序栏的共用指标,以分别指向在相应于顺序栏的区段之前上一个被读取的数据链接关系集合的区段所相应的顺序栏。反序表中的每一反序栏系用以储存另一反序栏的共用指标,以分别指向在相应于反序栏的区段之后下一个被读取的数据链接关系集合的区段所相应的反序栏。

另外,数据储存装置更包括一控制器用以根据一读取命令或者一写入命令,找出包括读取命令或者写入命令所指定的页面的一第一对应关系的一第一数据链接关系集合,并且根据预取区域对应表中是否存在相应于第一数据链接关系集合的一第一集合指标,判断第一数据链接关系集合是否已被载入预取区域中,其中第一数据链接关系集合为数据链接关系集合中的一者,第一集合指标为集合指标中的一者,并且第一对应关系为对应关系中的一者。当预取区域对应表中存在相应于第一集合指标时,控制器根据用以储存第一集合指标的区段对应栏的共用指标,读取预取区域中所相应的区段,以获得第一数据链接关系集合,并且读取储存于随机存取存储器中的第一数据链接关系集合中的数据以进行写入命令或者读取命令。当预取区域对应表中不存在第一集合指标时,控制器判断预取区域是否具有空白的区段,其中当控制器判断预取区域的区段具有空白的一第一区段时,控制器自闪存中的数据链接关系表读取第一数据链接关系集合,将第一数据链接关系集合载入空白的第一区段。

在另一实施例中,随机存取存储器更包括一头指标以及一尾指标,头指标为预取区域中最后一个被读取的区段的共用指标,并且尾指标为预取区域中最久未被读取的区段的共用指标。当控制器判断预取区域不具有空白的区段时,控制器根据尾指标判断预取区域中最久未被读取的数据链接关系集合,以将第一数据链接关系集合的数据写入预取区域中最久未被读取的数据链接关系集合所属的区段。当控制器判断预取区域不具有空白的区段时,控制器根据头指标判断预取区域中最后被读取的数据链接关系集合所相应的区段,以更新顺序表以及反序表。

本发明亦提供一种数据维护方法,适用于具有一闪存的一数据储存装置,其中闪存包括多个区块,每一区块包括多个页面,并且每一页面具有一逻辑地址以及一实体地址。数据维护方法包括:接收一读取命令或者一写入命令;根据所接收的读取命令或者写入命令,判断包括读取命令或者写入命令所指定的页面的一第一对应关系的一第一数据链接关系集合;根据一预取区域对应表中是否存在相应于第一数据链接关系集合的一第一集合指标,判断第一数据链接关系集合是否已被载入一预取区域中,其中预取区域对应表具有多个区段对应栏依序相应于预取区域中的多个区段;当预取区域对应表中不存在第一集合指标时,判断预取区域中是否具有空白的区段;以及当预取区域的区段具有空白的一第一区段时,执行一载入程序;以及自预取区域读取第一数据链接关系集合中的数据,以执行写入命令或者读取命令。

在一实施例中载入程序包括:自闪存中的一数据链接关系表读取第一数据链接关系集合,以将第一数据链接关系集合载入空白的第一区段;将相应于第一数据链接关系集合的第一集合指标,写入预取区域对应表中相应于第一区段的区段对应栏。当第一区段是预取区域中第一个被载入的数据时,载入程序更包括:将一头指标定义为共用指标中第一区段的一第一共用指标;以及将一尾指标定义为共用指标中第一区段的第一共用指标。当第一区段不是预取区域中第一个被载入的数据时,载入程序更包括:根据一头指标,获得在预取区域中最后一个被读取的数据链接关系集合所属的一第二区段;将一顺序表中相应于第二区段的一第二顺序栏的共用指标,写入相应于第一区段的第一顺序栏,其中顺序表具有多个顺序栏依序相应于预取区域中的区段,并且第一顺序栏以及第二顺序栏为反序栏中的两者;将一反序表中相应于第一区段的一第一反序栏的共用指标,写入第二区段所相应的反序栏中的一第二反序栏,其中反序表具有多个反序栏依序相应于预取区域中的区段,并且第一反序栏以及第二反序栏为反序栏中的两者;将一头指标定义为共用指标中第一区段的一第一共用指标;以及将一特定值写入反序栏中相应于第一反序栏中。

在另一实施例中,当预取区域不具有空白的区段时,执行一取代程序,并且取代程序包括:根据一尾指标判断预取区域中最久未被读取的数据链接关系集合所属的一第三区段;将第一数据链接关系集合的数据写入第三区段;将相应于第一数据链接关系集合的第一集合指标,写入预取区域对应表中相应于第三区段的区段对应栏;以及根据一头指标,获得在预取区域中最后一个被读取的数据链接关系集合所属的一第四区段;将一顺序表中的相应于第四区段的一第四顺序栏的共用指标,写入顺序表中相应于第三区段的一第三顺序栏,其中顺序表具有多个顺序栏依序相应于预取区域中的区段,顺序栏与所相应的区段具有相同的共用指标,并且第三顺序栏以及第四顺序栏为顺序栏中的两者;将一反序表中相应于第三区段的一第三反序栏的共用指标,写入反序表中相应于第四区段的一第四反序栏,其中反序表具有多个反序栏依序相应于预取区域中的区段,反序栏与所相应的区段具有相同的共用指标,并且第三反序栏以及第四反序栏为顺序栏中的两者;读取第三反序栏,以获得反序栏中一第五反序栏的共用指标;将头指标定义为第三顺序栏的一第三共用指标;以及将尾指标定义为第五反序栏的一第五共用指标;在定义尾指标为第五共用指标后,将一特定值写入第三反序栏以及相应于第五共用指标的一第五顺序栏。

又另一实施例中,当预取区域对应表中的一第六区段存在第一集合指标时,执行一更新程序,其中区段依序具有多个共用指标,更新程序更包括:读取在一反序表中第六区段所相应的一第六反序栏,以获得在第六区段之后下一个被读取的一第七区段,其中反序表具有多个反序栏依序相应于预取区域中的区段,反序栏与所相应的区段具有相同的共用指标,并且第六反序栏为反序栏中的一者;在一顺序表中相应于第七区段的一第七顺序栏中,写入第六区段所相应的一第六顺序栏中所储存的共用指标,其中顺序表具有多个顺序栏依序相应于预取区域中的区段,顺序栏与所相应的区段具有相同的共用指标,并且第六顺序栏以及第七顺序栏为顺序栏中的两者;以及根据一尾指标判断预取区域中最久未被读取的数据链接关系集合所属的区段是否为第六区段。当预取区域中最久未被读取的数据链接关系集合所属的区段为第六区段时,更新程序更包括:根据一头指标,获得在预取区域中最后一个被读取的数据链接关系集合所属的一第八区段;在顺序栏中相应于第六区段的第六顺序栏中,写入顺序表中第八区段所相应的一第八顺序栏的共用指标;将反序表中相应于第六区段的第六反序栏的共用指标,写入反序表中相应于第八区段的一第八反序栏;将头指标定义为共用指标中第六顺序栏的一第六共用指标;将尾指标定义为共用指标中相应于第七区段的一第七共用指标;以及将一特定值写入第六反序栏。当预取区域中最久未被读取的数据链接关系集合所属的区段为与第六区段相异的一第十区段时,更新程序更包括:根据一头指标,获得在预取区域中最后一个被读取的数据链接关系集合所属的一第八区段;读取第六顺序栏,获得相应于在第六区段之前一个被写入的一第九区段的一第九共用指标;将第六反序栏中所储存的共用指标,写入反叙栏中相应于第九共用指标的一第九反序栏;在第六反序栏中所储存的共用指标已被写入第九顺序栏之后,在顺序栏中相应于第六区段的第六顺序栏中,写入顺序表中第八区段所相应的一第八顺序栏的共用指标;将一反序表中相应于第六区段的一第六反序栏的共用指标,写入反序表中相应于第八区段的一第八反序栏;将头指标定义为共用指标中第六顺序栏的一第六共用指标;以及将一特定值写入第六反序栏。

本发明另提供一种数据维护方法,适用于一数据储存装置,其中闪存包括多个区块,每一区块包括多个页面,每一页面具有一逻辑地址以及一实体地址。数据维护方法包括:在闪存被上电时,根据至少一读取命令或者至少一写入命令,在一随机存储器中的一预取区域中,载入一数据链接关系表中的多个数据链接关系集合的一部份,其中每一数据链接关系集合相应于一集合指标;建立一预取区域对应表,以记录相应于预取区域中的数据链接关系集合的集合指标;建立一反序表,以记录数据链接关系集合自预取区域中被读取的反向的顺序;以及建立一顺序表,以记录数据链接关系集合自预取区域中被读取的顺序。

附图说明

图1为本发明所提供的一电子系统的一种实施例的方块图。

图2为本发明所提供的一数据链接关系表的一种实施例的方块图。

图3为本发明所提供的一随机存取存储器中的多个表的一种实施例的示意图。

图4为本发明所提供的一随机存取存储器中的多个表的另一种实施例的示意图。

图5为本发明所提供的一随机存取存储器中的多个表的另一种实施例的示意图。

图6为本发明所提供的一随机存取存储器中的多个表的另一种实施例的示意图。

图7a为本发明所提供的一随机存取存储器中的多个表的另一种实施例的示意图。

图7b为本发明所提供的一随机存取存储器中的多个表的另一种实施例的示意图。

图8为本发明所提供的一随机存取存储器中的多个表的另一种实施例的示意图。

图9为本发明所提供的一数据维护方法的一种实施例的流程图。

图10a~10f为本发明所提供的一数据维护方法的另一种实施例的流程图。

附图标记说明

100电子系统;

120主机;

140数据储存装置;

160控制器;

162运算单元;

164永久存储器;

166随机存取存储器;

180闪存;

tb1数据链接关系表;

mr_0~mr_mx对应关系;

ts_0~ts_m数据链接关系集合;

cix_0~cix_n共用指标;

ca预取区域;

s_0~s_n区段;

se_tb顺序表;

se_0~se_n顺序栏;

smr_tb预取区域对应表;

smr_0~smr_n区段对应栏;

rse_tb反序表;

rse_0~rse_n反序栏;

hix头指标;

tix尾指标;

s900~s902、s1000~s1090步骤。

具体实施方式

以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。

图1为本发明所提供的一电子系统的一种实施例的方块图。电子系统100包括一主机120以及一数据储存装置140。数据储存装置140包括一闪存180以及一控制器160,且可根据主机120所下达的命令操作。控制器160包括一运算单元162、一永久存储器(如,唯读记忆体rom)164以及随机存取存储器(ram)166。永久存储器164与所载的程序码、数据组成韧体(firmware),由运算单元162执行,使控制器160基于该韧体控制该闪存180。随机存取存储器(ram)166用以载入程序码与参数以提供控制器160根据所载入的程序码与参数动作。闪存180包括多个区块,每一区块包括多个页面,每一页面具有一逻辑地址以及一实体地址,其中实体地址为页面在闪存180中固定的地址,逻辑地址为主机120以及控制器160给页面定义的地址。另外,闪存180中更包括可由控制器160动态更新的一数据链接关系表tb1,其中数据链接关系表tb1用以记录所有页面的逻辑地址以及实体地址的多个对应关系。值得注意的是,闪存180以区块为最小单位进行抹除,并且页面为最小单位进行写入。

图2为本发明所提供的一数据链接关系表的一种实施例的方块图。如图2所示,数据链接关系表tb1中包括所有页面的逻辑地址以及实体地址的对应关系mr_p0~mr_pmx,其中每一对应关系mr_p0~mr_pmx分别对应到闪存180中的一页面,并且对应关系mr_p0~mr_pmx中的任两者不对应到同一个页面。另外,数据链接关系表tb1被分割为多个数据链接关系集合ts_0~ts_m,每一数据链接关系集合ts_0~ts_m具有多于一个对应关系。举例而言,数据链接关系集合ts_0具有对应关系mr_p0~mr_px、数据链接关系集合ts_1具有对应关系mr_px+1~mr_p2x,依此类推。在本实施例中,每一数据链接关系集合ts_0~ts_m具有x+1个对应关系,但本发明不限于此。在其他实施例中,每一数据链接关系集合可具有不同数量的对应关系,并且数据链接关系集合所具有的链接关系的数量可由开发者自行决定或者由控制器160动态调整。值得注意的是,每一数据链接关系集合ts_0~ts_m相应于一集合指标。在一实施例中,集合指标可为0xaa、0xbb、0xcc、0x128等16进制数值。

当数据储存装置140被上电后,控制器160可将数据链接关系表tb1载入随机存取存储器166中的一预取区域,以进行读取以及更新。然而,随着闪存180的记忆体容量的增加,数据链接关系表tb1也越来越大。在随机存取存储器166中所规划的预取区域不够储存整个数据链接关系表tb1的情况下,控制器160则根据目前所需的数据将数据链接关系表tb1中的部分数据链接关系集合载入预取区域中。详细而言,当预取区域ca还有空间可以载入数据链接关系集合ts_0~ts_m中的至少一者时,控制器160进行一载入程序,以将所需的数据链接关系集合载入预取区域的空白处。当预取区域已被写满并且需要载入新的数据链接关系集合ts_0~ts_m时,控制器160进行一取代程序,以找出最久未被读取的数据链接关系集合,以将新的数据链接关系集合覆盖在最久未被读取的数据链接关系集合上。当控制器160所需要的数据链接关系集合已存在在预取区域中时,控制器160则进行一更新程序,以更新最新的读取状态。

图3为本发明所提供的一随机存取存储器中的表的一种实施例的方块图。如图3所示,当数据储存装置140被上电后,控制器160在随机存取存储器166中建立空白的一预取区域对应表smr_tb、一反序表rse_tb以及一顺序表se_tb,以记录预取区域ca中数据的状态。

预取区域ca具有多个区段s_0~s_n用以储存数据链接关系表tb1中部分的数据链接关系集合,其中一个区段用以储存一个数据链接关系集合。换言之,区段s_0~s_n的数量小于数据链接关系集合ts_0~ts_m的数量,也就是n<m。

预取区域对应表smr_tb具有多个区段对应栏smr_0~smr_n用以记录相应于预取区域ca中的数据链接关系集合ts_0~ts_m的集合指标,其中预取区域对应表smr_tb中的区段对应栏smr_0~smr_n依序相应于预取区域ca中的区段s_0~s_n。值得注意的是,预取区域对应表smr_tb中每一区段对应栏smr_0~smr_n的初始值皆为一特定值。在本实施例中,特定值为0xffff,但本发明不限于此。另外,数据链接关系集合ts_0~ts_m的集合指标皆不等于特定值。

顺序表se_tb用以记录数据链接关系集合ts_0~ts_m自预取区域ca中被读取的顺序,其中顺序表se_tb具有多个顺序栏se_0~se_n依序相应于预取区域ca中的区段s_0~s_n。顺序表se_tb中的每一顺序栏se_0~se_n系用以储存另一顺序栏的共用指标,以分别指向在相应于顺序栏的区段之前上一个被读取的数据链接关系集合的区段所相应的顺序栏。值得注意的是,顺序表se_tb中每一顺序栏se_0~se_n的初始值皆为一特定值。在本实施例中,特定值为0xffff,但本发明不限于此。

反序表rse_tb用以记录数据链接关系集合ts_0~ts_m自预取区域ca中被读取的反向的顺序,其中反序表rse_tb具有多个反序栏rse_0~rse_n依序相应于预取区域ca中的区段s_0~s_n。反序表rse_tb中的每一反序栏rse_0~rse_n系用以储存另一反序栏的共用指标,以分别指向在相应于反序栏的区段之后下一个被读取的数据链接关系集合的区段所相应的反序栏。值得注意的是,反序表rse_tb中每一反序栏rse_0~rse_n的初始值皆为一特定值。在本实施例中,特定值为0xffff,但本发明不限于此。

值得注意的是,在一实施例中,区段s_0~s_n依序具有特定的共用指标cix_0~cix_n。区段对应栏smr_0~smr_n与其相应的区段s_0~s_n具有相同的共用指标cix_0~cix_n。顺序栏se_0~se_n与其相应的区段s_0~s_n具有相同的共用指标cix_0~cix_n。反序栏rse_0~rse_n与其相应的区段s_0~s_n具有相同的共用指标cix_0~cix_n。详细而言,区段s_0、顺序栏se_0、区段对应栏smr_0以及反序栏rse_0的共用指标皆为cix_0。区段s_1、顺序栏se_1、区段对应栏smr_1以及反序栏rse_1的共用指标皆为cix_1。区段s_2、顺序栏se_2、区段对应栏smr_2以及反序栏rse_2的共用指标皆为cix_2,依此类推。值得注意的是,每一共用指标cix_0~cix_n皆不等于特定值。在一实施例中,共用指标cix_0~cix_n依序为0x0、0x1、0x2、0x3等十六进位数值,但本发明不限于此。

综上所述,控制器160建立预取区域对应表smr_tb,以记录相应于预取区域ca中的数据链接关系集合ts_0~ts_m的集合指标。控制器160建立反序表rse_tb,以记录数据链接关系集合ts_0~ts_m自预取区域ca中被读取的反向的顺序。控制器160建立顺序表se_tb,以记录数据链接关系集合ts_0~ts_m自预取区域ca中被读取的顺序。在一实施例中,控制器160更用以在随机存取存储器166中建立一头指标hix以及一尾指标tix,其中头指标hix以及尾指标tix也可以建立于其他记忆体或者电路中,本发明不限于此。头指标hix为预取区域ca中最后一个被读取的区段s_0~s_n的共用指标cix_0~cix_n,以指向预取区域ca中最后一个被读取的区段s_0~s_n。尾指标tix为预取区域ca中最久未被读取的区段s_0~s_n的共用指标cix_0~cix_n,以指向预取区域ca中最久未被读取的区段s_0~s_n。值得注意的是,由于彼此相应的区段、顺序栏、区段对应栏以及反序栏具有相同的共用指标,故头指标hix以及尾指标tix同时也指向相应的顺序栏、区段对应栏以及反序栏。在本实施例中,控制器160可根据尾指标tix,选择预取区域ca中的多个区段s_0~s_n中的一者。换言之,控制器160可根据尾指标tix选择预取区域ca中最久未被读取的区段(最久未被读取的数据链接关系集合),以将新的数据链接关系集合载入所选择的区段。另外,控制器160可根据一头指标hix、反序表rse_tb中的数据以及顺序表se_tb中的数据,更新反序表rse_tb以及顺序表se_tb。接着,以下段落将自图3至图8依序说明预取区域ca、预取区域对应表smr_tb、反序表rse_tb以及顺序表se_tb之间的关系。

在图3初始状态的实施例中,当控制器160接收到一读取命令或者一写入命令时,控制器160根据所接收的读取命令或者写入命令,找出包括读取命令或者写入命令所指定的页面的一第一对应关系的一第一数据链接关系集合。举例而言,读取命令或者写入命令指示的页面的逻辑地址与实体地址的对应关系是储存于数据链接关系集合ts_2,控制器160则根据所接收的读取命令或者写入命令得知所指定的页面,并找到对应的数据链接关系集合ts_2。接着,控制器160根据预取区域对应表smr_tb中是否存在相应于第一数据链接关系集合ts_2的集合指标,判断数据链接关系集合ts_2是否已被载入预取区域ca。举例而言,数据链接关系集合ts_2的集合指标为0xaa。如图3所示,若预取区域ca皆未写入任何数据链接关系集合时,预取区域对应表smr_tb中所有区段对应栏smr_0~smr_n皆为0xffff。因此,在本实施例中,控制器160判断数据链接关系集合ts_2的集合指标0xaa不存在于预取区域对应表smr_tb中。换言之,控制器160根据数据链接关系集合ts_2的集合指标0xaa不存在于预取区域对应表smr_tb中,判断预取区域ca中不具有数据链接关系集合ts_2。接着,控制器160判断预取区域ca是否具有空白的区段s_0~s_n。如图3所示,预取区域ca的区段s_0~s_n皆是空白的,控制器160选择一空白的区段。在本实施例中,控制器160从最底部的区段开始选择,故控制器160选择区段s_n。接着,控制器160自闪存180中的数据链接关系表tb1读取数据链接关系集合ts_2,以将数据链接关系集合ts_2载入所选择的空白的区段s_n。接着,控制器160更新预取区域对应表smr_tb、顺序表se_tb、反序表rse_tb、头指标hix以及尾指标tix,以记录目前预取区域ca的状态。如图4所示,控制器160将数据链接关系集合ts_2的集合指标0xaa写入区段s_n所相应的区段对应栏smr_n,将头指标hix以及尾指标tix同时定义为区段s_n的共用指标cix_n。值得注意的是,在本实施例中,顺序表se_tb以及反序表rse_tb中相应于区段s_n的顺序栏se_n以及反序栏rse_n维持特定值0xffff。最后,控制器160读取储存于预取区域ca的数据链接关系集合ts_2以执行所接收到的写入命令以及读取命令。

接着,在图4的实施例中,当控制器160接收到一读取命令或者一写入命令时,控制器160同样地根据所接收的读取命令或者写入命令,找出包括读取命令或者写入命令所指定的页面的一对应关系的一数据链接关系集合。举例而言,在本实施例中,读取命令或者写入命令所指定的页面的一对应关系的一数据链接关系集合为ts_8。接着,控制器160根据预取区域对应表smr_tb中是否存在相应于数据链接关系集合ts_8的集合指标,判断数据链接关系集合ts_8是否已被载入预取区域ca。举例而言,数据链接关系集合ts_8的集合指标为0xbb。如图4所示,预取区域ca只被写入了数据链接关系集合ts_2,预取区域对应表smr_tb中只有区段对应栏smr_n为0xaa,其他皆为0xffff。因此,在本实施例中,控制器160判断数据链接关系集合ts_8的集合指标0xbb不存在于预取区域对应表smr_tb中。换言之,控制器160根据数据链接关系集合ts_8的集合指标0xbb不存在于预取区域对应表smr_tb中,判断预取区域ca中不具有数据链接关系集合ts_8。接着,控制器160判断预取区域ca是否具有空白的区段。如图4所示,预取区域ca的区段s_0~s_n-1皆是空白的,控制器160选择一空白的区段。在本实施例中,控制器160选择区段s_n-1。接着,控制器160自闪存180中的数据链接关系表tb1读取数据链接关系集合ts_8,以将数据链接关系集合ts_8载入所选择的空白的区段s_n-1。接着,控制器160更新预取区域对应表smr_tb、顺序表se_tb、反序表rse_tb、头指标hix以及尾指标tix,以记录目前预取区域ca的状态。如图4所示,控制器160根据头指标hix,获得在预取区域ca中最后一个被读取的数据链接关系集合ts_2所属的一区段s_n,并且将区段s_n所相应的顺序栏se_n的共用指标cix_n,写入相应于目前的区段s_n-1的顺序栏se_n-1。接着,控制器160将相应于目前的区段s_n-1的反序栏rse_n-1的共用指标cix_n-1,写入区段s_n所相应的反序栏rse_n。接着,控制器160将头指标hix定义为目前区段s_n-1的共用指标cix_n-1,并且将尾指标tix维持在共用指标cix_n。更新后的预取区域对应表smr_tb、顺序表se_tb、反序表rse_tb、头指标hix以及尾指标tix如图5所示。最后,控制器160读取储存于预取区域ca的数据链接关系集合ts_8以执行所接收到的写入命令以及读取命令。

假设控制器160陆续接收到相应于不同的数据链接关系集合的写入命令以及读取命令,控制器160则重复上述图4转换到图5的步骤,将数据链接关系集合依序写入s_n-2~s_0中,如图6所示。换言之,控制器160重复执行载入程序,并且写满所有预取区域ca。值得注意的是,在本实施例中,由于顺序表se_tb以及反序表rse_tb的初始值即为特定值(0xffff),因此在载入程序中不需要再将特定值写入目前区段所相应的反序栏以及预取区域ca中最久未被读取的区段所相应的顺序栏中。在其他实施例中,若顺序表se_tb以及反序表rse_tb的与所设定的特定值不同,控制器160则需要在载入程序的最后一个步骤里将特定值写入目前区段所相应的反序栏以及预取区域ca中最久未被读取的区段所相应的顺序栏中。

接着,以下为更新程序的说明。在图6的实施例中,当控制器160接收到一读取命令或者一写入命令时,控制器160同样地根据所接收的读取命令或者写入命令,找出包括读取命令或者写入命令所指定的页面的一对应关系的一数据链接关系集合。举例而言,在本实施例中,读取命令或者写入命令所指定的页面的一对应关系的一数据链接关系集合为ts_0。接着,控制器160根据预取区域对应表smr_tb中是否存在相应于数据链接关系集合ts_0的集合指标0x5,判断数据链接关系集合ts_0是否已被载入预取区域ca。在本实施例中,如图6所示,数据链接关系集合ts_0的集合指标0x5已存在于预取区域对应表smr_tb中的区域对应栏smr_2的中。因此,在本实施例中,控制器160判断数据链接关系集合ts_0的集合指标0x5存在于预取区域对应表smr_tb中。换言之,控制器160根据数据链接关系集合ts_0的集合指标0x5存在于预取区域对应表smr_tb中,判断预取区域ca中已具有数据链接关系集合ts_0的数据。接着,控制器160更新预取区域对应表smr_tb、顺序表se_tb、反序表rse_tb、头指标hix以及尾指标tix,以记录目前预取区域ca的状态。如图6所示,控制器160读取目前区段s_2的顺序栏se_2,以获得相应于在目前区段s_2之前一个被写入的区段为区段s_3。接着,控制器160将相应于目前区段s_2的反序栏rse_2中所储存的共用指标cix_1,写入相应于区段s_3的反序栏rse_3。换言之,控制器160将原本指向反序栏rse_2的反序栏rse_3,改指向反序栏rse_1。接着,控制器160根据目前区段s_2的共用指标cix_2,读取反序表rse_tb中相应于目前区段s_2的反序栏rse_2中的值,并且根据反序栏rse_2中的共用指标cix_1找到在目前区段s_2之后下一个被读取的区段s_1的共用指标cix_1。接着,控制器160在相应于区段s_1的顺序栏se_1中写入目前区段s_2所相应的顺序栏se_2中所储存的共用指标cix_3。换言之,控制器160将原本指向顺序栏se_2的顺序栏se_1,改指向顺序栏se_3。接着,控制器160根据头指标hix,获得在预取区域ca中最后一个被读取的数据链接关系集合ts_1所属的一区段s_0,并且将区段s_0所相应的顺序栏se_0的共用指标cix_0,写入相应于目前的区段s_2的顺序栏se_2。接着,控制器160将相应于目前的区段s_2的反序栏rse_2的共用指标cix_2,写入区段s_0所相应的反序栏rse_0。最后控制器160,将头指标hix定义为目前区段s_2的共用指标cix_2,将尾指标tix维持在共用指标cix_n,并且将一特定值写入目前区段s_2所相应的反序栏rse_2中。更新后的预取区域对应表smr_tb、顺序表se_tb、反序表rse_tb、头指标hix以及尾指标tix如图7a所示。接着,控制器160根据用以储存集合指标0x5的区段对应栏smr_2的共用指标cix_2,读取预取区域ca中所相应的区段s_2,以获得数据链接关系集合ts_0。换言之,控制器160读取储存于预取区域ca的数据链接关系集合ts_0以执行所接收到的写入命令以及读取命令。

值得注意的是,在更新程序的另一个实施例中,当写入命令以及读取命令所相应的数据链接关系集合为预取区域ca中最久为被读取的数据链接关系集合时,控制器160的动作则与上述图7a所示的操作不同。举例而言,在本实施例中,读取命令或者写入命令所指定的页面的一对应关系的一数据链接关系集合为ts_2。接着,控制器160根据预取区域对应表smr_tb中是否存在相应于数据链接关系集合ts_2的集合指标0xaa,判断数据链接关系集合ts_2是否已被载入预取区域ca。在本实施例中,如图6所示,数据链接关系集合ts_2的集合指标0xaa已存在于预取区域对应表smr_tb中的区域对应栏smr_n的中。因此,在本实施例中,控制器160判断数据链接关系集合ts_2的集合指标0xaa存在于预取区域对应表smr_tb中。换言之,控制器160根据数据链接关系集合ts_2的集合指标0xaa存在于预取区域对应表smr_tb中,判断预取区域ca中已具有数据链接关系集合ts_2的数据。值得注意的是,在本实施例中,由图6的尾指标tix可知,数据链接关系集合为ts_2为预取区域ca中最久为被读取的数据链接关系集合。接着,控制器160更新预取区域对应表smr_tb、顺序表se_tb、反序表rse_tb、头指标hix以及尾指标tix,以记录目前预取区域ca的状态。如图6所示,控制器160根据目前区段s_n的共用指标cix_n,读取反序表rse_tb中相应于目前区段s_n的反序栏rse_n中的值,并且根据反序栏rse_n中的共用指标cix_n-1找到在目前区段s_n之后下一个被读取的区段s_n-1的共用指标cix_n-1。接着,控制器160在相应于区段s_n-1的顺序栏se_n-1中写入目前区段s_n所相应的顺序栏se_n中所储存的值,其中由于目前区段s_n系为最久未被读取的区段,故其顺序栏se_n中所储存的值为特定值。接着,控制器160根据头指标hix,获得在预取区域ca中最后一个被读取的数据链接关系集合ts_1所属的一区段s_0,并且将区段s_0所相应的顺序栏se_0的共用指标cix_0,写入相应于目前的区段s_n的顺序栏se_n。接着,控制器160将相应于目前的区段s_n的反序栏rse_n的共用指标cix_n,写入区段s_0所相应的反序栏rse_0。最后控制器160,将头指标hix定义为目前区段s_n的共用指标cix_n,将尾指标tix定义为在目前区段s_n之后下一个被读取的区段s_n-1的共用指标cix_n-1,并且将特定值写入目前头指标所指的共用指标cix_n所相应的反序栏rse_n中。更新后的预取区域对应表smr_tb、顺序表se_tb、反序表rse_tb、头指标hix以及尾指标tix如图7b所示。接着,控制器160根据用以储存集合指标0xaa的区段对应栏smr_n的共用指标cix_n,读取预取区域ca中所相应的区段s_n,以获得数据链接关系集合ts_2。换言之,控制器160读取储存于预取区域ca的数据链接关系集合ts_2以执行所接收到的写入命令以及读取命令。

接着,以下为取代程序的说明。在图7a的实施例中,当控制器160接收到一读取命令或者一写入命令时,控制器160同样地根据所接收的读取命令或者写入命令,找出包括读取命令或者写入命令所指定的页面的一对应关系的一数据链接关系集合。举例而言,在本实施例中,读取命令或者写入命令所指定的页面的一对应关系的一数据链接关系集合为ts_77。接着,控制器160根据预取区域对应表smr_tb中是否存在相应于数据链接关系集合ts_77的集合指标0x333,判断数据链接关系集合ts_77是否已被载入预取区域ca。在本实施例中,假设预取区域ca并没有数据链接关系集合ts_77的数据,故集合指标0x333也不存在于预取区域对应表smr_tb中的任何一个区域对应栏smr_0~smr_n的中。控制器160根据数据链接关系集合ts_77的集合指标0x333不存在于预取区域对应表smr_tb中,判断预取区域ca中不具有数据链接关系集合ts_77。接着,控制器160判断预取区域ca是否具有空白的区段。如图7a所示,预取区域ca的区段s_0~s_n皆不是空白的。接着,控制器160根据尾指标tix判断预取区域ca中最久未被读取的数据链接关系集合,以将数据链接关系集合ts_77的数据写入预取区域ca中最久未被读取的数据链接关系集合所属的区段。如图7a所示,控制器160根据尾指标tix中的共用指标cix_n,判断预取区域ca中最久未被读取的数据链接关系集合为数据链接关系集合ts_2,并且根据共用指标cix_n获得具有最久未被读取的的区段为区段s_n。接着,控制器160自闪存180中的数据链接关系表tb1读取数据链接关系集合ts_77,以将数据链接关系集合ts_77载入所获得的区段s_n,以取代原本很久未被读取的数据链接关系集合ts_2。接着,控制器160更新预取区域对应表smr_tb、顺序表se_tb、反序表rse_tb、头指标hix以及尾指标tix,以记录目前预取区域ca的状态。首先,控制器160将相应于数据链接关系集合ts_77的集合指标0x333,写入预取区域对应表smr_tb中相应于区段s_n的区段对应栏smr_n。如图7a所示,控制器160根据头指标hix,获得在预取区域ca中最后一个被读取的数据链接关系集合ts_0所属的一区段s_2,并且将区段s_2所相应的顺序栏se_2的共用指标cix_2,写入相应于目前的区段s_n的顺序栏se_n。接着,控制器160将相应于目前的区段s_n的反序栏rse_n的共用指标cix_n,写入区段s_2所相应的反序栏rse_2。接着,控制器160读取目前的区段s_n的反序栏rse_n,以获得在目前的区段s_n之后下一个被读取的区段s_n-1的共用指标cix_n-1。接着,控制器160将头指标hix定义为目前区段s_n的共用指标cix_n,并且将尾指标tix定义为在目前的区段s_n之后下一个被读取的区段s_n-1的共用指标cix_n-1。最后,控制器160将特定值写入在目前的区段s_n之后下一个被读取的区段s_n-1所相应的顺序栏se_n-1中,以及将特定值写入相应于目前区段s_n的反序栏rse_n中。更新后的预取区域对应表smr_tb、顺序表se_tb、反序表rse_tb、头指标hix以及尾指标tix如图8所示。最后,控制器160读取储存于预取区域ca的数据链接关系集合ts_8以执行所接收到的写入命令以及读取命令。

图9为本发明所提供的一数据维护方法的一种实施例的流程图。图9所示的数据维护方法适用于图1所示的数据储存装置140。流程开始于步骤s900。

在步骤s900中,在闪存160被上电后,控制器160根据所接收的至少一读取命令或者至少一写入命令,在随机存储器166中的一预取区域ca中,载入一数据链接关系表tb1中的多个数据链接关系集合ts_0~ts_n的一部份。

接着,在步骤s902中,控制器160根据所载入的数据链接关系表tb1的被读取的顺序,在随机存储器166中建立一预取区域对应表smr_tb、一反序表rse_tb以及一顺序表se_tb。详细而言,控制器160在随机存储器166中建立预取区域对应表smr_tb,以记录相应于预取区域ca中的数据链接关系集合的集合指标。控制器160在随机存储器166中建立反序表rse_tb,以记录在预取区域ca中的数据链接关系集合自预取区域ca中被读取的反向的顺序。控制器160在随机存储器166中建立顺序表se_tb,以记录在预取区域ca中的数据链接关系集合自预取区域ca中被读取的顺序。值得注意的是,在步骤s902中所述的被读取的顺序系指数据链接关系表tb1自预取区域ca中被控制器160读取以执行写入命令以及读取命令的顺序。另外,在另一实施例中,控制器160亦可根据所载入的数据链接关系表tb1的被读取的顺序,设置一头指标hix以及一尾指标tix。当预取区域ca已被写满并且需要载入新的数据链接关系集合时,根据尾指标tix,选择预取区域ca中的区段s_0~s_n中的一者,以将新的数据链接关系集合载入所选择的区段。在新的上述数据链接关系集合载入所选择的上述区段后,控制器160可根据头指标、反序表中的数据以及顺序表se_tb中的数据,更新上序表以及顺序表。

图10a~10f为本发明所提供的一数据维护方法的一种实施例的流程图。图10a~10f所示的数据维护方法适用于图1所示的数据储存装置140。流程开始于步骤s1000。

在步骤s1000中,控制器160接收一读取命令或者一写入命令。读取命令以及写入命令系用以对闪存180中的特定的页面进行读取或者写入,读取命令以及写入命令可为自主机120所接收的命令或者由控制器160本身维护数据所需要的读取以及写入动作所产生的写入命令以及读取命令。

接着,在步骤s1002中,控制器160根据在步骤s1000中所接收的读取命令或者写入命令,判断包括读取命令或者写入命令所指定的页面的一第一对应关系的一第一数据链接关系集合。举例而言,读取命令或者写入命令指示的页面的逻辑地址与实体地址的对应关系是储存于数据链接关系集合ts_2,控制器160则根据所接收的读取命令或者写入命令得知所指定的页面,并找到对应的数据链接关系集合ts_2。

接着,在步骤s1004中,控制器160根据预取区域对应表smr_tb中是否存在相应于第一数据链接关系集合的一第一集合指标,判断第一数据链接关系集合是否已被载入预取区域ca中。当第一数据链接关系集合未被载入预取区域ca时,流程进行至步骤s1006;否则,流程进行至步骤s1060,以进行一更新程序。

在步骤s1006中,控制器160判断预取区域ca中是否具有空白的区段。值得注意的是,在本实施例中,空白的区段表示在预取区域ca中尚未被载入任何数据链接关系集合的区段。当预取区域ca中具有空白的区段时,流程进行至步骤s1008以执行一载入程序;否则,流程进行至步骤s1030,以执行一取代程序。

在步骤s1008中,控制器160自闪存180中的一数据链接关系表tb1读取第一数据链接关系集合,以将第一数据链接关系集合载入所选择的空白的一第一区段。举例而言,如图3所示,预取区域ca的区段s_0~s_n皆是空白的,控制器160选择一空白的区段。在本实施例中,控制器160从最底部的区段开始选择,故控制器160选择区段s_n。接着,控制器160自闪存180中的数据链接关系表tb1读取数据链接关系集合ts_2,以将数据链接关系集合ts_2载入所选择的空白的区段s_n。在另一实施例中,如图4所示,预取区域ca的区段s_0~s_n-1皆是空白的,控制器160则自区段s_0~s_n-1中选择一空白的区段。在本实施例中,由于控制器160系用以从最底部的区段开始选择,故控制器160选择区段s_n,控制器160选择区段s_n-1,但本发明不限于此。接着,控制器160自闪存180中的数据链接关系表tb1读取数据链接关系集合ts_8,以将数据链接关系集合ts_8载入所选择的空白的区段s_n-1。

接着,在步骤s1010中,控制器160将相应于第一数据链接关系集合的第一集合指标,写入预取区域对应表smr_tb中相应于第一区段的区段对应栏。举例而言,在图4的实施例中,控制器160系将集合指标为0xaa的数据链接关系集合ts_2写入区段s_n。因此,控制器160则在步骤s1010中将数据链接关系集合ts_2的集合指标0xaa写入区段s_n所相应的区段对应栏smr_n。在图5的实施例中,控制器160系将集合指标为0xbb的数据链接关系集合ts_8写入区段s_n-1。因此,控制器160则在步骤s1010中将数据链接关系集合ts_8的集合指标0xbb写入区段s_n-1所相应的区段对应栏smr_n-1。

接着,在步骤s1012中,控制器160判断第一区段是否为预取区域ca中第一个被载入的数据链接关系集合。换言之,控制器160判断预取区域ca中的其他区段是否皆为空白。当预取区域ca中第一个被载入的数据链接关系集合时,流程进行至步骤s1014;否则,流程进行至步骤s1018。值得注意的是,控制器160亦可在步骤s1006中判断是否有空白的区段的过程中进行判断第一区段是否为预取区域ca中第一个被载入的数据链接关系集合的步骤。

在步骤s1014中,控制器160将一头指标hix以及一尾指标tix同时定义为第一区的一第一共用指标。举例而言,在图4的实施例中,数据链接关系集合ts_2系第一个被写入预取区域ca的数据链接关系集合,其中数据链接关系集合ts_2系被写入区段s_n。因此,在步骤s1014中,控制器160将将头指标hix以及尾指标tix同时定义为区段s_n的共用指标cix_n。接着,流程进行至步骤s1090。

在步骤s1018中,控制器160根据头指标hix,获得在预取区域ca中最后一个被读取的数据链接关系集合所属的一第二区段。值得注意的是,在本实施例中,预取区域ca最后一个被读取的数据链接关系集合指的是,目前的预取区域ca中最后一个被控制器160自预取区域ca中读取以进行所接收的读取命令或者写入命令的数据链接关系集合。

接着,在步骤s1020中,控制器160将顺序表se_tb中相应于第二区段所相应的一第二顺序栏的共用指标,写入相应于第一区段的第一顺序栏。举例而言,在第五图的实施例中,数据链接关系集合ts_8不系第一个被写入预取区域ca的数据链接关系集合,其中数据链接关系集合ts_8系被写入区段s_n-1(第一区段)。在更新随机存取存储器166中的表前,控制器160在步骤s1018中,根据目前头指标hix(如图4所示),获得在预取区域ca中最后一个被读取的数据链接关系集合ts_2所属的一区段s_n(第二区段)。接着,在步骤s1020中,控制器160将区段s_n(第二区段)所相应的顺序栏se_n(第二顺序栏)的共用指标cix_n,写入相应于目前的区段s_n-1(第一区段)的顺序栏se_n-1(第一顺序烂)。

接着,在步骤s1022中,控制器160将反序表rse_tb中相应于第一区段的第一反序栏的共用指标,写入第二区段所相应的一第二反序栏。举例而言,在第五图的实施例中,控制器160在步骤s1022中将相应于目前的区段s_n-1(第一区段)的反序栏rse_n-1(第一反序栏)的共用指标cix_n-1,写入区段s_n(第二区段)所相应的反序栏rse_n中。

接着,在步骤s1024中,控制器160将头指标hix定义为第一区段的一第一共用指标。举例而言,在第五图的实施例中,控制器160在步骤s1024中,将头指标hix定义为目前区段s_n-1(第一区段)的共用指标cix_n-1(第一共用指标),并且将尾指标tix维持在共用指标cix_n(第二共用指标)。接着,流程进行至步骤s1090。

在步骤s1030中,控制器160根据尾指标tix判断预取区域ca中最久未被读取的数据链接关系集合所属的一第三区段。值得注意的是,在本实施例中,预取区域ca中最久未被读取的数据链接关系集合指的是,目前的预取区域ca中最久未被控制器160自预取区域ca中读取以进行所接收的读取命令或者写入命令的数据链接关系集合。

接着,在步骤s1032中,控制器160将第一数据链接关系集合的数据写入第三区段。举例而言,在图8的实施例中,读取命令或者写入命令所指定的页面的一对应关系包括于数据链接关系集合ts_77(第一数据链接关系集合)。控制器160在步骤s1004中已判断预取区域对应表smr_tb中不存在相应于数据链接关系集合ts_77的集合指标0x333,并且控制器160在步骤s1006中已判断预取区域ca中已不具有空白的区段。因此,在步骤s1030中,控制器160根据更动前的图7a所示的尾指标tix判断预取区域ca中最久未被读取的数据链接关系集合为数据链接关系集合ts_2,并且数据链接关系集合ts_2所相应的区段为区段s_n(第三区段)。因此,在步骤s1032中,控制器160自闪存180中的数据链接关系表tb1读取数据链接关系集合ts_77(第一数据链接关系集合),以将数据链接关系集合ts_77载入所获得的区段s_n(第三区段),以取代原本很久未被读取的数据链接关系集合ts_2。。

接着,在步骤s1034中,控制器160将相应于第一数据链接关系集合的第一集合指标,写入预取区域对应表smr_tb中相应于第三区段的区段对应栏。在图8的实施例中,控制器160接着在步骤s1034中将相应于数据链接关系集合ts_77(第一数据链接关系集合)的集合指标0x333(第一集合指标),写入预取区域对应表smr_tb中相应于区段s_n(第三区段)的区段对应栏smr_n。

接着,在步骤s1036中,控制器160根据头指标hix,获得在预取区域ca中最后一个被读取的数据链接关系集合所属的一第四区段。

接着,在步骤s1038中,控制器160将顺序表se_tb中的相应于第四区段的一第四顺序栏的共用指标,写入顺序表se_tb中相应于第三区段的一第三顺序栏。举例而言,在图8的实施例中,控制器160在步骤s1036中根据更动前图7a所示的头指标hix,获得在预取区域ca中最后一个被读取的数据链接关系集合ts_0系属于的区段s_2(第四区段)。接着,在步骤s1038中,控制器160将区段s_2(第四区段)所相应的顺序栏se_2(第四顺序栏)的共用指标cix_2,写入相应于目前的区段s_n(第三区段)的顺序栏se_n(第三顺序栏)。

接着,在步骤s1040中,控制器160将反序表rse_tb中相应于第三区段的一第三反序栏的共用指标,写入反序表rse_tb中相应于第四区段的一第四反序栏。举例而言,在图8的实施例中,控制器160将相应于目前的区段s_n(第三区段)的反序栏rse_n(第三反叙栏)的共用指标cix_n,写入区段s_2(第四区段)所相应的反序栏rse_2(第四反序栏)。

接着,在步骤s1042中,控制器160读取第三反序栏,以获得反序栏rse_0~rse_n中一第五反序栏rse_0~rse_n的共用指标。换言之,控制器160读取目前被写入的第三区段所相应的第三反序栏,以获得原本在目前的第三区段之后下一个被读取的一第五区段。

接着,在步骤s1044中,控制器160将尾指标tix定义为相应于第五反序栏的一第五共用指标以及将头指标hix定义为第三顺序栏的一第三共用指标。举例而言,在图8的实施例中,控制器160在步骤s1044中读取目前的区段s_n(第三区段)的反序栏rse_n(第三反序栏),以获得原本在目前的区段s_n(第三区段)之后下一个被读取的区段s_n-1的共用指标cix_n-1(第五反序栏的共用指标)。接着,控制器160将头指标hix定义为目前区段s_n(第三区段)的共用指标cix_n,并且将尾指标tix定义为原本在目前的区段s_n之后下一个被读取的区段s_n-1(第五区段)的共用指标cix_n-1(第五共用指标)。

接着,在步骤s1046中,控制器160将一特定值写入第三反序栏以及相应于第五共用指标的一第五顺序栏。换言之,控制器160将特定值写入目前头指标所指向的共用指标所相应的反序栏中,并且将特定值写入目前尾指标所指向的共用指标所相应的顺序栏中。如图8所示,控制器160将特定值写入相应于目前区段s_n(第三区段)的反序栏rse_n以及共用指标cix_n-1(第五反序栏的共用指标)所相应的顺序栏se_n-1(第五顺序栏)。接着,流程进行至步骤s1090。

在步骤s1060中,控制器160读取相应于储存第一数据链接关系集合的一第六区段所相应的一第六反序栏,以获得在第一数据链接关系集合之后下一个被读取的第七区段。换言之,控制器160读取在一反序表rse_tb中一第六区段所相应的一第六反序栏,以获得在第六区段之后下一个被读取的一第七区段。举例而言,在图7a的实施例中,读取命令或者写入命令所指定的页面的一对应关系包括于数据链接关系集合为ts_0。如更动前的图6所示,数据链接关系集合ts_0的集合指标0x5已存在于预取区域对应表smr_tb中的区域对应栏smr_2的中。因此,控制器160在步骤s1004中已根据预取区域对应表smr_tb存在相应于数据链接关系集合ts_0的集合指标0x5,判断数据链接关系集合ts_0已被载入预取区域ca。接着,控制器160在步骤s1060中根据目前区段s_2(第六区段)的共用指标cix_2,读取反序表rse_tb中相应于目前区段s_2(第六区段)的反序栏rse_2(第六反序栏)中的值,并且根据反序栏rse_2(第六反序栏)中的共用指标cix_1找到在目前区段s_2(第六区段)之后下一个被读取的区段为区段s_1。在图7b的实施例中,读取命令或者写入命令所指定的页面的一对应关系包括于数据链接关系集合为ts_2。如更动前的图6所示,数据链接关系集合ts_2的集合指标0xaa已存在于预取区域对应表smr_tb中的区域对应栏smr_n的中。因此,控制器160在步骤s1004中已根据预取区域对应表smr_tb存在相应于数据链接关系集合ts_n的集合指标0xaa,判断数据链接关系集合ts_2已被载入预取区域ca。接着,控制器160在步骤s1060中根据目前区段s_n(第六区段)的共用指标cix_n,读取反序表rse_tb中相应于目前区段s_n(第六区段)的反序栏rse_n(第六反序栏)中的值,并且根据反序栏rse_n(第六反序栏)中的共用指标cix_n-1找到在目前区段s_n(第六区段)之后下一个被读取的区段为区段s_n-1。

接着,在步骤s1062中,控制器160在顺序表se_tb中相应于第七区段的一第七顺序栏中,写入第六区段所相应的一第六顺序栏中所储存的共用指标。举例而言,在图7a的实施例中,控制器160在步骤s1060中已获得在目前区段s_2(第六区段)之后下一个被读取的区段为区段s_1(第七区段)。因此,在步骤s1062中,控制器160在相应于区段s_1(第七区段)的顺序栏se_1(第七顺序栏)中写入目前区段s_2(第六区段)所相应的顺序栏se_2(第六顺序栏)中所储存的共用指标cix_3。换言之,控制器160将原本指向顺序栏se_2(第六顺序栏)的顺序栏se_1(第七顺序栏),改指向在第一数据链接关系集合之前上一个被读取的区段s_3所相应的顺序栏se_3。在图7b的实施例中,控制器160在步骤s1060中已获得在目前区段s_n(第六区段)之后下一个被读取的区段为区段s_n-1(第七区段)。因此,在步骤s1062中,控制器160在相应于区段s_n-1(第七区段)的顺序栏se_n-1(第七顺序栏)中写入目前区段s_n(第六区段)所相应的顺序栏se_n(第六顺序栏)中所储存的值。

接着,在步骤s1064中,控制器160根据头指标hix,获得在预取区域ca中最后一个被读取的数据链接关系集合所属的一第八区段。

接着,在步骤s1065中,控制器160根据尾指标tix,判断预取区域ca中最久未被读取的数据链接关系集合所属的区段是否为第六区段。当最久未被读取的数据链接关系集合所属的区段为第六区段时,流程进行至步骤s1080;否则,流程进行至步骤s1066。换言之,控制器160在本步骤中判断目前所要读取的数据链接关系集合是否为预取区域ca中最久未被读取的数据链接关系集合。

在步骤s1066中,控制器160读取相应于第六区段的第六顺序栏,以获得相应于在第六区段之前一个被写入的一第九区段的一第九共用指标。在图7a的实施例中,控制器160在步骤s1065中,根据尾指标tix判断目前区段s_2(第六区段)所储存的数据链接关系集合ts_0不是预取区域ca中最久未被读取的数据链接关系集合。接着,控制器160在步骤s1066中读取相应于目前区段s_2(第六区段)的顺序栏se_2(第六顺序栏),以获得相应于在目前区段s_2(第六区段)之前一个被写入的区段为区段s_3(第九区段)。

接着,在步骤s1068中,控制器160将第六反序栏中所储存的共用指标,写入相应于第九共用指标的一第九反序栏。举例而言,在图7a的实施例中,控制器160在步骤s1068中将相应于目前区段s_2(第六区段)的反序栏rse_2(第六反序栏)中所储存的共用指标cix_1,写入相应于区段s_3(第九区段)的反序栏rse_3(第九反序栏)。

接着,在步骤s1070中,控制器160在顺序栏se_0~se_n中相应于第六区段的第六顺序栏中,写入顺序表se_tb中第八区段所相应的一第八顺序栏的共用指标。举例而言,在图7a的实施例中,控制器160在步骤s1064中根据图6中的头指标hix,获得在预取区域ca中最后一个被读取的数据链接关系集合ts_1所属的一区段s_0(第八区段),并且将区段s_0(第八区段)所相应的顺序栏se_0(第八顺序栏)的共用指标cix_0,写入相应于目前的区段s_2(第六区段)的顺序栏se_2(第六顺序栏)。

接着,在步骤s1072中,控制器160将反序表rse_tb中相应于第六区段的第六反序栏的共用指标,写入反序表rse_tb中相应于最后一个被读取的第八区段的一第八反序栏。举例而言,在图7a的实施例中,控制器160在步骤s1072中将相应于目前的区段s_2(第六区段)的反序栏rse_2(第六反序栏)的共用指标cix_2,写入区段s_0(第八区段)所相应的反序栏rse_0(第八反序栏)。

接着,在步骤s1074中,控制器160将头指标hix定义为第六顺序栏的一第六共用指标。举例而言,在图7a的实施例中,控制器160在步骤s1074中将头指标hix定义为目前区段s_2的共用指标cix_2,并且将尾指标tix维持在共用指标cix_n。

接着,在步骤s1076中,控制器160将一特定值写入第六反序栏。举例而言,在图7a的实施例中,控制器160在步骤s1076中,将一特定值写入目前区段s_2(第六区段)所相应的反序栏rse_2(第六反序栏)中。接着,流程进行值步骤s1090。

在步骤s1080中,控制器160在相应于第六区段的第六顺序栏中,写入顺序表se_tb中第八区段所相应的一第八顺序栏的共用指标。在图7b的实施例中,控制器160在步骤s1065中,根据尾指标tix判断目前区段s_n(第六区段)所储存的数据链接关系集合ts_2不是预取区域ca中最久未被读取的数据链接关系集合。接着,控制器160在步骤s1080中读取相应于目前区段s_2(第六区段)的顺序栏se_2(第六顺序栏),以获得相应于在目前区段s_2(第六区段)之前一个被写入的区段为区段s_3(第九区段)。

接着,在步骤s1082中,控制器160将反序表rse_tb中相应于第六区段的第六反序栏的共用指标,写入反序表rse_tb中相应于最后一个被读取的第八区段的一第八反序栏。举例而言,在图7b的实施例中,控制器160已在步骤s1064中获得最后一个被读取的区段为区段s_0(第八区段)。因此,控制器160在步骤s1082中将相应于目前的区段s_n(第六区段)的反序栏rse_n(第六反序栏)的共用指标cix_n,写入区段s_0(第八区段)所相应的反序栏rse_0(第八反序栏)。

接着,在步骤s1084中,控制器160将头指标hix定义为第六顺序栏的一第六共用指标,并且将尾指标tix定义为第七区段的一第七共用指标。举例而言,在图7b的实施例中,控制器160在步骤s1084中将头指标hix定义为目前区段s_2(第六区段)的共用指标cix_2,将尾指标tix维持在共用指标cix_n。

接着,步骤s1086中,控制器160将一特定值写入第六反序栏。换言之,控制器160将特定值写入目前头指标所指的共用指标cix_n所相应的反序栏rse_n中。接着,流程进行至步骤s1090。

在步骤s1090中,控制器160自预取区域ca读取第一数据链接关系集合中的数据,以执行在步骤s1000中所接收的写入命令或者读取命令。流程结束于步骤s1090。

本发明所提供的数据储存装置140以及数据维护方法可藉由指标、反序表、顺序表以及一预取区域对应表记录预取区域中数据被读取的状态以更新预取区域中的数据,其中指标、反序表以及顺序表可使得预取区域对应表在每次更新的过程中所需修正数据数不超五栏。

本发明的方法,或特定型态或其部份,可以以程序码的型态存在。程序码可储存于实体媒体,如软盘、光盘、硬盘、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。

惟以上所述者,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即大凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或申请专利范围不须达成本发明所揭露的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1