专利名称:半导体存储装置的制作方法
技术领域:
本发明涉及具有非易失性半导体存储器的半导体存储装置。
技术背景如同NAND型闪速存储器一样,非易失性半导体存储器具有当数据存 储于其中时以被称为块的单位一次擦除数据且之后执行写入的类型、以被 称为页的单位执行读取和写入的类型、以及其中规定了擦除、读取和写入 的单位的类型。另一方面,当诸如个人计算机的主机设备执行从诸如硬盘驱动器的次 级存储装置读取数据和向其中写入数据时所使用的单位被称为扇区 (sector)。独立于非易失性半导体存储器中的擦除、读取和写入的单位而 判定扇区。例如,尽管非易失性半导体存储器中的块单位的大小(块大小)为 512kB而页单位的大小(页大小)为4kB,主机设备中的扇区单位的大小 (扇区大小)为512B。以这样的方式,在一些情况下,在非易失性半导体存储器中擦除、读 取和写入的单位可能大于在主机设备中读取和写入的单位。因此,当次M^储装置(例如个人计算机中的硬盘驱动器)是使用非 易失性半导体存储器而构成时,要求来自作为主机设备的个人计算机的扇 区大小的数据符合非易失性半导体存储器的块大小和页大小,以由此被写 入其中。另 一方面,闪速存储器(例如NAND型闪速存储器)具有这样的特性, 其中存储器基元的劣化根据写入数据之前执行的块的擦除计数的增加而深16化。因此,执行被称为磨损均化的处理,其用于使数据更新位置在非易失 性半导体存储器中均匀地分布,以使非易失性半导体存储器中所有存储器
基元的擦除计数变得基本相同。
例如,由主机设备指定的次级存储装置的逻辑地址被转译为代表数据 更新位置的非易失性半导体存储器的物理地址,从而使得数据更新位置均 匀地分布。
另一方面,当在大容量次级存储装置中执行上述地址转译时,如果数 据管理的单位为很小的大小(例如,页大小),逻辑地址和物理地址之间 的对应列表(地址转译表或管理表)被扩大。结果,对应列表不适于次级 存储装置中的控制器的主存储器,从而产生不能高速执行地址转译的问题。 因此,要求次级存储装置中的数据管理的单位具有大于页大小的大小,例 如块大小。
为了解决上述问题,已知这样一种技术,其中提供被称为日志块的另 一种块,以对应于其中存储有数据的块(数据块)(参见,例如,日本专
利申请KOKAI公开号2002-366423)。
在上述才支术中,在日志块中的空页中写入数据,并且当日志块中没有 空页时,或者当没有足够的日志块区时,日志块中所存储的数据被反映 (reflect)到数据块,以提高写入效率。
然而,上述4支术具有这样的问题,即,由于数据块和日志块具有一对 一的对应关系,能够被同时更新的块的数目局限于日志块的数目。
也就是,当很小大小的数据被写入大量数目的块中时,在日志块中存 在大量数目的空页的状态下执行数据反映处理,从而写入效率没有得到提 高。
另外,为了抑制块的擦除计数,有时以小于块大小的页大小为单位管 理数据,且页大小的替代数据可以被附加(append)(额外写入)到另一 被擦除块。
在这种情况下,由于页大小的替代数据被写入另一块中,原始存储的 旧数据变为无效数据。然而,当有效数据存在于包含无效数据的块中时,该块中的数据不能被擦除用于重新使用。这是因为,要求擦除以块为单位来执行,因此,当有效数据存储于同 一块中时,为了防止擦除有效数据的目的,该块中的数据不能被擦除,直 到该有效数据被重写入另一块中为止。无效数据的存在需要比有效数据的量更大的在非易失性半导体存储器 中的存储区。然而,如果数据的更新在次级存储装置中逸艮,无效数据的量增加。 因此,包含无效数据和有效数据的数据容量变得很大。结果,这些数据可 能不能存储在非易失性半导体存储器中的存储区中。为了删除无效数据,执行这样的处理(压紧),其中将从块中收集的有效数据重写入未使用的块中(参见,例如日本专利申请KOKAI公开号 2005-222550)。发明内容I. 根据本发明的一方面的一种半导体存储装置包括配置在易失性半 导体存储器中的第 一存储器区,其通过第 一单位或更小单位执行数据写入, 所述第一单位是对所述半导体存储装置的存取单位;配置在非易失性半导 体存储器中的第二存储器区和第三存储器区,其通过第二单位执行数据写 入,并通过第三单位执行数据擦除,所述第三单位是所述第二单位的两倍 或更大的自然数倍;以及控制器,其执行第一处理,用于通过所述第一 单位将多个数据存储在所述第一存储器区中;第二处理,用于通过第一管 理单位将从所述第一存储器区输出的数据存储在所述第二存储器区中,所 述第一管理单位是所述第一单位的两倍或更大的自然数倍且小于所述第三 单位;以及第三处理,用于通过第二管理单位将从所述第一存储器区输出 的数据存储在所述笫三存储器区中,所述第二管理单位是所述第一管理单 位的两倍或更大的自然数倍。II. 根据本发明的一方面的一种半导体存储装置包括配置在易失性半 导体存储器中的第 一存储器区,其通过第 一单位或更小单位执行数据写入,18所述第一单位是对所述半导体存储装置的存取单位;配置在非易失性半导 体存储器中的第二存储器区、第三存储器区和第四存储器区,其通过第二 单位执行数据写入,并通过第三单位执行数据擦除,所述第三单位是所述 第二单位的两倍或更大的自然数倍;以及控制器,其执行第一处理,用 于通过所述第一单位将多个数据存储在所述第一存储器区中;第二处理, 用于通过第一管理单位将从所述第一存储器区输出的数据存储在所述第四 存储器区中,所述第 一管理单位是所述第 一单位的两倍或更大的自然数倍 且小于所述第三单位;以及第三处理,用于通过第二管理单位将从所述第 一存储器区输出的数据存储在所述第三存储器区中,所述第二管理单位是 所述第一管理单位的两倍或更大的自然数倍且不小于所述第三单位;第四 处理,用于将所述第四存储器区中具有最旧的分配次序的所述第三单位的 区移动到所述第二存储器区;以及第五处理,用于选择所述第二存储器区 中的数据,并将所选择的数据重写入所述第二存储器区中的所述第三单位 的空区中。根据本发明的一方面的一种半导体存储装置包括配置在易失性半导 体存储器中的第一存储器区,其通过第一单位或更小单位执行数据写入, 所述第一单位是对所述半导体存储装置的存取单位;配置在非易失性半导 体存储器中的第二存储器区、第三存储器区、第四存储器区和第五存储器 区,其通过第二单位执行数据写入,并通过第三单位执行数据擦除,所述 第三单位是所述第二单位的两倍或更大的自然数倍;以及控制器,其执行第一处理,用于通过所述第一单位将多个数据存储在所述第一存储器 区中;第二处理,用于通过第一管理单位将从所述第一存储器区输出的数 据存储在所述第四存储器区中,所述第一管理单位是所述第一单位的两倍 或更大的自然数倍且小于所述第三单位;第三处理,用于通过第二管理单 位将从所述第一存储器区输出的数据存储在所述第五存储器区中,所述第 二管理单位是所述第一管理单位的两倍或更大的自然数倍且小于所述第三 单位;第四处理,用于将所述第四存储器区中具有最旧的分配次序的所述 第三单位的区移动到所述第二存储器区;第五处理,用于选择所述第二存储器区中的数据,并将所选择的数据重写入所述第二存储器区中的所述第
三单位的空区中;第六处理,用于将所述第五存储器区中具有最旧的分配 次序的所述第三单位的区移动到所述第三存储器区中;以及第七处理,用 于选择所述第三存储器区中的数据,并将所选择的数据重写入所述第三存 储器区中的所述第三单位的空区中。
III.根据本发明的一方面的一种半导体存储装置包括配置在易失性 半导体存储器中的第一存储器区,其通过第一单位或更小单位执行数据写 入,所述第一单位是对所述半导体存储装置的存取单位;配置在非易失性 半导体存储器中的第二存储器区、第三存储器区和第四存储器区,其通过 第二单位执行数据写入,并通过第三单位执行数据擦除,所述第三单位是 所述第二单位的两倍或更大的自然数倍;以及控制器,其执行第一处理, 用于通过所述第 一单位将多个数据存储在所述第 一存储器区中;第二处理, 用于通过第 一管理单位将从所述第 一存储器区输出的数据存储在所述第四 存储器区中,所述第一管理单位是所述第一单位的两倍或更大的自然数倍 且小于所述第三单位;第三处理,用于通过第二管理单位将从所述第一存 储器区输出的数据存储在所述第三存储器区中,所述第二管理单位是所述 第一管理单位的两倍或更大的自然数倍且不小于所述第三单位;第四处理, 用于选择所述第四存储器区中的所述第三单位的区,并将所选择的区移动 到所述第二存储器区;第五处理,用于以从具有最旧的写入次序的一个区 开始的次序选择所述第三单位的区中的数据,并将所选择的数据重写入所 述第二存储器区中所述第三单位的空区中;以及第六处理,用于选择所述 第二存储器区中的数据,并将所选择的数据重写入所述第二存储器区中第 三单位的空区中。
图l是示出第一基本配置的图; 图2是示出第二基本配置的图; 图3是示出高速緩冲存储器管理表的图;图4是示出页管理表的图;图5是示出页管理表的图;图6是示出块管理表的图;图7是示出物理块管理表的图;图8是示出物理块管理表的图;图9是示出第一存储器区中的数据存储处理的流程图;图IO是示出从第一存储器区的数据输出处理的流程图;图ll是示出从第一存储器区的数据输出处理的流程图;图12是示出从第一存储器区到第二存储器区的数据传送的图;图13是示出从第一存储器区到第三存储器区的数据传送的图;图14是示出从第一存储器区到笫三存储器区的数据传送的图;图15是示出从第二存储器区到第三存储器区的数据传送的流程图;图16是示出从第二存储器区到第三存储器区的数据传送的条件的图;图17是示出系统实例的图;图18是示出系统实例的图;图19是示出压紧的实例的图;图20是示出第一实施例的配置的图;图21是示出高速緩沖存储器管理表的图;图22是示出页管理表的图;图23是示出块管理表的图;图24是示出页FIFO管理表的图;图25是示出物理块管理表的图;图26是示出第四存储器区中的FIFO处理的流程图;图27是示出处理Pl的流程图;图28是示出压紧的处理实例1的流程图;图29是示出压紧的处理实例2的流程图;图30是示出第二实施例的配置的图;图31是示出轨道(track)管理表的图;21图32是示出轨道FIFO管理表的图;图33是示出物理块管理表的图;图34是示出第五存储器区中的FIFO处理的流程图;图35是示出压紧的处理实例1的流程图;图36是示出压紧的处理实例2的流程图;图37是示出第三实施例的配置的图;图38是示出第四存储器区中的FIFO处理的流程图;图39是示出处理PI的流程图;图40是示出第四存储器区的状态的图;图41是示出从第二存储器区到第三存储器区的数据传送处理以;5La紧处理的处理实例的流程图;图42是示出第二存储器区的状态的图;图43是示出第二存储器区的状态的图;图44是示出第二存储器区的状态的图;图45是示出第二存储器区的状态的图;图46是示出第二存储器区的状态的图;图47是用于解释数据管理单元的实例的图;图48是示出簇(cluster)管理表的图;图49是示出第四存储器区中的FIFO处理的流程图;图50是示出SSD的实例的图;图51是示出一个块的配置实例的图;图52是示出存储器基元晶体管中的阈值电压分布的图;图53是示出驱动控制电路的配置实例的图;图54是示出处理器的配置实例的图;图55是示出1更携式计算机的实例的图;以及图56是示出^f更携式计算机的系统的实例的图。
具体实施方式
22下文中,参考附图描述用于实施本发明的最佳方式。 [I.用于实现写入效率的提高的半导体存储装置
1.概述
根据本实施例的半导体存储装置的特征在于,在第 一存储器区中存储 来自主机设备的扇区单位数据流,区分所述第一存储器区中所存储的数据 应该以"小单位(第一管理单位)"还是"大单位(第二管理单位)"进 行管理,并且分别在第二存储器区和第三存储器区中存储"小单位,,数据 和"大单位"数据。
此外,根据本实施例的半导体存储装置的特征在于,将笫二存储器区 中所存储的"小单位"数据合并为一个"大单位"数据,并将"大单位" 数据存储在第三存储器区中。
"大单位,,的大小是"小单位"的大小的自然数倍。在每个"小单位" 数据中,按照逻辑地址的次序顺序地排布多个扇区单位数据。类似地,在 每个"大单位,,数据中,按照逻辑地址的次序顺序地排布多个扇区单位数 据。
换句话说,才艮据本实施例的半导体存储装置在第二存储器区中通过"小 单位"将多个扇区单位数据存储在窄逻辑地址范围内(细粒数据),而在 第三存储器区中通过"大单位"将多个扇区数据存储在宽逻辑地址范围内 (糾立数据)a
此外,当在第二存储器区中累积了特定量的"小单位"数据时,根据 本实施例的半导体存储装置将这些数据合并为"大单位"数据,并将该"大
单位"数据存储在第三存储器区中(碎片整理(defragmentation ))。
例如,可以考虑这样的情况,其中在NAND型闪速存储器中,"小单 位"的大小等于页单位的大小,而"大单位"的大小等于块单位的大小。 换句话说,在第一存储器区中存储扇区单位(第一单位)数据,在第二存 储器区中存储页单位(第二单位)数据,在第三存储器区中存储块单位(第 三单位)数据。
在这种情况下,从主机设备向半导体存储装置传送的扇区单位数据首先被存储在第一存储器区中。基于数据的数目或数据量,判定第一存储器 区中存储的数据是要传送到第二存储器区还是要传送到第三存储器区。
也就是,当第一存储器区中存储的数据满足第一条件时,数据以"大 单位"进行管理,并被存储在第三存储器区的每个块中作为块单位数据。 在这种情况下,即使块单位数据附属于写入而被擦除,写入效率也不会变 得降低。
另一方面,当第一存储器区中存储的数据未能满足第一条件时,数据 以"小单位"进行管理,并被存储在第二存储器区中的每个页中作为页单 位数据。在这种情况下,通过以附加方式存储页单位数据,可以减少块单 位数据的擦除量。
基于第二条件进一步选择与在第二存储器区中所存储的页单位等效的 "小单位"数据。将包括所选择的数据的多个数据合并为"大单位"数据。 将"大单位"数据存储在第三存储器区的每个块中作为块单位数据。 第一条件由例如数据的数目限定。
也就是,当第一存储器区中存储的数据数目达到预定阈值时,数据被 传送到第三存储器区,并且当第一存储器区中存储的数据数目没有达到预 定阈值时,数据被传送到第二存储器区。
替代地,可以判定在第 一和第二存储器区中所存储的数据的总数目是 否达到预定阈值。也就是,当总数目达到预定阈值时,数据被传送到第三 存储器区,而当总数目没有达到阁值时,数据被传送到第二存储器区。
第二条件由例如写入次序或有效数据的数目限定。
当第二条件由写入次序限定时,顺序地选择从第二存储器区中的块当 中检测到的具有最早写入次序的块中的数据,并将所选择的数据传送到第 三存储器区。
当笫二条件由有效数据的数目限定时,对于第二存储器区中的每个块,
当块中的有效数据的逻辑地址按照块单位的大小排列时,在一个逻辑地址 范围内将第二存储器区中所存储的页单位的有效数据的数目求和,并将具 有最大的求和值的块中的有效数据传送到第三存储器区。顺便提及,"逻辑地址按照预定大小(例如页单位大小或块单位大小)
排列"是指,逻辑地址被舍入(round down)到这样的地址,使得当逻辑 地址被除以预定大小时,余数是0。例如,通过将逻辑地址A按照大小S 排列而计算得到的地址为(A - (A除以S的余数))。类似地,"按照预定 大小排列的逻辑地址范围"是指,从通过将逻辑地址按照预定大小排列而 计算得到的地址开始的预定大小的范围。
根据本实施例的半导体存储装置可以实现写入效率的提高,并防止性 能劣化和寿命缩短,而与来自主机设备的数据大小或数据量无关。
特别是,本实施例在这样的情况下效果最为明显,即,半导体存储装 置由具有规定的擦除、读取和写入单位的非易失性半导体存储器(例如, NAND型闪速存储器)构成,并用作个人计算机的次级存储装置(SSD: 固态驱动器)。
上述半导体存储装置的容量趋向于变得更大,并且当通过在一个存储 器基元中存储多个位的MLC(多级基元)技术而实现容量的增加时,擦除、 读取和写入的单位趋向于变得更大,以保持相当的写入性能。
此外,在个人计算机等等中,通常通过"小单位"更新次级存储装置 上的数据。当仅以诸如块单位的"大单位"管理该数据时,数据擦除量对 于数据更新量变得更大,从而降低写入效率,并加速存储器基元的劣化。
如本实施例中所示,来自主机设备的数据流被划分为"小单位"和"大 单位","小单位"数据和"大单位"数据被分别写入不同的存储器区中, 从而可以减小上述问题出现的可能性。
换句话说,通过在半导体存储装置中使用两个管理单位,即"小单位" 和"大单位",非易失性半导体存储器的数据擦除量相对于来自主机设备 的数据写入量得到优化,并提高写入效率。
2.实施例
将描述本发明的实施例。 描述作为本实施例相关概念的写入效率。
对于闪速存储器(例如NAND型闪速存储器)中的存储器基元的劣化,
25来自主机设备的写入数据量所要求的闪速存储器中的块单位数据的擦除量 是一个重要的因素。
在本实施例中,数据擦除量被称为"写入效率值"。
如果块单位数据的擦除量相对于写入数据量很小,则写入效率值变得 很小,存储器基元的劣化的进程相对减慢。这种现象意味着写入效率得到 提高。另一方面,如果块单位数据的擦除量4艮大,写入效率值变得^艮大。 这种现象意味着写入效率被劣化。
也就是,为了防止闪速存储器中的存储器基元的劣化,很重要的是减 小块单位数据的擦除量,从而提高写入效率。
将示出这样的实例,其中使用闪速存储器的半导体存储装置中的写入 效率,皮劣化。
在该实例中,假定闪速存储器中块单位的大小和页单位的大小分别为
512kB和4kB,假定主机设备的扇区单位的大小为512B,并假定数据管理 单位的大小为512kB,与块单位大小相同。
在与块单位具有相同大小的数据X被存储在闪速存储器中的状态下, 考虑对更新数据Y的处理,该数据Y具有1个扇区的大小且其逻辑地址被 包含在数据X的逻辑地址范围内。
假定数据X被存储在闪速存储器的整个块Bl中。
首先,来自块B1的数据X被读出到暂时存储区中,并且数据X的一 部分被来自主机设备的更新数据Y所替代,从而产生最新数据。然后,擦 除与块B1不同的块B2中的数据,并将上述最新数据写入块B2中。
在该处理中,如上所述,有必要从块B1读取512kB的数据X以将512B 的数据Y写入其中,并进一步擦除块B2中的512kB的数据以将最新数据 写入块B2中。
因此,闪速存储器中的擦除量相对于来自主机设备的写入数据量很大, 因而写入效率非常差。
该实例中写入效率值为512kB/512B=1024。
通常,在NAND型闪速存储器中,块擦除处理和写入处理要花费相当
26长的时间,因此,写入效率的劣化意味着块单位数据的擦除量和在擦除的 块中的写入数据量相对于来自主机设备的写入数据量来说很大,并且,同
时意味着半导体存储装置的速度(rate)性能劣化。 (1)基本配置
图1示出根据本实施例的半导体存储装置的第一基本配置。
第一存储器区11暂时存储来自主机设备的数据。数据通过扇区单位 (第一单位)被写入第一存储器区11中。例如,第一存储器区ll被配置 在诸如DRAM (动态随^取存储器)的易失性半导体存储器中。
包括第一存储器区11的易失性半导体存储器中的读取/写入的物理单 位是扇区单位或更小。主机设备使用具有扇区单位的逻辑地址(LBA:逻 辑块寻址)执行对半导体存储装置的存取。因此,第一存储器区ll以扇区 单位管理输入数据。
第二存储器区由诸如NAND型闪速存储器的非易失性半导体存储器 中的块构成。第三存储器区由诸如NAND型闪速存储器的非易失性半导体 存储器中的块构成。
第二和第三存储器区12和13被分别配置在单独的非易失性半导体存 储器(存储器芯片)中。每个存储器芯片可具有不同的性能,例如写入性 能,或者可具有不同的存储容量。例如,第二存储器区12可配置在利用 SLC (单级基元)技术的NAND型闪速存储器中,第三存储器区13可配 置在利用MLC (多级基元)技术的NAND型闪速存储器中。
在非易失性半导体存储器中, 一次执行读取/写入的单位为页(第二单 位),而一次执行擦除的单位为块(第三单位)。
一个块单位由多个页单位构成。此外,根据本实施例的非易失性半导 体存储器并不允许在同一页中进行重写入,除非包含该页的块中的数据被 一次擦除。
因此,如果从主机设备输入替代数据(新数据),在块中原M储的、 与新数据具有相同逻辑地址的旧数据被视为无效数据。新数据被视为有效 数据,其优先于旧数据,而旧数据被视为无效数据,通过参考新数据,该旧数据被忽略。
为了简化解释,如下假定每个单位
作为半导体存储装置中的数据管理单位的"小单位(第一管理单位)"
的大小等于页单位的大小(在一个页中可存储的数据量)。"大单位(第 二管理单位)"的大小等于块单位的大小(在一个块中可存储的数据量)。 "小单位"的大小是扇区单位的大小的自然数倍。
代表数据大小的第一、第二和第三单位不包括冗余数据(ECC: 核查/校正码,内部控制标志(flag),等等),该冗余数据在半导体存储 装置中添加到来自主机设备的主数据。
通常,包含非易失性半导体存储器(例如NAND型闪速存储器)的系 统在将冗余数据添加到主数据的状态下执行读取/写入。但是,为了简化解 释,如上所述地假定每个单位。
第二存储器区12以等于页单位的"小单位"存储从第一存储器区11 传送的数据。第三存储器区13以等于块单位的"大单位"存储从第一存储 器区11或第二存储器区12传送的数据。
由于仅仅控制通过"小单位"更新的一部分数据,第二存储器区12 可具有比第三存储器区13的容量更小的容量。
下面的描述中, 一个块单位的数据全部存储在一个块中, 一个页单位 的数据全部存储在一个页中。每个块由多个页构成,多个页单位的数据存 储在一个块中。
控制器10具有CPU和主存储器,并可以操作用于执行数据管理的程 序。在本实施例中,控制器10所实现的功能可以作为硬件和软件的任何一 者或两者的结合来执行。这些功能作为硬件还是软件来执行取决于实际实 施例或对整个系统施加的设计约束。本领域技术人员可以针对每个实际实 施例通过各种方法执行这些功能,并且本发明的范围包含这些执行方式的 判定。
控制器10具有在主存储器中的高速緩沖存储器管理表、页管理表、块 管理表以及物理块管理表,以管理通过逻辑地址存取的数据存储在第一、第二和第三存储器区ll、 12和13的何处。
当控制器10的主存储器由诸如DRAM的易失性半导体存储器构成 时,第 一存储器区11可被配置在控制器10的主存储器中。
图2示出根据本实施例的半导体存储装置的第二基本配置。 第二基本配置在下面几点上与图l的第一基本配置不同。 第二和第三存储器区12和13被配置在非易失性半导体存储器22中。 例如,假定包含第一存储器区11的易失性半导体存储器是DRAM,并假 定包含第二和第三存储器区12和13的非易失性半导体存储器22是 NAND型闪速存储器。
第二和第三存储器区12和13被配置为在非易失性半导体存储器22 中共享存储区,并且控制器10将非易失性半导体存储器22中的块分配给 第二存储器区12或第三存储器区13。对第二和第三存储器区12、 13的分 配不是静态的,还可以是动态的。对第二和第三存储器区12、 13的分配由 控制器10来控制。第二和第三存储器区12和13可以被配置在多个非易失 性半导体存储器(存储器芯片)之上。控制器10可以将非易失性半导体存
储器中的全部多个块视为 一个抽象的存储区域。
控制器10具有在主存储器中的高速緩冲存储器管理表、页管理表、块 管理表和物理块管理表。
在图1和图2中,这些管理表在半导体存储装置没有电源供应的状态 下被存储在非易失性半导体存储器中。控制器10在电源供应时将这些管理 表读出到主存储器中。控制器10执行地址转译,以使从主机设备指定的逻 辑地址空间与非易失性半导体存储器中的数据的物理位置相互关联。 -高速緩冲存储器管理表—
图3示出高速緩冲存储器管理表的实例。
高速緩冲存储器管理表通过与页单位相等的"小单位"控制在图l和 图2的第一存储器区11中所存储的数据。通过扇区单位执行对有效数据的 控制。
假定为第一存储器区11中的一个页单位的一个区分配一个条目
29(entry)。
假定条目的数目为在第一存储器区11内可以包含的页单位数据的数 目,也就是,不大于(第一存储器区11的总容量)/ (页单位的大小)。
页单位数据的逻辑地址、第一存储器区11的物理地址,以及指示出有 效数据在页单位的相关区中的位置的扇区标志(sector flag)与每个条目相 关联。
在第 一存储器区11中提供用于暂时存储与每个条目相对应的数据的 页单位的区,该区的物理地址存储在每个条目中。如果规定了与条目相对 应的区的物理地址,例如如果页单位的区连续排布,就不要求物理地址存 储在条目中。
将第一存储器区11的页单位的每个区进一步划分为高速緩冲存储器 管理表中扇区单位的区。通过将扇区标志的值设定为"1"或者"0"来表 示扇区单位的每个区中的数据状态。
在具有扇区标志'T,的区中,存储来自主机设备的有效数据。在具有 扇区标志"0"的区中,不存储从主机设备写入的最新数据,从而将该区视 为无效区。其中所有扇区标志都为"0"的条目被认为是未使用的条目。
上述高速緩冲存储器管理表的配置是基于被称为全关联方法的控制方 法,在该方法中,为每个条目分配逻辑地址。然而,第一存储器区ll中的 逻辑地址和物理地址之间的对应关系可以通过n-路集合关联方法等等进行 控制。
-页管理表-
图4示出页管理表的实例。
页管理表通过与页单位相等的"小单位"控制在图l和2的第二存储 器区12中所存储的数据。
假定为第二存储器区12中一个页单位的一个区分配一个条目。
假定条目的数目为在第二存储器区12内可以包含的页单位数据的数 目,也就是,不大于(第二存储器区12的总容量)/ (页单位的大小)。
第二存储器区12的物理地址和页单位数据的逻辑地址与每个条目相关联。
例如,具有物理地址A的一个页单位的数据存储在第二存储器区12 中的由物理地址A所指定的块0的第一页中,而具有物理地址C的一个页 单位的数据存储在第二存储器区12中的由物理地址C所指定的块1的第 二页中。通过下列方式来表示无效条目,例如,提供指示出条目的有效性 或无效性的标志,或者在条目中存储无效逻辑地址或无效物理地址。
图5示出页管理表的另一实例。稍后解释图5中的页管理表。
-块管理表-
图6示出块管理表的实例。
块管理表通过与块单位相等的"大单位"控制在图1和2的第三存储 器区13中所存储的数据。
假定为第三存储器区13中一个块单位的一个区分配一个条目。
假定条目的数目为在第三存储器区13内可以包含的块单位数据的数 目,也就是,不大于(第三存储器区13的总容量)/ (块单位的大小)。
每个条目按照逻辑地址的次序进行排列。与块单位数据的逻辑地址对 应并指定第三存储器区13中的块的物理地址与每个条目相关联。通过下列 方式来表示无效条目,例如,提供指示出条目的有效性或无效性的标志, 或者在条目中存储无效物理地址。 -物理块管理表-
图7和8示出物理块管理表的实例。
图7的物理块管理表用于第一基本配置中,并控制图1的第二和第三 存储器区12和13中的块的使用(现用/空闲)。如图7 (a)所示,指向可 用性的指针,皮存储在用于第二存储器区12的物理块管理表中,物理块管理 表控制块中的页的可用性。
如图7(b)所示,为了节省存储区,并不通过用于第三存储器区13 的物理块管理表来控制页的可用性。
图8的物理块管理表用于第二基本配置中,并控制图2的非易失性半 导体存储器22中的存储区(块)是用作第二存储器区12 (现用)、用作
31第三存储器区13 (现用),还是未使用(空闲其中不存在有效数据)。 当存储区用作第二存储器区12时,物理块管理表控制与其相关联的页的可 用性。
假定为第二和笫三存储器区12、 13中的一个块(物理块)分配一个条目。
假定条目的数目不大于可以用作数据区的块的数目。
物理地址和由物理地址所指定的块的使用与每个条目相关联,并且, 对于第二存储器区12中所使用的块,管理页的可用性。
页可用性被配置为能够为每个页区分"写入允许(write enable)"状 态(该存储区是空的)和"写入禁止"状态(因为已在其中一次写入旧数 据,该存储区是无效的,新数据被重写入另一存储区中)。
在对每个页的数据写入序列中,如果非易失性半导体存储器仅仅可按 照物理地址的升序执行数据写入,那么通过存储块中的其中可以附加数据 的空页的位置来管理页可用性。
作为用于第二存储器区12的块中的页的可用性,例如,采用图4所示 的在块中管理空页的数据结构。
在本实施例中,页可用性存储在物理块管理表中;然而,如图5所示, 页可用性也可以存储在页管理表中。在这种情况下,页管理表被分割为用 于第二存储器区12的物理块的单位,并存储逻辑地址连同页可用性。
在以上描述中,为了简化解释,假定在第二存储器区12中使用的"小 单位(第一管理单位)"为页单位,第三存储器区13中使用的"大单位(第 二管理单位)"为块单位;然而,管理单位并不限于这样的设定。
重要的是,在诸如NAND型闪速存储器的、包含次级存储装置作为对 硬盘驱动器(磁盘设备)的替代品的非易失性半导体存储器中,规定擦除、 读取和写入的单位。
例如,通过对页进行划分来对页进行控制,具体地,在第二存储器区 12中使用的"小单位"的大小可以为扇区单位的大小的自然数倍,而页单 位的大小可以是"小单位"的大小的两倍或更大的自然数倍。替代地,共同地控制多个页,具体地,在第二存储器区12中使用的"小 单位"的大小可以是页单位的大小的两倍或更大的自然数倍,而块单位的 大小可以是"小单位"的大小的两倍或更大的自然数倍。
同样地,通过对块进行划分来对块进行控制,具体地,在第三存储器 区13中使用的"大单位"的大小可以为"小单位,,的大小的两倍或更大的 自然数倍,而块单位的大小可以是"大单位,,的大小的两倍或更大的自然 数倍。
替代地,共同地控制多个块,具体地,在第三存储器区13中使用的"大 单位"的大小可以是块单位的大小的两倍或更大的自然数倍。
第二和第三存储器区12和13中的擦除单位可以相同(例如,为块单 位),或者可以通过同时擦除多个块等等而互不相同。 (2)处理方法
描述图1和2的控制器10所执4亍的处理。
A.第一存储器区中的数据存储处理
参考图9描述第一存储器区11中的数据存储处理。
首先将来自主机设备的输入数据写入第一存储器区11中,并将数据存 储在第一存储器区11中历时特定周期。那时,更新图3的高速緩冲存储器 管理表。
1. 控制器10按照与页单位相等的"小单位"的大小排列输入数据的 逻辑地址(步骤ST1)。
2. 控制器10从高速緩沖存储器管理表中搜寻与按照页单位大小排列 的逻辑地址范围相对应的条目(步骤ST2)。
3. 控制器10判断第一存储器11中是否存在对应的条目。如果在第一 存储器区11中检测到对应的条目,控制器IO选择该条目,该处理转到步 骤ST8。如果在第一存储器区11中未检测到对应的条目,该处理转到步骤 ST4。
4. 控制器10搜寻高速緩沖存储器管理表,并判断其中是否存在未使 用的条目(步骤ST4 )。如果检测到未使用的条目,该处理转到步骤ST6。
33如果未检测到未^f吏用的条目,该处理转到步骤ST5。
5. 控制器10执行接下来描述的"从第一存储器区的数据输出处理"。 从而,数据从第一存储器区ll输出到第二存储器区12和第三存储器区13
(步骤ST5)。结果,高速緩沖存储器管理表中的与所输出的数据对应的 条目被设定为未使用的条目。那时,该条目中的所有扇区标志被设定为"0"。 在完成设定之后,该处理返回到步骤ST4。
6. 控制器10选择未使用的条目用于来自主机设备的输入数据(步骤 ST6)。
7. 控制器10将通过按照页单位的大小排列输入数据的逻辑地址所获 得的逻辑地址设定为所选择的条目(步骤ST7)。也就是,控制器10判定 所选择的条目为与输入数据对应的条目。
8. 控制器10基于输入数据的逻辑地址以及所选条目的逻辑地址和物 理地址来判定用于数据写入的物理地址。控制器10指示包含第一存储器区 11的易失性半导体存储器将输入数据写入上述物理地址所指定的区中(步 骤ST8)。
另外,控制器10将与数据在页单位的区中的写入位置相对应的扇区标 志设定为T 。
在来自主机设备的输入数据大于页大小的情况下,需要高速緩冲存储 器管理表中的多个条目。在这样的情况下,控制器10通过重复上述处理而 更新多个条目。
B.从第一存储器区的数据输出处理
参考图10和11描述从第一存储器区11的数据输出处理。
控制器10选择将要从第 一存储器区11输出的页单位数据,并根据第 一条件将该数据传送到第二存储器区12或第三存储器区13。例如,第一 条件通过数据的数目来限定。具体地,控制器IO执行下面的处理(a)或 处理(b)。
(a).控制器10对第一存储器区11中的数据的数目进行计数,并判 定是以与块单位相等的"大单位,,还是以与页单位相等的"小单位"来管
341. 控制器10按照块单位("大单位")的大小排列将要输出的页单 位("小单位")数据的逻辑地址LA (步骤ST1)。
2. 控制器10通过搜寻图3的高速緩沖存储器管理表而对块单位大小 的逻辑地址范围中所包含的条目的数目进行计数(步骤ST2)。
例如,根据图12的实例,按照块单位大小排列的逻辑地址范围X中 所包含的条目的数目为3,也就是,LA1、 LA4和LA6。
3. 控制器10判断条目的数目是否为预定阈值或更大。例如,预定阈 值可以设定为块单位("大单位,,)的一个区中可存储的页单位("小单 位")数据的总数目的50 % (步骤ST3 )。
如果条目的数目小于预定阈值,控制器IO将逻辑地址范围中所包含的 每个数据传送到第二存储器区12作为与页单位相等的"小单位"的数据。
如果条目的数目不小于预定阈值,控制器10将逻辑地址范围中所包含 的多个数据传送到第三存储器区13作为与块单位相等的"大单位,,的数据。
"小单位"的情况(参见图10和图12的流程图)
控制器10选择将要从第一存储器区11输出的数据,并将所选择的数 据传送到第二存储器区12作为页单位的数据。参考图10中的步骤ST4以 及之后的步骤。
下面描a第一存储器区ll传送一个页单位的数据的情况下的处理。 当传送多个页单位的数据时,重复下面的处理。
4. 控制器10搜寻图4的页管理表,判断是否存在这样的条目,该条 目与将要从第一存储器区11传送的写入数据具有相同的逻辑地址LA (步 骤ST4)。
如果检测到这样的条目,控制器10选择该条目,该处理转到步骤ST9。 如果未检测到这样的条目,该处理转到步骤ST5。
5. 控制器10判断在页管理表中是否存在未使用的条目(步骤ST5)。 如果检测到未使用的条目,该处理转到步骤ST7。如果未检测到未使
用的条目,该处理转到步骤ST6。
36. 控制器10执行"从第二存储器区到第三存储器区的数据传送处理,,
(步骤ST6)。结果,对应于输出数据的条目祐:设定为未使用的条目。控
制器10获得可用的未使用的条目,该处理返回到步骤ST5。
7. 控制器10选择未使用的条目作为写入数据的目的地(步骤ST7 )。
8. 控制器10将页单位的写入数据的逻辑地址设定为所选择的条目(步 骤ST8)。所选择的条目将被视为对应于写入数据的条目。
9. 控制器10判定在所选条目中的写入位置(步骤ST9)。下面描述 用于判定写入位置的处理。
9-1.控制器10搜寻图7或图8的物理块管理表,并选择第二存储
器区12中所使用的具有处于"写入允许"状态的空页的块。如果检测到这
样的块,控制器IO选择该块中的空页作为写入数据的目的地(步骤ST9-1 )。
在通过页单位的数据写入中,如果包含第二存储器区12的非易失 性半导体存储器仅仅可以按照物理地址的升序执行数据写入,那么控制器
10选择其中可以附加数据的空页。
如果在第二存储器区12中所使用的块中检测到空页,该处理转到 步骤STIO。如果在第二存储器区12中所使用的块中未检测到空页,该处 理转到步骤ST9-2。
9-2.控制器10搜寻图7或图8的物理块管理表,并判断是否存在 空闲块(步骤ST9-2)。如果检测到空闲块,该处理转到步骤ST9-4。如 果未检测到空闲块,该处理转到步骤ST9-3 。
9-3.控制器10执行"从第二存储器区到第三存储器区的数据传送 处理,,以创建空闲块(步骤ST9-3)。在创建空闲块之后,该处理返回到 步骤ST9-2。
9-4.控制器10获得用于第二存储器区12的空闲块(步骤ST9-4 )。 9-5.控制器10将图7或图8的物理块管理表中的与所获得的空闲 块相对应的条目更新为"第二存储器区12 (现用)"。在第二基本配置(图 8)中,控制器10获取用于存储页可用性的区,并使该区与该条目相关联 (步骤ST9-5 )。9-6.控制器10指示非易失性半导体存储器擦除所获得的空闲块 中的数据,并将所有的页可用性更新为"写入允许"状态。控制器10选择 块中的空页当中的一个作为写入数据的目的地(步骤ST9-6)。 通过以上描述完成用于判定写入位置的处理。
10. 控制器IO判断组成页单位数据的所有扇区单位数据是否都存在于 第一存储器区ll中(步骤STIO)。
控制器10扫描图3的高速緩冲存储器管理表中的与写入数据相对应的 条目的扇区标志。如果所有的扇区标志都为"1",该处理转到步骤ST12。 如果扇区标志中的任何一个为"0",该处理转到步骤STll。
11. 如果扇区标志中的任何一个为"0",则在第一存储器区11中并 没有完成所有的扇区单位数据。因此,控制器10从第二存储器区12和/ 或第三存储器区13收集与具有扇区标志"0"的扇区位置相对应的遗漏数 据(步骤STll)。
控制器10试图从第二存储器区12读出遗漏数据。
控制器10按照页单位的大小排列扇区单位数据的逻辑地址,并在所排 列的逻辑地址处搜寻页管理表。
如果检测到条目,控制器IO读出与该条目中所记录的物理地址相对应 的页单位数据中所包含的遗漏数据。如果未检测到条目,控制器10试图从 第三存储器区13读出遗漏数据。
控制器10按照块单位的大小排列扇区单位数据的逻辑地址,并在所排 列的逻辑地址处搜寻块管理表。
如果检测到条目,控制器IO读出与该条目中所记录的物理地址相对应 的块单位数据中所包含的遗漏数据。
从第二存储器区12或第三存储器区13读出的遗漏数据被暂时存储在 第一存储器区11的工作区或控制器10的主存储器中;然而,并不限于此。
12. 在完成组成页单位数据的全部扇区单位数据之后,控制器10指示 非易失性半导体存储器将页单位数据写入第二存储器区12中的被选择作 为写入数据的目的地的空页中。控制器10将物理块管理表中的对应的页可
37用性更新为"已写入"状态(满该存储区被有效数据填充)(步骤ST12 )。 在写入页单位数据之后,控制器io将写入数据的逻辑地址和作为写入
数据的目的地的页的物理地址登记在页管理表的所选条目中。
如果在登记新物理地址之前一物理地址已经被存储在所选条目中,那
么控制器10改写该物理地址。存储在由旧物理地址所指示的页中的旧数据
变为无效数据。
13.控制器10更新图3的高速緩冲存储器管理表。使得对应于写入数 据的条目为无效状态,并将其释放用于来自主机设备的输入数据(步骤 ST13)。
随后,控制器10扫描图7或图8的物理块管理表和图4的页管理表, 并执行释放处理,该释放处理用于将其中所有页单位数据都为无效数据的 "现用"块i殳定为"空闲"块。
具体地,将对应于这样的块的条目设定为"空闲",该块在物理块管 理表中祐 没定为"现用",并且该块中不存在由页管理表中的物理地址所 指示的页。在图8的配置中,释放用于存储页可用性的区。
."大单位,,的情况(参见图11的流程图、图13和图14)
控制器10选择将要从第 一存储器区11输出的数据,并将所选择的数 据传送到第三存储器区13作为块单位的数据。参考图11中的步骤ST4, 以及之后的步骤。
4,.控制器10搜寻图7或图8的物理块管理表,并获得空闲块。控制 器10将所获得的空闲块分配给第三存储器区13 (步骤ST4,)。
控制器10将物理块管理表的与所获得的空闲块相对应的条目更新为 "第三存储器区13 (现用)",并指示非易失性半导体存储器擦除所获得 的空闲块中的数据。
如果"大单位"的大小小于块单位的大小,控制器10选择第三存储器 区13中所使用的具有处于"写入允许"状态的"大单位"的空区的块,这 与"小单位,,的情况相同。
5,.控制器10判断组成块单位数据的所有的扇区单位数据是否都存在于第一存储器区11中(步骤ST5,)。
具体地,控制器10判断图3的高速緩沖存储器管理表是否包含与块单 位大小的逻辑地址范围中所包含的页单位数据相对应的全部条目,并且, 同时,判断这些条目的所有扇区标志是否都为"1"。
如果在第一存储器区11中完成组成块单位数据的全部扇区单位数据, 该处理转到步骤ST7,。如果与逻辑地址范围中所包含的页单位数据相对应 的条目没有全部检测到,和/或扇区标志中的任何一个为"0",该处理转 到步骤ST6'。
6,.控制器10从第二存储器区12和/或第三存储器区13收集遗漏数 据,该遗漏数据对应于没有包含在高速緩沖存储器管理表中的页位置和具 有扇区标志"0"的扇区位置(步骤ST6,)。
控制器10试图从第二存储器区12读出遗漏数据,如图13所示。
控制器IO按照页单位的大小排列扇区单位数据的逻辑地址,并在所排 列的逻辑地址处搜寻页管理表。
如果检测到条目,控制器10读出与该条目中所记录的物理地址相对应 的页单位数据中所包含的遗漏数据。
如果未检测到条目,控制器IO试图从第三存储器区13读出遗漏数据, 如图14所示。
控制器10按照块单位的大小排列扇区单位数据的逻辑地址,并在所排 列的逻辑地址处搜寻块管理表。控制器IO读出与该条目中所记录的物理地 址相对应的块单位数据中所包含的遗漏数据。
从第二存储器区12或第三存储器区13读出的遗漏数据被暂时存储在 第一存储器区11的工作区或控制器10的主存储器中;然而,并不限于此。
7,.在完成组成块单位数据的所有的扇区单位数据之后,控制器10指 示非易失性半导体存储器将块单位数据写入第三存储器区13中的被选择 作为写入数据的目的地的空块中(步骤ST7,)。
在写入块单位数据之后,控制器io将作为写入数据的目的地的块的物 理地址登记在块管理表的与块单位大小的逻辑地址范围相对应的条目中。
39如果在登记新物理地址之前一物理地址巳经存储在所选条目中,那么
控制器10改写该物理地址D存储在由旧物理地址所指示的块中的旧数据变 为无效数据。
8,.控制器10更新图3的高速緩冲存储器管理表。使得对应于写入数 据的条目为无效状态,并将其释放用于来自主机设备的输入数据(步骤 ST8,)。
随后,控制器10扫描图7或图8的物理块管理表和图6的块管理表, 并执行释放处理,该释放处理用于将其中块单位数据为无效数据的"现用,, 块设定为"空闲"块。
具体地,将对应于这样的块的条目设定为"空闲",该块在物理块管 理表中被设定为"现用"且不由块管理表中的物理地址指示。
同样地,如果在图4或图5的页管理表中存在与块单位大小的写入数 据的逻辑地址范围中所包含的逻辑地址相对应的条目时,使该条目为无效 状态。基于第二存储器区12中所存储的数据向第三存储器区13的传输, 为了无效化第二存储器区12中所存储的数据以防止参考,执行这样的处 理。
进一步地,在第二存储器区12中,控制器IO将其中所有页单位数据 为无效数据的"现用"块设定为"空闲"块。在图8的配置中,释放用于 存储页可用性的区。
(b).控制器10对第一和第二存储器区11和12中的数据的数目进 行计数,并判定是以与块单位相等的"大单位"还是以与页单位相等的"小 单位"来管理数据。
在这种情况下,控制器10搜寻图3的高速緩沖存储器管理表和图4 或图5的页管理表,并对第二和第二存储器区11、 12中的这样的条目的总 数目进行计数,所述条目被包含在通过按照块单位大小排列将要输出的数 据的逻辑地址而计算的逻辑地址范围中。
如果所述条目的总数目为预定阈值或更大,例如不小于块单位("大 单位")的一个区中可存储的页单位("小单位")数据的总数目的50%,则以"大单位"管理将要输出的数据,而如果所述条目的总数目小于预定
阈值,则以"小单位"管理将要输出的数据(步骤ST1 —步骤ST2—步骤 ST3)。
"小单位,,的情况(参见图10的流程图)
与上述的情况"(a)" —样,控制器10将从第一存储器区ll输出的 数据存储在第二存储器区12中作为页单位的数据。在将从第一存储器区 11输出的数据写入第二存储器区12之后,更新图3的高速緩冲存储器管 理表,以使对应于写入数据的条目为无效状态,与上述情况"(a)" —样。 此夕卜,更新图4或图5的页管理表和图7或图8的物理块管理表(步骤ST4 至步骤ST13)。
."大单位"的情况(参见图11的流程图)
与上述的情况"(a),, 一样,控制器IO将从第一存储器区11输出的 数据存储在第三存储器区13中作为块单位的数据。在将从第一存储器区 11输出的数据写入第三存储器区13之后,更新图3的高速緩冲存储器管 理表,以使对应于写入数据的条目为无效状态,与上述情况"(a),, 一样。 此外,更新图4或图5的页管理表、图6的块管理表,以及图7或图8的 物理块管理表(步骤ST4,至步骤ST8,)。
在图ll的流程图中,步骤ST4,可以安排在紧接步骤ST7,之前。在这 种情况下,控制器10可以在判定将要写入第三存储器区13中的数据之后 将"空闲"块分配给第三存储器区13。
C.从第二存储器区到第三存储器区的数据传送处理
参考图15描述从第二存储器区12到第二存储器区13的数据传送处理。
第二存储器区12的容量通常被设定为小于第三存储器区13的容量, 因此,如果在第二存储器区12中累积了特定量的数据(被等于页单位的"小 单位"大小的数据所占据的块的数目超过被限定为第二存储器区12容量的 允许范围),控制器10在第二条件下从第二存储器区12选择排出块 (ejection block)。
41控制器10将排出块中所存储的与页单位相等的"小单位"大小的每个 数据传送到第三存储器区13,作为与块单位相等的"大单位"大小的数据。
换句话说,控制器10将数据管理单位从与页单位相等的"小单位"改 变为与块单位相等的"大单位"。在该处理中,从第一、第二和第三存储
器区ll、 12和13收集"大单位"大小的逻辑地址范围中所包含的多个"小 单位"碎片数据,并将其合并为块单位数据(碎片整理)。
第二条件通过写入次序或有效数据数目来限定。具体地,控制器10 执^f亍下面的处理(a)或处理(b)。
(a) .控制器10从分配给第二存储器区12的块当中选择具有最旧的 写入次序的块。所选择的块中所包含的每个页单位数据被合并为块单位数 据,然后将被写入第三存储器区13中。在这种情况下,控制器10管理第 二存储器区12中的块的写入次序。写入次序信息被存储在例如控制器10 中、非易失性半导体存储器中或其他存储器单元中。
(b) .控制器IO针对第二存储器区12中的每个块,对通过按照块单 位("大单位")大小排列块中的页单位("小单位")大小的有效数据 的逻辑地址而计算得出的逻辑地址范围中的第二存储器区12中所存储的 页单位数据的数目进行求和。控制器10选择具有最大求和值的块,并且该 块中的每个有效数据被合并为块单位数据并被写入第三存储器区13中(步 骤ST1至步骤ST8 )。
下面,描述情况"(b)"。
1. 例如,如图16所示,控制器10按照块单位的大小排列与分配给第 二存储器区12的每个块中的页单位大小的有效数据相关联的逻辑地址LA
(步骤ST1)。
2. 控制器10针对按照块单位大小所排列的每个逻辑地址范围,对第 二存储器区12中所存储的有效数据的数目进行计数(步骤ST2 )。块单位 大小的逻辑地址范围X1、 X2和X3中的有效数据的数目分别为3, 2和1。
3. 控制器10针对第二存储器区12中的每个块,对步骤ST2处所计数 的有效数据的数目进行求和(步骤ST3 )。控制器10并不对逻辑地址重叠的有效数据进行双重计数。
对于第二存储器区12中的块Yl,块Y1中的有效数据为al和a4。有 效数据al ,皮包含在块单位大小的逻辑地址范围XI中。在逻辑地址范围 XI中,在第二存储器区12中有三个有效数据al、 a2和a3。
有效数据a4被包含在块单位大小的逻辑地址范围X2中。在逻辑地址 范围X2中,第二存储器区12中有两个有效数据a4和a6。
结果,对于第二存储器区12中的块Y1,在物理地址范围Yl中包含 有效数据al和a4的逻辑地址范围X1和X2中的有效数据的总数目是5。
对于块Y2,在物理地址范围Y2中包含有效数据a2和a3的逻辑地址 范围XI中的有效数据的总数目是3。
对于块Y3,在物理地址范围Y3中包含有效数据a6和a9的逻辑地址 范围X2和X3中的有效数据的总数目是3。
4. 控制器10选择块单位大小的这样的逻辑地址范围中的有效数据, 该逻辑地址范围包含其中在步骤ST3处求和的总数目为最大的块中所存储 的有效数据。
在图16的情况下,块单位大小的逻辑地址范围XI和X2中的有效数 据al、 a2、 a3、 a4和a6 (其包含具有最大总数目的物理地址范围Yl中的 有效数据)将被写入第三存储器区13中。
下面的描述示出这样的处理,该处理用于将所选择的块中的页单位数 据合并为一个块单位的数据,并用于将该块单位数据写入第三存储器区13 中。重复下面的处理,直到所选择的块中的所有页单位数据都被写入第三 存储器区13中。
5. 控制器10搜寻图7或图8的物理块管理表,并获得"空闲"块作 为写入数据的目的地。该空闲块被分配给第三存储器区13。控制器10将 图7或图8的物理块管理表的与所获得的空闲块相对应的条目更新为"第 三存储器区13 (现用)",并指示非易失性半导体存储器擦除所获得的空 闲块中的数据(步骤ST5)。
6. 控制器10将页单位数据合并为块单位数据。具体地,控制器10从
43第一、第二和第三存储器区11、 12和13中收集通过按照块单位大小排列 页单位数据的逻辑地址而计算得出的逻辑地址范围中所包含的有效数据 (步骤ST6)。
控制器10搜寻图3的高速緩冲存储器管理表。如果检测到这样的条目, 该条目对应于按照块单位大小排列的逻辑地址范围中所包含的页单位数据 的逻辑地址,那么控制器IO从第一存储器区11中读出在该条目中具有扇 区标志"1"的所有的扇区单位数据。
对于包含了并非从第一存储器区11中读出的有效数据的逻辑地址范 围,控制器IO搜寻图4或图5的页管理表。如果检测到这样的条目,该条 目对应于与所述逻辑地址范围相关联的页单位数据的逻辑地址,那么控制 器IO从第二存储器区12中读出有效数据,该有效数据并非从第一存储器 区11中读出,且被包含在与该条目中所记录的物理地址相对应的页单位数 据中。
对于包含了并非从第一和第二存储器区11和12中读出的有效数据的 逻辑地址范围,控制器IO搜寻图6的块管理表。在检测到与按照块单位大 小排列的逻辑地址相对应的条目后,控制器IO从第三存储器区13中读出 有效数据,该有效数据并非从第一和笫二存储器区11和12中读出,且被 包含在与该条目中所记录的物理地址相对应的块单位数据中。
从第一存储器区ll、第二存储器区12、和/或第三存储器区13读出的 有效数据所暂时存储到的目的地是第一存储器区11的工作区或控制器10 的主存储器;然而,并不限于此。
7.在完成组成块单位数据的所有扇区单位数据之后,控制器10指示 非易失性半导体存储器将块单位数据写入被选择作为写入数据的目的地的 空块中(步骤ST7)。
在图15的流程图中,步骤ST5可以被安排为紧接在步骤ST7之前。 在这种情况下,控制器10可以在判定将要写入第三存储器区13中的数据 之后,将"空闲"块分配给笫三存储器区13。
在写入块单位数据之后,控制器10在块管理表中的与块单位大小的逻辑地址范围相对应的条目中,将块的物理地址登记作为写入数据的目的地。 如果在登记新物理地址之前所选择的条目中已经存储有一物理地址,
那么控制器10改写该物理地址。由旧物理地址所指示的块中所存储的旧数
据变成无效数据。
8.控制器10将这样的条目无效化,所述条目对应于从第一、第二和 第三存储器区ll、 12和13收集的写入数据(步骤ST8)。
控制器10更新图3的高速緩沖存储器管理表。使对应于写入数据的条 目无效,并将其释放用于来自主机设备的输入数据。
随后,控制器10扫描图7或图8的物理块管理表和图6的块管理表, 并执行释放处理,该释放处理用于将其中块单位数据为无效的"现用,,块 设定为"空闲"块。
具体地,将对应于这样的块的条目设定为"空闲",该块在物理块管 理表中被设定为"现用"并且不由块管理表中的物理地址所指示。
同样地,如果在图4或图5的页管理表中存在与块单位大小的写入数 据的逻辑地址范围中所包含的逻辑地址相对应的条目时,使该条目为无效 状态。基于第二存储器区12中所存储的数据向第三存储器区13的传输, 为了无效化第二存储器区12中所存储的数据以防止参考,执行这样的处 理。
进一步地,在第二存储器区12中,控制器IO将其中所有页单位数据 都是无效数据的"现用,,块设定为"空闲"块。在图8的配置中,释放用 于存储页可用性的区。
D.其他
在由主机设备指定的预定时间处,除了上述描述之外,还可以执行从 第一存储器区11向第二存储器区12和/或笫三存储器区13的数据传送处 理,以及从第二存储器区12向第三存储器区13的数据传送处理。
例如,如果半导体存储装置接收到高速緩冲存储器清理(flush )命令, 控制器10根据第一^Hf执行从第一存储器区11向第二存储器区12和/或 第三存储器区13的数据传送。(3) 系统实例
图17示出才艮据第二基本配置的系统实例。
根据本实施例,主机设备31执行与半导体存储装置32的数据传送。 主机设备31例如是诸如笔记本计算机的个人计算机。半导体存储装置32 例如是SSD,其作为次级存储装置安装在主机设备31中。
半导体存储装置32包括第一、第二和第三存储器区ll、 12和13,以 及控制这些存储器区的控制器10。第一存储器区11包含在诸如DRAM的 易失性半导体存储器21中,第二和第三存储器区12和13包含在诸如 NAND型闪速存储器的非易失性半导体存储器22中。
控制器10具有CPU和主存储器(用于存储程序、管理信息和工作区)。 基于高速緩沖存储器管理表、页管理表、块管理表和物理块管理表,控制 器10通过将逻辑地址转译为物理地址,来管理第一、第二和第三存储器区 11、 12和13中的数据位置。
来自主机设备31的数据通过主机I/F (接口 ) 23而被输入到半导体存 储装置32中。主机设备31通过扇区单位执行对半导体存储装置32的存取。
图18示出来自主机设备31的数据的流动。
如上述处理方法中所述,来自主机设备31的数据被存储在第一存储器 区11中,之后根据第一条件将被传送到第二存储器区12或第三存储器区 13。此外,存储在第二存储器区12中的数据根据第二条件而被传送到第三 存储器区13。
第二存储器区12中的块和第三存储器区13中的块并不具有一对一的 对应关系。基于物理块管理表,非易失性半导体存储器22的多个块中的一 部分被用作第二存储器区12,另一部分被用作第三存储器区13。
(4) 操作实例
通过参考图18比较写入效率来描述本实施例的操作实例。同时,描述 对管理表的大小的分析。 A.写入效率的比较
在下面的描述中,假定易失性半导体存储器21为DRAM,并假定非
46易失性半导体存储器22为NAND型闪速存储器。假定NAND型闪速存储 器的块单位大小和页单位大小分别为512kB和4kB,并假定来自主机设备 的扇区单位的大小为512B。假定第一条件中限定的预定阈值("数据的数 目,,或"数据量")为NAND型闪速存储器中的块单位大小的50°/。(256kB)。 考虑下面的处理在块单位数据X被存储在第三存储器区13中的状 态下,更新块单位数据X的逻辑地址范围中所包含的l个扇区单位的数据 Y,之后,将数据Y写入第二存储器区12或第三存储器区13以成为非易 失性数据。从主机设备31观察,当数据Y已被存储在第二存储器区12或第三存 储器区13中时,使块单位数据X的逻辑地址范围中所包含的扇区单位数 据Y为已更新状态。(a).操作实例1当在第一存储器区11中不存在数据的初始状态下将数据Y写入笫一 存储器区ll中时,结果,在第一存储器区11中的包含数据Y的块单位大 小的整个逻辑地址范围内(该逻辑地址范围等于数据X的逻辑地址范围) 仅存在扇区单位的数据Y (512B)。控制器10可以通过搜寻高速緩冲存 储器管理表来检测数据量。上述大小512B小于在第一条件中被限定为预定阈值的256kB。控制器10将第一存储器区11中所存储的数据Y传送到第二存储器区 12作为通过按照页单位大小排列数据Y的逻辑地址而计算得出的整个逻 辑地址范围内的页单位数据(下文中称为数据P)。由于扇区单位数据Y的大小小于页单位的大小,需要从例如第三存储 器区13读出遗漏数据,以完成页单位数据P。控制器10按照块单位大小排列数据P的逻辑地址,以在所排列的逻 辑地址(其等于数据X的逻辑地址)处搜寻块管理表。如果检测到与逻辑地址相对应的条目,控制器10检查存储数据X处 的物理地址。控制器10从第三存储器区13中的数据X将与数据P的逻辑地址范围相对应的页单位数据读出到易失性半导体存储器21,并通过在那里写入数 据Y来创建数据P的图像。控制器10将包含扇区单位数据Y的页单位数据P写入第二存储器区 12中的空页中,并更新高速緩沖存储器管理表、页管理表和块管理表。写 入第二存储器区12中的数据Y变为非易失性数据。当连续地写入与数据Y具有相同大小的数据时,由于1个块单位是由 128个页单位构成的,所以半导体存储装置32擦除一个块单位数据,用于 128个扇区单位的数据的更新(用于128个页的写入)。在这种情况下,写入效率为512kB/( 512B x 128 ) =8,与不使用本实 施例的情况(512kB/512B-1024)相比,写入效率得到改善。在该实例中, 更新l个扇区单位数据;然而,如果更新一个页单位数据,写入效率会进 一步得到改善。在如上所给出的专利文献的技术中,数据块和日志块具有一对一的对 应关系,因此,例如,如果更新分别属于不同块的128个扇区的数据,就 要求擦除128个块。替代地,在该实施例中,第二存储器区12中的块和第三存储器区13 中的块不具有一对一的对应关系。因此,即使更新不同块中所存储的多个 扇区单位数据,替代数据也可以被存储在第二存储器区12的同一块中,在 这种情况下的数据擦除量仅仅为一个块单位的大小。 (b).操作实例2假定这样的初始状态,其中通过按照块单位大小排列数据Y的逻辑地 址而计算得出的逻辑地址范围(该逻辑地址范围等于数据X的逻辑地址范 围)中所包含的384kB的替代数据已经被写入第一存储器区11中。在该初始状态下,当在数据X的逻辑地址范围中所包含的且并没有存 储在第一存储器区11中的扇区单位数据Y被写入第一存储器区11中时, 在数据X的逻辑地址范围中存在包含数据Y的(384kB + 512B)的数据。 控制器10可以通过搜寻高速緩冲存储器管理表来检测数据量。上述大小(384kB + 512B)不小于在第一条件中净皮限定为预定阈值的256kB。控制器10将存储在第一存储器区11中的包含数据Y的(384kB + 512B)的数据传送到第二存储器区13中作为通过按照块单位大小排列数 据Y的逻辑地址而计算得出的整个逻辑地址范围内的块单位数据(下文中 称为数据B)。由于扇区单位数据Y的大小小于块单位的大小,需要从例如第三存储 器区13读出遗漏数据,以完成块单位数据B。控制器10在数据B的逻辑地址(其等于数据X的逻辑地址)处搜寻 块管理表,以检测存储数据X处的物理地址。控制器10从第三存储器区 13将数据X读出到易失性半导体21 ,并通过在那里写入数据Y来创建数 据B的图像。控制器10擦除"空闲"块中的数据,并将已擦除的空闲块分配给第三 存储器区13。包含扇区单位数据Y的块单位数据B被写入该块中。更新 高速緩沖存储器管理表和块管理表。据此,写入第三存储器区13中的扇区 单位数据Y变为非易失性数据。在这种情况下,半导体存储装置32擦除一个块单位数据,用于大约 384kB (384kB + 512B)的数据的更新。因此,写入效率为512kB/384kB = 1.33,与通过扇区单位更新大约 384kB的数据的情况(512kB/512B = 1024 )相比,写入效率得到改善。在该实例中,更新大约384kB的数据;然而,如果数据大小变得更加 接近作为块单位大小的512kB,写入效率可进一步得到改善。B.管理表的大小如果以"小单位"管理非易失性半导体存储器,控制器10可以执行对 数据写入位置的精细控制,而不考虑来自主机设备31的数据大小或数据 量,写入效率可以得到改善。然而,用于执行地址转译的管理数据成为;f艮 大的大小,从而劣化控制器IO中的处理效率。在本实施例中替代地,采用两种管理单位"小单位"和"大单位"。 通过根据数据管理分辨率来使用管理表,控制器10抑制了以"小单位"管理的数据的数目的增加。因此,根据该实施例的半导体存储装置32防止管 理表大小的增加,并实现高写入效率。 (5)其他
对于第二和第三存储器区12和13,除了该实施例的处理之外,还可 以执4亍下面的处理。
A. 第二存储器区的压紧
当第二存储器区12中的无效数据的数目增加时,并且当不具有处于 "写入允许,,状态的页的块的数目增加时,如图19所示,控制器10可以 仅收集有效数据,并将这些有效数据复制到空闲块。
结果,可以释放其中原本存储有效数据的块,从而减小第二存储器区 12中的无效数据的数目,并增加空闲块的数目。该处理被称为第二存储器 区12的压紧,其是基于将有效数据收集并复制到空闲块(压紧块)。
通过压紧能够进一步改善写入效率。然而,在本实施例中,在类似的 情况下,从第二存储器区12到第三存储器区13的数据传送处理可以被上 述压紧所代替,因此,压紧是辅助处理。
例如,控制器10为第二存储器区12中每个块计算"小单位"的无效 数据的数目。控制器10按照无效数据的数目的降序顺序地选择块,由此, 所选择的块中的有效数据被复制到已擦除的空闲块中。将被有效数据填充 的块分配给第二存储器区12。
例如,在第二存储器区12中所包含的无效数据的总数目变得大于预定 阈值的情况下执行上述压紧。
B. 第三存储器区的压紧
可以在第三存储器区13中的数据管理单位("大单位")的大小小于 块单位大小的情况下应用第三存储器区13的压紧。
当第三存储器区13中的无效数据的数目增加时,并且当不具有处于 "写入允许"状态的页的块的数目增加时,如图19所示,控制器10可以 仅收集有效数据,并将这些有效数据复制到空闲块。
结果,可以释放其中原本存储有效数据的块,从而减小第三存储器区13中的无效数据的数目,并增加空闲块的数目。该处理被称为第三存储器 区13的压紧,其是基于将有效数据收集并复制到空闲块(压紧块)。
例如,控制器10为第三存储器区13中的每个块计算"大单位"的无 效数据的数目。控制器10按照无效数据的数目的降序顺序选择块,由此, 所选择的块中的有效数据被复制到已擦除的空闲块中。将被有效数据填充 的块分配给第三存储器区13。
例如,在第三存储器区13中所包含的无效数据的总数目变得大于预定 阈值的情况下执行上述压紧。
3.总结
根据本实施例,不管来自主机设备的数据大小或数据量如何,下面的 配置可以实现写入效率的改善,并防止性能劣化和寿命缩短。
存储位置的分配
半导体存储装置包括第一存储器区,其被配置在易失性半导体存储 器中,通过第一单位或更小的单位执行数据写入,该第一单位是对半导体 存储装置的存取单位;笫二和第三存储器区,其被配置在非易失性半导体 存储器中,通过第二单位执行数据写入,并通过第三单位执行数据擦除, 其中第三单位是第二单位的两倍或更大的自然数倍;以及控制器,其执行 下面的处理。
控制器执行第一处理,用于通过第一单位将多个数据存储在第一存 储器区中;第二处理,用于通过第一管理单位将从第一存储器区输出的数 据存储在第二存储器区,该第一管理单位是第一单位的两倍或更大的自然 数倍且小于第三单位;第三处理,用于通过第二管理单位将从第一存储器 区输出的数据存储在第三存储器区中,该第二管理单位是第一管理单位的 两倍或更大的自然数倍。
从第二存储器区到第三存储器区的数据传送(碎片整理)
控制器还执行第四处理,用于选择将要从第二存储器区输出的第一 管理单位的数据;以及
第五处理,用于通过第二管理单位将包含所选择的数据的数据存储在第三存储器区中。
共享存储器
第二和第三存储器区共享同 一非易失性半导体存储器,并且控制器将 第三单位的区分别分配给第二和第三存储器区。
'分配务frl(第一存储器区中的数据的数目)
控制器通过使将要从第 一存储器区输出的数据的逻辑地址排列成第二 管理单位来计算逻辑地址范围,对包含在该逻辑地址范围中并存储在第一 存储器区中的数据的数目进行计数,如果数据的数目小于预定阈值,则执 行第二处理,而如果数据的数目为预定阈值或更大,则执行第三处理。
分配条件2(第一和第二存储器区中的数据的数目) 控制器通过使将要从第 一存储器区输出的数据的逻辑地址排列成第二 管理单位来计算逻辑地址范围,对包含在该逻辑地址范围中并存储在第一 和第二存储器区中的数据的数目进行计数,如果数据的数目小于预定阈值,
则执行第二处理,而如果数据的数目为预定阈值或更大,则执行第三处理。
碎片整理的触发
如果第二存储器区中所存储的多个有效和无效数据所占据的第三单位 的区的数目超过可允许的范围,则控制器执行第四和第五处理。 '碎片整理条件1(旧数据)
在第四处理中,控制器检测在第二存储器区中具有最旧的写入次序的 第三单位的区,并选择在该第三单位的区中所存储的第一管理单位的每个 有效数据。
'碎片整理M2 (有效数据)
在第四处理中,控制器针对第二存储器区中的第三单位的每个区,通 过将有效数据的逻辑地址排列成第二管理单位而计算逻辑地址范围,对包 含在该逻辑地址范围中且存储在第二存储器区中的有效数据的数目进行计 数,针对第二存储器区中的第三单位的每个区对有效数据的数目进行总计,
检测具有最大总数目的第三单位的区,并选择该第三单位的区中所存储的 第一管理单位的每个有效数据。 碎片整理*3 (无效数据)
在第四处理中,控制器针对第二存储器区中的第三单位的每个区对无
效数据的数目进行计数,检测具有最小的无效数据数目的第三单位的区,
并选择该第三单位的区中所存储的第一管理单位的每个有效数据。 .第二存储器区中的数据管理单位小
第二单位是第一管理单位的两倍或更大的自然数倍。
第二存储器区中的数据管理单位大
第一管理单位是第二单位的两倍或更大的自然数倍,而第三单位是第 一管理单位的两倍或更大的自然数倍。
第三存储器区中的数据管理单位小 第三单位是第二管理单位的两倍或更大的自然数倍。
第三存储器区中的数据管理单位大 第二管理单位是第三单位的两倍或更大的自然数倍。
第二存储器区的无效化
在第二处理中,控制器将第一管理单位的新数据写入第二存储器区中 的第二单位的空区中,如果新数据的逻辑地址对应于旧数据的逻辑地址, 则将第二存储器区中所存储的旧数据设定为无效,将新数据视为有效数据 (有效数据优先于旧数据),并将旧数据视为无效数据(通过参考新数据, 该无效数据被忽略)。
第二存储器区的压紧
控制器判断第二存储器区中的无效数据的数目是否超过预定阈值,针 对第二存储器区中的第三单位的每个区对无效数据的数目进行计数,按照
从具有最大的无效数据数目的区开始的次序选择第三单位的区中的有效数 据,将所选择的有效数据重写入第三单位的第一区中,第一区是空的,在 将所选择的有效数据重写入其中之后将该第一区分配给第二存储器区,并 释放第二存储器区中的第三单位的第二区,通过将所选择的有效数据重写 入第一区中,该第二区不具有有效数据。
第三存储器区的无效化在第三处理中,控制器将第二管理单位的新数据写入第三存储器区中 的第三单位的空区中,如果新数据的逻辑地址对应于旧数据的逻辑地址, 则将第三存储器区中所存储的旧数据设定为无效,将新数据视为有效数据 (有效数据优先于旧数据),并将旧数据视为无效数据(通过参考新数据, 该无效数据纟皮忽略)。
第三存储器区的压紧
控制器判断第三存储器区中的无效数据的数目是否超过预定阈值,针 对第三存储器区中的第三单位的每个区,对第二管理单位的无效数据的数 目进行计数,按照从具有最大的无效数据数目的区开始的次序选择第三单 位的区中的有效数据,将所选择的第二管理单位的有效数据重写入第三存 储器区中的第三单位的空区中,并释放第三单位的区。第二管理单位小于 第三单位。
4. 应用实例
根据本实施例的半导体存储装置可以应用于例如SSD,该SSD用作诸 如笔记本计算机的个人计算机中的次级存储装置。稍后描述这种情况下的 具体实例。
5. 结论
才艮据该实施例,不管来自主机设备的数据大小或数据量如何,使用其 中规定了擦除、读取和写入的单位的非易失性半导体存储器的半导体存储 装置可以实现写入效率的改善,并防止性能劣化和寿命缩短。
本发明不限于上述实施例,可以在不偏离本发明的精神和范围的情况 下对组成要素进行修改和体现。通过适当地组合上述实施例中所公开的多 个组成要素,可以形成各种发明。例如,可以从实施例中所公开的所有组 成要素中省略几个组成要素,或者不同实施例内的组成要素可以彼此适当 地组合。 1.概述
小节I.中描述的压紧基于无效数据的擦除而在存储区的有效利用方面非常优异。然而,压紧需要将相同数据写入其它块的复制操作,因此,会 产生这样的副作用,即,当立即更新经受了压紧的有效数据时,块的擦除 计数增加。
通过压紧而新使用的块被有效数据填充;然而,当更新经受了压紧的 数据时,数据变为无效数据。此外,当块中的无效数据的数目增加时,块 中的有效数据再次变得要经受压紧。结果,块的擦除计数会增加。
根据以上配置,将要经受压紧的数据优选具有低的更新频率,这需要 用于区分数据的装置。
基于上述知识,在本实施例中,提供用于区分具有高更新频率的数据 和具有低更新频率的数据的装置,具有低更新频率的数据成为将要经受压 紧的目标,从而防止立即更新将要经受压紧的数据。根据该配置,减小了 块的擦除计数,以防止存储器基元的劣化。
作为具体配置,提供下面的存储器区。
在易失性半导体存储器中的第一存储器区,其通过第一单位或更小 的单位执行数据读取和写入;
-在非易失性半导体存储器中的由第三单位的区构成的第二存储器区, 其通过第二单位执行数据读取和写入并通过第三单位执行数据擦除,且以 "小单位(第一管理单位),,进行管理,该"小单位"的大小为第一单位 的大小的自然数倍;
-在非易失性半导体存储器中的由第三单位的区构成的第三存储器区, 其通过第二单位执行数据读取和写入并通过第三单位执行数据擦除,且以 "大单位(第二管理单位)"进行管理,该"大单位,,的大小为"小单位,, 的大小的两倍或更大的自然数倍且为第三单位的大小的自然数倍;以及
-在非易失性半导体存储器中的由第三单位的区构成的第四存储器区, 其通过第二单位执行数据读取和写入并通过第三单位执行数据擦除,且以 "小单位,,进行管理,该"小单位"的大小为第一单位的大小的自然数倍。 第四存储器区用作用于区分具有高更新频率的数据和具有低更新频率 的数据的装置。粗略地说,除了小节I.中描述的基本配置之外,还提供了第四存储器区,以区分具有高更新频率的数据和具有低更新频率的数据。
第一单位的多个数据被写入第一存储器区中,然后将被写入第三存储
器区或第四存储器区中。第四存储器区具有FIFO (先进先出)结构。当 用于第四存储器区的第三单位的"现用,,区的数目变得大于允许范围时,
将这样的有效数据传送到第四存储器区作为"大单位"数据,该有效数据 满足第三条件且存储在第二存储器区中的具有最旧的分配次序的第三单位 的区中。
在第二存储器区中的具有最旧的分配次序、包含有效数据且不满足第 三条件的第三单位的区被移动到第二存储器区。当用于第二存储器区的第 三单位的"现用"区的数目变得大于允许范围,且满足第四条件时,选择 第二存储器区中的有效数据并将所述有效数据复制到第三单位的空区中。
将被有效数据填充的第三单位的区分配给第二存储器区(压紧)。
在第二存储器区中将要经受压紧的目标成为具有低更新频率的数据的
原理:^下所述。
由于第四存储器区具有第三单位的FIFO结构,输入到第四存储器区 中的数据在第四存储器区中停留特定的周期。因此,在第四存储器区中更 新具有高更新频率的数据。当更新数据时,旧数据成为无效数据,并且由 于替代数据被新输入到第四存储器区,因此具有高更新频率的数据停留在 第四存储器区中而不被输出。
使得第二存储器区中的有效数据成为将要经受压紧的目标,并使得第 四存储器区中的有效数据不成为将要经受压紧的目标,从而可以使得具有 低更新频率的数据成为将要经受压紧的目标。结果,有可能防止作为压紧 的副作用的对块的擦除计数的增加。
2.实施例 (1)第一实施例
图20示出根据第一实施例的半导M储装置。
第一存储器区11暂时存储来自主机设备的数据。数据通过扇区单位 (第一单位)或更小的单位被写入第一存储器区11中。第一存储器区11,皮配置在诸如DRAM的易失性半导^储器中。
第二存储器区12由非易失性半导体存储器22中的块构成。在非易失 性半导体存储器22中, 一次执行读取/写入的单位是页(第二单位),一 次执行擦除的单位是块(第三单位)。块单位的大小是页单位的大小的自 然数倍。第二存储器区12通过与页单位相等的"小单位"存储数据。
第三存储器区13由非易失性半导体存储器22中的块构成,并通过与 块单位相等的"大单位"存储数据。
第四存储器区14由非易失性半导M储器22中的块构成,并通过与 页单位相等的"小单位"存储数据。
假定第一存储器区11的存储容量大于非易失性半导体存储器22中的 一个块单位的大小,并且假定非易失性半导体存储器22的存储容量大于被 提供为半导体存储装置(例如,SSD)的产品规格的存储容量。
如下将非易失性半导体存储器22的存储容量分配给第二、第三和第四 存储器区12、 13和14。
将等于或大于被提供为半导体存储装置的产品恥格的存储容量的存储 容量分配给第三存储器区13。
将通过从非易失性半导体存储器22的存储容量减去第三存储器区13 的存储容量而剩余的存储容量分配给第二和第四存储器区12和14。第二 和第四存储器区12和14的每个存储容量与它们之间的比例并不受限制。
例如,第二、第三和第四存储器区12、 13和14由诸如NAND型闪速 存储器的非易失性半导体存储器22中的一个或多个块构成。
代表数据的大小的第一、第二和第三单位不包括冗余数据(ECC,内 部控制标志等等),该冗余数据在半导体存储装置中被添加到来自主机设 备的主数据。
通常,包含诸如NAND型闪速存储器的非易失性半导体存储器的系统 在将冗余数据添加到主数据的状态下执行读取/写入。但是,为了简化解释, 如上所述地假定每个单位。
控制器10具有CPU和主存储器,并可以操作用于执行数据管理的程序。在本实施例中,通过控制器IO实现的功能可以作为硬件和软件的任何
一者或两者的组合来执行。这些功能是作为硬件或是软件来执行取决于实 际实施例或对整个系统施加的设计约束。
当控制器10的主存储器由诸如DRAM的易失性半导体存储器构成 时,第一存储器区11可以被配置在控制器10的主存储器中。
控制器10包括高速緩冲存储器管理表、页管理表、块管理表、页FIFO 管理表以及物理块管理表,以管理来自主机设备的通过逻辑地址存取的数 据被存储在第一、第二、第三和第四存储器区ll、 12、 13和14的何处。 在半导体存储装置的操作期间,这些管理表被扩展到控制器10的主存储器上。
—高速緩冲存储器管理表-
图21示出高速緩沖存储器管理表的实例。
高速緩沖存储器管理表通过与页单位相等的"小单位"控制在图20 的第一存储器区11中所存储的数据。通过扇区单位执行对有效数据的控 制。
假定为第一存储器区11中的一个页单位的一个区分配一个条目。
假定条目的数目为在第一存储器区11内可以包含的页单位数据的数 目,也就是,不大于(第一存储器区11的总容量)/ (页单位的大小)。
页单位数据的逻辑地址、第一存储器区11的物理地址、以及指示出有 效数据在页单位的相关区中的位置的扇区标志与每个条目相关联。
在第一存储器区11中提供用于暂时存储与每个条目相对应的数据的 页单位的区,该区的物理地址存储在每个条目中。如果规定了与条目相对 应的区的物理地址,例如如果页单位的区连续地排布,就不要求在条目中 存储物理地址。
将第一存储器区11中的页单位的每个区进一步划分为高速緩沖存储 器管理表中的扇区单位的区。通过将扇区标志的值设定为"1"或者"0" 来表示扇区单位的每个区中的数据状态。
在具有扇区标志'T,的区中,存储来自主机设备的有效数据。在具有扇区标志"0"的区中,不存储从主机设备写入的最新数据,从而将该区视 为无效区。其中所有扇区标志都为"0"的条目被认为是未使用的条目。
上述高速緩沖存储器管理表的配置是基于被称为全关联方法的控制方 法,在该方法中,为每个条目分配逻辑地址。然而,第一存储器区ll中的
逻辑地址和物理地址之间的对应关系可以通过n-路集合关联方法等等而进 行控制。
-页管理表-
图22示出页管理表的实例。
页管理表通过与页单位相等的"小单位"来控制在图20的第二和第四 存储器区12和14中所存储的数据。
假定为第二和第四存储器区12和14中的一个块分配一个条目。
为了登记处理中的块,假定条目的数目具有容许量,该容许量为在第 二和第四存储器区12和14内可以包含的块的数目,也就是,提供对(第 二和第四存储器区12和14的总容量)/(块单位的大小)的容许量的数目。
分配到第二存储器区12或第四存储器区14的块的物理地址与每个条 目相关联,并且块中的页单位数据的逻辑地址被记录在每个条目中。
页可用性被配置为能够为每个页区分"写入允许"状态(该存储区是 空的)和"写入禁止"状态(该存储区是无效的,这是因为已经在其中一 次写入旧数据,新数据被写入另一存储区中)。
-块管理表-
图23示出块管理表的实例。
块管理表通过与块单位相等的"大单位"来控制在图20的第三存储器 区13中所存储的数据。
假定为第三存储器区13中的一个块单位的一个区分配一个条目。
假定条目的数目为在第三存储器区13内可以包含的块单位数据的数 目,也就是,不大于(第三存储器区13的总容量)/ (块单位的大小)。
每个条目按照逻辑地址的次序进行排列。物理地址与每个条目相关联, 该物理地址与块单位数据的逻辑地址相对应且指定第三存储器区13中的块。
—页FIFO管理表-
图24示出页FIFO管理表的实例。
页FIFO管理表控制为图20的第四存储器区14分配的块中的数据。
假定为第四存储器区14中的一个块分配一个条目。
假定条目的数目为可以分配给第四存储器区14的块的数目,也就是, (第四存储器区14的总容量)/ (块单位的大小)。
第四存储器区14通过使用页FIFO管理表而以块单位的FIFO (先进 先出)结构进行管理。
与新分配给(输入到)第四存储器区14的块相对应的条目被添加到页 FIFO管理表的顶部(入口侧),并且原本登记在页FIFO管理表中的条目 逐一向后移位。
当条目的数目超过允许范围时,将这样的块从第四存储器区14输出, 该块具有最旧的分配次序且与页FIFO管理表的底部(出口侧)的条目相 关联。
-物理块管理表-
图25示出物理块管理表的实例。
物理块管理表控制非易失性半导体存储器22中的块的使用。
假定为第二、笫三和第四存储器区12、 13和14中的一个块(物理块) 分配一个条目。假定条目的数目为可以用作数据区的块的数目。
每个条目与块的物理地址相关联,并存储块的使用(存储区(块)是 用作第二、第三和第四存储器区(现用)还是未使用(空闲))。
描述图20的控制器10所执行的处理流程。
控制器10首先将来自主机设备的扇区单位(第一单位)数据写入第一 存储器区11中,并将数据在其中存储历时特定周期。对于该数据存储处理, 可适用小节I.中描述的"A.第一存储器区中的数据存储处理"。
基于预定M (与小节I.中描述的"B.从第一存储器区的数据输出处 理"的第一条件基^目同),控制器10区分在第一存储器区11中所存储的数据应该以"小单位(第一管理单位)"还是"大单位(第二管理单位)" 来进行管理。
"小单位,,的大小是页单位的大小的自然数倍,或者页单位的大小是 "小单位"大小的自然数倍。
"大单位"的大小是"小单位,,的大小的两倍或更大的自然数倍,同 时,是块单位的大小的自然数倍。
在该实施例中,为了简化解释,如下假定管理表中所使用的每个单位
作为在第二和第四存储器区12和14中的数据管理单位的"小单位" 的大小等于页单位(第二单位)的大小。作为在第三存储器区13中的数据 管理单位的"大单位"的大小等于块单位(第三单位)的大小。
然而,通过将页进行划分而对其进行控制,具体地,"小单位"的大 小可以是扇区单位的大小的自然数倍,且页单位的大小可以是"小单位,, 的大小的两倍或更大的自然数倍。
可替代地,集中地控制多个页,具体地,"小单位"的大小可以是页 单位大小的两倍或更大的自然数倍,且块单位的大小可以是"小单位"的 大小的两倍或更大的自然数倍。
同样地,通过将块进行划分而对其进行控制,具体地,"大单位"的 大小可以是"小单位"的大小的两倍或更大的自然数倍,且块单位的大小 可以是"大单位"的大小的两倍或更大的自然数倍。
可替代地,集中地控制多个块,具体地,"大单位"的大小可以是块 单位的大小的两倍或更大的自然数倍。
各个单位之间的上述关系可以被设定为下面的实例扇区单位(第一 单位) < "小单位" <页单位(第二单位) <块单位(第三单位)^ "大单位,,。
如果第一存储器区11中所存储的数据以"小单位"进行管理,则数据 被传送到第四存储器区14。如果第一存储器区11中所存储的数据以"大 单位"进行管理,则数据被传送到第三存储器区13。
该数据输出处理与小节I.中描述的"B.从第一存储器区的数据输出处 理,,基本相同。然而,与小节I.不同的是,"小单位"数据的目的地是第四存储器区14。
A,第四存储器区中的FIFO处理
如已经描述的,第四存储器区14具有块单位的FIFO结构。图26示 出第四存储器区14中的FIFO处理。
1. 控制器10参考页管理表中的与准备用于以附加方式写入数据的块 (下文称为用于页附加(page-append)的物理块)相对应的条目。控制器
IO将从第一存储器区11输出的数据作为与页单位相等的"小单位"的数 据而存储在用于页附加的物理块的写入允许状态的页中(步骤ST1)。
控制器10搜寻高速緩沖存储器管理表,并判断^L判定为将要输出的、 组成页单位数据的所有扇区单位数据是否存在于第一存储器区11中。
如果没有完成第一存储器区11中的所有扇区单位数据,控制器10从 第二、第三和第四存储器区12、 13和14收集遗漏数据。
在完成组成页单位数据的所有扇区单位数据之后,控制器10指示非易 失性半导体存储器22写入页单位数据。
2. 控制器10更新页管理表中这样的条目中所记录的逻辑地址,该条 目对应于其中已经写入页单位数据的页(步骤ST2)。在第二和第四存储 器区12和14中已被写入的相同逻辑地址范围中所包含的旧数据变为无效 数据。
3. 控制器10判断在用于页附加的物理块中是否存在空页(步骤ST3 )。 如果没有检测到空页,该处理转到步骤ST4。如果检测到空页,该处理返 回到步骤ST1。
4. 控制器10将页FIFO管理表的条目逐一向后移位,并将用于页附 加的物理块的物理地址添加到页FIFO管理表的顶部处的条目中(步骤 ST4)。结果,用于页附加的物理块被分配给第四存储器区14。
5. 控制器10针对这样的块执行下面的处理P1,该块具有最旧的分配 次序且与从页FIFO管理表溢出的、位于页FIFO管理表的底部处的条目 相关联(步骤ST5)。
B.处理P1图27示出处理Pl的流程图。1. 控制器IO搜寻图22的页管理表,并检测其中记录有从第四存储器 区14溢出的块的物理地址的条目(步骤ST1)。2. 控制器10规定在所述条目中所记录的页单位数据的逻辑地址(步 骤ST2)。下面的处理应用于每个逻辑地址。3. 控制器10按照与块单位相等的"大单位"的大小来排列页单位数 据的逻辑地址,并对页管理表中的按照块单位大小排列的逻辑地址范围中 所包含的逻辑地址的数目进行计数(步骤ST3)。顺便提及,"逻辑地址按照预定大小(例如页单位大小或块单位大小) 排列,,是指,逻辑地址被舍入到这样的地址,使得当逻辑地址被除以预定 大小时,余数是0。例如,通过将逻辑地址A按照大小S排列而计算得到 的地址为(A - (A除以S的余数))。类似地,"按照预定大小排列的逻辑 地址范围"是指,从通过将逻辑地址按照预定大小排列而计算得到的地址 开始的预定大小的范围。如果控制器10仅仅对具有在页FIFO管理表中所包含的物理地址的条 目中的逻辑地址数目进行计数,则获取在第四存储器区14中所存储的页单 位数据的数目。另一方面,如果控制器10不限制条目,则获取在第二和第 四存储器区12和14中所存储的页单位数据的数目。控制器10可以选择任 —条件。4. 控制器10判断在步骤ST3处计数的逻辑地址的数目是否为预定阈 值或更大(第三条件)。例如,预定阈值可以被设定为块单位("大单位,,) 的一个区中可存储的页单位("小单位")数据的总数目的50%(步骤ST4 )。如果在步骤ST3中计数的逻辑地址的数目小于预定阈值,该处理转到 步骤ST5。如果在步骤ST3中计数的逻辑地址的数目不小于预定阈值,该 处理转到步骤ST6。5. 控制器10不对页单位数据做任何处理。也就是,页单位数据停留 在从第四存储器区14溢出的块中(步骤ST5)。6. 控制器10将页单位数据传送到第三存储器区13,作为与块单位相等的"大单位,,大小的数据(步骤ST6)。控制器10通过从第一、第二、第三和第四存储器区ll、 12、 13和14 收集按照块单位大小排列的逻辑地址范围中所包含的有效数据而将页单位 数据合并为块单位数据(碎片整理)。在完成组成块单位数据的有效数据之后,控制器10指示非易失性半导 体存储器22将该块单位数据写入第三存储器区13的空块中。7. 控制器10使第一、第二、第三和第四存储器区11、 12、 13和14 中的包含在写入数据的逻辑地址范围中的数据无效(步骤ST7 )。如果块中的所有数据变为无效数据,那么控制器10释放该块,并在物 理块管理表中将该块的状态从"现用,,状态设定为"空闲"状态。8. 控制器10判断是否条目中的所有逻辑地址都已经被处理(步骤 ST8)。如果条目中所有逻辑地址都已经被处理,该处理完成。如果并非 条目中所有逻辑地址都被处理,该处理返回到步骤ST3。在完成处理P1之后,如果从第四存储器区14溢出的块中存留有有效 数据,控制器10在物理块管理表中将对应于该块的条目设定为"第二存储 器区12 (现用)"。在从第四存储器区14向第二存储器区12的数据传送中,控制器仅仅 更新页FIFO管理表和物理块管理表,而不指示非易失性半导体存储器22 读取/写入数据(移动处理)。如果在用于页附加的物理块中不存在空页,控制器10通过搜寻物理块 管理表获得空闲块。在擦除空闲块中的数据之后,该块被新分配给用于页 附加的物理块。控制器10搜寻页管理表中的未使用的条目。将与用于页附 加的物理块相对应的物理地址记录在未使用的条目中。根据块从第四存储器区14的移动,在第二存储器区12中以页单位管 理的块的数目增加。如果第二存储器区12中的块的数目超过允许范围,也 就是,被限定为第二存储器区12的容量的预定的块数目,控制器10通过 下面的过程执行压紧或执行从第二存储器区12向第三存储器区13的数据 传送处理。C.处理实例1图28示出处理实例1的流程图。1.控制器IO扫描页管理表,并对第二存储器区12中所存储的与页单 位相等的"小单位"的数据的数目(逻辑地址的数目)进行计数(步骤ST1 )。在步骤ST1,具有在页FIFO管理表中所包含的物理地址的条目以及 与用于页附加的物理块相对应的条目不是要扫描的目标。也就是,控制器 IO仅扫描第二存储器区13。2,控制器IO判断第二存储器区12中所存储的页单位的有效数据的总 数目是否不大于预定阈值(第四条件)。例如,预定阈值可以是第二存储 器区12中可存储的页单位数据的数目(步骤ST2)。如果有效数据的总数目大于预定阈值,由于第二存储器区12中的块的 数目不能通过压紧而减少到允许范围,该处理转到步骤ST3。如果有效数 据的总数目不大于预定阈值,该处理转到步骤ST6。3. 控制器10基于预定条件而选择第二存储器区12中的有效数据,并 将所选择的数据传送到第三存储器区13作为与块单位相等的"大单位,,的 数据(步骤ST3)。例如,预定条件可以与(小节I.中描述的)"C.从第 二存储器区到第三存储器区的数据传送处理"的第二条件基本相同。控制器10通it^第一、第二、第三和第四存储器区ll、 12、 13和14 收集按照块单位大小排列的逻辑地址范围中所包含的有效数据而将页单位 的有效数据合并为块单位数据(碎片整理)。在完成组成块单位数据的有效数据之后,控制器10指示非易失性半导 体存储器22将该块单位数据写入第三存储器区13的空块中。4. 控制器10使第一、第二、第三和第四存储器区11、 12、 13和14 中的包含在写入数据的逻辑地址范围中的数据无效(步骤ST4)。如果块中的所有痴:据变为无效数据,那么控制器10释放该块,并在物 理块管理表中将该块的状态从"现用"状态设定为"空闲,,状态。5. 控制器10判断第二存储器区12中的块的数目是否为被限定为第二 存储器区12的容量的预定的块数目或更少(步骤ST5)。如果第二存储器区12中的块的数目为净皮限定为第二存储器区12的容 量的预定的块数目或更少,该处理完成。如果第二存储器区12中的块的数 目大于被限定为第二存储器区12的容量的预定的块数目,该处理返回到步 骤ST1。6. 控制器10通过搜寻物理块管理表而获得空闲块。在擦除空闲块中 的数据之后,该块被分配给压紧块。控制器10在页管理表中搜寻未使用的 条目。压紧块的物理地址与未使用的条目相关联(步骤ST6)。7. 控制器IO在笫二存储器区12中以从具有最小数目的有效数据的块 开始的次序顺序地选择页单位的有效数据(步骤ST7)。所选择的有效数 据被复制到压紧块,并且页管理表的与压紧块相对应的条目中的逻辑地址 被更新为被复制的数据的逻辑地址。控制器IO通过将物理块管理表的该条目更新为"第二存储器区12(现 用)"而将4皮有效数据填充的压紧块分配给第二存储器区12。在步骤ST7(压紧),可以将被复制的数据的逻辑地址范围中所包含 的最新有效数据从第一存储器区11中读出,并用最新的有效数据改写被复 制的数据。使第一存储器区11中的成为被复制的数据的扇区单位数据变为 无效状态。8. 控制器10使得第二存储器区12中的与被复制的数据具有相同逻辑 地址的数据无效(步骤ST8 )。如果块中的所有数据变为无效数据,那么 控制器10释放该块,并在物理块管理表中将该块的状态从"现用"状态设 定为"空闲"状态。9. 控制器10判断第二存储器区12中的块的数目是否为被限定为第二 存储器区12的容量的预定的块数目或更少(步骤ST9)。如果第二存储器区12中的块的数目为被限定为第二存储器区12的容 量的预定的块数目或更少,该处理完成。如果第二存储器区12中的块的数 目大于被限定为第二存储器区12的容量的预定的块数目,该处理返回到步 骤ST6。D.处理实例2图29示出处理实例2的流^E图。1. 控制器10扫描页管理表,并选择具有最小的"小单位"(其等于 页单位)的有效数据的数目(逻辑地址的数目)的两个块(步骤ST1)。在步骤ST1,具有在页FIFO管理表中所包含的物理地址的条目以及 与用于页附加的物理块相对应的条目不是要扫描的目标。也就是,控制器 IO仅扫描第二存储器区13。2. 控制器IO判断页单位的有效数据的总数目是否不大于预定阈值(例 如,第三单位中所包含的第二单位的数目)(第四条件)(步骤ST2)。如果有效数据的总数目大于预定阈值,由于第二存储器区12中的块的 数目不能通过压紧而减少到允许范围,该处理转到步骤ST3。如果有效数 据的总数目不大于预定阈值,该处理转到步骤ST6。3. 控制器10基于预定条件选择第二存储器区12中的有效数据,并将 所选择的数据传送到第三存储器区13作为与块单位相等的"大单位"的数 据(步骤ST3)。例如,预定条件可以与(小节I.中描述的)"C.从笫二 存储器区到第三存储器区的数据传送处理,,的第二条件基4^目同。控制器10通it^第一、第二、第三和第四存储器区ll、 12、 13和14 收集按照块单位大小排列的逻辑地址范围中所包含的有效数据而将页单位 的有效数据合并为块单位数据(碎片整理)。在完成组成块单位数据的有效数据之后,控制器10指示非易失性半导 体存储器22将该块单位数据写入第三存储器区13的空块中。4. 控制器10使第一、第二、第三和第四存储器区11、 12、 13和14 中的包含在写入数据的逻辑地址范围中的数据无效(步骤ST4)。如果块中的所有数据变为无效数据,那么控制器10^^放该块,并在物 理块管理表中将该块的状态从"现用,,状态设定为"空闲"状态。5. 控制器10判断第二存储器区12中的块的数目是否为被限定为第二 存储器区12的容量的预定的块数目或更少(步骤ST5)。如果第二存储器区12中的块的数目为被限定为第二存储器区12的容 量的预定的块数目或更少,该处理完成。如果第二存储器区12中的块的数目大于被限定为第二存储器区12的容量的预定的块数目,该处理返回到步 骤ST1。
6. 控制器10通过搜寻物理块管理表而获得空闲块。在擦除空闲块中 的数据之后,该块被分配给压紧块。控制器10在页管理表中搜寻未使用的 条目。压紧块的物理地址与未使用的条目相关联(步骤ST6)。
7. 控制器10在第二存储器区12中以从具有最小的有效数据数目的块 开始的次序顺序地选择页单位的有效数据(步骤ST7)。所选择的有效数 据被复制到压紧块,并且页管理表中的与压紧块相对应的条目中的逻辑地 址-陂更新为,皮复制的数据的逻辑地址。
控制器10通过将物理块管理表的条目更新为"第二存储器区12 (现 用)"而将4皮有效数据填充的压紧块分配给第二存储器区12。
在步骤ST7 (压紧),可以将被复制的数据的逻辑地址范围中所包含 的最新有效数据从第一存储器区11中读出,并且用最新的有效数据改写被 复制的数据。使第一存储器区11中的成为被复制的数据的扇区单位数据变 为无效状态。
8. 控制器10使得在第二存储器区12中与被复制的数据具有相同逻辑 地址的数据无效(步骤ST8 )。如果块中的所有数据变为无效数据,那么 控制器10释放该块,并在物理块管理表中将该块的状态从"现用"状态设 定为"空闲"状态。
9. 控制器10判断第二存储器区12中的块的数目是否为被限定为第二 存储器区12的容量的预定的块数目或更少(步骤ST9)。
如果第二存储器区12中的块的数目为被限定为第二存储器区12的容 量的预定的块数目或吏少,该处理完成。如果第二存储器区12中的块的数 目大于被限定为第二存储器区12的容量的预定的块数目,该处理返回到步 骤ST6。
在处理实例2的步骤ST1中,尽管选择了具有最小的有效数据数目的 两个块,但是该数目并不限于两个,可以选择两个或更多个块。
此外,处理实例2的步骤ST2中的"预定阈值,,可以被设定为比所选择的块的数目小一的块中可存储的页单位数据的数目。
(2)第二实施例
图30示出根据第二实施例的半导体存储装置。 "小单位"的大小是页单位大小的自然数倍,或者页单位的大小是"小 单位"大小的自然数倍。
"大单位"的大小是"小单位,,的大小的两倍或更大的自然数倍,同 时,块单位的大小是"大单位,,的大小的两倍或更大的自然数倍。
然而,通过将页进行划分而对其进行管理,具体地,"小单位"的大 小可以是扇区单位的大小的自然数倍,页单位的大小可以是"小单位"的 大小的两倍或更大的自然数倍。
各个单位之间的上述关系可以被设定为下面的实例扇区单位(第一 单位) < "小单位" <页单位(第二单位) < "大单位" <块单位(第三单位)。
在笫二实施例中,轨道单位用作为"大单位,,。轨道单位的大小是页 单位的大小的两倍或更大的自然数倍,而块单位的大小是轨道单位的大小 的两倍或更大的自然数倍。
根据轨道单位的使用,执行使用轨道管理表和轨道FIFO管理表而不 是块管理表的数据管理。
如同第一实施例,为了简化解释,将页单位用作"小单位"。然而, 簇(cluster)单位可以用作"小单位,,。簇单位的大小是扇区单位的大小 的两倍或更大的自然数倍,页单位的大小是蔟单位的大小的两倍或更大的 自然数倍。稍后描述使用簇单位的数据管理。
第一存储器区11暂时存储来自主机设备的数据。通过扇区单位(第一 单位)或更小的单位将数据写入第一存储器区11中。第一存储器区11包 括在诸如DRAM的易失性半导体存储器中。
第二存储器区12由非易失性半导M储器22中的块构成。在非易失 性半导M储器22中, 一次执行读取/写入的单位是页(第二单位),一 次执行擦除的单位是块(第三单位)。块单位的大小是页单位的大小的自 然数倍。第二存储器区12通过与页单位相等的"小单位"存储数据。第三存储器区13由非易失性半导体存储器22中的块构成,并通过与 轨道单位相等的"大单位,,存储数据。
第四存储器区14由非易失性半导体存储器22中的块构成,并通过与 页单位相等的"小单位"存储数据。
第五存储器区15由非易失性半导体存储器22中的块构成,并通过与 轨道单位相等的"大单位"存储数据。
假定第一存储器区11的存储容量大于非易失性半导体存储器22中的 一个块单位的大小,并假定非易失性半导体存储器22的存储容量大于提供 为半导体存储装置(例如,SSD)的产品规格的存储容量。
如下将非易失性半导体存储器22的存储容量分配给第二、第三、第四 和第五存储器区12、 13、 14和15。
存储容量净皮分配给第三和第五存储器区13和15,使得第三和第五存 储器区13和15的总存储容量大于提供为半导体存储装置的产品恥格的存 储容量(例如,分配这样的容量,该容量比提供为半导体存储装置的产品 规格的存储容量大了大约1至5% )。
尽管第三和第五存储器区13和15之间的容量的比例并不受限制,但 是,例如,第三存储器区13的存储容量^皮i殳定为与提供为半导体存储装置 的产品规格的存储容量相同,而第五存储器区15的存储容量被设定为第三 存储器区13的存储容量的大约1至5%。
将通过从非易失性半导体存储器22的存储容量中减去第三和第五存 储器区13和15的存储容量而剩余的存储容量分配给第二和第四存储器区 12和14。第二和第四存储器区12和14的每个存储容量以及它们之间的比 例并不受限制。
例如,第二、第三、第四和第五存储器区12、 13、 14和15由诸如NAND 型闪速存储器的非易失性半导体存储器22中的一个或多个块构成。
在第二实施例中,除了在第一实施例中描述的第一、第二、第三和第 四存储器区ll、 12、 13和14之外,还通过对其分配一个或多个块而提供 第五存储器区。如同第一实施例中一样,代表数据大小的第一、第二和第三单位不包
括冗余数据(ECC、内部控制标志等等),该冗余数据在半导体存储装置 中被添加到来自主机设备的主数据。
控制器IO操作用于执行数据管理的程序。控制器10所实现的功能可 以作为硬件和软件的任何一者或两者的结合来执行。这些功能被执行为硬 件还是软件取决于实际实施例或对整个系统施加的设计约束。
当控制器10的主存储器由诸如DRAM的易失性半导体存储器构成 时,第一存储器区11可被配置在控制器10的主存储器中。
控制器10包括高速緩冲存储器管理表、页管理表、轨道管理表、页 FIFO管理表、轨道FIFO管理表以及物理块管理表,以管理从主机设备通 过逻辑地址存取的数据存储在第一、第二、第三、第四和第五存储器区11、 12、 13、 14和15的何处。
-高速緩冲存储器管理表-
图30的高速緩沖存储器管理表通过与页单位相等的"小单位"控制在 第一存储器区11中所存储的数据。通过扇区单位执行对有效数据的控制。
如同第一实施例中一样,图21中示出高速緩冲存储器管理表的配置。 由于在第一实施例中已经描述了高速緩冲存储器管理表,因此在此省略对 其的描述。
-页管理表-
图30的页管理表通过与页单位相等的"小单位,,控制在第二和第四存 储器区12和14中所存储的数据。
如同第一实施例中一样,图22中示出页管理表的配置。由于在第一实 施例中已经描述了页管理表,因此在此省略对其的描述。
-轨道管理表-
图31示出轨道管理表的实例。
轨道管理表通过与轨道单位相等的"大单位"来控制在第三和第五存 储器区13和15中所存储的数据。
假定为第三和第五存储器区13和15中的一个块分配一个条目。
71为了登记处理中的块,假定条目的数目具有容许量,该容许量为在第
三和第五存储器区13和15内可以包含的块的数目,也就是,提供对(第 三和第五存储器区13和15的总容量)/(块单位的大小)的容许量的数目。
分配到第三存储器区13或第五存储器区15的块的物理地址与每个条 目相关联,并且块中的轨道单位数据的逻辑地址被记录在每个条目中。
页可用性^皮配置为能够为轨道单位的区中的页区分"写入允许"状态 (该存储区是空的)和"写入禁止"状态(该存储区是无效的,这是因为 已经在其中一次写入旧数据,新数据被写入另一存储区中)。
在该实例中,通过块单位配置条目;然而,为了从数据的逻辑地址高 速搜寻块的物理地址,可以通过以逻辑地址的次序排列的轨道单位来配置 轨道管理表的条目。
-页FIFO管理表-
图30的页FIFO管理表控制分配给第四存储器区14的块中的数据。 如同第一实施例中一样,图24中示出页FIFO管理表的配置。由于在 第一实施例中已经描述了页FIFO管理表,因此在此省略对其的描述。 -轨道FIFO管理表-图32示出轨道FIFO管理表的实例。
轨道FIFO管理表控制分配给第五存储器区15的块中的数据。
假定为第五存储器区15中的一个块分配一个条目。假定条目的数目为 可以分配给第五存储器区15的块的数目,也就是,(第五存储器区15的 总容量)/ (块单位的大小)。
第五存储器区15通过使用轨道FIFO管理表以块单位的FIFO (先进 先出)结构进行管理。
与新分配给(输入到)第五存储器区15的块相对应的条目被添加到轨 道FIFO管理表的顶部(入口侧),并且原本登记在轨道FIFO管理表中 的条目逐一向后移位。
当条目的数目超过允许范围时,将这样的块从第五存储器区15输出, 该块具有最旧的分配次序且与轨道FIFO管理表的底部(出口侧)处的条目相关联。
-物理块管理表-
图33示出物理块管理表的实例。
物理块管理表控制非易失性半导体存储器22中的块的使用。 假定为一个块(物理块)分配一个条目。假定条目的数目为可以用作 数据区的块的数目。每个条目与块的物理地址相关联,并存储块的使用(存 储区(块)是用作笫二、第三、第四和第五存储器区(现用)还是未使用 (空闲))。
描述图30的控制器10所执行的处理流程。
第一存储器区11中所存储的数据被分类为"小单位"或"大单位", "并且小单位"数据被输出到第四存储器区14。第四存储器区14中的FIFO 处理的操作与第一实施例中的相同。
也就是,第四存储器区14中的FIFO处理与图26的流程相同。适用 于从第四存储器区14溢出的块的处理与图27的流程基本相同(然而,"大 单位,,数据的目的地是第五存储器区15)。
根据该配置,如图28或29的流程所示,在第二存储器区12中将要经 受压紧的目标是从第四存储器区12中输出的具有低更新频率的数据,并且 擦除计数得以减小以防止存储器基元的劣化。
然而,在第二实施例中,被判定为从第一存储器区ll作为"大单位,, 数据输出的数据以及被判定为从第二和第四存储器区12和14作为"大单 位"数据输出的数据被划分为具有高更新频率的数据和具有低更新频率的 数据。仅用于具有低更新频率的数据的技术为在原理中描述的将要经受压 紧的目标。
在该实施例中,具有比块单位小的大小的轨道单位用作"大单位,,, 并且第三和第五存储器区13和15中的数据管理以轨道单位执行。也就是, 管理单位的大小小于第三和第五存储器区13和15中块单位(最小擦除单 位)的大小,因此,在块中产生无效数据,从而需要执行压紧处理。
这里,具有高更新频率的数据和具有低更新频率的数据被彼此区分,并且,为了提高压紧的效率,在第三存储器区13之前处置具有块单位的 FIFO结构的第五存储器区15。
将描述下面的操作。被判定作为"大单位"数据从第一存储器区11 输出的数据和^L判定作为"大单位"数据从第二和第四存储器区12和14 输出的数据经受第五存储器区15中的FIFO处理。
A.第五存储器区中的FIFO处理
图34示出第五存储器区15中的FIFO处理。为了简化解释,特别考 虑被判定作为"大单位"数据从第一存储器区ll输出的数据。
1. 控制器10参考轨道管理表中的与准备用于以附加方式写入数据的 块(下文称为用于轨道附加的物理块)相对应的条目。控制器IO将从第一 存储器区ll输出的数据作为与轨道单位相等的"大单位"的数据而存储在 用于轨道附加的物理块的具有写入允许状态的轨道单位的区中(步骤 ST1)。
控制器IO搜寻高速緩冲存储器管理表,并判断被判定为将要输出的、 组成轨道单位数据的所有扇区单位数据是否存在于第一存储器区11中。
如果没有完成第一存储器区11中的所有扇区单位数据,控制器10从 第二、第三、第四和第五存储器区12、 13、 14和15收集遗漏数据。
在完成组成轨道单位数据的所有扇区单位数据之后,控制器10指示非 易失性半导体存储器22将该轨道单位数据写入用于轨道附加的物理块中。
2. 控制器10更新轨道管理表中的这样的条目中所记录的逻辑地址, 该条目对应于其中已经写入轨道单位数据的轨道单位的区(页)(步骤 ST2)。在第二、笫三、第四和第五存储器区12、 13、 14和15中已经被 写入的相同逻辑地址范围中所包含的旧数据变为无效数据。
3. 控制器10判断在用于轨道附加的物理块中是否存在轨道单位的空 区(空页)(步骤ST3)。如果没有检测到空页,该处理转到步骤ST4。 如果检测到空页,该处理返回到步骤ST1。
4. 控制器10将轨道FIFO管理表的条目逐一向后移位,并将用于轨 道附加的物理块的物理地址添加到轨道FIFO管理表的顶部处的条目中
74(步骤ST4)。结果,用于轨道附加的物理块被分配给第四存储器区14。 5.控制器10将物理块管理表中的与该块对应的条目更新为"第三存
储器区13 (现用)"(步骤ST5)。
在从第五存储器区15向第三存储器区13的数据传送中,控制器仅仅
更新轨道FIFO管理表和物理块管理表,而不指示非易失性半导体存储器
22读取/写入lt据(移动处理)。 B.处理实例1
图35示出处理实例1的流程图。
1. 控制器10通过搜寻物理块管理表获得空闲块。在擦除空闲块中的 数据之后,该块被分配给压紧块。控制器10在轨道管理表中搜寻未使用的 条目。压紧块的物理地址与未使用的条目相关联(步骤ST1)。
2. 控制器10通过扫描轨道管理表以从具有最小的有效数据数目的块 开始的次序顺序地选择轨道单位的有效数据。所选择的有效数据#_复制到 压紧块,并且轨道管理表中的与压紧块相关联的条目中的逻辑地址被更新 为被复制的数据的逻辑地址(步骤ST2)。
在轨道管理表的扫描中,不扫描与轨道FIFO管理表中所包含的物理 地址相关联的条目和与用于轨道附加的物理块相对应的条目。也就是,扫 描第三存储器区13,但不扫描第五存储器区15。
在步骤ST2 (压紧),可以将被复制的数据的逻辑地址范围中所包含 的有效数据从第一、第二和第四存储器区ll、 12和14中读出,并且用该 有效数据改写被复制的数据。使该压紧中所涉及的第一、第二和第四存储 器区ll、 12和14中的有效数据变为无效状态。
3. 如果块中的所有数据变为无效数据,那么控制器IO释放该块,并 在物理块管理表中将该块的状态从"现用"状态设定为"空闲,,状态(步 骤ST3)。
4. 控制器10判断第三存储器区13中的块的数目是否为被限定为第三 存储器区13的容量的预定的块数目或更少(步骤ST4)。
如果第三存储器区13中的块的数目为被限定为第三存储器区13的容量的预定的块数目或更少,该处理完成。如果第三存储器区12中的块的数 目大于被限定为第三存储器区13的容量的预定的块数目,该处理返回到步 骤ST1。
C.处理实例2
压紧可能不能够简单地通过使用第三存储器区13中的块来执行。具体 地,当作为半导体存储装置的产品规格的存储容量大于第三存储器区13 的存储容量而小于第三和第五存储器区13和15的总存储容量时,可能不 能够执行压紧。
这种情况的发生可能由于这样的需求,即,使得作为产品规格的容量 尽可能接近于半导体存储装置中的NAND型闪速存储器的总容量。
在这种情况下,当第三存储器区13中存在的无效数据的总大小(存储 容量)没有达到块单位的大小时,不管在第三存储器区13中执行多少次压 紧,也不能新产生空闲块。
因此,在上述情形中,仅仅在例外时候(第五条件),压紧可以被应 用于第三存储器区13和第五存储器区15两者。
图36示出处理实例2的流程图。
1. 控制器10通过搜寻物理块管理表来获得空闲块。在擦除该空闲块 中的数据之后,该块被分配一个压紧块。控制器10在轨道管理表中搜寻未 使用的条目。压紧块的物理地址与该未使用的条目相关联(步骤ST1)。
2. 通过扫描轨道管理表,控制器10以从具有最小的有效数据数目的 块开始的次序顺序地选择轨道单位的有效数据。所选择的有效数据被复制 到压紧块中,并且轨道管理表中的与该压紧块相关联的条目中的逻辑地址 被更新为被复制的数据的逻辑地址(步骤ST2)。
在扫描轨道管理表时,与轨道FIFO管理表中所包含的物理地址相关 联的条目也被扫描。即,第三存储器区13和第五存储器区15被扫描。
在步骤ST2 (压紧)中,可以将被复制的数据的逻辑地址范围中所包 含的有效数据从第一、第二和第四存储器区ll、 12和14中读出,并用该 有效数据改写被复制的数据。使该压紧中所涉及的第一、第二和第四存储
76器区ll、 12和14中的有效数据变为无效状态。
3. 如果块中的所有数据变为无效数据,那么控制器10释放该块,并 在物理块管理表中将该块的状态从"现用"状态设定为"空闲,,状态(步 骤ST3)。
4. 控制器10将该压紧块添加到轨道FIFO管理表的顶部(步骤ST4 )。 这是因为需要减少第五存储器区15中的无效数据。
如果第五存储器区15中的无效数据的数目减少,则第三存储器区13 中的无效数据的数目增加。因此,如上述处理实例l所示,压紧仅仅应用 于第三存储器区13,从而收集第三存储器区13中的有效数据,并可以在 笫三存储器区13中产生空闲块。
5. 控制器10判断第三和第五存储器区13和15中的块的数目是否为 被限定为第三和第五存储器区13和15的容量的预定的块数目或更少(步 骤ST5)。
如果第三和第五存储器区13和15中的块的数目为被限定为第三和第 五存储器区13和15的容量的预定的块数目或更少,则该处理结束。如果 第三和第五存储器区13和15中的块的数目大于被限定为第三和第五存储 器区13和15的容量的预定的块数目,则该处理返回步骤ST1。
在处理实例l和2中的每个步骤ST1中,与第一实施例中的处理实例 2 (图29) —样地,可以选择具有最小数目的轨道单位有效数据的两个或 多个块,并且可将该有效数据复制到压紧块中。
在第二实施例中,控制器10将存储区(块)分配给第二存储器区12、 第三存储器区13、第四存储器区14和第五存储器区15,从而执行非易失 性半导体存储器中的数据管理。然而,并不限于此。
例如,可通过配置笫二存储器区12、第三存储器区13、第五存储器区 15而不配置第四存储器区14来执行数据管理。另外,可通过配置第三存 储器区13和第五存储器区15而不配置第二存储器区12和第四存储器区 14来执行数据管理。 (3)第三实施例第三实施例涉及第二和第四存储器区12和14中的数据管理配置,以 减少执行成本和验证成本。
图37示出根据第三实施例的半导体存储装置。
第一存储器区11暂时存储来自主机设备的数据。数据通过扇区单位 (第一单位)或更小的单位而被写入第一存储器区11中。第一存储器区 11包含在诸如DRAM的易失性半导体存储器中。
第二存储器区12由非易失性半导体存储器22中的块构成。在非易失 性半导M储器22中, 一次执行读取/写入的单位是页(第二单位),并 且一次执行擦除的单位是块(第三单位)。块单位的大小是页单位的大小 的自然数倍。第二存储器区12通过与页单位相等的"小单位"来存储数据。
第三存储器区13由非易失性半导体存储器22中的块构成,并通过与 块单位相等的"大单位"来存储数据。
第四存储器区14由非易失性半导体存储器22中的块构成,并通过与 页单位相等的"小单位"来存储数据。
假定第一存储器区11的存储容量大于非易失性半导体存储器22中的 一个块单位的大小,并假定非易失性半导体存储器22的存储容量大于提供 为半导体存储装置(例如,SSD)的产品规格的存储容量。
如下将非易失性半导体存储器22的存储容量分配给笫二、第三和第四 存储器区12、 13和14。
将等于或大于提供为半导体存储装置的产品规格的存储容量的存储容 量分配给第三存储器区13。
将从非易失性半导体存储器22的存储容量中减去第三存储器区13的 存储容量而剩余的存储容量分配给第二和第四存储器区12和14。第二和 第四存储器区12和14的每个存储容量以及它们之间的比例并不受限制。
例如,第二、第三和第四存储器区12、 13和14由诸如NAND型闪速 存储器的非易失性半导体存储器22中的一个或多个块构成。
代表数据大小的第一、第二和第三单位不包括冗余数据(ECC、内部 控制标志等等),所述冗余数据在半导体存储装置中被添加到来自主机设
78备的主数据。
控制器10具有CPU和主存储器,并可以操作用于执行数据管理的程 序。在本实施例中,通过控制器IO实现的功能可以作为硬件和软件的任何
一者或两者的组合来执行。这些功能是作为硬件或是软件来执行取决于实 际实施例或对整个系统施加的设计约束。
当控制器10的主存储器由诸如DRAM的易失性半导体存储器构成 时,第一存储器区11可以被配置在控制器10的主存储器中。
控制器10包括高速緩冲存储器管理表、页管理表、块管理表、页FIFO 管理表以及物理块管理表,以管理从主机设备通过逻辑地址存取的数据存 储在第一、第二、第三和第四存储器区ll、 12、 13和14的何处。在半导 体存储装置的操作期间,这些管理表被扩展到控制器10的主存储器上。
-高速緩冲存储器管理表-
图37的高速緩冲存储器管理表通过与页单位相等的"小单位,,控制在 第一存储器区11中所述存储的数据。通过扇区单位执行对有效数据的控 制。
如同第一实施例中一样,图21中示出高速緩冲存储器管理表的配置。 由于在第一实施例中已经描述了高速緩冲存储器管理表,因此在此省略对 其的详细描述。
-页管理表-
图37的页管理表通过与页单位相等的"小单位"控制在第二和第四存 储器区12和14中所存储的数据。
如同第一实施例中一样,图22中示出页管理表的配置。由于在第一实 施例中已经描述了页管理表,因此在此省略对其的详细描述。
-块管理表-
图37的块管理表通过与块单位相等的"大单位"控制在第三存储器区 13中所存储的lt据。
如同第一实施例中一样,图23中示出块管理表的配置。由于在第一实 施例中已经描述了块管理表,因此在此省略对其的详细描述。—页FIFO管理表-
图37的页FIFO管理表控制分配给第四存储器区14的块中的数据。 如同第一实施例中一样,图24中示出页FIFO管理表的配置。由于在 第一实施例中已经描述了页FIFO管理表,因此在此省略对其的详细描述。 -物理块管理表-
图37的物理块管理表控制非易失性半导体存储器22中的块的使用。 如同第一实施例中一样,图25中示出物理块管理表的配置。由于在第 一实施例中已经描述了物理块管理表,因此在此省略对其的详细描述。 描述图37的控制器10所执行的处理流程。 描述图37的控制器10的处理流程。
控制器10首先将来自主机设备的扇区单位(第一单位)数据写入第一 存储器区11中,并将数据在其中存储历时特定周期。对于该数据存储处理, 可适用小节I.中描述的"A.第一存储器区中的数据存储处理,,。
控制器10基于预定条件(与小节I.中描述的"B.从第一存储器区的 数据输出处理"的第一条件基本相同)区分在第一存储器区11中所存储的 数据应该以"小单位(第一管理单位),,还是"大单位(第二管理单位),, 来管理。
"小单位"的大小是页单位的大小的自然数倍,或者页单位的大小是 "小单位"的大小的自然数倍。
"大单位"的大小是"小单位"的大小的两倍或更大的自然数倍,同 时,是块单位的大小的自然数倍。
在该实施例中,为了简化解释,如下假定管理表中所使用的每个单位 作为第二和第四存储器区12和14中的数据管理单位的"小单位"的 大小等于页单位(第二单位)的大小。作为第三存储器区13中的数据管理 单位的"大单位"的大小等于块单位(第三单位)的大小。
然而,通过将页进行划分而对其进行管理,具体地,"小单位"的大 小可以是扇区单位的大小的自然数倍,并且页单位的大小可以是"小单位,, 的大小的两倍或更大的自然数倍。可替代地,集中地控制多个页,具体地,"小单位"的大小可以是页 单位的大小的两倍或更大的自然数倍,并且块单位的大小可以是"小单位" 的大小的两倍或更大的自然数倍。
同样地,通过将块进行划分而对其进行控制,具体地,"大单位"的 大小可以是"小单位"的大小的两倍或更大的自然数倍,并且块单位的大 小可以是"大单位"的大小的两倍或更大的自然数倍。
可替代地,集中地控制多个块,具体地,"大单位"的大小可以是块 单位的大小的两倍或更大的自然数倍。
各个单位之间的上述关系可以被设定为下面的实例扇区单位(第一 单位) < "小单位" <页单位(第二单位) <块单位(第三单位)5 "大单位"。
如果第一存储器区11中所存储的数据以"小单位,,进行管理,则数据 被传送到第四存储器区14。如果第一存储器区11中所存储的数据以"大 单位"进行管理,则数据被传送到第三存储器区13。
该数据输出处理与小节I.中描述的"B.从第一存储器区的数据输出处 理"基;M目同。然而,与小节I.不同的是,"小单位"数据的目的地是第 四存储器区14。
A.第四存储器区中的FIFO处理
如已经描述的,第四存储器区14具有块单位的FIFO结构。图38示 出第四存储器区14中的FIFO处理。
1. 控制器10参考页管理表中的与准备用于以附加方式写入数据的块 (下文称为用于页附加的物理块)相对应的条目。控制器10将从第一存储
器区ll输出的数据作为与页单位相等的"小单位"的数据存储在用于页附 加的物理块的写入允许状态的页中(步骤ST1)。
2. 控制器10更新页管理表中的这样的条目中所记录的逻辑地址,该 条目对应于其中已经写入页单位数据的页(步骤ST2)。在第二和第四存 储器区12和14中已被写入的相同逻辑地址范围中所含的旧数据变为无效 数据。
3. 控制器10判断在用于页附加的物理块中是否存在空页(步骤ST3 )。
81如果没有检测到空页,该处理转到步骤ST4。如果检测到空页,该处理返 回到步骤ST1。
4. 控制器10将页FIFO管理表的条目逐一向后移位,并将用于页附 加的物理块的物理地址添加到页FIFO管理表的顶部处的条目中(步骤 ST4)。结果,用于页附加的物理块被分配给第四存储器区14。
5. 控制器10针对第四存储器区14中的其物理地址4皮记录在页FIFO 管理表中的所有块执行下面的处理P1 (步骤ST5)。
处理Pl在采用压紧这一点上与第一实施例和第二实施例不同。在第 四存储器区14中的块的利用效率很差的情况下,这一点非常有效。为了抑 制写入操作的增加,具有很多有效数据的块被排除在压紧对象之外。
B.处理P1
图39示出处理P1的流程图。图40示出在执行处理P1期间第四存储 器区14中的块的状态。每个块由多个页组成。通过参考页管理表中的页可 用性,使每个页为包括"有效"、"无效"和"空"的三种状态中的任何 一种。
1. 控制器10通过在页FIFO管理表中所记录的物理地址处搜寻页管 理表,针对第四存储器区14中的所有块,对每个块中所存储的有效数据的 数目进行计数(步骤ST1)。
2. 控制器10判断是否存在这样的块,在该块中,在步骤ST1处计数 的有效数据的数目为预定阈值或更大。例如,预定阈值可以祐二没定为块单 位("大单位")的一个区中可存储的页单位("小单位")数据的总数 目的50% (步骤ST2 )。
如果检测到其中有效数据的数目为预定阈值或更大的块,该处理转到 步骤ST3。如果没有检测到这样的块,该处理转到步骤ST4。
3. 控制器10将其中有效数据的数目为预定阈值或更大的块移动到第 二存储器区12 (步骤ST3)。也就是,针对该块的物理地址,控制器10 使页FIFO管理表的条目无效,并将物理块管理表的条目更新为"第二存 储器区(现用)"。在从第四存储器区14向第二存储器区12的数据传送中,控制器仅仅 更新页FIFO管理表和物理块管理表,而不指示非易失性半导体存储器22 读取/写入数据(移动处理)。
4. 控制器10在第四存储器区14中以从具有最旧分配次序的块开始的 次序顺序地选择有效数据。所选择的有效数据被复制到被擦除的空闲块(压 紧块)中。控制器10将被有效数据填充的压紧块分配给第二存储器区12
(步骤ST4 )。
5. 控制器IO使第四存储器区14中的与被复制的数据具有相同逻辑地 址的数据无效。如果块中的所有数据变为无效数据,那么控制器10释放该 块,并在物理块管理表中将该块的状态从"现用"状态设定为"空闲,,状 态(步骤ST5)。
如果在用于页附加的物理块中不存在空页,控制器IO通过搜寻物理块 管理表获得空闲块。在擦除空闲块中的数据之后,该块被新分配给用于页 附加的物理块。控制器10搜寻页管理表中的未使用的条目。将与用于页附 加的物理块相对应的物理地址记录在该未^f吏用的条目中。
根据块从第四存储器区14的移动,在第二存储器区12中以页单位管 理的块的数目增加。如果第二存储器区12中块的数目超过允许范围,也就 是,被限定为第二存储器区12的容量的预定的块数目,控制器10通过下 面的过程执行压紧或执行从第二存储器区12向第三存储器区13的数据传 送处理。
此外,与第一实施例不同,处理P1不包括向第三存储器区13的数据 传送处理(碎片整理)。这简化了从第四存储器区14向第二存储器区12 的数据传送处理。
C.处理实例
图41示出处理实例的流程图。图42至46示出在执^f亍图41的处理期 间第二存储器区12中的块的状态。如图42至46所示,通过控制器10管 理第二存储器区12中的块的分配次序。
每个块由多个页组成。通过参考页管理表中的页可用性,使每个页为
83包括"有效"、"无效"和"空"的三种状态中的任何一种。
1. 根据上述处理Pl,控制器10将数据从第四存储器区14传送到第 二存储器区12 (步骤ST1)。
2. 控制器10判断第二存储器区12中的块的数目是否超过允许范围 (步骤ST2 )。允许范围可以是4皮限定为第二存储器区12的容量的预定的
块数目。
如果块的数目没有超过允许范围,该处理完成。如果块的数目超过允 许范围,该处理转到步骤ST3。
3. 控制器10通过参考页管理表而对块的规定范围中所存储的有效数 目的数目(条目的数目)进行计数,并判断在该规定范围中所存储的有效 数据的总数目是否大于预定阈值(步骤ST3)。
该规定范围包括例如第二存储器区12中的两个相邻块。"相邻块,,是 指其分配次序是连续的块。图42的"窗口"示出块的规定范围。"窗口" 的开始位置被 没定为包括具有最旧的分配次序的块。
步骤ST3处的预定阈值可以是该规定范围中所包含的块当中的一半中 可存储的页单位数据的数目。图42示出在规定范围中所包含的两个块,并 且预定数目被设定为作为两个块的一半的一个块中可存储的页单位数据的 数目。
如果有效数据的数目大于预定阈值,该处理转到步骤ST4。如果有效 数据的数目为预定阔值或更小,该处理转到步骤ST7,并且控制器10对当 前"窗口"执4亍碎片整理和压紧(图43和44)。
4. 控制器10将"窗口,,从较旧侧向较新侧移位(步骤ST4)。具体 地,控制器10在第二存储器区12中从具有最旧的分配次序的块一侧向具 有最新的分配次序的块逐一地使"窗口"移位。
5. 控制器10判断"窗口"是否超出了第二存储器区12中的具有最新 分配次序的块(步骤ST5)。如果"窗口"已经超出了具有最新分配次序 的块,该处理转到步骤ST6。如果"窗口"尚未超出具有最新分配次序的 块,该处理返回到步骤ST3。6. 控制器10选择具有最旧分配次序的块中的所有有效数据,并将所 选择的有效数据传送到第三存储器区13,作为与块单位相等的"大单位,, 的数据(碎片整理)(步骤ST6 )。在控制器10不能检测到第二存储器区 12中的压紧目标的情况下执行步骤ST6。
如图45所示,从第一、第二、第三和第四存储器区ll、 12、 13和14 中收集这样的逻辑地址范围中所包含的有效数据,该逻辑地址范围是通过 按照块单位("大单位")的大小排列具有最旧的分配次序的块中所存储 的有效数据的逻辑地址而计算得出的。
控制器10指示非易失性半导体存储器22将块单位数据写入第三存储 器区13中。在写入该块单位数据之后,控制器10释放具有最旧分配次序 的块,并且该处理返回到步骤ST2。"窗口"的位置被重新设置到开始位 置。
7. 控制器10搜寻物理块管理表并获得空闲块(压紧块)(步骤ST7 )。 空闲块被提供用于压紧,并且在步骤ST7处所要求的空闲块的数目为规定 范围中所包含的块的一半。在图44中,提供一个空闲块用于压紧。控制器 10指示非易失性半导体存储器22擦除空闲块中的数据。
8. 控制器10顺序地选择"窗口"中所存储的有效数据(步骤ST8)。 如果"窗口"中所存储的所有有效数据都已经处理,则按照从分配次序开 始的次序进一步选择位于比上述"窗口"更新一侧的块中所存储的有效数 据。
9. 控制器10判断第二和第四存储器区12和14中通过按照块单位("大 单位")的大小排列所选择的有效数据的逻辑地址而计算得出的逻辑地址 范围中所包含的有效数据的总数目是否为预定阈值或更大(步骤ST9)。 步骤ST9处的预定阈值可以被设定为在块单位("大单位")的一个区中 可存储的页单位("小单位,,)数据的总数目的500/。。
如果有效数据的总数目小于预定阔值,该处理转到步骤STIO。如果有 效数据的总数目为预定阈值或更大,该处理转到步骤STll。
10. 如图44所示,控制器10将所选择的有效数据复制(重写)到压
85紧块中(步骤STIO)。将被复制的有效数据的逻辑地址新记录在页管理表 中的与压紧块相关联的条目上。在页管理表中原本记录在与分配给第二存 储器区12的块相关联的条目上的被复制的有效数据的逻辑地址被设定为 无效状态。
11. 控制器10从第一、第二、第三和第四存储器区ll、 12、 13和14 中收集按照块单位("大单位")的大小排列的逻辑地址范围中所包含的 有效数据,如图43所示,并将所选择的有效数据传送到第三存储器区13, 作为与块单位相等的"大单位"的数据(碎片整理)(步骤STll)。
12. 控制器10根据步骤ST10处的压紧或步骤ST11处的碎片整理来 释放其中所有数据成为无效数据的块(步骤ST12)。控制器10在物理块 管理表中将该块的状态从"现用"状态设定为"空闲"状态,如图46所示。
13. 控制器10判断压紧块是否被页单位的有效数据填充(步骤ST13 )。 如果压紧块并非被有效数据填充,该处理返回到步骤ST8。如果压紧块是 被有效数据填充,该处理转到步骤ST14。
然而,在即使在步骤ST8处选择了所有有效数据而压紧块仍然不能被 有效数据填充的情况下,该处理转到步骤ST14。在这种情况下,其中具有 空页的压紧块被分配给第二存储器区12。
14. 控制器IO在第二存储器区12中将压紧块插入到紧接在"窗口,, 之前,如图44所示。也就是,压紧块被插入在比"窗口"更旧一侧,从而 防止新分配给第二存储器区12的块再次作为压紧目标。
在更新页管理表和物理块管理表之后,该处理返回到步骤ST2。当该 处理返回到步骤ST2并触发新的压紧处理时,"窗口"的位置维持在当前 位置,如图46所示。
在本处理实例中,控制器10仅仅对规定范围("窗口,,)判断是否可 应用压紧,从而可以简化检测压紧目标的搜寻处理,并可以降低执行成本 和^ii成本。
在规定范围中所包含的块的数目不限于两个。控制器10可以限定三个 或更多个块作为规定范围。控制器10可以判断规定范围中所存储的有效数据是否大于从在规定范围中所包含的块的数目减一的块中可存储的页单位 数据的数目。
3. 应用实例
根据上述实施例的半导体存储装置可以应用于SSD (固态驱动器), 其用作诸如笔记本计算机的个人计算机的次级存储装置。下面描述在这种 情况下的具体实例。
4. 结论
根据第一、第二和第三实施例的半导体存储装置使具有低更新频率的 数据经受压紧处理,从而减小非易失性半导体存储器中的块的擦除计数。 此外,该半导体存储装置使用两个数据管理单位如小节I.中描述的"大 单位,,和"小单位,,,从而实现写入效率的提高。
本发明不限于上述实施例,可以在不偏离本发明的精神和范围的情况 下对组成要素进行修改和体现。另外,在上述实施例中所公开的多个组成 要素的适当的组合可以形成各种发明。例如,可以从上述实施例中所公开 的所有组成要素中省略几个组成要素。此外,不同实施例内的组成要素可 以彼此适当地组合。
[III.数据管理单位与读取/写入/擦除单位之间的关系
1.概述
在上述描述中,分别描述了才艮据小节I.和小节II.的半导体存储装置。 在这个小节中,将会具体描述第一、第二和第三单位以及上述描述中使用 的"小单位,,和"大单位"。
第一单位被规定为对于包括第一存储器区11的易失性或非易失性半 导体存储器的数据输入和/或输出单位。第一存储器区11通过第一单位或
更小的单位执行数据的读取/写入。第一单位例如可以是扇区单位。诸如个
人计算机的主机i殳备通过扇区单位执行对半导体存储装置的存取。
第二单位^L^L定为在包括第二、第三、第四和第五存储器区11、 12、
13、 14和15的非易失性半导体存储器中的最小数据读取和/或写入单位。 第三单位被规定为在包括第二、第三、第四和第五存储器区11、 12、13、 14和15的非易失性半导体存储器中的最小数据擦除单位。
如果第二、第三、第四和第五存储器区ll、 12、 13、 14和15被配置 在NAND型闪速存储器中,第二单位可以是页单位,而第三单位可以是块 单位。
第二和第三单位4皮物理地规定为对于配置在非易失性半导体存储器中 的第二、第三、第四和第五存储器区12、 13、 14和15的数据读取/写入/ 擦除单位。
另一方面,半导体存储装置中的数据管理单位("小单位"和"大单
位,,)可以对应于非易失性半导体存储器中的物理读:^写入/擦除单位,或
者可以与之不同。
在下面的实施例中,作为对于第二和第四存储器区12和14的数据管 理单位的"小单位"是蔟单位。簇单位的大小是扇区单位的大小的自然数 倍,并且页单位的大小是簇单位的大小的两倍或更大的自然数倍。簇单位 的大小可以等于在主机设备的文件系统中所使用的文件管理单位的大小。
2.实施例
将描述本发明的实施例。
图47示出根据本发明实施例的半导体存储装置。
第一存储器区11暂时存储来自主机设备的数据。数据通过扇区单位 (第一单位)或更小的单位被写入第一存储器区11中。第一存储器区11 被配置在诸如DRAM的易失性半导*储器中。
第二存储器区12由非易失性半导体存储器22中的块构成。在非易失 性半导体存储器22中, 一次执行读取/写入的单位是页(第二单位),且 一次执行擦除的单位是块(第三单位)。块单位的大小是页单位的大小的 自然数倍。第二存储器区12通过与簇单位相等的"小单位"存储数据。
第三存储器区13由非易失性半导体存储器22中的块构成,并通过与 块单位相等的"大单位"存储数据。
第四存储器区14由非易失性半导体存储器22中的块构成,并通过与 簇单位相等的"小单位"存储数据。
88假定第一存储器区11的存储容量大于非易失性半导体存储器22中的 一个块单位的大小,并假定非易失性半导体存储器22的存储容量大于提供 为半导体存储装置(例如,SSD)的产品规格的存储容量。
如下将非易失性半导体存储器22的存储容量分配给第二、第三和第四 存储器区12、 13和14。
将等于或大于提供为半导体存储装置的产品规格的存储容量的存储容 量分配给第三存储器区13。
将从非易失性半导体存储器22的存储容量中减去第三存储器区13的 存储容量而剩余的存储容量分配给第二和第四存储器区12和14。第二和 第四存储器区12和14的每个存储容量以及它们之间的比例并不受限制。
控制器10具有CPU和主存储器,并可以操作用于执行数据管理的程 序。在本实施例中,通过控制器10实现的功能可以作为硬件和软件的任何 一者或两者的组合来执行。这些功能是作为硬件或是软件来执行取决于实 际实施例或对整个系统施加的设计约束。
当控制器10的主存储器由诸如DRAM的易失性半导体存储器构成 时,第一存储器区11可以被配置在控制器10的主存储器中。
控制器10包括高速緩沖存储器管理表、蔟管理表、块管理表、簇FIFO 管理表以及物理块管理表,以管理从主机设备通过逻辑地址存取的数据存 储在第一、第二、笫三和第四存储器区ll、 12、 13和14的何处。在半导 体存储装置的操作期间,这些管理表被扩展到控制器10的主存储器上。
-高速緩冲存储器管理表-
图47的高速緩冲存储器管理表通过与簇单位相等的"小单位,,控制在 第一存储器区11中所存储的数据。通过扇区单位执行对有效数据的控制。
如同小节II.的第一实施例中一样,图21中示出高速緩冲存储器管理 表的配置。然而,在本实施例中,假定为第一存储器区ll中的簇单位的一 个区分配一个条目。
假定条目的数目为第一存储器区11内可包含的簇单位数据的数目,也 就是,不大于(第一存储器区11的容量)/ (簇单位的大小)。簇单位数据的逻辑地址、第一存储器区11的物理地址以及指示出有效 数据在簇单位的有关区中的位置的扇区标志与每个条目相关联。 -簇管理表-
图47的簇管理表通过与簇单位相等的"小单位"控制在第二和第四存 储器区12和14中所存储的数据。簇单位的大小是扇区单位的大小的自然 数倍,且页单位的大小是蔟单位的大小的两倍或更大的自然数倍。
图48示出簇管理表的实例。
假定为第二和第四存储器区12和14中的一个块分配一个条目。
为了登记处理中的块,假定条目的数目具有容许量,该容许量为在第 二和第四存储器区12和14内可以包含的块的数目,也就是,提供对(第 二和第四存储器区12和14的总容量)/(块单位的大小)的容许量的数目。
分配到第二存储器区12或第四存储器区14的块的物理地址与每个条 目相关联,并且块中的簇单位数据的逻辑地址被记录在每个条目中。
在图48中,假定页单位的大小是簇单位的大小的两倍。簇可用性被配 置为能够为每个蔟区分"写入允许,,状态(该存储区是空的)和"写入禁 止"状态(该存储区是无效的,这是因为已经在其中一次写入旧数据,新 数据被写入另一存储区中)。
此外,在没有达到(fulfill)页边界的簇单位数据被写入第四存储器区 14中的情况下,与同一页中的簇单位的剩余区相对应的簇可用性-皮设定为 "写入禁止"状态。尽管簇单位的该剩余区并没有存储有效数据,但是由 于数据写入单位是页单位且非易失性半导体存储器22不能使用剩余区,控 制器10将该剩余区视为无效数据。
-块管理表-
图47的块管理表通过与块单位相等的"大单位,,控制在第三存储器区 13中所存储的数据。如同小节II.的第一实施例中一样,图23中示出块管 理表的配置。
-簇FIFO管理表-
图47的簇FIFO管理表控制分配给第四存储器区14的块中的数据。如同小节II.的第一实施例中一样,图24中示出簇FIFO管理表的配置。 -物理块管理表-
图47的物理块管理表控制非易失性半导体存储器22中的块的使用。 如同小节II.的第一实施例中一样,图25中示出物理块管理表的配置。 描述图47的控制器10所执行的处理流程。
控制器10首先将来自主机设备的扇区单位(第一单位)数据写入第一 存储器区11中,并将数据在其中存储历时特定周期。对于该数据存储处理, 可适用小节I.中描述的"A.第一存储器区中的数据存储处理"。
控制器10基于预定条件(与小节I.中描述的"B.从第一存储器区的 数据输出处理"的第一a基本相同)而区分在第一存储器区11中所存储 的数据应该以"小单位(笫一管理单位)"还是"大单位(第二管理单位)" 进行管理。
"小单位,,的大小是页单位的大小的自然数倍,或者页单位的大小是 "小单位"的大小的自然数倍。
"大单位"的大小是"小单位"的大小的两倍或更大的自然数倍,同 时,是块单位的大小的自然数倍。
在该实施例中,作为第二和第四存储器区12和14中的数据管理单位 的"小单位"的大小是扇区单位的大小的两倍或更大的自然数倍,且页单 位的大小是"小单位"的大小的两倍或更大的自然数倍。满足该关系的"小 单位"被称为簇单位。为了简化解释,作为第三存储器区13中的数据管理 单位的"大单位"的大小等于块单位的大小。
各个单位之间的上述关系可以被设定为下面的实例扇区单位(第一 单位)<蔟单位("小单位") <页单位(第二单位) <块单位(第三单位) S "大单位,,。
如果第一存储器区11中所存储的数据以"小单位"进行管理,数据被 传送到第四存储器区14。如果第一存储器区11中所存储的数据以"大单 位"进行管理,数据,皮传送到第三存储器区13。
该数据输出处理与小节I.中描述的"B.从第一存储器区的数据输出处
91理"基^f目同。然而,与小节I.不同的是,"小单位"数据的目的地是第
四存储器区14。由于簇单位的大小小于页单位的大小,可能涉及多个簇单 位数据,并且所述多个簇单位数据被传送到第四存储器区14。 A.第四存储器区中的FIFO处理
如已经描述的,第四存储器区14具有块单位的FIFO结构。图49示 出第四存储器区14中的FIFO处理。
1. 控制器10参考簇管理表中的与准备用于以附加方式写入数据的块 (下文称为用于簇附加的物理块)相对应的条目。控制器10将从第一存储
器区ll输出的数据作为与簇单位相等的"小单位"的数据存储在用于簇附 加的物理块中的具有写入允许状态的簇单位的区中(步骤ST1)。
控制器IO搜寻高速緩冲存储器管理表,并判断被判定为将要输出的、 组成簇单位数据的所有扇区单位数据是否存在于第一存储器区11中。
如果没有完成第一存储器区11中的所有扇区单位数据,控制器10从 第二、第三和第四存储器区12、 13和14收集遗漏数据。
在完成组成页单位数据的所有扇区单位数据之后,控制器10指示非易 失性半导体存储器22写入簇单位数据。在步骤ST1处的写入处理中,优 选一起写入可存储在同 一 页中的多个簇单位数据。
2. 控制器10更新簇管理表中的这样的条目中所记录的逻辑地址,该 条目对应于其中已经写入蔟单位数据的页(步骤ST2)。在第二和第四存 储器区12和14中已被写入的相同逻辑地址范围中所包含的旧数据变为无 效数据。
3. 控制器10判断在用于簇附加的物理块中是否存在簇单位的空区(步 骤ST3)。如果没有检测到簇单位的空区,该处理转到步骤ST4。如果检 测到簇单位的空区,该处理返回到步骤ST1。
4. 控制器10将簇FIFO管理表的条目逐一向后移位,并将用于簇附 加的物理块的物理地址添加到簇FIFO管理表的顶部处的条目中(步骤 ST4)。结果,用于簇附加的物理块被分配给第四存储器区14。
5. 控制器10针对第四存储器区14中的其物理地址被记录在簇FIFO管理表中的所有块执行处理PI (步骤ST5 )。
处理Pl可以与小节II.中描述的图39的"B.处理P1"基本相同。然 而,以簇单位来管理有效数据。
3.结论
半导体存储装置中的数据管理单位("小单位"和"大单位,,)可以 对应于非易失性半导体存储器中的物理读取/写入/擦除单位,或者可以与之 不同。
半导体存储装置可以采用下面的数据管理单位。两个数据管理单位满 足这样的关系"大单位"的大小是"小单位"的大小的两倍或更大的自 然数倍。
(1) "小单位"的大小等于页单位的大小,"大单位,,的大小等于块 单位的大小。
(2) "小单位,,的大小等于页单位的大小,"大单位,,的大小等于轨 道单位的大小,其中轨道单位的大小小于块单位的大小。
(3) "小单位"的大小等于簇单位的大小,"大单位,,的大小等于块 单位的大小,其中簇单位的大小小于页单位的大小。
(4) "小单位"的大小等于簇单位的大小,"大单位"的大小等于轨 道单位的大小,其中簇单位的大小小于页单位的大小,轨道单位的大小小 于块单位的大小。
很自然地,半导体存储装置可以基于非易失性半导体存储器的规格(页 单位的大小或块单位的大小)而采用满足上述实施例中所描述的特定关系 的其它的数据管理单位,或例如主机设备中的文件管理单位。
[IV.应用实例
描述才艮据上述实施例中示出的半导体存储装置的应用实例。 那些半导体存储装置应用于例如SSD,其用作诸如笔记本计算机的个 人计算机的次级存储装置。
图50示出SSD的配置实例。
SSD 100包括用于数据存储的多个NAND型闪速存储器(NAND存储
93器)IO、用于数据高速緩冲存储器或用于工作区的DRAM 101、用于控制 闪速存储器10和DRAM 101的驱动控制电路102、以及电源电路103。
上述实施例的第一存储器区ll可以被配置在DRAM 101中。配置在 DRAM 101中的第一存储器区11用作用于NAND存储器10的写入高速緩 冲存储器。驱动控制电路102可以包括上述实施例中的控制器10。
驱动控制电路102输出控制信号,该控制信号用于控制设置在SSD 100 外部的状态显示器LED。可使用FeRAM(铁电随;tM!"取存储器)、MRAM (磁阻随;tM^^^储器)或NOR型闪速存储器来代替DRAM 20。也就是, 第一存储器区11可以被配置在具有高于NAND存储器10的写入速度的非 易失性随MM储器中。
SSD 100通过诸如串行ATA I/F的ATA接口 ( ATA I/F)对诸如个人 计算机的主机设备发送和接收数据。SSD100通过RS232C接口 (RS232C I/F)对用于除错的设备发送和接收数据。
电源电路104接收外部电源,并利用该外部电源产生多个内部电源。 这些多个内部电源被供应到SSD 100中的每个部分。电源电路103检测外 部电源的升高,并产生通电复位信号。通电复位信号净iL良送到驱动控制电 路102。
NAND存储器10由多个块组成。每个块是数据擦除的最小单位。图 51示出NAND存储器10中的一个块的配置实例。
每个块包括沿着X方向顺序地排列的(m+1)个NAND串(m:等于 或大于0的整数)。在该(m+1)个NAND串中所包括的每一个选择晶体 管STl中,漏极连接至位线BLO至BLm,且栅极共同地连接至选择栅极 线SGD。在选择晶体管ST2中,源极共同地连接至源极线SL,且栅极共 同地连接至选择栅极线SGS。
每个存储器基元晶体管MT包括MOSFET(金属氧化物半导体场效应 晶体管),该MOSFET具有形成于半导体基底上的堆叠栅极结构。该堆 叠栅极结构包括经由栅极绝缘膜而形成于半导体基底上的电荷存储层(浮 动栅电极),以及经由栅极间绝缘膜而形成于该电荷存储层上的控制栅电极。存储器基元晶体管MT根据注入到浮动栅电极中的电子的数目而改变其阈值电压,并根据阈值电压的差异而存储数据。
存储器基元晶体管MT可以组成为存储一个位(SLC:单级基元)或者2个或更高的位(MLC:多级基元)。
在每一个NAND串中,(n+l)个存储器基元晶体管MT排列在选择晶体管ST1的源极与选择晶体管ST2的漏极之间,使得各自的电流路径串联连接。也就是,多个存储器基元晶体管MT在Y方向上串联连接,使得相邻的存储器基元晶体管共享扩散区域(源极区域或漏极区域)。
控制栅电极以从最接近漏极侧的存储器基元晶体管MT开始的次序分别连接至字线WLO至WLn。由此,连接至字线WLO的存储器基元晶体管MT的漏极被连接至选择晶体管ST1的源极,而连接至字线WLn的存储器基元晶体管MT的源极被连接至选择晶体管ST2的漏极。
字线WLO至WLn连接在第三单位的NAND串之间,共享存储器基元晶体管MT的控制栅电极。也就是,位于第三单位中的相同线上的存储器基元晶体管MT中的控制栅极被连接至相同的字线WL。将连接至相同字线WL的(m+l)个存储器基元晶体管MT视为页,并通过页单位来执行数据读取。
位线BLO至BLm连接在第三单位之间,共享选择晶体管ST1的漏极。也就是,位于多个第三单位中的相同线上的NAND串被连接至相同的位线BL。
上述实施例的第二、第三、第四和第五存储器区12、 13、 14和15可以被配置在NAND存储器10中。存储器区的每一个可以遍布多个NAND存储器10而配置。另外,存储器区的每一个可以配置在单独的NAND存储器10中。更进一步地,每个NAND存储器IO可具有不同的性能。例如,第四存储器区14可以被配置在SLC型NAND存储器中,而其它存储器区可以被配置在MLC型NAND存储器中,等等。
多个NAND存储器10并联连接到驱动控制电路102。并联连接的NAND存储器10中的多个块可以同时被擦除,并可以形成作为SSD 100中的最小擦除单位的扩展的块单位。并联连接的NAND存储器10中的多个页可以同时4皮写入和读取,并可以形成作为SSD 100中的最小写入和读取单位的扩展的页单位。
具有浮动栅电极结构的存储器基元晶体管MT可具有这样的结构,该结构可以通过在诸如MONOS (金属-氧化物-氮化物-氧化物-硅)的作为电荷存储层的氮化物薄膜界面上俘获电子来实现对阈值的调整。同样地,具有MONOS结构的存储器基元晶体管MT可以组成为存储1个位或者2个或更高的位。
图52示出在其中 一个存储器基元存储2位数据的四级系统中的阈值分布的实例。
在四级系统中,存储器基元存储由上部页数据"x"和下部页数据"y"定义的四级数据"xy"之一。这四级数据是"11" 、 "01" 、 "00"和"10"。数据"11"(擦除状态)具有这样的状态,在该状态中存储器基元晶体管MT的阈值电压为负。
在下部页数据的写入操作中,通过写入下部页数据"y",将数据"11"选择性地编程到数据"10"。在写入上部页数据之前,数据"10"的阈值分布位于数据"01"和数据"00"的阈值分布之间,并且可比写入上部页数据之后所获得的阔值分布更宽。在上部页数据的写入操作中,通过写入上部页数据"x",将数据"11"选择性地编程到数据"01",并将数据"10"选择性地编程到数据"00"。
当应用多级数据存储系统时,需要精细地控制存储器基元晶体管MT的阈值分布。阈值分布受存储器基元晶体管MT的劣化的影响。因此,当半导体存储装置中的非易失性半导体存储器釆用多级数据存储系统时,写入效率的提高和擦除计数的降低非常有效。
此外,如图52所示,如果在仅仅写入下部页数据的状态下的阈值分布与写入上部页数据的状态下的阈值分布不同,那么由执4亍上部页编程时的电源中断会引起先前写入的下部页数据的丢失。
针对上述问题,其中以附加方式写入"小单位"数据的第四存储器区14可以由伪SLC块组成。伪SLC块是这样的块,其中仅仅下部页用于数据写入。该配置防止下部页数据的丟失。此外,下部页编程不要求精细的控制,因此提高了写入速度。
如果第四存储器区14由伪SLC块组成,伪SLC块和常规块(MLC块)可以在第二存储器区12中彼此混合。伪SLC块的存储容量是MLC块的存储容量的一半。因此,在第二存储器区12中的压紧处理中,将伪SLC块中的有效数据复制到MLC块。
图53示出驱动控制电路的配置实例。
驱动控制电路102包括用于数据存取的总线104、第一电路控制总线105以及笫二电路控制总线106。
控制整个驱动控制电路102的处理器107连接至第一电路控制总线105。可替代地,在其中存储每个控制程序中的启动程序(FW:固件)的启动ROM 108通过ROM控制器109而连接至第一电路控制总线105。进一步地,时钟控制器110连接至第一电路控制总线105,该时钟控制器110用于接收来自电源电路103的通电复位信号且将复位信号和时钟信号供应至各个部分。
第二电珞控制总线106连接至第一电路控制总线105。用于将状态显示信号供应至状态显示LED的并行IO( PIO )电路111和用于控制RS232C接口的串行IO (SIO)电路112连接至第二电#制总线106。
ATA接口控制器(ATA控制器)113、第一ECC (错误检查及校正)电路114、 NAND控制器115以及DRAM控制器119连接至数据存取总线104与第一电路控制总线105两者。ATA控制器113通过ATA接口而对主机设备发送和接收数据。用作数据工作区的SRAM 102通过SRAM控制器121而连接至数据存取总线104。
NAND控制器115包括NANDI/F118、第二ECC电路117以及用于DMA传送控制的DMA控制器116,其中NAND I/F 118用于执行与四个NAND存储器10的接口处理,DMA控制器116用于控制NAND存储器与DRAM之间的存取。图54示出处理器的配置实例。
处理器107包括数据控制单元122、 ATA命令处理单元123、安全控
制单元124、启动加载器125、初始化控制单元126以及除错支持单元127。
数据控制单元122通过NAND控制器115和第一 ECC电路114而控
制NAND存储器与DRAM之间的数据传送以及关于NAND芯片的各种功缺
ATA命令处理单元123通过ATA控制器113和DRAM控制器119而与数据控制单元122协作来执行数据传送处理。安全控制单元124与数据控制单元122和ATA命令处理单元123协作而控制各种安全信息。启动加载器125在通电时将每个控制程序(FW)从NAND存储器10加载至SRAM 120。
初始化控制单元126初始化驱动控制电路102中的每个控制器和电路。除错支持单元127处理通过RS232C接口而从外部供应的用于除错的数据。
图55示出其中安装有SSD的便携式计算机的实例。
便携式计算机200包括主体201及显示单元202。显示单元202包括显示器外壳203及容纳于显示器外壳203中的显示装置204。
主体201包括底盘205、键盘206以及作为指向装置的触摸板207。底盘205包括主电路板、ODD单元(光盘装置)、卡槽以及SSDIOO。
卡槽被 没置为邻近于底盘205的周边壁。周边壁具有面向卡槽的开口208。用户可从底盘205的外部通过开口 208将额外装置插入卡槽中和将额外装置从卡槽移除。
SSD 100可以在安装于便携式计算机200中的状态下代替现有技术的HDD来使用,或者可以在插入便携式计算机200的卡槽中的状态下用作额外装置。
图56示出其中安装有SSD的便携式计算机的系统的实例。便携式计算机200包含CPU 301、北桥302、主存储器303、视频控制器304、音频控制器305、南桥309、 BIOS-ROM 310、 SSD 100、 ODD单元310、嵌入式控制器/键盘控制器(EC/KBC )IC 311以及网络控制器312。CPU 301为用于控制便携式计算机200的操作的处理器,且执行从 SSD 100加载至主存储器303的操作系统(OS)。当ODD单元311执行 对光盘的读取处理和写入处理之一时,CPU 301执行这些处理。
CPU 301执行储存于BIOS-ROM 310中的系统BIOS (基本输入输 出系统)。系统BIOS为用于控制4更携式计算机200的硬件的程序。
北桥302为将CPU 301的局部总线连接至南桥309的桥接装置。北桥 302具有用于控制对主存储器303的存取的存储器控制器。
北桥302具有通过AGP (加速图形端口 )总线执行视频控制器304与 音频控制器305之间的通信的功能。
主存储器303暂时储存程序或数据,且用作CPU301的工作区。主存 储器303包含例如DRAM。
视频控制器304为用于控制显示单元的视频再现控制器,所述显示单 元用于便携式计算机200的显示监视器(LCD ) 317。
音频控制器305为用于控制便携式计算机200的扬声器319的音频再 现控制器。
南桥309控制连接至LPC (低管脚计数)总线的装置,并控制连接至 PCI (周边组件互连)总线的装置。南桥309通过ATA接口控制作为存储 软件及数据的存储器装置的SSD 100。
便携式计算机200以扇区单位执行对SSD 100的存取。通过ATA接 口输入写入命令、读取命令及闪存命令。
南桥309具有控制BIOS-ROM 310及ODD单元310的功能。
EC/KBC 311为整合于用于控制电源的嵌入式控制器上的一个芯片微 处理器,以及用于控制键盘(KB) 314和触摸板207的键盘控制器。
EC/KBC 311具有这样的功能,即,基于用户对电源按钮的操作而设 定便携式计算机200的电源的接通/断开。网络控制器312为,例如,执行 对网络(例如,因特网)的通信的通信装置。
尽管上述实施例中的半导体存储器装置包含SSD,但其也可以包含, 例如,以SDTM卡为代表的存储卡。当半导体存储装置包含存储卡时,它不仅可应用于便携式计算机,而且可应用于诸如蜂窝式电话、PDA(个人数 字助理)、数字静态相机以及数字视频相机的各种电子装置。
工业适用性
本发明的半导体存储装置对于诸如SSD的个人计算机的次级存储装置 以及诸如SDTM卡的存储卡有效。
权利要求
1.一种半导体存储装置,包括配置在易失性半导体存储器中的第一存储器区,其通过第一单位或更小单位执行数据写入,所述第一单位是对所述半导体存储装置的存取单位;配置在非易失性半导体存储器中的第二存储器区和第三存储器区,其通过第二单位执行数据写入,并通过第三单位执行数据擦除,所述第三单位是所述第二单位的两倍或更大的自然数倍;以及控制器,其执行第一处理,用于通过所述第一单位将多个数据存储在所述第一存储器区中;第二处理,用于通过第一管理单位将从所述第一存储器区输出的数据存储在所述第二存储器区中,所述第一管理单位是所述第一单位的两倍或更大的自然数倍且小于所述第三单位;以及第三处理,用于通过第二管理单位将从所述第一存储器区输出的数据存储在所述第三存储器区中,所述第二管理单位是所述第一管理单位的两倍或更大的自然数倍。
2. 根据权利要求l的半导体存储装置,其中,在所述第二处理中,所 述控制器从所述第二和第三存储器区中的至少一个读取这样的数据,该数据构 成所述笫一管理单位的数据且不存储在所述第一存储器区中;以及将所述第 一存储器区中所存储的数据与从所述第二和第三存储器区中 的至少一个读取的数据合并为所述第一管理单位的数据。
3. 根据权利要求l的半导体存储装置,其中,在所述第三处理中,所 述控制器从所述第二和第三存储器区中的至少一个读取这样的数据,该数据构 成所述笫二管理单位的数据且不存储在所述第一存储器区中;以及将所述第 一存储器区中所存储的数据与从所述第二和第三存储器区中的至少 一个读取的数据合并为所述第二管理单位的数据。
4. 根据权利要求l的半导体存储装置,其中,所述控制器执行 第四处理,用于选择将要从所述第二存储器区输出的所述第一管理单位的数据;以及第五处理,用于通过所述第二管理单位将包含所选择的数据的数据存 储在所述笫三存储器区中。
5. 根据权利要求4的半导体存储装置,其中,在所述第五处理中,所 述控制器通过将所述第四处理中所选择的数据的逻辑地址排列成所述第二管理 单位来计算逻辑地址范围;从所述第 一、第二和第三存储器区的至少 一个读取在所述逻辑地址范 围中所包含的数据;以及将所述第二存储器区中的数据与从所述第一、第二和第三存储器区中 的至少一个读取的数据合并为所述第二管理单位的数据。
6. 根据权利要求l的半导体存储装置,其中 所述第二和第三存储器区共享同一非易失性半导体存储器;以及 所述控制器将所述第三单位的区分别分配给所述第二和第三存储器区。
7. 根据权利要求l的半导体存储装置,其中,在所述第一处理中,所 述控制器通过将输入到所述半导体存储装置中的数据的逻辑地址排列成所述第 一管理单位来计算逻辑地址范围;以及将所述第一单位的数据存储在所述第一存储器区中的与所述逻辑地址 范围相对应的所述第 一管理单位的区中。
8. 根据权利要求7的半导体存储装置,其中,在所述第一处理中,所 述控制器判断所述逻辑地址范围是否可用于将所述第一单位的数据存储在所述 第一存储器区中;以及如果所述逻辑地址不可用,执行所述第二和第三处理中的至少一个。
9. 根据权利要求l的半导体存储装置,其中所述控制器 通过将将要从所述第 一存储器区输出的数据的逻辑地址排列成所述第二管理单位来计算逻辑地址范围;对包含在所述逻辑地址范围中且存储在所述第 一存储器区中的数据的数目进行计数;如果数据的数目小于预定阈值,执行所述第二处理;以及 如果数据的数目为所述预定阈值或更大,执行所述第三处理。
10. 根据权利要求l的半导体存储装置,其中所述控制器 通过将将要从所述第 一存储器区输出的数据的逻辑地址排列成所述第二管理单位来计算逻辑地址范围;对包含在所述逻辑地址范围中且存储在所述第 一和第二存储器区中的数据的数目进行计数;如果数据的数目小于预定阈值,执行所述第二处理;以及 如果数据的数目为所述预定阈值或更大,执行所述第三处理。
11. 根据权利要求4的半导体存储装置,其中所述非易失性半导体存 储器需要在数据写入之前执行数据的擦除。
12. 根据权利要求11的半导体存储装置,其中,在所述第二处理中, 所述控制器将第一管理单位的新数据写入所述第二存储器区中的第二单位的空区中;如果所述新数据的逻辑地址对应于旧数据的逻辑地址,将所述第二存 储器区中存储的所述旧数据设定为无效;将所述新数据视为有效数据,其优先于所述旧数据;以及 将所述旧数据视为无效数据,其通过参考所述新数据而被忽略。
13. 根据权利要求12的半导体存储装置,其中,如果所述第二存储器 区中所存储的多个有效数据和无效数据所占据的第三单位的区的数目超过 允许范围,所述控制器执行所述第四和第五处理。
14. 根据权利要求13的半导体存储装置,其中,在所述第四处理中, 所述控制器检测所述第二存储器区中的具有最旧写入次序的第三单位的区;以及 选择所述第三单位的区中所存储的第一管理单位的每个有效数据。
15. 根据权利要求13的半导体存储装置,其中,在所述第四处理中, 所述控制器针对所述第二存储器区中的第三单位的每个区,通过将有效数据的逻 辑地址排列成所述第二管理单位来计算逻辑地址范围;对包含在所述逻辑地址范围中且存储在所述第二存储器区中的有效数 据的数目进行计数;针对所述第二存储器区中的所述第三单位的每个区,对所述有效数据 的数目进行总计;检测具有最大总计数目的第三单位的区;以及选择所述第三单位的区中所存储的第一管理单位的每个有效数据。
16. 根据权利要求13的半导体存储装置,其中,在所述第四处理中, 所述控制器针对所述第二存储器区中的第三单位的每个区,对无效数据的数目进 行计数;检测具有最小的无效数据数目的第三单位的区;以及 选择所述第三单位的区中所存储的第 一管理单位的每个有效数据。
17. 根据权利要求12的半导体存储装置,其中所述控制器 判断所述第二存储器区中的无效数据的数目是否超过预定阈值; 针对所述第二存储器区中的第三单位的每个区,对无效数据的数目进行计数;以从无效数据的数目最大的区开始的次序选择所述第三单位的区中的 有效数据;将所选择的有效数据重写入第三单位的第一区中,所述第一区是空的; 在将所选择的有效数据重写入其中之后,将所述第一区分配给所述第二存储器区;以及释放所述第二存储器区中的第三单位的第二区,通过将所选择的有效 数据重写入所述第一区中,所述第二区不具有有效数据。
18. 根据权利要求ll的半导体存储装置,其中,在所述第三处理中, 所述控制器将第二管理单位的新数据写入所述第三存储器区中的第三单位的空区中;如果新数据的逻辑地址对应于旧数据的逻辑地址,将所述第三存储器区中所存储的所述旧数据设定为无效;将所述新数据视为有效数据,其优先于所述旧数据;以及 将所述旧数据视为无效数据,其通过参考所述新数据而被忽略。
19. 根据权利要求18的半导体存储装置,其中所述控制器 判断所述第三存储器区中的无效数据的数目是否超过预定阈值; 针对所述第三存储器区中的第三单位的每个区,对第二管理单位的无效数据的数目进行计数;以从无效数据的数目最大的区开始的次序选择第三单位的区中的有效 数据;将所选择的第二管理单位的有效数据重写入所述第三存储器区中的第 三单位的空区中;以及 释放第三单位的区,其中所述第二管理单位小于所述第三单位。
20. 根据权利要求1的半导体存储装置,其中所述第二单位是所述第 一管理单位的两倍或更大的自然数倍。
21. 根据权利要求1的半导体存储装置,其中所述第一管理单位是所述第二单位的两倍或更大的自然数倍;并且其中所述第三单位是所述第一管理单位的两倍或更大的自然数倍。
22. 根据权利要求1的半导体存储装置,其中所迷第三单位是所述第二管理单位的两倍或更大的自然数倍。
23. 根据权利要求1的半导体存储装置,其中所述第二管理单位是所 述第三单位的两倍或更大的自然数倍。
24. —种半导体存储装置,包括配置在易失性半导体存储器中的第 一存储器区,其通过第 一单位或更 小单位执行数据写入,所述第 一单位是对所述半导体存储装置的存取单位;配置在非易失性半导体存储器中的第二存储器区、第三存储器区和第 四存储器区,其通过第二单位执行数据写入,并通过第三单位执行数据擦 除,所述第三单位是所述第二单位的两倍或更大的自然数倍;以及控制器,其执行笫一处理,用于通过所述第一单位将多个数据存储在所述第一存储器 区中;第二处理,用于通过第一管理单位将从所述第一存储器区输出的数据 存储在所述第四存储器区中,所述第一管理单位是所述第一单位的两倍或 更大的自然数倍且小于所述第三单位;以及第三处理,用于通过第二管理单位将从所述第一存储器区输出的数据 存储在所述第三存储器区中,所述第二管理单位是所述第一管理单位的两 倍或更大的自然数倍且不小于所述第三单位;第四处理,用于将所述第四存储器区中具有最旧的分配次序的所述第 三单位的区移动到所述第二存储器区;以及第五处理,用于选择所述第二存储器区中的数据,并将所选择的数据 重写入所述第二存储器区中的所述第三单位的空区中。
25 根据权利要求24的半导体存储装置,其中,在所述第二处理中, 所述控制器将笫一管理单位的新数据存储在第二单位的空区中,所述空区包含在 第三单位的附加区中;如果所述新数据的逻辑地址对应于旧数据的逻辑地址,将所述笫二和 第四存储器区中存储的所述旧数据设定为无效;将所述新数据视为有效数据,其优先于所述旧数据; 将所述旧数据视为无效数据,其通过参考所述新数据而被忽略;以及 如果不存在所述第二单位的空区,将所述第三单位的附加区分配给所 述笫四存储器区。
26. 根据权利要求25的半导体存储装置,其中所述控制器执行第六处 理,用于选择所述第四存储器区中的具有最旧的分配次序的第三单位的区中所 存储的第一管理单位的有效数据;以及通过所述第二管理单位将包含所选择的有效数据的数据存储在所述第 三存储器区中。
27. 根据权利要求26的半导体存储装置,其中在所述第六处理中,所 述控制器通过将具有最旧的分配次序的所述第三单位的区中的每个有效数据的 逻辑地址排列成所述第二管理单位来计算逻辑地址范围;对包含在所述逻辑地址范围中且存储在所述第四存储器区中的有效数 据的数目进行计数;以及如果所述有效数据的数目为预定阈值或更大,选择所述逻辑地址范围 中所包含的有效数据。
28. 根据权利要求26的半导体存储装置,其中在所述第六处理中,所 述控制器通过将具有最旧的分配次序的所述第三单位的区中的每个有效数据的 逻辑地址排列成所述第二管理单位来计算逻辑地址范围;对包含在所述逻辑地址范围中且存储在所述第二和第四存储器区中的 有效数据的数目进行计数;如果所述有效数据的数目为预定阁值或更大,选择所述逻辑地址范围 中所包含的有效数据。
29. 根据权利要求26的半导体存储装置,其中,如果所述笫四存储器 区中的多个有效数据和无效数据所占据的第三单位的区的数目超过允许范围,所述控制器执行所述第四和第六处理中的至少一个。
30. 根据权利要求26的半导体存储装置,其中所述控制器执行第七处 理,用于选择将要从所述第二存储器区输出的第一管理单位的有效数据;以及通过所述第二管理单位将包含所选择的有效数据的数据存储在所述第 三存储器区中。
31. 根据权利要求30的半导体存储装置,其中,如果所述第二存储器 区中所存储的多个有效数据和无效数据所占据的第三单位的区的数目超过 允许范围,所述控制器执行所述第五和第七处理中的至少 一个。
32. 根据权利要求31的半导体存储装置,其中所述控制器 如果所述第二存储器区中的有效数据的数目为所述第二存储器区中可存储的数据的数目或更少,则执行所述第五处理;以及如果所述有效数据的数目大于所述第二存储器区中可存储的数据的数 目,则执^f亍所述第七处理。
33. 根据权利要求31的半导体存储装置,其中所述控制器 以从所述第二存错器区中有效数据的数目最少的区开始的次序选择第一预定数目的第三单位的区;如果所述第一预定数目的区中的有效数据的总数目为第二预定数目的 第三单位的区中可存储的数据的数目,则执行所述第五处理;以及如果所述有效数据的总数目大于所述第二预定数目的区中可存储的数 据的数目,则执行所述第七处理,其中所述第二预定数目小于所述第一预定数目。
34. 根据权利要求24的半导体存储装置,其中,在所述第五处理中, 所述控制器以从所述第二存储器区中有效数据的数目最少的区开始的次序 选择所述第三单位的区中所存储的有效数据。
35. 根据权利要求30的半导体存储装置,其中,在所述第七处理中, 所述控制器选择所述第二存储器区中有效数据的数目最大的所述第三单位 的区中的有效数据。
36. —种半导体存储装置,包括配置在易失性半导体存储器中的第一存储器区,其通过第一单位或更 小单位执行数据写入,所述第一单位是对所述半导体存储装置的存取单位;配置在非易失性半导体存储器中的第二存储器区、第三存储器区、第 四存储器区和第五存储器区,其通过第二单位执行数据写入,并通过第三 单位执行数据擦除,所述第三单位是所述第二单位的两倍或更大的自然数 倍;以及控制器,其执行第一处理,用于通过所述第一单位将多个数据存储在所述第一存储器区中;第二处理,用于通过第一管理单位将从所述第一存储器区输出的数据 存储在所述第四存储器区中,所述第一管理单位是所述第一单位的两倍或更大的自然数倍且小于所述第三单位;第三处理,用于通过第二管理单位将从所述第一存储器区输出的数据 存储在所述第五存储器区中,所述第二管理单位是所述第一管理单位的两 倍或更大的自然数倍且小于所述第三单位;第四处理,用于将所述第四存储器区中具有最旧的分配次序的所述第 三单位的区移动到所述第二存储器区;第五处理,用于选择所述第二存储器区中的数据,并将所选择的数据 重写入所述第二存储器区中的所述第三单位的空区中;第六处理,用于将所述第五存储器区中具有最旧的分配次序的所述第 三单位的区移动到所述第三存储器区中;以及第七处理,用于选择所述第三存储器区中的数据,并将所选择的数据 重写入所述第三存储器区中的所述第三单位的空区中。
37. 根据权利要求:36的半导体存储装置,其中,在所述第二处理中, 所述控制器将第一管理单位的新数据存储在第二单位的空区中,所述空区包含在 第三单位的附加区中;如果所述新数据的逻辑地址对应于旧数据的逻辑地址,将所述第二和第四存储器区中所存储的所述旧数据设定为无效;将所述新数据视为有效数据,其优先于所述旧数据;将所述旧数据视为无效数据,其通过参考所述新数据而被忽略;以及如果不存在所述第二单位的空区,将所述第三单位的附加区分配给所 述第四存储器区。
38. 根据权利要求37的半导体存储装置,其中所述控制器执行第八处 理,用于选择所述第四存储器区中具有最旧的分配次序的第三单位的区中所存 储的第一管理单位的有效数据;以及通过所述第二管理单位将包含所选择的有效数据的数据存储在所述第 三存储器区中。
39. 根据权利要求38的半导体存储装置,其中在所述第八处理中,所 述控制器通过将具有最旧的分配次序的所述第三单位的区中的每个有效数据的 逻辑地址排列成所述第二管理单位来计算逻辑地址范围;对包含在所述逻辑地址范围中且存储在所述第四存储器区中的有效数 据的数目进行计数;以及如果所述有效数据的数目为预定阈值或更大,选择所述逻辑地址范围 中所包含的有效数据。
40. 根据权利要求38的半导体存储装置,其中在所述第八处理中,所 述控制器通过将具有最旧的分配次序的所述第三单位的区中的每个有效数据的 逻辑地址排列成所述第二管理单位来计算逻辑地址范围;对包含在所述逻辑地址范围中且存储在所述第二和笫四存储器区中的 有效数据的数目进行计数;以及如果所述有效数据的数目为预定阈值或更大,选择所述逻辑地址范围 中所包含的有效数据。
41. 根据权利要求38的半导体存储装置,其中,如果所述第四存储器 区中的多个有效数据和无效数据所占据的第三单位的区的数目超过允许范 围,所述控制器执行所述第四和第八处理中的至少一个。
42. 根据权利要求38的半导体存储装置,其中所述控制器执行第九处 理,用于选择将要从所述第二存储器区输出的第一管理单位的有效数据;以及通过所述第二管理单位将包含所选择的有效数据的数据存储在所述第 五存储器区中。
43. 根据权利要求42的半导体存储装置,其中,如果所述第二存储器 区中的多个有效数据和无效数据所占据的第三单位的区的数目超过允许范 围,所述控制器执行所述第五和第九处理中的至少一个。
44. 根据权利要求43的半导体存储装置,其中所述控制器 如果所述第二存储器区中的有效数据的数目为所述第二存储器区中可存储的数据的数目或更少,则执行所述第五处理;以及如果所述有效数据的数目大于所述第二存储器区中可存储的数据的数 目,则执行所述第九处理。
45. 根据权利要求43的半导体存储装置,其中所述控制器 以从所述第二存储器区中有效数据的数目最少的区开始的次序选择第一预定数目的第三单位的区;如果所述第一预定数目的区中的有效数据的总数目为第二预定数目的 第三单位的区中可存储的数据的数目,则执行所述第五处理;以及如果所述有效数据的总数目大于所述第二预定数目的区中可存储的数 据的数目,则执行所述第九处理,其中所述第二预定数目小于所述第一预定数目。
46. 才艮据权利要求36的半导体存储装置,其中,在所述第五处理中, 所述控制器以从所述第二存储器区中有效数据的数目最少的区开始的次序 选择第三单位的区中所存储的有效数据。
47. 根据权利要求42的半导体存储装置,其中,在所述第九处理中,所述控制器选择所述第二存储器区中有效数据的数目最大的第三单位的区 中的有效数据。
48. 根据权利要求36的半导体存储装置,其中,在所述第三处理中, 所述控制器将第二管理单位的新数据存储在第二单位的空区中,所述空区包含在第三单位的附加区中;如果所述新数据的逻辑地址对应于旧数据的逻辑地址,将所述第二和第四存储器区中所存储的所述旧数据设定为无效;将所述新数据视为有效数据,其优先于所述旧数据; 将所述旧数据视为无效数据,其通过参考所述新数据而被忽略;以及 如果不存在所述第二单位的空区,将所述第三单位的附加区分配给所述第五存储器区。
49. 根据权利要求48的半导体存储装置,其中,如果所述第五存储器 区中的多个有效数据和无效数据所占据的第三单位的区的数目超过允许范 围,所述控制器执行所述第六处理。
50. 根据权利要求36的半导体存储装置,其中,如果所述第三存储器 区中的多个有效数据和无效数据所占据的第三单位的区的数目超过允许范 围,所述控制器执行所述第九处理。
51. 根据权利要求36的半导体存储装置,其中,在所述第九处理中, 所述控制器选择所述第三存储器区中有效数据的数目最小的第三单位的区 中所包含的有效数据。
52. 根据权利要求36的半导体存储装置,其中,在所述第七处理中, 所述控制器还选择在所述第五存储器区中所存储的有效数据。
53. 根据权利要求52的半导体存储装置,其中,在所述第七处理中, 如果所述第三存储器区中所存储的无效数据的数目小于第三单位的一个区 中可存储的数据的数目,所述控制器选择所述第五存储器区中所存储的有 效数据。
54. —种半导体存储装置,包括配置在易失性半导体存储器中的第 一存储器区,其通过第 一单位或更小单位执行数据写入,所述第一单位是对所述半导体存储装置的存取单位; 配置在非易失性半导体存储器中的第二存储器区、第三存储器区和第 四存储器区,其通过第二单位执行数据写入,并通过笫三单位执行数据擦 除,所述第三单位是所述第二单位的两倍或更大的自然数倍;以及 控制器,其执行第一处理,用于通过所述第一单位将多个数据存储在所述第一存储器 区中;第二处理,用于通过第一管理单位将从所述第一存储器区输出的数据 存储在所述第四存储器区中,所述第一管理单位是所述第一单位的两倍或 更大的自然数倍且小于所述第三单位;第三处理,用于通过第二管理单位将从所述第一存储器区输出的数据 存储在所述第三存储器区中,所述第二管理单位是所述第一管理单位的两 倍或更大的自然数倍且不小于所述第三单位;第四处理,用于选择所述第四存储器区中的所述第三单位的区,并将 所选择的区移动到所述第二存储器区;以及第五处理,用于以从具有最旧的写入次序的一个区开始的次序顺序地 选择所述第三单位的区中的数据,并将所选择的数据重写入所述第二存储 器区中的所述第三单位的空区中;以及第六处理,用于选择所述第二存储器区中的数据,并将所选择的数据 重写入所述第二存储器区中的第三单位的空区中。
55.根据权利要求54的半导体存储装置,其中,在所述第二处理中, 所述控制器将第一管理单位的新数据存储在第二单位的空区中,所述空区包含在 第三单位的附加区中;如果所述新数据的逻辑地址对应于旧数据的逻辑地址,将所述第二和 第四存储器区中所存储的所述旧数据设定为无效;将所述新数据视为有效数据,其优先于所述旧数据;将所述旧数据视为无效数据,其通过参考所述新数据而被忽略;以及 如果不存在所述第二单位的空区,将所述第三单位的附加区分配给所 述第四存储器区。
56. 根据权利要求55的半导体存储装置,其中,如果所述第四存储器 区中所存储的多个有效数据和无效数据所占据的第三单位的区的数目超过 允许范围,所述控制器执行所述第四处理。
57. 根据权利要求56的半导体存储装置,其中,如果在执行所述第四 处理之后,所述第四存储器区中所存储的多个有效数据和无效数据所占据 的第三单位的区的数目超过允许范围,所述控制器执行所述第五处理。
58. 根据权利要求55的半导体存储装置,其中,在所述第六处理中, 所述控制器对窗口内的有效数据的数目进行计数,所述窗口以从所述第二存储器 区中具有最旧的分配次序的区开始的次序包括多个第三单位的区;选择第二存储器区中写入次序最旧的第三单位的区中的有效数据;以及将所选择的数据重写入第三单位的空区中; 将该第三单位的区分配给所述第二存储器区。
59. 根据权利要求l、 17、 19或33的半导体存储装置,其中,所述第 一管理单位的大小等于所述第二单位的大小。
60. 根据权利要求l、 17或33的半导体存储装置,其中,所述第二管 理单位的大小等于所述第三单位的大小。
全文摘要
一种半导体存储装置包括配置在易失性半导体存储器中的第一存储器区11、配置在非易失性半导体存储器中的第二和第三存储器区12和13、以及执行下面的处理的控制器10。控制器10执行第一处理,用于通过第一单位将多个数据存储在所述第一存储器区中;第二处理,用于通过第一管理单位将从所述第一存储器区输出的数据存储在所述第二存储器区中;以及第三处理,用于通过第二管理单位将从所述第一存储器区输出的数据存储在所述第三存储器区中。
文档编号G06F12/00GK101632068SQ20088000844
公开日2010年1月20日 申请日期2008年12月25日 优先权日2007年12月28日
发明者松崎秀则, 橘内和也, 檜田敏克, 浅野滋博, 矢野浩邦, 菅野伸一 申请人:株式会社东芝