存储器系统的制作方法

文档序号:6592457阅读:249来源:国知局
专利名称:存储器系统的制作方法
技术领域
本发明涉及一种使用非易失性半导体存储装置的存储器系统。
技术背景一些个人计算机(PC)使用硬盘装置作为次级存储装置。在这些PC中,已知这样的技术,该技术用于*已存储在硬盘装置中的数据以防止 数据由于某一故障而变得无效。例如,当检测到改变硬盘装置中的数据的 动作时,取得一快照作为改变之前的数据的*复本,并且产生对数据所进行的改变的日志。接着,每隔预定时间重复以下处理取得一新快照, 使过去在取得新快照之前而取得的日志无效,并且产生新日志(例如,参 见美国专利申请7>开第2006/0224636号)。在数据由于某一原因而变得无 效的情况下,可通过参考快照和日志而恢复数据。通常存在两种类型的日 志更新前日志和更新后日志。更新前日志为在数据的更新之前作为指示 数据将如何被更新的更新计划而产生的日志。另一方面,更新后日志为用 于在数据实际上被更新之后核准数据的更新的日志。近年来,作为非易失性半导*储装置的NAND闪速存储器的容量已 显著增加。结果,包括具有NAND闪速存储器作为次级存储装置的存储器 系统的PC已^v实际使用。然而,不能像在存储于具有硬盘装置作为次 级存储装置的个人计算机中的数据的备份的情况下一样地将美国专利申请 公开第2006/0224636号中所公开的技术应用于存储于具有NAND闪速存 储器作为次级存储装置的这种个人计算机中的数据的备份。这是因为使用 多值存储器技术来增加NAND闪速存储器的容量,该多值存储器技术可将 等于或大于2个位的多个数据(多值数据)存储在一个存储器单元中。配置多值存储器的存储器单元具有场效晶体管结构,该场效晶体管结 构具有层叠的栅极结构,其中栅极绝缘膜、浮动栅电极、栅极间绝缘膜和 控制栅电极按顺序层叠在沟道区域上,且可根据累积在浮动栅电极中的电 子的数目而设定多个阈值电压。为了使得可以基于该多个阈值电压而执行 多值存储,需要使与一个数据对应的阈值电压的分布极窄。例如,关于可存储四个值的多值存储器,存在这样的多值存储器,其 在一个存储器单元中包括一低位的页和一 高位的页,且通过在各页中写入1位数据而存储2个位(四个值)。在将数据写入这种多值存储器中的方 法中,在将数据写入第一存储器单元的低位页(lower order page)中之后, 将数据写入与第一存储器单元邻近的存储器单元(第二存储器单元)的低 位页中。在将数据写入该邻近的存储器单元中之后,将数据写入第一存储 器单元的高位页(higher order page)中(例如,参见JP-A 2004-192789 (KOKAI))。然而,在这种多值存储器中,数据被较早写入其中的第一存储器单元 的阈值电压由于数据被较晚写入其中且与第 一存储器单元邻近的第二存储 器单元的阈值电压而波动。因此,在多值存储器中,很可能发生低位页中 断(break),其中如果在将数据写入某一存储器单元的高位页中时由于例 如电源的异常隔离而暂时中止写入,则数据被较早被写入其中的低位页中 的数据也中断。因此,当将存储日志且接着进行备除的常规技术应用于使用NAND闪 速存储器的存储器系统时,存在的问题在于,如果在日志的写入期间发生 电源的异常隔离,则当前正被写入的日志和甚至已被存储的日志中断。当在执行数据的写入时发生程序错误时,执行数据的重写。然而,通 常,尚未考虑到在这种情况下产生日志的方法,具体地,当在日志的写入 期间进一步发生电源的异常隔离时产生包括复位期间的处理的日志的方 法。发明内容才艮据本发明的一方面, 一种存储器系统包括易失性第一存储单元; 非易失性第二存储单元,其包括可存储多值数据的存储器单元;以及控制 器,其通过所述第一存储单元而执行在主机设备与所述第二存储单元之间 的数据传送,将管理信息存储在所述第一存储单元中,且在更新所存储的 管理信息时基于所存储的管理信息而执行所述第一和第二存储单元中的数 据管理,其中所述管理信息包括在所述存储器系统的起动操作期间存储在 所述第二存储单元中的数据的存储位置。所述控制器包括管理信息存储 单元,其在满足预定条件时将存储在所述第一存储单元中的管理信息存储 在所述第二存储单元中作为快照,且在所述第二存储单元中存储作为在所 述管理信息中发生改变之前所存储的管理信息的更新差异信息的前日志 (pre-log)和作为在所述管理信息中发生所述改变之后所存储的管理信息 的更新差异信息的后日志(post-log);以及管理信息恢复单元,当所述前 日志或所述后日志在所述起动操作期间存在于所述第二存储单元中时,所 述管理信息恢复单元基于所述快照以及所述日志或所述后日志而执行所述 第一存储单元中的管理信息的恢复,并且当所述前日志和所述后日志在所述起动操作期间不存在于所述第二存储单元中时,所述管理信息恢复单元 基于所述快照而执行所述第一存储单元中的管理信息的恢复。当在作为所 述前日志的存储之后的更新处理而执行所述第二存储单元中的数据的写入 时发生程序错误时,所述管理信息存储单元在再次执行数据写入之后存储 快照而不执行新日志的写入。才艮据本发明的另一方面, 一种存储器系统包括易失性第一存储单元; 非易失性第二存储单元,其包括可存储多值数据的存储器单元;以及控制 器,其通过所述第 一存储单元而执行在主机设备与所述第二存储单元之间 的数据传送,将管理信息存储在所述第一存储单元中,且在更新所存储的 管理信息时基于所存储的管理信息而执行所述第一和第二存储单元中的数 据管理,其中所述管理信息包括在所述存储器系统的起动操作期间存储在 所述第二存储单元中的数据的存储位置。所述控制器包括管理信息存储 单元,其在满足预定条件时将存储在所述第一存储单元中的管理信息存储在所述笫二存储单元中作为快照,且在所述第二存储单元中存储作为在所 述管理信息中发生改变之前所存储的管理信息的更新差异信息的前日志和 作为在所述管理信息中发生所述改变之后所存储的管理信息的更新差异信息的后日志;以及管理信息恢复单元,当所述前日志或所述后日志在所述 起动操作期间存在于所述第二存储单元中时,所述管理信息恢复单元基于 所述快照以及所述前日志或所述后日志而执行所述第一存储单元中的管理 信息的恢复,并且当所述前日志和所述后日志在所^动操作期间不存在 于所述第二存储单元中时,所述管理信息恢复单元基于所述快照而执4亍所 述第一存储单元中的管理信息的恢复。当在作为所述前日志的存储之后的 更新处理而执行所述第二存储单元中的数据的写入时发生程序错误时,所 述管理信息存储单元再次存储与数据的重写处理对应的前日志,并且在完 成所述重写处理之后,在存储与所述重写处理对应的后日志之后,存储与 发生所述程序错误之前所存储的所述前日志对应的后曰志。


