存储器系统的制作方法

文档序号:6476542阅读:259来源:国知局
专利名称:存储器系统的制作方法
技术领域
本发明涉及到一种存储器系统,例如,包含NAND闪存的存储器系统。
背景技术
近来,非易失性存储器被用在诸如大型计算机、个人电脑、家用电器、手机等各种装置中。具体说,NAND闪存是一种非易失性存储器,它是电可重写的,并且可以具有大容量及高集成密度。此外,最近,有考虑利用NAND闪存来替代硬盘驱动器(HDD)。
NAND闪存是一种在进行写处理之前需要进行擦除处理的半导体存储器。其工作寿命取决于重写操作的次数。NAND闪存中的数据写入/擦除操作就是通过在基底和控制栅极之间施加高电压向浮栅注入电子或从浮##放电子。如果上述操作进行了很多次,那么,浮栅周围的栅氧化物膜就会退化,并且注入浮栅的电子会流失,从而破坏数据。就是说,当重写操作的次数增加时,写入数据后数据的保持时间会变短(保持特性退化)。
此外,利用个人电脑等所记录的数据既具有时间局域性(timelocality),也具有区域局域性(regional locality)(文献1: David A.Patterson and John L. Hennessy,"计算机组织与设计硬件/软件接口,,,Morgan Kaufmann Pub, 2004/8/31)。所以,当记录数据时,如果数据项原样顺序地记录在外部所指定的地址中的话,那么,重写处理(即擦除处理)就在短时间内集中在指定的区域中,因此,擦除处理的次数就变得非常不均衡了。
已知NAND闪存的工作寿命也取决于擦除处理之间的间隔,当所述间隔比较大时,所述保持特性就比较好,并且所述工作寿命就比较长(文献2: Neal Mielke等,"编程/擦除循环期间电荷俘获所导致的闪型EEPROM阈值的不稳定性",IEEE TRANSACTIONS ON DEVICE ANDMATERIALS RELIABILITY, Vol. 4, NO.3, 2004年9月,pp. 335-344 )。
这也表明,当擦除间隔变短时,所述保持特性变差,并且所述工作寿命变短。
此外已知,即使写操作以很短的间隔进行,所述保持特性也会恢复,除非擦除处理进行了相应较长的时间(文献3: Neal Mielke等,"闪存的分布式循环中的恢复效应,,,44th Annual International Reliability PhysicsSymposium, San Jose, 2006, pp. 29-35 )。

发明内容
根据本发明的一个方面,提供一种存储器系统,该系统包括非易失性存储器,包含多个块作为数据擦除单位;测量单元,用来测量每个块中的数据被擦除时的擦除时间;块控制器,它具有块表,该表将每个块的指示自由状态和使用状态之一的状态值与其所述擦除时间联系起来;探测器,用来探测在短时间内共同地进行了重写的块;第一选择器,基于所述块表中的信息选择具有较早擦除时间的自由块作为第一块;第二选择器,基于所述块表中的信息选择具有较早擦除时间的使用中的块作为第二块;以及均衡单元,用来在所述第一块包含在由所述探测器所探测到的块中时将所述第二块中的数据移动到所述第一块中。


图l是一个示意图,显示了包4、根据本发明的第一实施例所述的存储器系统1在内的计算机系统的例子;
图2是一个示意图,显示了根据第一实施例所述的存储器系统1的配
置;
图3A是一个电路图,显示了 NAND闪存10中所包含的块的配置;图3B显示了在四值数据记录系统中所获得的阈值分布的例子;图4是一个方框图,显示了 NAND控制器ll的配置例子;
图5是一个方框图,显示了块控制器30和擦除时间测量单元31的配
置;
图6是一个流程图,显示了由NAND控制器11所进行的写操作的顺
序;
图7是一个流程图,显示了 NAND控制器11所进行的块释放处理;
图8是一个方框图,显示了分配块选择器32的配置;
图9是一个流程图,显示了由分配块选择器32所进行的分配块选择处
理;
图10是一个流程图,显示了由NAND控制器11所进行的块分配处理; 图11是一个流程图,显示了由NAND控制器11所进行的块擦除处理; 图12是一个方框图,显示了短期重写探测器34的配置; 图13是一个流程图,显示了由短期重写探测器34所进行的短期重写 探测处理;
图14用来说明所述短期重写探测处理的实际例子; 图15是一个方框图,显示了均衡单元35的配置; 图16是一个流程图,显示了由NAND控制器11所进行的均衡处理; 图17是一个方框图,显示了替换源块选择器33的配置; 图18是一个流程图,显示了由替换源块选择器33所进行的替换源块 选择处理;
图19是一个方框图,显示了根据本发明的第二实施例所述的分配块选 择器32的配置;
图20是一个流程图,显示了由根据第二实施例所述的分配块选择器 32所进行的分配块选择处理;
图21是一个方框图,显示了根据本发明的第三实施例所述的替换源块 选择器33的配置;
图22是一个流程图,显示了由根据第三实施例所述的替换源块选择器 33所进行的替换源块选择处理;图23是一个方框图,显示了根据本发明的第四实施例所述的短期重写 探测器34的配置;
图24是一个流程图,显示了由短期重写探测器34所进行的短期重写 探测处理;
图25是一个流程图,显示了紧接着图24的短期重写探测处理;
图26用来说明所述短期重写探测处理的实际例子;
图27是一个方框图,显示了根据本发明的第五实施例所述的NAND
控制器ll的配置例子;
图28是一个方框图,显示了块控制器30的配置;
图29是一个流程图,显示了由NAND控制器11所进行的读操作;
图30是一个流程图,显示了由替换源块选择器33所进行的替换源块
选捧处理;
图31是一个方框图,显示了根据一个实施例所述的SSD 100的配置; 图32是一个方框图,显示了驱动控制电路102的配置; 图33是一个方框图,显示了处理器107的配置; 图34是一个透视图,显示了装有所述SSD 100的便携式电脑200的一 个例子;
图35是一个方框图,显示了使用SSD 100的便携式电脑200的系统配 置的例子。
具体实施例方式
下面将参考附图来说明本发明的实施例。注意,在下面的说明中,相 同的参考数字指示功能和配置相同的元件,只在必须的时候才进行重复性 说明。
下面将说明NAND控制器11的写操作。图6是一个流程图,显示了 由NAND控制器11所进行的写操作的顺序。
首先,在从CPU 2接收到写请求后,NAND控制器ll开始进行写操 作(步骤SIO)。然后,块控制器30利用地址表30A检查是否向含有所述 写请求的地址的地址区寄存了某个块编号(分配了某个块)(步骤Sll)。 如果寄存了某个块编号(分配了某个块),那么,在这个地址区中必须将 数据覆写,于是,块控制器30执行块释放处理,释放与所述块编号相对应 的块(步骤S12)。
如果在步骤Sll中判断为没有寄存了块编号(没有分配了块),或者在步骤12中执行了块释放处理之后,分配块选择器32执行分配块选择处 理,选择要被分配到所述地址区的块(分配块)(步骤S13)。
然后,均衡单元35和替换源块选择器33执行均衡处理(步骤S14 )。 之后,块控制器30检查在所述均衡处理中所述分配块是否被替换(步骤 S15)。如果所述分配块被替换,那么,所述处理就返回步骤S13,并且分 配块选择器32再次执行分配块选择处理。
如果在步骤S15中判断为所述分配块没有^皮替换,那么块控制器30 就利用与所述分配块相对应的块编号(分配块编号)来执行块分配处理, 以便更新地址表30A和块表30B (步骤S16)。然后,块控制器30对所述 分配块进行块擦除处理(步骤S17 ).
随后,块控制器30在擦除了数据的所述分配块中写入新数据(步骤 S18)。就是说,块控制器30向NAND接口电路25发布写请求。基于这 个写请求,NAND接口电路25命令NAND闪存10在所述分配块中写入新 数据。
之后,短期重写探测器34执行短期重写探测处理(步骤S19)。块控 制器30利用短期重写探测器34所提供的短期重写信息更新块表30B中的 标记。这样,NAND控制器11就执行了所述写操作的序列。
下面将说明所述写操作中所包含的每个处理的细节。图8是一个方框图,显示了分配块选择器32的配置。图9是一个流程图,显示了由分配块选择器32所进行的分配块选择处理。
分配块选择器32包括两个选择器32A和32B。分配块选择器32从块控制器30接收所有块信息(步骤S30)。这个所有块信息被提供给选择器32A。选择器32A检查所有块的状态,并从所有块中提取自由块(步骤S31 )。然后,选择器32A将与所述自由块相对应的块信息(自由块信息)发送到选择器32B。
选择器32B从选择器32A所提取的块中选择具有最早擦除时间的块,作为分配块(步骤S32)。与这个分配块相对应的分配块编号被提供给块控制器30。另外,与所述分配块相对应的分配块信息被提供给均衡单元35。
图10是一个流程图,显示了由NAND控制器11所进行的块分配处理。NAND控制器11为分配块选择器32所选择的分配块更新地址表30A和块表30B中的信息。
首先,块控制器30从分配块选择器32接收所述分配块编号(步骤S40)。然后,块控制器30将所述分配块的块编号设置在地址表30A中所包含的、包含所述写请求地址的地址区中(步骤S41)。随后,块控制器30将块表30B中所包含的所述分配块的状态设置为使用状态(a used state)(步骤S42)。这样,由分配块选择器32所选择的所述分配块就从自由状态变为^f吏用状态。
为了延长NAND闪存10的工作寿命,需要使各个块的擦除数均等,并避免在短时间内在特定的区域中频繁地进行重写。如果只注意到擦除数的均等化以延长NAND闪存10的工作寿命,那么,根据写状态,在短时间内在特定的区域中会进行重写。如果在短时间内频繁地进行校正(均衡),那么可以使所述擦除数均等并且避免在短时间内在特定区域中集中进行写入。然而,所述校正增加了擦除的次数,这就使延长工作寿命变得不可能。另一方面,如果校正间隔延长得太大,那么短间隔擦除处理就会集中到某个特定区域,这就缩短了工作寿命。基于这些发现,在本实施例所述的均衡处理中,对均衡的次数进行优化,并使各个块的擦除数均等。
均衡单元35和替换源块选择器33执行所述均衡处理。图15是一个方框图,显示了均衡单元35的配置。均衡单元35包括均衡判断单元35A、以及用于存储均衡阈值的存储单元35B。
均衡判断单元35A利用所述均衡阈值、分配块选择器32所提供的分配块信息、以及替换源块选择器33所提供的替换源块信息来判断在当前写操作期间是否进行均衡处理。当进行均衡处理时,均衡判断单元35A向NAND接口电路25发布与所述均衡处理相关的读请求、擦除请求、和写请求。
图16是一个流程图,显示了由NAND控制器11所进行的均衡处理。首先,替换源块选择器33执行替换源块选择处理(步骤S70)。这个选择处理的结果是,替换源块选择器33将所述替换源块信息提供给均衡单元35。
随后,均衡判断单元35A检查分配块选择器32所提供的分配块信息,并判断这个分配块信息中所包含的短期重写标记是否为"ON"(步骤S71)。如果所述短期重写标记为OFF,即,如果所述分配块不频繁地进行重写,那么,均衡判断单元35A就判断所述替换源块和所述分配块的擦除数之间的差是否超过了均衡阈值(步骤S72)。如果所述差没有超过所述均衡阈值,那么均衡单元35在当前的写操作中不进行均衡处理。
这个均衡阈值用来判断是否进行均衡处理,它的设置基于这样一个标准,该标准指示了 NAND闪存10的工作寿命(或数据保持时间)要^J^长的程度。如前所述,如果只注意到擦除数的均等化以延长NAND闪存IO的工作寿命,那么,由于进行均衡的缘故,数据擦除会发生许多次,这就增加了在某个特定区域中的擦除的次数。所以,在本实施例中,只有当所述替换源块和分配块的擦除数之间的差超过了所述均衡阈值时,才进行所述均衡处理。
如果在步骤S71中短期重写标记为ON,或者如果在步骤S72中超过了所述均衡阈值,那么,块控制器30就对所述替换源块进行块释放处理(步骤S73)。这个块释放处理与图7所示的相同。
随后,块控制器30执行块分配处理,将分配块选择器32所选择的分配块分配为替换源块的数据要被移入的块(步骤S74)。这个块分配处理与图IO所示的相同。
然后,NAND控制器11读取NAND闪存10中所包含的所述替换源块的数据(步骤S75)。具体说,均衡判断单元35A利用替换源块选择器33所提供的替换源块信息向NAND接口电路25发布读请求。基于这个读请求,NAND接口电路25命令NAND闪存10从所述替换源块中读取数据。所读出的数据被临时存储在例如RAM 24中。
之后,NAND控制器11擦除所述分配块中的数据(步骤S76)。具体说,均衡判断单元35A利用分配块选择器32所提供的分配块信息向NAND接口电路25发布擦除请求。基于这个擦除请求,NAND接口电路25命令NAND闪存10擦除所述分配块中的数据。在这个步骤中,块控制器30更新所述分配块的擦除数和擦除时间(图11)。
随后,NAND控制器11将从所述替换源块中读出的数据写入NAND
22闪存10中所包含的所述分配块中(步骤S77 )。具体说,均衡判断单元35A 利用所述分配块信息向NAND接口电路25发布写请求。基于这个写请求, NAND接口电路25命令NAND闪存10将所述数据写入所述分配块中。
上述处理可以将某个替换源块中的数据移到某个分配块中,并使所述 替换源块成为自由块。因此,大概不频繁进行重写的替换源块可以被复用 为分配块。另外,不被频繁地重写的数据被移动到擦除数已经很大的分配 块中。这就可以防止所述分配块的擦除数将来增加。第三实施例给出了由替换源块选择器33所进行的替换源块选择处理 的另一个例子。就是说,选择擦除时间早和擦除数小的块,作为替换源块。
图21是一个方框图,显示了根据第三实施例所述的替换源块选择器 33的配置。图22是一个流程图,显示了由所述替换源块选择器33所进行 的替换源块选择处理。
替换源块选择器33包括三个选择器33A到33C、以及用来存储替换 源块设置值的存储单元33D。替换源块选择器33从块控制器30接收所有 块信息(步骤S100 )。这个所有块信息被提供给选择器33A。选择器33A 检查所有块的状态,并从所有块中提取使用中的块(步骤S101)。然后, 选择器33A将与所述使用中的块相对应的块信息(使用中的块的信息)发 送到选择器33B。
选择器33B从所述使用中的块的信息中提取出满足由所述替换源块设 置值所设置的条件的块信息(步骤S102 )。所述替换源块设置值为下列(A ) 到(C )之一
(A) 从具有最早擦除时间的块开始的预定数目的块
(B) 从具有最早擦除时间的块开始的预定比例的块
(C) 擦除时间比预定时间更早的块
条件(A)到(C )中的任何一个都可以被选作所述替换源块设置值。例如, 当使用条件(A)作为所述替换源块设置值时,选择器33B在使用中的块 中从具有最早擦除时间的块开始顺序地提取预定数目的块。然后,选择器 33B将与所提取的块相对应的块信息发送到选择器33C中。
在* (A)和(B)之下,使用中的块按擦除时间的顺序进行拣选, 并从具有最早擦除时间的块开始顺序地搜寻预定数目/比例的块。因此,在 步骤S102中可以增加所选择的块的数目,从而增加在步骤S103中选择出 具有小擦除数的块的可能性。在条件(C)之下,只需要拣选擦除时间超 过了预定时间的使用中的块,所以,处理量是最低的。另外,在条件(A) 和(B)之下,总是从具有最早擦除时间的块开始顺序地提取预定数目/比 例的块,而在条件(C)之下,则提取擦除时间比预定时间更早的块。所
26以,在条件(c)之下,擦除间隔总可以是预定间隔,于是用于比较擦除
数的候选块数目就可以减小。
随后,选择器33C从选择器33B所提取的块中选择具有最小擦除数的 块作为替换源块(步骤S103)。与这个替换源块相对应的替换源块信息被 提供给均衡单元35。
在上面所详细描述的这个实施例中,当选择用于进行均衡的替换源块 时,从使用中的块中可以选择擦除时间早以及擦除数小的块作为替换源块。 这就可以选择存储着不常进行重写的数据并具有良好保持特性的块作为替 换源块,并延长NAND闪存10的工作寿命。
第四实施例给出了短期重写探测处理的另 一个例子。在第四实施例中, 使用二分法搜寻(binary search )来进行短期重写探测处理。
图23是一个方框图,显示了根据第四实施例所述的短期重写探测器 34的配置。所述短期重写探测器34包括选择器34A、排列单元34B、搜 寻列表34C、判断单元34D、用来存储集中因子阈值(concentration factor threshold value )的存储单元34E、以及信息输出单元34F。
判断单元34D利用二分法搜寻从搜寻列表34C中选择搜寻对象块。然 后,判断单元34D为这个搜寻对象块计算要在短期重写探测中使用的集中 因子,并判断这个集中因子是否超过了所述集中因子阈值。基于所述判断 结果,从搜寻列表34C对块进行剔除,并使其范围缩小到一个搜寻对象块 上。利用所述最后一个搜寻对象块,可以找到擦除时间发生突然变化的边 界。
存储单元34E中所存储的集中因子阈值用来指定数据净皮频繁重写的块 的范围,该阈值的设置基于这样一个标准,该标准指示了 NAND闪存10 的工作寿命(或数据保持时间)要^tt长的程度。当所述集中因子阈值减 小时,探测到短期重写的可能性就增加,而当所述阈值增加时,这个可能 小生tfc减小。图24和25是流程图,显示了由短期重写探测器34所进行的短期重写 探测处理。
首先,短期重写探测器34从块控制器30接收所有块信息(步骤S110 )。 这个所有块信息被提供给选择器34A。选择器34A检查所有块的状态,并 从所有块中提取使用中的块(步骤Slll)。然后,选择器34A将与所述使 用中的块相对应的块信息(使用中的块的信息)发送到排列单元34B。
排列单元34B检查所述使用中的块的信息中所包含的擦除时间,并按 擦除时间的顺序对使用中的块进行排列(步骤S112 )。将由排列单元34B 进行了排列的所述块信息;^搜寻列表34C中,并从具有最晚擦除时间的 块开始顺序地为这些块赋予序列号。
随后,在搜寻列表34C中,判断单元34D将具有最晚擦除时间的块设 置为"开头",将具有最早擦除时间的块设置为"结尾"(步骤S113)。 然后判断单元选择序列号为"(开头+结尾)/2"的块作为搜寻对象块(步 骤S114)。
之后,判断单元34D为所述搜寻对象块计算集中因子(步骤S115)。 这个集中因子由下式给出集中因子=当前时间-序列号-擦除时间。注意, 在所述集中因子中所使用的当前时间是,例如,从擦除时间测量单元31 提供给短期重写探测器34的。可以使用,例如,擦除数计数器31A中的 计数作为所述当前时间。
然后,判断单元34D判断所计算出的集中因子是否超过了所述集中因 子阈值(步骤S116)。如果所述集中因子超过了所述集中因子阈值,那么, 判断单元3aD将所述搜寻对象块设置为"结尾"(步骤S117)。随后,判 断单元34D从搜寻列表34C中剔除擦除时间比"结尾"的擦除时间更早的 块(步骤S118)。
另一方面,如果在步骤S116中判断为所述集中因子没有超过所述集中 因子阁值,那么,判断单元34D就将擦除时间仅次于所述搜寻对象块的擦 除时间而最早的块^L置为"开头"(步骤S119)。之后,判断单元34D从 搜寻列表34C中剔除擦除时间比"开头"的擦除时间更晚的块(步骤S120 )。
28在步骤S118或S120中从搜寻列表34C中排除了预定的块之后,判断 单元34D判断在搜寻列表34C中是否还剩两个或多个块(步骤S121)。 如果在搜寻列表34C中还剩两个或多个块,那么,判断单元34D就返回步 骤S114,并再次选择搜寻对象块。
如果在步骤S121中判断为在搜寻列表34C中没有剩下两个或多个块, 那么判断单元34D就选择搜寻列表34C中的所述最后 一个块作为搜寻对象 块。然后,判断单元34D为这个搜寻对象块计算集中因子(=当前时间-序 列号-擦除时间)(步骤S122 )。
随后,判断单元34D判断所计算出的集中因子是否超过了所述集中因 子阈值(步骤S123)。如果所述集中因子超过了所述集中因子阈值,那么, 判断单元34D就向信息输出单元34F发送搜寻对象块编号。通过^f吏用这个 搜寻对象块编号,信息输出单元34F计算所有块中擦除时间比所述搜寻对 象块的擦除时间更晚的块的范围(步骤S124)。信息输出单元34F将上述 的范围发送到块控制器30,作为短期重写信息。当接收到这个短期重写信 息时,块控制器30设置与所述短期重写信息中所包含的块相对应的短期重 写标记,并清除与其它块相对应的短期重写标记。
如果在步骤S123中判断为所述集中因子没有超过所述集中因子阈值, 那么,判断单元34D就判断为没有探测到进行了短期重写的块,于是所述 短期重写探测处理就结束了 。
图26用来说明由短期重写探测器34所进行的短期重写探测处理的实 际例子。假设NAND闪存10包括12个块(块#0到#11),块#0到#7是 搜寻列表34C中所包含的使用中的块,而块#8到#11是自由块。块#0到#7 从具有最晚擦除时间的块开始按擦除时间的顺序排列。这些块的擦除时间 示于图26中。搜寻列表34C中所包含的块#0到#7从具有最晚擦除时间的 块开始按顺序被赋予序列号。
首先,在搜寻列表34C中,具有最晚擦除时间的块#0被设置为"开头", 而具有最早擦除时间的块#7被:没置为"结尾"。随后,选择具有序列号为 "(开头+结尾)/2"的块#3作为搜寻对象块,为所述搜寻对象块#3计算集中
29因子(=当前时间-序列号-擦除时间),并检查这个集中因子是否超过了所
述集中因子阈值。假i殳所述当前时间为"106",所述集中因子阈值为"卯"。 搜寻对象块#3的集中因子为"97",这个值超过了所述阔值。因此,将搜 寻对象块#3设置为"结尾,,,并从搜寻列表34C中剔除擦除时间比块#3 的擦除时间更早的块糾到#7。
然后,选择具有序列号为"(开头+结尾)/2"的块#1作为搜寻对象块, 为所述搜寻对象块#1计算集中因子。搜寻对象块#1的集中因子为"0", 这个值没有超过所述阈值。所以,将擦除时间仅次于所述搜寻对象块#1的 擦除时间而最早的块#2设置为"开头",并从搜寻列表34C中剔除擦除时 间比块#2的擦除时间更晚的块#0和#1。
之后,选择具有序列号为"(开头+结尾)/2"的块#2作为搜寻对象块, 并为所述搜寻对象块#2计算集中因子。搜寻对象块#2的集中因子为"97", 这个值超过了所述阈值。所以,将搜寻对象块#2设置为"结尾",并从搜 寻列表34C中剔除擦除时间比块#2的擦除时间更早的块#3。
随后,将搜寻列表34中最后剩下的块#2选为搜寻对象块,并为所述 搜寻对象块#2计算集中因子。搜寻对象块#2的这个集中因子超过了所述阈 值。因此,判断单元34D就将搜寻对象块#2的编号发送到信息输出单元 34F。
在包括自由块在内的所有的块中,信息输出单元34F对擦除时间比搜
寻对象块#2的擦除时间更晚的块洲、#1、以及#8到#11进行计算。信息输
出单元34F将块洲、#1、以及#8到#11发送到块控制器30,作为短期重写
信息。块控制器30 i殳置与块洲、#1、以及#8到#11相对应的短期重写标记,
并清除与其它块相对应的短期重写标记。于是,就更新了块表30B中的信 會
在上面所详细描述的这个实施例中,短期重写探测器34能够指定数据 被频繁重写的块。另外,在所述短期重写探测处理中,通过log2N次检查 所述阈值来完成搜寻。这就可以增加短期重写探测的效率。[第五实施例在第五实施例中,NAND控制器11包含错误检查和校正(error check and correction, ECC )电路,这个ECC电路探测并校正数据读取中的错 误。 一般地,随着从数据写入时起的时间的流逝,出错数会增加。因此, 具有许多错误的块可能是具有较早擦除时间的块。所以,在这个实施例中, ECC电路所探测到的出错数被用作替换源块选择的指数。图27是一个方框图,显示了才艮据第五实施例所述的NAND控制器11 的配置例子。这个NAND控制器11包含ECC电路36。当从NAND闪存 IO中读取数据时,ECC电路36探测并校正4I"^。另外,ECC电路36将 为每个块探测到的出错数发送到块控制器30。图28是一个方框图,显示了块控制器30的配置。这个块控制器30 中所包含的块表30B为每个块编号存储着出错数。每当从NAND闪存10 中读取数据时(每当ECC电路36校正一个错误时),就更新所述块表30B 中所包含的出错数。下面将说明NAND控制器11的读操作。图29是一个流程图,显示了 由NAND控制器11所进行的读操作。首先,当从CPU 2接收到读请求时,NAND控制器11就开始进行读 操作(步骤S130)。然后,块控制器30利用地址表30A搜寻与包含所述 读请求的地址的地址区相对应的块编号(步骤S131)。然后,块控制器30从所述读请求的块中读取数据(步骤S132 )。就 是说,块控制器30向NAND接口电路25发布读请求。基于这个读请求, NAND接口电路25命令NAND闪存10从所述读请求的块中读取数据。之后,ECC电路36对从NAND闪存10中读取的数据进行错误探测 与校正(步骤S133)。通过数据总线6将经过了g校正的读取数据提供 给CPU2等。在这个错误校正中,ECC电路36计算出错数,并将这个出 错数发送到块控制器30。块控制器30从ECC电路36接收所述出错数, 并在块表30B中记录所述出错数。这样,就更新了块表30B中所包含的出 错数。下面将说明由替换源块选择器33所进行的替换源块选择处理。图30 是一个流程图,显示了由替换源块选择器33所进行的替换源块选择处理。 注意,所述替换源块选择器33的配置与图21所示的相同。替换源块选择器33从块控制器30接收所有块信息(步骤S140)。这 个所有块信息被提供给选择器33A。选择器33A检查所有块的状态,并从 所有块中提取使用中的块(步骤S141)。然后,选择器33A将与所述使用 中的块相对应的块信息(使用中的块的信息)发送到选择器33B。选择器33B从所述使用中的块的信息中提取出满足由述替换源块设置 值所设置的条件的块信息(步骤S142 )。在这个步骤中,"所具有的出错 数大于预定值的块"被设置为所述替换源块设置值。然后,选择器33C从选择器33B所提取的块中选择具有最小擦除数的 块作为替换源块(步骤S143)。与这个替换源块相对应的替换源块信息被 提供给均衡单元35。在上面所详细描述的这个实施例中,在存储器系统1的写处理期间在 短时间内共同地出现重写的块能够被一度由数据写入进行分配之后长时间 没有进行释放的块来替换。这就可以抑制由短擦除时间间隔所引起的块的 耗竭,并且可以在整个NAND闪存10中对块的消耗进行均摊。另外,由ECC电路所计算出的出错数较大的块被选为替换源块。因 此,由于对出错数较大的块的数据进行重写,所以刷新处理(其中,读取 NAND闪存10中所存储的数据,对其进行错误校正,并将其写回NAND 闪存IO中)与所述均衡处理同时进行。于是,就能减少刷新处理的次数。 这就可以获得一个效果,即,减少由刷新所导致的数据写入的数量。[实施例]下面将说明通过将上述每个实施例中的存储器系统1配置成固态驱动 器(solid state drive, SSD)而得到的实施例。图31是一个方框图,显示 了 SSD 100的配置。SSD 100包括用于数据存储的多个NAND闪存(NAND存储器)10、32SSD 100通过ATA接口 ( ATA I/F)相对于主机装置(诸如个人电脑) 进行数据传输。此外,SSD 100通过RS232C接口 ( RS232C I/F)相对于 调试装置进行数据传输。电源电路103具有外部电源电压,并利用这个外部电源电压产生多个 内部电源电压。这些内部电源电压被提供给SSD 100的各个单元。此外, 电源电路103探测所述外部电源电压的起伏,并产生通电重置信号或断电 重置信号。所述通电重置信号或断电重置信号被提供给驱动控制电路102。图32是一个方框图,显示了驱动控制电路102的配置。驱动控制电路 102包括数据访问总线104、第一电漆拴制总线105、和第二电路控制总线 106。控制整个驱动控制电路102的处理器107与第一电路控制总线105相 连。此外,存储着管理程序(FW:固件)的引导程序的引导ROM108通 过ROM控制器109与第一电路控制总线105相连。另夕卜,从电源电路103 接收通电/断电重置信号并将重置信号和时钟信号提供给所述各个单元的 时钟控制器109与第一电路控制总线105相连。第二电路控制总线106与第一电路控制总线105相连。并行IO( PIO ) 电路lll (向所述状态显示LED提供状态显示信号)和串行IO (SIO)电 路112 (控制RS232C接口 )与第二电路控制总线106相连。ATA接口控制器(ATA控制器)113、第一错误检查和校正(ECC) 电路114、 NAND控制器115、和DRAM控制器119与数据访问总线104 和第一电路控制总线105均相连。ATA控制器113通过ATA接口相对于 所述主机装置来传输数据。用作数据工作区的SRAM 120通过SRAM控 制器121与数据访问总线104相连。NAND控制器115包括NAND I/F 118 (相对于4个NAND存储器10 进行接口处理)、第二ECC电路117、和控制DMA传输的DMA控制器33116 (在所述NAND存储器和DRAM之间进行访问控制)。
图33是一个方框图,显示了处理器107的配置。处理器107包括数据
管理单元122、 ATA命令处理单元123、安全管理单元124、引导加载器
125、初始化管理单元126和调试支持单元127。
数据管理单元122通过NAND控制器115和第一 ECC电路114对与
NAND芯片相关的各种功能以及对NAND存储器和DRAM之间的数据传
输进行控制。
ATA命令处理单元123通过ATA控制器113和DRAM控制器119 与数据管理单元122协作进行数据传输处理。安全管理单元124与数据管 理单元122和ATA命令处理单元123协作来管理各种安全信息项。引导 加载器125在通电时从NAND存储器10中将各种管理程序(FW)加载到 SRAM 120中。
初始化管理单元126对驱动控制电路102中的各种控制器/电路进行初 始化。调试支持单元127对通过RS232C接口从外部提供的调试数据进行 处理。
图34是一个透视图,显示了装有所述SSD 100的便携式电脑200的一 个例子。便携式电脑200具有主体201和显示单元202。显示单元202包 括显示器外壳203和装在显示器外壳203内的显示装置204。
主体201包括机壳205、键盘206、和作为定点设备的触摸垫207。在 机壳205中装有主电路板、光盘装置(optical disk device, ODD)单元、 卡的插口、 SSD 100等。
所提供的卡的插口与机壳205的周围侧壁邻近。在所述周围侧壁中, 形成面对所述卡的插口的开口 208。用户可以通过开口 208从4几壳205的 外部将附加装置插入所述卡的插口并可以将其从所述卡的插口中拔出。
可以将SSD 100安装在便携式电脑200中并替代常规的HDD,或者, 可以将SSD 100作为附加装置插入便携式电脑200上的卡的插口中。
图35显示了4吏用SSD 100的1更携式电脑200的系统配置的例子。所述 便携式电脑200包括CPU 301、北桥302、主存储器303、视频控制器304、
34音频控制器305、南桥306、 BIOS-ROM 307、 SSD 100、 ODD单元308、 嵌入式控制器/键盘控制器(EC/KBC ) IC 309 、和网络控制器310等。
CPU 301是一个用来控制便携式电脑200的操作的处理器,它执行从 SSD 100加载到主存储器303中的操作系统。当ODD单元308对所加载的 光盘进行读处理或写处理时,CPU301就执行所述处理。
CPU 301也执行BIOS-ROM 307中所存储的系统BIOS (basic input output system ,基本输入输出系统)。系统BIOS是一个用于控制便携式 电脑200中的石更件的程序。
北桥302是一个桥式装置,它将CPU 301的本地总线连接到南桥306 上。北桥302中具有存储器控制器,用来控制对主存储器303的访问。
北桥302的一个功能是,通过AGP总线(accelerated graphics port bus,加速图形端口总线)与视频控制器304和音频控制器305进行通信。
主存储器303临时存储程序或数据,它是CPU301的工作区。主存储 器303由例如DRAM构成。
视频控制器304是一个视频再现控制器,用来对显示单元(LCD ) 202 进行控制。显示单元202被用作便携式电脑200的显示器。
音频控制器305是一个音频再现控制器,用来对〗更携式电脑200的扬 声器311进行控制。
南桥306控制LPC (low pin count,低管脚数)总线上的装置以及PCI (peripheral component interconnect,夕卜设组件互联)总线上的装置。南 桥306也通过ATA接口来控制SSD 100。 SSD 100是用来存储各种软件和 数据的存储单元。
便携式电脑200以扇区为单位对SSD 100进行访问。通过ATA接口 将写命令、读命令和清除命令等提供给SSD100。
南桥306的一个功能是,控制对BIOS-ROM 307和ODD单元308的 访问。EC/KBC 309是单片微型计算机,其中嵌入了用于进行电源管理的 嵌入式控制器和用于控制键盘(KB) 206和触摸垫207的键盘控制器。
EC/KBC 309的一个功能是,根据用户对电源掩組312的操作打开或 35关闭便携式电脑200。网络控制器310是一个通信单元,与外部网络(例 如,互联网)进行通信。
上述实施例中的存储器系统1不限于所述SSD,也可以配置成存储器 卡(其代表是SD (商标)卡)。当存储器系统1被配置成存储器卡时,它 不仅可以用于便携式电脑,而且也可以用于其它各种电子装置,诸如手机、 PDA (个人数字助理)、数码相机、数字摄像机。
本领域中的技术人员会容易地发现其它的优点和修正。所以,本发明 就其更广泛的方面而言不限于这里所显示和描述的具体细节和有代表性的 实施例。因此,可以做出各种修正而不偏离由附属权利要求书及其等^H兌 法所定义的一般性的发明性概念的精神或范围。
3权利要求
1.一种存储器系统,包括非易失性存储器,包含作为数据擦除单位的多个块;测量单元,用来测量每个块中的数据被擦除时的擦除时间;块控制器,它具有块表,该块表将每个块的指示自由状态和使用状态之一的状态值与其所述擦除时间联系起来;探测器,用来探测在短时间内共同地进行了重写的块;第一选择器,基于所述块表中的信息选择具有较早擦除时间的自由块作为第一块;第二选择器,基于所述块表中的信息选择具有较早擦除时间的使用中的块作为第二块;以及均衡单元,用来在所述第一块包含在由所述探测器所探测到的各个块中时将所述第二块中的数据移动到所述第一块中。
2. 根据权利要求l所述的系统,其中,如果所述第二块中的数据被移 动到所述第一块中,那么所述第一选择器就重选一个块。
3. 根据权利要求l所述的系统,其中,所述块控制器对每个块的擦除 次数进行计数,并将擦除数存储在所述块表中。
4. 根据权利要求3所述的系统,其中,如果所述第一块包含在由所述 探测器所探测到的各个块中,或者如果所述第一块与所述第二块的擦除数 之间的差超过了阈值,那么,所述均衡单元就将所述第二块中的数据移动 到所述第一块中。
5. 根据权利要求l所述的系统,其中,所述探测器探测一条边界,在 该边界处,各块的擦除时间之差较大,并探测擦除时间比所述边界更晚的 块,作为在短时间内共同地出现重写的块。
6. 根据权利要求l所述的系统,其中,所述块表存储着标记,该标记 指示是否在短时间内在一个块中共同地出现了重写。
7. 根据权利要求l所述的系统,其中,所述探测器在使用中的各块中计算第三块的擦除时间与第四块的擦除时间之间的差,其中,所述第四块的擦除时间与所述第三块的擦除时间相邻且早于所述第三块的擦除时间, 并且如果所述差大于预定间隔,那么就在所有的块中探测擦除时间比所述 第四块的擦除时间更晚的块。
8. 根据权利要求7所述的系统,其中,所述探测器包括排列单元和判 断单元,所述排列单元按擦除时间的顺序来排列使用中的各块的信息,而 所述判断单元基于被排列的信息计算所述第三块与所述第四块的擦除时间 之差。
9. 根据权利要求l所述的系统,其中,所述第一选择器选择具有最早 擦除时间的自由块作为所述第一块。
10. 根据权利要求1所述的系统,其中,所述第一选择器从具有最早 擦除时间的块开始从预定数目的自由块中选择具有最小擦除数的块,作为 所述第一块。
11. 根据权利要求1所述的系统,其中,所述第一选择器从具有最早 擦除时间的块开始从预定比例的自由块中选择具有最小擦除数的块,作为 所述第一块。
12. 根据权利要求1所述的系统,其中,所述第一选择器从擦除时间 早于预定时间的自由块中选择具有最小擦除数的块,作为所述第一块。
13. 根据权利要求l所述的系统,其中,所述第二选择器选择具有最 早擦除时间的使用中的块,作为所述第二块。
14. 根据权利要求1所述的系统,其中,所述第二选择器从具有最早 擦除时间的块开始从预定数目的使用中的块中选择具有最小擦除数的块, 作为所述第二块。
15. 根据权利要求1所述的系统,其中,所述第二选择器从具有最早 擦除时间的块开始从预定比例的使用中的块中选择具有最小擦除数的块, 作为所述第二块。
16. 根据权利要求1所述的系统,其中,所述第二选择器从擦除时间 早于预定时间的使用中的块中选择具有最小擦除数的块,作为所述第二块。
17. 根据权利要求l所述的系统,其中,还包括错误检查和校正电路, 该错误检查和校正电路计算从所述非易失性存储器中读出的数据的出错 数,以及其中,所述块表存储着每个块的出错数,以及所述第二选择器从出错数大于预定值的使用中的块中选择具有最小擦 除数的块,作为所述第二块。
18. 根据权利要求l所述的系统,其中,所述测量单元包括计数器,用来对在所有块中进行的擦除的次数进行 计数,以及所述擦除时间对应着所述计数器中的计数。
19. 根据权利要求l所述的系统,其中, 所述测量单元测量每个块中的数据被擦除时的时间,以及 所述擦除时间对应着所述时间。
20. 根据权利要求l所述的系统,其中,所述测量单元测量在每个块中的数据被擦除时所述存储器系统的电源 提供时间,以及所述擦除时间对应着所述电源提供时间。
全文摘要
一种存储器系统包括非易失性存储器,包含多个块作为数据擦除单位;测量单元,用来测量每个块中的数据被擦除时的擦除时间;块控制器,它具有块表,该表将每个块的指示自由状态和使用状态之一的状态值与其所述擦除时间联系起来;探测器,用来探测在短时间内共同地进行了重写的块;第一选择器,基于所述块表中的信息选择具有较早擦除时间的自由块作为第一块;第二选择器,基于所述块表中的信息选择具有较早擦除时间的使用中的块作为第二块;以及均衡单元,用来在所述第一块包含在由所述探测器所探测到的块中时将所述第二块中的数据移动到所述第一块中。
文档编号G06F12/16GK101652762SQ200880006649
公开日2010年2月17日 申请日期2008年9月8日 优先权日2008年4月24日
发明者橘内和也, 檜田敏克, 矢野浩邦, 矢野纯二, 菅野伸一 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1