存储器管理方法、存储器存储装置及存储器控制电路单元的制作方法_4

文档序号:9471079阅读:来源:国知局
数据存放时间,则可视为此实体抹除单元的数据更新频率低于另一个实体抹除单元的数据更新频率。换言之,在此范例实施例中,每一个第一实体抹除单元的一数据写入时间会早于每一个第二实体抹除单元的一数据写入时间,及/或每一个第一实体抹除单元的一数据存放时间会长于每一个第二实体抹除单元的一数据存放时间。
[0101]也就是说,在一范例实施例中,存储器管理电路202是根据每一个实体抹除单元410(0)?410 (R)被写入数据的时间或顺序,或者数据在每一个实体抹除单元410 (O)?410 (R)中的存放时间,来将实体抹除单元410(0)?410(R)划分为一或多个第一实体抹除单元与一或多个第二实体抹除单元。然而,在另一范例实施例中,每一个实体抹除单元的数据更新频率可以也可以是通过每一个实体抹除单元所存储的数据类型或存取次数(例如,写入次数)来评估。例如,存储器管理电路202也可以是根据每一个实体抹除单元410(0)?410(R)所存储的数据类型是否是属于容易被更新的类型,或者每一个实体抹除单元410(0)?410(R)所存储的数据类型或存取次数所对应的数据更新频率,来将实体抹除单元410 (O)?410 (R)划分为一或多个第一实体抹除单元与一或多个第二实体抹除单元,本发明不加以限制。此外,任何可用来评估实体抹除单元的数据更新频率的信息都可以被采用,而不限于上述。
[0102]图7是根据本发明的一范例实施例所示出的非闲置实体抹除单元的串接结构的示意图。
[0103]请参照图7,在此范例实施例中,在执行垃圾收集(garbage collect1n)程序之前,存储器管理电路202会先根据一数据写入信息来排序实体抹除单元410(0)?410 (R)。其中,数据写入信息用以指示每一个实体抹除单元410(0)?410(R)被写入数据的时间及/或先后顺序。或者,在一范例实施例中,数据写入信息也可以用以指示每一个实体抹除单元410(0)?410(R)的数据存放时间。存储器管理电路202可以利用指标(pointer)或者标记(flag)将排序后的实体抹除单元410 (O)?410(R)相互串接而形成串接结构700。也就是说,串接结构700是一种逻辑上的串接关系,而不是实体上的串接关系。如图7所示,在串接结构700中,最右边的实体抹除单元410(0)被写入数据的时间最早,右边第二个的实体抹除单元410 (I)被写入数据的时间晚于实体抹除单元410 (O)但早于实体抹除单元410 (2),而最左边的实体抹除单元410 (R)被写入数据的时间最晚,以此类推。从另一角度来看,由于最右边的实体抹除单元410 (O)被写入数据的时间最早,因此实体抹除单元410 (O)中的数据被存放在实体抹除单元410 (O)的时间也最长;而由于实体抹除单元410 (R)被写入数据的时间最晚,因此实体抹除单元410 (R)中的数据被存放在实体抹除单元410 (R)的时间则最短。
[0104]值得注意的是,实体抹除单元的数据写入时间、数据存放时间或数据写入顺序是与每一个实体抹除单元的一数据更新状况或数据更新频率有关,因此,若某一个实体抹除单元在串接结构700中的位置位于另一个实体抹除单元在串接结构700中的位置的左边,则此实体抹除单元的数据更新频率有很大的机率是高于所述另一个实体抹除单元的数据更新频率。或者,若某一个非闲置实体抹除单元的数据更新频率是所有的非闲置实体抹除单元中最高的,则此非闲置实体抹除单元将有很高的机率会被排序在串接结构700中的最左边(即,串接结构700中实体抹除单元410(R)的位置);若某一个非闲置实体抹除单元的数据更新频率是所有的非闲置实体抹除单元中最低的,则此非闲置实体抹除单元将有很高的机率会被排序在串接结构700中的最右边(即,串接结构700中实体抹除单元410(0)的位置),以此类推。
[0105]存储器管理电路202会将排序后的实体抹除单元410 (O)?410 (R)中符合一排序条件(也称为第一排序条件)的一或多个实体抹除单元划分为第一实体抹除单元,并且将排序后的实体抹除单元410 (O)?410 (R)中不符合此第一排序条件的一或多个实体抹除单元划分为第二实体抹除单元。在一范例实施例中,排序后的实体抹除单元410(0)?410(R)中符合第一排序条件的实体抹除单元是包含最早被写入数据的实体抹除单元在内的P个较早被写入数据的实体抹除单元。例如,在一范例实施例中,图7的串接结构700中最右边的P个连续串接的实体抹除单元410 (O)?410 (P)符合第一排序条件,而串接结构700中的410(P+1)?410(R)则不符合第一排序条件。在一范例实施例中,P的数量会随着实体抹除单元410(0)?410(R)的数量改变而对应改变,以使第一实体抹除单元的数量(也称为第一数量)与第二实体抹除单元的数量(也称为第二数量)维持在一预设比例。例如,此预设比例可以是95:5。例如,在一范例实施例中,若实体抹除单元410(0)?410(R)的数量是100个,则第一数量会是95个,并且第二数量会是5个。此外,此预设比例也可以被调整,而非限定于上述。
[0106]存储器管理电路202会从属于第一实体抹除单元的实体抹除单元中选择一或多个第三实体抹除单元。在一范例实施例中,存储器管理电路202可以选择属于第一实体抹除单元的一或多个实体抹除单元中符合一有效数据条件及/或另一排序条件(也称为第二排序条件)的一或多个实体抹除单元作为第三实体抹除单元。例如,在一范例实施例中,符合有效数据条件的实体抹除单元可以是属于第一实体抹除单元的实体抹除单元中所存储的有效数据的数据量较少者,或者是所存储的有效数据的数据量少于一预设值者,且不限于此。在另一范例实施例中,任何基于有效数据的数据量进行运算的演算法都可以用来设定有效数据条件。另外,符合第二排序条件的实体抹除单元可以是属于第一实体抹除单元的实体抹除单元中Q个较早被写入数据的实体抹除单元,例如,串接结构700中连续串接的实体抹除单元410 (O)?410 (Q),其中Q小于P。
[0107]存储器管理电路202会对第三实体抹除单元执行垃圾回收程序。例如,存储器管理电路202会从实体抹除单元410 (O)?410 (N)中的一或多个闲置实体抹除单元中提取一或多个第四实体抹除单元,并且复制每一个第三实体抹除单元所存储的有效数据(validdata)至第四实体抹除单元。在将有效数据从第三实体抹除单元复制到第四实体抹除单元之后,原先第三实体抹除单元中的有效数据会被标记为无效数据,并且存储器管理电路202会抹除第三实体抹除单元。藉此,每经过一次的垃圾回收程序,存储器管理电路202就会释放出一或多个闲置实体抹除单元(即,原先的第三实体抹除单元)。在一范例实施例中,存储器管理电路202则是会在特定的时间点抹除第三实体抹除单元。例如,存储器管理电路202可以在执行完垃圾回收程序后,抹除第三实体抹除单元。然而,此特定时间点还可以是存储器存储装置100开机、关机、存储器存储装置100闲置超过一预设时间或者任意的时间点,本发明不加以限制。
[0108]在一范例实施例中,在一次的垃圾回收程序中,存储器管理电路202只会复制第三实体抹除单元所存储的有效数据至第四实体抹除单元,而不会复制第三实体抹除单元之外的任一个实体抹除单元所存储的有效数据至第四实体抹除单元。
[0109]此外,在一范例实施例中,第一实体抹除单元的其中之一所存储的有效数据的数据量会多于第二实体抹除单元的其中之一所存储的有效数据的数据量。例如,在图7的串接结构700中,假设实体抹除单元410 (P+1)所存储的有效数据的数据量是2个实体程序化单元的大小,而实体抹除单元410 (P)所存储的有效数据的数据量是3个实体程序化单元的大小,即表示实体抹除单元410 (P)所存储的有效数据的数据量多于实体抹除单元410(P+1)所存储的有效数据的数据量。此外,用来评估数据量的单位还可以是任意的单位,而不限于上述。
[0110]图8是根据本发明的一范例实施例所示出的存储器管理方法的流程图。
[0111]请参照图8,在步骤S802中,将多个非闲置实体抹除单元划分为至少一第一实体抹除单元与至少一第二实体抹除单元。其中每一个第一实体抹除单元的一数据更新频率低于每一个第二实体抹除单元的一数据更新频率。
[0112]在步骤S804中,从属于第一实体抹除单元的实体抹除单元中选择至少一第三实体抹除单元。
[0113]在步骤S806中,从属于至少一闲置实体抹除单元的实体抹除单元中提取至少一第四实体抹除单元,并且复制每一个第三实体抹除单元所存储的有效数据至所述第四实体抹除单兀。
[0114]然而,图8中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图8中各步骤可以实作为多个程序码或是电路,本发明并不在此限。此外,图8的方法可以搭配以上范例实施例使用,也可以单独使用,本发明并不在此限。
[0115]综上所述,本发明提出的存储器管理
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1