CN101770809A - 非易失性存储器掉电后的恢复 - Google Patents
非易失性存储器掉电后的恢复 Download PDFInfo
- Publication number
- CN101770809A CN101770809A CN200910222338A CN200910222338A CN101770809A CN 101770809 A CN101770809 A CN 101770809A CN 200910222338 A CN200910222338 A CN 200910222338A CN 200910222338 A CN200910222338 A CN 200910222338A CN 101770809 A CN101770809 A CN 101770809A
- Authority
- CN
- China
- Prior art keywords
- page
- leaf
- free
- piece
- memory
- 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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
非易失性存储器阵列能够在掉电之后被恢复。在一种实施例中,在掉电后,对存储器阵列中的页进行扫描,以寻找第一空闲页。该第一空闲页被标记为可用,被标记为可用的页在下一个写周期被写入。
Description
技术领域
本发明涉及非易失性存储器掉电后的恢复。
背景技术
非易失性存储器设备提供了一种存储数据的有益之处在于,无需任何电源来安全保持所存储的数据。然而,读取所存储的数据以及初始写入数据还是需要电源的。在许多类型的非易失性存储器中,不管在读取操作中是否出现电源故障,数据一般都是安全的。然而,如果在写入过程中电源被中断或出现故障,则不仅写入停止,还会导致在一些单元中写入不稳定的值。在电源恢复之后,将很难确定在何处再次开始写入。
而且,检查已存储在存储器中的值并不能可靠地指示应该从何处再次开始写入。例如,在闪存中是通过设置一个电荷来对一个存储单元中的数据进行存储的。将电荷元素的电压与一个阈值相比较来决定存储的值是0还是1。如果因为在预定电荷被设置之前停电而使所存储的值接近阈值,则所存储的值有时会被读取为0,有时会被读取为1。类似地,在相变存储单元中,是通过设置相变材料的阻值来对值进行存储的。将该阻值与阈值进行比较,如果该阻值接近阈值,则可能所述单元有时可能会被读取为0,有时被读取为1。这种不稳定或易变的存储值会出现在存储单元可取一系列值的任何类型的非易失性存储器中。
有一些方法可以保护***不因为闪存掉电后留存的不稳定数据而崩溃。这些保护方法一般包括扫描整个存储设备或从起点再次写入整个文件。然而,对于不稳定的存储值,扫描存储器并不能提供正确的答案。在另一方面,重新写入数据会耗费时间。
发明内容
本发明提供一种方法,该方法包括:对存储器阵列中的页进行扫描,以寻找第一空闲页;将该第一空闲页标记为可用;以及在下一个写周期对被标记为可用的页进行写入。
本发明还提供一种用于存储器阵列的掉电恢复***,该***包括:页扫描器,用于对存储器阵列中的页进行扫描,以寻找第一空闲页;页标记器,用于将所述第一空闲页标记为可用;以及编程电路,用于在下一个写周期对被标记为可用的页进行写入。
本发明另提供一种存储设备,该设备包括:存储单元阵列,包括多个存储单元,该多个存储单元被分组为多个块;以及存储器控制器,耦合到所述存储单元阵列,用于对存储器阵列中的页进行扫描以寻找第一空闲页,将该第一空闲页之前的页标记为无效,将该第一空闲页标记为可用,擦除被标记为无效的页,并对被标记为可用的页进行写入。
附图说明
在说明书的结尾部分特别指出且清楚要求了本发明的主题。然而,通过结合附图并参考以下详细描述,可更好地理解本发明的组织结构和操作方法及其目标、特征和有益效果。
图1给出了依照一种实施方式的存储单元被组织成页和块的闪存阵列的框图;
图2是依照一种实施方式的对存储器阵列中的页进行扫描以寻找第一空闲页的流程图;
图3是依照另一种实施方式的对存储器阵列中的页进行扫描以寻找第一空闲页的流程图;
图4是依照一种实施方式的在存储器阵列的块中对页进行扫描以寻找第一空闲页的流程图;
图5是依照另一种实施方式的在存储器阵列的块中对页进行扫描以寻找第一空闲页的流程图;
图6是依照一种实施方式的能够实施图2到图5所示的流程的移动设备的框图;以及
图7是依照一种实施方式的掉电恢复***的框图。
可以理解地是,出于表述简明和清楚的目的,附图中显示的部件无需按照比例画出。例如,为了清楚起见,某些部件的大小相对于其它部件来说夸大了尺寸。进一步地,在图中适当的地方加入了重复的参考数字,用于指示相应的或类似的部件。
具体实施方式
在闪存或其它任何非易失性存储器的硬件编程操作中发生断电事件时,本发明的实施方式能够保持数据的完整性。相应地,不稳定的、被破坏的或被不完整编程的数据片断能够和好的数据片断安全地区分开。这让掉电恢复可以以一种优化的方式被执行。也使对存储器的部分写入可以定位到存储设备的特定区域上,从而能以更少的写入周期来获取完全的掉电恢复。这通过减少写入次数提供了更好的存储生命周期,也帮助避免了硬件错误,尤其是对于NAND类型的闪存设备。本发明的实施方式可应用到一系列不同的非易失性存储器,包括NOR(异或)闪存、NAND(与非)闪存和PCM。本发明的实施方式还可以应用到一系列不同的存储文件***和存储扇区管理***。
根据本发明的一种实施方式,序列式模型被用于按块将数据写入存储设备。在该模型中,通常在写入新数据时使用第一个可用空间或第一个空闲空间。在***初始化过程中,***意外关闭,可假定存储器未被写入的区域出现了最严重的损坏。例如,在闪存中,由于每个块中的页是按顺序写入的,所以在发生掉电或电源中断的情况下不必使整个存储块或整个存储器阵列无效。相反,可通过智能确定出可能出现损坏的页来集中修复这些特定的页。
在将数据片断写入正在使用的存储设备时,如果发生掉电,则会出现数据损坏。这种损坏导致设备中的比特位处于未知状态。这种未知状态可能是正确的值、不正确的值或无效的值,该无效的值是不稳定的或不可靠的。
为了从掉电中完全恢复,必须重写整个存储器,或者必须通过某些途径确定阵列中的每个存储单元的状态。在许多类型的非易失性存储***中,包括如上所述的闪存和PCM,***电源在编程或擦除操作中中断可能会导致一些存储单元处于未知状态。这些状态可能是0或1或两者之间的某个值。
一种恢复方法是简单地读取闪存,并假定如果读取返回的值为已被擦除的值,那么它处于已被擦除状态。然而,因为闪存中每个单元的值均处于一个相似的状态,只有在成功地编程或擦除之后,该值才能被认为代表一个二进制值。
另一种方法是在将值写入存储器中的区域之前,首先将该区域标记为无效(或脏)。然而,因为一些闪存设备对页只允许有限次数的编程操作,然后就必须进行擦除,所以写入一个“脏”标记增加了对每一片写入数据所进行的写入次数。这会降低写入软件的写入速度,因为增加了页必须被擦除且之后重新写入相同值的频率。
另一种方法试图全程安全地跟踪存储器阵列中正在使用的区域。该方法降低了运行时写入速度。在另一种方法中,使用特定的写入顺序来使错误发生的可能性最小化。
在另一种方法中,每一页都被读取以确认其有效性。这不仅费时,而且还不完全安全,因为不稳定的单元可能这次读取正确,下一次又不正确。
相比之下,在本发明的实施方式中,通过假设最坏的情况,消除了必须读取每一个数据位造成的开销,从而能够确保只使用稳定的存储单元。换句话说,除非具有指示,否则本发明的实施方式假设每个数据区域都不能安全使用。就如下面的解释,在编程或擦除操作过程中出现掉电事件时,***可被安全维护和恢复。同时,***性能也不会受到损害。
图1示出了一个闪存***的例子。该***具有控制器111和阵列113。控制器与输入/输出总线115相耦合,以接收要存入阵列的数据和发送从阵列中读取的数据。控制器还耦合至存储器总线,以通过该存储器总线来控制和维护阵列。所述控制器还通过存储器总线来将数据写入阵列和从阵列中读取数据。
阵列113被划分为一个或多个块119,每一个块包括一个或多个页121。这些页包括使用电荷来存储数据的独立存储单元123。块还包括用于对存储单元进行读取、写入和放电(flash)的必要电路。这些在图1中显示为行控制器125和列控制器127。在特定***中,组件的数目取决于***的配置和将要进行的应用。页可具有存储512到2K个8比特字节数据的单元。然而,也可选择使用16、32和64比特字节,而且页的尺寸还可以更大或更小。每一块可具有16、32、64或128个页,也可具有更多或更少的页。每一个阵列可根据其应用具有8个或16个块。为了简化结构,一些阵列只有一个块。更大的阵列可以具有更多块。这里提供的数据只是作为举例,本发明并不限于任何特定的块大小。
在一般的放电操作中,一次对一个完整的块进行放电。这擦除了存储在块上的任何值,并将所有比特设置为相同的值,一般为0。然而,相反地,被放电的单元也可解释为具有值1。每个单元可以根据需要被编程为1或保持为0状态。写入过程包括对被放电的单元进行编程。当每一单元都被编程后,只有被再次放电后才能再次写入。由于擦除了整个块,所以对于所存储的数据经常发生很小改变的存储器来说,更倾向于使用较小的块。较大的块对于不经常发生改变的存储器或更重视成本的存储器来说更有效率。
一般而言,数据一次写入一页。在一个一般的实施例中,数据在单个写周期内全部写入同一页。当写周期结束时,对该页放置一个提交标记,这样该页就不能被再次写入数据了。如果在写周期中电源中断,则存储器中的值会不稳定。在另一种存储器配置中,单个页在被写上提交标记前具有两个或多个写周期。
对于图1所示的闪存的实施例,一页被看作是能够被写入设备的数据元素的最小单位大小。类似地,该块的剩余部分可看作最大的数据片断尺寸。在本实施例中,数据片断不会超过一个块的范围。其它类型的存储器能够被组织成页和块,换句话说,这里所描述的方法能够适用于其它类型的存储器结构。
如果一个设备在电源中断的时候正在进行操作,也许是正在写入闪存单元阵列的某一页。在电源中断后,循环访问设备中的每一个有效的块,扫描每一页的每个页头以寻找空的页头。这一页可被看作第一个未被写入或已被放电但未被编程的页。
在一些闪存阵列中,每一页都具有被称作空闲空间或备用区域或空间的额外单元。这些单元被建成阵列,以便于在页中的其它单元出现故障的情况下使用,或为内部服务或管理的目的而使用。页头可以存储在空闲空间中。
在一种实施例中,每一页具有纠错编码(ECC)和页头。页头被用于在该页被成功地完全编程或写入时写上一个提交标记。该提交标记用于指示是否成功完成了编程操作。该标记在编程操作成功完成后写上。对于闪存来说,在单元被放电或擦除后,对该单元进行写入的过程可称作编程。
在一种实施例中,每一页都有页头,该页头在该页被放电时以及该页被编程时被写入。之后,页头会跟踪有效编程寄存器的数目。如果页头读满了,则该页具有被编程的寄存器,该页是非空闲的。由于这是第一个块,处理会转到第一个未被写入的页。可选择地,页头可以只用于一个完整的块,也可以用于阵列中的一些其它子集。页头可以位于空闲空间中、独立的表中、或者页或块中一个特别分配的部分中。
电源掉电后,对存储器进行扫描,以确定哪些页是有效的,哪些不是。最安全的方法是在重启或安装存储管理器(例如,存储管理软件)时,假设任一块都可能包含掉电数据。当对块进行扫描时,会发现该块处于四种可能的掉电状态:
1.)所寻找到的最后一个数据片断包含提交标记。
2.)所寻找到的最后一个数据片断是空片断。
3.)寻找到不完整的数据片断。这可通过无效页头或没有提交标记的有效页头来指示。
4.)在块上曾进行过纠正或放电擦除,且没有数据和页头。
在第1种和第2种情况下,假设掉电意味着对块(经历掉电的那一块)的最后一次写入是对在扫描该块时所寻找到的第一个空闲页的写入。在一种实施例中,所采取的行动是将这一页(第一空闲页)用物理的方法标记为脏,并且将后续页作为该块中第一可用空闲页来使用。脏标记是一种方法,用来指示这一页是无效的,并且需要根据存储器阵列的类型来进行放电、清除、纠正或重新写入新数据。类似地,如果所寻找到的第一空闲页是块中的第一页,那么将该第一空闲页标记为脏。然而,在这种情况下,没有在先的有效数据片断。下一页会成为第一空闲页,也就是作为新写入的地方。
能够以多种不同的方法来写入脏标记。在一种实施例中,页头标识符或者页头中不同字段的组合都被编程为0。然而,可以用其它标记来替代。随后的块加载会将具有无效数据头字段的数据片断看作脏空间。
脏标记存在一种明显的益处。在存储器控制器开始写入新数据时,该存储器控制器会寻找下一个位置。该位置为按顺序写入的最后一个位置之后的位置。该位置将位于第一空闲页。如果不将页标记为脏,则随后的加载会将跳过的页作为第一空闲页。通过将页标记为脏,跳过该页,使用下一页。这使该页在被重新使用之前被清空。
在第3种情况下,页头是无效的,或者数据片断没有提交标记。这样的页或块在掉电发生时正处于写入过程。因此,所有受影响的数据都是不可靠的,包括写入页头的任何信息,例如有效或无效片断的大小。在一种实施例中,假设在向任一页写入数据片断的时发生了掉电,且不能安全确定是哪一页。因此假定数据片断具有最大尺寸,即为该块中的剩余部分。因此,该块中的剩余部分被看作脏,且被标记为脏。如果没有打算将额外的数据片断写入受影响的页的话,无需将这些页真正地标记为脏。后续的加载如果发现无效页头或没有提交标记时,每次都会以同样的方式来对该块进行处理。
另一方面,如果页头是不稳定的,那么将来的加载会将该片断中的第一页作为空闲空间来读取。这相当于掉电的第1种情况。这种不可靠的页头会被标记为脏,而且不被信任。在任一种情况下,标记为脏的空间会在对块进行纠正时被恢复。从这些实施例中可以看出,在加载期间处理所有的掉电情况能够在***开始运转后防止对写入性能带来影响。
在第4种情况下,如果块在掉电时正处于纠正过程,那么只需简单地重新启动该纠正过程。无需其它解决方案。可使用其它的方法来更为针对地解决这种情况。
上面所描述的想法能够通过流程图进行显示。图2是一类基础页扫描的实施例。为了寻找下一个空闲页,图2的流程会扫描块中的每一页。空闲页就是用来编程的下一页。换句话说,空闲页就是块中下一个用来写入数据的页。
在框211中,开始页扫描流程。这可能发生在任何时间,然而,在上述实施例中,扫描发生在写入存储器期间发生掉电之后。扫描还可能发生在每次启动时或每次掉电事件之后启动时。初始化过程选择从哪一块开始。一般而言,如果所存在的块的数量超过了一,那么将利用数字指示符,例如0到4,来对这些块进行排序。这种排序对应于对他们进行填充的顺序。被标记0的块通常是阵列中的唯一块或第一块。然而,流程可以从任何块开始。
在框213中,选中顺序中的第一页。如上面提到的,存储器控制器通常具有一顺序,该存储器控制器通过使用该顺序来对阵列中的页进行写入。特定的顺序依赖于特定的存储器阵列设计。数字0相当于逻辑排序,而不是物理排序或位置排序。在框215开始一页一页地扫描。
如果页中不包括任何数据,则在框217中,将页标记为脏。需要注意的是,在图2描述的方法中,只有在被管理的设备中所寻找到的第一空白页被标记为脏,接下来的一页才能成为第一空闲页。在框219中,确定该页是否是最后一页。如果不是,则在框221中,下一页被标记为空闲页,并且在框223中,流程结束。在另一方面,如果没有数据的这一页是最后一页,则在框225中,确定没有空闲页,流程在框223结束。
如果被扫描的页包含有数据,则流程接下来在框227检查页头以寻找提交标记。在本实施例中,在成功且完整地写完一页后,提交标记方被写入页头。作为可选地,整个块可仅具有一个提交标记。这节省了写入每一页的时间,而且由于掉电事件是很少发生的,所以在掉电发生时只会对***恢复造成很少的影响。
如果页中没有提交标记,则该页在框217中被再次标记为脏。如同之前对脏页所进行的处理那样,如果在框219中确定存在下一页,那么在框221中将其标记为空闲。
如果具有数据的页存在提交标记,那么就可认为这是一个好的数据页并且继续扫描下一页。在图2,框229中,如果当前页不是最后一页,那么在框231中,继续扫描下一页。如果这是第一个循环,那么当前页则是第一块(第0块)中的第一页(第0页)。如同块那样,这些页通常会被排序,并且所有的写入都是针对一页,直至该页被写满。接着,该写入按顺序转到下一页(第0块第1页)。相应地,在该掉电恢复处理期间,按照相同的顺序分析这些页。
在框229中,如果当前页是最后一页,则在框225中,确定没有空闲页,流程在框223结束。
如图2中的回路所示,图2中的流程可以每次一页的方式循环访问存储器阵列中的每一个有效块。流程会扫描每一页直到找到第一个未被写入的页。在一种实施方式中,这可通过空白页头来表示。
图3显示了上述操作的一种变形。除了在提交标记确定框327处的连接有变化之外,图3和图2是相同的。在此,当在框315中确认某页包含数据,但是在框327中确认该页不包含提交标记时,流程将块标记为没有空闲页,而不是在框317中将该页标记为脏。因此,流程会循环地通过框315、327、329和331来扫描块中的每一页。当寻找到下一个空闲页时,该空闲页就是下一个用来编程的页,流程会转而将前面的页标记为脏,并指示该空闲页。
图3中,在流程和写入提交标记的文件***中作了一些变化。在该实施例中,提交标记并不是按页保存,而是按更大的对应多页的片断来进行保存。这些片断可以是块,或可使用其他页组合。在图2的实施方式中,在框215中分析一组提交标记。然而,在图3中,流程被进一步完善,以使得如果数据片断已开始被编程但没有找到提交标记,则整个范围内的页都是无效的。该算法仍然遵循一个规则,即假定页处于受到损坏的最差情况。但是现在,程序区的最小单位大小从1页增长到一个块的剩余部分或其它页组。
可选择地,流程可试图找到两个不包含数据的连续页,然后使第一页无效。这种变化仍会查找到已被写入的最后一页,然后使其无效。在所有这些变形中,如果一个空白页跟有提交数据,或一个空白页处于块的起始位置,那么,最坏情况是,仅有一个页坏掉。基于此原因,流程包含框217、219、221,这些框可以标记某一页为坏的和下一页为空闲的。
如上所述,不稳定的单元从同一位置读取可以输出0(被编程位),或有时可输出1(对应于被最新放电的空闲位或空位)。在放电操作中,单元仅当被成功放电或成功编程后,才可认为该单元是可靠的。如果这些处理的任何一个被中断,则该单元是不稳定的或是被损坏的。返回到稳定状态的唯一途径是对包含该单元的整个页进行放电。因此,带有空白页头的页会被放电和重写。随后的页也被放电,以变成下一个空闲页。
如果前一页中不包含有效且经确认的数据(没有掉电的片断),那么假定这一块中自前一有效数据片断以来(或者在没有寻找到有效数据片断时,自块的起始端以来),最大尺寸的数据片断是无效的。
通过在初始化过程中无效第一空闲块中的至少一页而丢失的空间被认为是微乎其微的,因为这种情况只会随着意外关闭而出现。当无效页通过纠正或碎片收集步骤而复原到可知状态(擦除)时,可重新获得该空间。此类流程可确保在对页进行写入之前,页中没有任何损坏。
图4示出了本发明一个更基本的形式。在图4的实施例中,流程从框411开始。在框413中,识别第一块,并开始对每一页的扫描。在框415中,对块中的每一页进行扫描。在框417中,如果当前块是最后一块,则流程在块419结束。如果当前块不是最后一块,则在框421中,流程进行到下一块并重复操作。页扫描流程可以是图2或图3中的流程,或这里所描述的任何其它流程和变形。
图5示出了图4中的流程的进一步变形。如图4中那样,流程在框511开始,并在框513初始化至第一逻辑块。在框515中扫描该块中的页。流程通过框517进行循环,以使得如果当前块是最后一块,流程则在框519结束。在框517中,如果当前块不是最后一块,则流程在框521中进行到下一块,并且重复进行到框515。
然而,在图5的实施例中,对每一块中的页进行扫描,直到在框523中找到单个空闲页。换句话说,在框515中,对块中的页进行扫描。如果没有找到空闲页,则判断框523将流程定向至框517,且如图4那样,流程循环至下一块,或者如果当前块是最后一块,则流程结束。但是,如果页扫描寻找到了空闲页,则判断框523在框519中结束流程。这大大减少了加载驱动和寻找被损坏的页所需的时间。
当块总是以相同的顺序或次序被使用时,这种替代具有很好的效果。如果每次只使用一页,那么块中的第一空闲页会成为整个存储器阵列的第一空闲页。因此,只有这一页可能被损坏。另一方面,如果存储器控制器并不总是以同样的顺序使用这些页,或者在同一时间可以写入多页,那么该流程可以在所有块中不断执行,以决定每一块中的第一空闲页。
如上所述,对于闪存来说,当存储单元没有被写入数据时,则它并不包含经确认的有效数据或经确认的无效数据。存在许多不同的可行方法来确定是否是有效数据。在上面的实施例中,采用提交标记来标记写入后的有效数据片断。然而,根据特定应用,可以采取其它任何方法来代替提交标记。提交标记和其它技术还可以应用于其它类型的存储单元,例如PCM、MRAM和FRAM。
图6示出了可应用本发明实施方式的示例***611。然而,在所示实施例中,***可以是带有少许改变的移动式、手持式蜂窝电话,这种***可以代表一系列不同的设备。这种***由可包含芯片组或可不包含芯片组的中央处理器(CPU)613驱动。该CPU具有应用程序部分615和基带部分617,所述应用程序部分615通过使用操作***来执行程序,所述基带部分617用于处理通话功能。这两部分耦合到存储器接口619上,该接口通过总线而与***存储器进行通信。
在所示实施例中,***存储器具有易失性部分621和非易失性部分623,所述易失性部分621可实施为用于高速访问的随机存取存储器(RAM),所述非易失性部分623可实施为用于在掉电时保存数据的闪存。一般而言,RAM用作短期存储器,用于存储需要必须被快速访问的数据和指令,而闪存则用于存储操作***、***参数和应用程序。所述存储器可被选择性地实施为单个快闪存储器,而闪存部分则可利用其它类型的非易失性存储器来实施,例如PCM(相变存储器)、MRM、FRM、或各种类型的存储器的组合。在以上结合图2和3所描述的操作被应用在非易失性存储器上。在掉电情况下,存储在易失性存储器里的所有数据都会丢失。
CPU的基带部分耦合到用户接口。在所示实施例中,用户接口包括键盘625以及具有扬声器和麦克风的耳机627。根据具体的应用,也可以使用多种其它的接口,如触摸屏、蓝牙设备、加速计、近距离传感器和其它接口。基带部分还耦合到RF(射频)电路629,以允许***使用无线连接与外界设备通信。所述无线连接可以是蜂窝电话、数据、无线网络或所期望的其它任何接口。
CPU还可以耦合到多种***设备631,例如摄像机、定位***、显示器、打印机、蓝牙设备和其它支持***611的任何附加功能的***设备。图6还示出了一个电源管理***633,该***可包括电源,例如电池,用来控制各种组件的功耗。所述设备可以是软件驱动并由CPU控制的、也可以是自主控制的、或者是这两种方式的组合。在一种实施例中,当掉电时,电源管理***可以在CPU所访问的寄存器上设置一个标志。
图7是能够实施上述流程图所示的流程的掉电恢复***的一种实施例的框图。***连接到主机***709。主机***可以是计算机、蜂窝电话、移动网络设备、娱乐***组件或各种其它设备。主机***耦合到存储器接口控制器711,该存储器接口控制器711可为专用硬件形式。所述存储器接口控制器耦合到页扫描器713和页标记器715,它们可以轮流耦合到编程电路717和传感电路719。该传感和编程电路耦合到闪存单元720-1到720-4。虽然这里只显示了四个单元,但是一般而言,在实际阵列中可以具有上百个、上千个或更多个单元。
页扫描器用于如上面所述的那样对存储单元中的页进行扫描,并确定哪些页是有效的、空闲的和无效的。页标记器用于在使用存储器的过程中,根据页扫描器的结果来对页进行标记。传感电路读取单元中的值和标记,并为页扫描器提供这些值。编程电路对单元进行写操作,如果存储器阵列中有标记,则写入这些标记。如果标记是在单独的位置,则它们也会被写入该单独的位置。存储器接口控制器控制存储器和其它所示组件的操作,还控制主机***接口的操作。
术语“计算机可读介质”是指参与提供编程指令给处理器、存储器控制器或其它合适执行的设备的合适的介质。该介质可具有多种形式,包括但不限于,非易失性媒介和易失性媒介。非易失性媒介可以包括,例如,光盘或磁盘、固态存储器和其它存储器、ROM等。易失性媒介可以包括动态存储器,例如***存储器、DRAM、SRAM和其它类型的易失性存储器。计算机可读媒介的通常形式包括磁介质(例如,软盘、柔性盘、硬盘、磁带和其它磁介质)、光介质(例如,光盘只读存储器(CD-ROM)和其它光介质)、具有图案的物理介质(例如,打孔卡片、纸带和其它任何物理介质)、存储芯片或带盒(例如,RAM、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、闪存或其它存储芯片或带盒)以及任何其它计算机可读的介质。
在以下详细描述中,列举了大量具体的细节以使本发明得到透彻的理解。然而本领域技术人员可以理解,本发明能够在没有这些具体细节的情况下实现。在其它的实例中,并没有详细地描述众所周知的方法、步骤、组件和电路,以免混淆本发明。
在对计算机存储器中数据位或二进制数字信号的操作算法和符号表示方面给出了一部分细节描述。这些算法描述和表示所采用的技术是本领域技术人员可以从数据处理领域的技术人员的工作主旨中获得的。
通常认为,这里的算法是获取期望结果的一连串的操作或动作。这包括对物理量的物理操作。通常,尽管不是必须的,这些物理量采用能够被存储、转发、组合、比较以及操纵的电或磁信号的形式。将这些信号称之为比特、值、元素、符号、字母、项、数字或类似物被证明有时还是很方便的,主要因为这是一般应用。然而,应该理解,所有这些或类似的术语必须与适当的物理量联系起来,而且只是应用于这些量的便签而已。
除非具体规定,否则从以下讨论中可清楚得知,在整个说明书的讨论内容中,使用的术语如“处理”、“计算”、“运算”、“确定”或类似的术语是指计算机或计算***或相似的电子计算设备的动作和/或流程,该动作和/或流程操纵和/或将计算***的寄存器和/或存储器中以物理量,例如电子量,表示的数据转换为计算***的存储器、寄存器或其它这样的信息存储、发送或显示设备中相似地以物理量表示的其它数据。
本发明的实施方式可包括执行此中操作的装置。该装置可为为了期望目标而特别构造的装置,或者该装置可以包括由存储在设备中的程序选择性激活或重新配置的通用计算设备。所述程序可以存储在存储介质上,例如但不限制于任何类型的盘,包括软盘、光盘、光盘只读存储器(CD-ROM)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、或任何其它类型的适于存储电子指令且能够耦合到计算设备的***总线的媒介。
这里所给出的流程和显示与任何特定的计算设备或其它装置之间并没有内在联系。各种通用***均可用于根据此处教导的程序,或者可构造更专用的装置来执行期望方法,这经证实是更为方便的。以下描述中出现了所期望的多种***的结构。此外,并没有参考任何特定的编程语言来描述本发明的实施方式。可以理解的是,能够使用多种编程语言来实现这里所描述的本发明的教导。另外,应该理解的是,这里所描述的操作、功能和特征可通过任何硬件(分立电路或集成电路)和软件结合起来实施。
术语“耦合”和“连接”可与他们的衍生词一起被使用。应该理解,这些术语并不是作为彼此的同义词。相反,在特定的实施方式中,“连接”被用来表示两个或多个元件彼此之间具有直接的物理连接或电连接。“耦合”被用来表示两个或多个元件彼此之间具有直接的或间接的(彼此之间具有其它的中间件)物理连接或电连接,和/或两个或多个的元件之间相互合作或交互(例如,在某种情况下为相互影响的关系)。
以上描述了本发明的具体实施方式,然而,本发明并不仅限于这些实施方式的细节,而是由以下权利要求及其合理的等同替代来限定。
Claims (20)
1.一种方法,该方法包括:
对存储器阵列中的页进行扫描,以寻找第一空闲页;
将该第一空闲页标记为可用;以及
在下一个写周期对被标记为可用的页进行写入。
2.根据权利要求1所述的方法,该方法还包括:
将所述第一空闲页之前的页标记为无效;以及
擦除被标记为无效的页。
3.根据权利要求1所述的方法,其中对页进行扫描包括按照页被写入的次序对页进行扫描,并确定页中是否存储有数据,如果该页中没有存储数据,则将下一页确定为所述第一空闲页。
4.根据权利要求3所述的方法,其中对页进行扫描还包括如果所述页中存储有数据,则确定该页是否被标记为有效,如果该页未被标记为有效,则将下一页确定为所述第一空闲页。
5.根据权利要求4所述的方法,其中确定页是否被标记为有效包括读取与该页相关联的页头。
6.根据权利要求5所述的方法,其中读取页头包括读取页块的页头。
7.根据权利要求5所述的方法,其中读取页头包括读取所述存储器阵列中与所述页相关联的备用区中的页头。
8.根据权利要求1所述的方法,其中标记为无效包括将标记写入与所述页相关联的页头。
9.根据权利要求1所述的方法,其中标记为无效包括将标记写入与包含所述第一空闲页的页块相关联的页头。
10.根据权利要求1所述的方法,其中标记为无效包括写入与所述第一空闲页相关联的查找表。
11.根据权利要求1所述的方法,其中所述存储器阵列被划分为块,每一块包括多个页,其中对页进行扫描包括对块中的页进行扫描,所述方法还包括:
对每一块中的页进行扫描,以寻找每一块中的第一空闲页;
将每一块中所述第一空闲页之前的页标记为无效;以及
将每一块中的所述第一空闲页标记为可用。
12.一种用于存储器阵列的掉电恢复***,该***包括:
页扫描器,用于对存储器阵列中的页进行扫描,以寻找第一空闲页;
页标记器,用于将所述第一空闲页标记为可用;以及
编程电路,用于在下一个写周期对被标记为可用的页进行写入。
13.根据权利要求12所述的***,其中所述页标记器还用于将所述第一空闲页之前的页标记为无效,其中所述编程电路还用于擦除被标记为无效的页。
14.根据权利要求12所述的***,其中所述页扫描器通过确定页是否在与该页相关联的页头中被标记为有效来寻找空闲页。
15.根据权利要求5所述的***,其中读取页头包括读取页块的页头。
16.一种存储设备,该设备包括:
存储单元阵列,包括多个存储单元,该多个存储单元被分组为多个块;以及
耦合到所述存储单元阵列的存储器控制器,该存储器控制器用于对存储器阵列中的页进行扫描以寻找第一空闲页,将该第一空闲页之前的页标记为无效,将该第一空闲页标记为可用,擦除被标记为无效的页,并对被标记为可用的页进行写入。
17.根据权利要求16所述的设备,其中所述存储器控制器按照页被写入的次序来对页进行扫描,并确定页中是否存储有数据,如果该页中没有存储数据,则将下一页确定为所述第一空闲页。
18.根据权利要求17所述的设备,其中如果所述页中存储有数据,则所述存储器控制器确定该页是否被标记为有效,如果该页未被标记为有效,则将下一页确定为所述第一空闲页。
19.根据权利要求16所述的设备,其中所述存储单元阵列是闪存单元阵列。
20.根据权利要求16所述的设备,其中所述存储单元阵列是相变存储单元阵列。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/347,935 | 2008-12-31 | ||
US12/347,935 US9612954B2 (en) | 2008-12-31 | 2008-12-31 | Recovery for non-volatile memory after power loss |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101770809A true CN101770809A (zh) | 2010-07-07 |
CN101770809B CN101770809B (zh) | 2014-03-26 |
Family
ID=42221053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910222338.0A Active CN101770809B (zh) | 2008-12-31 | 2009-11-13 | 用于非易失性存储器掉电后的恢复的方法和*** |
Country Status (6)
Country | Link |
---|---|
US (2) | US9612954B2 (zh) |
JP (1) | JP5528782B2 (zh) |
KR (1) | KR101613678B1 (zh) |
CN (1) | CN101770809B (zh) |
DE (1) | DE102009051862A1 (zh) |
SG (2) | SG196777A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629237A (zh) * | 2011-02-04 | 2012-08-08 | 西部数据技术公司 | 非易失性半导体存储器的多个器件的并行搜索 |
CN102722339A (zh) * | 2011-03-28 | 2012-10-10 | 西部数据技术公司 | 供电安全的数据管理*** |
CN103106143A (zh) * | 2011-11-11 | 2013-05-15 | 建兴电子科技股份有限公司 | 固态储存装置及其逻辑至实体对应表建立方法 |
US9612954B2 (en) | 2008-12-31 | 2017-04-04 | Micron Technology, Inc. | Recovery for non-volatile memory after power loss |
CN107025185A (zh) * | 2016-02-01 | 2017-08-08 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN113885791A (zh) * | 2021-09-08 | 2022-01-04 | 北京维普无限智能技术有限公司 | Flash存储器的数据写入方法、读取方法和装置 |
CN114327258A (zh) * | 2021-11-30 | 2022-04-12 | 苏州浪潮智能科技有限公司 | 一种固态硬盘处理方法、***、设备及计算机存储介质 |
CN115237352A (zh) * | 2022-08-03 | 2022-10-25 | 中国电子科技集团公司信息科学研究院 | 隐匿存储方法、装置、存储介质和电子设备 |
CN117251116A (zh) * | 2023-11-14 | 2023-12-19 | 苏州元脑智能科技有限公司 | 非易失性存储器的擦写方法及装置 |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101409766B1 (ko) * | 2007-06-18 | 2014-06-19 | 삼성전자주식회사 | 외부 장치 접속 처리 방법 및 시스템과, 이를 이용하는휴대 단말기 |
US8443167B1 (en) | 2009-12-16 | 2013-05-14 | Western Digital Technologies, Inc. | Data storage device employing a run-length mapping table and a single address mapping table |
US8194340B1 (en) | 2010-03-18 | 2012-06-05 | Western Digital Technologies, Inc. | Disk drive framing write data with in-line mapping data during write operations |
US8687306B1 (en) | 2010-03-22 | 2014-04-01 | Western Digital Technologies, Inc. | Systems and methods for improving sequential data rate performance using sorted data zones |
US9330715B1 (en) | 2010-03-22 | 2016-05-03 | Western Digital Technologies, Inc. | Mapping of shingled magnetic recording media |
US8856438B1 (en) | 2011-12-09 | 2014-10-07 | Western Digital Technologies, Inc. | Disk drive with reduced-size translation table |
US8693133B1 (en) | 2010-03-22 | 2014-04-08 | Western Digital Technologies, Inc. | Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format |
US8699185B1 (en) | 2012-12-10 | 2014-04-15 | Western Digital Technologies, Inc. | Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks |
US20120117303A1 (en) * | 2010-11-04 | 2012-05-10 | Numonyx B.V. | Metadata storage associated with flash translation layer |
US8601313B1 (en) | 2010-12-13 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for a data reliability scheme in a solid state memory |
US8615681B2 (en) | 2010-12-14 | 2013-12-24 | Western Digital Technologies, Inc. | System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss |
US8601311B2 (en) | 2010-12-14 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory |
US8700950B1 (en) | 2011-02-11 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for data error recovery in a solid state subsystem |
US8700951B1 (en) * | 2011-03-09 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata |
US8793429B1 (en) | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
CN102426856B (zh) * | 2011-12-08 | 2016-04-13 | 上海新储集成电路有限公司 | 基于相变存储单元的非易失性d触发器电路及实现方法 |
CN103164345B (zh) * | 2011-12-08 | 2016-04-27 | 光宝科技股份有限公司 | 固态存储装置遭遇断电后的数据存储方法 |
US9213493B1 (en) | 2011-12-16 | 2015-12-15 | Western Digital Technologies, Inc. | Sorted serpentine mapping for storage drives |
US9158700B2 (en) * | 2012-01-20 | 2015-10-13 | Seagate Technology Llc | Storing cached data in over-provisioned memory in response to power loss |
US20140013031A1 (en) * | 2012-07-09 | 2014-01-09 | Yoko Masuo | Data storage apparatus, memory control method, and electronic apparatus having a data storage apparatus |
US9478271B2 (en) * | 2013-03-14 | 2016-10-25 | Seagate Technology Llc | Nonvolatile memory data recovery after power failure |
KR102127284B1 (ko) | 2013-07-01 | 2020-06-26 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 관리 방법 |
KR20150015621A (ko) * | 2013-07-31 | 2015-02-11 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10643668B1 (en) * | 2013-08-27 | 2020-05-05 | Seagate Technology Llc | Power loss data block marking |
JP6263068B2 (ja) * | 2014-03-28 | 2018-01-17 | 株式会社メガチップス | 半導体記憶装置 |
KR102272228B1 (ko) * | 2014-05-13 | 2021-07-06 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법 |
US8953269B1 (en) | 2014-07-18 | 2015-02-10 | Western Digital Technologies, Inc. | Management of data objects in a data object zone |
US9875055B1 (en) | 2014-08-04 | 2018-01-23 | Western Digital Technologies, Inc. | Check-pointing of metadata |
US9904688B2 (en) * | 2014-09-30 | 2018-02-27 | International Business Machines Corporation | Buffering and replicating data written to a distributed storage system |
US9916325B2 (en) * | 2014-09-30 | 2018-03-13 | International Business Machines Corporation | Quick initialization of data regions in a distributed storage system |
US9728278B2 (en) * | 2014-10-24 | 2017-08-08 | Micron Technology, Inc. | Threshold voltage margin analysis |
US9785362B2 (en) * | 2015-07-16 | 2017-10-10 | Qualcomm Incorporated | Method and apparatus for managing corruption of flash memory contents |
US20180225201A1 (en) * | 2015-07-23 | 2018-08-09 | Hewlett Packard Enterprise Development Lp | Preserving volatile memory across a computer system disruption |
US10838818B2 (en) | 2015-09-18 | 2020-11-17 | Hewlett Packard Enterprise Development Lp | Memory persistence from a volatile memory to a non-volatile memory |
FR3051574A1 (fr) * | 2016-05-20 | 2017-11-24 | Proton World Int Nv | Gestion du stockage dans une memoire flash |
US10521126B2 (en) * | 2016-08-11 | 2019-12-31 | Tuxera, Inc. | Systems and methods for writing back data to a storage device |
FR3055992A1 (fr) | 2016-09-09 | 2018-03-16 | Proton World International N.V. | Gestion d'index dans une memoire flash |
TWI607312B (zh) | 2016-10-07 | 2017-12-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料寫入方法 |
US10168905B1 (en) | 2017-06-07 | 2019-01-01 | International Business Machines Corporation | Multi-channel nonvolatile memory power loss management |
US10096380B1 (en) * | 2017-08-31 | 2018-10-09 | Micron Technology, Inc. | Erase page check |
FR3072476A1 (fr) | 2017-10-13 | 2019-04-19 | Proton World International N.V. | Unite logique de memoire pour memoire flash |
US11163679B2 (en) * | 2018-04-04 | 2021-11-02 | SK Hynix Inc. | Garbage collection strategy for memory system and method of executing such garbage collection |
CN108874318B (zh) * | 2018-06-22 | 2021-09-17 | 郑州云海信息技术有限公司 | 固态硬盘的数据恢复方法以及固态硬盘 |
US11042451B2 (en) | 2018-12-14 | 2021-06-22 | International Business Machines Corporation | Restoring data lost from battery-backed cache |
US10747612B2 (en) * | 2018-12-31 | 2020-08-18 | Micron Technology, Inc. | Multi-page parity protection with power loss handling |
TWI745695B (zh) * | 2019-05-22 | 2021-11-11 | 慧榮科技股份有限公司 | 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置 |
TWI718975B (zh) * | 2020-07-17 | 2021-02-11 | 汎思數據股份有限公司 | 提高記憶體資料讀寫速度的方法及裝置 |
KR20220066601A (ko) * | 2020-11-16 | 2022-05-24 | 삼성전자주식회사 | 스토리지 장치, 상기 스토리지 장치를 포함하는 전자 시스템 및 상기 스토리지 장치의 동작 방법 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
US6170066B1 (en) * | 1995-09-29 | 2001-01-02 | Intel Corporation | Power-off recovery management for sector based flash media managers |
US6675278B1 (en) * | 2000-04-19 | 2004-01-06 | Motorola, Inc. | Method and apparatus for managing memory |
US20050055531A1 (en) * | 2003-09-09 | 2005-03-10 | Renesas Technology Corp. | Non-volatile memory control device capable of recovering data even when data writing is interrupted |
CN1991790A (zh) * | 2005-12-27 | 2007-07-04 | 三星电子株式会社 | 使用非易失性存储器作为高速缓存器的存储设备及其方法 |
CN101025715A (zh) * | 2007-03-07 | 2007-08-29 | 北京飞天诚信科技有限公司 | 基于非易失性存储器中两个连续逻辑块的掉电保护方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4814971A (en) * | 1985-09-11 | 1989-03-21 | Texas Instruments Incorporated | Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state |
US5337275A (en) * | 1992-10-30 | 1994-08-09 | Intel Corporation | Method for releasing space in flash EEPROM memory array to allow the storage of compressed data |
JP3726663B2 (ja) | 2000-09-07 | 2005-12-14 | 日産自動車株式会社 | 電子制御装置の制御データ記憶装置 |
JP3692313B2 (ja) | 2001-06-28 | 2005-09-07 | 松下電器産業株式会社 | 不揮発性メモリの制御方法 |
JP3928724B2 (ja) | 2003-02-20 | 2007-06-13 | ソニー株式会社 | 記録媒体の記録制御方法および記録媒体の記録制御装置 |
DE10321104B4 (de) | 2003-05-09 | 2016-04-07 | Robert Bosch Gmbh | Verfahren zur Ablage von veränderlichen Daten |
JP3969494B2 (ja) | 2004-08-31 | 2007-09-05 | 三菱電機株式会社 | 車載電子制御装置 |
JP4843222B2 (ja) | 2005-01-11 | 2011-12-21 | 株式会社東芝 | 半導体記憶装置の制御方法、メモリカード、及びホスト機器 |
JP5162846B2 (ja) | 2005-07-29 | 2013-03-13 | ソニー株式会社 | 記憶装置、コンピュータシステム、および記憶システム |
KR100781515B1 (ko) * | 2006-01-10 | 2007-12-03 | 삼성전자주식회사 | 트랜잭션 처리를 위한 로그 정보 관리 시스템 및 방법 |
WO2008087634A1 (en) | 2007-01-18 | 2008-07-24 | Sandisk Il Ltd. | A method and system for facilitating fast wake-up of a flash memory system |
US7725437B2 (en) * | 2007-07-31 | 2010-05-25 | Hewlett-Packard Development Company, L.P. | Providing an index for a data store |
US9542431B2 (en) * | 2008-10-24 | 2017-01-10 | Microsoft Technology Licensing, Llc | Cyclic commit transaction protocol |
US9612954B2 (en) | 2008-12-31 | 2017-04-04 | Micron Technology, Inc. | Recovery for non-volatile memory after power loss |
-
2008
- 2008-12-31 US US12/347,935 patent/US9612954B2/en active Active
-
2009
- 2009-11-04 DE DE102009051862A patent/DE102009051862A1/de not_active Withdrawn
- 2009-11-05 JP JP2009269278A patent/JP5528782B2/ja active Active
- 2009-11-09 SG SG2013096912A patent/SG196777A1/en unknown
- 2009-11-09 SG SG200907451-9A patent/SG162655A1/en unknown
- 2009-11-13 CN CN200910222338.0A patent/CN101770809B/zh active Active
- 2009-11-13 KR KR1020090109644A patent/KR101613678B1/ko active IP Right Grant
-
2017
- 2017-04-03 US US15/477,169 patent/US10552311B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
US6170066B1 (en) * | 1995-09-29 | 2001-01-02 | Intel Corporation | Power-off recovery management for sector based flash media managers |
US6675278B1 (en) * | 2000-04-19 | 2004-01-06 | Motorola, Inc. | Method and apparatus for managing memory |
US20050055531A1 (en) * | 2003-09-09 | 2005-03-10 | Renesas Technology Corp. | Non-volatile memory control device capable of recovering data even when data writing is interrupted |
CN1991790A (zh) * | 2005-12-27 | 2007-07-04 | 三星电子株式会社 | 使用非易失性存储器作为高速缓存器的存储设备及其方法 |
CN101025715A (zh) * | 2007-03-07 | 2007-08-29 | 北京飞天诚信科技有限公司 | 基于非易失性存储器中两个连续逻辑块的掉电保护方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9612954B2 (en) | 2008-12-31 | 2017-04-04 | Micron Technology, Inc. | Recovery for non-volatile memory after power loss |
US10552311B2 (en) | 2008-12-31 | 2020-02-04 | Micron Technology, Inc. | Recovery for non-volatile memory after power loss |
CN102629237B (zh) * | 2011-02-04 | 2016-09-14 | 西部数据技术公司 | 非易失性半导体存储器及搜索最后写入地址的方法 |
CN102629237A (zh) * | 2011-02-04 | 2012-08-08 | 西部数据技术公司 | 非易失性半导体存储器的多个器件的并行搜索 |
CN102722339A (zh) * | 2011-03-28 | 2012-10-10 | 西部数据技术公司 | 供电安全的数据管理*** |
CN102722339B (zh) * | 2011-03-28 | 2017-04-26 | 西部数据技术公司 | 供电安全数据管理*** |
CN103106143A (zh) * | 2011-11-11 | 2013-05-15 | 建兴电子科技股份有限公司 | 固态储存装置及其逻辑至实体对应表建立方法 |
CN103106143B (zh) * | 2011-11-11 | 2016-01-13 | 光宝科技股份有限公司 | 固态储存装置及其逻辑至实体对应表建立方法 |
CN107025185B (zh) * | 2016-02-01 | 2020-09-11 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN107025185A (zh) * | 2016-02-01 | 2017-08-08 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN113885791A (zh) * | 2021-09-08 | 2022-01-04 | 北京维普无限智能技术有限公司 | Flash存储器的数据写入方法、读取方法和装置 |
CN114327258A (zh) * | 2021-11-30 | 2022-04-12 | 苏州浪潮智能科技有限公司 | 一种固态硬盘处理方法、***、设备及计算机存储介质 |
CN114327258B (zh) * | 2021-11-30 | 2023-08-15 | 苏州浪潮智能科技有限公司 | 一种固态硬盘处理方法、***、设备及计算机存储介质 |
CN115237352A (zh) * | 2022-08-03 | 2022-10-25 | 中国电子科技集团公司信息科学研究院 | 隐匿存储方法、装置、存储介质和电子设备 |
CN115237352B (zh) * | 2022-08-03 | 2023-08-15 | 中国电子科技集团公司信息科学研究院 | 隐匿存储方法、装置、存储介质和电子设备 |
CN117251116A (zh) * | 2023-11-14 | 2023-12-19 | 苏州元脑智能科技有限公司 | 非易失性存储器的擦写方法及装置 |
CN117251116B (zh) * | 2023-11-14 | 2024-02-20 | 苏州元脑智能科技有限公司 | 非易失性存储器的擦写方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2010157216A (ja) | 2010-07-15 |
KR20100080350A (ko) | 2010-07-08 |
US9612954B2 (en) | 2017-04-04 |
DE102009051862A1 (de) | 2010-07-01 |
US20100169543A1 (en) | 2010-07-01 |
SG196777A1 (en) | 2014-02-13 |
JP5528782B2 (ja) | 2014-06-25 |
KR101613678B1 (ko) | 2016-04-19 |
US10552311B2 (en) | 2020-02-04 |
CN101770809B (zh) | 2014-03-26 |
US20170206157A1 (en) | 2017-07-20 |
SG162655A1 (en) | 2010-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101770809B (zh) | 用于非易失性存储器掉电后的恢复的方法和*** | |
US8914702B2 (en) | Bit error repair method and information processing apparatus | |
US20190220392A1 (en) | Method for reusing destination block related to garbage collection in memory device, associated memory device and controller thereof, and associated electronic device | |
CN101369453B (zh) | 闪存存储器设备和控制闪存存储器设备的方法 | |
CN101246738B (zh) | 具有备份电路的存储***及编程方法 | |
CN101593157B (zh) | 非线性闪存的坏块管理方法及装置 | |
TWI396202B (zh) | 錯誤校正控制器及其快閃記憶體晶片系統與錯誤校正方法 | |
US9519436B1 (en) | Memory erasing method, memory controller, and memory storage apparatus | |
CN102033814B (zh) | 存取一闪存的方法以及相关的记忆装置 | |
JP4570891B2 (ja) | 記憶装置 | |
CN111142781B (zh) | 数据储存装置与数据处理方法 | |
CN109426441B (zh) | 数据储存装置以及其操作方法 | |
US10229000B2 (en) | Erasure codes to prevent lower page corruption in flash memory | |
EP3176789A1 (en) | Memory control method and apparatus | |
CN107704338B (zh) | 一种资料储存型闪存的数据恢复方法和装置 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN113434086B (zh) | 数据存储方法、装置、非易失性存储器件和存储器 | |
US10866887B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
JP2008251154A (ja) | 不揮発性半導体記憶装置 | |
CN104575605A (zh) | 存储器装置及使用非易失性存储器对***进行开机的方法 | |
JP4239754B2 (ja) | 不揮発メモリシステム | |
KR20200101884A (ko) | 데이터 저장 시스템 및 그것의 동작 방법 | |
US20240152348A1 (en) | Firmware updating method and data storage device utilizing the same | |
US11881276B2 (en) | Error correcting code decoder | |
EP4184331A1 (en) | Method and apparatus for performing access control of memory device with aid of multi-stage garbage collection management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |