CN101681317A - 存储器系统 - Google Patents
存储器系统 Download PDFInfo
- Publication number
- CN101681317A CN101681317A CN200980000143A CN200980000143A CN101681317A CN 101681317 A CN101681317 A CN 101681317A CN 200980000143 A CN200980000143 A CN 200980000143A CN 200980000143 A CN200980000143 A CN 200980000143A CN 101681317 A CN101681317 A CN 101681317A
- Authority
- CN
- China
- Prior art keywords
- daily record
- management information
- storage unit
- data
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Library & Information Science (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种即使在在数据写入期间发生程序错误时也可确实地恢复管理信息的存储器系统。在对前日志的“日志写入(1)”之后,当在执行数据写入时发生程序错误(数据写入错误)时,所述存储器系统再次执行所述数据写入而不获取与数据重写处理对应的前日志。在结束所述数据写入之后,所述存储器系统在不产生后日志的情况下获取快照来替代所述后日志,且结束所述处理。
Description
技术领域
本发明涉及一种使用非易失性半导体存储装置的存储器系统。
背景技术
一些个人计算机(PC)使用硬盘装置作为次级存储装置。在这些PC中,已知这样的技术,该技术用于备份已存储在硬盘装置中的数据以防止数据由于某一故障而变得无效。例如,当检测到改变硬盘装置中的数据的动作时,取得一快照作为改变之前的数据的备份复本,并且产生对数据所进行的改变的日志。接着,每隔预定时间重复以下处理:取得一新快照,使过去在取得新快照之前而取得的日志无效,并且产生新日志(例如,参见美国专利申请公开第2006/0224636号)。在数据由于某一原因而变得无效的情况下,可通过参考快照和日志而恢复数据。通常存在两种类型的日志:更新前日志和更新后日志。更新前日志为在数据的更新之前作为指示数据将如何被更新的更新计划而产生的日志。另一方面,更新后日志为用于在数据实际上被更新之后核准数据的更新的日志。
近年来,作为非易失性半导体存储装置的NAND闪速存储器的容量已显著增加。结果,包括具有NAND闪速存储器作为次级存储装置的存储器系统的PC已投入实际使用。然而,不能像在存储于具有硬盘装置作为次级存储装置的个人计算机中的数据的备份的情况下一样地将美国专利申请公开第2006/0224636号中所公开的技术应用于存储于具有NAND闪速存储器作为次级存储装置的这种个人计算机中的数据的备份。这是因为使用多值存储器技术来增加NAND闪速存储器的容量,该多值存储器技术可将等于或大于2个位的多个数据(多值数据)存储在一个存储器单元中。
配置多值存储器的存储器单元具有场效晶体管结构,该场效晶体管结构具有层叠的栅极结构,其中栅极绝缘膜、浮动栅电极、栅极间绝缘膜和控制栅电极按顺序层叠在沟道区域上,且可根据累积在浮动栅电极中的电子的数目而设定多个阈值电压。为了使得可以基于该多个阈值电压而执行多值存储,需要使与一个数据对应的阈值电压的分布极窄。
例如,关于可存储四个值的多值存储器,存在这样的多值存储器,其在一个存储器单元中包括一低位的页和一高位的页,且通过在各页中写入1位数据而存储2个位(四个值)。在将数据写入这种多值存储器中的方法中,在将数据写入第一存储器单元的低位页(lower order page)中之后,将数据写入与第一存储器单元邻近的存储器单元(第二存储器单元)的低位页中。在将数据写入该邻近的存储器单元中之后,将数据写入第一存储器单元的高位页(higher order page)中(例如,参见JP-A 2004-192789(KOKAI))。
然而,在这种多值存储器中,数据被较早写入其中的第一存储器单元的阈值电压由于数据被较晚写入其中且与第一存储器单元邻近的第二存储器单元的阈值电压而波动。因此,在多值存储器中,很可能发生低位页中断(break),其中如果在将数据写入某一存储器单元的高位页中时由于例如电源的异常隔离而暂时中止写入,则数据被较早被写入其中的低位页中的数据也中断。
因此,当将存储日志且接着进行备份的常规技术应用于使用NAND闪速存储器的存储器系统时,存在的问题在于,如果在日志的写入期间发生电源的异常隔离,则当前正被写入的日志和甚至已被存储的日志中断。
当在执行数据的写入时发生程序错误时,执行数据的重写。然而,通常,尚未考虑到在这种情况下产生日志的方法,具体地,当在日志的写入期间进一步发生电源的异常隔离时产生包括复位期间的处理的日志的方法。
发明内容
根据本发明的一方面,一种存储器系统包括:易失性第一存储单元;非易失性第二存储单元,其包括可存储多值数据的存储器单元;以及控制器,其通过所述第一存储单元而执行在主机设备与所述第二存储单元之间的数据传送,将管理信息存储在所述第一存储单元中,且在更新所存储的管理信息时基于所存储的管理信息而执行所述第一和第二存储单元中的数据管理,其中所述管理信息包括在所述存储器系统的起动操作期间存储在所述第二存储单元中的数据的存储位置。所述控制器包括:管理信息存储单元,其在满足预定条件时将存储在所述第一存储单元中的管理信息存储在所述第二存储单元中作为快照,且在所述第二存储单元中存储作为在所述管理信息中发生改变之前所存储的管理信息的更新差异信息的前日志(pre-log)和作为在所述管理信息中发生所述改变之后所存储的管理信息的更新差异信息的后日志(post-log);以及管理信息恢复单元,当所述前日志或所述后日志在所述起动操作期间存在于所述第二存储单元中时,所述管理信息恢复单元基于所述快照以及所述日志或所述后日志而执行所述第一存储单元中的管理信息的恢复,并且当所述前日志和所述后日志在所述起动操作期间不存在于所述第二存储单元中时,所述管理信息恢复单元基于所述快照而执行所述第一存储单元中的管理信息的恢复。当在作为所述前日志的存储之后的更新处理而执行所述第二存储单元中的数据的写入时发生程序错误时,所述管理信息存储单元在再次执行数据写入之后存储快照而不执行新日志的写入。
根据本发明的另一方面,一种存储器系统包括:易失性第一存储单元;非易失性第二存储单元,其包括可存储多值数据的存储器单元;以及控制器,其通过所述第一存储单元而执行在主机设备与所述第二存储单元之间的数据传送,将管理信息存储在所述第一存储单元中,且在更新所存储的管理信息时基于所存储的管理信息而执行所述第一和第二存储单元中的数据管理,其中所述管理信息包括在所述存储器系统的起动操作期间存储在所述第二存储单元中的数据的存储位置。所述控制器包括:管理信息存储单元,其在满足预定条件时将存储在所述第一存储单元中的管理信息存储在所述第二存储单元中作为快照,且在所述第二存储单元中存储作为在所述管理信息中发生改变之前所存储的管理信息的更新差异信息的前日志和作为在所述管理信息中发生所述改变之后所存储的管理信息的更新差异信息的后日志;以及管理信息恢复单元,当所述前日志或所述后日志在所述起动操作期间存在于所述第二存储单元中时,所述管理信息恢复单元基于所述快照以及所述前日志或所述后日志而执行所述第一存储单元中的管理信息的恢复,并且当所述前日志和所述后日志在所述起动操作期间不存在于所述第二存储单元中时,所述管理信息恢复单元基于所述快照而执行所述第一存储单元中的管理信息的恢复。当在作为所述前日志的存储之后的更新处理而执行所述第二存储单元中的数据的写入时发生程序错误时,所述管理信息存储单元再次存储与数据的重写处理对应的前日志,并且在完成所述重写处理之后,在存储与所述重写处理对应的后日志之后,存储与发生所述程序错误之前所存储的所述前日志对应的后日志。
附图说明
图1为根据本发明的实施例的存储器系统的配置的实例的框图;
图2为NAND存储器的任意块的配置的实例的电路图;
图3A为DRAM的功能配置的示意图,且图3B为NAND存储器的功能配置的示意图;
图4为用于管理存储在存储器系统中的数据的层结构的实例的图;
图5为高速缓冲存储器管理信息表的实例的图;
图6为逻辑NAND管理信息表的实例的图;
图7为NAND内逻辑-物理转换信息表的实例的图;
图8为存储在管理信息存储区中的管理信息存储信息的内容的实例的示意图;
图9描绘日志的实例;
图10为图1中所示的驱动控制单元的功能配置的实例的框图;
图11为图10中所示的数据管理单元的功能配置的实例的框图;
图12为对存储器系统的管理信息的存储处理程序的实例的流程图;
图13为用于解释对前日志和后日志的存储处理的图;
图14为对存储器系统的管理信息的恢复处理程序的实例的流程图;
图15A至图15D为存储器单元中的数据与存储器单元的阈值电压之间的关系以及NAND存储器中的写入的顺序的实例的图;
图16A至图16C为用于解释用于管理信息的恢复的日志的选择方法的图(1);
图17A至图17C为用于解释用于管理信息的恢复的日志的选择方法的图(2);
图18为用于解释在正常时间产生前日志和后日志的方法的图;
图19为用于解释在发生数据写入错误时产生日志的方法的实例的图;以及
图20为用于解释在发生数据写入错误时产生日志的方法的另一实例的图。
具体实施方式
下面参考附图详细地解释根据本发明的存储器系统的示例性实施例。本发明不受此实施例限制。
实施例
根据本发明的第一实施例的存储器系统包括非易失性半导体存储装置,且用作诸如个人计算机的主机设备的次级存储装置(SSD:固态驱动器)。存储器系统具有存储主机设备请求写入的数据和读出主机设备请求读出的数据并将数据输出至主机设备的功能。图1为根据本发明的第一实施例的存储器系统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管理的管理信息存储在其中以用于备份。在图1中,作为实例示出了包括四个信道120A至120D的NAND存储器12。这些信道120A至120D中的每一个包括两个封装121,每一个封装包括具有预定大小(例如,2GB)的存储容量的八个芯片122。通过驱动控制单元14和总线15A至15D而连接信道120A至120D。
电源电路13接收外部电源且从外部电源产生待供应至存储器系统10的各单元的多个内部电源。电源电路13检测外部电源的状态,即,上升沿或下降沿,基于所检测的状态而产生通电复位信号,且将通电复位信号输出至驱动控制单元14。
驱动控制单元14控制DRAM 11和NAND存储器12。如稍后详细解释的,例如,驱动控制单元14根据来自电源电路13的通电复位信号执行对管理信息的恢复处理和对管理信息的存储处理。驱动控制单元14通过ATA接口(I/F)而将数据传输至主机设备和从主机设备接收数据,且通过RS232C I/F而将数据传输至除错设备和从除错设备接收数据。此外,驱动控制单元14输出控制信号,该控制信号用于控制在存储器系统10的外部上设置的用于状态显示的LED的接通/断开。
下面详细解释NAND存储器12的配置。通过在基板上将多个块(擦除单位区)排成阵列而配置NAND存储器12,其中该多个块为数据擦除的单位。图2为NAND存储器12的任意块的配置的实例的电路图。在图2中,将左右方向设定为X方向,且将垂直于X方向的方向设定为Y方向。
NAND存储器12的每个块BLK包括沿着X方向按顺序排成阵列的(m+1)(m为等于或大于0的整数)个NAND串NS。每个NAND串NS具有(n+1)(n为等于或大于0的整数)个存储器单元晶体管MT0至MTn,这些存储器单元晶体管MT0至MTn共享在Y方向上彼此邻近的存储器单元晶体管MT之间的扩散区域(源极区域或漏极区域)。此外,存储器单元晶体管MT0至MTn在Y方向上串联连接。另外,选择晶体管ST1和ST2排列在该(n+1)个存储器晶体管MT0至MTn的行的两端处。
每个存储器单元晶体管MT0至MTn均为MOSFET(金属氧化物半导体场效应晶体管),其具有形成在半导体基板上的层叠的栅极结构。该层叠的栅极结构包括通过栅极绝缘膜而形成在半导体基板上的电荷累积层(浮动栅电极)以及通过栅极间绝缘膜而形成在电荷累积层上的控制栅电极。此外,存储器单元晶体管MT0至MTn为多值存储器,其中阈值电压根据累积在浮动栅电极中的电子的数目而改变,并且可根据阈值电压的差异而存储两个或更多个位数据。在第一实施例中,假定存储器单元晶体管MT为多值存储器。
字线WL0至WLn分别连接至每个NAND串NS的存储器单元晶体管MT0至MTn的控制栅电极。NAND串NS中的每一个中的存储器单元晶体管MTi(i=0至n)通过同一字线(i=0至n)而共同连接。换句话说,在块BLK中的同一行上存在的存储器单元晶体管MTi的控制栅电极连接至同一字线WLi。连接至同一字线WLi的一组(m+1)个存储器单元晶体管MTi为形成一个页的单位。在NAND存储器12中,以该页单位来执行数据的写入和读出。
位线BL0至BLm分别连接至一个块BLK中的(m+1)个选择晶体管ST1的漏极。选择栅极线SGD共同地连接至每个NAND串NS的选择晶体管ST1的栅极。选择晶体管ST1的源极连接至存储器单元晶体管MT0的漏极。类似地,源极线SL共同地连接至一个块BLK中的(m+1)个选择晶体管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中所示,DRAM 11包括写入高速缓冲存储器区、读取高速缓冲存储器区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 11上的预定范围中的物理地址(在下文中为“DRAM内物理地址”)中。DRAM管理层31中的数据通过高速缓冲存储器管理信息41来管理,该高速缓冲存储器管理信息41包括将要存储的数据的LBA与DRAM内物理地址之间的对应关系和指示数据在页中的扇区大小的单位中的存在或不存在的扇区标志。
图5以表状方式示例高速缓冲存储器管理信息41的实例。高速缓冲存储器管理信息41为用于DRAM 11的一个页大小的一个区的一个条目。条目的数目等于或小于适合写入高速缓冲存储器区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的一个块大小的区设定的NAND内物理地址。如图7中所示,在NAND内逻辑-物理转换信息43中,NAND存储器12的NAND内物理地址与NAND内逻辑地址相关联。
通过使用这些种类的管理信息,可建立用于主机设备中的LBA、用于NAND存储器12中的NAND内逻辑地址与用于NAND存储器12中的NAND内物理地址的对应。这使得可以在主机设备与存储器系统10之间交换数据。
通过DRAM管理层31管理的管理信息由于断电或类似的原因而丢失,使得该管理信息可被称为易失性表。与此相反,如果通过逻辑NAND管理层32和物理NAND管理层33管理的管理信息由于断电或类似的原因而丢失,则丢失的管理信息阻碍存储器系统10的成功起动,使得需要采取措施,以便即使在断电或类似的情况下也存储管理信息。因此,该管理信息可被称为非易失性表。
该非易失性表管理存储在NAND存储器12中的数据。如果不存在非易失性表,则不能存取存储在NAND存储器12中的信息,或者存储在区中的数据被擦除。因此,需要将非易失性表存储为最新信息来为突然断电作准备。因此,在第一实施例中,将至少包括非易失性表的管理信息以最新状态存储在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之后的第一前日志220A和第一后日志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的日志存储块的日志存取信息,以及指示存储下一个第二指针的页位置的下一个指针。通过该下一个指针而将第二指针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中的数据的改变而执行管理信息的改变和存储。管理信息恢复单元155基于在通电等期间所存储的管理信息而恢复最新的管理信息。
管理信息管理单元152包括管理信息写入单元153和管理信息存储单元154。当根据由数据传送处理单元151进行的对存储在DRAM 11或NAND存储器12中的数据的改变处理而使得存储在DRAM 11中的管理信息的更新有必要时,管理信息写入单元153执行该管理信息的更新。
当存储器系统10满足预定条件时,管理信息存储单元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,且在DRAM11上执行管理信息(非易失性表)的恢复(将前日志220A和后日志220B反映在快照210上)。
下面解释由管理信息管理单元152进行的对存储器系统10的管理信息的存储处理。图12为对存储器系统10的管理信息的存储处理程序的实例的流程图。图13为用于解释对前日志和后日志的存储处理的图。假定存储器系统10连接至主机设备且作为主机设备的次级存储装置而操作,主机设备(存储器系统10)处于起动状态中,且在该起动状态之前在存储器系统10停止之前存储快照210。
首先,基于在主机设备(存储器系统10)的上一次结束时存储的快照210而使主机设备(存储器系统10)处于起动状态中(步骤S11)。此后,在必要时执行从主机设备至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。在该点处,例如,将信息y1存储为前日志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。在该点处,例如,将信息y1存储为后日志220B。存储为后日志220B的信息y1与存储为前日志220A的信息y1相同(步骤S17)。此后,管理信息管理单元152返回至步骤S12。
当不满足快照存储条件时(步骤S12处为“否”)且当接收到涉及管理信息的更新的指令时(步骤S13处为“是”),执行步骤S14至S17处的处理。换句话说,以与对第X数据的写入处理相同的方式,执行对第(X+1)数据的写入处理。在执行数据写入(X+1)作为对第(X+1)数据的写入处理之前,将与数据写入(X+1)对应的前日志(X+1)存储在NAND存储器12中作为前日志220A。在此点处,例如,将信息y2存储为前日志220A。执行NAND存储器12中的数据存储区125中的数据写入(X+1)。将与数据写入(X+1)对应的后日志(X+1)存储在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存储器中的写入的顺序的实例的图。首先,当执行擦除操作时,将存储器单元中的数据设定为“0”。随后,如图15A中所示,当执行低位页中的写入时,存储器单元中的数据改变为数据“0”和数据“2”。如图15B中所示,在在高位页中写入之前,将等于或低于实际数据的阈值电压的数据写入邻近单元中。接着,通过写入该单元中的数据扩展数据“2”的阈值的分布。此后,当写入高位页的数据时,存储器单元中的数据改变为具有原始阈值电压的数据“0”至“3”,如图15C中所示。在第一实施例中,从低阈值电压至高阈值电压限定存储器单元中的数据。
解释NAND存储器12中的写入处理。如图15D中所示,对来自块中与源极线接近的存储器单元的页中的每一个执行写入操作。在图15D中,为了便于解释,示出四条字线。
在第一写入(通过圆圈围绕的1指示)中,将1-位数据写入存储器单元1的低位页中。在第二写入(通过圆圈围绕的2指示)中,将1-位数据写入在字线方向上邻近存储器单元1的存储器单元2的低位页中。在第三写入(通过圆圈围绕的3指示)中,将1-位数据写入在位方向上邻近存储器单元1的存储器单元3的低位页中。在第四写入(通过圆圈围绕的4指示)中,将1-位数据写入对角地邻近存储器单元1的存储器单元4的低位页中。
在第五写入(通过圆圈围绕的5指示)中,将1-位数据写入存储器单元1的高位页中。在第六写入(通过圆圈围绕的6指示)中,将1-位数据写入在字线方向上邻近存储器单元1的存储器单元2的高位页中。在第七写入(通过圆圈围绕的7指示)中,将1-位数据写入在位方向上邻近存储器单元3的存储器单元5的低位页中。在第八写入(通过圆圈围绕的8指示)中,将1-位数据写入对角地邻近存储器单元3的存储器单元6的低位页中。
在第九写入(通过圆圈围绕的9指示)中,将1-位数据写入存储器单元3的高位页中。在第十写入(通过圆圈围绕的10指示)中,将1-位数据写入在字线方向上邻近存储器单元3的存储器单元4的高位页中。在第十一写入(通过圆圈围绕的11指示)中,将1-位数据写入在位方向上邻近存储器单元5的存储器单元7的低位页中。在第十二写入(通过圆圈围绕的12指示)中,将1-位数据写入对角地邻近存储器单元5的存储器单元8的低位页中。
在第十三写入(通过圆圈围绕的13指示)中,将1-位数据写入存储器单元5的高位页中。在第十四写入(通过圆圈围绕的14指示)中,将1-位数据写入在字线方向上邻近存储器单元5的存储器单元6的高位页中。在第十五写入(通过圆圈围绕的15指示)中,将1-位数据写入存储器单元7的高位页中。在第十六写入(通过圆圈围绕的16指示)中,将1-位数据写入在字线方向上邻近存储器单元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中,正常保存的日志由日志x1表示,由于短时中断而中断的日志由日志y1表示,且当前正被写入的日志由日志z1表示。因为短时中断在日志z1的写入期间发生且日志y1中断,所以与日志z1的页对应的存储器单元和与日志y1的页对应的存储器单元相同。日志y1的页为低位侧上的页(低位页),而日志z1的页为高位侧上的页(高位页)。在这些块中的每一个的日志(页)当中,圆圈围绕的日志是这样的日志,这些日志被选定作为用于管理信息的恢复的日志。
图16A为正常时间处(当不发生电源的异常隔离且电源断开时)的前日志和后日志的图。图16B和图16C为已发生短时中断的时间处的前日志和后日志的图。
在图16A中,示出当在未存储快照210的情况下断开存储器系统10的电源时存储在NAND存储器12中的前日志和后日志。在图16A的情况下,因为数据仅写入低位页(页1至4)中,所以即使在在低位页中的写入期间发生短时中断,也不发生低位页数据中断。如图16A中所示,在第一实施例中,前日志和后日志存储在不同块的相同页中。因此,当电源在正常时间断开时,前日志的最后页与后日志的最后页处于相同页位置中。因此,在这种情况下,通过使用前日志来恢复管理信息。在图16A中所示的正常时间,可通过使用后日志代替前日志来恢复管理信息。
在图16B中,在执行两页上的“日志写入(1)”作为前日志之后,当执行两页上的“日志写入(1)”作为后日志时,在第一页的写入期间发生短时中断。如图16B中所示,当在在后日志的高位页(页5)中写入期间发生短时中断时,在与被写入的高位页对应的低位页(后日志的页2)中发生低位页数据中断。换句话说,在图16B的情况下,因为在后日志的存储期间发生短时中断,所以在后日志侧上的块中产生日志y1(例如,页2)。在这种情况下,与“日志写入(1)”对应的日志z1存储在后日志侧上的块中。与“日志写入(1)”对应的前日志存储在前日志侧上的块中(在两页上)。因此,通过使用其中日志不中断的前日志而恢复管理信息。
在图16C中,在执行“日志写入(1)”作为前日志之后,在与前日志对应的数据写入期间发生错误,且执行“日志写入(2)”作为与数据写入的重写处理对应的前日志。另外,在图16C中,当执行“日志写入(2)”作为与数据写入的重写对应的后日志时,发生短时中断。如图16C中所示,当在在后日志的高位页(页5)中写入期间发生短时中断时,在与被写入的高位页对应的低位页(后日志的页2)中发生低位页数据中断。换句话说,在图16C的情况下,因为在后日志的存储期间发生短时中断,所以在后日志侧上的块中产生日志y1。在这种情况下,与“日志写入(1)”对应的日志x1和与“日志写入(2)”对应的日志x1存储在前日志侧上的块中。另一方面,与“日志写入(2)”对应的日志z1存储在后日志侧上的块中。因此,通过使用其中日志不中断的前日志而恢复管理信息。
图18是用于解释在正常时间产生前日志和后日志的方法的图。图19是用于解释在发生数据写入错误时产生日志的方法的实例的图。图18对应于图16A中所示的情况且表示:在执行对前日志的“日志写入(1)”和随后对后日志的“日志写入(1)”之后,在无程序错误等的情况下完成数据写入。另一方面,图19对应于图16C中所示的情况。在对前日志的“日志写入(1)”之后,当执行数据写入时,发生程序错误(数据写入错误,例如,当对数据写入区的擦除操作未正常结束且数据写入区变为坏块时)。因此,执行“日志写入(2)”作为与数据重写处理对应的前日志,且执行数据写入。另外,执行“日志写入(2)”作为与数据写入的重写处理对应的后日志。在图16C中,在此点处发生短时中断。当不发生短时中断时,如图19中所示,在作为后日志的“日志写入(2)”之后,执行与对前日志的“日志写入(1)”对应的对后日志的“日志写入(1)”,且处理结束。
下面解释选择用于管理信息的恢复的日志的方法的另一特定实例。图17A至图17C是用于解释选择用于管理信息的恢复的日志的方法的图。在图17A至图17C中,与在图16A至图16C中一样地,示出这样的状态,其中为用于前日志的日志存储块(各图中的每一个的左侧上的块;在下文中称作前日志块)和用于后日志的日志存储块(各图中的每一个的右侧上的块;在下文中称作后日志块)中的页中的每一个存储前日志和后日志。在图17A至图17C中,对前日志和后日志中的每一个示例两个块。一个块中的页对应于图15A至图15D。块中的每一行对应于一个页。在图17A至图17C中,为了简化示例,省略低位页与高位页之间的区别且将一个块的页的数目设定为八。然而,可在与图15A至图16C中所示的设定相同的设定下解释写入处理的细节(诸如,页写入的顺序)。
在图17A至图17C中,与在图16A至图16C中一样地,正常存储的日志由日志x1表示,由于短时中断而中断的日志由日志y1表示,且正被写入的日志由日志z1表示。因为短时中断已在日志z1的写入期间发生且日志y1中断,所以与日志z1的页对应的存储器单元和与日志y1的页对应的存储器单元含有相同信息。在这些块中的每一个的日志(页)当中,圆圈围绕的日志是这样的日志,其被选定作为用于管理信息的恢复的日志。
在图17A中,当在作为后日志的两个块(两页)上的“日志写入(1)”中执行第一块中的日志写入时,发生短时中断。在这种情况下,在后日志侧上的块中,与“日志写入(1)”对应的日志z1存储在第一块的最后页中。因为在后日志的存储期间发生短时中断,所以在后日志侧上的块中产生日志y1。另一方面,在前日志侧上的块中,已执行两个块(两页)上的“日志写入(1)”作为前日志。因此,通过使用其中日志不中断的前日志而恢复管理信息。
在图17B中,在在作为前日志的两个块(两个页)上的“日志写入(1)”中执行第二块中的日志写入之后,在与该日志对应的数据写入期间发生错误,且执行“日志写入(2)”作为与数据写入的重写处理对应的前日志。另外,在图17B中,当执行“日志写入(2)”作为与数据写入的重写处理对应的后日志时,发生短时中断。在这种情况下,在后日志侧上的块中,与“日志写入(2)”对应的日志z1存储在第一块的最后页中。因为在后日志的存储期间发生短时中断,所以在后日志侧上的块中产生日志y1。因此,通过使用其中日志不中断的前日志而恢复管理信息。
在图17C中,在在作为前日志的两个块(两个页)上的“日志写入(1)”中执行第二块中的日志写入之后,在与该日志对应的数据写入期间发生错误,且执行“日志写入(2)”作为与数据写入的重写处理对应的前日志。另外,在图17C中,执行“日志写入(2)”作为与数据写入的重写处理对应的后日志,且当在两个页上的“日志写入(1)”中作为后日志执行第一页中的日志写入时,发生短时中断。在这种情况下,在后日志侧上的块中,与“日志写入(1)”对应的日志z1存储在第二块的顶页中。尽管在后日志的存储期间发生短时中断,但因为是在第二块的顶页的存储期间发生短时中断,所以不产生日志y1。通过使用其中日志不中断的前日志而恢复管理信息。
在图16A至图17C中,加括号的前日志用于管理信息的恢复。然而,图16A至图17C中通过交叉标记的前日志也可用于恢复,因为前日志是已存储的日志。因此,除圆圈围绕的前日志之外,通过交叉标记的前日志也可用于管理信息的恢复。
在此实施例中,如参考图19所解释的,当在数据的写入期间发生程序错误时,产生与重写处理对应的前日志和后日志,且产生与其中发生错误的写入处理对应的前日志和后日志。以此方式,执行短时中断判定处理和类似处理,同时确保日志的一致性。这使得即使当在数据写入期间发生程序错误时也可以确实地恢复管理信息。
在图19中,因为前日志和后日志根据程序错误的发生而被冗余地获取,所以短时中断判定处理和类似处理是复杂的。因此,在该实施例中,参考图20来解释在发生程序错误时执行的另一处理方法。
图20是用于解释在发生数据写入错误时产生日志的方法的另一实例的图。如图20中所示,在对前日志的“日志写入(1)”之后,当在执行数据写入时发生程序错误(数据写入错误)时,不获取与数据重写处理对应的前日志,且再次执行数据写入。在结束数据写入之后,不产生后日志,且获取快照来替代后日志以结束处理。
以此方式,当存储前日志且数据写入以失败结束时,在执行重写之后,不产生后日志,且存储快照以完成处理。
根据该实施例,当在前日志的存储之后及后日志的存储之前发生程序错误时,在日志中不存储由于对抗错误的措施的管理信息的更新,且存储快照。因此,可以简化发生短时中断期间的恢复处理且简化日志管理。换句话说,当执行已作为前日志而写入的更新安排中所不包括的处理时,因为再次取得快照,所以不必执行复杂的日志管理,且可以确实地使用该快照恢复管理信息。
电荷累积层不限于浮动栅型,且可为包括诸如MONOS(金属-氧化物-氮化物-氧化物-半导体)结构的氮化硅膜和其它系统的电荷俘获型。
如上文所解释的,根据本发明,存在这样效果:即使当在数据写入期间发生程序错误时,也可以确实地恢复管理信息。
本领域技术人员将容易想到其他优点和修改。因此,本发明在其更宽的方面不限于在此所示和所述的特定细节和示例性实施例。因此,可在不偏离由所附权利要求书及其等价物所限定的总发明构思的精神或范围的情况下进行各种修改。
Claims (11)
1.一种存储器系统,其包括:
易失性第一存储单元;
非易失性第二存储单元,其包括可存储多值数据的存储器单元;以及
控制器,其通过所述第一存储单元而执行在主机设备与所述第二存储单元之间的数据传送,将管理信息存储在所述第一存储单元中,且在更新所存储的管理信息时基于所存储的管理信息而执行所述第一和第二存储单元中的数据管理,其中所述管理信息包括在所述存储器系统的起动操作期间存储在所述第二存储单元中的数据的存储位置,所述控制器包括:
管理信息存储单元,其在满足预定条件时将存储在所述第一存储单元中的管理信息存储在所述第二存储单元中作为快照,且在所述第二存储单元中存储作为在所述管理信息中发生改变之前所存储的管理信息的更新差异信息的前日志和作为在所述管理信息中发生所述改变之后所存储的管理信息的更新差异信息的后日志;以及
管理信息恢复单元,当所述前日志或所述后日志在所述起动操作期间存在于所述第二存储单元中时,所述管理信息恢复单元基于所述快照以及所述日志或所述后日志而执行所述第一存储单元中的管理信息的恢复,并且当所述前日志和所述后日志在所述起动操作期间不存在于所述第二存储单元中时,所述管理信息恢复单元基于所述快照而执行所述第一存储单元中的管理信息的恢复,其中
当在作为所述前日志的存储之后的更新处理而执行所述第二存储单元中的数据的写入时发生程序错误时,所述管理信息存储单元在再次执行数据写入之后存储快照而不执行新日志的写入。
2.根据权利要求1的存储器系统,其中,当在作为所述前日志的存储之后的更新处理而执行所述第二存储单元中的数据的写入时发生程序错误时,所述管理信息存储单元存储所述快照而不执行新前日志和新后日志的写入。
3.根据权利要求2的存储器系统,其中所述第二存储单元包括:
快照存储区,其用于存储所述快照;
前日志存储区,其用于存储所述前日志;
后日志存储区,其用于存储所述后日志;以及
指针存储区,其用于存储指针,所述指针指示所述快照存储区、所述前日志存储区和所述后日志存储区的存储位置。
4.根据权利要求3的存储器系统,其中所述快照存储区、所述前日志存储区、所述后日志存储区和所述指针存储区中的每一个包括作为数据擦除单位的块。
5.根据权利要求4的存储器系统,其中所述前日志和所述后日志中的每一个以一次写入的方式以页单位被写入所述前日志存储区和所述后日志区中,所述页单位小于所述块大小,每次获取所述前日志和所述后日志作为差异信息。
6.根据权利要求1的存储器系统,其中
所述第一存储单元为DRAM,并且
所述第二存储单元为NAND闪速存储器。
7.一种存储器系统,其包括:
易失性第一存储单元;
非易失性第二存储单元,其包括可存储多值数据的存储器单元;以及
控制器,其通过所述第一存储单元而执行在主机设备与所述第二存储单元之间的数据传送,将管理信息存储在所述第一存储单元中,且在更新所存储的管理信息时基于所存储的管理信息而执行所述第一和第二存储单元中的数据管理,其中所述管理信息包括在所述存储器系统的起动操作期间存储在所述第二存储单元中的数据的存储位置,其中所述控制器包括:
管理信息存储单元,其在满足预定条件时将存储在所述第一存储单元中的管理信息存储在所述第二存储单元中作为快照,且在所述第二存储单元中存储作为在所述管理信息中发生改变之前所存储的管理信息的更新差异信息的前日志和作为在所述管理信息中发生所述改变之后所存储的管理信息的更新差异信息的后日志;以及
管理信息恢复单元,当所述前日志或所述后日志在所述起动操作期间存在于所述第二存储单元中时,所述管理信息恢复单元基于所述快照以及所述前日志或所述后日志而执行所述第一存储单元中的管理信息的恢复,并且当所述前日志和所述后日志在所述起动操作期间不存在于所述第二存储单元中时,所述管理信息恢复单元基于所述快照而执行所述第一存储单元中的管理信息的恢复,其中
当在作为所述前日志的存储之后的更新处理而执行所述第二存储单元中的数据的写入时发生程序错误时,所述管理信息存储单元再次存储与数据的重写处理对应的前日志,并且在完成所述重写处理之后,在存储与所述重写处理对应的后日志之后,存储与发生所述程序错误之前所存储的所述前日志对应的后日志。
8.根据权利要求7的存储器系统,其中所述第二存储单元包括:
快照存储区,其用于存储所述快照;
前日志存储区,其用于存储所述前日志;
后日志存储区,其用于存储所述后日志;以及
指针存储区,其用于存储指针,所述指针指示所述快照存储区、所述前日志存储区和所述后日志存储区的存储位置。
9.根据权利要求8的存储器系统,其中所述快照存储区、所述前日志存储区、所述后日志存储区和所述指针存储区中的每一个包括作为数据擦除单位的块。
10.根据权利要求9的存储器系统,其中所述前日志和所述后日志中的每一个以一次写入的方式以页单位被写入所述前日志存储区和所述后日志区中,所述页单位小于所述块大小,每次获取所述前日志和所述后日志作为差异信息。
11.根据权利要求7的存储器系统,其中
所述第一存储单元为DRAM,并且
所述第二存储单元为NAND闪速存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008051455A JP2009211215A (ja) | 2008-03-01 | 2008-03-01 | メモリシステム |
JP051455/2008 | 2008-03-01 | ||
PCT/JP2009/052600 WO2009110305A1 (en) | 2008-03-01 | 2009-02-10 | Memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101681317A true CN101681317A (zh) | 2010-03-24 |
CN101681317B CN101681317B (zh) | 2011-09-28 |
Family
ID=41055866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980000143XA Expired - Fee Related CN101681317B (zh) | 2008-03-01 | 2009-02-10 | 存储器系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8108594B2 (zh) |
EP (1) | EP2260389A4 (zh) |
JP (1) | JP2009211215A (zh) |
KR (1) | KR101102155B1 (zh) |
CN (1) | CN101681317B (zh) |
TW (1) | TW200947214A (zh) |
WO (1) | WO2009110305A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897338A (zh) * | 2016-07-04 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 一种针对数据库的数据修改请求处理方法及装置 |
CN107122317A (zh) * | 2016-02-24 | 2017-09-01 | 爱思开海力士有限公司 | 数据存储装置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5221332B2 (ja) * | 2008-12-27 | 2013-06-26 | 株式会社東芝 | メモリシステム |
JP5317690B2 (ja) * | 2008-12-27 | 2013-10-16 | 株式会社東芝 | メモリシステム |
JP2012128643A (ja) | 2010-12-15 | 2012-07-05 | Toshiba Corp | メモリシステム |
JP2012128645A (ja) | 2010-12-15 | 2012-07-05 | Toshiba Corp | メモリシステム |
US9251055B2 (en) | 2012-02-23 | 2016-02-02 | Kabushiki Kaisha Toshiba | Memory system and control method of memory system |
JP5813589B2 (ja) * | 2012-07-13 | 2015-11-17 | 株式会社東芝 | メモリシステムおよびその制御方法 |
GB2507287A (en) * | 2012-10-24 | 2014-04-30 | Ibm | Associating restore points of a program with execution states and data stored in memory. |
US9454474B2 (en) * | 2013-03-05 | 2016-09-27 | Western Digital Technologies, Inc. | Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive |
US20150339069A1 (en) * | 2014-05-22 | 2015-11-26 | Kabushiki Kaisha Toshiba | Memory system and method |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09244933A (ja) * | 1996-03-05 | 1997-09-19 | Nippon Telegr & Teleph Corp <Ntt> | データベースバックアップ方法及び装置 |
WO1999032977A1 (fr) * | 1997-12-22 | 1999-07-01 | Tdk Corporation | Systeme de memoire flash |
KR100390853B1 (ko) * | 2000-06-07 | 2003-07-10 | 차상균 | 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치 |
JP3896077B2 (ja) * | 2002-09-11 | 2007-03-22 | 株式会社東芝 | 計算機システムおよびファイル管理方法 |
JP2005115857A (ja) * | 2003-10-10 | 2005-04-28 | Sony Corp | ファイル記憶装置 |
JP4248510B2 (ja) * | 2005-03-24 | 2009-04-02 | 株式会社東芝 | 計算機システム、ディスク装置およびデータ更新制御方法 |
US8244958B2 (en) * | 2005-05-09 | 2012-08-14 | Sandisk Il Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
US7275140B2 (en) * | 2005-05-12 | 2007-09-25 | Sandisk Il Ltd. | Flash memory management method that is resistant to data corruption by power loss |
JP2009205555A (ja) * | 2008-02-28 | 2009-09-10 | Toshiba Corp | メモリシステム |
US8438343B2 (en) * | 2008-02-29 | 2013-05-07 | Kabushiki Kaisha Toshiba | Memory system with fixed and variable pointers |
EP2248027A4 (en) * | 2008-02-29 | 2011-05-18 | Toshiba Kk | STORAGE SYSTEM |
KR101102136B1 (ko) * | 2008-03-01 | 2012-01-02 | 가부시끼가이샤 도시바 | 메모리 시스템 |
-
2008
- 2008-03-01 JP JP2008051455A patent/JP2009211215A/ja not_active Abandoned
-
2009
- 2009-02-10 KR KR1020097018033A patent/KR101102155B1/ko not_active IP Right Cessation
- 2009-02-10 CN CN200980000143XA patent/CN101681317B/zh not_active Expired - Fee Related
- 2009-02-10 US US12/529,223 patent/US8108594B2/en not_active Expired - Fee Related
- 2009-02-10 EP EP09713657A patent/EP2260389A4/en not_active Withdrawn
- 2009-02-10 WO PCT/JP2009/052600 patent/WO2009110305A1/en active Application Filing
- 2009-02-25 TW TW098106045A patent/TW200947214A/zh unknown
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122317A (zh) * | 2016-02-24 | 2017-09-01 | 爱思开海力士有限公司 | 数据存储装置 |
CN106897338A (zh) * | 2016-07-04 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 一种针对数据库的数据修改请求处理方法及装置 |
WO2018006723A1 (zh) * | 2016-07-04 | 2018-01-11 | 阿里巴巴集团控股有限公司 | 一种针对数据库的数据修改请求处理方法及装置 |
TWI701567B (zh) * | 2016-07-04 | 2020-08-11 | 香港商阿里巴巴集團服務有限公司 | 針對資料庫的資料修改請求處理方法和裝置 |
US11106695B2 (en) | 2016-07-04 | 2021-08-31 | Ant Financial (Hang Zhou) Network Technology Co., Ltd. | Database data modification request processing |
US11132379B2 (en) | 2016-07-04 | 2021-09-28 | Ant Financial (Hang Zhou) Network Technology Co., Ltd. | Database data modification request processing |
Also Published As
Publication number | Publication date |
---|---|
CN101681317B (zh) | 2011-09-28 |
TW200947214A (en) | 2009-11-16 |
US20100153626A1 (en) | 2010-06-17 |
KR101102155B1 (ko) | 2012-01-02 |
WO2009110305A1 (en) | 2009-09-11 |
US8108594B2 (en) | 2012-01-31 |
EP2260389A4 (en) | 2012-11-21 |
JP2009211215A (ja) | 2009-09-17 |
KR20090117929A (ko) | 2009-11-16 |
EP2260389A1 (en) | 2010-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101681317B (zh) | 存储器系统 | |
CN101681312B (zh) | 存储器系统 | |
CN101681316A (zh) | 存储器系统 | |
CN101681311A (zh) | 存储器系统 | |
CN101681313A (zh) | 存储器系统 | |
US6170066B1 (en) | Power-off recovery management for sector based flash media managers | |
CN101652762B (zh) | 存储器系统 | |
KR960005895B1 (ko) | 불휘발성 반도체 메모리장치 | |
CN100454273C (zh) | 用于块内页面分组的方法及设备 | |
CN101095121B (zh) | 高速暂存区块 | |
CN100435115C (zh) | 具有非循序更新区块管理的非易失性存储器及方法 | |
US7039786B2 (en) | Memory device and recording and/or reproducing apparatus employing this memory device | |
CN101763309B (zh) | 非易失性存储装置、信息记录系统及信息记录方法 | |
CN101535963A (zh) | 具有可编程耐久性的快闪存储器 | |
CN103270500A (zh) | 事务日志恢复 | |
CN102483685B (zh) | 具有附属文件系统的多堆非易失性存储器系统 | |
CN102968385B (zh) | 数据写入方法、存储器控制器与储存装置 | |
CN101246429A (zh) | 将闪存模块用作主存储器的电子系统和相关系统引导方法 | |
KR20050062638A (ko) | 공통의 논리적 블록과 연관된 물리적 블록들을 결정하기위한 방법 및 장치 | |
JP3974149B2 (ja) | 不揮発性半導体メモリ装置及び不揮発性半導体メモリの制御方法 | |
JP2009211202A (ja) | メモリシステム | |
JP2007018528A (ja) | メモリ装置、ファイル管理方法及び記録再生装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110928 Termination date: 20130210 |