图1为根据本发明的实施例的存储器系统的配置的实例的框图;图2为NAND存储器的任意块的配置的实例的电路图;图3A为DRAM的功能配置的示意图,且图3B为NAND存储器的功能配置的示意图;图4为用于管理存储在存储器系统中的数据的层结构的实例的图;图5为高速緩冲存储器管理信息表的实例的图;图6为逻辑NAND管理信息表的实例的图;图7为NAND内逻辑-物理转换信息表的实例的图;图8为存储在管理信息存储区中的管理信息存储信息的内容的实例的示意图;图9描绘日志的实例;图IO为图1中所示的驱动控制单元的功能配置的实例的框图; 图11为图10中所示的数据管理单元的功能配置的实例的框图;8图12为对存储器系统的管理信息的存储处理程序的实例的流程图; 图13为用于解释对前日志和后日志的存储处理的图; 图14为对存储器系统的管理信息的恢复处理程序的实例的流程图; 图15A至图15D为存储器单元中的数据与存储器单元的阈值电压之间的关系以及NAND存储器中的写入的顺序的实例的图;图16A至图16C为用于解释用于管理信息的恢复的日志的选择方法的图(1);图17A至图17C为用于解释用于管理信息的恢复的日志的选择方法的 图(2);图18为用于解释在正常时间产生前日志和后日志的方法的图;图19为用于解释在发生数据写入餘溪时产生日志的方法的实例的图;以及图20为用于解释在发生数据写入镣溪时产生日志的方法的另一实例 的图。
具体实施方式
下面参考附图详细地解#^艮据本发明的存储器系统的示例性实施例。 本发明不受此实施例限制。 实施例根据本发明的第 一 实施例的存储器系统包括非易失性半导体存储装 置,且用作诸如个人计算机的主机设备的次级存储装置(SSD:固态驱动 器)。存储器系统具有存储主机设备请求写入的数据和读出主机设备请求 读出的数据并将数据输出至主机设备的功能。图l为根据本发明的第一实 施例的存储器系统10的配置的实例的框图。该存储器系统10包括作为第 一存储单元的DRAM (动态随机存取存储器)11、作为第二存储单元的 NAND闪速存储器(在下文中为"NAND存储器,,)12、电源电路13,以及 驱动控制单元14。DRAM 11用作用于数据传送、管理信息记录或工作区的存储单元。具体地,当DRAM 11用作用于数据传送的存储单元时,DRAM 11用于在 将数据写入NAND存储器12中之前暂时存储主机设备请求写入的数据, 且DRAM 11用于从NAND存储器12读出主机设备请求读出的数据且暂 时存储所读取的数据。当DRAM 11用作用于管理信息记录的存储单元时, DRAM 11用于存储管理信息,该管理信息用于管理在DRAM 11和NAND 存储器12中存储的数据的存储位置。当DRAM 11用作用于工作区的存储 单元时,DRAM 11用于,例如,在恢复管理信息时所使用的前日志和后 日志(更新前日志和更新后日志)的扩展期间。
NAND存储器12用作用于将数据存储在其中的存储单元。具体地, NAND存储器12将由主机设备指定的数据存储在其中,且将由DRAM 11 管理的管理信息存储在其中以用于M。在图1中,作为实例示出了包括 四个信道120A至120D的NAND存储器12。这些信道120A至120D中的 每一个包括两个封装121,每一个封装包括具有预定大小(例如,2 GB) 的存储容量的八个芯片122。通过驱动控制单元14和总线15A至15D而 连接信道120A至120D。
电源电路13接收外部电源且从外部电源产生待供应至存储器系统10 的各单元的多个内部电源。电源电路13检测外部电源的状态,即,上升沿 或下降沿,基于所检测的状态而产生通电复位信号,且将通电复位信号输 出至驱动控制单元14。
驱动控制单元14控制DRAM 11和NAND存储器12。如稍后详细解 释的,例如,驱动控制单元14根据来自电源电路13的通电复位信号执行 对管理信息的恢复处理和对管理信息的存储处理。驱动控制单元14通过 ATA接口 (I/F)而将数据传输至主机设备和从主机设备接收数据,且通 过RS232CI/F而将数据传输至除^i殳备和从除^i殳备接收数据。此夕卜,驱 动控制单元14输出控制信号,该控制信号用于控制在存储器系统10的外 部上设置的用于状态显示的LED的接通/断开。
下面详细解释NAND存储器12的配置。通过在基板上将多个块(擦 除单位区)排成阵列而配置NAND存储器12,其中该多个块为数据擦除200980000143.X
说明书第7/25页
的单位。图2为NAND存储器12的任意块的配置的实例的电路图。在图 2中,将左右方向i殳定为X方向,且将垂直于X方向的方向i殳定为Y方向。
NAND存储器12的每个块BLK包括沿着X方向按顺序排成阵列的 (m+l) ( m为等于或大于0的整数)个NAND串NS。每个NAND串 NS具有(n+l) (n为等于或大于0的整数)个存储器单元晶体管MT0 至MTn,这些存储器单元晶体管MT0至MTn共享在Y方向上彼此邻近 的存储器单元晶体管MT之间的扩散区域(源极区域或漏极区域)。此夕卜, 存储器单元晶体管MT0至MTn在Y方向上串联连接。另夕卜,选择晶体管 ST1和ST2排列在该(n+l)个存储器晶体管MT0至MTn的行的两端处。
每个存储器单元晶体管MT0至MTn均为MOSFET (金属氧化物半 导体场效应晶体管),其具有形成在半导体M上的层叠的栅极结构。该
(浮动栅电极)以及通过栅极间绝缘膜而形成在电荷累积层上的控制栅电 极。此外,存储器单元晶体管MTO至MTn为多值存储器,其中阈值电压 根据累积在浮动栅电极中的电子的数目而改变,并且可根据阈值电压的差 异而存储两个或更多个位数据。在第一实施例中,假定存储器单元晶体管 MT为多值存储器。
字线WL0至WLn分别连接至每个NAND串NS的存储器单元晶体管 MT0至MTn的控制栅电极。NAND串NS中的每一个中的存储器单元晶 体管MTi (i-0至n)通过同一字线(i-0至n)而共同连接。换句话说, 在块BLK中的同一行上存在的存储器单元晶体管MTi的控制栅电极连接 至同一字线WLi。连接至同一字线WLi的一组(m+l)个存储器单元晶体 管MTi为形成一个页的单位。在NAND存储器12中,以该页单位来执行 数据的写入和读出。
位线BL0至BLm分别连接至一个块BLK中的(m+l)个选择晶体管 ST1的漏极。选择栅极线SGD共同地连接至每个NAND串NS的选择晶 体管ST1的栅极。选择晶体管ST1的源极连接至存储器单元晶体管MT0 的漏极。类似地,源极线SL共同地连接至一个块BLK中的(m+l)个选择晶体管ST2的源极。选择栅极线SGS共同地连接至每个NAND串NS 的选择晶体管ST2的栅极。选择晶体管ST2的漏极连接至存储器单元晶体 管MTn的源极。
尽管未在图中示出,但一个块BLK中的位线BLj (j=0至m)将选择 晶体管ST1的漏极共同连接在其它块BLK的位线BLj之间。换句话说, 块BLK中的同 一列中的NAND串NS通过同 一位线BLj而连接。
接下来解释DRAM 11和NAND存储器12的功能配置。图3A为 DRAM 11的功能配置的示意图,且图3B为NAND存储器12的功能配置 的示意图。如图3A中所示,DRAM11包括写入高速緩冲存储器区、读取 高速緩冲存储器区RC、暂时存储区111、以及当恢复管理信息时使用的工 作区112,在该写入高速緩冲存储器区中存储有主机设备请求写入的数据, 在该读取高速緩冲存储器区RC中存储有主机设备请求读出的数据,在该 暂时存储区111中存储有用于管理存储在DRAM 11和NAND存储器12 中的数据的存储位置的管理信息。
如图3B中所示,NAND存储器12包括数据存储区125和管理信息存 储区126,在该数据存储区125中存储有主机设备请求写入的数据,在该 管理信息存储区126中存储有在DRAM 11的暂时存储区111中所管理的 管理信息。在该实例中,将NAND存储器12中的数据写入和读出单位设 定为页大小的单位。将擦除单位设定为块大小的单位。因此,将用于存储 以块大小的单位管理的NAND存储器12的各个块的区进一步划分成页大 小单位的区。
下面解释在DRAM 11的暂时存储区111中所管理的管理信息。图4 为用于管理存储在存储器系统10中的数据的层结构的实例的图。此处假 定该数据为主机设备请求写入或读出的数据。在存储器系统10中,通过 以下的三层结构来执行数据管理DRAM管理层31、逻辑NAND管理层 32,以及物理NAND管理层33。 DRAM管理层31执行起高速緩冲存储器 作用的DRAM 11中的数据管理。逻辑NAND管理层32执行NAND存储 器12中的逻辑数据管理。物理NAND管理层33执行NAND存储器12中的物理数据管理、NAND存储器12的寿命延长处理等。
在DRAM 11的写入高速緩冲存储器区WC和读取高速緩沖存储器区 RC中,通过由主机设备的地址管理方法所管理的逻辑地址(在下文中为 "LBA (逻辑块地址)")指定的数据被存储在DRAM ll上的预定范围中 的物理地址(在下文中为"DRAM内物理地址,,)中。DRAM管理层31中 的数据通过高速緩冲存储器管理信息41来管理,该高速緩冲存储器管理信 息41包括将要存储的数据的LBA与DRAM内物理地址之间的对应关系 和指示数据在页中的扇区大小的单位中的存在或不存在的扇区标志。
图5以表状方式示例高速緩沖存储器管理信息41的实例。高速緩冲存 储器管理信息41为用于DRAMll的一个页大小的一个区的一个条目。条 目的数目等于或小于适合写入高速緩冲存储器区WC和读取高速緩冲存储 器区RC的页的数目。在这些条目中的每一个中,页大小的数据的LBA、 DRAM内物理地址和扇区标志相关联,其中该扇区标志指示通过以扇区大 小划分该页而获得的区中的每一个中的有效数据的位置。
在NAND存储器12中,来自DRAM 11的数据存储在NAND存储器 12上的预定范围中的物理地址(在下文中为"NAND内物理地址,,)中。在 通过多值存储器形成的NAND存储器12中,因为可重写的次数有限,所 以通过驱动控制单元14来将构成NAND存储器12的块当中的重写的次数 控制为均衡的。换句话说,当执行在NAND存储器12中的某一 NAND内 物理地址中写入的数据的更新时,驱动控制单元14执行控制以使构成 NAND存储器12的块当中的重写的次数均衡,以在不同于原始块的块中 写入这样的数据且使原始块无效,该数据反映其中包括有将要更新的数据 的块的需要更新的部分。
如上文所解释的,在NAND存储器12中,在数据的写入和读出处理 与数据的擦除处理中,处理单位不同。在数据的更新处理中,更新之前的 数据的位置(块)与更新之后的数据的位置(块)不同。因此,在第一实 施例中,除NAND内物理地址之外,还提供在NAND存储器12中独立使 用的NAND内逻辑地址(在下文中为"NAND内逻辑地址,,)。因此,逻辑NAND管理层32中的数据通过逻辑NAND管理信息42 来管理,该逻辑NAND管理信息42指示从DRAM 11接收的页大小单位 的数据的LBA与NAND内逻辑地址(其指示NAND存储器12的其中存 储所接收的数据的逻辑页位置)之间的关系且指示具有与作为NAND存储 器12中的擦除单位的块的大小一致的大小的逻辑块的地址范围的关系。可 将多个逻辑块的集合设定为一逻辑块。物理NAND管理层33中的数据通 过NAND内逻辑地址-物理地址转换信息(在下文中为"逻辑-物理转换信 息")来管理,该NAND内逻辑地址-物理地址转换信息包括NAND存储 器12中的NAND内逻辑地址与NAND内物理地址之间的对应关系。
图6以表状方式示例逻辑NAND管理信息42的实例。图7以表状方 式示例NAND内逻辑-物理转换信息43的实例。如图6中所示,逻辑NAND 管理信息42包括逻辑页管理信息42a和逻辑块管理信息42b。逻辑页管理 信息42a具有用于一个页大小的一个逻辑区的一个条目。条目中的每一个 包括一个页大小的数据的LBA、 NAND内逻辑地址,以及指示该页是否有 效的页标志。逻辑块管理信息42b包括为NAND存储器12的一个块大小 的区i殳定的NAND内物理地址。如图7中所示,在NAND内逻辑-物理转 换信息43中,NAND存储器12的NAND内物理地址与NAND内逻辑地 址相关联。
通过使用这些种类的管理信息,可建立用于主机设备中的LBA、用于 NAND存储器12中的NAND内逻辑地址与用于NAND存储器12中的 NAND内物理地址的对应。这使得可以在主机设备与存储器系统10之间 交换数据。
通过DRAM管理层31管理的管理信息由于断电或类似的原因而丢 失,使得该管理信息可被称为易失性表。与此相反,如果通过逻辑NAND 管理层32和物理NAND管理层33管理的管理信息由于断电或类似的原因 而丟失,则丢失的管理信息阻碍存储器系统10的成功起动,使得需要采取 措施,以便即使在断电或类似的情况下也存储管理信息。因此,该管理信 息可被称为非易失性表。
14该非易失性表管理存储在NAND存储器12中的数据。如果不存在非 易失性表,则不能存取存储在NAND存储器12中的信息,或者存储在区 中的数据4皮擦除。因此,需要将非易失性表存储为最新信息来为突然断电 作准备。因此,在第一实施例中,将至少包括非易失性表的管理信息以最 新状态存储在NAND存储器12的管理信息存储区126中。下面解释存储 在NAND存储器12的管理信息存储区126中的管理信息存储信息。以下 解释假定仅非易失性表存储在管理信息存储区126中。
图8为存储在管理信息存储区126中的管理信息存储信息的内容的实 例的示意图。在管理信息存储区126中存储以下项目管理信息存储信息, 其包括作为某一点处的非易失性表的内容的快照210;更新前日志(在下 文中称作前日志)220A,其是在下一次取得快照之前的非易失性表的内容 的更新差异信息,且在更新之前获取;更新后日志(在下文中称作后日志) 220B,其是与前日志220A的内^目同的内容的日志信息,且在更新之后 被存储;第二指针230,其指示快照210的位置(块)、为快照210而获 取的前日志220A的位置(块)和从快照210获取的后日志220B的位置 (块);以及根指针240,其指示第二指针230被存储的位置(块)。快 照210是通过存储存储在DRAM 11的暂时存储区111中存储的管理信息 当中的至少包括预定点处的非易失性表的管理信息而获得的信息。
快照210、前日志220A、后日志220B、第二指针230和根指针240 存储在不同块中。这些块的大小与作为擦除单位的物理块的大小相同。快 照210存储在快照存储块中。快照210包括作为NAND存储器12的管理 信息存储区126中的非易失性表的逻辑NAND管理信息42和NAND内逻 辑-物理转换信息43。当存储新快照210时,将快照210存储在与之前存储 快照210的块不同的块中。
前日志220A和后日志220B是在当存在非易失性表的内容的改变时改 变内容之后的非易失性表与对应于数据写入处理等的快照210 (或者快照 210和已经产生的日志)之间的差异信息。具体地,取得快照210之后的 第一前日志MOA和第一后日志220B是非易失性表与快照210之间的差异信息。取得快照210之后的第二或后续前日志220A是已产生的前日志220A 与快照210的组合与非易失性表之间的差异信息。取得快照210之后的第 二或后续后日志220B是已产生的后日志220B与快照210的组合与非易失 性表之间的差异信息。
前日志220A是管理信息被实际更新之前所产生的信息。因此,在管 理信息通过数据写入处理或类似处理的执行而被实际更新之前,基于关于 管理信息如何被更新的更新安排而产生前日志220A。
后日志220B是管理信息被更新实际之后所产生的信息。因此,在管 理信息根据数据写入处理或类似处理的执行而被实际更新之后,通过使用 实际管理信息来产生后日志220B。
前曰志220A和后日志220B分别被存储在日志存储块中。即使快照的 产生改变,也以一次写入的方式将前日志220A和后日志220B写入相同日 志存储块中。
图9描绘日志的实例。因为前日志220A与后日志220B具有相同信息, 所以将前日志220A作为日志的实例来进行解释。前日志220A包括目标 信息,其为改变目标的管理信息;目标条目,其为作为目标信息中的改变 目标的条目;目标项目,其为作为目标条目中的改变目标的项目;以及改 变内容,其作为目标项目的改变的内容。前日志220A和后日志220B随着 新快照210的存储而重新形成,这是因为前日志220A和后日志220B是针 对快照210的更新差异信息。
第二指针230存储在第二指针存储块中。第二指针230仅须为指示用 于指示快照210、前日志220A和后日志220B的存储位置的块的顶地址的 指针。当重新存储快照210时或当改变快照存储块或日志存储块时,更新 第二指针230。可将前日志220A和后日志220B的指针存储在快照210中 而不将其存储在第二指针存储块中。
第二指针230包括用于存取快照存储块的快照存取信息、用于存取用 于前日志220A和后日志220B的日志存储块的日志存取信息,以及指示存 储下一个第二指4f的页位置的下一个指针。通过该下一个指针而将第二指针230改变为链接列表系统中的信息。可以通过从通过根指针240指定的 第二指针存储块的顶页开始跟踪下一个指针而到达最新的笫二指针230。
代替链接列表系统,可以以一次写入的方式以从第二指针存储区的顶页开 始的顺序存储第二指针230。
根指针240存储在第一根指针存储块中。根指针240是用于存取存储 有第二指针230的第二指针存储块的信息,且是当起动存储器系统10时在 用于恢复管理信息的处理中首先读取的信息。当第二指针存储块改变时, 根指针240改变。根指针240以一次写入的方式以从块的顶页开始的顺序 存储在根指针存储块中。在这种情况下,根指针存储块中紧接在未被写入 的页之前的页具有最新信息。因此,可以通过检索(retrieve)未被写入的 页的最高次页而检索出最新的根指针240。与在第二指针230的情况下一 样地,还可以使用链接列表。
根指针240存储在NAND存储器12的固定区1261中。快照210、前 日志220A、后日志220B和第二指针230存储在NAND存储器12的可变 区1262中。固定区1261是NAND存储器12中的受保护区,在该受保护 区中通过逻辑NAND管理层32管理的逻辑块与通过物理NAND管理层33 管理的物理块之间的关系固定,并且,固定区1261是这样的区,在该区中 存储对于运行存储器系统10所必要的且具有低更新频率(其中几乎不发生 重写和写入)的信息。
可变区1262是其中NAND存储器12的除固定区1261之外的区中通 过逻辑NAND管理层32管理的逻辑块与通过物理NAND管理层33管理 的物理块之间的关系可变的区,且是作为磨损均化(wear leveling)的目 标的区。
下面解释驱动控制单元14的功能。图10为驱动控制单元14的功能配 置的实例的框图。驱动控制单元14包括数据管理单元141、 ATA命令处 理单元142、安全管理单元143、启动加载器144、初始化管理单元145, 以及除错支持单元146。数据管理单元141执行DRAM 11与NAND存储 器12之间的数据传送和对关于NAND存储器12的各种功能的控制。ATA命令处理单元142基于从ATA接口接收的指令而与数据管理单元141协 作执行数据传送处理。安全管理单元143与数据管理单元141和ATA命 令处理单元142协作管理各种种类的安全信息。启动加载器144在通电期 间将各种管理程序(固件)从NAND存储器12加载至未示出的存储器(例 如,SRAM (静态RAM))。初始化管理单元145执行对驱动控制单元 14中的控制器和电路的初始化。除错支持单元146处理通过RS232C接口 而从外部供应的除错数据。
图11为数据管理单元141的功能配置的实例的框图。数据管理单元 141包括数据传送处理单元151、管理信息管理单元152和管理信息恢复单 元155。数据传送处理单元151执行DRAM 11与NAND存储器12之间的 数据传送。管理信息管理单元152根据存储在DRAM 11和NAND存储器 12中的数据的改变而执4亍管理信息的改变和存储。管理信息恢复单元155 基于在通电等期间所存储的管理信息而恢复最新的管理信息。
管理信息管理单元152包括管理信息写入单元153和管理信息存储单 元154。当根据由数据传送处理单元151进行的对存储在DRAM 11或 NAND存储器12中的数据的改变处理而使得存储在DRAM 11中的管理信 息的更新有必要时,管理信息写入单元153执行该管理信息的更新。
当存储器系统10满足预定M时,管理信息存储单元154在NAND 存储器12的管理信息存储区126中将管理信息存储为快照210,将管理信 息中将要更新的信息存储为前日志220A,且将管理信息中更新后的信息存 储为后日志220B。当第二指针230中的写入的位置根据快照210、前日志 220A或后日志220B的存储而改变时,管理信息存储单元154对第二指针 230应用更新处理。
当满足与存储器系统10有关的预定*时,由管理信息存储单元154 来执行快照210的存储。例如,当NAND存储器12的管理信息存储区126 中为了存储日志220 (前日志220A和后日志220B )而提供的日志存储区 变满(即,该区完全被数据填满)时,执行快照210的存储。
在涉及存储在DRAM 11中的管理信息(非易失性表)的更新的NAND存储器12上的数据更新期间(当NAND存储器12中的数据写入为必要 时),由管理信息存储单元154来执行日志220 (前日志220A和后日志 220B)的存储。
当接通存储器系统10的电源时,管理信息恢复单元155基于存储在 NAND存储器12的管理信息存储区126中的管理信息存储信息而执行管 理信息的恢复处理。具体地,管理信息恢复单元155按顺序追踪固定区1261 中的根指针240和可变区1262中的第二指针230、快照210、前日志220A 和后日志220B,并判定是否存在与最新的快照210对应的前日志220A和 后日志220B。当不存在前日志220A和后日志220B时,管理信息恢复单 元155在DRAM 11中恢复快照存储块的快照210作为管理信息。当存在 前曰志220A和后日志220B时,这意味着已发生诸如程序错误或短时中断 (电源的异常隔离)的异常结束,管理信息恢复单元155从快照存储块获 取快照210,从日志存储块获取前日志220A和后日志220B,且在DRAM ll上执行管理信息(非易失性表)的恢复(将前日志220A和后日志220B 反映在快照210上)。
下面解释由管理信息管理单元152进行的对存储器系统10的管理信息 的存储处理。图12为对存储器系统10的管理信息的存储处理程序的实例 的流程图。图13为用于解释对前日志和后日志的存储处理的图。假定存储 器系统10连接至主机设备且作为主机设备的次级存储装置而操作,主机设 备(存储器系统IO)处于起动状态中,且在该起动状态之前在存储器系统 10停止之前存储快照210。
首先,基于在主机设备(存储器系统IO)的上一次结束时存储的快照 210而使主机设备(存储器系统IO)处于起动状态中(步骤Sll)。此后, 在必要时执行从主机设备至NAND存储器12的数据读取或写入。管理信 息管理单元152判定是否满足预定的快照存储条件(步骤S12)。当不满 足快照存储条件时(步骤S12处为"否"),管理信息管理单元152判定是 否接收到涉及管理信息的更新的指令(用于NAND存储器中的数据写入的 指令)(步骤S13 )。当未接收到涉及管理信息的更新的指令时(步骤S13处为"否,,),管理信息管理单元152返回至步骤S12。
当接收到涉及管理信息的更新的指令时(步骤S13处为"是"),管理 信息管理单元152通过执行指令判定指示如何更新管理信息的更新安排 (步骤S14 )。管理信息管理单元152将更新安排存储在NAND存储器12 的管理信息存储区126的日志存储块中作为前日志220A (步骤S15 )。
当前日志220A未存储在日志存储块中时,更新安排(前日志)是更 新管理信息的时间处的非易失性表与存储在快照存储块中的快照210之间 的差异信息。当日志220 (在下文中称作过去的前日志220A)已存储在日 志存储块中时,更新安排(日志)是更新管理信息的时间处的非易失性表 与快照210与过去的前日志220A的组合之间的差异信息。具体地,如图 13中所示,在执行数据写入(X)作为对第X数据的写入处理之前,将与 数据写入(X)对应的前日志(X)存储在NAND存储器12中作为前曰志 220A。在该点处,例如,将信息yl存储为前日志220A。例如,在将前日 志220A (更新安排)日志记录在DRAM 11上之后,将前日志220A存储 在NAND存储器12的管理信息存储区126中。
随后,逻辑NAND管理层32执行在步骤S13处所接收的指令(例如, 用于NAND存储器12的数据存储区125中的用户数据的写入(X)的处 理)(步骤S16)。
此后,根据所执行的处理而更新存储在DRAM 11中的管理信息。管 理信息存储单元154将NAND存储器12的管理信息存储区126中的管理 信息中的更新后的信息存储为后日志220B。当后日志220B未存储在曰志 存储块中时,后日志220B是当前点处的非易失性表与存储在快照存储块 中的快照210之间的差异信息。当后日志220B (在下文中称作"过去的后 曰志220B")已存储在日志存储块中时,后日志220B是当前表处的非易失 性表与快照210与过去的日志的组合之间的差异信息。
将与数据写入(X)对应的后日志220B (X)存储在NAND存储器12 中作为后日志220B。在该点处,例如,将信息yl存储为后日志220B。存 储为后日志220B的信息yl与存储为前日志220A的信息yl相同(步骤
20S17)。此后,管理信息管理单元152返回至步骤S12。
当不满足快照存储条件时(步骤S12处为"否,,)且当接收到涉及管理 信息的更新的指令时(步骤S13处为"是"),执行步骤S14至S17处的处 理。换句话说,以与对第X数据的写入处理相同的方式,执行对第(X+l) 数据的写入处理。在执行数据写入(X+l)作为对第(X+l)数据的写入处 理之前,将与数据写入(x+l)对应的前日志(X+l)存储在NAND存储 器12中作为前日志220A。在此点处,例如,将信息y2存储为前日志220A。 执行NAND存储器12中的数据存储区125中的数据写入(X+l)。将与 数据写入(X+l)对应的后日志(X+l)存储在NAND存储器12中作为后 日志220B。在此点处,例如,将信息y2存储为后日志220B。存储为后日 志220B的信息y2与存储为前日志220A的信息y2相同。
当在步骤S12处满足快照存储条件时(步骤S12处为"是"),管理信 息管理单元152将至少包括DRAM 11的暂时存储区111中的非易失性表 的管理信息存储在NAND存储器12的管理信息存储区126中作为快照210 (步骤S18 )。管理信息管理单元152判定是否指示存储器系统10的结束 (步骤S19)。当未指示存储器系统10的结束时,管理信息管理单元152 返回至步骤S12。当指示存储器系统10的结束时,处理完成。
下面解释由管理信息恢复单元155执行的对存储器系统10的管理信息 的恢复处理。图14是对存储器系统10的管理信息的恢复处理程序的实例 的流程图。图15A至图15D是存储器单元中的数据与存储器单元的阈值电 压之间的关系以及NAND存储器中的写入的顺序的实例的图。与在上述解 释中一样地,存储器系统10连接至主机设备且作为主机设备的笫二存储装 置操作。
首先,由于例如从短时中断的恢复而接通主机设备的电源,且向存储 器系统10发出起动指令(步骤S31)。管理信息恢复单元155顺序地读取 NAND存储器12的管理信息存储区126中的根指针240和第二指针230 (步骤S32 ),获取其中存储有快照210以及前日志和后日志(前日志220A 和后日志220B )的块的地址(步骤S33 ),且获取快照210 (步骤S34 )。此后,管理信息恢复单元155参考NAND存储器12中的前日志220A和后日志220B,判定是否已发生短时中断(步骤S35)。例如,当前日志220A和后日志220B存在于NAND存储器12中时,管理信息恢复单元155判定已发生短时中断。关于是否已发生短时中断的判定可通过例如比较前日志220A与后日志220B来执行。在第一实施例中,前日志220A与后日志220B存储相同信息。因此,例如,当作为前日志220A而存储的页的数目与作为后日志220B而存储的页的数目彼此不一致时,意味着已发生短时中断。短时中断的发生也可基于ECC错误的存在或不存在、作为前日志220A而存储的页的数据以及作为后日志220B而存储的页的数据来判定。
当已发生短时中断时(步骤S35处为"是"),管理信息恢复单元155基于NAND存储器12中的最新的前日志220A和最新的后日志220B而检查已发生短时中断的时刻(timing)(步骤S36)。
另外,管理信息恢复单元155判定已发生短时中断的时刻是否在后日志220B的存储期间(步骤S37)。例如,当后日志220B中的最后页正被写入时,不能读出该最后页。因此,判定在后日志220B的存储期间已发生短时中断。当前日志220A中的最后页正被写入时,不能读出该最后页。因此,判定在前日志220A的存储期间已发生短时中断。当前日志220A中的最后页中被写入日志且后日志220B中的最后页中未被写入日志时,判定在数据的写入期间已发生短时中断。
当管理信息恢复单元155判定已发生短时中断的时刻在后日志220B的存储期间时(步骤S37处为"是"),管理信息恢复单元155选择最新的前日志220A (步骤S38)。另一方面,当管理信息恢复单元155判定已发生短时中断的时刻不在后日志220B的存储期间时(步骤S37处为"否,,),管理信息恢复单元155存储完成存储的最新的后日志220B (步骤S39 )。换句话说,当前日志220A中的最后页正被写入时,或者当前日志220A中的最后页中被写入日志且后日志220B中的最后页中未被写入日志时,选择最新的后日志220B。此后,管理信息恢复单元155从日志存储块获取选定的日志(前日志220A或后日志220B )且在DRAM 11的工作区112中扩展日志(步骤S40 )。管理信息恢复单元155恢复管理信息(非易失性表)(以从最旧日志开始的顺序将日志反映在快照210上)(步骤S41),且管理信息恢复处理结束。
另一方面,当尚未发生短时中断时(步骤S35处为"否"),管理信息恢复单元155在DRAM 11的暂时存储区111中恢复管理信息,且管理信息恢复处理结束。
图15A至图15D为存储器单元中的数据与存储器单元的阈值电压之间的关系以及NAND存储器中的写入的顺序的实例的图。首先,当执行擦除操作时,将存储器单元中的数据设定为"O"。随后,如图15A中所示,当执行低位页中的写入时,存储器单元中的数据改变为数据"0,,和数据"2"。如图15B中所示,在在高位页中写入之前,将等于或低于实际数据的阈值电压的数据写入邻近单元中。接着,通过写入该单元中的数据扩展数据"2"的阈值的分布。此后,当写入高位页的数据时,存储器单元中的数据改变为具有原始阁值电压的数据"0,,至"3",如图15C中所示。在第一实施例中,从低阈值电压至高阈值电压限定存储器单元中的数据。
解释NAND存储器12中的写入处理。如图15D中所示,对来自块中与源极线接近的存储器单元的页中的每一个执行写入操作。在图15D中,为了4更于解释,示出四条字线。
在第一写入(通过圆圈围绕的l指示)中,将l-位数据写入存储器单元1的4氐位页中。在第二写入(通过圆圏围绕的2指示)中,将l-位数据写入在字线方向上邻近存储器单元1的存储器单元2的低位页中。在第三写入(通过圆圈围绕的3指示)中,将1-位数据写入在位方向上邻近存储器单元1的存储器单元3的低位页中。在第四写入(通过圓圏围绕的4指示)中,将1-位数据写入对角地邻近存储器单元1的存储器单元4的低位页中。
在第五写入(通过圆圏围绕的5指示)中,将l-位数据写入存储器单元l的高位页中。在第六写入(通过圆圏围绕的6指示)中,将l-位数据写入在字线方向上邻近存储器单元1的存储器单元2的高位页中。在第七写入(通过圆圏围绕的7指示)中,将1-位数据写入在位方向上邻近存储器单元3的存储器单元5的低位页中。在第八写入(通过圓圏围绕的8指示)中,将1-位数据写入对角地邻近存储器单元3的存储器单元6的低位页中。
在第九写入(通过圆圏围绕的9指示)中,将l-位数据写入存储器单元3的高位页中。在第十写入(通过圆圏围绕的IO指示)中,将l-位数据写入在字线方向上邻近存储器单元3的存储器单元4的高位页中。在第十一写入(通过圆圏围绕的ll指示)中,将1-位数据写入在位方向上邻近存储器单元5的存储器单元7的低位页中。在第十二写入(通过圆圏围绕的12指示)中,将1-位数据写入对角地邻近存储器单元5的存储器单元8的低位页中。
在第十三写入(通过圓圏围绕的13指示)中,将l-位数据写入存储器单元5的高位页中。在第十四写入(通过圆圏围绕的14指示)中,将1-位数据写入在字线方向上邻近存储器单元5的存储器单元6的高位页中。在第十五写入(通过圆圏围绕的15指示)中,将1-位数据写入存储器单元7的高位页中。在第十六写入(通过圆圈围绕的16指示)中,将l-位数据写入在字线方向上邻近存储器单元7的存储器单元8的高位页中。
接下来解释用于管理信息的恢复的日志的选择方法的特定实例。图16A至图16C是用于解释用于管理信息的恢复的日志的选择方法的图。在图16A至图16C中,示出这样的状态,其中为用于前日志的日志存储块(各图中的每一个的左侧上的块;在下文中称作前日志块)和用于后日志的日志存储块(各图中的每一个的右侧上的块;在下文中称作后日志块)中的页中的每一个存储前日志和后日志。图16A至图16C中的一个物理块中的页对应于图15A至图15D。换句话说,页1至页4、页7至页8和页11至页12为图15A至图15D中所示的^(氐位页。页5至页6、页9至页10和页13至页16为图15A至图15D中所示的高位页。在用于前日志的块和用于后日志的块中,这些块中的行中的每一个对应于一个页。在图16A至图16C中,为了便于解释,将页分离为低位页和高位页。低位页与高位页的组合形成一个物理块。
在图16A至图16C中,正常保存的日志由日志xl表示,由于短时中断而中断的日志由日志yl表示,且当前正被写入的日志由日志zl表示。因为短时中断在日志zl的写入期间发生且日志yl中断,所以与日志zl的页对应的存储器单元和与日志yl的页对应的存储器单元相同。日志yl的页为低位侧上的页(低位页),而日志zl的页为高位侧上的页(高位页)。在这些块中的每一个的日志(页)当中,圆圏围绕的日志是这样的日志,这些日志-故选定作为用于管理信息的恢复的日志。
图16A为正常时间处(当不发生电源的异常隔离且电源断开时)的前日志和后日志的图。图16B和图16C为已发生短时中断的时间处的前日志和后日志的图。
在图16A中,示出当在未存储快照210的情况下断开存储器系统10的电源时存储在NAND存储器12中的前日志和后日志。在图16A的情况下,因为数据仅写入低位页(页l至4)中,所以即使在在低位页中的写入期间发生短时中断,也不发生低位页数据中断。如图16A中所示,在第一实施例中,前日志和后日志存储在不同块的相同页中。因此,当电源在正常时间断开时,前日志的最后页与后日志的最后页处于相同页位置中。因此,在这种情况下,通过4吏用前日志来恢复管理信息。在图16A中所示的正常时间,可通过使用后日志代替前日志来恢复管理信息。
在图16B中,在执行两页上的"日志写入(1),,作为前日志之后,当执行两页上的"日志写入(1),,作为后日志时,在第一页的写入期间发生短时中断。如图16B中所示,当在在后日志的高位页(页5)中写入期间发生短时中断时,在与被写入的高位页对应的低位页(后日志的页2)中发生低位页数据中断。换句话说,在图16B的情况下,因为在后日志的存储期间发生短时中断,所以在后日志侧上的块中产生日志yl(例如,页2 )。在这种情况下,与"日志写入(1)"对应的日志zl存储在后日志侧上的块中。与"日志写入(1)"对应的前日志存储在前日志侧上的块中(在两页 上)。因此,通过使用其中日志不中断的前日志而恢复管理信息。
在图16C中,在执行"日志写入(1)"作为前日志之后,在与前日志 对应的数据写入期间发生错误,且执行"日志写入(2 )"作为与数据写入的 重写处理对应的前日志。另外,在图16C中,当执行"日志写入(2)"作 为与数据写入的重写对应的后日志时,发生短时中断。如图16C中所示,
当在在后日志的高位页(页5)中写入期间发生短时中断时,在与被写入
的高位页对应的低位页(后日志的页2)中发生低位页数据中断。换句话
说,在图16C的情况下,因为在后日志的存储期间发生短时中断,所以在
后日志侧上的块中产生日志yl。在这种情况下,与"日志写入(l)"对应
的日志xl和与"日志写入(2 )"对应的日志xl存储在前日志侧上的块中。
另一方面,与"曰志写入(2)"对应的日志zl存储在后日志侧上的块中。
因此,通过^f吏用其中日志不中断的前日志而恢复管理信息。
图18是用于解释在正常时间产生前日志和后日志的方法的图。图19 是用于解释在发生数据写入错误时产生日志的方法的实例的图。图18对应
于图16A中所示的情况且表示在执行对前日志的"日志写入(1)"和随 后对后日志的"日志写入(1),,之后,在无程序餘溪等的情况下完成数据写 入。另一方面,图19对应于图16C中所示的情况。在对前日志的"日志写 入(l)"之后,当执行数据写入时,发生程序错误(数据写入错误,例如, 当对数据写入区的擦除操作未正常结束且数据写入区变为坏块时)。因此,
执行"日志写入(2 )"作为与数据重写处理对应的前日志,且执行数据写入。 另外,执行"日志写入(2)"作为与数据写入的重写处理对应的后日志。在 图16C中,在此点处发生短时中断。当不发生短时中断时,如图19中所 示,在作为后日志的"日志写入(2)"之后,执^f亍与对前日志的"日志写入 (1)"对应的对后日志的"日志写入(1)",且处理结束。
下面解释选择用于管理信息的恢复的日志的方法的另一特定实例。图 17A至图17C是用于解释选择用于管理信息的恢复的日志的方法的图。在 图17A至图17C中,与在图16A至图16C中一样地,示出这样的状态,其中为用于前日志的日志存储块(各图中的每一个的左侧上的块;在下文 中称作前日志块)和用于后日志的日志存储块(各图中的每一个的右侧上 的块;在下文中称作后日志块)中的页中的每一个存储前日志和后日志。 在图17A至图17C中,对前日志和后日志中的每一个示例两个块。 一个块 中的页对应于图15A至图15D。块中的每一行对应于一个页。在图17A至 图17C中,为了简化示例,省略低位页与高位页之间的区别且将一个块的 页的数目设定为八。然而,可在与图15A至图16C中所示的设定相同的设 定下解释写入处理的细节(诸如,页写入的顺序)。
在图17A至图17C中,与在图16A至图16C中一样地,正常存储的 日志由日志xl表示,由于短时中断而中断的日志由日志yl表示,且正被 写入的日志由日志zl表示。因为短时中断已在日志zl的写入期间发生且 日志yl中断,所以与日志zl的页对应的存储器单元和与日志yl的页对应 的存储器单元含有相同信息。在这些块中的每一个的日志(页)当中,圆
圏围绕的日志是这样的日志,其^皮选定作为用于管理信息的恢复的日志。
在图17A中,当在作为后日志的两个块(两页)上的"日志写入(l)" 中执行第一块中的日志写入时,发生短时中断。在这种情况下,在后日志 侧上的块中,与"日志写入(l)"对应的日志zl存储在第一块的最后页中。 因为在后日志的存储期间发生短时中断,所以在后日志侧上的块中产生日 志yl。另一方面,在前日志侧上的块中,已执行两个块(两页)上的"日 志写入(l)"作为前日志。因此,通过4吏用其中日志不中断的前日志而恢 复管理信息。
在图17B中,在在作为前日志的两个块(两个页)上的"日志写入(1 ),, 中执行第二块中的日志写入之后,在与该日志对应的数据写入期间发生错 误,且执行"日志写入(2)"作为与数据写入的重写处理对应的前日志。 另外,在图17B中,当执行"日志写入(2),,作为与数据写入的重写处理 对应的后日志时,发生短时中断。在这种情况下,在后日志侧上的块中, 与"日志写入(2)"对应的日志zl存储在第一块的最后页中。因为在后日 志的存储期间发生短时中断,所以在后日志侧上的块中产生日志yl。因此,通过使用其中日志不中断的前日志而恢复管理信息。
在图17C中,在在作为前日志的两个块(两个页)上的"日志写入(1 ),, 中执行第二块中的日志写入之后,在与该日志对应的数据写入期间发生错 误,且执^f亍"日志写入(2)"作为与数据写入的重写处理对应的前日志。 另外,在图17C中,执行"日志写入(2)"作为与数据写入的重写处理对 应的后日志,且当在两个页上的"日志写入(1),,中作为后日志执行第一页 中的日志写入时,发生短时中断。在这种情况下,在后日志侧上的块中, 与"日志写入(l)"对应的日志zl存储在第二块的顶页中。尽管在后曰志 的存储期间发生短时中断,但因为是在第二块的顶页的存储期间发生短时 中断,所以不产生日志yl。通过4吏用其中日志不中断的前日志而恢复管理
在图16A至图17C中,加括号的前日志用于管理信息的恢复。然而, 图16A至图17C中通过交叉标记的前日志也可用于恢复,因为前日志是已 存储的日志。因此,除圆圏围绕的前日志之外,通过交叉标记的前日志也 可用于管理信息的恢复。
在此实施例中,如参考图19所解释的,当在数据的写入期间发生程序 错误时,产生与重写处理对应的前日志和后日志,且产生与其中发生4^ 的写入处理对应的前日志和后日志。以此方式,执行短时中断判定处理和 类似处理,同时确保日志的一致性。这使得即使当在数据写入期间发生程 序错误时也可以确实地恢复管理信息。
在图19中,因为前日志和后日志根据程序错误的发生而被冗余地获 取,所以短时中断判定处理和类似处理是复杂的。因此,在该实施例中, 参考图20来解释在发生程序错误时执行的另一处理方法。
图20是用于解释在发生数据写入错误时产生日志的方法的另一实例 的图。如图20中所示,在对前日志的"日志写入(1)"之后,当在执行数 据写入时发生程序错误(数据写入错误)时,不获取与数据重写处理对应 的前日志,且再次执行数据写入。在结束数据写入之后,不产生后曰志, 且获取快照来替代后日志以结束处理。以此方式,当存储前日志且数据写入以失败结束时,在执行重写之后, 不产生后日志,且存储快照以完成处理。
根据该实施例,当在前日志的存储之后及后日志的存储之前发生程序 错误时,在日志中不存储由于对抗错误的措施的管理信息的更新,且存储 快照。因此,可以简化发生短时中断期间的恢复处理且简化日志管理。换 句话说,当执行已作为前日志而写入的更新安排中所不包括的处理时,因 为再次取得快照,所以不必执行复杂的日志管理,且可以确实地使用该快 照恢复管理信息。
电荷累积层不限于浮动栅型,且可为包括诸如MONOS (金属-氧化物 -氮化物-氧化物-半导体)结构的氮化硅膜和其它系统的电荷俘获型。
如上文所解释的,根据本发明,存在这样效果即使当在数据写入期 间发生程序错误时,也可以确实地恢复管理信息。
本领域寺支术人员将容易想到其他优点和修改。因此,本发明在其更宽 的方面不限于在此所示和所述的特定细节和示例性实施例。因此,可在不 偏离由所附权利要求书及其等价物所限定的总发明构思的精神或范围的情 况下进行各种修改。
29
权利要求
1.一种存储器系统,其包括易失性第一存储单元;非易失性第二存储单元,其包括可存储多值数据的存储器单元;以及控制器,其通过所述第一存储单元而执行在主机设备与所述第二存储单元之间的数据传送,将管理信息存储在所述第一存储单元中,且在更新所存储的管理信息时基于所存储的管理信息而执行所述第一和第二存储单元中的数据管理,其中所述管理信息包括在所述存储器系统的起动操作期间存储在所述第二存储单元中的数据的存储位置,所述控制器包括管理信息存储单元,其在满足预定条件时将存储在所述第一存储单元中的管理信息存储在所述第二存储单元中作为快照,且在所述第二存储单元中存储作为在所述管理信息中发生改变之前所存储的管理信息的更新差异信息的前日志和作为在所述管理信息中发生所述改变之后所存储的管理信息的更新差异信息的后日志;以及管理信息恢复单元,当所述前日志或所述后日志在所述起动操作期间存在于所述第二存储单元中时,所述管理信息恢复单元基于所述快照以及所述日志或所述后日志而执行所述第一存储单元中的管理信息的恢复,并且当所述前日志和所述后日志在所述起动操作期间不存在于所述第二存储单元中时,所述管理信息恢复单元基于所述快照而执行所述第一存储单元中的管理信息的恢复,其中当在作为所述前日志的存储之后的更新处理而执行所述第二存储单元中的数据的写入时发生程序错误时,所述管理信息存储单元在再次执行数据写入之后存储快照而不执行新日志的写入。
2. 根据权利要求l的存储器系统,其中,当在作为所述前日志的存储 之后的更新处理而执行所述第二存储单元中的数据的写入时发生程序g 时,所述管理信息存储单元存储所述快照而不执行新前日志和新后日志的 写入。
3. 根据权利要求2的存储器系统,其中所述第二存储单元包括 快照存储区,其用于存储所述快照;前曰志存储区,其用于存储所述前曰志; 后日志存储区,其用于存储所述后日志;以及 指针存储区,其用于存储指针,所述指针指示所述快照存储区、所述 前曰志存储区和所述后日志存储区的存储位置。
4. 根据权利要求3的存储器系统,其中所述快照存储区、所述前日志 存储区、所述后日志存储区和所迷指针存储区中的每一个包括作为数据擦 除单位的块。
5. 根据权利要求4的存储器系统,其中所述前日志和所述后日志中的 每一个以一次写入的方式以页单位被写入所述前日志存储区和所述后曰志 区中,所述页单位小于所述块大小,每次获取所述前日志和所述后日志作 为差异信息。
6. 根据权利要求l的存储器系统,其中 所述笫一存储单元为DRAM,并且 所述第二存储单元为NAND闪速存储器。
7. —种存储器系统,其包括 易失性第一存储单元;非易失性第二存储单元,其包括可存储多值数据的存储器单元;以及 控制器,其通过所述第 一存储单元而执行在主机设备与所述第二存储 单元之间的数据传送,将管理信息存储在所述第一存储单元中,且在更新 所存储的管理信息时基于所存储的管理信息而执行所述第一和第二存储单 元中的数据管理,其中所述管理信息包括在所述存储器系统的起动操作期 间存储在所述第二存储单元中的数据的存储位置,其中所述控制器包括管理信息存储单元,其在满足预定条件时将存储在所述第一存储 单元中的管理信息存储在所述第二存储单元中作为快照,且在所述第二存 储单元中存储作为在所述管理信息中发生改变之前所存储的管理信息的更 新差异信息的前日志和作为在所述管理信息中发生所述改变之后所存储的管理信息的更新差异信息的后日志;以及管理信息恢复单元,当所述前日志或所述后日志在所述起动操作 期间存在于所述第二存储单元中时,所述管理信息恢复单元基于所述快照 以及所述前日志或所述后日志而执行所述第一存储单元中的管理信息的恢 复,并且当所述前日志和所述后日志在所述起动操作期间不存在于所述第 二存储单元中时,所述管理信息恢复单元基于所述快照而执行所述第一存 储单元中的管理信息的恢复,其中当在作为所述前日志的存储之后的更新处理而执行所述第二存储单元 中的数据的写入时发生程序错误时,所述管理信息存储单元再次存储与数 据的重写处理对应的前日志,并且在完成所述重写处理之后,在存储与所 述重写处理对应的后日志之后,存储与发生所述程序错误之前所存储的所 述前日志对应的后日志。
8. 根据权利要求7的存储器系统,其中所述第二存储单元包括 快照存储区,其用于存储所述快照;前日志存储区,其用于存储所述前日志; 后日志存储区,其用于存储所述后日志;以及 指针存储区,其用于存储指针,所述指针指示所述快照存储区、所述 前曰志存储区和所述后日志存储区的存储位置。
9. 根据权利要求8的存储器系统,其中所述快照存储区、所述前日志 存储区、所述后日志存储区和所述指针存储区中的每一个包括作为数据擦 除单位的块。
10. 根据权利要求9的存储器系统,其中所述前日志和所述后日志中 的每一个以一次写入的方式以页单位被写入所述前日志存储区和所述后日志区中,所述页单位小于所述块大小,每次获取所述前日志和所述后曰志 作为差异信息。
11. 根据权利要求7的存储器系统,其中 所述第一存储单元为DRAM,并且 所述第二存储单元为NAND闪速存储器。
全文摘要
本发明提供一种即使在在数据写入期间发生程序错误时也可确实地恢复管理信息的存储器系统。在对前日志的“日志写入(1)”之后,当在执行数据写入时发生程序错误(数据写入错误)时,所述存储器系统再次执行所述数据写入而不获取与数据重写处理对应的前日志。在结束所述数据写入之后,所述存储器系统在不产生后日志的情况下获取快照来替代所述后日志,且结束所述处理。
文档编号G06F12/16GK101681317SQ200980000143
公开日2010年3月24日 申请日期2009年2月10日 优先权日2008年3月1日
发明者初田幸辅, 松崎秀则, 松平弘树, 矢野纯二 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1