CN101198939A - 抗掉电后数据损坏的闪存管理方法 - Google Patents
抗掉电后数据损坏的闪存管理方法 Download PDFInfo
- Publication number
- CN101198939A CN101198939A CNA2006800211307A CN200680021130A CN101198939A CN 101198939 A CN101198939 A CN 101198939A CN A2006800211307 A CNA2006800211307 A CN A2006800211307A CN 200680021130 A CN200680021130 A CN 200680021130A CN 101198939 A CN101198939 A CN 101198939A
- Authority
- CN
- China
- Prior art keywords
- page
- write
- leaf
- data
- pages
- 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
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/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/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Library & Information Science (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种管理基于页的数据存储介质比如闪存介质的方法,使用该方法的系统以及承载着实施该方法的代码的计算机可读存储介质。对于每页,如果向该页的写入被中断将使其它页数据面临被损坏风险,都识别出其他页的对应风险区。选择了某页用于写入新数据时,其风险区中的已写入页将被复制到日志。需要时以所述日志的对应数据替换被损坏的数据。
Description
技术领域
本发明涉及管理闪存的方法,更确切地说,涉及管理多电平单元闪存的方法,它能够抵抗意外掉电时数据损坏。
背景技术
闪存是EEPROM(电擦除可编程只读存储器)非易失性存储器的一种形式。图1A为基于闪存的一般数据存储设备10的高层次示意框图,主机设备(未显示)用它将数据存储在一片或多片NAND闪存介质12中。在随机存取存储器(RAM)16和辅助非易失性存储器18的帮助下,基于微处理器的控制器14控制着设备10的操作。为了这个目的,闪存设备10与主机系统通过闪存设备10中的通信端 20通信。典型情况下,为了与主机设备(其操作系统为面向块存储设备比如硬磁盘)的向后兼容性,闪存设备10仿真块存储器设备,使用辅助非易失性存储器18中存储的固件,它实施若干闪存管理方法,比如由Ban在US 5,404,485和US 5,937,425中讲授的方法,两个专利都在此引用作为参考,以达到仿佛本文进行了全面阐述的所有目的。设备10的部件一起装在公共外壳15中。
使用NAND闪存介质存储数据的其他设备已公知。图1B显示了个人计算机10′,其中NAND闪存介质12用于补充或取代长期非易失性存储数据的硬磁盘。控制器14现在表示个人计算机10′的中央处理单元。辅助非易失性存储器18现在表示个人计算机10′的全部其他非易失性存储器,包括其中存储着引导代码的BIOS和存储着个人计算机10′的操作系统(包括闪存管理系统)的硬磁盘(除非NAND闪存介质12取代了硬磁盘,在此情况下该操作系统存储在NAND闪存介质12中)。个人计算机10′的NAND闪存介质12、控制器14、RAM 16、辅助非易失性存储器18和其他组件(未显示)经由总线19彼此通信。在个人计算机10′的某些配置中,NAND闪存介质12在可拔插卡上。在个人计算机10′的其他配置中,所展示的若干组件被集成在单一整体物理设备中,所以NAND闪存介质12不是物理上分开的实体。
控制器14对NAND闪存介质12执行的操作包括读操作、写操作和擦除操作。典型情况下以称为“页”的单位写NAND闪存介质12,典型情况下每页包括512字节到2048字节之间,并且典型情况下以称为“块”的单位擦除,典型情况下每块包括16页到64页之间。注意,指NAND闪存介质12的可擦除单元时使用“块”字不应当与术语“块存储设备”中使用“块”字相混淆。块存储设备的“块”性质是指以下事实:设备驱动程序输出的接口交换数据时,单位仅仅是典型情况下称为“扇区”的固定尺寸单位的整数倍。
为了方便NAND闪存介质12的管理,控制器14为每页分配了“未写入”或“已写入”的状态。状态是“未写入”的页是自从上次擦除后尚未写入的页,因而可用于写入。状态是“已写入”的页是已经写入数据而尚未擦除的页。在设备10′的某些实施例中,控制器14还为某些页分配了“已删除”的状态。状态是“已删除”的页是包含无效(典型情况下被取代或过期)数据的页。在支持“已删除”页的设备10′的若干实施例中,“已写入”状态是为包含有效数据的页所保留。本文中,状态是“未写入”的页称为“未写入页”,状态是“已写入”的页称为“已写入页”,而状态是“已删除”的页称为“已删除页”。
由于设备10′用于非易失性数据存储,关键的是设备10′在任何情况下都要保留写入到其中的数据。设备10′中所存储数据完整性的主要风险是突发的电源故障——正当设备10′在操作的中途,在没有事先通知的情况下设备10′的电源被中断。这样的电源故障往往会使中断的操作具有不正确或不可预测的结果。
如果电源故障出现在正当设备10′在改变NAND闪存介质12的内容的操作的中途,例如在写入某页数据的中途或在擦除某块的中途,已经为设备10′再次加电后,所中断页或块的内容是不可预测的,而且实际上可能是随机的。这是因为某些受影响的位在电源被中断之时可能已经得到了所述操作为其分配的状态,而其他位却滞后而尚未处于其目标值。不仅如此,某些位可能被发现处于中间状态,因而处于不可靠的模式,在此模式下在不同的读操作中读取这些位将返回不同的结果。
许多现有技术的闪存管理软件系统很好地处理了这种问题,例如以色列Kfar Saba的M-Systems Flash Disk Pioneers有限公司使用的TrueFFSTM闪存管理系统。这些现有技术的系统能够免于这种问题的原因是数据损坏被局限到当出现电源故障时正被修改的页或块。NAND闪存介质12中的所有其他页保持了其内容而不变为被损坏。因此,在写操作被中断的情况下,现有技术的闪存管理系统能够假定所有其他页有效,而集中于最后写入的页。有几种方式可以使用。
一种方式是在操作之前将指向要写入的页或要擦除的块的指针存储到预定位置中,所以当设备10′再次加电时,控制器14能够查找这个指针并立刻知道哪页或哪块是最后的目标页或目标块。这种方法通常使用一个或多个有效旗标,它们向控制器14指明所述操作是否成功地完成。参见例如6,977,847号美国专利,在此引用作为参考,以达到仿佛本文进行了全面阐述的所有目的。这个专利申请讲授了这样的方法的实例,用于抵御擦除期间掉电。
另一种方式是将在任何给定时刻可以写入数据的位置限制到仅仅是若干页的子集。那么控制器14就能够将所有这样的位置视为可能损坏位置,并且能够在加电后避免使用在其中存储的数据。作为替代,控制器14能够使该数据经过“有效性测试”,之后才相信它们未被损坏。能够应用这种方式的闪存管理方法的实例在6,678,785号美国专利中讲授,在此引用作为参考,以达到仿佛本文进行了全面阐述的所有目的。根据US 6,678,785,写入算法被限制为在每个块内顺序地写入若干新页。因此,加电后就知道任何给定块中写入的最后页是该块中编号最高的写入页。
其他系统没有这样的捷径,可能使用强力方法识别可疑页。然而,知道了仅有最后写入页中的数据可能已经被损坏,而在所有其他页中存储的数据是可靠的,应对掉电后数据损坏问题就相对容易。
应当指出,以上讨论适用于作为独立实体的页的有效性。即使没有损坏的写入页该系统总体上是否有效则完全是另一个问题。这样的问题可能出现在例如若干文件系统中,其中用户级的操作包括几种页面级的操作。例如,创建新文件包含写入目录项、写入一个或多个扇区分配表,然后才写入实际的文件数据。如果电源故障时仅仅完成了这些写操作的某一些,而剩余的写入操作还刚开始,那么没有页被损坏,但是该文件系统总体上被损坏了。抵御这样问题的若干方法已公知(参见例如共同待批准的10/397,398号美国专利申请),但是它们超出了本发明的范围。
对于最近已经开始使用的NAND闪存介质12,关于掉电后数据损坏局限性的以上假定无效。这种NAND闪存介质12的实例包括东芝的多电平单元(MLC)NAND闪存器件(如TC58DVG04B1FT00)。在这样的器件中,每个单元都存储两位而不是一位。这种器件的内部排列使得物理页驻留在一组528×8=4224单元内。虽然在其他器件中这样一组单元存储528字节的一页,但是在东芝MLC NAND闪存器件中这样一组单元存储两个这样的数据页。存储两个或多个数据页的这种单元组本文称为“超页”。
图2是一片这种MLC NAND闪存器件的存储块30的示意性展示。存储块30在32个超页34中包括64个页32,各个逻辑地址为0到63。页32的逻辑地址显示在图2中存储块30左边的列上。
现在考虑以下事件序列:
1.双页超页34的一页32被成功写入,另一页未被写入。
2.对双页超页34的另一页32的写入被掉电中断。
因为这种超页34的两个页32共享同相同的物理单元,所以掉电可能使两个页32都损坏了。为了理解两个页32如何可能都损坏,有必要考虑在MLC闪存单元内是如何编码若干位的。在MLC闪存单元中编码若干位的一种方法由Harari在US 5,095,344和US 5,043,940中讲授。根据这种方法,通过将不同电荷量注入到闪存单元的浮动栅中,从而产生单元的阈值电压VT1的不同电平,对MLC闪存单元中若干位进行编码。以下表格显示了在单元中存储的两位的数值作为阈值电压的函数。
VT1 | 第一位的数值 | 第二位的数值 |
-3.0V | 1 | 1 |
-0.5V | 1 | 0 |
+2.0V | 0 | 1 |
+4.5V | 0 | 0 |
在实践中,两位闪存单元的四种可能位组合存储为四种不同的阈值电压范围。在以上实例中,阈值电压的范围是(0,0)从+3.25V到+5.75V、(0,1)从+0.75V到+3.25V、(1,0)从-1.75V到+0.75V以及(1,1)从-4.25V到-1.75V。由于改变两位中的任一位都涉及改变所述单元的同一物理属性(即阈值电压),很清楚改变一位的过程也使另一位从其先前稳定的状态改变。如果所述改变并未正确地完成,就有可能导致对任一位或两位数值都作出错误解释。
出现抵御这种问题的真正困难,是因为超页34的两个页32有可能在两个不同的、相离很远的时刻写入。可以想象,超页34的第一个页32在过去某个时刻写入,可能在许多年后被这个超页34的第二个页32的不完全写入所损坏。不仅如此,位于闪存管理系统顶部的大多数文件系统向若干文件分配页32时,既可以连续分配,也可以非连续分配,所以同一超页34的页32可能属于完全不相关的文件。在更新一个文件期间的掉电可能会损坏完全不相关的文件,可能不曾怀疑它将会有风险。显然,这些条件超过了现有技术闪存管理系统的应对能力。
美国专利号6,988,175在此引用作为参考,以达到仿佛本文进行了全面阐述的所有目的。它解决这种电源中断问题所采用的策略是将输入数据仅仅存储在其写入不将其他页中其他不相关的、先前写入的数据置于风险中的页中。US 6,988,175的方法基于定义页的“风险区”,其数据可能被中断的写入所损坏。当选择一页或多页写入新数据时,检查为该写入操作所选定页的风险区,以了解在这个/这些风险区中的任何其他页是否可能正存储着有效数据,也就是说,在这个/这些风险区中的任何其他页的状态是否为“已写入”。如果在这个/这些风险区中的任何其他页事实上可能正存储着有效数据,那么就不写入所选定的页。该闪存管理系统转而寻找不同的页进行写入操作。
在US 6,988,175中页的风险区定义为当写入该页时将其数据置于损坏风险的其他页的集合。例如在图2中,每个页32的风险区是这个页32的超页34的另一页32。如果为了写入而选择了一个或多个未写入页,只有在所选定页的任何风险区中都不存在已写入页时,才写入所选定的页。
如果要写入的数据跨越多于一页,那么目标页既可以顺序写入,也可以是随机的次序。“顺序”写入意味着仅仅以增加的逻辑地址次序写入存储块的若干页,如在US 6,678,785中。“随机”写入意味着可以以任何逻辑地址次序写入存储块的若干页。US 6,988,175和本发明的方法都对两种情况同等地适用。
尽管US 6,988,175的方法对电源中断引起的数据损坏问题提供了解决方案,但是它们有两个主要缺点。第一个缺点是为了避免写入先前已写入页的风险区内的页中,我们必须跳过这些页并留下它们不用。这就在闪存的物理地址空间内创建了若干“空穴”,由已写入页包围着不用页。例如在图2的情况下(并假定顺序写入),用户首先已经写入了第0页之后,要写入该块中的下一个数据被引导到页2中,留下第1页不用。因此第1页变成了第0页和第2页之间的“空穴”。将数据写入闪存期间产生的空穴浪费了有价值的空间,并且使闪存管理软件复杂,因为必须对读取时遭遇这些空穴有所准备,以避免将这些空穴解释为包含有效数据。
US 6,988,175方法的第二个缺点是应对其中风险区的排列不如图2那么对称的闪存器件时它们的效率相对不高。在图2中,第20页的风险区是第21页,而第21页的风险区是第20页。所以,我们可以将这些页视为它们似乎被分成了不相交的组,其中组的成员可以使彼此遭受风险,但是它们绝不使它们组外的页遭受风险。第20页和第21页构成了一个这样的组,并且情况确实是它们的哪一个都不使它们组外的任何其他页遭受风险。不过存在着不是这种情况的闪存器件——不存在停止“风险传播”的“边界”,如同图2中在第21页和第22页之间具有的边界。在这些器件中,每个页都至少使跟随它的页面临风险,而某些页甚至使具有更高地址的其他页面临风险。如果多电平单元闪存器件实施的技术减少或消除了其闪存单元阵列的相邻字线之间的干扰,这些技术影响页写入次序,就可能产生这样复杂的风险区结构。这些技术的实例由Chen等人在6,522,580号美国专利中公开,标题为“Operating Techniques For Reducing Effects Of CouplingBetween Storage Elements Of a Non-Volatile Memory Operated inMultiple Data States”,该专利在此引用作为参考,以达到仿佛本文进行了全面阐述的所有目的。对这些器件应用US 6,988,175的方法导致存储空间的利用效率非常低——无论块内的哪个页是我们写入操作的目标,我们都必须总是至少跳过一页并创建空穴(在块的恰好第一页开始写入时除外)。
因此需要并且非常有利的是具有改进的闪存管理系统,能够应对基于多电平单元的NAND闪存介质12的电源中断,它对种类广泛的闪存器件是高效的。
发明内容
根据本发明,我们不是避免使用先前写入页的风险区,而是使用所述风险区内的页,但是先备份面临风险的页,再使它们面临风险。
因此根据本发明,提供了一种方法,管理包括多个页的存储器,所述方法包括以下步骤:(a)识别每个页的相应风险区;(b)选择至少一个未写入页用于写入新数据;以及(c)对于其风险区包括至少一个已写入页的每个未写入页,将每个已写入页复制到日志。
不仅如此,根据本发明,提供了一种数据存储系统,包括:(a)数据存储介质,包括多个页;(b)日志;以及(c)控制器,通过以下步骤将新数据写入所述多个页:(i)识别所述多个页中每个页的相应风险区;(ii)选择所述多个页的至少一个未写入页用于写入新数据;以及(iii)对于其风险区包括所述多个页的至少一个已写入页的每个未写入页,将每个已写入页复制到日志。
不仅如此,根据本发明,提供了一种计算机可读存储介质,在所述计算机可读存储介质中具有嵌入的计算机可读代码,所述计算机可读代码用于向数据存储介质多页中的至少一页写入新数据,所述计算机可读代码包括:(a)识别每个页相应风险区的程序代码;(b)选择至少一个未写入页用于写入新数据的程序代码;以及(c)对于其风险区包括至少一个已写入页的每个未写入页,将每个已写入页复制到日志的程序代码。
根据本发明管理存储器的基本方法,识别了所述存储器每个页的相应风险区。当将新数据写入所述存储器时,为写入所述新数据而选择一个和多个未写入页。如果在所述选定页风险区中有已写入页,则复制到日志。然后将所述新数据写入所述选定页。
优选情况下,如果所述新数据跨越多于一页,向所述选定页写入所述新数据实质上同时实现。
优选情况下,所述复制所述风险区中所述已写入页与向所述选定页写入所述新数据实质上同时实现。
优选情况下,例如当包括所述存储器的系统加电时,检查所述存储器的所述已写入页中存储的数据,以判断这些数据是否被损坏。判定已被损坏的数据以所述日志中的对应数据进行替换。最优选情况下,使用检错码实现所述检查。
作为替代,只有在所述风险区中的全部已写入页已经被复制到所述日志之后,向所述选定页写入的所述新数据才被写入。当已写入页被复制到所述日志时,就设置了相应的旗标。当要写入其风险区包括该已写入页的所述选定页的所述新数据已经写入之后,清除所述旗标。之后,例如当对包括所述存储器的系统加电时,所设置旗标对应的已写入页中存储的数据以所述日志中的对应数据替换。
如果所述新数据跨越多于一页,所述选定的未写入页或者顺序写入,或者以随机次序写入。
优选情况下,使用不同的各自模式实现向所述选定的页写入所述新数据和向所述日志复制已写入页。最优选情况下,用于所述复制的模式对存储器每单元写入的位数少于用于所述写入的模式。例如,在以下讨论的本发明的一个实施例中,所述复制以单电平单元的模式完成,而所述写入以多电平单元的模式完成。
优选情况下,全部所述风险区包括相等数量的页,例如,每风险区一页。作为替代,至少两个所述风险区包括不同的页号。
本发明的基本数据存储系统包括具有多个页的数据存储介质、日志和控制器。为了将新数据写入所述多个页,所述控制器识别所述页的相应风险区,并且从所述页当中选择至少一个未写入页。如果在所述选定页风险区中有已写入页,则所述控制器将其复制到日志。
优选情况下,所述数据存储介质是非易失性存储器比如闪存。优选情况下,这样的闪存包括多个多电平单元。同样优选情况下,这样的闪存包括多个存储块,每个存储块都包括所述多个页的对应下属多个页。在本发明的替代优选实施例中,所述控制器将所述新数据或者仅仅顺序地写入每个存储块的若干页,或者以随机的次序写入。
优选情况下,所述日志是所述数据存储介质的一部分。
优选情况下,所述控制器向所述选定的未写入页写入所述新数据。更优选情况下,使用不同的各自写入模式实现所述复制和所述写入。最优选情况下,复制所述已写入页所用的写入模式对数据存储介质每单元写入的位数少于写入所述新数据所用的写入模式。
本发明的范围还包括计算机可读的存储介质,其中记录着计算机可读代码,用于根据本发明的基本方法向数据存储介质的若干页写入新数据。
附图说明
本文参考附图——仅仅举例而已——介绍了本发明,其中:
图1A和图1B是若干现有技术设备的高层次示意性框图,它们使用NAND闪存介质作为非易失性数据存储器;
图2是多电平单元闪存存储块的示范实施例的示意性展示;
图3是根据本发明向存储器写入新数据的流程图;
图4是根据本发明加电时恢复损坏数据的流程图;
图5A和图5B是根据本发明修改后,图1A和图1B的若干设备的高层次示意性框图。
具体实施方式
本发明是一种管理基于页的存储器的方法,以便防止中断的写入操作损坏先前已写入页中的数据。确切地说,本发明可以用于管理具有多电平单元的闪存。
参考附图和伴随的描述可以更好地理解根据本发明的存储器管理的原理和操作。
我们再次参考图2,不过在现在采用的实例中,定义风险区的规则与以前不同——存储块第N页的风险区由第N-1页和第N-2页组成(存储块的头两页除外——第1页的风险区是第0页,而第0页的风险区是空)。应当强调,不同页的风险区不必尺寸都相同,如以上实例中第1页之后若干页的情况。某些页可能具有两个页的风险区,而其他页可以具有三个页的风险区。某些页具有的风险区也可以朝两个方向——向后和向前,而不仅仅如以上实例中的向后。本发明的方法不限于以上实例,但是为了简单起见,以这种简单实例的语境给出以下讲解。
图3显示了根据本发明的方法如何处理写入命令。在步骤100中,收到了将数据写入存储器系统的写入命令,该数据可能占用单页,也可能占用多页。在步骤110中,定位该数据将要写入的物理位置。由闪存管理系统根据该系统的特定算法定位将要写入的物理页。不同的闪存管理系统,比如在US 6,678,785或US 5,937,425中公开的系统,使用不同的的方法将主机计算机的目标逻辑地址映射到物理地址中,但是本发明的方法对所有这样的映射方法都同等地适用。
为了简单起见,这里我们假定在步骤110中定位的若干物理页作为目标物理地址全部驻留在一个存储块之内。如果不是这种情况,相同的逻辑将分开地应用于同一存储块内包含的这些物理页的每个子组。
在步骤120,检查写入目标物理页是否使某些先前已写入页面临风险。做到这一点是通过发现哪些先前已写入页包含在至少一个目标页的风险区内。例如,假设已经写入了图2的第0页到第20页,第21页到第63页空闲可以使用。收到了写入5页的命令,并且第21页到第25页定位为要写入的目标物理页。查找面临风险的先前已写入页,我们发现:
a:第19页和第20页在第21页的风险区内;
b:第20页在第22页的风险区内;
c:第23页在其风险区内不包含已写入页;
d:第24页在其风险区内不包含已写入页;
e:第25页在其风险区内不包含已写入页。
结论是该写入操作使已写入的第19页和第20页面临风险,但是第0页到第18页都不面临风险。应当注意,本发明的方法不同于US6,988,175的方法,尽管双方都依赖于相同的风险区概念。在两种方法中都询问“这个目标页使先前已写入页包含在其风险区内吗?”。但是在US 6,988,175中,意图是“如果在目标页的风险区内存在已写入页,我们就跳过该目标页”,而在本发明中,意图是“如果在目标页的风险区内存在已写入页,我们就备份已写入页”。
如果对步骤120中问题的答案是没有使先前已写入的页面临风险(例如假若该存储块仍然完全未使用),我们直接地移向步骤140,在其中新数据被写入到目标物理页之中。不过,如果问题的答案是有已写入页面临风险,我们经由步骤130运行。在步骤130,面临风险的页(以上实例中第19页和第20页)被复制到备份日志中。只有在此时我们才到达步骤140并将新数据写入目标物理页中。
图4显示了备份日志如何用于恢复掉电导致的数据损坏。在步骤200存储器系统加电。在步骤210检查是否由于掉电而导致任何页损坏。典型情况下,做到这一点可以通过激活与每页数据相关联的检错码(EDC)。通过读取该页的内容并计算合成的校正子,可以发现所存储的数据是否有效。如果未发现损坏的页,系统继续步骤230中的正常操作。不过,如果发现至少一页被损坏,步骤220根据从备份日志恢复损坏的数据,该数据是在写入操作之前存入日志的,并且将这些数据写入到一个或多个未写入页中,如图3所示。
应当指出,这些方法保证恢复先前已写入页,而不是由最后的写入命令写入的页。在以上实例中,如果电源在写入第21页的中途出现故障,那么一旦图4的恢复过程完成,保证第19页和第20页有效而不损坏。但是第21页未备份,并且即使发现被损坏也无法恢复。不过,这正是我们想要实现的——保护先前存储在系统中的数据,而不是那些写入被意外中断的当前新数据。
以上方法的变型是使备份日志中的每页都与指示该页是否仍需要备份的旗标相关联。将某页写入图3的备份日志中时,我们将该旗标初始设置为“需要”。在完成写入操作后,被当前操作复制到备份日志中的所有页都被设置为“不需要”。如果电源故障出现在写入操作的中途,留在备份日志中的页带有“需要”旗标,而当该操作成功地完成时,留下的页带有“不需要”旗标。加电时,检查备份日志中最后若干页的旗标,如果发现至少一个页是“需要”,我们就知道已经发生了电源故障,并对包含所“标示”页的存储块执行恢复操作。所述方法的这种变更提供的数据损坏检测比依赖于EDC技术更可靠,因为在理论上不排除随机损坏的数据由EDC将不会正确识别出。
以现有技术中实施日志的任何公知方式都可以实施备份日志。一种实施方案是将备份页顺序地写入分配给日志的闪存区域,一旦到达了区域的终点便返回到区域的起点。对不再需要的存储块的垃圾收集内务操作也必须顾及。尽管电源中断不损坏备份日志,但是人们必须小心。这是由US 6,988,175的方法实现的,跳过日志中的某些物理页确保在任何时候都没有备份页面临风险。作为替代,写入该日志时使用了闪存介质的不同写入模式——因为没有风险区而无电源故障数据损坏的模式。一个实例是闪存系统使用的闪存器件提供了多电平单元(MLC)和单电平单元(SLC)两种模式。Chen在6,456,528号美国专利中公开了这样的器件,该专利在此引用作为参考,仿佛本文进行了全面阐述。尽管该系统中存储的常规数据使用“风险的”MLC模式写入以实现高存储密度,但是备份日志却使用不产生风险区的安全SLC模式写入。这样做的附加优点还有缩短在写入备份日志上所花费的辅助操作时间,因为SLC写入比MLC写入快得多。
应当指出,当该写入命令用于写入大量的页时以上方法非常高效。典型情况下,这样的情形时应当备份的先前已写入页的数量比写入页的数量少得多,因此命令中的页数越大,每写入页的相对辅助操作就越少。写入多页作为单一命令的结果在本文中视为“同时”写入这些页。
将本发明的方法与US 6,988,175进行比较,可以看出在本发明在使用的存储块内不留下未使用的间隙并从不跳过页的方面,本发明优于US 6,988,175。因而本发明在闪存空间利用效率方面比US 6,988,175好得多,并且也易于闪存管理系统的管理,不必应对使它们逻辑复杂的若干间隙。此外,本发明可以高效地适用于任何种类的风险区模式,而不像US 6,988,175在许多情况下效率相当低,包括以上呈现的实例。
图5A是本发明基于闪存的存储设备110的高层次示意性框图,如同图1A的现有技术设备10,由主机设备用于在一个或多个NAND闪存介质112中存储数据。在RAM 116和辅助非易失性存储器118的帮助下,基于微处理器的控制器114控制着设备110的操作。为了这个目的,闪存设备110与主机系统通过闪存设备110中的公共通信端口120通信。设备110的部件一起装在公共外壳115中。
像现有技术设备10一样,闪存设备110也使用辅助非易失性存储器118中存储的固件仿真块存储器设备。为了防止在电源故障情况下这些数据损坏,辅助非易失性存储器118中存储的固件还包括依照本发明的方法将面临损坏风险的数据往返复制于备份日志的代码。NAND闪存介质112被分区为用于常规数据存储的MLC部分106和用于备份日志的SLC部分108。本发明允许主机设备的软件应用程序(无论是文件管理应用程序还是任何其他的软件应用程序)以任何随机的次序向本发明的这种设备110自由地发送写入命令,并且允许该软件应用程序忽略在NAND闪存介质112的若干页之间的风险关系。当掉电中断了写入命令时,有可能损坏的页仅仅是由被中断的写入命令正在写入的页,在这种意义下,本发明的方法提供了对抗掉电的全面保护。所有的其他页保证保持有效。
图5B是个人计算机110′的高层次部分示意性框图,类似于图1B的现有技术个人计算机10′,其中NAND闪存介质112用于补充或取代长期非易失性存储数据的硬磁盘。控制器114现在表示个人计算机110′的中央处理单元。辅助存储器118现在表示个人计算机110′的全部其他非易失性存储器,包括其中存储着引导代码的BIOS和存储着个人计算机110′的操作系统包括闪存管理系统的硬磁盘(除非NAND闪存介质112取代了硬磁盘,在此情况下该操作系统存储在NAND闪存介质112中)。个人计算机110′的NAND闪存介质112、控制器114、RAM 116、辅助非易失性存储器118和其他组件(未显示)经由总线119彼此通信。
在辅助非易失性存储器118或NAND闪存介质112中存储的闪存管理软件,作为个人计算机110′的操作系统代码的一部分并由控制器114执行,包括用于实施本发明的闪存管理方法的代码,以预防在电源故障中断了对NAND闪存介质112的写入操作情况下,损坏在NAND闪存介质112的MLC部分106中先前存储的数据。确切地说,将面临损坏风险的数据复制往返于NAND闪存介质112的SLC部分108中的备份日志,并且从其复制出来,如以上介绍。
设备110和设备110′的辅助非易失性存储器118(以及在设备110′实施例中的设备110′的NAND闪存介质112,其中在NAND闪存介质112中存储着操作系统)是计算机可读存储介质的实例,其中记录的计算机可读代码用于实施本发明的方法。
尽管相对于有限数量的实施例已经介绍了本发明,但是应当承认,可以做出本发明的许多变更、修改以及其他应用。
Claims (28)
1.一种管理包括多个页的存储器的方法,所述方法包括以下步骤:
(a)识别每个页的相应风险区;
(b)选择至少一个未写入页用于写入新数据;以及
(c)对于其风险区包括至少一个已写入页的每个所述未写入页,
将每个所述已写入页都复制到日志。
2.根据权利要求1的方法,进一步包括以下步骤:
(d) 将所述新数据写入所述至少一个未写入页。
3.根据权利要求2的方法,其中,如果所述新数据跨越多于一页,所述写入实质上同时实现。
4.根据权利要求2的方法,其中,所述复制以及所述写入实质上同时实现。
5.根据权利要求2的方法,进一步包括以下步骤:
(e) 检查在至少一个已写入页中存储的数据是否被损坏;以及
(f) 如果所述数据被损坏,以所述日志中的对应数据替换所述数据。
6.根据权利要求5的方法,其中,使用检错码实现所述检查。
7.根据权利要求5的方法,其中,在包括所述存储器的系统加电时实现所述检查和所述替换。
8.根据权利要求2的方法,其中,只有在所述未写入页的所述风险区的每一个已写入页已经被复制到所述日志之后,向未写入页写入的所述新数据才被写入所述未写入页,所述方法进一步包括以下步骤:对于被复制到所述日志的每个已写入页:
(e)设置对应的旗标;以及
(f)在所述新数据已经被写入其风险区包括所述每个已写入页的每一个所述至少一个未写入页之后,清除所述对应的旗标,所述新数据将被写入其风险区包括所述每个已写入页的所述至少一个未写入页。
9.根据权利要求8的方法,进一步包括以下步骤:
(g)对已设置的每个所述旗标:以所述日志中的对应数据替换对应于所述每个旗标的所述已写入页中存储的数据。
10.根据权利要求9的方法,其中,当包括所述存储器的系统加电时实现所述替换。
11.根据权利要求2的方法,其中,如果所述新数据跨越多于一页,所述选择的未写入页被顺序地写入。
12.根据权利要求2的方法,其中,如果所述新数据跨越多于一页,所述选择的未写入页以随机的次序写入。
13.根据权利要求2的方法,其中,使用不同的各自写入模式实现所述复制和所述写入。
14.根据权利要求13的方法,其中,所述复制的所述写入模式写入所述存储器单元的位数少于所述写入的所述写入模式。
15.根据权利要求1的方法,其中,全部的所述风险区包括相等数量的页。
16.根据权利要求15的方法,其中,每个所述风险区都包括一页。
17.根据权利要求1的方法,其中,至少两个所述风险区包括不同数量的页。
18.一种数据存储系统,包括:
(a)含有多个页的数据存储介质;
(b)日志;以及
(c)通过以下步骤向所述多个页写入新数据的控制器:
(i)识别所述多个页的每页的相应风险区;
(ii)选择所述多个页的至少一个未写入页用于写入所述新数据;以及
(iii)对于其风险区包括所述多个页的至少一个已写入页的每个所述未写入页,将每个所述已写入页都复制到所述日志。
19.根据权利要求18的数据存储系统,其中,所述数据存储介质是非易失性的。
20.根据权利要求19的数据存储系统,其中,所述数据存储介质是闪存。
21.根据权利要求20的数据存储系统,其中,所述闪存包括多个多电平单元。
22.根据权利要求20的数据存储系统,其中,所述闪存包括多个存储块,使得所述多个存储块的每个存储块都包括所述多个页的对应下属多个页,并且所述控制器将所述新数据仅仅顺序地写入所述每个存储块的所述页。
23.根据权利要求20的数据存储系统,其中,所述闪存包括多个存储块,使得所述多个存储块的每个存储块都包括所述多个页的对应下属多个页,并且所述控制器将所述新数据以随机的次序写入所述每个存储块的所述页。
24.根据权利要求18的数据存储系统,其中,所述日志是所述数据存储介质的一部分。
25.根据权利要求18的数据存储系统,其中,所述控制器通过进一步包括的以下步骤向所述多个页写入所述新数据:
(iv)向所述多个页的所述至少一个未写入页写入所述新数据。
26.根据权利要求25的数据存储系统,其中,使用不同的各自写入模式实现向所述日志的所述复制和向所述至少一个未写入页的所述写入。
27.根据权利要求26的数据存储系统,其中,向所述日志的所述复制的所述写入模式写入所述数据存储介质单元的位数少于向所述至少一个未写入页的所述写入的所述写入模式。
28.一种计算机可读存储介质,在所述计算机可读存储介质中具有嵌入的计算机可读代码,所述计算机可读代码用于向数据存储介质多页中的至少一页写入新数据,所述计算机可读代码包括:
(a)用于识别每个页相应风险区的程序代码;
(b)用于选择至少一个用于写入新数据的未写入页的程序代码;以及
(c)对于其风险区包括至少一个已写入页的每个所述未写入页,用于将每个所述已写入页复制到日志的程序代码。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US67982505P | 2005-05-12 | 2005-05-12 | |
US60/679,825 | 2005-05-12 | ||
US11/370,942 US7275140B2 (en) | 2005-05-12 | 2006-03-09 | Flash memory management method that is resistant to data corruption by power loss |
US11/370,942 | 2006-03-09 | ||
PCT/IL2006/000558 WO2006120686A2 (en) | 2005-05-12 | 2006-05-11 | Flash memory management method that is resistant to data corruption by power loss |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101198939A true CN101198939A (zh) | 2008-06-11 |
CN101198939B CN101198939B (zh) | 2011-11-23 |
Family
ID=37396974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800211307A Active CN101198939B (zh) | 2005-05-12 | 2006-05-11 | 管理闪存中的存储器 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7275140B2 (zh) |
EP (1) | EP1883884B1 (zh) |
JP (1) | JP4966965B2 (zh) |
KR (1) | KR101215864B1 (zh) |
CN (1) | CN101198939B (zh) |
AT (1) | ATE537504T1 (zh) |
WO (1) | WO2006120686A2 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727397B (zh) * | 2008-10-20 | 2012-06-27 | 群联电子股份有限公司 | 区块管理与更换方法、闪存储存系统及其控制器 |
TWI394170B (zh) * | 2008-10-15 | 2013-04-21 | Silicon Motion Inc | 連結表的回復方法 |
CN101763894B (zh) * | 2008-12-22 | 2013-05-01 | 株式会社东芝 | 半导体存储装置和存储控制方法 |
CN109815160A (zh) * | 2017-11-21 | 2019-05-28 | 美光科技公司 | 最后写入页搜索 |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080071973A1 (en) * | 2000-01-06 | 2008-03-20 | Chow David Q | Electronic data flash card with various flash memory cells |
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 |
KR100771521B1 (ko) * | 2006-10-30 | 2007-10-30 | 삼성전자주식회사 | 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법 |
KR100791006B1 (ko) * | 2006-12-06 | 2008-01-03 | 삼성전자주식회사 | 싱글레벨 셀 및 멀티레벨 셀을 구비하는 반도체 메모리장치 및 그 구동방법 |
JP4563992B2 (ja) * | 2006-12-26 | 2010-10-20 | 株式会社京都ソフトウェアリサーチ | 多値フラッシュメモリおよび多値フラッシュメモリへのデータ書き込み方法 |
KR100877610B1 (ko) * | 2007-01-23 | 2009-01-09 | 삼성전자주식회사 | 페이지 데이터 저장 방법과 저장 장치 |
US20080189473A1 (en) * | 2007-02-07 | 2008-08-07 | Micron Technology, Inc | Mlc selected multi-program for system management |
KR100889781B1 (ko) | 2007-04-30 | 2009-03-20 | 삼성전자주식회사 | 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템 |
KR100873825B1 (ko) * | 2007-05-02 | 2008-12-15 | 삼성전자주식회사 | 비휘발성 메모리의 멀티 비트 프로그래밍 장치 및 방법 |
KR101300821B1 (ko) * | 2007-07-04 | 2013-08-26 | 삼성전자주식회사 | 비휘발성 메모리의 데이터 손실을 방지하기 위한 장치 및방법 |
US8151034B2 (en) * | 2007-09-12 | 2012-04-03 | Sandisk Technologies Inc. | Write abort and erase abort handling |
US8307180B2 (en) | 2008-02-28 | 2012-11-06 | Nokia Corporation | Extended utilization area for a memory device |
JP2009211215A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
US8276043B2 (en) | 2008-03-01 | 2012-09-25 | Kabushiki Kaisha Toshiba | Memory system |
JP4703673B2 (ja) * | 2008-03-12 | 2011-06-15 | 株式会社東芝 | メモリシステム |
US20090287893A1 (en) * | 2008-05-16 | 2009-11-19 | Skymedi Corporation | Method for managing memory |
US20120311243A1 (en) * | 2008-05-30 | 2012-12-06 | Ite Tech. Inc. | Method for increasing reliability of data accessing for a multi-level cell type non-volatile memory |
TW200949840A (en) * | 2008-05-30 | 2009-12-01 | Ite Tech Inc | Method for increasing reliability of data accessing for a multi-level cell type non-volatile memory |
US20090319721A1 (en) * | 2008-06-19 | 2009-12-24 | Silicon Motion, Inc. | Flash memory apparatus and method for operating the same |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US8074012B2 (en) * | 2008-07-02 | 2011-12-06 | Silicon Motion, Inc. | Flash memory apparatus and method for securing a flash memory from data damage |
TWI386803B (zh) * | 2008-07-02 | 2013-02-21 | Silicon Motion Inc | 快閃記憶卡及快閃記憶體預防資料毀損的方法 |
US8762661B2 (en) * | 2008-09-18 | 2014-06-24 | Seagate Technology Llc | System and method of managing metadata |
US8103631B2 (en) * | 2008-11-19 | 2012-01-24 | Sandisk Il Ltd | Merging files on storage and retrieve |
US9098396B2 (en) * | 2009-02-13 | 2015-08-04 | Sandisk Il Ltd. | Enhancement of efficiency in power failure handling in flash memory |
US20100235605A1 (en) * | 2009-02-13 | 2010-09-16 | Nir Perry | Enhancement of storage life expectancy by bad block management |
US8874824B2 (en) | 2009-06-04 | 2014-10-28 | Memory Technologies, LLC | Apparatus and method to share host system RAM with mass storage memory RAM |
JP2011048725A (ja) * | 2009-08-28 | 2011-03-10 | Panasonic Corp | 不揮発性記憶装置および不揮発性メモリコントローラ |
US8966176B2 (en) | 2010-05-27 | 2015-02-24 | Sandisk Il Ltd. | Memory management storage to a host device |
US8738844B2 (en) * | 2011-04-14 | 2014-05-27 | Macronix International Co., Ltd. | Program method, data recovery method, and flash memory using the same |
US20120297248A1 (en) * | 2011-05-17 | 2012-11-22 | Alan David Bennett | Block write handling after corruption |
KR101856506B1 (ko) * | 2011-09-22 | 2018-05-11 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 쓰기 방법 |
US9417998B2 (en) | 2012-01-26 | 2016-08-16 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
US20130205066A1 (en) * | 2012-02-03 | 2013-08-08 | Sandisk Technologies Inc. | Enhanced write abort management in flash memory |
US9311226B2 (en) | 2012-04-20 | 2016-04-12 | Memory Technologies Llc | Managing operational state data of a memory module using host memory in association with state change |
US8923045B2 (en) | 2012-05-31 | 2014-12-30 | Seagate Technology Llc | Multi-level cell (MLC) update with protected mode capability |
US20140013031A1 (en) * | 2012-07-09 | 2014-01-09 | Yoko Masuo | Data storage apparatus, memory control method, and electronic apparatus having a data storage apparatus |
US9053011B2 (en) | 2012-09-28 | 2015-06-09 | Sandisk Technologies Inc. | Selective protection of lower page data during upper page write |
US9478271B2 (en) * | 2013-03-14 | 2016-10-25 | Seagate Technology Llc | Nonvolatile memory data recovery after power failure |
JP5695112B2 (ja) * | 2013-03-18 | 2015-04-01 | 富士通テン株式会社 | データ記憶装置、データの記憶方法および車載用制御装置 |
US9305655B2 (en) | 2013-09-27 | 2016-04-05 | Virtium Technology, Inc. | Solving MLC NAND paired page program using reduced spatial redundancy |
US8819337B1 (en) * | 2014-04-16 | 2014-08-26 | Sandisk Technologies Inc. | Storage module and method for determining whether to back-up a previously-written lower page of data before writing an upper page of data |
US9715345B2 (en) | 2014-04-25 | 2017-07-25 | Micron Technology, Inc. | Apparatuses and methods for memory management |
CN104503707B (zh) * | 2014-12-24 | 2018-03-06 | 华为技术有限公司 | 读取数据的方法以及装置 |
KR102222444B1 (ko) | 2015-03-05 | 2021-03-04 | 삼성전자주식회사 | 전력 상태 정보를 사용하는 저장 장치 및 그것의 동작 방법 |
US9558839B2 (en) * | 2015-03-09 | 2017-01-31 | Toshiba Corporation | Power fail saving modes in solid state drive with MLC memory |
KR20160133283A (ko) * | 2015-05-12 | 2016-11-22 | 삼성전자주식회사 | 비휘발성 메모리 저장장치를 운영하는 방법 및 이를 구현한 전자장치 |
US10055236B2 (en) | 2015-07-02 | 2018-08-21 | Sandisk Technologies Llc | Runtime data storage and/or retrieval |
US10303571B2 (en) | 2015-11-04 | 2019-05-28 | Intel Corporation | Data recovery in memory devices |
CN106776362B (zh) * | 2015-11-24 | 2019-12-03 | 中芯国际集成电路制造(上海)有限公司 | 存储器的控制方法及装置 |
KR102641107B1 (ko) | 2016-07-29 | 2024-02-27 | 삼성전자주식회사 | 스토리지 장치, 이를 포함하는 시스템 및 그 동작 방법 |
CN106227623B (zh) * | 2016-08-03 | 2019-03-26 | 深圳市智行畅联科技有限公司 | 一种基于智能终端的文件格式及数据掉电修复方法及系统 |
US10048887B2 (en) * | 2016-10-27 | 2018-08-14 | Micron Technology, Inc. | Apparatuses and methods for single level cell caching |
US11249845B2 (en) | 2017-12-06 | 2022-02-15 | Rambus Inc. | Error-correction-detection coding for hybrid memory module |
US11163679B2 (en) * | 2018-04-04 | 2021-11-02 | SK Hynix Inc. | Garbage collection strategy for memory system and method of executing such garbage collection |
TWI669610B (zh) | 2018-06-13 | 2019-08-21 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11106372B2 (en) * | 2019-12-27 | 2021-08-31 | Micron Technology, Inc. | Asynchronous power loss handling approach for a memory sub-system |
KR20220153863A (ko) | 2021-05-12 | 2022-11-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US11960757B2 (en) | 2021-10-04 | 2024-04-16 | Samsung Electronics Co., Ltd. | Flash translation layer with rewind |
US11893243B2 (en) * | 2021-10-06 | 2024-02-06 | Western Digital Technologies, Inc. | Storage system and method for program reordering to mitigate program disturbs |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5095344A (en) * | 1988-06-08 | 1992-03-10 | Eliyahou Harari | Highly compact eprom and flash eeprom devices |
US5043940A (en) * | 1988-06-08 | 1991-08-27 | Eliyahou Harari | Flash EEPROM memory systems having multistate storage cells |
US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
EP0913834A1 (en) * | 1996-07-10 | 1999-05-06 | Hitachi, Ltd. | Nonvolatile semiconductor storage device |
US5937425A (en) * | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
KR100389867B1 (ko) * | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
US6522580B2 (en) * | 2001-06-27 | 2003-02-18 | Sandisk Corporation | Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states |
CN1255733C (zh) * | 2001-07-25 | 2006-05-10 | 索尼株式会社 | 非易失性存储器和非易失性存储器的数据改写方法 |
US6773083B2 (en) * | 2001-08-29 | 2004-08-10 | Lexmark International, Inc. | Method and apparatus for non-volatile memory usage in an ink jet printer |
US6456528B1 (en) * | 2001-09-17 | 2002-09-24 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
US6678785B2 (en) * | 2001-09-28 | 2004-01-13 | M-Systems Flash Disk Pioneers Ltd. | Flash management system using only sequential write |
US6977847B2 (en) * | 2001-11-23 | 2005-12-20 | M-Systems Flash Disk Pioneers Ltd. | Detecting partially erased units in flash devices |
US6542407B1 (en) * | 2002-01-18 | 2003-04-01 | Sandisk Corporation | Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells |
US7702659B2 (en) * | 2003-03-27 | 2010-04-20 | Sandisk Il Ltd. | Robust, self-maintaining file system |
US6988175B2 (en) * | 2003-06-30 | 2006-01-17 | M-Systems Flash Disk Pioneers Ltd. | Flash memory management method that is resistant to data corruption by power loss |
JP4874566B2 (ja) * | 2005-04-11 | 2012-02-15 | 株式会社東芝 | 半導体記憶装置 |
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 |
JP2007094921A (ja) * | 2005-09-30 | 2007-04-12 | Toshiba Corp | メモリカードとその制御方法 |
JP2007109352A (ja) * | 2005-10-17 | 2007-04-26 | Matsushita Electric Ind Co Ltd | 不揮発性半導体記憶装置およびその駆動方法。 |
-
2006
- 2006-03-09 US US11/370,942 patent/US7275140B2/en active Active
- 2006-05-11 AT AT06745093T patent/ATE537504T1/de active
- 2006-05-11 EP EP06745093A patent/EP1883884B1/en not_active Not-in-force
- 2006-05-11 KR KR1020077028919A patent/KR101215864B1/ko not_active IP Right Cessation
- 2006-05-11 CN CN2006800211307A patent/CN101198939B/zh active Active
- 2006-05-11 JP JP2008510725A patent/JP4966965B2/ja not_active Expired - Fee Related
- 2006-05-11 WO PCT/IL2006/000558 patent/WO2006120686A2/en active Application Filing
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI394170B (zh) * | 2008-10-15 | 2013-04-21 | Silicon Motion Inc | 連結表的回復方法 |
CN101727397B (zh) * | 2008-10-20 | 2012-06-27 | 群联电子股份有限公司 | 区块管理与更换方法、闪存储存系统及其控制器 |
CN101763894B (zh) * | 2008-12-22 | 2013-05-01 | 株式会社东芝 | 半导体存储装置和存储控制方法 |
CN109815160A (zh) * | 2017-11-21 | 2019-05-28 | 美光科技公司 | 最后写入页搜索 |
CN109815160B (zh) * | 2017-11-21 | 2024-02-23 | 美光科技公司 | 最后写入页搜索 |
Also Published As
Publication number | Publication date |
---|---|
EP1883884A4 (en) | 2010-10-27 |
EP1883884B1 (en) | 2011-12-14 |
US7275140B2 (en) | 2007-09-25 |
EP1883884A2 (en) | 2008-02-06 |
US20060259718A1 (en) | 2006-11-16 |
KR20080008419A (ko) | 2008-01-23 |
KR101215864B1 (ko) | 2013-01-02 |
CN101198939B (zh) | 2011-11-23 |
JP2008544345A (ja) | 2008-12-04 |
JP4966965B2 (ja) | 2012-07-04 |
WO2006120686A3 (en) | 2007-11-01 |
WO2006120686A2 (en) | 2006-11-16 |
ATE537504T1 (de) | 2011-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101198939B (zh) | 管理闪存中的存储器 | |
US7603525B2 (en) | Flash memory management method that is resistant to data corruption by power loss | |
CN100435115C (zh) | 具有非循序更新区块管理的非易失性存储器及方法 | |
CN1331063C (zh) | 基于数据卷快照的在线数据备份方法 | |
CN101425041B (zh) | 在nand flash存储器上建立fat文件系统的优化方法 | |
TWI419159B (zh) | 記憶體系統 | |
CN101405701B (zh) | 用于拷贝数据的计算机实现的方法及装置 | |
US20100169597A1 (en) | Memory system | |
US8108594B2 (en) | Memory system | |
CN101681313A (zh) | 存储器系统 | |
DE102017114078A1 (de) | Fehlerabschwächung für 3d-nand-flash-speicher | |
KR20060090088A (ko) | 메타 데이터가 저장되는 에프램을 포함하는 메모리 장치 | |
CN102737715A (zh) | 用于nor闪存的数据掉电保护方法 | |
CN104516959A (zh) | 一种管理数据库日志的方法及装置 | |
CN103092765B (zh) | 固态存储系统、装置及数据写入方法 | |
CN104375784A (zh) | 一种降低虚拟磁盘管理复杂度的方法和装置 | |
CN103678025A (zh) | 一种磁盘阵列中的磁盘故障处理方法 | |
US6643731B2 (en) | Low cost memory management that resists power interruption | |
CN102789813B (zh) | 一种控制存储设备内非最低有效位页使用的方法及装置 | |
CN110658981B (zh) | 一种提高Flash使用寿命的方法 | |
CN109918228A (zh) | 一种数据掉电保持方法及系统 | |
CN102129409A (zh) | 存储装置和数据写入方法 | |
CN101408854A (zh) | 逻辑卷管理器的数据备份系统及其方法 | |
CN118069409A (zh) | 操作方法、存储器控制器、系统及电子设备 | |
Ho et al. | AN EFFICIENT RECOVERY SCHEME FOR BUFFER-BASED BTree INDEXES ON FLASH MEMORY |
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 | ||
CP03 | Change of name, title or address |
Address after: Israel Kfar Saba Patentee after: Western data Israel Limited Address before: Israel saaba Patentee before: SanDisk IL Ltd. |
|
CP03 | Change of name, title or address |