CN101208669A - 写入非易失性存储器的技术 - Google Patents

写入非易失性存储器的技术 Download PDF

Info

Publication number
CN101208669A
CN101208669A CNA2006800232642A CN200680023264A CN101208669A CN 101208669 A CN101208669 A CN 101208669A CN A2006800232642 A CNA2006800232642 A CN A2006800232642A CN 200680023264 A CN200680023264 A CN 200680023264A CN 101208669 A CN101208669 A CN 101208669A
Authority
CN
China
Prior art keywords
storage locations
physical storage
logical address
write operation
controller
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
Application number
CNA2006800232642A
Other languages
English (en)
Other versions
CN101208669B (zh
Inventor
S·特里卡
R·法伯特
R·科尔森
J·马修斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN101208669A publication Critical patent/CN101208669A/zh
Application granted granted Critical
Publication of CN101208669B publication Critical patent/CN101208669B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity 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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

一种方法包括执行多次写操作以在不同的物理存储位置内存储数据。每一个物理存储位置均与一个在这些物理存储位置之间共同共享的逻辑地址相关联。该方法包括在物理存储位置内存储顺序信息以指示写操作的哪一次最后出现。

Description

写入非易失性存储器的技术
背景
本发明一般地涉及写入非易失性存储器的技术。
诸如闪存之类的非易失性半导体存储器对需要在正常系统关机/休眠或掉电的情况下保持数据的应用很有吸引力。于是,由闪存设备构成的存储器就可用于在磁盘高速缓存或固态磁盘中存储数据。虽然典型的闪存具有远快于磁性存储设备的存取时间,但是不同于磁性存储设备,闪存的各单元通常无法在没有首先被擦除的情况下被重写。
作为一个更具体的实例,在将一位数据存储在常规闪存单元内之前,首先擦除该单元。在此擦除状态下,该单元指示一特定的逻辑状态,诸如逻辑“1”状态。在对该闪存单元的后续写操作中,如果要在该单元内存储逻辑1,则该单元的状态保持不变。然而,如果要在该单元内存储逻辑0,则编程该单元以将该单元改变为0逻辑状态。于是,对闪存单元的典型写入通常涉及两个存储器操作:擦除存储单元的第一操作;以及编程该存储单元逻辑状态的第二操作。这多个操作又造成了写入闪存的总时间的增加。
于是,存在一种持续的需要,希望以更好的方式降低写入诸如闪存的非易失性半导体存储器的总时间。
附图简述
图1是根据本发明的实施例用于非易失性半导体存储器的动态寻址方案的图示。
图2是根据本发明实施例的存储器系统的框图。
图3和图8是根据本发明实施例来描述在对非易失性半导体存储器写操作方面所使用的技术的流程图。
图4是根据本发明实施例存储在非易失性存储器的存储位置内的数据的图示。
图5是根据本发明实施例的逻辑-物理转换表的图示。
图6是根据本发明实施例的空白池表的图示。
图7是根据本发明实施例的易失性元数据的图示。
图9是根据本发明实施例来描述一种用于在掉电后重构该逻辑-物理转换表的中间表的图示。
图10是根据本发明实施例来描述一种用于在掉电后重构该逻辑-物理转换表的技术的流程图。
图11是根据本发明实施例的计算机系统的框图。
详细描述
根据在此描述的本发明的各实施例,为了在非易失性半导体存储器(在此被称为“非易失性存储器”)方面最小化存储器的写入等待时间而使用动态寻址。更具体地,根据在此描述的本发明的各实施例,非易失性存储器从软件的观点看,是使用逻辑地址来寻址的。而从对存储器执行的物理读取和写入操作的观点看,动态寻址将逻辑地址转换成或映射至存储器的物理地址。动态寻址不断地改变逻辑和物理地址之间的映射以确保每个逻辑写操作都能够让数据存储在该非易失性存储器先前被擦除的位置(即,在不同的物理地址处)内。于是,通过动态寻址,每个逻辑写操作均生成单个操作。这将与对非易失性存储器使用两次存取(一次是擦除/无效旧的物理位置,而另一次则是在新的预擦除物理位置上写入该数据)的动态寻址相比较。
更具体地,参见图1,根据本发明的某些实施例,动态寻址方案10将非易失性存储器的物理地址分组成空白池20、有效池30和用过池40。空白池20表示未分配的物理地址,其相关联的存储单元被擦除,正准备被编程并由此准备被分配逻辑地址。有效池30表示与存储有效数据并被分配逻辑地址的存储单元相关联的那些物理地址。用过池40表示不再存储有效数据,不再与逻辑地址相关联并且要被擦除的那些物理地址。在使用块擦除操作来擦除物理地址的邻接块(例如,页)时,用过池40的物理地址又被重新分组为空白池20。注意到块擦除要比响应于每次逻辑写操作一次擦除一个物理地址更为有效,例如,非易失性存储器(诸如,NAND闪存)可能只允许块擦除。
作为一个更为具体的示例,非易失性存储器的示例性物理地址14(与一组存储单元或存储位置相关联)可以按如下的方式在空白池20、有效池30和用过池40之间转换。最初,诸如在结合非易失性半导体存储器的系统启动时或在被擦除之后,物理地址14属于空白池20。换句话说,由于位于空白池20中,使得物理地址14可用于分配一特定的逻辑地址。于是,当数据被写入一特定逻辑地址时,物理地址14就被分配给该逻辑地址,使得该数据被存储在物理地址14处;并且物理地址14随后变为有效池30的一部分。然而对物理地址14的另一写入在与物理地址14相关联的存储单元未被擦除的情况下不能出现。因此,当出现对同一逻辑地址的下一写入时,将另一物理地址分配给该逻辑地址,并且与该物理地址14相关联的存储内容就随着物理地址14变为用过池40的一部分而变为无效或“用过”。
与物理地址14相关联的存储单元没有必要一变为“用过”就被立刻擦除,而宁可在块擦除操作中擦除这些存储单元。此刻,物理地址14再次变为空白池20的一部分,并且可以被分配给另一逻辑地址。
参见图2,根据本发明的某些实施例,存储器系统50使用上述动态寻址方案10并可以在有关诸如NAND闪存之类的非易失性半导体大容量存储存储器54(在此称为“非易失性存储器54”)方面使用。非易失性存储器54含有使用物理地址寻址的物理存储单元55的阵列。根据本发明的某些实施例,存储器系统50的控制器52通过在逻辑地址和物理地址空间之间的变换来执行动态寻址。更具体地,根据本发明的某些实施例,控制器52耦合至诸如动态随机存取存储器(DRAM)之类的易失性存储器60,。易失性存储器60存储逻辑-物理转换表(在此被称为“L2P表62”),而该表由控制器52用于将逻辑地址映射至存储器54的物理地址。该映射不断改变,由此使得控制器52不断更新L2P表62以跟踪每个逻辑地址到不同物理地址的再映射。
同样如图2所描述,根据本发明的某些实施例,易失性存储器60存储空白池表66,该表指示存储器54的哪些物理地址被包括在空白池20内(见图1)。于是,当控制器52要对逻辑地址执行写操作时,控制器52通常会从空白池表66中选择一可用物理地址,更新L2P表62用以将该逻辑地址再映射至所选的物理地址,并且在所选的物理地址处对非易失性存储器54执行相应的写操作。
在可被存储在易失性存储器60中的其他数据中,根据本发明的某些实施例,易失性存储器60可以存储元数据68,元数据68含有(连同其他可能的信息)与那些被存储在每个物理地址处的存储器内容的消耗状态有关的信息。根据本发明的某些实施例,对于非易失性存储器54的每个可寻址位置而言,元数据68指示存储在该位置中的数据内容是用过、有效还是空白。除了空白池表66、L2P表62和元数据68之外,易失性存储器60还存储程序指令70,这些指令在被执行时会使得控制器52执行在此公开的物理写入、地址转换和掉电恢复技术中的一种或多种。
于是作为概括,控制器52使用易失性存储器60来存储指示逻辑-物理地址映射的信息以及指示非易失性存储器54的可寻址存储位置的状态的信息。相比于非易失性存储器(诸如存储器54),在易失性存储器60中存储这些信息是有利的,这是由于易失性存储器60有着相对快的存取时间,从而给出较高的访问次数来维持这些信息。易失性信息可以在例如关机、休眠、挂起或低功耗检测等关键事件处被存储在非易失性存储器内,并在随后的重新启动/重新开始的过程中从非易失性存储器内恢复。然而,一般而言,关于这一技术的潜在挑战是存储在易失性存储器60内的信息在存储器系统50掉电的情况下会丢失。虽然可以对易失性存储器60的内容做出周期性地备份,但是这些备份本身对恢复丢失信息而言是不够的。因此,一旦从掉电中恢复,如果没有如下公开的本发明的各特征,控制器52将会无从知晓逻辑-物理映射以及非易失性存储器54的各可寻址存储位置的消耗状态,于是就不能重构存储在易失性存储器60中的信息。
允许控制器52重构或恢复在掉电之前存储在易失性存储器60内的信息的一种可能的技术是一种在其中控制器52将所有需要的状态信息保持在诸如非易失性存储器54之类的非易失性存储器内的技术。作为一个更具体的示例,为了实现该技术,控制器52可以对每次逻辑写操作执行对非易失性存储器54的两次写操作。更具体地,使用该技术,非易失性存储器54可用于存储当前元数据状态信息,以指示某一特定物理单元当前是有效还是用过的。因此,对于每次逻辑写操作而言,控制器52可以写入新分配的物理地址并写入先前分配的物理地址以将该物理地址标记为用过。然而,这一安排的潜在困难是需要为每一单次逻辑写操作进行两次对非易失性存储器54的写操作,从而会增加存储器54的写等待时间。
根据在此描述地本发明的实施例,控制器为每次逻辑写操作对非易失性存储器54执行单次(例如,而非两次)写操作。为了允许在掉电之后恢复存储在易失性存储器60内的信息(诸如,存储在L2P表62和空白池表66中的那些信息),控制器52在每次物理写操作中都在非易失性存储器54内存储诸如时间戳或序号之类的顺序信息。更具体地,根据本发明的某些实施例,控制器52为对非易失性存储器54的每次写操作生成一个全局序号。控制器52为每次写操作递增该全局序号,以使得该序号对写操作具有(例如)不断增加的值。正如以下要描述的,这些序号可由控制器52在掉电之后用于重构在前写操作(发生在掉电之前)的时间线,从而确定非易失性存储器54的哪些可寻址位置存储了有效数据(并还藉此确定了哪些位置存储了用过的数据)。
参见图3,作为概括,根据本发明的某些实施例,控制器52一般在逻辑写操作方面执行方法74。依照该方法74,控制器52为不同的写操作向一逻辑地址分配不同的物理存储位置(框76)。于是,对于向某一特定逻辑地址的第一次写操作而言,控制器52写入非易失性存储器54的第一物理地址;对这一逻辑地址的下一次写操作而言,控制器52写入非易失性存储器54的第二物理地址。依照该方法74,控制器52在该物理存储位置内存储序号和逻辑地址(框78),它们共同地指示被分配给该逻辑地址的最后物理存储位置。如上所述,序号允许控制器52在掉电出现之后重建易失性存储器60内的信息。
图4描绘了根据本发明某些实施例可存储在非易失性存储器54的每个可寻址存储位置内的示例性数据80。数据80包括作为相应逻辑写操作的对象数据的内容数据82。数据80还包括元数据84,元数据84则包括与内容数据82状态有关的各种信息。数据字段86和87是元数据84的一部分,它们分别指示与用于存储内容数据82的写操作相关联的序号和逻辑地址。对于其中非易失性存储器54用作磁盘高速缓存的应用而言,元数据84可包括与相关联的高速缓存线的状态有关的数据。于是,元数据84可存储除了在此描述的示例性数据之外的其他和/或不同的数据。
此外,元数据84可以指示内容数据82的消耗状态,正如内容数据82是用过的还是有效的。然而,所指示的消耗状态可能不是当前的,因为控制器52不为每次逻辑写操作而在先前被映射至该逻辑地址的物理地址处将该内容标记为用过。因此,非易失性存储器54的若干位置可含有指示同一逻辑地址并指示该关联内容数据82有效的元数据84。易失性存储器60内所包含的该信息可由控制器52用于在正常操作期间从用过的数据中挑拣出有效数据;并且在掉电的情况下,控制器52可以通过从非易失性存储器54中读取序号来从用过的数据中挑拣出有效数据并重构先前存储在易失性存储器60内的信息,以使得存储器系统50从掉电中恢复。
如上所述,序号是全局的,在本发明的某些实施例中,在这一点上不管逻辑地址如何,对于向非易失性存储器54的每次写入,序号都是不同的。然而,根据本发明的其他实施例,序号对于每个逻辑地址而言可以是唯一的,藉此控制器52可以在非易失性存储器54内存储这些序号(在此称为“本地序号”),这些序号各自都在相同的范围上延伸,但可通过关联的逻辑地址相互区别。于是可能的情况是例如非易失性存储器54为逻辑地址A存储了逻辑序号“5”,并为逻辑地址D也存储了逻辑序号“5”。使用本地序号的一个潜在缺点是需要有多个计数器而非单个计数器(对于全局序号而言)用于生成有关各逻辑地址的序号。然而,使用本地序号的潜在优势则在于元数据84内相对应的数据字段尺寸较小。
图5描绘了根据本发明某些实施例的L2P表62。L2P表62包括含有N个条目94(作为示例描绘的条目941,942...94N)的固定阵列93,其中每个条目都与一特定逻辑地址相关联并且存储用于该逻辑地址的物理地址的指示。于是,为了检索用于某一逻辑地址的当前物理地址,就通过逻辑地址指针91来索引固定阵列93的各条目94。
如上所述,在数据被存储在某一物理地址之后,存储在相应存储位置内的数据就变为用过的,于是相应的物理地址对该逻辑地址而言就变为“无效”。于是,根据本发明的某些实施例,条目94可以存储预先确定的值(例如,全“1”的值)以指示无效的物理地址。代替地,根据本发明的某些实施例,易失性元数据68可以指示哪些物理地址是有效的而哪些是用过的;并且作为又一代替,在本发明的某些实施例中,L2P表62可包括与各条目94相关联的一位,用以指示相应的物理地址是无效还是有效。于是,许多变化都是可能的并且在所附权利要求的范围内。
图6描绘了根据本发明某些实施例的空白池表66。空白池表66包括P个条目100(作为示例描绘的条目1001,1002...100P),其中每个条目含有作为空白池20(见图1)的一部分的存储位置的物理地址。空白池表66的条目数P随着各物理地址不断地由于新的写操作而从空白池表66中取出并在块擦除操作之后被添加至空白池表66而不断变化。根据本发明的某些实施例,空白池表66可以包括先进先出(FIFO)缓冲器99或队列(作为一个示例),其中在FIFO缓冲器99的一端添加条目100,并且条目在该缓冲器另一端将条目分配给逻辑地址。其他的安排也是可能的并且在所附权利要求的范围之内。
图7描绘了根据本发明某些实施例的易失性元数据68。可将易失性元数据68安排成包括Q个条目110(描绘作为示例的条目1101,1102...110Q-1,110Q)的固定阵列109的形式,其中每个条目都与非易失性存储器54的物理地址之一相关联。于是,可利用物理地址指针111来索引各条目110。如图7所描绘,每个条目110可指示该相关联的物理地址含有用过的还是有效的数据。此外,根据本发明的某些实施例,每个条目110可以指示该相关联物理地址是与一擦除还是空白存储位置相关联。于是,许多变化都是可能的并且在所附权利要求的范围内。
参见图8,控制器52(参见图2)通常可以响应于逻辑写操作执行方法150。逻辑写操作以逻辑地址为目标并且指示要被存储在该逻辑地址处的数据。依据方法150,控制器52如框152所述,诸如通过用逻辑地址从L2P表62(参见图2)中查找特定物理地址,来为该逻辑地址获取一物理地址。控制器52随后判定(菱形框154)该物理地址是否有效。这在正常操作中是很常见的情况,虽然一特定物理地址也可以在存储器系统50(参见图2)最初上电之后与空白池相关联。
如果控制器52判定(菱形框154)当前物理地址有效,则控制器52就在L2P表62内将当前物理地址标记为无效(框158)。于是,如果当前物理地址正存储着有效数据,那么依据在此讨论的动态寻址方案,则使用另一物理地址(如下进一步描述的)来存储作为该当前逻辑写操作的对象的数据。接下来,控制器52更新易失性元数据68以指示在当前物理地址处的内容数据82(参见图2和图4)。
在框162之后或是在判定(菱形框154)当前物理地址无效之后,控制器52判定(菱形框160)是否是时候补充空白池20。例如,在本发明的某些实施例中,控制器52可以监视组成空白池20的物理地址的数量。一旦判定该数量已下降到预定阈值之下,控制器52可采取行动以补充空白池20。例如,这些动作可以包括把用过的单元重新定位(框164)至一邻接块内。于是,这一重新定位可涉及把带有关联更新的、有效的和用过的非易失性存储器54的可寻址存储位置移至易失性数据60。一旦该邻接块被建立,控制器52就如框160所述擦除该块。随后,控制器52更新(框170)空白池表66。
无论控制器52是否补充空白池20,控制器52随后都依据方法150,从空白池20中检索(框174)下一个物理地址(来代替当前物理地址)并递增(框178)顺序计数器。在结合图8讨论的实施例中假设使用全局顺序计数器。然而,如上所述,根据本发明的其他实施例,可将一个单独的本地顺序计数器用于每一个逻辑地址。
控制器52随后将内容和元数据(包括序号和逻辑地址)写入(框180)这一新物理地址。随后,控制器52更新(框182)L2P表62,用以将这一新物理地址映射至或分配给该逻辑地址。
为了在掉电后重构L2P表62,控制器52使用临时表190,在图9中描述了该临时表190的一个示例性实施。表190包括N个二元组条目192(作为示例描绘的条目1921,1922...192Q),每一条目都与一特定逻辑地址相关联。于是,控制器52可出于查找一特定条目192的目的来使用逻辑地址指针197。根据本发明的某些实施例,每个条目192包括为该逻辑地址指示一物理地址的字段194以及指示迄今为止已被找出的最后(和最大)序号的字段196。因此,控制器52在其(在掉电之后)扫描通过非易失性存储器54时更新条目192,从而在该扫描结束时,每个条目192都为各自的逻辑地址指示最近用过的物理地址(即,该物理地址具有最高的序号)。
作为表190使用的一个更为具体的示例,根据本发明的某些实施例,控制器52一般执行如图10所示的方法200。依照方法200,控制器52初始化(202)表190。例如,这一初始化可以包括在与物理地址或最后序号不相对应的(表190的)每个条目192中存储值(诸如,“-1”),以指示条目192的初始化状态。控制器52随后从非易失性存储器54的下一物理地址中读取(框204)元数据。如果该元数据指示存储内容无效,控制器52于是就判定(菱形框208)是否有另一物理地址要被处理,如果是,则返回框204。根据本发明的某些实施例,空白池和用过池的重构也可以在同一遍中完成。
如果控制器52判定(菱形框206)内容数据有效,控制器52于是就为与该物理地址相关联的特定逻辑地址从表190中检索(框210)最后序号条目。于是,该逻辑地址的指示就被存储在非易失性存储器54的存储位置内。如果控制器52判定(菱形框214)序号有效(即,控制器52判定序号不是初始化的值),控制器52于是就判定(菱形框216)当前序号是否是该逻辑地址迄今为止最大的序号。如果不是,则控制返回至菱形框208。否则,用于该逻辑地址的最后物理地址(诸如迄今为止在扫描中指示的那样)已被定位,并且控制器52在先前物理地址处写入元数据(框220)以指示相应的内容数据是“用过的”。随后,控制器52为该相对应的逻辑地址更新(框222)表190的字段194和196(参见图9)。控制随后行进至菱形框208,在其中控制器52判定是否要处理另一物理地址。如果不是,则控制器52就已完成该扫描,并且表190已被构造。注意到表190的缺少的条目196(参见图9)组成了重构的L2P表62。于是,根据本发明的某些实施例,控制器52可以在重构L2P表62的扫描完结时提取数据194。
存储器系统50(参见图2)可以在各种不同的应用中使用,于是本发明的许多不同实施例都是可能的并且在所附权利要求的范围内。例如,根据本发明的某些实施例,存储器系统50可以是固态磁盘,而在本发明的其他实施例中,存储器系统50可以是磁盘高速缓存或在用于多个磁盘或RAID卷的高速缓存。图11描绘了结合有存储器系统50的计算机体系结构250的一个示例性实施例。计算机体系结构250例如可用于台式或膝上型计算机。
计算机系统250包括耦合至系统总线256的处理器252(例如,一个或多个微处理器)。计算机系统250还可包括北桥或存储器集线器260,其耦合至系统总线256以建立处理器252与诸如动态随机存取存储器(DRAM)60之类的系统存储器之间的通信。根据本发明的某些实施例,DRAM 60是易失性存储器60的一个实施例,虽然在本发明的其他实施例中也可以使用其他的易失性存储器。DRAM 60可以经由存储器总线262耦合至存储器集线器260。在本发明的某些实施例中,存储器集线器260可以包括控制器52,虽然在本发明的其他实施例中,控制器52可以与存储器集线器260分开。
如图11所示,根据本发明的某些实施例,非易失性存储器可以是NAND闪存,虽然根据本发明的其他实施例也可在此处使用其他类型的非易失性存储器。例如,在本发明的其他实施例中,可以使用铁电聚合体存储器(ferro-electric polymermemory)来代替NAND闪存。
在本发明的某些实施例中,存储器集线器260可将诸如可以是外围元件互连(PCI)总线272和加速图形端口(AGP)总线270之类的其他总线接口至系统总线256。PCI规范可以从俄勒冈97214波特兰的PCI特殊利益集团(PCI SpecialInterest Group)获取。AGP在由加利福尼亚州圣克拉拉市的英特尔(Intel)公司于1996年7月31日出版的加速图形端口接口规范,版本1.0(Accelerated Graphics PortInterface Specification,Revision 1.0)中有详细描述。PCI总线272例如可将网络接口卡(NIC)273耦合至PCI总线272;而AGP总线270则例如可将驱动显示器277的显示器驱动器275耦合至系统总线256。
如图11所示,根据本发明的某些实施例,存储器集线器260可以耦合至南桥或输入/输出(I/O)集线器280。I/O集线器280例如可以提供对CD-ROM驱动器290和硬盘驱动器292的接口。此外,I/O集线器280可以提供对I/O扩展总线282的接口。I/O控制器284可以耦合至I/O扩展总线282并接收来自鼠标286和键盘290的输入数据。
注意到在图11中所示的体系结构仅仅是出于示例的目的,因为其他的变化也是可能的并且在所附权利要求的范围内。
虽然已经就有限数量的实施例公开了本发明,但是从本公开中获益的本领域普通技术人员将会从中认识到各种修改和变化。所附权利要求旨在涵盖落入本发明真正精神和范围内的所有这些修改和变化。

Claims (29)

1.一种方法,包括:
执行多次写操作以在不同的物理存储位置内存储数据,每一个所述物理存储位置均与在所述物理存储位置之间共同共享的一逻辑地址相关联;以及
在所述物理存储位置内存储顺序信息以指示所述写操作的哪一次最后出现。
2.如权利要求1所述的方法,其特征在于,所述顺序信息包括全局序号、本地序号和时间戳之一。
3.如权利要求1所述的方法,其特征在于,还包括:
在所述物理存储位置内存储所述逻辑地址以指示所述写操作的哪一次最后出现。
4.如权利要求1所述的方法,其特征在于,每个所述物理存储位置均存储有关所述逻辑地址的数据的不同版本。
5.如权利要求1所述的方法,其特征在于,还包括:
在每个所述物理存储位置内均存储所述逻辑地址的指示。
6.如权利要求1所述的方法,其特征在于,所述物理存储位置是非易失性存储器的一部分,所述方法还包括:
响应于每一次所述写操作,更新易失性存储器中的状态信息以指示所述物理存储位置的哪一个存储有效数据。
7.如权利要求1所述的方法,其特征在于,所述物理存储位置是非易失性存储器的一部分,所述方法还包括:
响应于每一次所述写操作,更新逻辑-物理地址转换表,所述逻辑-物理地址转换表指示所述逻辑地址和所述物理存储位置之一之间的映射。
8.如权利要求7所述的方法,其特征在于,还包括:
在块擦除操作中擦除所述被指示的物理存储位置。
9.如权利要求1所述的方法,其特征在于,还包括:
响应于掉电,使用所述顺序信息来重构指示所述逻辑地址和所述物理存储位置之一之间映射的逻辑-物理转换表。
10.如权利要求1所述的方法,其特征在于,还包括:
响应于掉电,使用所述顺序信息来判定所述物理存储位置的哪些没有存储有关所述逻辑地址的有效数据。
11.如权利要求1所述的方法,其特征在于,还包括:
响应于掉电,使用所述顺序信息判定所述物理存储位置的哪些处于空白状态以及所述物理存储位置的哪些是用过的。
12.一种装置,包括:
非易失性存储器;以及
耦合至所述存储器的控制器,用于:
执行多次写操作以在所述非易失性存储器的不同的物理存储位置内存储数据,每一个所述物理存储位置均与在所述物理存储位置之间共同共享的一逻辑地址相关联;以及
在所述物理存储位置内存储顺序信息以指示所述写操作的哪一次最后出现。
13.如权利要求12所述的装置,其特征在于,所述顺序信息包括全局序号、本地序号和时间戳之一。
14.如权利要求12所述的装置,其特征在于,所述控制器在所述物理存储位置内存储所述逻辑地址。
15.如权利要求12所述的装置,其特征在于,每个所述物理存储位置均存储有关所述逻辑地址的数据的不同版本。
16.如权利要求12所述的装置,其特征在于,所述控制器在每个所述物理存储位置内均存储所述逻辑地址的指示。
17.如权利要求16所述的装置,其特征在于,还包括:
易失性存储器,其中
所述控制器响应于每一次所述写操作,更新易失性存储器中的状态信息以指示所述物理存储位置的哪一个存储有效数据。
18.如权利要求16所述的装置,其特征在于,还包括:
易失性存储器,其中
所述控制器响应于每一次所述写操作,更新指示所述逻辑地址和所述物理存储位置之一之间映射的逻辑-物理地址转换表。
19.如权利要求12所述的装置,其特征在于,所述控制器响应于掉电,使用所述顺序信息来重构指示所述逻辑地址和所述物理存储位置之一之间映射的逻辑-物理转换表。
20.一种系统,包括:
非易失性存储器;
动态随机存取存储器;以及
控制器,用于:
使用存储在所述动态随机存取存储器内的逻辑-物理地址转换表来执行多次写操作以在所述非易失性存储器的不同的物理存储位置内存储数据,每一个所述物理存储位置均与在所述物理存储位置之间共同共享的一逻辑地址相关联,以及
在所述物理存储位置内存储顺序信息以指示所述写操作的哪一次最后出现。
21.如权利要求20所述的系统,其特征在于,所述控制器响应于掉电,使用所述顺序信息来重构所述逻辑-物理地址转换表。
22.如权利要求20所述的系统,其特征在于,所述控制器响应于掉电,使用所述顺序信息来判定所述物理存储位置的哪些没有存储有关所述逻辑地址的有效数据。
23.一种包括存储指令的计算机可访问存储介质的物品,当所述指令被执行时,使得所述计算机:
执行多次写操作以在不同的物理存储位置内存储数据,每一个所述物理存储位置均与在所述物理存储位置之间共同共享的一逻辑地址相关联;以及
在所述物理存储位置内存储顺序信息以指示所述写操作的哪一次最后出现。
24.如权利要求23所述的物品,其特征在于,所述存储介质存储指令用于在所述指令被执行时使得所述计算机在每个所述物理存储位置内均存储所述逻辑地址的指示。
25.如权利要求23所述的物品,其特征在于,所述存储介质存储指令用于在所述指令被执行时使得所述计算机响应于每一次所述写操作,更新易失性存储器中的状态信息以指示所述物理存储位置的哪一个当前正与所述逻辑地址相关联。
26.如权利要求23所述的物品,其特征在于,所述物理存储位置是非易失性存储器的一部分,所述存储介质存储指令用于在所述指令被执行时使得所述计算机响应于每一次所述写操作,更新指示所述逻辑地址和所述物理存储位置之一之间映射的逻辑-物理地址转换表。
27.如权利要求23所述的物品,其特征在于,所述存储介质存储指令用于在所述指令被执行时使得所述计算机响应于掉电,使用所述序号来重构指示所述逻辑地址和所述物理存储位置之一之间映射的逻辑-物理转换表。
28.如权利要求23所述的物品,其特征在于,所述存储介质存储指令用于在所述指令被执行时使得所述计算机响应于掉电,使用所述顺序信息来判定所述物理存储位置的哪些没有存储有关所述逻辑地址的有效数据。
29.如权利要求23所述的物品,其特征在于,所述存储介质存储指令用于在所述指令被执行时使得所述计算机响应于掉电,使用所述序号来判定所述物理存储位置的哪些被擦除。
CN2006800232642A 2005-06-30 2006-06-30 写入非易失性存储器的技术 Expired - Fee Related CN101208669B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/172,608 US7797479B2 (en) 2005-06-30 2005-06-30 Technique to write to a non-volatile memory
US11/172,608 2005-06-30
PCT/US2006/026025 WO2007005859A1 (en) 2005-06-30 2006-06-30 Technique to write to a non-volatile memory

Publications (2)

Publication Number Publication Date
CN101208669A true CN101208669A (zh) 2008-06-25
CN101208669B CN101208669B (zh) 2011-11-09

Family

ID=37081586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800232642A Expired - Fee Related CN101208669B (zh) 2005-06-30 2006-06-30 写入非易失性存储器的技术

Country Status (5)

Country Link
US (1) US7797479B2 (zh)
CN (1) CN101208669B (zh)
DE (1) DE112006001636T5 (zh)
GB (1) GB2442162B (zh)
WO (1) WO2007005859A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012048444A1 (en) * 2010-10-14 2012-04-19 Freescale Semiconductor, Inc. Are Memory controller and method for accessing a plurality of non-volatile memory arrays
CN102736981A (zh) * 2011-04-08 2012-10-17 航天信息股份有限公司 提高nor flash擦写寿命的方法
CN103514104A (zh) * 2012-06-27 2014-01-15 安凯(广州)微电子技术有限公司 读取数据方法以及数据写入方法
CN103999038A (zh) * 2011-12-28 2014-08-20 英特尔公司 用于在易失性存储器与非易失性存储器之间分布代码和数据存储的方法和设备
CN105009096A (zh) * 2013-03-18 2015-10-28 富士通天株式会社 数据存储装置、数据的存储方法以及车载用控制装置
CN105279102A (zh) * 2014-06-03 2016-01-27 爱思开海力士有限公司 用于控制非易失性存储器的控制器和包括其的半导体器件
CN105512047A (zh) * 2014-09-26 2016-04-20 上海东软载波微电子有限公司 Flash闪存的写操作、擦除操作方法及装置
CN105653966A (zh) * 2016-03-03 2016-06-08 山东超越数控电子有限公司 一种自主可信的云数据存储方法
CN108108413A (zh) * 2017-12-12 2018-06-01 宁波三星医疗电气股份有限公司 一种基于存储数据自动生成数据指针的方法及系统
CN111176579A (zh) * 2019-12-30 2020-05-19 航天信息股份有限公司 使用norflash模拟eeprom的方法

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286198B2 (en) * 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US7565498B1 (en) * 2005-11-07 2009-07-21 Symantec Operating Corporation System and method for maintaining write order fidelity in a distributed environment
US7644251B2 (en) * 2005-12-19 2010-01-05 Sigmatel, Inc. Non-volatile solid-state memory controller
US7882086B1 (en) * 2005-12-21 2011-02-01 Network Appliance, Inc. Method and system for portset data management
WO2008070191A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US8380944B2 (en) * 2007-03-01 2013-02-19 Douglas Dumitru Fast block device and methodology
JP4535117B2 (ja) * 2007-11-06 2010-09-01 ソニー株式会社 メモリ装置、メモリ管理方法、およびプログラム
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8566505B2 (en) * 2008-04-15 2013-10-22 SMART Storage Systems, Inc. Flash management using sequential techniques
US8028123B2 (en) * 2008-04-15 2011-09-27 SMART Modular Technologies (AZ) , Inc. Circular wear leveling
US20090259806A1 (en) * 2008-04-15 2009-10-15 Adtron, Inc. Flash management using bad page tracking and high defect flash memory
US8180954B2 (en) * 2008-04-15 2012-05-15 SMART Storage Systems, Inc. Flash management using logical page size
US8185778B2 (en) * 2008-04-15 2012-05-22 SMART Storage Systems, Inc. Flash management using separate metadata storage
US8171205B2 (en) * 2008-05-05 2012-05-01 Intel Corporation Wrap-around sequence numbers for recovering from power-fall in non-volatile memory
US8621144B2 (en) * 2008-06-26 2013-12-31 Intel Corporation Accelerated resume from hibernation in a cached disk system
US9141475B2 (en) * 2008-11-23 2015-09-22 Sandisk Technologies Methods for tag-grouping of blocks in storage devices
US8849856B2 (en) * 2008-12-16 2014-09-30 Sandisk Il Ltd. Discardable files
US9104686B2 (en) 2008-12-16 2015-08-11 Sandisk Technologies Inc. System and method for host management of discardable objects
US9020993B2 (en) 2008-12-16 2015-04-28 Sandisk Il Ltd. Download management of discardable files
US9015209B2 (en) 2008-12-16 2015-04-21 Sandisk Il Ltd. Download management of discardable files
US7925925B2 (en) 2008-12-30 2011-04-12 Intel Corporation Delta checkpoints for a non-volatile memory indirection table
US20100235473A1 (en) * 2009-03-10 2010-09-16 Sandisk Il Ltd. System and method of embedding second content in first content
US8195891B2 (en) 2009-03-30 2012-06-05 Intel Corporation Techniques to perform power fail-safe caching without atomic metadata
US8612666B2 (en) * 2009-06-30 2013-12-17 Intel Corporation Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory
TWI433157B (zh) * 2009-09-04 2014-04-01 Silicon Motion Inc 存取快閃記憶體的方法以及相關之記憶裝置
US8296506B2 (en) * 2009-11-09 2012-10-23 Lite-On It Corporation Method for managing a non-violate memory and computer readable medium thereof
US8285918B2 (en) 2009-12-11 2012-10-09 Nimble Storage, Inc. Flash memory cache for data storage device
US20110302224A1 (en) * 2010-06-08 2011-12-08 Rahav Yairi Data storage device with preloaded content
US8549229B2 (en) 2010-08-19 2013-10-01 Sandisk Il Ltd. Systems and methods for managing an upload of files in a shared cache storage system
US8463802B2 (en) 2010-08-19 2013-06-11 Sandisk Il Ltd. Card-based management of discardable files
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US8788849B2 (en) 2011-02-28 2014-07-22 Sandisk Technologies Inc. Method and apparatus for protecting cached streams
US9361044B2 (en) 2011-03-28 2016-06-07 Western Digital Technologies, Inc. Power-safe data management system
US8607089B2 (en) 2011-05-19 2013-12-10 Intel Corporation Interface for storage device access over memory bus
EP2761472B1 (en) 2011-09-30 2020-04-01 Intel Corporation Memory channel that supports near memory and far memory access
CN103946813B (zh) 2011-09-30 2017-08-25 英特尔公司 基于使用统计量追踪的远存储器访问信号的生成
CN103106143B (zh) * 2011-11-11 2016-01-13 光宝科技股份有限公司 固态储存装置及其逻辑至实体对应表建立方法
US9202548B2 (en) 2011-12-22 2015-12-01 Intel Corporation Efficient PCMS refresh mechanism
US20140052897A1 (en) * 2012-08-17 2014-02-20 Seagate Technology Llc Dynamic formation of garbage collection units in a memory
US9047172B2 (en) 2012-11-29 2015-06-02 Intel Corporation Adaptive power control of memory map storage devices
US9606910B2 (en) * 2013-01-17 2017-03-28 Hitachi, Ltd. Method and apparatus for data reduction
US9122587B2 (en) * 2013-03-06 2015-09-01 Seagate Technology Llc Self recovery in a solid state drive
DE102013019941A1 (de) * 2013-11-27 2015-05-28 Giesecke & Devrient Gmbh Verfahren zum Betreiben eines Speichersystems sowie ein solches Speichersystem
CN103761190B (zh) * 2013-12-19 2017-01-11 华为技术有限公司 数据处理方法及装置
US8976609B1 (en) 2014-06-16 2015-03-10 Sandisk Enterprise Ip Llc Low-test memory stack for non-volatile storage
US9613715B2 (en) 2014-06-16 2017-04-04 Sandisk Technologies Llc Low-test memory stack for non-volatile storage
US9653184B2 (en) 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
KR20160003530A (ko) * 2014-07-01 2016-01-11 삼성전자주식회사 내장 저장 장치, 이와 통신 가능한 외장 저장 장치, 및 이를 포함하는 데이터 처리 시스템
US20160162416A1 (en) * 2014-12-08 2016-06-09 Intel Corporation Apparatus and Method for Reducing Latency Between Host and a Storage Device
US9436392B1 (en) 2015-02-17 2016-09-06 Nimble Storage, Inc. Access-based eviction of blocks from solid state drive cache memory
US9817576B2 (en) * 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US9570159B1 (en) 2015-10-15 2017-02-14 Intel Corporation Methods and apparatus to preserve data of a solid state drive during a power loss event
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
US10037164B1 (en) 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10331561B1 (en) * 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index
US10055351B1 (en) 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache
US10261704B1 (en) 2016-06-29 2019-04-16 EMC IP Holding Company LLC Linked lists in flash memory
US10642743B2 (en) * 2017-06-28 2020-05-05 Arm Limited Apparatus and method of handling caching of persistent data
US11113007B2 (en) * 2019-05-13 2021-09-07 Micron Technology, Inc. Partial execution of a write command from a host system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2251323B (en) 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
US5566314A (en) 1993-08-30 1996-10-15 Lucent Technologies Inc. Flash memory device employing unused cell arrays to update files
CN1573806B (zh) * 1996-06-28 2013-06-19 索尼株式会社 信息处理装置
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP3692313B2 (ja) * 2001-06-28 2005-09-07 松下電器産業株式会社 不揮発性メモリの制御方法
KR100449708B1 (ko) 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
US7533214B2 (en) 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012048444A1 (en) * 2010-10-14 2012-04-19 Freescale Semiconductor, Inc. Are Memory controller and method for accessing a plurality of non-volatile memory arrays
CN102736981B (zh) * 2011-04-08 2016-02-03 航天信息股份有限公司 提高nor flash擦写寿命的方法
CN102736981A (zh) * 2011-04-08 2012-10-17 航天信息股份有限公司 提高nor flash擦写寿命的方法
CN103999038A (zh) * 2011-12-28 2014-08-20 英特尔公司 用于在易失性存储器与非易失性存储器之间分布代码和数据存储的方法和设备
CN103999038B (zh) * 2011-12-28 2017-05-10 英特尔公司 用于在易失性存储器与非易失性存储器之间分布代码和数据存储的方法和设备
CN103514104A (zh) * 2012-06-27 2014-01-15 安凯(广州)微电子技术有限公司 读取数据方法以及数据写入方法
CN103514104B (zh) * 2012-06-27 2016-08-03 安凯(广州)微电子技术有限公司 读取数据方法以及数据写入方法
CN105009096A (zh) * 2013-03-18 2015-10-28 富士通天株式会社 数据存储装置、数据的存储方法以及车载用控制装置
CN105009096B (zh) * 2013-03-18 2017-11-14 富士通天株式会社 数据存储装置、数据的存储方法以及车载用控制装置
CN105279102A (zh) * 2014-06-03 2016-01-27 爱思开海力士有限公司 用于控制非易失性存储器的控制器和包括其的半导体器件
CN105279102B (zh) * 2014-06-03 2019-05-28 爱思开海力士有限公司 用于控制非易失性存储器的控制器和包括其的半导体器件
CN105512047B (zh) * 2014-09-26 2018-08-28 上海东软载波微电子有限公司 Flash闪存的写操作、擦除操作方法及装置
CN105512047A (zh) * 2014-09-26 2016-04-20 上海东软载波微电子有限公司 Flash闪存的写操作、擦除操作方法及装置
CN105653966A (zh) * 2016-03-03 2016-06-08 山东超越数控电子有限公司 一种自主可信的云数据存储方法
CN108108413A (zh) * 2017-12-12 2018-06-01 宁波三星医疗电气股份有限公司 一种基于存储数据自动生成数据指针的方法及系统
CN108108413B (zh) * 2017-12-12 2022-04-26 宁波三星医疗电气股份有限公司 一种基于存储数据自动生成数据指针的方法及系统
CN111176579A (zh) * 2019-12-30 2020-05-19 航天信息股份有限公司 使用norflash模拟eeprom的方法
CN111176579B (zh) * 2019-12-30 2023-05-30 航天信息股份有限公司 使用norflash模拟eeprom的方法

Also Published As

Publication number Publication date
CN101208669B (zh) 2011-11-09
US20070005928A1 (en) 2007-01-04
WO2007005859A1 (en) 2007-01-11
US7797479B2 (en) 2010-09-14
GB2442162A (en) 2008-03-26
GB2442162B (en) 2010-09-15
GB0724745D0 (en) 2008-01-30
DE112006001636T5 (de) 2008-05-08

Similar Documents

Publication Publication Date Title
CN101208669B (zh) 写入非易失性存储器的技术
CN101300554B (zh) 非易失性存储器故障的恢复
CN101937319B (zh) 存储器系统及其映射方法
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US9329995B2 (en) Memory device and operating method thereof
TWI578157B (zh) 用於記憶體陣列中之平均抹寫之方法及設備
US7529879B2 (en) Incremental merge methods and memory systems using the same
US7130962B2 (en) Writing cache lines on a disk drive
US20070094445A1 (en) Method to enable fast disk caching and efficient operations on solid state disks
TWI385667B (zh) 用於快閃記憶體的資料管理方法、儲存系統與控制器
CN102054533A (zh) 隔离顺序、随机和系统数据以减少垃圾回收的针对基于页映射的非易失性半导体存储器
US20100235568A1 (en) Storage device using non-volatile memory
TW200406771A (en) Wear leveling in non-volatile storage systems
KR20170087043A (ko) 저속 메모리를 이용하여 페이지 리맵핑 방식으로 바이트 어드레스 지정 능력 및 근-dram 성능을 달성하는 메커니즘
WO2013100935A1 (en) A method and device to augment volatile memory in a graphics subsystem with non-volatile memory
US8892816B1 (en) System and method for writing data to a memory
US8555086B2 (en) Encrypting data on a non-volatile memory
US11334272B2 (en) Memory system and operating method thereof
CN101901189A (zh) 更新用户数据的方法以及恢复用户数据的方法
CN111352866A (zh) 用于管理存储器突发存取的方法和系统
US20210209017A1 (en) Using a common pool of blocks for user data and a system data structure
CN101625661B (zh) 用于闪存的数据管理方法、储存系统与控制器
CN102880553A (zh) 一种基于mcu的片外flash文件系统的读写方法
US11100005B2 (en) Logical-to-physical (L2P) table sharping strategy
TWI457941B (zh) 區塊為基礎快閃記憶體之位元組存取的方法與裝置

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111109

Termination date: 20180630

CF01 Termination of patent right due to non-payment of annual fee