CN107943711B - 数据储存装置及其数据维护方法 - Google Patents
数据储存装置及其数据维护方法 Download PDFInfo
- Publication number
- CN107943711B CN107943711B CN201611044061.3A CN201611044061A CN107943711B CN 107943711 B CN107943711 B CN 107943711B CN 201611044061 A CN201611044061 A CN 201611044061A CN 107943711 B CN107943711 B CN 107943711B
- Authority
- CN
- China
- Prior art keywords
- data link
- infrequent
- frequent
- link relation
- indicator
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000013500 data storage Methods 0.000 title claims abstract description 38
- 238000012423 maintenance Methods 0.000 title claims abstract description 31
- 238000013507 mapping Methods 0.000 claims description 59
- 230000015654 memory Effects 0.000 claims description 50
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据储存装置及其数据维护方法。该数据储存装置包括一随机存取存储器以及一控制器。随机存取存储器具有一预取区域。控制器将数据链接关系表中部分的多个数据链接关系集合载入该预取区域中的多个区段,其中这些数据链接关系集合中,被读取次数小于一既定值的数据链接关系集合属于多个非频繁数据链接关系集合中之一者,且被读取次数到达该既定值的数据链接关系集合,属于多个频繁数据链接关系集合中之一者。
Description
技术领域
本发明有关于一种数据储存装置,特别有关于以特定方式维护预取区域中的数据的数据储存装置。
背景技术
快闪存储器为一种普遍的非挥发性数据储存装置,以电性方式抹除与程序化。以与非门型的快闪存储器(即NAND FLASH)为例,常用作记忆卡(memory card)、通用串行总线闪存装置(USB flash device)、固态硬盘(SSD)、嵌入式快闪存储器模组(eMMC)…等使用。
快闪存储器(如,NAND FLASH)的储存阵列包括多个区块(blocks),其中浮置栅极晶体管可用以构成快闪存储器。浮置栅极晶体管中的浮置栅极,可捕捉的电荷以储存数据。另外,快闪存储器中的实体页面与主机装置所指定的逻辑页面的转换关系需要一个实体转逻辑表记录。然而,需要很大的容量才可以将全部的实体逻辑表载入随机存取存储器中。如何有效更新管理随机存储器中所载入的数据是一个重要的课题。
发明内容
本发明所提供的数据储存装置以及数据维护方法可藉由三种表来维护储存于随机存储器中的数据。
本发明提供一种数据储存装置包括一随机存取存储器以及一控制器。随机存取存储器具有一预取区域。控制器将数据链接关系表中部分的多个数据链接关系集合载入该预取区域中的多个区段,其中这些数据链接关系集合中,被读取次数小于一既定值的数据链接关系集合属于多个非频繁数据链接关系集合中之一者,且被读取次数到达该既定值的数据链接关系集合,属于多个频繁数据链接关系集合中之一者。
在一实施例中,控制器更建立一非频繁指标组以维护这些非频繁数据链接关系集合,并且建立一频繁指标组以维护这些频繁数据链接关系集合,其中非频繁指标组是由一非频繁头指标以及一非频繁尾指标所构成,并且频繁指标组是由一频繁头指标以及一频繁尾指标所构成。区段依序具有多个共用指标,非频繁头指标为用以储存最后一个被读取的非频繁数据链接关系集合的区段的共用指标,非频繁尾指标为用以储存最久未被读取的非频繁数据链接关系集合的区段的共用指标,频繁头指标为用以储存最后一个被读取的频繁数据链接关系集合的区段的共用指标,频繁尾指标为用以储存最久未被读取的频繁数据链接关系集合的区段的共用指标。
本发明亦提供一种数据储存装置包括具有一预取区域的一随机存取存储器以及一控制器。控制器用以将一数据链接关系表所储存的多个数据链接关系集合的一部分载入预取区域中的多个区段,其中当预取区域的多个区段皆已被写满并且一第一数据链接关系集合需要被载入预取区域时,控制器还用以根据一非频繁指标组选择区段中的一第一区段,以载入第一数据链接关系集合,其中当非频繁指标组不具有对应的区段中之一者时,控制器更用将一频繁指标组转换为非频繁指标组,并根据转换后的非频繁指标组选择第一区段。
本发明另提供一种数据维护方法适用于具有一快闪存储器的一数据储存装置。快闪存储器包括多个页面,其中每一页面具有一逻辑地址以及一实体地址。数据维护方法包括:在快闪存储器被上电时,根据至少一读取命令或者至少一写入命令,在一随机存储器中的一预取区域的多个区段中,载入一数据链接关系表中的多个数据链接关系集合的一部份,其中每一数据链接关系集合具有页面中的至少一者的逻辑地址以及实体地址的对应关系,并且每一数据链接关系集合相应于一集合指标,其中预取区域所储存的数据链接关系集合中被读取的次数小于一既定值的数据链接关系集合属于非频繁数据链接关系集合,以及预取区域所储存的数据链接关系集合中被读取到达既定值的数据链接关系集合属于频繁数据链接关系集合。
在一实施例中,数据维护方法还包括建立一非频繁指标组,以维护多个非频繁数据链接关系集合;以及建立一频繁指标组,以维护被多个频繁数据链接关系集合,其中预取区域所储存的数据链接关系集合中被读取到达既定值的数据链接关系集合属于频繁数据链接关系集合。
在一实施例中,数据维护方法还包括:建立一预取区域对应表,以在预取区域对应表中的多个区段对应栏记录相应于预取区域中的数据链接关系集合的集合指标;建立一顺序表,以分别记录频繁数据链接关系集合自预取区域中被读取的顺序以及非频繁数据链接关系集合自域取区域中被读取的顺序;以及建立一反序表,以分别记录频繁数据链接关系集合自预取区域中被读取的反向的顺序以及非频繁数据链接关系集合自预取区域中被读取的反向的顺序。
又另一实施例中,数据维护方法还包括:当预取区域已被写满并且需要载入新的数据链接关系集合时,判断非频繁尾指标是否为共用指标中之任一者;当非频繁尾指标为共用指标中之任一者时,根据非频繁尾指标判断非频繁数据链接关系集合中最久未被读取的非频繁数据链接关系集合;将第一数据链接关系集合的数据写入非频繁数据链接关系集合中最久未被读取的非频繁数据链接关系集合所属的区段;当非频繁尾指标不是共用指标中之任一者时,将频繁尾指标中所储存的共用指标写入非频繁尾指标,将频繁头指标中所储存的共用指标写入非频繁头指标,并且删除频繁尾指标以及非频繁尾指标中所储存的共用指标。
附图说明
图1为本发明所提供的一电子系统的一种实施例的方块图。
图2为本发明所提供的一数据链接关系表的一种实施例的方块图。
图3为本发明所提供的一随机存取存储器中的多个表的一种实施例的示意图。
图4为本发明所提供的一随机存取存储器中的多个表的另一种实施例的示意图。
图5为本发明所提供的一随机存取存储器中的多个表的另一种实施例的示意图。
图6为本发明所提供的一随机存取存储器中的多个表的另一种实施例的示意图。
图7A为本发明所提供的一随机存取存储器中的多个表的另一种实施例的示意图。
图7B为本发明所提供的一随机存取存储器中的多个表的另一种实施例的示意图。
图8为本发明所提供的一随机存取存储器中的多个表的另一种实施例的示意图。
图9为本发明所提供的一数据维护方法的一种实施例的流程图。
图10A~10F为本发明所提供的一数据维护方法的另一种实施例的流程图。
图11~20为本发明所提供的一随机存取存储器中的表的另一种实施例的方块图。
图21为本发明所提供的一数据维护方法的另一种实施例的流程图。
图22A~22H为本发明所提供的一数据维护方法的另一种实施例的流程图。
符号说明
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 尾指标;
FR_HIX 频繁头指标;
FR_TIX 频繁尾指标;
LRU_HIX 非频繁头指标;
LRU_TIX 非频繁尾指标;
S900~S902、S1000~S1090、S2100~S2102、S2200~S2299 步骤。
具体实施方式
以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。
图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_P0~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至图依序说明预取区域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中的数据,更新上序表以及顺序表。
图10为本发明所提供的一数据维护方法的一种实施例的流程图。图10所示的数据维护方法适用于图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中相应于第二区段所相应的一第二顺序栏的共用指标,写入相应于第一区段的第一顺序栏。举例而言,在图5的实施例中,数据链接关系集合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中相应于第一区段的第一反序栏的共用指标,写入第二区段所相应的一第二反序栏。举例而言,在图5的实施例中,控制器160在步骤S1022中将相应于目前的区段S_N-1(第一区段)的反序栏RSE_N-1(第一反序栏)的共用指标CIX_N-1,写入区段S_N(第二区段)所相应的反序栏RSE_N中。
接着,在步骤S1024中,控制器160将头指标HIX定义为第一区段的一第一共用指标。举例而言,在图5的实施例中,控制器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(第四反序栏)。
接着,在步骤S1044中,控制器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。
值得注意的是,通常对储存于快闪存储器180中的一个档案进行读写会导致相关的数据链接关系集合被重复地读取。换言之,通常某些与对读写档案无关的命令所相关的数据链接关系集合仅会被读取一次。有鉴于此,本发明另提供一实施例,用以将被频繁读取的数据链接关系集合以及没有被频繁读取的数据链接关系集合分为两个系统进行维护,其中预取区域CA所储存的数据链接关系集合中被读取的次数小于一既定值的数据链接关系集合属于非频繁数据链接关系集合,并且预取区域CA所储存的数据链接关系集合中被读取到达既定值的数据链接关系集合属于频繁数据链接关系集合。在一实施例中,既定值为1,但本发明不限于此。在其他实施例中,既定值亦可为2、3、4、5、6、7、或8,其中开发者可基于在不同情况下对快闪存储器180进行读取或者写入的模式设计既定值。
图11为本发明所提供的一随机存取存储器中的表的另一种实施例的方块图。如图11所示,当数据储存装置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用以分别记录频繁数据链接关系集合自预取区域CA中被读取的顺序以及非频繁数据链接关系集合自域取区域中被读取的顺序,其中顺序表SE_TB具有多个顺序栏SE_0~SE_N依序相应于预取区域CA中的区段S_0~S_N。值得注意的是,在本实施例中,顺序表SE_TB中的顺序栏SE_0~SE_N可记录两种顺序(频繁数据链接关系集合自预取区域CA中被读取的顺序以及非频繁数据链接关系集合自域取区域中被读取的顺序)。详细而言,与频繁数据链接关系集合所属的区段具有相同的共用指标的顺序栏属于频繁顺序栏,与非频繁数据链接关系集合所属的区段具有相同的共用指标的顺序栏属于非频繁顺序栏。换言之,顺序栏的属性是动态根据所相应的区段中所储存的繁数据链接关系集合的态样(频繁或者非频繁)而决定的。每一频繁顺序栏是用以储存另一频繁顺序栏的共用指标,以分别指向在相应于频繁顺序栏的区段之前上一个被读取的频繁数据链接关系集合的区段所相应的频繁顺序栏。每一非频繁顺序栏是用以储存另一非频繁顺序栏的共用指标,以分别指向在相应于非频繁顺序栏的区段之前上一个被读取的非频繁数据链接关系集合的区段所相应的非频繁顺序栏。值得注意的是,顺序表SE_TB中每一顺序栏SE_0~SE_N的初始值皆为一特定值。在本实施例中,特定值为0xFFFF,但本发明不限于此。
反序表RSE_TB用以分别记录频繁数据链接关系集合自预取区域CA中被读取的反向的顺序以及非频繁数据链接关系集合自预取区域CA中被读取的反向的顺序,其中反序表RSE_TB具有多个反序栏RSE_0~RSE_N依序相应于预取区域CA中的区段S_0~S_N。值得注意的是,在本实施例中,反序表RSE_TB中的反序栏RSE_0~RSE_N可记录两种顺序(频繁数据链接关系集合自预取区域CA中被读取的反向的顺序以及非频繁数据链接关系集合自域取区域中被读取的反向的顺序)。详细而言,与频繁数据链接关系集合所属的区段具有相同的共用指标的反序栏属于频繁反序栏,与非频繁数据链接关系集合所属的区段具有相同的共用指标的反序栏属于非频繁反序栏。换言之,反序栏RSE_0~RSE_N的属性是动态根据所相应的区段中所储存的繁数据链接关系集合的态样(频繁或者非频繁)而决定的。每一频繁反序栏RSE_0~RSE_N是用以储存另一频繁反序栏的共用指标,以分别指向在相应于频繁反序栏的区段之后下一个被读取的频繁数据链接关系集合的区段所相应的频繁反序栏。每一非频繁反序栏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,以分别记录频繁数据链接关系集合自预取区域CA中被读取的反向的顺序以及非频繁数据链接关系集合自预取区域CA中被读取的反向的顺序。控制器160建立顺序表SE_TB,以分别记录频繁数据链接关系集合自预取区域CA中被读取的顺序以及非频繁数据链接关系集合自域取区域中被读取的顺序。在一实施例中,控制器160还用以在随机存取存储器166中建立一非频繁指标组以及一频繁指标组,其中非频繁指标组用以维护非频繁数据链接关系集合,并且频繁指标组用以维护被频繁数据链接关系集合。在一实施例中,非频繁指标组是由一非频繁头指标LRU_HIX以及一非频繁尾指标LRU_TIX所构成,并且频繁指标组是由一频繁头指标FR_HIX以及一频繁尾指标FR_TIX所构成。在其他实施例中,非频繁头指标LRU_HIX、非频繁尾指标LRU_TIX、频繁头指标FR_HIX以及频繁尾指标FR_TIX也可以建立于其他存储器或者电路中,本发明不限于此。非频繁头指标LRU_HIX为用以储存最后一个被读取的非频繁数据链接关系集合的区段的共用指标,以指向预取区域CA中最后一个被读取的非频繁数据链接关系集合。非频繁尾指标LRU_TIX为用以储存最久未被读取的非频繁数据链接关系集合的区段的共用指标,以指向预取区域CA中最久未被读取的非频繁数据链接关系集合。频繁头指标FR_HIX为用以储存最后一个被读取的频繁数据链接关系集合的区段的共用指标,以指向预取区域CA中最后一个被读取的频繁数据链接关系集合。频繁尾指标FR_TIX为用以储存最久未被读取的频繁数据链接关系集合的区段的共用指标,以指向预取区域CA中最久未被读取的频繁数据链接关系集合。值得注意的是,由于彼此相应的区段、顺序栏、区段对应栏以及反序栏具有相同的共用指标,故非频繁头指标LRU_HIX、非频繁尾指标LRU_TIX、频繁头指标FR_HIX以及频繁尾指标FR_TIX同时也指向相应的顺序栏、区段对应栏以及反序栏。值得注意的是,在一实施例中,非频繁头指标LRU_HIX以及非频繁尾指标LRU_TIX的初始值可为共用指标CIX_N,并且频繁头指标FR_HIX以及频繁尾指标FR_TIX的初始值可为一特定值,该特定值与所有共用指标CIX_0~CIX_N不同。在另一实施例中,非频繁头指标LRU_HIX、非频繁尾指标LRU_TIX、频繁头指标FR_HIX以及频繁尾指标FR_TIX的初始值皆为一特定值,该特定值与所有共用指标CIX_0~CIX_N不同。
在本实施例中,任何数据链接关系集合TS_0~TS_M被上载至预取区域CA后,都属于非频繁数据链接关系集合,直到另一命令致使控制器160对已上载至预取区域CA的非频繁数据链接关系集合进行读取,被读取的非频繁数据链接关系集合则属于频繁数据链接关系集合。另外,控制器160可根据非频繁尾指标LRU_TIX,选择预取区域CA中的多个区段S_0~S_N中之一者。换言之,控制器160可根据非频繁尾指标LRU_TIX选择预取区域CA中最久未被读取的非频繁数据链接关系集合,以将新的数据链接关系集合载入用以储存所选择的非频繁数据链接关系集合的区段。当预取区域CA中的所有数据链接关系集合皆属于频繁数据链接关系集合并且控制器160需要上载其他新的数据链接关系集合时,代表控制器160开始对另一个档案进行读取。因此,当非频繁尾指标LRU_TIX并未指向任何一个共用指标时,控制器160会将频繁指标组转移为非频繁指标组,并且删除频繁指标组中的数值。
详细而言,当预取区域对应表SMR_TB中不存在控制器160目前需要读取的一第一数据链接关系集合的第一集合指标时,控制器160判断预取区域CA是否具有空白的区段。当控制器160判断预取区域CA的区段S_0~S_N具有空白的一第一区段时,控制器160自快闪存储器180中的数据链接关系表TB1读取第一数据链接关系集合,将第一数据链接关系集合载入空白的第一区段。当控制器160判断预取区域CA不具有空白的区段时,控制器160判断非频繁尾指标LRU_TIX是否为共用指标中之任一者。当非频繁尾指标LRU_TIX为共用指标中的任一者时,控制器160根据非频繁尾指标LRU_TIX判断非频繁数据链接关系集合中最久未被读取的非频繁数据链接关系集合,以将第一数据链接关系集合的数据写入非频繁数据链接关系集合中最久未被读取的非频繁数据链接关系集合所属的区段。当非频繁尾指标LRU_TIX不是共用指标中之任一者时,控制器160将频繁尾指标FR_TIX中所储存的共用指标写入非频繁尾指标LRU_TIX,将频繁头指标FR_HIX中所储存的共用指标写入非频繁头指标LRU_HIX,并且删除频繁尾指标FR_TIX以及非频繁尾指标LRU_TIX中的共用指标。在另一实施例中,控制器160亦可在将频繁头指标FR_HIX中所储存的共用指标写入非频繁头指标LRU_HIX后,将与共用指标不同之一特定值写入频繁尾指标FR_TIX以及非频繁尾指标LRU_TIX。另外,控制器160更用以根据非频繁指标组以及频繁指标组更新顺序表SE_TB以及反序表RSE_TB。
在第11图初始状态的实施例中,当控制器160接收到一读取命令或者一写入命令时,控制器160根据所接收的读取命令或者写入命令,找出包括读取命令或者写入命令所指定的页面的一第一对应关系的一第一数据链接关系集合。举例而言,读取命令或者写入命令指示的页面的逻辑地址与实体地址的对应关系是储存于数据链接关系集合TS_2,控制器160则根据所接收的读取命令或者写入命令得知所指定的页面,并找到对应的数据链接关系集合TS_2。接着,控制器160根据预取区域对应表SMR_TB中是否存在相应于第一数据链接关系集合TS_2的集合指标,判断数据链接关系集合TS_2是否已被载入预取区域CA。相似于图4的实施例,举例而言,数据链接关系集合TS_2的集合指标为0xAA。如图11所示,若预取区域CA皆未写入任何数据链接关系集合时,预取区域对应表SMR_TB中所有区段对应栏SMR_0~SMR_N皆为0xFFFF。因此,在本实施例中,控制器160判断数据链接关系集合TS_2的集合指标0xAA不存在于预取区域对应表SMR_TB中。换言之,控制器160根据数据链接关系集合TS_2的集合指标0xAA不存在于预取区域对应表SMR_TB中,判断预取区域CA中不具有数据链接关系集合TS_2。接着,相似于图4的实施例,控制器160在判断预取区域CA具有空白的区段S_0~S_N后,选择一空白的区段S_N,并自快闪存储器180中的数据链接关系表TB1读取数据链接关系集合TS_2,以将数据链接关系集合TS_2载入所选择的空白的区段S_N。接着,控制器160更新预取区域对应表SMR_TB、顺序表SE_TB、反序表RSE_TB、非频繁指标组以及频繁指标组,以记录目前预取区域CA的状态。如图12所示,控制器160将数据链接关系集合TS_2的集合指标0xAA写入区段S_N所相应之区段对应栏SMR_N。值得注意的是,由于数据链接关系集合TS_2是新载入的数据,故数据链接关系集合TS_2属于非频繁数据链接关系集合。因此,控制器160将非频繁头指标LRU_HIX以及非频繁尾指标LRU_TIX同时定义为区段S_N的共用指标CIX_N。值得注意的是,在本实施例中,顺序表SE_TB以及反序表RSE_TB中相应于区段S_N的顺序栏SE_N以及反序栏RSE_N维持特定值0xFFFF,并且频繁头指标FR_HIX以及频繁尾指标FR_TIX维持原本的状态。最后,控制器160读取储存于预取区域CA的数据链接关系集合TS_2以执行所接收到的写入命令以及读取命令。值得注意的是,由于顺序栏SE_N以及反序栏RSE_N与具有非频繁数据链接关系集合TS_2的区段S_N具有相同之共用指标CIX_N。因此,在本实施例中,顺序栏SE_N属于非频繁顺序栏,反序栏RSE_N属于非频繁反序栏。
接着,在图12的实施例中,当控制器160接收到一读取命令或者一写入命令时,控制器160同样地根据所接收之读取命令或者写入命令,找出包括读取命令或者写入命令所指定的页面的一对应关系的一数据链接关系集合。举例而言,在本实施例中,读取命令或者写入命令所指定的页面的一对应关系的一数据链接关系集合为TS_8。接着,控制器160根据预取区域对应表SMR_TB中是否存在相应于数据链接关系集合TS_8的集合指标,判断数据链接关系集合TS_8是否已被载入预取区域CA。举例而言,数据链接关系集合TS_8的集合指标为0xBB。如图12所示,预取区域CA只被写入了数据链接关系集合TS_2,预取区域对应表SMR_TB中只有区段对应栏SMR_N为0xAA,其他皆为0xFFFF。相似于图5的实施例,控制器160判断数据链接关系集合TS_8的集合指标0xBB不存在于预取区域对应表SMR_TB中,并且选择一空白的区段S_N-1。接着,控制器160自快闪存储器180中的数据链接关系表TB1读取数据链接关系集合TS_8,以将数据链接关系集合TS_8载入所选择的空白的区段S_N-1。接着,控制器160更新预取区域对应表SMR_TB、顺序表SE_TB、反序表RSE_TB、非频繁指标组以及频繁指标组,以记录目前预取区域CA的状态。值得注意的是,由于数据链接关系集合TS_8是新载入的数据,故数据链接关系集合TS_8属于非频繁数据链接关系集合。因此,如图12所示,控制器160根据非频繁头指标LRU_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将非频繁头指标LRU_HIX定义为目前区段S_N-1的共用指标CIX_N-1,将非频繁尾指标LRU_TIX维持在共用指标CIX_N,并且维持频繁头指标FR_HIX与频繁尾指标FR_TIX之值。更新后的预取区域对应表SMR_TB、顺序表SE_TB、反序表RSE_TB、非频繁头指标LRU_HIX以及非频繁尾指标LRU_TIX如图13所示。最后,控制器160读取储存于预取区域CA的数据链接关系集合TS_8以执行所接收到的写入命令以及读取命令。值得注意的是,由于顺序栏SE_N-1以及反序栏RSE_N-1与具有非频繁数据链接关系集合TS_8的区段S_N-1具有相同的共用指标CIX_N-1。因此,在本实施例中,顺序栏SE_N-1属于非频繁顺序栏,反序栏RSE_N-1属于非频繁反序栏。
假设控制器160陆续接收到相应于新的数据链接关系集合的写入命令以及读取命令,控制器160则重复上述图12转换到图13的步骤,将数据链接关系集合依序写入S_N-2~S_0中,如图14所示。换言之,控制器160重复执行载入程序,并且写满所有预取区域CA。值得注意的是,在本实施例中,由于顺序表SE_TB以及反序表RSE_TB的初始值即为特定值(0xFFFF),因此在载入程序中不需要再将特定值写入目前区段所相应的反序栏以及预取区域CA中最久未被读取的区段所相应之顺序栏中。在其他实施例中,若顺序表SE_TB以及反序表RSE_TB的与所设定的特定值不同,控制器160则需要在载入程序的最后一个步骤里将特定值写入目前区段所相应的反序栏以及预取区域CA中最久未被读取的区段所相应的顺序栏中。值得注意的是,在上述过程中,由于都没有接收到任何需要读取已上载至预取区域CA中的数据链接关系集合,故频繁头指标FR_HIX以及频繁尾指标FR_TIX皆维持不变。另外,在图14的实施例中,所有的顺序栏SE_0~SE_N皆属于非频繁顺序栏,所有反序栏RSE_0~RSE_N皆属于非频繁反序栏。关于频繁数据链接集合的方法,请参考下述的说明。另外,关于非频繁数据链接集合的更新程序,可将非频繁头指标LRU_HIX视作头指标HIX并将非频繁尾指标LRU_TIX视作尾指标TIX后参考图7A~8的说明,其中频繁头指标FR_HIX以及频繁尾指标FR_TIX维持不变。
接着,以下为更新程序的说明。在图14的实施例中,当控制器160接收到一读取命令或者一写入命令时,控制器160同样地根据所接收的读取命令或者写入命令,找出包括读取命令或者写入命令所指定的页面的一对应关系的一数据链接关系集合。举例而言,在本实施例中,读取命令或者写入命令所指定的页面的一对应关系的一数据链接关系集合为TS_12。接着,控制器160根据预取区域对应表SMR_TB中是否存在相应于数据链接关系集合TS_12的集合指标0xABC,判断数据链接关系集合TS_12是否已被载入预取区域CA。在本实施例中,如图14所示,数据链接关系集合TS_12的集合指标0xABC已存在于预取区域对应表SMR_TB中的区域对应栏SMR_3之中。因此,在本实施例中,控制器160判断数据链接关系集合TS_12的集合指标0xABC存在于预取区域对应表SMR_TB中。换言之,控制器160根据数据链接关系集合TS_12的集合指标0xABC存在于预取区域对应表SMR_TB中,判断预取区域CA中已具有数据链接关系集合TS_12的数据,其中具有数据链接关系集合TS_12的区段S_3为目前区段。由于数据链接关系集合TS_12已被上载至预取区域CA。换言之,在预取区域CA中的数据链接关系集合TS_12被读取的次数已达到既定值"1"。因此,在本实施例中,数据链接关系集合TS_12属于频率数据链接关系集合。接着,控制器160更新预取区域对应表SMR_TB、顺序表SE_TB、反序表RSE_TB、非频率指标组以及频率指标组,以记录目前预取区域CA的状态。如图14所示,控制器160读取目前区段S_3的顺序栏SE_3,以获得相应于在目前区段S_3之前一个被写入的区段为区段S_4。接着,控制器160将相应于目前区段S_3的反序栏RSE_3中所储存的共用指标CIX_2,写入相应于区段S_4的反序栏RSE_4。换言之,控制器160将原本指向反序栏RSE_3的反序栏RSE_4,改指向反序栏RSE_2。接着,控制器160根据目前区段S_3的共用指标CIX_3,读取反序表RSE_TB中相应于目前区段S_3的反序栏RSE_3中的值,并且根据反序栏RSE_3中的共用指标CIX_2找到在目前区段S_3之后下一个被读取的区段S_2的共用指标CIX_2。接着,控制器160在相应于区段S_2的顺序栏SE_2中写入目前区段S_2所相应的顺序栏SE_2中所储存的共用指标CIX_4。换言之,控制器160将原本指向顺序栏SE_3的顺序栏SE_2,改指向顺序栏SE_4。值得注意的是,藉由将原本指向顺序栏SE_3的顺序栏SE_2改指向顺序栏SE_4以及将原本指向反序栏RSE_3的反序栏RSE_4改指向反序栏RSE_2的步骤,顺序栏SE_3以及反序栏RSE_3已脱离了非频繁的系统。换言之,顺序表SE_TB以及反序表RSE_TB中所记录的非频繁数据链接关系集合被读取的顺序已不包括顺序栏SE_3以及反序栏RSE_3所相应的数据链接关系集合TS_12。接着,控制器160将特定值(0xFFFF)写入与目前区段S_3具有相同共用指标CIX_3的顺序栏SE_3,以作为顺序表SE_TB中频繁顺序栏的起始,并且将特定值(0xFFFF)写入与目前区段S_3具有相同共用指标CIX_3的反序栏RSE_3,以作为顺序表RSE_TB中频繁顺序栏的起始。最后控制器160,将频繁头指标FR_HIX定义为目前区段S_3的共用指标CIX_3,将频繁尾指标FR_TIX定义为目前区段S_3的共用指标CIX_3并且维持非频繁指标组的数值。更新后的预取区域对应表SMR_TB、顺序表SE_TB、反序表RSE_TB、频繁指标组以及非频繁指标组,如图15所示。接着,控制器160根据用以储存集合指标0xABC的区段对应栏SMR_3的共用指标CIX_3,读取预取区域CA中所相应的区段S_3,以获得数据链接关系集合TS_12。换言之,控制器160读取储存于预取区域CA的数据链接关系集合TS_12以执行所接收到之写入命令以及读取命令。值得注意的是,由于顺序栏SE_3以及反序栏RSE_3与具有非频繁数据链接关系集合TS_12的区段S_3具有相同的共用指标CIX_3。因此,在本实施例中,顺序栏SE_3属于非频繁顺序栏,反序栏RSE_3属于非频繁反序栏。
接着,在图15的实施例中,当控制器160接收到一读取命令或者一写入命令时,控制器160同样地根据所接收的读取命令或者写入命令,找出包括读取命令或者写入命令所指定的页面的一对应关系的一数据链接关系集合。举例而言,在本实施例中,读取命令或者写入命令所指定的页面的一对应关系的一数据链接关系集合为TS_10。接着,控制器160根据预取区域对应表SMR_TB中是否存在相应于数据链接关系集合TS_10的集合指标0xCC,判断数据链接关系集合TS_10是否已被载入预取区域CA。在本实施例中,如图15所示,数据链接关系集合TS_10的集合指标0xCC已存在于预取区域对应表SMR_TB中的区域对应栏SMR_N-2之中。因此,在本实施例中,控制器160判断数据链接关系集合TS_10的集合指标0xCC存在于预取区域对应表SMR_TB中。换言之,控制器160根据数据链接关系集合TS_10的集合指标0xCC存在于预取区域对应表SMR_TB中,判断预取区域CA中已具有数据链接关系集合TS_10的数据,其中具有数据链接关系集合TS_10之区段S_N-2为目前区段。由于数据链接关系集合TS_10已被上载至预取区域CA。换言之,在预取区域CA中的数据链接关系集合TS_10被读取的次数已达到既定值"1"。因此,在本实施例中,数据链接关系集合TS_10属于频率数据链接关系集合。接着,控制器160更新预取区域对应表SMR_TB、顺序表SE_TB、反序表RSE_TB、非频率指标组以及频率指标组,以记录目前预取区域CA的状态。如图15所示,控制器160读取目前区段S_N-2的顺序栏SE_N-2,以获得相应于在目前区段S_N-2之前一个被写入的区段为区段S_N-1。接着,控制器160将相应于目前区段S_N-2的反序栏RSE_N-2中所储存的共用指标CIX_N-3,写入相应于区段S_N-1的反序栏RSE_N-1。换言之,控制器160将原本指向反序栏RSE_N-2的反序栏RSE_N-1,改指向反序栏RSE_N-3。接着,控制器160根据目前区段S_N-2的共用指标CIX_N-2,读取反序表RSE_TB中相应于目前区段S_N-2的反序栏RSE_N-2中的值,并且根据反序栏RSE_N-2中的共用指标CIX_N-3找到在目前区段S_N-2之后下一个被读取的区段S_N-3的共用指标CIX_N-3。接着,控制器160在相应于区段S_N-3的顺序栏SE_N-3中写入目前区段S_N-2所相应的顺序栏SE_N-2中所储存的共用指标CIX_N-1。换言之,控制器160将原本指向顺序栏SE_N-2之顺序栏SE_N-3,改指向顺序栏SE_N-1。值得注意的是,藉由将原本指向顺序栏SE_N-2的顺序栏SE_N-3改指向顺序栏SE_N-1以及将原本指向反序栏RSE_N-2的反序栏RSE_N-1改指向反序栏RSE_N-3的步骤,顺序栏SE_N-2以及反序栏RSE_N-2已脱离了非频繁的系统。换言之,顺序表SE_TB以及反序表RSE_TB中所记录的非频繁数据链接关系集合被读取的顺序已不包括顺序栏SE_3以及反序栏RSE_3所相应的数据链接关系集合TS_12。接着,控制器160根据频繁头指标FR_HIX,获得在预取区域CA中最后一个被读取的频繁数据链接关系集合TS_12所属的一区段S_3,并且将区段S_3所相应的顺序栏SE_3的共用指标CIX_3,写入相应于目前之区段S_N-2的顺序栏SE_N-2。接着,控制器160根据频繁尾指标FR_TIX,获得在预取区域CA中最久未被读取的频繁数据链接关系集合TS_12所属的一区段S_3,并将相应于目前的区段S_N-2的反序栏RSE_N-2的共用指标CIX_N-2,写入区段S_3所相应的反序栏RSE_3中。值得注意的是,在本实施例中,预取区域CA里只有一个频繁数据链接关系TS_12,故频繁数据链接关系TS_12为最后一个也是最久未被读取之频繁数据链接关系。最后控制器160,将频繁头指标FR_HIX定义为目前区段S_N-2的共用指标CIX_N-2,将频繁尾指标TIX维持在共用指标CIX_3,并且将一特定值写入目前区段S_N-2所相应的反序栏RSE_N-2中。另外,控制器160亦维持非频繁指标组中的数值。更新后的预取区域对应表SMR_TB、顺序表SE_TB、反序表RSE_TB、频繁指标组以及非频繁指标组,如图16所示。接着,控制器160根据用以储存集合指标0xCC的区段对应栏SMR_N-2的共用指标CIX_N-2,读取预取区域CA中所相应的区段S_N-2,以获得数据链接关系集合TS_10。换言之,控制器160读取储存于预取区域CA的数据链接关系集合TS_10以执行所接收到的写入命令以及读取命令。值得注意的是,由于顺序栏SE_N-2以及反序栏RSE_N-2与具有非频繁数据链接关系集合TS_10的区段S_N-2具有相同的共用指标CIX_N-2。因此,在本实施例中,顺序栏SE_N-2属于非频繁顺序栏,反序栏RSE_N-2属于非频繁反序栏。
接着,在图16的实施例中,当控制器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是否具有空白的区段。如图16所示,预取区域CA的区段S_0~S_N皆不是空白的。接着,控制器160判断非频繁尾指标LRU_TIX是否为共用指标CIX_0~CIX_N中之任一者。如图16所示,非频繁尾指标LRU_TIX为共用指标CIX_N。接着,控制器160根据非频繁尾指标LRU_TIX判断预取区域CA中最久未被读取的非频繁数据链接关系集合,以将数据链接关系集合TS_77的数据写入预取区域CA中最久未被读取的非频繁数据链接关系集合所属的区段。如图16所示,控制器160根据非频繁尾指标LRU_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、频繁指标组以及非频繁指标组,以记录目前预取区域CA的状态。首先,控制器160将相应于数据链接关系集合TS_77的集合指标0x333,写入预取区域对应表SMR_TB中相应于区段S_N的区段对应栏SMR_N。如图16所示,控制器160根据非频繁头指标LRU_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读取目前的区段S_N的反序栏RSE_N,以获得在目前的区段S_N之后下一个被读取的区段S_N-1的共用指标CIX_N-1。接着,控制器160将非频繁头指标LRU_HIX定义为目前区段S_N的共用指标CIX_N,将非频繁尾指标LRU_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、非频繁指标组以及频繁指标组如图17所示。最后,控制器160读取储存于预取区域CA的数据链接关系集合TS_77以执行所接收到的写入命令以及读取命令。
假设控制器160陆续接收到相应于已上载于预取区域CA的频繁数据链接关系集合的写入命令以及读取命令,控制器160则重复上述图15转换到图16的步骤,以更新顺序表SE_TB、反序表RSE_TB以及频繁指标组,直到预取区域CA中所有的数据皆为频繁数据链接关系集合,如图18所示。值得注意的是,在预取区域CA仅剩下最后一个非频繁数据链接关系集合TS_8时,非频繁数据链接关系集合TS_8所相应的顺序栏SE_N-1以及反叙栏RSE_N-1皆会为特定值(0xFFFF)。换言之,当控制器160要对非频繁数据链接关系集合TS_8进行读取并且发现其所相应的顺序栏SE_N-1以及反叙栏RSE_N-1皆为特定值(0xFFFF)时,控制器160判断即将转换为频繁数据链接关系集合之非频繁数据链接关系集合TS_8为最后一个非频繁数据链接关系集合。因此,控制器160会在数据链接关系集合TS_8所相应的数据更新至频繁数据系统后,将非频繁头指标LRU_HIX以及非频繁尾指标LRU_TIX中的共用指标删除,如图18所示。
接着,在图18的实施例中,当控制器160接收到一读取命令或者一写入命令时,控制器160同样地根据所接收之读取命令或者写入命令,找出包括读取命令或者写入命令所指定的页面的一对应关系的一数据链接关系集合。举例而言,在本实施例中,读取命令或者写入命令所指定的页面的一对应关系的一数据链接关系集合为TS_88。接着,控制器160根据预取区域对应表SMR_TB中是否存在相应于数据链接关系集合TS_88的集合指标0x444,判断数据链接关系集合TS_88是否已被载入预取区域CA。在本实施例中,预取区域CA并没有数据链接关系集合TS_88的数据,故集合指标0x444也不存在于预取区域对应表SMR_TB中的任何一个区域对应栏SMR_0~SMR_N之中。控制器160根据数据链接关系集合TS_88的集合指标0x444不存在于预取区域对应表SMR_TB中,判断预取区域CA中不具有数据链接关系集合TS_88。接着,控制器160判断预取区域CA是否具有空白之区段。如图18所示,预取区域CA的区段S_0~S_N皆不是空白的。接着,控制器160判断非频繁尾指标LRU_TIX是否为共用指标CIX_0~CIX_N中之任一者。如图18所示,非频繁尾指标LRU_TIX为空白或者预设值。因此,控制器160将频繁尾指标FR_TIX中的共用指标CIX_N-1写入非频繁尾指标LRU_TIX中,将频繁头指标FR_HIX中的共用指标CIX_N-2写入频繁尾指标LRU_HIX中,并且删除频繁尾指标FR_TIX以及频繁头指标FR_HIX中的共用指标,如图19所示。接着,控制器160根据非频繁尾指标LRU_TIX判断预取区域CA中最久未被读取的非频繁数据链接关系集合,以将数据链接关系集合TS_88的数据写入预取区域CA中最久未被读取之非频繁数据链接关系集合所属的区段。如图19所示,控制器160根据非频繁尾指标LRU_TIX中的共用指标CIX_N-1,判断预取区域CA中最久未被的之非频繁数据链接关系集合为数据链接关系集合TS_8,并且根据共用指标CIX_N-1获得具有最久未被读取的非频繁数据链接关系集合的区段为区段S_N-1。接着,控制器160自快闪存储器180中的数据链接关系表TB1读取数据链接关系集合TS_88,以将数据链接关系集合TS_88载入所获得的区段S_N-1,以取代原本很久未被读取的非频繁数据链接关系集合TS_8。接着,控制器160更新预取区域对应表SMR_TB、顺序表SE_TB、反序表RSE_TB、频繁指标组以及非频繁指标组,以记录目前预取区域CA的状态。详细步骤可参考图16以及图17的实施例,在此不再赘述。更新后的预取区域对应表SMR_TB、顺序表SE_TB、反序表RSE_TB、非频繁指标组以及频繁指标组如图20所示。最后,控制器160读取储存于预取区域CA的数据链接关系集合TS_88以执行所接收到的写入命令以及读取命令。
图21为本发明所提供之一数据维护方法的一种实施例的流程图。图21所示的数据维护方法适用于图1所示的数据储存装置140。流程开始于步骤S2100。
在步骤S2100中,在快闪存储器160被上电后,控制器160根据所接收的至少一读取命令或者至少一写入命令,在随机存储器166中的一预取区域CA中,载入一数据链接关系表TB1中的多个数据链接关系集合TS_0~TS_N的一部份。
接着,在步骤S2102中,控制器160根据所载入的数据链接关系集合的被读取的顺序以及次数,在随机存储器166中建立一频率指标组以及一非频率指标组,以维护预取区域CA中的数据。详细而言,控制器160在随机存取存储器166中建立一非频繁指标组以及一频繁指标组,其中非频繁指标组用以维护非频繁数据链接关系集合,并且频繁指标组用以维护被频繁数据链接关系集合。在一实施例中,非频繁指标组系由一非频繁头指标LRU_HIX以及一非频繁尾指标LRU_TIX所构成,并且频繁指标组系由一频繁头指标FR_HIX以及一频繁尾指标FR_TIX所构成。非频繁头指标LRU_HIX为用以储存最后一个被读取的非频繁数据链接关系集合的区段的共用指标,以指向预取区域CA中最后一个被读取的非频繁数据链接关系集合。非频繁尾指标LRU_TIX为用以储存最久未被读取的非频繁数据链接关系集合的区段的共用指标,以指向预取区域CA中最久未被读取的非频繁数据链接关系集合。频繁头指标FR_HIX为用以储存最后一个被读取的频繁数据链接关系集合的区段的共用指标,以指向预取区域CA中最后一个被读取的频繁数据链接关系集合。频繁尾指标FR_TIX为用以储存最久未被读取的频繁数据链接关系的之区段的共用指标,以指向预取区域CA中最久未被读取的频繁数据链接关系集合。
在另一实施例中,在步骤S2102中,控制器160更根据所载入的数据链接关系集合,建立一预取区域对应表SMR_TB、一反序表RSE_TB以及一顺序表SE_TB。详细而言,控制器160在随机存储器166中建立预取区域对应表SMR_TB,以记录相应于预取区域CA中的数据链接关系集合的集合指标。控制器160在随机存储器166中建立反序表RSE_TB用以分别记录频繁数据链接关系集合自预取区域CA中被读取的反向的顺序以及非频繁数据链接关系集合自预取区域CA中被读取的反向的顺序。值得注意的是,在本实施例中,反序表RSE_TB中的反序栏RSE_0~RSE_N可记录两种顺序(频繁数据链接关系集合自预取区域CA中被读取的反向的顺序以及非频繁数据链接关系集合自域取区域中被读取的反向的顺序)。相似地,控制器160在随机存储器166中建立顺序表SE_TB,以分别记录频繁数据链接关系集合自预取区域CA中被读取的顺序以及非频繁数据链接关系集合自域取区域中被读取的顺序。当预取区域CA已被写满并且需要载入新的数据链接关系集合时,根据非频繁尾指标LRU_TIX,选择预取区域CA中的区段S_0~S_N中之一者,以将新的数据链接关系集合载入所选择的区段。在新的上述数据链接关系集合载入所选择的上述区段或者对旧的数据链接关系集合读取后,控制器160可根据非频繁指标组及/或频繁指标组、反序表RSE_TB中的数据以及顺序表SE_TB中的数据,更新随机存储器中的表以及指标,以记录预取区域CA中的数据状态。
图22A~22H为本发明所提供的一数据维护方法的一种实施例的流程图。图22A~22H所示的数据维护方法适用于图1所示的数据储存装置140。流程开始于步骤S2200。步骤S2200~S2212、S2260~S2262、S2266~S2272、S2276~S2282相似于图10的步骤S1000~S1012、S1060~S1062、S1066~S1072、S1076~S1082,请参考图10的说明,在此不再赘述。
在步骤S2214中,控制器160将一非频繁头指标LRU_HIX以及一非频繁尾指标LRU_TIX同时定义为第一区的一第一共用指标。举例而言,在图12的实施例中,数据链接关系集合TS_2是第一个被写入预取区域CA的数据链接关系集合,其中数据链接关系集合TS_2系被写入区段S_N。因此,在步骤S2214中,控制器160将非频繁头指标LRU_HIX以及非频繁尾指标LRU_TIX同时定义为区段S_N的共用指标CIX_N。接着,流程进行至步骤S2299。
在步骤S2218中,控制器160根据非频繁头指标LRU_HIX,获得在预取区域CA中最后一个被读取的非频繁数据链接关系集合所属的一第二区段。值得注意的是,在本实施例中,预取区域CA最后一个被读取的数据链接关系集合指的是,目前的预取区域CA中最后一个被控制器160自预取区域CA中读取以进行所接收的读取命令或者写入命令的非频繁数据链接关系集合。
接着,在步骤S2220中,控制器160将顺序表SE_TB中相应于第二区段所相应的一第二顺序栏的共用指标,写入相应于第一区段的第一顺序栏。举例而言,在图5的实施例中,数据链接关系集合TS_8不是第一个被写入预取区域CA的数据链接关系集合,其中数据链接关系集合TS_8系被写入区段S_N-1(第一区段)。在更新随机存取存储器166中的表前,控制器160在步骤S1018中,根据目前的非频繁头指标LRU_HIX(如图12所示),获得在预取区域CA中最后一个被读取的非频繁数据链接关系集合TS_2所属的一区段S_N(第二区段)。接着,在步骤S2220中,控制器160将区段S_N(第二区段)所相应的顺序栏SE_N(第二顺序栏)的共用指标CIX_N,写入相应于目前的区段S_N-1(第一区段)的顺序栏SE_N-1(第一顺序烂)。
接着,在步骤S2222中,控制器160将反序表RSE_TB中相应于第一区段的第一反序栏的共用指标,写入第二区段所相应的第二反序栏。举例而言,在图13的实施例中,控制器160在步骤S2222中将相应于目前的区段S_N-1(第一区段)的反序栏RSE_N-1(第一反序栏)的共用指标CIX_N-1,写入区段S_N(第二区段)所相应的反序栏RSE_N中。
接着,在步骤S2224中,控制器160将非频繁头指标LRU_HIX定义为第一区段的一第一共用指标。举例而言,在图13的实施例中,控制器160在步骤S2224中,将非频繁头指标LRU_HIX定义为目前区段S_N-1(第一区段)的共用指标CIX_N-1(第一共用指标),并且将非频繁尾指标LRU_TIX维持在共用指标CIX_N(第二共用指标),其中频繁指标组亦维持在原本的数值。接着,流程进行至步骤S1090。
在步骤S2229中,控制器160判断非频繁尾指标LRU_TIX或者非频繁头指标LRU_HIX是否为共用指标CIX_0~CIX_N中之任一者。当非频繁尾指标LRU_TIX或者非频繁头指标LRU_HIX为共用指标CIX_0~CIX_N中之一者时,流程进行至步骤S2230;否则,流程进行至步骤S2291。
在步骤S2230中,控制器160根据非频繁尾指标LRU_TIX判断预取区域CA中最久未被读取的非频繁数据链接关系集合所属的一第三区段。值得注意的是,在本实施例中,预取区域CA中最久未被读取的非频繁数据链接关系集合指的是,目前的预取区域CA中最久未被控制器160自预取区域CA中读取以进行所接收的读取命令或者写入命令的非频繁数据链接关系集合。
接着,在步骤S2232中,控制器160将第一数据链接关系集合的数据写入第三区段。举例而言,在图17的实施例中,读取命令或者写入命令所指定的页面的一对应关系包括于数据链接关系集合TS_77(第一数据链接关系集合)。控制器160在步骤S2204中已判断预取区域对应表SMR_TB中不存在相应于数据链接关系集合TS_77的集合指标0x333,并且控制器160在步骤S2206中已判断预取区域CA中已不具有空白的区段。因此,在步骤S2230中,控制器160根据更动前的图16所示的非频繁尾指标LRU_TIX判断预取区域CA中最久未被读取的非频繁数据链接关系集合为数据链接关系集合TS_2,并且数据链接关系集合TS_2所相应的区段为区段S_N(第三区段)。因此,在步骤S2232中,控制器160自快闪存储器180中的数据链接关系表TB1读取数据链接关系集合TS_77(第一数据链接关系集合),以将数据链接关系集合TS_77载入所获得的区段S_N(第三区段),以取代原本很久未被读取的数据链接关系集合TS_2。
接着,在步骤S2234中,控制器160将相应于第一数据链接关系集合的第一集合指标,写入预取区域对应表SMR_TB中相应于第三区段的区段对应栏。在图17的实施例中,控制器160接着在步骤S2234中将相应于数据链接关系集合TS_77(第一数据链接关系集合)的集合指标0x333(第一集合指标),写入预取区域对应表SMR_TB中相应于区段S_N(第三区段)的区段对应栏SMR_N。
接着,在步骤S2236中,控制器160根据非频繁头指标LRU_HIX,获得在预取区域CA中最后一个被读取的非频繁数据链接关系集合所属的一第四区段。
接着,在步骤S2238中,控制器160将顺序表SE_TB中的相应于第四区段的一第四顺序栏的共用指标,写入顺序表SE_TB中相应于第三区段的一第三顺序栏。举例而言,在图17的实施例中,控制器160在步骤S2236中根据更动前图16所示的非频繁头指标LRU_HIX,获得在预取区域CA中最后一个被读取的数据链接关系集合TS_0是属于的区段S_2(第四区段)。接着,在步骤S1038中,控制器160将区段S_2(第四区段)所相应的顺序栏SE_2(第四顺序栏)的共用指标CIX_2,写入相应于目前的区段S_N(第三区段)的顺序栏SE_N(第三顺序栏)。
接着,在步骤S2240中,控制器160将反序表RSE_TB中相应于第三区段的一第三反序栏的共用指标,写入反序表RSE_TB中相应于第四区段的一第四反序栏。举例而言,在图17的实施例中,控制器160将相应于目前的区段S_N(第三区段)的反序栏RSE_N(第三反叙栏)的共用指标CIX_N,写入区段S_2(第四区段)所相应的反序栏RSE_2(第四反序栏)。
接着,在步骤S2242中,控制器160读取第三反序栏,以获得反序栏RSE_0~RSE_N中一第五反序栏RSE_0~RSE_N的共用指标。换言之,控制器160读取目前被写入的第三区段所相应的第三反序栏,以获得原本在目前的第三区段之后下一个被读取的一第五区段。
接着,在步骤S2244中,控制器160将非频繁尾指标LRU_TIX定义为相应于第五反序栏的一第五共用指标以及将非频繁头指标LRU_HIX定义为第三顺序栏的一第三共用指标。举例而言,在图17的实施例中,控制器160在步骤S2244中读取目前的区段S_N(第三区段)的反序栏RSE_N(第三反序栏),以获得原本在目前之区段S_N(第三区段)之后下一个被读取的区段S_N-1的共用指标CIX_N-1(第五反序栏的共用指标)。接着,控制器160将非频繁头指标LRU_HIX定义为目前区段S_N(第三区段)的共用指标CIX_N,并且将非频繁尾指标LRU_TIX定义为原本在目前之区段S_N之后下一个被读取的区段S_N-1(第五区段)的共用指标CIX_N-1(第五共用指标)。
接着,在步骤S2246中,控制器160将一特定值写入第三反序栏以及相应于第五共用指标的一第五顺序栏。换言之,控制器160将特定值写入目前头指标所指向的共用指标所相应的反序栏中,并且将特定值写入目前尾指标所指向的共用指标所相应的顺序栏中。如图17所示,控制器160将特定值写入相应于目前区段S_N(第三区段)的反序栏RSE_N以及共用指标CIX_N-1(第五反序栏的共用指标)所相应的顺序栏SE_N-1(第五顺序栏)。接着,流程进行至步骤S2299。
在步骤S2259中,控制器160判断频繁头指标FR_HIX或者频繁尾指标FR_TIX是否为共用指标CIX_0~CIX_N中之任一者。当频繁头指标FR_HIX为共用指标CIX_0~CIX_N中之一者时,流程进行至步骤S2260;否则,流程进行至步骤S2293。
接着,在步骤S2264中,控制器160根据频繁头指标FR_HIX,获得在预取区域CA中最后一个被读取的频繁数据链接关系集合所属的一第八区段。
接着,在步骤S2265中,控制器160根据频繁尾指标FR_TIX,判断预取区域CA中最久未被读取的数据链接关系集合所属的区段是否为第六区段。当最久未被读取的数据链接关系集合所属的区段为第六区段时,流程进行至步骤S2280;否则,流程进行至步骤S2266。换言之,控制器160在本步骤中判断目前所要读取的数据链接关系集合是否为预取区域CA中最久未被读取的数据链接关系集合。
接着,在步骤S2274中,控制器160将频繁头指标FR_HIX定义为第六顺序栏的一第六共用指标。
接着,在步骤S2284中,控制器160将频繁头指标FR_HIX定义为第六顺序栏的一第六共用指标,并且将频繁尾指标FR_TIX定义为第七区段的一第七共用指标。
接着,步骤S2286中,控制器160将一特定值写入第六反序栏。换言之,控制器160将特定值写入目前头指标所指的共用指标CIX_N所相应的反序栏RSE_N中。接着,流程进行至步骤S2299。
在步骤S2291中,控制器160将频繁尾指标FR_TIX中所储存的共用指标写入非频繁尾指标LRU_TIX,将频繁头指标FR_HIX中所储存的共用指标写入非频繁头指标LRU_HIX。
接着,在步骤S2292中,控制器160删除频繁尾指标FR_TIX以及非频繁尾指标LRU_TIX中的共用指标。在另一实施例中,控制器160亦可在将频繁头指标FR_HIX中所储存的共用指标写入非频繁头指标LRU_HIX后,将预设值写入频繁尾指标FR_TIX以及非频繁尾指标LRU_TIX。举例而言,在步骤S2229中,控制器160判断非频繁尾指标LRU_TIX或者非频繁头指标LRU_HIX皆非共用指标CIX_0~CIX_N中之任一者,如图18所示。接着,控制器160则在步骤S2291~S2292中,将频繁尾指标FR_TIX中所储存的共用指标CIX_N-1写入非频繁尾指标LRU_TIX,将频繁头指标FR_HIX中所储存的共用指标CIX_N-2写入非频繁头指标LRU_HIX,并且删除频繁尾指标FR_TIX以及非频繁尾指标LRU_TIX中的共用指标。接着,流程进行至步骤S2230。
在步骤S2293中,控制器160读取相应于储存第一数据链接关系集合的一第六区段所相应的一第六反序栏,以获得在第一数据链接关系集合之后下一个被读取的第七区段。换言之,控制器160读取在一反序表RSE_TB中一第六区段所相应的一第六反序栏,以获得在第六区段之后下一个被读取的一第七区段。举例而言,在图15的实施例中,读取命令或者写入命令所指定的页面之一对应关系包括于数据链接关系集合为TS_12。如更动前的图14所示,数据链接关系集合TS_12的集合指标0xABC已存在于预取区域对应表SMR_TB中的区域对应栏SMR_3之中。因此,控制器160在步骤S2204中已根据预取区域对应表SMR_TB存在相应于数据链接关系集合TS_3的集合指标0xABC,判断数据链接关系集合TS_12已被载入预取区域CA。接着,控制器160在步骤S2293中根据目前区段S_3(第六区段)的共用指标CIX_3,读取反序表RSE_TB中相应于目前区段S_3(第六区段)之反序栏RSE_3(第六反序栏)中的值,并且根据反序栏RSE_3(第六反序栏)中的共用指标CIX_2找到在目前区段S_3(第六区段)之后下一个被读取的区段为区段S_2。
接着,在步骤S2294中,控制器160在顺序表SE_TB中相应于第七区段之一第七顺序栏中,写入第六区段所相应的一第六顺序栏中所储存的共用指标。举例而言,在图14的实施例中,控制器160在步骤S1093中已获得在目前区段S_3(第六区段)之后下一个被读取之区段为区段S_2(第七区段)。因此,在步骤S1094中,控制器160在相应于区段S_2(第七区段)之顺序栏SE_2(第七顺序栏)中写入目前区段S_3(第六区段)所相应之顺序栏SE_3(第六顺序栏)中所储存之共用指标CIX_4。换言之,控制器160将原本指向顺序栏SE_3(第六顺序栏)的顺序栏SE_2(第七顺序栏),改指向在第一数据链接关系集合之前上一个被读取的区段S_4所相应的顺序栏SE_4。
接着,在步骤S2295中,控制器160读取相应于第六区段的第六顺序栏,以获得相应于在第六区段之前一个被写入的一第九区段的一第九共用指标。在图15的实施例中,控制器160在步骤S2295中读取相应于目前区段S_3(第六区段)的顺序栏SE_3(第六顺序栏),以获得相应于在目前区段S_4(第六区段)之前一个被写入之区段为区段S_4(第九区段)。
接着,在步骤S2296中,控制器160将第六反序栏中所储存的共用指标,写入相应于第九共用指标的一第九反序栏。举例而言,在图15的实施例中,控制器160在步骤S2295中将相应于目前区段S_3(第六区段)的反序栏RSE_3(第六反序栏)中所储存的共用指标CIX_2,写入相应于区段S_4(第九区段)的反序栏RSE_4(第九反序栏)。
接着,在步骤S2297中,控制器160将特定值写入第六顺序栏以及第六反序栏。举例而言,在图15的实施例中,控制器160在步骤S2297中将特定值0xFFFF写入相应于目前区段S_3(第六区段)的反序栏RSE_3(第六反序栏)以及顺序栏SE_3(第顺反序栏)。
接着,在步骤S2298中,控制器160将频繁头指标FR_HIX以及频繁尾指标FR_TIX定义为第六顺序栏的一第六共用指标。举例而言,在图15的实施例中,控制器160在步骤S2297中将频繁头指标FR_HIX以及频繁尾指标FR_TIX定义为目前区段S_3的共用指标CIX_3。接着,流程进行至步骤S2299。
在步骤S2299中,控制器160自预取区域CA读取第一数据链接关系集合中的数据,以执行在步骤S2200中所接收的写入命令或者读取命令。流程结束于步骤S2299。
本发明所提供的数据储存装置140以及数据维护方法可藉由指标、反序表、顺序表以及一预取区域对应表记录预取区域中数据被读取的状态以更新预取区域中的数据,其中指标、反序表以及顺序表可使得预取区域对应表在每次更新的过程中所需修正数据数不超五栏。
本发明的方法,或特定型态或其部份,可以以程序码的型态存在。程序码可储存于实体媒体,如软碟、光碟片、硬碟、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
以上所述,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或申请专利范围不须达成本发明所揭示的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。
Claims (22)
1.一种数据储存装置,包括:
一随机存取存储器,具有一预取区域;以及
一控制器,用以将一数据链接关系表中部分的多个数据链接关系集合载入该预取区域中的多个区段,其中这些数据链接关系集中,被读取次数小于一既定值的数据链接关系集合属于多个非频繁数据链接关系集合,且被读取次数到达该既定值的数据链接关系集合,属于多个频繁数据链接关系集合;
这些区段依序具有多个共用指标;
该随机存取存储器还包括一顺序表、一反序表以及一预取区域对应表,其中该预取区域对应表具有多个区段对应栏用以记录相应于该预取区域中的这些数据链接关系集合的这些集合指标,该顺序表用以分别记录这些频繁数据链接关系集合自该预取区域中被读取的顺序以及这些非频繁数据链接关系集合自该预取区域中被读取的顺序,并且该反序表分别用以记录这些频繁数据链接关系集合自该预取区域中被读取的反向的顺序以及这些非频繁数据链接关系集合自该预取区域中被读取的反向的顺序;
该预取区域对应表中的这些区段对应栏依序相应于该预取区域中的这些区段,该顺序表具有多个顺序栏依序相应于该预取区域中的这些区段,该反序表具有多个反序栏依序相应于该预取区域中的这些区段,并且该区段对应栏、该顺序栏、该反序栏与其相应的这些区段具有相同的这些共用指标。
2.根据权利要求1所述的数据储存装置,其特征在于,还包括一快闪存储器,包括多个页面,其中每一这些页面具有一逻辑地址以及一实体地址,该快闪存储器具有该数据链接关系表用以记录所有这些页面之这些逻辑地址以及这些实体地址的多个对应关系,该数据链接关系表被分割为这些数据链接关系集合,每一这些数据链接关系集合具有这些对应关系中之至少一者,并且每一该数据链接关系集合相应于一集合指标。
3.根据权利要求2所述的数据储存装置,其特征在于,该控制器还建立一非频繁指标组以维护这些非频繁数据链接关系集合,并且建立一频繁指标组以维护这些频繁数据链接关系集合,其中该非频繁指标组系由一非频繁头指标以及一非频繁尾指标所构成,并且该频繁指标组由一频繁头指标以及一频繁尾指标所构成。
4.根据权利要求3所述的数据储存装置,其特征在于,该非频繁头指标为用以储存最后一个被读取的该非频繁数据链接关系集合之该区段的该共用指标,该非频繁尾指标为用以储存最久未被读取的该非频繁数据链接关系集合的该区段的该共用指标,该频繁头指标为用以储存最后一个被读取的该频繁数据链接关系集合的该区段的该共用指标,该频繁尾指标为用以储存最久未被读取的该频繁数据链接关系集合的该区段的该共用指标。
5.根据权利要求4所述的数据储存装置,其特征在于,与这些频繁数据链接关系集合所属的这些区段具有相同的这些共用指标的这些顺序栏属于多个频繁顺序栏,与这些非频繁数据链接关系集合所属的这些区段具有相同的这些共用指标的这些顺序栏属于多个非频繁顺序栏,其中每一这些频繁顺序栏用以储存另一该频繁顺序栏的该共用指标,以分别指向在相应于该频繁顺序栏的该区段之前上一个被读取的该频繁数据链接关系集合的该区段所相应的该频繁顺序栏,其中每一这些非频繁顺序栏系用以储存另一该非频繁顺序栏的该共用指标,以分别指向在相应于该非频繁顺序栏的该区段之前上一个被读取的该非频繁数据链接关系集合的该区段所相应该非频繁顺序栏。
6.根据权利要求4所述的数据储存装置,其特征在于,与这些频繁数据链接关系集合所属的这些区段具有相同的这些共用指标的这些反序栏属于多个频繁反序栏,与这些非频繁数据链接关系集合所属的这些区段具有相同的这些共用指标的这些反序栏属于多个非频繁反序栏,其中每一这些频繁反序栏用以储存另一该频繁反序栏的该共用指标,以分别指向在相应于该频繁反序栏的该区段之后下一个被的之该频繁数据链接关系集合的该区段所相应的该频繁反序栏,每一这些非频繁反序栏用以储存另一该非频繁反序栏的该共用指标,以分别指向在相应于该非频繁反序栏的该区段之后下一个被读取的该非频繁数据链接关系集合的该区段所相应的该非频繁反序栏。
7.根据权利要求4所述的数据储存装置,其特征在于,该控制器用以根据一读取命令或者一写入命令,找出包括该读取命令或者该写入命令所指定的上述页面的一第一对应关系的一第一数据链接关系集合,并且根据该预取区域对应表中是否存在相应于该第一数据链接关系集合的一第一集合指标,判断该第一数据链接关系集合是否已被载入该预取区域中,其中该第一数据链接关系集合为这些数据链接关系集合中之一者,该第一集合指标为这些集合指标中之一者,并且该第一对应关系为这些对应关系中之一者。
8.根据权利要求7所述的数据储存装置,其特征在于,当该预取区域对应表中存在相应于该第一集合指标时,该控制器根据用以储存该第一集合指标的该区段对应栏的该共用指标,读取该预取区域中所相应的该区段,以获得该第一数据链接关系集合,并且读取储存于该随机存取存储器中之该第一数据链接关系集合中的数据以进行该写入命令或者该读取命令。
9.根据权利要求8所述的数据储存装置,其特征在于,当该预取区域对应表中不存在该第一集合指标时,该控制器判断该预取区域是否具有空白的该区段,其中当该控制器判断该预取区域的该区段具有空白的一第一区段时,该控制器自该快闪存储器中的该数据链接关系表读取该第一数据链接关系集合,将该第一数据链接关系集合载入空白的该第一区段。
10.根据权利要求9所述的数据储存装置,其特征在于,当该控制器判断该预取区域不具有空白的该区段时,该控制器判断该非频繁尾指标是否为这些共用指标中之任一者,其中当该非频繁尾指标为这些共用指标中之任一者时,该控制器根据该非频繁尾指标判断这些非频繁数据链接关系集合中最久未被读取的该非频繁数据链接关系集合,以将该第一数据链接关系集合的数据写入这些非频繁数据链接关系集合中最久未被读取的该非频繁数据链接关系集合所属的该区段。
11.根据权利要求10所述的数据储存装置,其特征在于,当该非频繁尾指标不是这些共用指标中之任一者时,该控制器将该频繁尾指标中所储存的该共用指标写入该非频繁尾指标,将该频繁头指标中所储存的该共用指标写入该非频繁头指标,并且删除该频繁尾指标以及该非频繁尾指标中所储存的这些共用指标。
12.根据权利要求4所述的数据储存装置,其特征在于,该控制器还用以根据该非频繁指标组以及该频繁指标组更新该顺序表以及该反序表。
13.一种数据储存装置,包括:
一随机存存储器,具有一预取区域;以及
一控制器,用以将一数据链接关系表所储存的多个数据链接关系集合的一部分载入该预取区域的多个区段,其中当该预取区域的这些多个区段皆已被写满并且一第一数据链接关系集合需要被载入该预取区域时,该控制器还用以根据一非频繁指标组选择这些区段中的一第一区段,以载入该第一数据链接关系集合,其中当该非频繁指标组不具有对应的这些区段中之一者时,该控制器还用将一频繁指标组转换妄为该非频繁指标组,并根据转换后的该非频繁指标组选择该第一区段;
这些区段依序具有多个共用指标;
该随机存取存储器还包括一顺序表、一反序表以及一预取区域对应表,其中该预取区域对应表具有多个区段对应栏用以记录相应于该预取区域中的这些数据链接关系集合的这些集合指标,该顺序表用以分别记录这些频繁数据链接关系集合自该预取区域中被读取的顺序以及这些非频繁数据链接关系集合自该预取区域中被读取的顺序,并且该反序表分别用以记录这些频繁数据链接关系集合自该预取区域中被读取的反向的顺序以及这些非频繁数据链接关系集合自该预取区域中被读取的反向的顺序;
该预取区域对应表中的这些区段对应栏依序相应于该预取区域中的这些区段,该顺序表具有多个顺序栏依序相应于该预取区域中的这些区段,该反序表具有多个反序栏依序相应于该预取区域中的这些区段,并且该区段对应栏、该顺序栏、该反序栏与其相应的这些区段具有相同的这些共用指标。
14.根据权利要求13所述的数据储存装置,其特征在于,还包括一快闪存储器,包括多个页面,其中每一这些页面具有一逻辑地址以及一实体地址,该快闪存储器具有该数据链接关系表用以记录所有这些页面的这些逻辑地址以及这些实体地址的多个对应关系,该数据链接关系表被分割为这些数据链接关系集合,每一这些数据链接关系集合具有这些对应关系中之至少一者,并且每一该数据链接关系集合相应于一集合指标。
15.根据权利要求14所述的数据储存装置,其特征在于,还包括该非频繁指标组系用以维护多个非频繁数据链接关系集合,并且该频繁指标组系用以维护被多个频繁数据链接关系集合,其中该预取区域所储存的这些数据链接关系集合中被读取的次数小于一既定值的这些数据链接关系集合属于这些非频繁数据链接关系集合,并且该预取区域所储存的这些数据链接关系集合中被读取到达该既定值的这些数据链接关系集合属于这些频繁数据链接关系集合。
16.一种数据维护方法,适用于具有一快闪存储器的一数据储存装置,其中该快闪存储器包括多个页面,其中每一这些页面具有一逻辑地址以及一实体地址,并且该数据维护方法包括:
在该快闪存储器被上电时,根据至少一读取命令或者至少一写入命令,在一随机存储器中的一预取区域的多个区段中,载入一数据链接关系表中部分的多个数据链接关系集合,其中每一这些数据链接关系集合具有这些页面中之至少一者的该逻辑地址以及该实体地址的对应关系,每一这些数据链接关系集合相应于一集合指标其中这些数据链接关系集合中被读取的次数小于一既定值的这些数据链接关系集合属于多个非频繁数据链接关系集合,并且这些数据链接关系集合中被读取到达该既定值的这些数据链接关系集合属于多个频繁数据链接关系集合;
这些区段依序具有多个共用指标;
建立一预取区域对应表,以在该预取区域对主尖表中的多个区段对应栏记录相应于该预取区域中的这些数据链接关系集合的这些集合指标;
建立一顺序表,以分别记录这些频繁数据链接关系集合自该预取区域中被读取的顺序以及这些非频繁数据链接关系集中自该预取区域中被读取的顺序;以及
建立一反序表,以分别记录这些频繁数据链接关系集合自该预取区域中被读取的反向的顺序以及这些非频繁数据链接关系集合自该预取区域中被读取的反向的顺序;
该预取区域对应表中的这些区段对应栏依序相应于该预取区域中的这些区段,该顺序表具有多个顺序栏依序相应于该预取区域中的这些区段,该反序表具有多个反序栏依序相应于该预取区域中之这些区段,并且该区段对应栏、该顺序栏、该反序栏与其相应之这些区段具有相同的这些共用指标。
17.根据权利要求16所述的数据维护方法,其特征在于,还包括:
建立一非频繁指标组,以维护这些非频繁数据链接关系集合;以及
建立一频繁指标组,以维护这些频繁数据链接关系集合,其中该非频繁指标组是由一非频繁头指标以及一非频繁尾指标所构成,并且该频繁指标组是由一频繁头指标以及一频繁属指标所构成。
18.根据权利要求17所述的数据维护方法,其特征在于,该非频繁头指标为用以储存最后一个被读取的该非频繁数据链接关系集合的该区段的该共用指标,该非频繁尾指标为用以储存最久未被读取之该非频繁数据链接关系集合的该区段的该共用指标,该频繁头指标为用以储存最后一个被读取的该频繁数据链接关系集合的该区段的该共用指标,该频繁尾指标为用以储存最久未被读取的该频繁数据链接关系集合的该区段的该共用指标。
19.根据权利要求18所述的数据维护方法,其特征在于,与这些频繁数据链接关系集合所属的这些区段具有相同的这些共用指标的这些顺序栏属于多个频繁顺序栏,与这些非频繁数据链接关系集合所属的这些区段具有相同的这些共用指标的这些顺序栏属于多个非频繁顺序栏,其中每一这些频繁顺序栏用以储存另一该频繁顺序栏的该共用指标,以分别指向在相应于该频繁顺序栏的该区段之前上一个被读取的该频繁数据链接关系集合的该区段所相应的该频繁顺序栏,其中每一这些非频繁顺序栏系用以储存另一该非频繁顺序栏的该共用指标,以分别指向在相应于该非频繁顺序栏的该区段之前上一个被读取的该非频繁数据链接关系集合的该区段所相应的该非频繁顺序栏。
20.根据权利要求18所述的数据维护方法,其特征在于,与这些频繁数据链接关系集合所属的这些区段具有相同的这些共用指标的这些反序栏属于多个频繁反序栏,与这些非频繁数据链接关系集合所属的这些区段具有相同的这些共用指标的这些反序栏属于多个非频繁反序栏,其中每一这些频繁反序栏系用以储存另一该频繁反序栏的该共用指标,以分别指向在相应于该频繁反序栏的该区段之后下一个被读取的该频繁数据链接关系集合的该区段所相应的该频繁反序栏,每一这些非频繁反序栏用以储存另一该非频繁反序栏的该共用指标,以分别指向在相应于该非频繁反序栏的该区段之后下一个被读取的该非频繁数据链接关系集合的该区段所相应的该非频繁反序栏。
21.根据权利要求17所述的数据维护方法,其特征在于,还包括:
当该预取区域已被写满并且需要载入新的这些数据链接关系集合时,判断该非频繁尾指标是否为这些共用指标中之任一者;
当该非频繁尾指标为这些共用指标中之任一者时,根据该非频繁尾指标判断这些非频繁数据链接关系集合中最久未被读取的该非频繁数据链接关系集合;以及
将一第一数据链接关系集合的数据写入这些非频繁数据链接关系集中中最久未被读取的该非频繁数据链接关系集合所属的该区段。
22.根据权利要求21所述的数据维护方法,其特征在于,还包括:
当该非频繁尾指标不是这些共用指标中之任一者时,将该频繁尾指标中所储存的该共用指标写入该非频繁尾指标,将该频繁头指标中所储存的该共用指标写入该非频繁头指标,并且删除该频繁尾指标以及该非频繁尾指标中所储存的这些共用指标。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105132831A TWI646461B (zh) | 2016-10-12 | 2016-10-12 | 資料儲存裝置及其資料維護方法 |
TW105132831 | 2016-10-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107943711A CN107943711A (zh) | 2018-04-20 |
CN107943711B true CN107943711B (zh) | 2020-10-16 |
Family
ID=61929006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611044061.3A Active CN107943711B (zh) | 2016-10-12 | 2016-11-24 | 数据储存装置及其数据维护方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107943711B (zh) |
TW (1) | TWI646461B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199304B (zh) * | 2019-07-08 | 2024-04-09 | 华为技术有限公司 | 数据预取方法及装置 |
CN111399784B (zh) * | 2020-06-03 | 2020-10-16 | 广东睿江云计算股份有限公司 | 一种分布式存储的预读写方法及装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6067608A (en) * | 1997-04-15 | 2000-05-23 | Bull Hn Information Systems Inc. | High performance mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis |
GB0030226D0 (en) * | 2000-12-12 | 2001-01-24 | Ibm | A data storage system and a method of storing data including a multi-level cache |
US7017024B2 (en) * | 2002-12-12 | 2006-03-21 | International Business Machines Corporation | Data processing system having no system memory |
US7058784B2 (en) * | 2003-07-04 | 2006-06-06 | Solid State System Co., Ltd. | Method for managing access operation on nonvolatile memory and block structure thereof |
WO2007072317A2 (en) * | 2005-12-21 | 2007-06-28 | Nxp B.V. | Non-volatile memory with block erasable locations |
TWI334565B (en) * | 2007-05-09 | 2010-12-11 | Phison Electronics Corp | Secure storage apparatus and method for controlling the same |
TWI413931B (zh) * | 2009-01-15 | 2013-11-01 | Phison Electronics Corp | 快閃記憶體資料之存取方法及其儲存系統與控制系統 |
CN103026346B (zh) * | 2010-07-27 | 2016-01-20 | 国际商业机器公司 | 用于从固态存储器设备读取及写入数据的方法及存储系统 |
TWI544334B (zh) * | 2012-05-30 | 2016-08-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料儲存裝置操作方法 |
TWI495999B (zh) * | 2012-07-05 | 2015-08-11 | Compal Electronics Inc | 切換資料傳輸路徑以傳輸資料的方法及儲存裝置 |
US20140304453A1 (en) * | 2013-04-08 | 2014-10-09 | The Hong Kong Polytechnic University | Effective Caching for Demand-based Flash Translation Layers in Large-Scale Flash Memory Storage Systems |
US9329992B2 (en) * | 2013-12-04 | 2016-05-03 | Silicon Motion, Inc. | Data storage device and flash memory control method |
US9542278B2 (en) * | 2013-12-26 | 2017-01-10 | Silicon Motion, Inc. | Data storage device and flash memory control method |
US20160070507A1 (en) * | 2014-09-08 | 2016-03-10 | Kabushiki Kaisha Toshiba | Memory system and method of controlling memory device |
TWI546666B (zh) * | 2014-11-03 | 2016-08-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
WO2016097794A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Prefetching with level of aggressiveness based on effectiveness by memory access type |
TWI537729B (zh) * | 2015-10-15 | 2016-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
-
2016
- 2016-10-12 TW TW105132831A patent/TWI646461B/zh active
- 2016-11-24 CN CN201611044061.3A patent/CN107943711B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107943711A (zh) | 2018-04-20 |
TWI646461B (zh) | 2019-01-01 |
TW201814490A (zh) | 2018-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106598876B (zh) | 数据储存装置及其数据维护方法 | |
CN113168408B (zh) | 利用压缩的键值存储树数据块溢出 | |
US11599552B2 (en) | Counter-based compaction of key-value store tree data block | |
KR101533744B1 (ko) | 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법 | |
KR101392174B1 (ko) | 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법 | |
CN103678638B (zh) | 一种基于磁盘的对象缓存方法 | |
US20090198952A1 (en) | Memory Mapping Architecture | |
CN110678836A (zh) | 用于键值存储的持久性存储器 | |
KR101865959B1 (ko) | 비휘발성 메모리를 갖는 시스템을 위한 고속 트리 플래트닝 | |
US20100131700A1 (en) | Memory indexing system and process | |
CN102693184A (zh) | 处理具有非易失性存储器的系统的动态和静态数据 | |
KR20060080972A (ko) | 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법 | |
CN107943711B (zh) | 数据储存装置及其数据维护方法 | |
CN113094372A (zh) | 数据存取方法、数据存取控制装置及数据存取系统 | |
CN111966281B (zh) | 数据储存装置与数据处理方法 | |
JP2005322209A (ja) | シリコン記憶媒体制御方法およびシリコン記憶媒体 | |
CN113253926A (zh) | 提升新型存储器的查询和存储性能的存储内索引构建方法 | |
US10073769B2 (en) | Data storage device and data maintenance method thereof | |
US20090259617A1 (en) | Method And System For Data Management | |
WO2009090692A1 (ja) | 半導体記録装置及び半導体記録システム | |
JP2024017667A (ja) | 情報処理装置および試験方法 | |
CN117742584A (zh) | 一种数据迁移回收方法、装置、电子设备及存储介质 | |
CN118069074A (zh) | 一种数据处理方法及装置、存储介质、计算机程序产品 | |
CN117389909A (zh) | 内存数据淘汰方法和装置 | |
Chiao et al. | HybridLog: an Efficient Hybrid-Mapped Flash Translation Layer for Modern NAND Flash Memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |