CN101681311A - 存储器*** - Google Patents
存储器*** Download PDFInfo
- Publication number
- CN101681311A CN101681311A CN200980000129A CN200980000129A CN101681311A CN 101681311 A CN101681311 A CN 101681311A CN 200980000129 A CN200980000129 A CN 200980000129A CN 200980000129 A CN200980000129 A CN 200980000129A CN 101681311 A CN101681311 A CN 101681311A
- Authority
- CN
- China
- Prior art keywords
- data
- write
- once
- page
- leaf
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 216
- 238000012545 processing Methods 0.000 claims abstract description 88
- 238000007726 management method Methods 0.000 claims description 140
- 238000000034 method Methods 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 25
- 238000011084 recovery Methods 0.000 claims description 24
- 238000013523 data management Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000004321 preservation Methods 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 8
- 230000001771 impaired effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 20
- 230000014509 gene expression Effects 0.000 description 16
- 238000013500 data storage Methods 0.000 description 8
- 230000005641 tunneling Effects 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000005669 field effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000014616 translation Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 241001604129 Polydactylus Species 0.000 description 1
- 229910052581 Si3N4 Inorganic materials 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- HQVNEWCFYHHQES-UHFFFAOYSA-N silicon nitride Chemical compound N12[Si]34N5[Si]62N3[Si]51N64 HQVNEWCFYHHQES-UHFFFAOYSA-N 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- 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/1443—Transmit or communication errors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
- G11C16/105—Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
-
- 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/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/141—Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
一种存储器***包括易失性第一存储单元、设置有多个能够存储多值数据的存储器基元的非易失性第二存储单元,该存储器基元具有多个页,还包括在主机设备和第二存储单元之间利用第一存储单元进行数据传输的控制器。该控制器包括保存处理单元和损坏信息恢复处理单元,在数据以一次写入方式被写入第二存储单元之前,当数据被写入和被写入了数据的页相同的存储器单元的低阶页时,该保存处理单元备份该低阶页的数据;并且当该低阶页的数据损坏时,该损坏信息恢复处理单元使用所述备份数据恢复所述损坏数据。
Description
技术领域
本发明涉及使用非易失性半导体存储器装置的存储器***。
背景技术
一些个人计算机(PC)使用硬盘装置作为次级存储装置。在这些PC中,已知的技术是将已经存储在硬盘装置上的数据做备份以防止由于一些故障而使数据失效。例如,当探测到在硬盘装置上改变数据的行为时,在发生数据改变之前产生作为数据的备份的快照(snapshot),和产生关于数据改变的日志。然后,在每个预定的时间重复进行以下的处理,生成新的快照,在生成新的快照之前使以前生成的快照无效,并生成新的日志(参见,美国专利申请公开No.2006/0224636)。在由于某种原因数据变得无效的情况下,可以通过参考快照和日志来恢复数据。
最近几年,作为非易失性半导体存储器装置的NAND闪速存储器的容量以急剧地增大。结果,包含具有NAND闪速存储器作为次级存储装置的存储器***的PC已进入实际应用。
但是,与将具有硬盘装置作为次级存储装置的个人计算机中存储的数据作备份的情况不同,在美国专利申请公开No.2006/0224636中公开的技术不能应用于对具有NAND闪速存储器作为次级存储装置的个人计算机中存储的数据进行备份。这是因为,为了增加NAND闪速存储器的容量,采用了多值存储技术,该技术能够在一个存储器基元中存储等于或大于2位的多个数据(多值数据)。
配置成多值存储器的存储器基元中的场效应晶体管具有叠栅结构(stacked gate structure),其中栅极绝缘膜、浮置栅极电极、栅极间绝缘膜以及控制栅极电极按顺序层叠在沟道区,并且能够根据累积在浮置栅极电极的电子的数量来设定多个阈值电压。为了能够基于多个阈值电压进行多值存储,需要使对应于一个数据的阈值电压的分布极其的窄。
例如,作为能够存储多4个值的多值存储器,存在这样的存储器,其在一个存储器基元中包括低阶页(lower order page)和高阶页(higherorder page),并通过在各页中写入1位数据来存储2位(4个值)的数据。在这样的多值存储器中写入数据的方法中,在数据被写入第一存储器基元的低阶页后,将数据写入与该第一存储器基元相邻的存储器基元(第二存储器基元)的低阶页。在数据被写入该相邻的存储器基元后,将数据写入第一存储器基元的高阶页(参见,例如,JP-A 2004-192789(KOKAI))。
然而,在这样的多值存储器中,较早地写入了数据的第一存储器基元的阈值由于与第一存储器基元相邻的第二存储器基元的阈值电压而波动,在该第二存储器基元中的数据的写入时间较晚。因此,在该多值存储器中,容易发生低阶页崩溃,其中在某个存储器基元的高阶页写入数据时,由于例如某种原因,例如,非正常断电(以下称作短中断(short break)),写入被中断,那么在先前写入了数据的低阶页中的数据也被损坏。
所以,如美国专利2006/0224636所述,在具有NAND闪速存储器作为次级存储装置的个人计算机中,例如,在某个存储器基元的高阶页写入日志的同时,当由于短中断而发生低阶页数据的损坏时,就出现了这样的问题,即,不仅当前正在被写入的数据被损坏,甚至正在被写入数据的该存储器基元的低阶页的数据也被损坏,并且该数据不能被恢复。换句话说,采用美国专利2006/0224636所述的为具有包含NAND闪速存储器作为次级存储器装置的存储器***的个人计算机进行备份的方法,不足以将个人计算机的状态恢复到短中断之前的状态。
尤其是,在传统的方法中,当在某个存储器晶体管的高阶页中进行写入期间发生短中断后,在下次启动存储器***时,该存储器***的状态不能够被重置到短中断发生之前的最后状态。将存储器恢复到发生短中断时的最后状态的处理还没有被提出。
发明内容
根据本发明一个实施方式的存储器***包括:易失性第一存储单元;非易失性第二存储单元,其中设置了能够存储多值数据的多个存储器基元,该存储器基元具有多个页;以及控制器,其通过第一存储单元执行在主机设备和第二存储单元之间的数据传输,在第一存储单元中存储包括在该存储器***的启动(startup)操作期间在第二存储单元存储的数据的存储位置的管理信息,并在更新存储的管理信息的同时,基于该存储的管理信息在第一和第二存储单元中执行数据管理。该控制器包括保存处理单元,在以一次写入(write-once)方式将数据写入第二存储单元前,如果数据已经被写入了其存储器基元与被写入数据的页的存储器基元相同的低阶页,则保存处理单元备份该低阶页的数据;以及损坏信息恢复处理单元,当在低阶中的数据损坏时,该损坏信息恢复处理单元使用由该保存处理单元备份的数据恢复该损坏数据。
附图说明
图1是根据本发明第一实施方式的存储器***的配置的示例的框图;
图2是NAND存储器中的任意一个块的配置示例的电路图;
图3A是DRAM的功能配置示意图,图3B是NAND存储器的功能配置示意图;
图4是用于管理存储在存储器***中的数据的层结构示例的示图;
图5示出了高速缓存(cache)管理信息表的示例;
图6示出了逻辑NAND管理信息表的示例;
图7示出了NAND内逻辑物理转换信息表的示例;
图8是根据第一实施方式的在管理信息存储区存储的管理信息存储信息的内容的示例的示意图;
图9示出了日志的示例;
图10是图1所示驱动控制单元的功能配置的示例的框图;
图11是图10所示数据管理单元的功能配置的示例的框图;
图12A至12D是存储器基元中的数据和该存储器基元的阈值电压之间的关系和写入NAND存储器的顺序的示例的示图;
图13A至13E是解释在一次写入处理期间的低阶页数据损坏的示图;
图14是在存储器***的一次写入区写入数据的处理过程的示例的流程图;
图15是用于对准在NAND存储器中的数据和在一次写入处理中的管理信息的规则的示例的示图;
图16和17是在发生短中断后用于写入的数据的恢复处理的示例的流程图。
具体实施方式
下面将参照附图详细描述本发明的示范性实施方式。本发明不限于这些实施方式。
根据本发明一个实施方式的存储器***包括非易失性半导体存储装置,并被用作主机设备(例如个人电脑)的次级存储器(SSD:固态驱动器)。该存储器***具有存储主机设备请求写入的数据的功能,以及读取主机设备请求读取的数据并将该数据发送到主机设备的功能。图1是根据本实施例的存储器***10的配置示例的框图。该存储器***10包括作为第一存储单元的DRAM(动态随机存取存储器)11、作为第二存储单元的NAND闪速存储器(以下称为“NAND存储器”)12、电源电路13和作为控制器的驱动控制单元14。
DRAM 11用作用于数据传输、管理信息记录或工作区的存储单元。具体说,当DRAM 11用作用于数据传输的存储单元时,在数据被写入NAND存储器12之前该DRAM 11用于临时存储由主机设备请求写入的数据,并且该DRAM 11用于从NAND存储器12中读取该主机设备请求读取的数据并临时存储该读取的数据。当该DRAM 11用作用于管理信息记录的存储单元时,该DRAM 11用于存储管理信息以管理存储在DRAM 11和NAND 12中的数据的存储位置。当该DRAM 11用作用于工作区的存储单元时,例如,当恢复管理信息时,在所使用的日志的扩展期间,使用该DRAM 11。
NAND存储器12用作存储单元,用于在其中存储数据。具体说,在该NAND存储器12中存储由主机设备指定的数据以作为备份,在其中存储由DRAM 11管理的管理信息以及存储器***10的管理程序(固件)。在图1中,作为例子示出了包含四个通道通信(channel correspondence)存储区120A至120D。每个通道通信存储区120A至120D包括两个组121,每个组包括8个具有预定尺寸的存储空间(例如,2GB)的芯片122。该通道通信存储区120A至120D通过驱动控制单元14和总线15A至15D被连接。连接到每一个该通道通信存储区120A至120D的总线15A至15D中的每一条总线形成一个通道。
电源电路13从外部电源接收外部电能并产生多个内部电源以提供给存储器***10的各个单元。该电源电路13探测外部电源的状态,即,上升沿和下降沿,以基于探测到的状态产生通电重置信号,并将通电重置信号输出到驱动控制单元14。
该驱动控制单元14控制DRAM 11和NAND存储器12。例如,如以下所详细介绍的,该驱动控制单元14根据来自电源电路13的通电重置信号执行管理信息的恢复处理和管理信息的存储处理。驱动控制单元14通过ATA接口(I/F)向主机设备发送数据并从主机设备接收数据,并通过RS232C I/F向调试(debugging)设备发送数据并从调试设备接收数据。另外,该驱动控制电路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,这些在Y方向彼此相邻的各个存储器基元晶体管MT之间共享扩散区(源极区或漏极区)。而且,存储器基元晶体管MT0至MTn在Y方向串联连接。此外,在(n+1)个存储器晶体管MT0至MTn组成的一行的两端设置选择晶体管ST1和St2。
每个存储器基元晶体管MT0至MTn是形成在半导体基底上的具有叠栅结构的场效应晶体管。该叠栅结构包括通过栅极绝缘膜形成在该半导体基底上的电荷累积层(浮置栅极电极)和通过栅极间绝缘膜形成在电荷累积层上的控制栅极电极。另外,存储器基元晶体管MT0至MTn是多值存储器,其中阈值电压随着在浮置栅极电极累积的电子数而变化,并且根据该阈值电压的差异两个或多个位的数据能够被存储。在下面的介绍中假设存储器基元晶体管MT0至MTn是能够存储4个值的多值存储器。但是,存储器基元晶体管MT0至MTn可以是能存储多于4个值的多值存储器。
字线WL0至WLn分别连接到每个NAND串NS的存储器基元晶体管MT0至MTn的控制栅极电极。在每个NAND串NS中的存储器基元晶体管MTi(i=0至n)通过相同的字线(i=0至n)共同地连接在一起。换言之,出现在块BLK的同一行的存储器基元晶体管MTi的各个控制栅极电极连接到相同的字线。具体说,连接到相同字线WLi的一组(m+1)个存储器基元晶体管MTi是一个单元,其形成一页。在能够存储4个值的多值存储器的情况中,连接到同一字线WLi的一组存储器基元晶体管MTi形成两页。当首先写入了数据的页被设置为低阶页,而随后写入了数据的页被设为高阶页时,在NAND存储器12中,以页为单位进行数据的写入和读出。
位线BL0至BLm分别连接到一个块BLK中的(m+1)个选择晶体管ST1的漏极。选择栅极线(selection gate line)SGD公共地连接到每个NAND串NS的各选择晶体管ST1的各栅极。各选择晶体管ST1的各源极连接到存储器基元晶体管MT0的漏极。类似地,源极线SL公共地连接到一个块BLK中的(m+1)个选择晶体管ST2的各源极。选择栅极线SGS公共地连接到每个NAND串NS的各选择晶体管ST2的各栅极。各选择晶体管ST2的各个漏极连接到存储器基元晶体管MTn的各个源极。
虽然在图中未示出,在一个块BLK中的位线BLj(j=0至m)在其它块BLK的各条位线BLj之间将各选择晶体管ST1的各漏极共同地连接起来。换言之,在块BLK的相同列中的NAND串NS被相同的位线BLj连接。
在NAND存储器12中,如上所述,写入和读出的最小单位是连接到相同字线WLi的存储器基元晶体管MTi组中的一页,并且,擦除的最小单位是包含预定数量的页的一块(以下称为物理块)。多个块形成一个面(plane),多个面形成一个通道通信存储区120A至120D。多个通道通信存储区120A至120D形成一个NAND存储器12。在以下介绍的例子中,假定通道数是4,面的数是2。
在这种存储器***中,多个通道通信存储区120A至120D相互并行地分别连接到驱动控制单元14。由此,能够并行地启动多个通道,或一次只启动一个通道。
根据驱动控制单元14的设置,以预定数量的物理块为单位进行写入和读出处理或进行擦除。在这种情况下,一组预定数量的物理块被称为逻辑块。
下面介绍DRAM 11和NAND 12的功能配置。图3A是DRAM 11的功能配置的示意图,图3A是NAND 12的功能配置的示意图。如图3A所示,DRAM 11包括写高速缓存区,其中存储主机设备请求写入的数据;读高速缓存区RC,其中存储主机设备请求读取的数据;临时存储区111,其中存储管理信息,用于管理存储在DRAM 11和NAND 12中的数据的存储位置;以及在恢复管理信息时使用的工作区112。
如图3B所示,NAND存储器12包括数据存储区125,其中存储由主机设备请求写入的数据;管理信息存储区126,其中存储由DRAM 11的临时存储区111管理的管理信息;保存区127,其中低阶页的内容被备份以保护写入该低阶页的内容免予遭受低阶页数据损坏,在低阶页数据损坏的情景中,在将数据写入存储器晶体管(其中的低阶页已经写入了数据)的高阶页时,由于发生非正常断电(短中断)或程序错误(在写入NAND存储器时的故障)而使低级也受到损坏。NAND存储器12的数据存储区125被分为:一次写入区128,其中以一次写入的方式写入数据;和作为在数据存储区125与一次写入区128不同的区域的非一次写入区129,其中数据以一个或预定数量的物理块为单位被全体地写入。在这个例子中,假定一次写入区128中的数据写入单位是页尺寸单位,在非一次写入区129中的数据写入单位是物理块尺寸单位,或是物理块尺寸单位的整数倍。因此,在数据存储区125中,用于存储各个块的区域被进一步以页尺寸单位分为多个区并被管理。当存储器基元晶体管损坏时发生程序错误,数据不能被存储。
下面介绍DRAM 11的临时存储区111中管理的管理信息。图4是管理存储在存储器***10中的数据的层结构的例子的示图。此处假定这里的数据是主机设备请求写入或读取的数据。在存储器***10中,通过3层结构来执行数据管理: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中,因为重写次数是有限的,在构成NAND存储器12的各个块中重写的次数被驱动控制单元14控制以达到均衡。换言之,当执行对写入NAND存储器12中某个NAND内物理地址的数据进行更新时,驱动器控制单元14执行控制以在构成NAND存储器12的各个块之间平衡重写次数,以在和初始块不同的块中写入反映一个块中被要求更新的部分(其中包含有要更新的数据)的数据,并使初始块无效。
如上所述,在NAND存储器12中,在数据的写入和读取处理以及数据的擦除处理中处理单元是不同的。在对数据的更新处理中更新前的数据的位置(块)和更新后的数据的位置(块)是不同的。因此,在第一实施方式中,除了NAND内物理地址,提供在NAND存储器12中独立使用的NAND内逻辑地址(以下称为“NAND内逻辑地址”)。
因此,在逻辑NAND管理层32中的数据由逻辑NAND管理信息42管理,该逻辑NAND管理信息42指明从DRAM 11接收到的以页尺寸为单位的数据的LBA和指明NAND存储器12(其中存储有接收到的数据)的逻辑页位置的NAND内逻辑地址之间的关系,以及指明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的一块尺寸的逻辑区的逻辑地址组。
为每个数据存储区125和保存区127生成并存储逻辑页管理信息42a和逻辑块管理信息42b。如图7所示,在NAND内逻辑-物理转换信息43中,NAND存储器12的NAND内物理地址和NAND间逻辑地址相互关联。
通过使用这些种类的管理信息,可以建立起在主机设备中使用的LBA、在NAND存储器12中使用的NAND内逻辑地址、在NAND存储器12中使用的NAND内物理地址之间的对应关系。这使得能够在主机设备和存储器***10之间交换数据。
由DRAM管理层31管理的管理信息由于断电等原因而丢失了,使得这个管理信息可被称作易失性表。相反,如果由逻辑NAND管理层32和物理NAND管理层33管理的管理信息由于断电等原因而丢失了,该丢失的管理信息阻碍存储器***10成功地启动,所以需要采取措施使得即使在断电等事件中所述管理信息也被存储。因此,该管理信息可被称作非易失性表。
这一非易失性表管理存储在NAND存储器10中的数据。如果该非易失性表不存在,则存储在NAND存储器12中的信息就不能被访问,或者存储在一个区域中的数据被删除。所以,该非易失性表需要作为最新信息被存储,以防备突然的断电。因而,在第一实施方式中,包含至少该非易失性表的最新的状态的管理信息存储在NAND存储器12的管理信息存储区126中。下面解释存储在NAND存储器12的该管理信息存储区126中的管理信息存储信息。在下面的介绍中,假定只有所述非易失性表存储在管理信息存储区126中。
图8是存储在管理信息存储区126中的管理信息存储信息的内容的示例的示意图。存储在管理信息存储区126中的管理信息存储信息包括:快照210,作为该非易失性表在特定点的内容;日志220,作为所述内容改变后的非易失性表(在该非易失性表的内容被改变的情况下)和快照210(或快照210和已经产生的日志)之间的差异信息;以及表明快照210以及首先获得的关于快照210的日志220的存储位置的指针230。所述快照210是在存储在DRAM11中的临时存储区111中的管理信息中通过在预定点存储至少包含非易失性表的管理信息而获得的。日志220是在进行使管理信息发生改变的处理(即,将数据写入NAND存储器12的数据存储区125的处理)之前和之后产生的。在所述处理之前存储的日志被称为前日志220A,在所述处理之后存储的日志被称为后日志220B。
快照210、前日志220A、后日志220B和指针230被存储在不同的块中。快照210存储在用于快照的块中。快照210包括在NAND存储器12中的管理信息存储区126中的逻辑NAND管理信息42和NAND内逻辑-物理转换信息43作为非易失性表。通常,当NAND存储器12的存储容量等于或大于几十GB时,用于数据管理所必需的管理信息的尺寸必须是物理块的整数倍的尺寸。因此,快照存储块存储在包含多个物理块的逻辑块中。新的快照整个地写入不同于先前存储快照210的块的块。
前日志220A和后日志220B以一次写入方式分别存储在前日志存储块和后日志存储块。即使一代快照210发生改变,前日志220A和后日志220B也以一次写入方式分别连续地写入相同的前日志存储块和相同的后日志存储块。前日志存储块和后日志存储块的每一个都包括多个物理块。图9是日志的示例的示图。
日志220包括:作为改变目标的管理信息的目标信息;将成为目标信息中的改变目标的作为一个条目的目标条目;将成为目标条目中的改变目标的作为一项的目标项;以及作为目标项的改变的内容的改变内容。
指针230存储在指令信息存储块。指针230只需要是这样一个指针,它指明表明了快照210、前日志220A和后日志220B的存储位置的块的顶部地址。但是,指针230中指明快照210的存储位置的那一部份可以是指明了包含在快照210中的各种管理信息的顶部地址的部分。当快照210被重新存储时或当在日志存储块中存储日志220的物理块被改变时,指针230被更新。前日志220A和后日志220的指针可以存储在快照210中而不是存储在指令信息存储块中。
下面介绍驱动控制单元14的功能。图10是驱动控制单元的功能配置的示例的框图。该驱动控制单元14包括数据管理单元141、ATA命令处理单元142、安全管理单元143、引导加载(boot loader)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、损坏信息恢复处理单元156以及管理信息恢复单元157。数据传输处理单元151执行DRAM 11和NAND存储器12之间的数据传输。管理信息管理单元152根据存储在DRAM 11和NAND存储器12中的数据的改变执行管理信息的改变和存储。保存处理单元155在保存区127中保存数据,该数据在对一次写入区128执行的数据的一次写入处理期间同样地可能通过低阶页数据的损坏而被损坏。损坏信息恢复处理单元156使用保存区127中的数据恢复在对一次写入区128执行的数据的一次写入处理期间通过低阶页数据的损坏而被损坏的数据。管理信息恢复单元157在通电等状态期间基于NAND存储器12中存储的管理信息恢复最新的管理信息。
管理信息管理单元152包括管理信息写入单元153和管理信息存储器基元154。当根据通过数据传输处理单元151对存储在DRAM 11或NAND存储器12中的数据进行的改变处理而需要对管理信息进行更新时,管理信息写入单元153对存储在DRAM 11中的管理信息进行更新。
当存储器***10满足预定的条件时,管理信息存储器基元1554在NAND存储器12的管理信息存储区126中存储管理信息作为快照,或存储要在管理信息中更新的信息作为日志220。当指针230被写入的位置根据快照210或日志220(前日志220A和后日志220B)的存储而被改变时,管理信息存储器基元154还对指针230执行更新处理。
当关于存储***10的预定条件满足时,对快照210的存储由管理信息存储单元154执行。例如,当在NAND存储器12的管理信息存储区126中提供的用于存储日志220(前日志220A和后日志220B)的日志存储区被写满时(即,该区域完全充满数据),执行对快照210的存储。
在涉及对存储在DRAM 11中的管理信息(非易失性表)的更新的对NAND存储器12进行的数据更新(当必须在NAND存储器中写入数据时)期间,由管理信息存储器基元154执行日志220(前日志220A和后日志220B)的存储。
当由数据传输处理单元151或管理信息存储器基元154将写入数据写入一次写入区128时,如果该写入数据被写入的页是和已写入页(其中已写入了数据)的相同的存储器基元晶体管的不同页(高阶页),则保存处理单元155执行处理以将存储在该已写入页中的写入数据存储在保存区127中,以应对由于在写入写入数据时发生短中断或程序错误而产生的低阶页数据损坏。
图12A至12D是存储器基元中的数据和存储器基元的阈值电压之间的关系以及写入NAND存储器的顺序的示例的示图。图13A至13E是解释在一次写入处理期间的低阶页数据损坏的示图。首先,当执行擦除操作时,存储器基元中的数据被置为“0”。随后,如图12A所示,当执行对低阶页的写入时,存储器基元中的数据被改变为数据“0”和数据“2”。如图12B所示,在对高阶页写入之前,等于或小于实际数据的阈值的数据被写入相邻的单元。于是,由写入该单元的数据将数据“2”的阈值的分布扩展。然后当写入高阶页的数据时,存储器基元中的数据变成具有初始阈值电压的数据“0”至“3”,如图12C所示。在本实施方式中,存储器基元中的数据从低到高阈值电压被定义。
下面介绍NAND存储器12中的写入处理。如图12D所示,从一个块中接近源极线的存储器基元开始对每个页执行写操作。在图12D中,为了解释方便,显示了4条字线。
在第一次写入中(由带圆圈的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的高阶页。
保存处理单元155存储以上解释的低阶页和高阶页的关系作为页位置信息,即,低阶页和可能引起低阶页数据损坏的高阶页的关系。
图13A中一个物理块中的各页对应于图12A至12D。换言之,页1至4、7、8、11和12是图12A至12D中所示的低阶页。页5、6、9、10、13至16是图12A至12D中所示的高阶页。以下分别介绍当需要进行保存处理时执行的在具有这种页结构的块中进行写入的一次写入操作,以及当不需要进行保存处理时执行的一次写入处理。在图13A至13E中,为了解释方便,各个页被分为低阶页和高阶页。但是,低阶页和高阶页的组合构成了一个物理块。
(1)当需要进行保存处理时执行的一次写入处理
(1-1)仅在低阶页写入数据
如图13B所示,当仅在低阶页(例如,页1至4)以一次写入方式写入数据时不需要保存处理。这是因为,在这种情况中,即使在数据写入低阶页时发生短中断,也不会发生低阶页数据损坏。
(1-2)数据被写入不包括已写入页的高阶页和低阶页
如图13C所示,当数据写入不包括已写入页的高阶页和低阶页时,保存处理是必须的。这是因为,在这种情况中,数据写入低阶页1至4和高阶页5至6,并且由于对应于高阶页5和6的低阶页1和2不是已写入页,低阶页数据损坏不会发生。
(2)保存处理是必需的
(2-1)仅在高阶页写入数据
如图13D所示,当仅在高阶页以一次写入方式写入数据时,低阶页总是已写入页。在这种情况中,由页位置信息计算低阶页,在该低阶页中,被写入了写数据的高阶页可能引起低阶页数据损坏。存储在低阶页中的内容保存在保存区127。这是因为,在这一处理中,当在高阶页写入期间发生短中断时,与其对应的低阶页(即,与被写入数据的高阶页具有相同的存储器晶体管的低阶页)有可能被损坏。在图13D所示的情况中,当对高阶页5和6执行写入时,根据图12A至12D所示的页位置信息,低阶页1和2被保存在保存区127。
(2-2)数据被写入包含已写入页的低阶页和高阶页
如图13E所示,当数据写入包含已写入页的低阶页和高阶页时,由页位置信息来计算低阶页,在该低阶页中低阶页数据损坏有可能由这样的高阶页引发,在该高阶页中写入了在各个数据中要写入高阶页的数据。存储在低阶页中的内容被保存在保存区127。在图13E所示情况中,数据以一次写入方式写入低阶页和高阶页,即,页4至6。在这种情况下,根据图12A至12D所示的页位置关系计算与写入高阶页的页5和6对应的低阶页1和2。页1和2的内容保存在保存区127。
如果在进行一次写入处理以对一次写入区128的高阶页进行写入期间发生了程序错误或短中断,以及发生了低阶页数据损坏,当在程序错误或短中断之后存储器***10的电源被接通时,损坏信息恢复处理单元156使用在保存区127保存的数据执行在发生低阶页数据损坏的位置处恢复数据的处理。
当存储器***10的电源被接通时,管理信息恢复单元157基于存储在NAND存储器12的管理信息存储区126管理信息存储信息来执行对管理信息的恢复处理。具体说,管理信息恢复单元157按顺序跟踪指针230和日志220(前日志220A和后日志220B),并确定是否存在对应于最新的快照210的日志220(前日志220A和后日志220B)。当不存在该日志220时,管理信息恢复单元157在DRAM 11中的快照存储块中恢复快照210作为管理信息。当存在所述日志220时,由于发生了非正常终止,例如,程序错误或短中断,管理信息恢复单元157从快照存储块获取快照210,从日志存储块获取日志220(前日志220A和后日志220B),并对管理信息(非易失性表)进行恢复,在DRAM 11的快照210上反映出日志220。
下面介绍在一次写入区128写入数据的处理。图14是在存储器***的一次写入区进行写入数据的处理的程序的示例的流程图。假定存储器***10连接到主机设备,并作为该主机设备的次级存储装置运行,并且该主机装置(存储器***10)处于启动状态。
当存储器***10处于启动状态时,保存处理单元155接收对数据进行一次写入处理的指令(步骤S11)。保存处理单元155获取要经历一次写入处理的数据的写入位置(以下称为写数据)(步骤S12)。随后,该保存处理单元确定所获取的写入位置的一部份是否包括高阶页,并确定对应于该高阶页的低阶页是否是已写入页(步骤S13)。
当所述写入位置的一部份包括高阶页,并且对应于该高阶页的低阶页是已写入页时(步骤S13中的“是”),保存处理单元155使用页位置信息来获取使用这样的低阶页,该低阶页使用的存储器基元与在写入位置中的该高阶页的存储器基元相同(步骤S14)。随后,管理信息管理单元152通过执行一次写入处理来确定对所述管理信息的更新进度表(包括在保存区127的存储处理)(步骤S15),并在NAND存储器12的管理信息存储区126存储该更新进度表作为前日志220A(步骤S16)。然后,该保存处理单元155在保存区127存储在步骤S14中获得的存储在低阶页中的数据的内容(步骤S17)。在以一次写入方式在写入位置写入了写数据后(步骤S18),数据传输处理单元151在NAND存储器12的管理信息存储区26保存后日志220B(步骤S19),并且,数据的一次写入处理结束。
另一方面,当写入位置的一部份不包含高阶页或当对应于该高阶页的低阶页不是已写入页时(步骤S13中的“否”),管理信息管理单元152通过执行一次写入处理来为管理信息确定更新进度表(步骤S20),并在NAND存储器12的管理信息存储区126存储该更新进度表作为前日志220A(步骤S21)。然后,在以一次写入方式在所述写入位置写入了写数据后(步骤S22),数据传输处理单元151在NAND存储器12的管理信息存储区126中保存后日志220B(步骤S23),并且,数据的一次写入处理结束。
在执行图14中的流程图所示的处理的过程中,任何时刻可能发生非正常断电。因此,写入NAND存储器12的数据和管理信息总需要保持一致。所以,设置保护数据的规则,以防备在执行图14中的流程图所示的处理时发生短中断。图15是解释用于将NAND存储器中的数据与一次写入处理中的管理信息匹配的规则的示例的示图。横轴表示消逝的时间t。在图15中,在关于以上所述的任何一种处理的对后日志220B执行的写入处理结束后(步骤S300),在下一次的一次写入处理中执行对前日志220A的写入处理(存储)(步骤S301)、对写数据的一次写入处理(步骤S302)、和对后日志220B的写入处理(存储)(步骤S303)。
当在从对前日志220A的写入处理(步骤S301)到对写数据的一次写入处理(步骤S302)的过程中发生了短中断时,将写数据写入NAND存储器12的处理由于该短中断而没有正常地结束。在这种情况下,如果直到短中断发生时的操作没有被废弃,并且被写入前日志220A的内容被采纳为管理信息,则写入尚未实际写入NAND存储器12的信息。换言之,在写入NAND存储器12的数据和管理信息之间存在失配。因此,在这种情况下,在直到发生短中断的那一时刻所执行的操作被废弃。被废弃的操作的时间跨度称作废弃段D1。
另一方面,当对写数据的一次写入处理(步骤S302)结束并且在对后日志220B的写入处理(步骤S303)之后的阶段发生了短中断时,将写数据写入NAND存储器12的处理就正常地结束了。在这种情况下,即使直到短中断发生时的操作不被废弃,并且写入前日志220A的内容被采纳为管理信息,也没有问题发生,因为写数据已经被写入NAND存储器12中。因此,在这种情况下,就确定了在短中断持续的时间跨度内一直执行的操作。所确定的所述操作的时间跨度被称作操作确定段D2。
下面解释在对图13A至13E所示的数据进行一次写入处理期间在发生短中断之后,对NAND存储器12的恢复处理。图16和17是在短中断发生后对写数据的恢复处理的示例的流程图。如上所述,假设该存储器***10连接到主机设备并且作为该主机设备的次级存储装置运行。
首先,开通该主机设备的电源,并且向存储器***10发送启动指令(步骤S31)。图10所示的引导加载144将未示出的管理信息从NAND存储器12发送到诸如SRAM或DRAM 11的存储器(步骤S32),并启动管理程序(步骤S33)。通过启动管理程序,就可以由图11所示的数据管理单元141中的各功能处理单元执行处理。
随后,管理信息恢复单元157读取NAND存储器12的管理信息存储区126中的最新指针230,并获取存储了快照210和前日志220A和后日志220B的块的地址(步骤S34)。
管理信息恢复单元157从在步骤S34获取的NAND存储器12中的地址读取快照210,并在DRAM 11的临时存储区111中恢复快照(步骤S35)。
管理信息恢复单元157参考NAND存储器12中的前日志220A和后日志220B检查日志的最后写入位置,并比较可写入页的位置以探测最后写入的日志和电源断开的时间(步骤S36)。然后,管理信息恢复单元157确定是否发生了短中断(步骤S37)。在确定是否发生了短中断时,管理信息恢复单元157比较为参考快照210生成的第一前日志220A的从写入位置到最后写入位置的页的数量,和以相同方式生成的第一后日志220B的从写入位置到最后写入位置的页的数量。当所述页的数量不同时,管理信息恢复单元157确定发生了短中断。否则,管理信息恢复单元157确定没有发生短中断。当所述页的数量不同时,管理信息恢复单元157比较最后写入的日志的内容。当所述内容相同时,管理信息恢复单元157确定没有发生短中断。否则,管理信息恢复单元157确定发生了短中断。
当没有发生短中断时(步骤S37中的“否”),管理信息恢复单元157在步骤S35从在DRAM 11的临时存储区111恢复的快照210中恢复管理信息(步骤S38),然后该恢复处理结束。
另一方面,当发生了短中断时(步骤S37中的“是”),管理信息恢复单元157判断短中断发生的区段是否是操作废弃段D1(步骤S39)。当短中断发生的区段不是操作废弃段D1时,即,当短中断发生的区段是操作确定段D2时(步骤S39中的“否”),管理信息恢复单元157在DRAM11的工作区112扩展出现在在步骤S34获得的存储位置处的前日志220A(步骤S40)。从最老的前日志220A起,管理信息恢复单元157将各日志按顺序反映到快照210上,并恢复管理信息(步骤S41),然后恢复处理结束。
当在步骤S39中短中断发生的区段是操作废弃段D1时(步骤S39中的“是”),管理信息恢复单元157在DRAM 11的工作区112扩展出现在在步骤S34获得的存储位置处的后日志220B(步骤S42),并确定是否有数据以一次写入方式被写入保存区127(步骤S43)。当没有数据以一次写入方式被写入保存区127时(步骤S43中的“否”),管理信息恢复单元157确定是否有数据以一次写入方式被写入一次写入区128(步骤S44)。当有数据以一次写入方式被写入一次写入区128时(步骤S44中的“是”),这意味着所述电源断开是在进行一次写入处理以在低阶页中进行写入期间的电源断开;因此,管理信息恢复单元157确定过去没有由于低阶页数据损坏而导致的数据损坏(步骤S45)。管理信息恢复单元157使相关页无效,或将相关块的有效页复制到保证被刷新的块(步骤S46)。然后,管理信息恢复单元157从在步骤S42在DRAM 11中扩展的最老的后日志220B到废弃处理前的阶段的后日志220B按顺序将各日志反映到快照210上,并恢复管理信息(步骤S47),然后该恢复处理结束。
当在步骤S44没有数据以一次写入方式被写入一次写入区128时(步骤S44中的“否”),管理信息恢复单元157确定所述短中断发生在执行一次写入处理之前的时刻(步骤S48)。因此,在一次写入区128执行数据的恢复处理是不必要的。管理信息恢复单元157从在步骤S42在DRAM11中扩展的最老的后日志220B开始按顺序将各日志反映到快照210上,并恢复管理信息(步骤S49),然后该恢复处理结束。
当在步骤S43有数据以一次写入方式写入一次写入区127时(步骤S43中的“是”),管理信息恢复单元157进一步检查是否有数据以一次写入方式写入一次写入区128(步骤S50)。当有数据以一次写入方式写入一次写入区128时(步骤S50中的“是”),这意味着电源断开是在对高阶页进行写入的一次写入处理期间的电源断开;因此,管理信息恢复单元157确定在过去由于低阶页数据损坏而导致数据损坏是可能发生的(步骤S51)。因为在一次写入区128的写处理已经开始,在保存区127的备份处理保证能够完成。因此,管理信息恢复单元157由在保存区127的备份在一次写入区128恢复损坏页,并将所述页复制到保证被刷新了的块中(步骤S52)。同时,管理信息恢复单元157从在步骤S42在DRAM 11中扩展的最老的后日志220B开始按顺序将各日志反映到快照210上,并恢复管理信息(步骤S53),然后该恢复处理结束。
此外,当在步骤S50没有数据以一次写入方式写入一次写入区128时(步骤S50中的“否”),短中断是在一次写入区128中开始一次写入之前的阶段的短中断。因此,对数据的恢复处理是不必要的(步骤S54)。管理信息恢复单元157从在步骤S42在DRAM 11中扩展的最老的后日志220B开始按顺序将各日志反映到快照210上,并恢复管理信息(步骤S55),然后该恢复处理结束。在这种情况下,管理信息恢复单元157执行处理以使得以一次写入的方式被写入保存区127的页的内容不能被写入。根据以上介绍的程序,在短中断发生时关于一次写入数据的恢复处理结束。
如上所述,根据该实施方式,在对包括等于或大于2位的多值存储器的NAND存储器12中的高阶页进行一次写入处理以进行写入的过程中,在存储在多值存储器(和要进行一次写入处理的高阶页相同的多值存储器)的低阶页的数据的内容被存储在保存区127之后,进行对高阶页的写入处理。因此,存在这样一个效应,即,即使在写处理期间由于发生了短中断或程序错误而发生了低阶页数据损坏,也能够使用存储在保存区127中的数据恢复由于低阶页数据损坏而损坏的数据。
在上述例子中,构成NAND存储器12的存储器基元晶体管MT是等于或大于2位的多值存储器。但是,本发明可以应用于任何存储器晶体管MT,只要该存储器晶体管MT是等于或大于2位的多值存储器。在这种情况下,各个页包括3页或更多页,例如,高阶页、中级页(intermediatepage)和低阶页。在对高阶页进行写入时,有可能在中级页和低阶页发生低阶页数据损坏。在这种情况下,中级页和低阶页的数据被存储在保存区127。
另外,在上述介绍中,保存区127设置在NAND存储器12中。但是,保存区127专用的存储器基元可以设置在与NAND存储器12不同类型的非易失存储器中。所述电荷累积层不限于浮置栅极型,可以是包括氮化硅膜的电荷捕获型,例如,MONOS(金属-氧化物-氮化物-氧化物-半导体)结构,或者是其他***。
如上所述,根据本发明,有这样的效应,在具有包含多值存储器的NAND闪速存储器的存储器***中,即使在某个存储器基元晶体管的高阶页进行写入期间,发生了短中断或程序错误,也能够恢复已写入数据的该存储器基元晶体管的低阶页的内容。
对本领域技术人员来说,其他的优点和修改是显而易见的。因此,本发明在其更宽的方面不限于这里所述的代表性实施方式的具体细节。因而,可以进行各种修正而不脱离所附的权利要求书及其等价描述所限定的本发明的总的发明概念的精神和范围。
Claims (15)
1.一种存储器***,包括:
易失性第一存储单元;
非易失性第二存储单元,其中设置有多个能够存储多值数据的存储器基元,所述存储器基元具有多个页;以及
控制器,其在主机设备和所述第二存储单元之间通过所述第一存储单元来执行数据传输,将包括在所述存储器***的启动操作期间存储在所述第二存储单元的数据的存储位置的管理信息存储在所述第一存储单元,并且在更新存储的管理信息的同时,基于所述存储的管理信息在所述第一和第二存储单元中执行数据管理,所述控制器包括:
保存处理单元,在将数据以一次写入方式写入所述第二存储单元之前,如果数据已经写入了其存储器基元与被写入数据的页的存储器基元相同的低阶页,则所述保存处理单元将所述低阶页的数据备份;以及
损坏信息恢复处理单元,当所述低阶页中的数据被损坏时,所述损坏信息恢复处理单元使用由所述保存处理单元备份的所述数据恢复被损坏的数据。
2.根据权利要求1所述的存储器***,其中所述保存处理单元基于页位置信息确定数据是否已经写入了其存储器基元与被写入数据的页的存储器基元相同的低阶页,所述页位置信息表明了在为同一个存储器基元设定的不同页之间的关系。
3.根据权利要求1所述的存储器***,其中所述保存处理单元将已被写入的数据中的可能被损坏的数据备份到所述第二存储单元的保存区。
4.根据权利要求3所述的存储器***,进一步包括:
管理信息存储单元,当所述存储器***满足预定条件时,所述管理信息存储单元将存储在所述第一存储单元中的管理信息存储在所述第二存储单元作为管理信息存储信息;和
管理信息恢复单元,在所述存储器***的启动操作期间,所述管理信息恢复单元在所述第一存储单元中恢复存储在所述第二存储单元的所述管理信息存储信息中的最新管理信息。
5.根据权利要求4所述的存储器***,其中
所述管理信息存储信息包括:
作为所述管理信息在特定点的内容的快照,
日志,作为当在所述管理信息的内容中由于写入了一次写入数据而存在改变时在所述内容改变后的管理信息与所述快照之间的差异信息,或,所述改变之后的所述管理信息和所述快照之间的差异以及已经产生的日志,和
指针,表明所述快照和首先获取的关于所述快照的日志在所述第二存储单元的存储位置,并且
所述管理信息恢复单元,在所述存储器***的启动操作期间,使用所述管理信息存储信息中的最新快照,或者如果在所述快照中有日志就使用该日志,或者如果有一次写入数据被写入所述保存区则使用该一次写入数据以恢复所述第一存储单元中的所述管理信息。
6.根据权利要求5所述的存储器***,其中
所述日志包括在写入一次写入数据之前存储的前日志和在写入一次写入数据之后存储的后日志,以及
所述管理信息恢复单元使用所述前日志和所述后日志中的任一个来恢复所述管理信息。
7.根据权利要求6所述的存储器***,其中,当从所生成的关于参考快照的各个前日志的第一个的写入位置到最后的写入位置的页的数量与从各个后日志的第一个的写入位置到最终的写入位置的页的数量相同时,所述管理信息恢复单元使用所述管理信息存储信息中的最新的快照来恢复所述第一存储单元中的所述管理信息。
8.根据权利要求6所述的存储器***,其中,
当从所生成的关于参考快照的各个前日志的第一个的写入位置到最后的写入位置的页的数量与从各个后日志的第一个的写入位置到最终的写入位置的页的数量不同时,并且
在所述后日志写入期间发生了短中断或程序中止时,
所述管理信息恢复单元使用所述管理信息存储信息中的最新快照和为所述快照存储的所有前日志来恢复所述第一存储单元中的所述管理信息。
9.根据权利要求6所述的存储器***,其中,
当从所生成的关于参考快照的各个前日志的第一个的写入位置到最后的写入位置的页的数量与从各个后日志的第一个的写入位置到最终的写入位置的页的数量不同时,并且
在从写入前日志到一次写入数据的写入结束的时间跨度内发生了短中断或程序中止,
所述管理信息恢复单元使用所述管理信息存储信息中的最新快照和为所述快照正常存储的所有后日志来恢复第一存储单元中的管理信息。
10.根据权利要求9所述的存储器***,其中,
所述第二存储单元具有一次写入区和非一次写入区,在所述一次写入区中数据以一次写入方式被写入,在所述非一次写入区中数据以一个或预定数量的物理块为单位全体地被写入,并且
所述损坏信息恢复处理单元根据出现或不出现以一次写入方式被写入所述一次写入区和所述非一次写入区的数据来执行对所述一次写入区的数据的恢复处理。
11.根据权利要求10所述的存储器***,其中,
当没有数据以一次写入方式被写入保存区,并且有数据以一次写入方式被写入一次写入区时,所述损坏信息恢复处理单元确定在进行一次写入处理以写入低阶页期间发生了短中断或程序错误,并执行处理以使其中出现了以一次写入方式被写入的数据的页无效,或将其中出现了以一次写入方式被写入的数据的块的有效页复制到另一块。
12.根据权利要求10所述的存储器***,其中,当没有数据以一次写入方式被写入所述保存区并且也没有数据以一次写入方式被写入所述一次写入区时,所述损坏信息恢复处理单元不执行对所述数据的恢复处理。
13.根据权利要求10所述的存储器***,当有数据以一次写入方式被写入所述保存区并且也有数据以一次写入方式被写入所述一次写入区时,所述损坏信息恢复处理单元使用在所述保存区备份的数据执行处理以恢复所述一次写入区中的损坏页,并将所述页复制到另一个块。
14.根据权利要求10所述的存储器***,其中当有数据以一次写入方式被写入所述保存区并且没有数据以一次写入方式被写入所述一次写入区时,所述损坏信息恢复处理单元不执行对所述数据的恢复处理。
15.根据权利要求1所述的存储器***,其中
所述第一存储单元是DRAM,并且
所述第二存储单元是NAND闪存。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008048799A JP2009205555A (ja) | 2008-02-28 | 2008-02-28 | メモリシステム |
JP048799/2008 | 2008-02-28 | ||
PCT/JP2009/052588 WO2009107505A1 (en) | 2008-02-28 | 2009-02-10 | Memory system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101681311A true CN101681311A (zh) | 2010-03-24 |
Family
ID=41015905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980000129A Pending CN101681311A (zh) | 2008-02-28 | 2009-02-10 | 存储器*** |
Country Status (7)
Country | Link |
---|---|
US (1) | US8190812B2 (zh) |
EP (1) | EP2248026B1 (zh) |
JP (1) | JP2009205555A (zh) |
KR (1) | KR101099804B1 (zh) |
CN (1) | CN101681311A (zh) |
TW (1) | TWI419159B (zh) |
WO (1) | WO2009107505A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053916A (zh) * | 2010-12-17 | 2011-05-11 | 天津曙光计算机产业有限公司 | 一种分配内核大片连续内存的方法 |
CN102609370A (zh) * | 2012-02-06 | 2012-07-25 | 记忆科技(深圳)有限公司 | 防止固态硬盘数据丢失的方法及其固态硬盘 |
CN106909317A (zh) * | 2011-01-20 | 2017-06-30 | 谷歌公司 | 在存储节点上存储数据 |
CN109324932A (zh) * | 2017-07-31 | 2019-02-12 | 三星电子株式会社 | 数据存储***、数据存储方法以及制造固态驱动器的方法 |
CN111227856A (zh) * | 2018-11-29 | 2020-06-05 | 佳能株式会社 | 放射线摄像***、控制装置、控制方法和计算机可读介质 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8151060B2 (en) | 2006-11-28 | 2012-04-03 | Hitachi, Ltd. | Semiconductor memory system having a snapshot function |
JP2009211215A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
JP2011048725A (ja) * | 2009-08-28 | 2011-03-10 | Panasonic Corp | 不揮発性記憶装置および不揮発性メモリコントローラ |
JP2012128816A (ja) | 2010-12-17 | 2012-07-05 | Toshiba Corp | メモリシステム |
CN102693171B (zh) * | 2011-08-05 | 2015-11-18 | 新奥特(北京)视频技术有限公司 | 一种信息录入***的恢复方法及*** |
CN103377099B (zh) * | 2012-04-19 | 2017-02-08 | ***通信集团公司 | Nfc移动终端数据备份及恢复的方法和装置 |
JP2013229086A (ja) * | 2012-04-27 | 2013-11-07 | Sony Corp | メモリ装置、メモリ制御装置、メモリ制御方法 |
US9612757B2 (en) | 2012-10-19 | 2017-04-04 | Hewlett Packard Enterprise Development Lp | Asynchronous consistent snapshots in persistent memory stores |
KR102002826B1 (ko) | 2012-12-04 | 2019-07-23 | 삼성전자 주식회사 | 저장 장치, 플래시 메모리 및 저장 장치의 동작 방법 |
US9032271B2 (en) * | 2012-12-07 | 2015-05-12 | Western Digital Technologies, Inc. | System and method for lower page data recovery in a solid state drive |
KR102094334B1 (ko) | 2013-03-15 | 2020-03-27 | 삼성전자주식회사 | 비휘발성 멀티-레벨 셀 메모리 시스템 및 상기 시스템에서의 적응적 데이터 백업 방법 |
KR102190399B1 (ko) | 2013-10-11 | 2020-12-11 | 삼성전자주식회사 | 신뢰성을 보장할 수 있는 불휘발성 메모리 장치의 동작 방법 및 상기 방법을 수행하는 메모리 시스템 |
US9245633B2 (en) | 2014-01-22 | 2016-01-26 | Htc Corporation | Storage device, electronic device, and method for programming memory |
US9888077B2 (en) | 2014-04-22 | 2018-02-06 | Western Digital Technologies, Inc. | Metadata based data alignment in data storage systems |
US9811275B2 (en) | 2015-02-27 | 2017-11-07 | Toshiba Memory Corporation | Memory system and data control method |
WO2016144293A1 (en) * | 2015-03-06 | 2016-09-15 | Hewlett Packard Enterprise Development Lp | Controller control program |
KR102405054B1 (ko) * | 2015-11-27 | 2022-06-08 | 에스케이하이닉스 주식회사 | 메모리 장치 및 메모리 장치의 동작 방법 |
KR20180076605A (ko) | 2016-12-28 | 2018-07-06 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06266597A (ja) * | 1993-03-11 | 1994-09-22 | Fujitsu Ltd | ログ取得方式 |
JP4059473B2 (ja) * | 2001-08-09 | 2008-03-12 | 株式会社ルネサステクノロジ | メモリカード及びメモリコントローラ |
JP2004062759A (ja) | 2002-07-31 | 2004-02-26 | Hitachi Ltd | データベースログの管理方法、その装置およびそのプログラム |
JP2004086991A (ja) * | 2002-08-27 | 2004-03-18 | Renesas Technology Corp | 不揮発性記憶装置 |
US7613880B2 (en) * | 2002-11-28 | 2009-11-03 | Renesas Technology Corp. | Memory module, memory system, and information device |
JP3935139B2 (ja) | 2002-11-29 | 2007-06-20 | 株式会社東芝 | 半導体記憶装置 |
US7814057B2 (en) | 2005-04-05 | 2010-10-12 | Microsoft Corporation | Page recovery using volume snapshots and logs |
US20090100290A1 (en) | 2005-08-22 | 2009-04-16 | Matsushita Electric Industrial Co., Ltd. | Memory controller, nonvolatile memory device, nonvolatile memory system, and data writing method |
JP4805696B2 (ja) * | 2006-03-09 | 2011-11-02 | 株式会社東芝 | 半導体集積回路装置およびそのデータ記録方式 |
US7945825B2 (en) * | 2007-11-25 | 2011-05-17 | Spansion Isreal, Ltd | Recovery while programming non-volatile memory (NVM) |
JP5010505B2 (ja) * | 2008-03-01 | 2012-08-29 | 株式会社東芝 | メモリシステム |
JP5317689B2 (ja) * | 2008-12-27 | 2013-10-16 | 株式会社東芝 | メモリシステム |
JP5198245B2 (ja) * | 2008-12-27 | 2013-05-15 | 株式会社東芝 | メモリシステム |
JP5377175B2 (ja) * | 2009-09-08 | 2013-12-25 | 株式会社東芝 | コントローラ、及びデータ記憶装置 |
-
2008
- 2008-02-28 JP JP2008048799A patent/JP2009205555A/ja active Pending
-
2009
- 2009-02-10 US US12/529,235 patent/US8190812B2/en active Active
- 2009-02-10 EP EP09711527.3A patent/EP2248026B1/en not_active Not-in-force
- 2009-02-10 KR KR1020097018050A patent/KR101099804B1/ko not_active IP Right Cessation
- 2009-02-10 CN CN200980000129A patent/CN101681311A/zh active Pending
- 2009-02-10 WO PCT/JP2009/052588 patent/WO2009107505A1/en active Application Filing
- 2009-02-19 TW TW098105314A patent/TWI419159B/zh not_active IP Right Cessation
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053916A (zh) * | 2010-12-17 | 2011-05-11 | 天津曙光计算机产业有限公司 | 一种分配内核大片连续内存的方法 |
CN102053916B (zh) * | 2010-12-17 | 2013-06-05 | 曙光信息产业股份有限公司 | 一种分配内核大片连续内存的方法 |
CN106909317A (zh) * | 2011-01-20 | 2017-06-30 | 谷歌公司 | 在存储节点上存储数据 |
CN106909317B (zh) * | 2011-01-20 | 2020-05-19 | 谷歌有限责任公司 | 在存储节点上存储数据 |
CN102609370A (zh) * | 2012-02-06 | 2012-07-25 | 记忆科技(深圳)有限公司 | 防止固态硬盘数据丢失的方法及其固态硬盘 |
CN102609370B (zh) * | 2012-02-06 | 2014-12-17 | 记忆科技(深圳)有限公司 | 防止固态硬盘数据丢失的方法及其固态硬盘 |
CN109324932A (zh) * | 2017-07-31 | 2019-02-12 | 三星电子株式会社 | 数据存储***、数据存储方法以及制造固态驱动器的方法 |
CN109324932B (zh) * | 2017-07-31 | 2023-04-21 | 三星电子株式会社 | 数据存储***、数据存储方法以及制造固态驱动器的方法 |
CN111227856A (zh) * | 2018-11-29 | 2020-06-05 | 佳能株式会社 | 放射线摄像***、控制装置、控制方法和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20090117761A (ko) | 2009-11-12 |
EP2248026B1 (en) | 2015-08-26 |
WO2009107505A1 (en) | 2009-09-03 |
KR101099804B1 (ko) | 2011-12-27 |
US8190812B2 (en) | 2012-05-29 |
US20110185108A1 (en) | 2011-07-28 |
TW200947439A (en) | 2009-11-16 |
EP2248026A1 (en) | 2010-11-10 |
JP2009205555A (ja) | 2009-09-10 |
EP2248026A4 (en) | 2010-11-10 |
TWI419159B (zh) | 2013-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101681311A (zh) | 存储器*** | |
CN101681312B (zh) | 存储器*** | |
CN101198939B (zh) | 管理闪存中的存储器 | |
CN101681317B (zh) | 存储器*** | |
US8285954B2 (en) | Memory system managing a plurality of logs | |
CN101681313A (zh) | 存储器*** | |
CN101251826B (zh) | 闪速存储器、用于闪速存储器的数据管理方法及设备 | |
JP2010152514A (ja) | メモリシステム | |
CN101187849A (zh) | 存储装置和存储*** | |
JP4558052B2 (ja) | メモリシステム | |
JP4551938B2 (ja) | メモリシステム | |
JP2009211213A (ja) | メモリシステム | |
JP2009211188A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20100324 |