CN109783009B - 存储器***及其操作方法 - Google Patents

存储器***及其操作方法 Download PDF

Info

Publication number
CN109783009B
CN109783009B CN201811063250.4A CN201811063250A CN109783009B CN 109783009 B CN109783009 B CN 109783009B CN 201811063250 A CN201811063250 A CN 201811063250A CN 109783009 B CN109783009 B CN 109783009B
Authority
CN
China
Prior art keywords
meta
slice
memory
slices
log
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.)
Active
Application number
CN201811063250.4A
Other languages
English (en)
Other versions
CN109783009A (zh
Inventor
河炳旻
姜芝娟
宋海龙
尹荣美
崔珉景
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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN109783009A publication Critical patent/CN109783009A/zh
Application granted granted Critical
Publication of CN109783009B publication Critical patent/CN109783009B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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 sector programmable memories, e.g. flash disk
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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/7207Details relating to flash memory management management of metadata or control data
    • 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)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供了一种存储器***及其操作方法。存储器***包括:缓冲存储器,存储构成元数据的多个元切片;以及存储器控制器,将存储在缓冲存储器中的多个元切片之中的、被更新的元切片标记为脏元切片,生成包括与脏元切片对应的更新信息的日志数据,并且将日志数据与脏元切片中的一个一起清除到非易失性存储器装置。

Description

存储器***及其操作方法
相关申请的交叉引用
本申请要求于2017年11月13日提交的申请号为10-2017-0150761的韩国专利申请的优先权,其全部内容通过引用并入本文。
技术领域
本发明的各个实施例涉及一种存储器***及其操作方法,且更特别地,涉及一种被配置成在重建元数据时减少执行日志重放(journal replay)操作所耗费的时间的存储器***及其操作方法。
背景技术
非易失性存储器装置可包括多个存储块。进一步地,存储块中的每一个可包括多个存储器单元,并且可对包括在一个存储块中的存储器单元同时执行擦除操作。
当存储器***接收到来自主机的写入命令和逻辑地址时,存储器***可分配对应于逻辑地址的物理地址,并将数据写入到对应于物理地址的存储器区域中。
存储器***可将地址映射信息临时存储在缓冲存储器中,并将临时存储在缓冲存储器中的地址映射信息清除(flush)到非易失性存储器装置。另外,当通电时,存储器***可将存储在非易失性存储器装置中的地址映射信息重新加载到缓冲存储器。
发明内容
各个实施例涉及一种存储器***及其操作方法,该存储器***被配置成,在重建元数据时,通过使用元切片映射来减少执行日志重放操作所耗费的时间。根据各个实施例,存储器***及其操作方法可高效地管理元数据。
根据实施例,存储器***可包括:缓冲存储器,存储构成元数据的多个元切片(meta-slice);以及存储器控制器,将存储在缓冲存储器中的多个元切片之中的、被更新的元切片标记为脏元切片(dirty meta-slice),生成包括与脏元切片对应的更新信息的日志数据,并且将日志数据与脏元切片中的一个一起清除到非易失性存储器装置。
根据实施例,存储器***可包括:非易失性存储器装置,构成元数据的多个元切片中的脏元切片、包括与脏元切片对应的更新信息的日志条目(journal entry)、以及包括与脏元切片有关的索引信息的日志重放上下文(journal replay context)被清除到该非易失性存储器装置;缓冲存储器,存储从非易失性存储器装置加载的信息;以及存储器控制器,将日志重放上下文加载到缓冲存储器中,并通过反映关于以下的信息来重建被加载到缓冲存储器中的日志重放上下文:脏元切片之中的、在将日志重放上下文清除之后被清除的脏元切片。
根据实施例,操作存储器***的方法可包括:将构成元数据的多个元切片加载到缓冲存储器中;将多个元切片之中的、被更新的元切片标记为脏元切片;生成包括与脏元切片中的至少一个对应的更新信息的日志条目;每当生成一个日志条目时,在被加载到缓冲存储器中的多个元切片中搜索脏元切片中的一个并将该一个日志条目与所找到的脏元切片一起清除到非易失性存储器装置;更新包括与物理地址有关的信息的元切片映射,该物理地址存储与日志条目一起被清除的脏元切片;更新包括与脏元切片有关的索引信息的日志重放上下文,该脏元切片与日志条目一起被清除;并且将更新的元切片映射和更新的日志重放上下文清除到非易失性存储器装置。
附图说明
图1是示出根据实施例的被可操作地联接到主机的存储器***的示图;
图2是示出图1所示的存储器***的存储器控制器的示例性配置的示图;
图3是示出根据实施例的存储器***的示图;
图4是示出图1所示的存储器***的非易失性存储器装置的示例性配置的示图;
图5是示出图4所示的存储器装置的多个存储块中的一个的示例的电路图;
图6是示出超级块的示图;
图7是示出条带(stripe)的示图;
图8是示出根据实施例的元数据管理方法的示图;
图9是示出根据实施例的元数据清除操作的示图;
图10是示出根据实施例的日志重放操作的示图;
图11至图16是示出根据实施例的元数据管理方法和元数据清除操作的示图;
图17是示出根据实施例的管理元数据的方法的流程图;
图18和图19是示出根据实施例的日志重放操作的示图;
图20是示出根据实施例的日志重放操作的流程图;
图21是示出存储器***的实施例的示图;
图22是示出存储器***的实施例的示图;
图23是示出存储器***的实施例的示图;以及
图24是示出存储器***的实施例的示图。
具体实施方式
在下文中,将参照附图详细描述本发明的各个示例性实施例。在附图中,为便于说明,可能夸大了部件的厚度和长度。在下面的描述中,为了简单和简明,可省略对有关的、公知的功能和结构的详细描述。在整个说明书和附图中,相同的附图标记表示相同的元件。
还应注意的是,在本说明书中,“连接/联接”不仅指一个部件直接地联接另一部件,而且还指通过中间部件间接地联接另一部件。此外,在整个说明书中,术语“包括”与术语“包含”可互换使用,因此,当说明元件“包括”另一元件(零件、步骤、部件、特征等)时,不排除存在另外的元件。
在以下描述中,为了提供本发明的彻底理解,阐述了许多具体细节。可以在没有一些或全部这些具体细节的情况下实施本发明。在其它情况下,为了不使本发明不必要模糊,未详细地描述公知的进程结构和/或进程。
还应注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用。
图1是示出根据实施例的存储器***的示图。
参照图1,存储器***1000可包括:即使在没有电力供应的情况下也不会丢失所存储的数据的非易失性存储器装置1100、临时存储数据的缓冲存储器装置1300、以及响应于主机2000的控制来控制非易失性存储器装置1100和缓冲存储器装置1300的存储器控制器1200,其中主机2000被可操作地联接到存储器***1000。
主机2000可使用诸如以下的各种通信方法中的至少一种来与存储器***1000通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机***接口(SCSI)、***组件互连(PCI)、PCI高速(PCIe)、非易失性存储器高速(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)。
存储器控制器1200可控制存储器***1000的一般操作,并且控制主机2000与非易失性存储器装置1100之间的数据交换。例如,存储器控制器1200可响应于来自主机2000的请求来控制非易失性存储器装置1100编程或读取数据。另外,存储器控制器1200可存储与非易失性存储器装置1100中包括的主存储块和子存储块有关的信息,并且选择非易失性存储器装置1100,以根据为编程操作而加载的数据量来对主存储块或子存储块执行编程操作。根据实施例,非易失性存储器装置1100可包括闪速存储器。
存储器控制器1200可控制主机与缓冲存储器装置1300之间的数据交换,或者将用于控制非易失性存储器装置1100的***数据临时存储在缓冲存储器装置1300中。缓冲存储器装置1300可用作存储器控制器1200的操作存储器、高速缓冲存储器或缓冲存储器。缓冲存储器装置1300可存储由存储器控制器1200执行的代码和命令。缓冲存储器装置1300可存储由存储器控制器1200处理的数据。
存储器控制器1200可将从主机2000接收到的数据临时存储在缓冲存储器装置1300中,并将临时存储在缓冲存储器装置1300中的数据传输到非易失性存储器装置1100,使得数据可被存储在非易失性存储器装置1100中。另外,存储器控制器1200可从主机2000接收数据和逻辑地址,并将逻辑地址转换成指示实际存储数据的区域的物理地址。另外,存储器控制器1200可将配置逻辑地址与物理地址之间的映射关系的逻辑到物理地址映射表存储在缓冲存储器装置1300中。
根据实施例,缓冲存储器装置1300可包括双倍数据速率同步动态随机存取存储器(DDR SDRAM)、双倍数据速率4(DDR4)SDRAM、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)或Rambus动态随机存取存储器(RDRAM)。
根据实施例,存储器***1000可不包括缓冲存储器装置1300。
图2是示出图1所示的存储器控制器的示例性配置的框图。
参照图2,存储器控制器1200可包括处理器710、存储器缓冲器720、错误校正码(ECC)块730、主机接口740、缓冲器控制电路750、非易失性存储器装置接口760、数据随机化发生器770、缓冲存储器装置接口780和总线790。
总线790可提供存储器控制器1200的各个部件之间的信道。
处理器710可控制存储器控制器1200的全部操作并且执行逻辑操作。处理器710可通过主机接口740与主机2000通信,并且还通过非易失性存储器装置接口760与非易失性存储器装置1100通信。进一步地,处理器710可通过缓冲存储器装置接口780与缓冲存储器装置1300通信。进一步地,处理器710可通过缓冲器控制电路750来控制存储器缓冲器720。处理器710可通过将存储器缓冲器720用作操作存储器、高速缓冲存储器或缓冲存储器来控制存储器***1000的操作。
处理器710可对从主机2000输入的多个命令进行排队。该操作被称为多队列。处理器710可将排队的多个命令顺序地传输到非易失性存储器装置1100。
存储器缓冲器720可用作处理器710的操作存储器、高速缓冲存储器或缓冲存储器。存储器缓冲器720可存储由处理器710执行的代码和命令。存储器缓冲器720可存储由处理器710处理的数据。存储器缓冲器720可包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC块730可执行错误校正。ECC块730可基于待通过非易失性存储器装置接口760被写入到非易失性存储器装置1100的数据,执行ECC编码。经ECC编码的数据可通过非易失性存储器装置接口760传输到非易失性存储器装置1100。ECC块730可基于通过非易失性存储器装置接口760从非易失性存储器装置1100接收到的数据,执行ECC解码。在示例中,ECC块730可作为非易失性存储器装置接口760的部件中的一个而被包括在非易失性存储器装置接口760中。
主机接口740可被配置成响应于处理器710的控制而与外部主机2000通信。主机接口740可使用诸如以下的各种通信方法中的至少一种来与主机2000通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机***接口(SCSI)、***组件互连(PCI)、PCI高速(PCIe)、非易失性存储器高速(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)通信方法。
缓冲器控制电路750可在处理器710的控制下控制存储器缓冲器720。
非易失性存储器装置接口760可在处理器710的控制下与非易失性存储器装置1100通信。非易失性存储器装置接口760可通过一个或多个信道向/从非易失性存储器装置1100传输/接收命令、地址和数据。
在实施例中,存储器控制器1200可不包括存储器缓冲器720和缓冲器控制电路750。例如,处理器710可使用代码来控制存储器控制器1200的操作。处理器710可从设置在存储器控制器1200中的非易失性存储器装置(例如,只读存储器)加载代码。在另一示例中,处理器710可通过非易失性存储器装置接口760从非易失性存储器装置1100加载代码。
数据随机化发生器770可对数据进行随机化或对经随机化的数据进行去随机化。数据随机化发生器770可对待通过非易失性存储器装置接口760而被写入到非易失性存储器装置1100的数据执行数据随机化。经随机化的数据可通过非易失性存储器装置接口760传输到非易失性存储器装置1100。数据随机化发生器770可对通过非易失性存储器装置接口760而从非易失性存储器装置1100接收到的数据执行数据去随机化。在实施例中,数据随机化发生器770可作为非易失性存储器装置接口760的部件中的一个而被包括在非易失性存储器装置接口760中。
例如,存储器控制器1200的总线790可被划分成控制总线和数据总线。数据总线可被配置成在存储器控制器1200中传输数据,并且控制总线可被配置成在存储器控制器1200中传输诸如命令或地址的控制信息。数据总线和控制总线可彼此隔离,并且可既不互相干扰也不互相影响。数据总线可联接到主机接口740、缓冲器控制电路750、ECC块730、非易失性存储器装置接口760和缓冲存储器装置接口780。控制总线可联接到主机接口740、处理器710、缓冲器控制电路750、非易失性存储器装置接口760和缓冲存储器装置接口780。根据实施例,存储器控制器1200可不包括缓冲存储器装置接口780。
缓冲存储器装置接口780可在处理器710的控制下与缓冲存储器装置1300通信。缓冲存储器装置接口780可通过信道向/从缓冲存储器装置1300传输/接收命令、地址和数据。
存储器***1000可从主机2000接收写入命令、写入数据和逻辑地址。存储器***1000可响应于写入命令而分配非易失性存储器装置1100的、存储写入数据的物理存储空间,即存储块或页面。换言之,存储器***1000可响应于写入命令映射对应于逻辑地址的物理地址。物理地址可对应于非易失性存储器装置1100的、待存储从主机2000接收到的写入数据的物理存储空间。
存储器***1000可将上述逻辑地址与物理地址之间的映射信息,即逻辑到物理地址映射信息存储在非易失性存储器装置1100的存储块中。存储逻辑到物理地址映射信息的存储块可被称为***块。
当启动存储器***1000时,存储在非易失性存储器装置1100中的逻辑到物理地址映射信息可被加载到缓冲存储器装置1300或存储器缓冲器720。另外,存储器***1000可从非易失性存储器装置1100读取逻辑到物理地址映射信息,并将该信息存储在缓冲存储器装置1300或存储器缓冲器720中,以检查存储在非易失性存储器装置1100中的逻辑到物理地址映射信息。
在另一示例中,当存储器***1000从主机2000接收到写入命令、写入数据和逻辑地址时,存储器***1000可响应于写入命令而分配非易失性存储器装置1100的、存储写入数据的物理存储空间。换言之,存储器***1000可响应于写入命令来映射对应于逻辑地址的物理地址,并且可利用新生成的逻辑地址与物理地址之间的映射信息,即新生成的逻辑到物理地址映射信息来更新缓冲存储器装置1300或存储器缓冲器720。
然而,存储在非易失性存储器装置1100中的逻辑到物理地址映射信息和存储在缓冲存储器装置1300或存储器缓冲器720中的逻辑到物理地址映射信息之间可能存在差异。为了补偿上述差异,存储器***1000可将存储在缓冲存储器装置1300或存储器缓冲器720中的逻辑到物理地址映射信息清除到非易失性存储器装置1100。在上述清除操作期间,存储在非易失性存储器装置1100中的逻辑到物理地址映射信息可基于存储在缓冲存储器装置1300或存储器缓冲器720中的逻辑到物理地址映射信息被改变,使得存储在非易失性存储器装置1100中的逻辑到物理地址映射信息与存储在缓冲存储器装置1300或存储器缓冲器720中的逻辑到物理地址映射信息可彼此一致。
存储器***1000可从主机2000接收读取命令和逻辑地址。存储器***1000可从存储在非易失性存储器装置中的逻辑到物理地址映射信息检查对应于逻辑地址的物理地址,读取存储在与物理地址相对应的存储器区域中的数据,并且响应于读取命令将读取的数据输出到主机2000。
图3是示出根据实施例的存储器***的示图。图3示出了包括存储器控制器1200和通过多个信道CH1至CHk联接到存储器控制器1200的多个非易失性存储器装置1100的存储器***1000。
参照图3,存储器控制器1200可通过多个信道CH1至CHk与多个非易失性存储器装置1100通信。存储器控制器1200可包括多个信道接口1201,并且信道CH1至CHk中的每一个可联接到信道接口1201中的每一个。例如,第一信道CH1可联接到第一信道接口1201,第二信道CH2可联接到第二信道接口1201,并且第k信道CHk可联接到第k信道接口1201。信道CH1至CHk中的每一个可联接到一个或多个非易失性存储器装置1100。另外,联接到不同信道的非易失性存储器装置1100可彼此独立地操作。例如,联接到第一信道CH1的非易失性存储器装置1100和联接到第二信道CH2的非易失性存储器装置1100可彼此独立地操作。更具体地,存储器控制器1200可在通过第一信道CH1与联接到第一信道CH1的非易失性存储器装置1100交换数据或命令的同时,通过与第一信道CH1并行的第二信道CH2与联接到第二信道CH2的非易失性存储器装置1100交换数据或命令。
信道CH1至CHk中的每一个可联接到多个非易失性存储器装置1100。联接到信道中的每一个的多个非易失性存储器装置1100可分别构成不同的路。例如,N个非易失性存储器装置1100可联接到单个信道,并且各个非易失性存储器装置1100可配置不同的路。也就是说,第一至第N非易失性存储器装置1100可联接到第一信道CH1。第一非易失性存储器装置1100可配置第一路Way1,第二非易失性存储器装置1100可配置第二路Way2,并且第N非易失性存储器装置1100可配置第N路WayN。然而,与图2的配置相反,在实施例(未示出)中,两个或更多个非易失性存储器装置1100可构成单个路。
因为联接到第一信道CH1的第一至第N非易失性存储器装置1100共用第一信道CH1,所以这些存储器装置可顺序地而不是同时地,即并行地,与存储器控制器1200交换数据或命令。例如,当存储器控制器1200通过第一信道CH1向配置第一信道CH1的第一路Way1的第一非易失性存储器装置1100传输数据时,配置第一信道CH1的第二至第N路Way2至WayN的第二至第N非易失性存储器装置1100不能通过第一信道CH1与存储器控制器1200交换数据或命令。因此,当共用第一信道CH1的第一至第N非易失性存储器装置1100中的一个占用第一信道CH1时,联接到第一信道CH1的其它非易失性存储器装置1100不能使用第一信道CH1。
配置第一信道CH1的第一路Way1的第一非易失性存储器装置1100和配置第二信道CH2的第一路Way1的第一非易失性存储器装置1100可彼此独立地与存储器控制器1200通信。换言之,在存储器控制器1200通过第一信道CH1和第一信道接口1201与配置第一信道CH1的第一路Way1的第一非易失性存储器装置1100交换数据的同时,存储器控制器1200可通过第二信道CH2和第二信道接口1201与配置第二信道CH2的第一路Way1的第一非易失性存储器装置1100交换数据。
图4是示出图1所示的非易失性存储器装置的示例性配置的示图。
参照图4,非易失性存储器装置1100可包括用于将数据存储在其中的存储器单元阵列100。非易失性存储器装置1100可包括***电路200,其中***电路200被配置成执行以下操作中的至少一个:将数据存储在存储器单元阵列100中的编程操作、输出所存储的数据的读取操作以及擦除所存储的数据的擦除操作。非易失性存储器装置1100可包括控制逻辑300,其中控制逻辑300响应于图1所示的存储器控制器1200的控制来控制***电路200。
存储器单元阵列100可包括多个存储块BLK1至BLKm,其中m为正整数。局部线LL和位线BL1至BLn可联接到存储块BLK1至BLKm,其中n为正整数。例如,局部线LL可包括第一选择线、第二选择线以及布置在第一选择线和第二选择线之间的多个字线。另外,局部线LL可包括布置在第一选择线和字线之间以及布置在第二选择线和字线之间的虚设(dummy)线。第一选择线可以是源极选择线,并且第二选择线可以是漏极选择线。例如,局部线LL可包括字线、漏极选择线、源极选择线以及源极线。例如,局部线LL可进一步包括虚设线。例如,局部线LL可进一步包括管线。专用局部线LL可联接到存储块BLK1至BLKm中的每一个,而位线BL1至BLn可共同联接到存储块BLK1至BLKm。存储块BLK1至BLKm可具有二维(2D)或三维(3D)结构。例如,在2D结构的存储块中,存储器单元可平行于衬底来布置。例如,在3D存储块中,存储器单元可在垂直于衬底的方向上堆叠。
***电路200可被配置成响应于控制逻辑300的控制而对存储块BLK1到BLKm中所选择的存储块执行编程操作、读取操作和擦除操作中的至少一个。例如,控制逻辑300可控制***电路200以将验证电压和通过电压提供至第一选择线、第二选择线和字线,选择性地使第一选择线、第二选择线和字线放电,并且验证与字线之中的所选择的字线联接的存储器单元。例如,***电路200可包括电压生成电路210、行解码器220、页面缓冲器组230、列解码器240、输入/输出电路250和感测电路260。
电压生成电路210可响应于操作信号OP_CMD而生成用于执行编程操作、读取操作和擦除操作中的至少一个的各种操作电压Vop。另外,电压生成电路210可响应于操作信号OP_CMD选择性地使局部线LL放电。例如,控制逻辑300可控制电压生成电路210生成编程电压、验证电压、通过电压、导通电压、读取电压、擦除电压和源极线电压中的至少一个。
行解码器220可响应于行地址RADD将操作电压Vop传输到与所选择的存储块联接的局部线LL。
页面缓冲器组230可包括多个页面缓冲器PB1至PBn,页面缓冲器PB1至PBn各自联接到位线BL1至BLn。页面缓冲器PB1至PBn中的每一个可联接到位线BL1至BLn中的相应位线。页面缓冲器PB1至PBn可响应于页面缓冲器控制信号PBSIGNALS操作。例如,在操作中,在读取操作或验证操作期间,页面缓冲器PB1至PBn可临时存储通过位线BL1至BLn接收到的数据,或者感测位线BL1至BLn中的电压或电流。
列解码器240可响应于列地址CADD在输入/输出电路250和页面缓冲器组230之间传输数据。例如,列解码器240可通过数据线DL与页面缓冲器PB1至PBn交换数据,或者可通过列线CL与输入/输出电路250交换数据。
输入/输出电路250可将从图1所示的存储器控制器1200接收到的命令CMD和地址ADD传输到控制逻辑300,或者可与列解码器240交换数据。
在读取操作或验证操作期间,感测电路260可响应于允许位VRY_BIT<#>来生成参考电流,并且将从页面缓冲器组230接收到的感测电压VPB与由参考电流产生的参考电压进行比较,以输出通过信号PASS或失败信号FAIL。
控制逻辑300可响应于命令CMD和地址ADD输出操作信号OP_CMD、行地址RADD、列地址CADD、页面缓冲器控制信号PBSIGNALS和允许位VRY_BIT<#>来控制***电路200。另外,控制逻辑300可响应于通过信号PASS或失败信号FAIL来确定验证操作是通过还是失败。
与非易失性存储器装置1100的操作相关联,每一个存储块可以是擦除操作的单位。换言之,包括在一个存储块中的多个存储器单元可被同时擦除,或者不可被选择性地擦除。
图5是示出图4所示的存储块中的一个的示图。
参照图5,存储块BLKm可被配置成使得彼此平行布置的多个字线可联接在第一选择线和第二选择线之间。第一选择线可以是源极选择线SSL,并且第二选择线可以是漏极选择线DSL。更具体地,存储块BLKm可包括联接在位线BL1至BLn与源极线SL之间的多个串ST。位线BL1至BLn中的每一个可联接到串ST中的每一个,并且源极线SL可共同联接到串ST。因为串ST可具有相同的配置,所以将作为示例详细描述联接到第一位线BL1的串ST。
串ST可包括串联联接在源极线SL和第一位线BL1之间的源极选择晶体管SST、多个存储器单元F1至F16以及漏极选择晶体管DST。单个串ST可包括至少一个源极选择晶体管SST和至少一个漏极选择晶体管DST,并且可包括比如图5所示的存储器单元F1至F16更多的存储器单元。
源极选择晶体管SST的源极可联接到源极线SL,漏极选择晶体管DST的漏极可联接到第一位线BL1。存储器单元F1至F16可串联联接在源极选择晶体管SST和漏极选择晶体管DST之间。包括在不同串ST中的源极选择晶体管SST的栅极可联接到源极选择线SSL,漏极选择晶体管DST的栅极可联接到漏极选择线DSL,并且存储器单元F1至F16的栅极可联接到多个字线WL1至WL16。包括在不同串ST中的存储器单元之中的、联接到相同字线的存储器单元组可被称为物理页面PPG。因此,存储块BLKm可包括与字线WL1至WL16的数量一样多的物理页面PPG。
单个存储器单元可存储一位数据。这种存储器单元通常被称为单层单元SLC。SLC的单个物理页面PPG可存储对应于单个逻辑页面LPG的数据。对应于单个逻辑页面LPG的数据可包括与包括在单个物理页面PPG中的单元的数量一样多的数据位。另外,单个存储器单元MC可存储两位或更多位数据。这种单元通常被称为“多层单元(MLC)”。MLC的单个物理页面PPG可存储对应于两个或更多个逻辑页面LPG的数据。
当存储器单元存储2位数据时,单个物理页面PPG可包括两个页面PG。一个页面PG可存储一个逻辑页面LPG的数据。一个存储器单元根据数据可包括多个阈值电压中的一个,并且包括在一个物理页面PPG中的多个页面PG可表示为阈值电压差。
包括在一个物理页面PPG中的多个存储器单元可被同时编程。换言之,非易失性存储器装置1100可对每个物理页面PPG执行编程操作。包括在单个存储块中的多个存储器单元可被同时擦除。换言之,非易失性存储器装置1100可对每个存储块执行擦除操作。例如,为了更新存储在一个存储块中的数据的一部分,可读取存储在存储块中的全部数据,可改变待被更新的数据的一部分,并且可利用全部数据对另一存储块进行编程。
图6是示出超级块的示图。
参照图6,构成第一信道CH1的多个路Way1至WayN中的每一个可包括一个或多个非易失性存储器装置1100。如上所述,一个非易失性存储器装置1100可包括用于存储数据的存储器单元阵列100,并且存储器单元阵列100可包括多个存储块BLK1至BLKm。可对各个存储块BLK1至BLKm彼此独立地执行擦除操作,并且可对包括在一个存储块中的多个存储器单元同时执行擦除操作。
超级块500可包括从配置不同路的各个非易失性存储器装置1100中选择的一组存储块。换言之,第一超级块S_BLK1(500)可包括:包括在配置第一路Way1的第一非易失性存储器装置1100中的第一存储块BLK1、包括在配置第二路Way2的第二非易失性存储器装置1100中的第一存储块BLK1至包括在配置第N路WayN的第N非易失性存储器装置1100中的第一存储块BLK1。另外,第二超级块S_BLK2(500)可包括:包括在配置第一路Way1的第一非易失性存储器装置1100中的第二存储块BLK2、包括在配置第二路Way2的第二非易失性存储器装置1100中的第二存储块BLK2至包括在配置第N路WayN的第N非易失性存储器装置1100中的第二存储块BLK2。以相同的方式,第m超级块S_BLKm(500)可包括:包括在配置第一路Way1的第一非易失性存储器装置1100中的第m存储块BLKm、包括在配置第二路Way2的第二非易失性存储器装置1100中的第m存储块BLKm至包括在配置第N路WayN的第N非易失性存储器装置1100中的第m存储块BLKm。
包括在一个超级块500中的多个存储块在物理上可彼此不同,但在逻辑上可作为单个存储块。换言之,包括在一个超级块500中的多个存储块可被同时编程或擦除。存储器***1000可对每个超级块执行编程操作或擦除操作,从而提高编程操作或擦除操作的性能。另外,存储器***1000可对每个超级块执行诸如垃圾收集或损耗均衡的操作,以高效地管理多个存储块。
图7是示出条带的示图。
参照图7,一个超级块500可包括多个存储块110A至110D。存储块110A至110D可被包括在不同的非易失性存储器装置1100中,其中不同的非易失性存储器装置110可以配置彼此不同的路。另外,存储块110A至110D中的每一个可包括多个页面Page1至Page7。
存储块500可包括多个条带,例如stripe1至stripe7。存储器***1000可对包括在第一存储块110A、第二存储块110B、第三存储块110C和第四存储块110D中的第一页面Page1并行地执行编程操作。包括在第一存储块110A、第二存储块110B、第三存储块110C和第四存储块110D中的第一页面Page1组可被称为第一条带stripe1。换言之,可对包括在一个条带中的多个页面并行地执行编程操作。换言之,存储器***1000可在逻辑上将超级块500作为一个存储块进行管理和操作。另外,存储器***1000可在逻辑上将一个条带作为一页面进行管理和操作。存储器***1000可通过管理和操作超级块和条带来更高效地进行操作。
图8是示出根据实施例的元数据管理方法的示图。
参照图8,元数据可包括逻辑到物理地址映射信息、有效页面信息和可靠性信息中的至少一个。
如上所述,逻辑到物理地址映射信息可以是逻辑地址和物理地址之间的映射信息,其中逻辑地址是从主机2000接收的,物理地址是非易失性存储器装置1100中的、将存储对应于逻辑地址的数据的存储器空间的物理地址。另外,如上所述,逻辑到物理地址映射信息可以是逻辑地址和物理地址之间的映射信息,其中物理地址是非易失性存储器装置1100中的、存储对应于逻辑地址的数据的存储器空间的物理地址。
在另一示例中,元数据可包括逻辑到虚拟地址映射信息,而不包括逻辑到物理地址映射信息。存储器控制器1200可从主机2000接收写入命令、写入数据和逻辑地址。存储器控制器1200可响应于写入命令而分配非易失性存储器装置1100的、将存储写入数据的物理存储空间,即存储块或页面。所分配的非易失性存储器装置1100的物理存储空间的地址可被称为虚拟地址。换言之,虚拟地址可对应于非易失性存储器装置1100的、将存储从主机2000接收的写入数据的物理存储空间。
随后,存储器控制器1200可利用从主机2000输入的写入数据来对非易失性存储器装置1100的、对应于虚拟地址的物理存储空间进行编程。当对写入数据的编程操作成功完成时,虚拟地址可与最终物理地址相同。
在另一示例中,当非易失性存储器装置1100的、对应于虚拟地址的物理存储空间有缺陷时,对写入数据的编程操作可能失败。存储器控制器1200可分配非易失性存储器装置1100中的另一存储空间来存储写入数据,并且利用写入数据对所分配的存储空间进行编程。然而,在该示例中,初始分配的虚拟地址可能与写入数据的最终物理地址不同。因此,当对写入数据的编程操作成功完成时,虚拟地址可被改变为最终物理地址。
元数据可包括有效页面信息。有效页面信息可以是与存储块中的多个页面之中或超级块中的多个条带之中的、存储有效数据的页面或条带有关的信息。存储器控制器1200可在垃圾收集操作期间使用有效页面信息。换言之,在垃圾收集操作期间,存储器控制器1200可读取存储在非易失性存储器装置1100中的有效页面信息,并将有效页面信息加载到缓冲存储器装置1300或存储器缓冲器720。随后,存储器控制器1200可基于被加载到缓冲存储器装置1300或存储器缓冲器720的有效页面信息来执行垃圾收集操作,并且可在垃圾收集操作完成之后更新存储在缓冲存储器装置1300或存储器缓冲器720中的有效页面信息。另外,存储器控制器1200可基于被更新的有效页面信息来更新存储在非易失性存储器装置1100中的有效页面信息。缓冲存储器装置1300或存储器缓冲器720可被统称为“缓冲存储器”。
元数据可包括可靠性信息。可靠性信息可包括关于存储块或超级块500的擦除循环计数信息和读取计数信息。存储器控制器1200可基于上述可靠性信息来控制读取回收操作或损耗均衡操作。
存储器单元的阈值电压可通过读取操作而增加。当执行读取操作的次数增加时,存储器单元的阈值电压可增加。因此,在读取操作期间,数据的错误率可增加。例如,当存储在存储块中的数据的错误水平极度增加时,对数据的错误校正操作可能失败。存储器控制器1200可将错误校正操作失败之前存储在存储块中的数据复制-编程到另一存储块中。该操作可被称为读取回收操作。换言之,在读取回收操作期间,当存储在存储块中的数据的错误水平大于或等于预定水平时,存储在存储块中的数据可被复制-编程到另一存储块中。
存储器控制器1200可管理多个存储块或超级块500以使其具有相似的可靠性水平。该操作可被称为损耗均衡操作。当频繁地执行编程-擦除操作时,存储块或超级块500的可靠性水平可降低。换言之,在损耗均衡操作期间,可对存储块或超级块500的编程-擦除计数进行管理,使得多个存储块或超级块500可具有相似的可靠性水平。
存储器控制器1200可基于存储在缓冲存储器装置1300或存储器缓冲器720中的可靠性信息来执行损耗均衡操作,并且可在损耗均衡操作之后更新存储在缓冲存储器装置1300或存储器缓冲器720中的可靠性信息。另外,存储器控制器1200可基于被更新的可靠性信息来更新存储在非易失性存储器装置1100中的可靠性信息。
存储器控制器1200可通过将元数据分成多个元切片MS1至MS12来管理元数据。逻辑到物理地址映射信息中的元切片MS1至MS8中的每一个可以是与超级块500中的多个条带中的至少一个相对应的信息。在另一示例中,逻辑到物理地址映射信息中的元切片MS1至MS8中的每一个可以是与存储块中的多个页面中的至少一个相对应的信息。
元数据中元切片的大小或元切片的数量可由处理器710确定。例如,可基于逻辑地址将元数据划分成多个元切片。
图9是示出根据实施例的元数据清除操作的示图。
参照图9,在启动操作期间,存储器控制器1200可将存储在非易失性存储器装置1100中的逻辑到物理地址映射信息加载到缓冲存储器装置1300或存储器缓冲器720。另外,存储器控制器1200可从非易失性存储器装置1100读取逻辑到物理地址映射信息,并将该信息存储在缓冲存储器装置1300或存储器缓冲器720中,以检查存储在非易失性存储器装置1100中的逻辑到物理地址映射信息。
存储器控制器1200可从主机2000接收写入命令、写入数据和逻辑地址。存储器控制器1200可响应于写入命令来分配非易失性存储器装置1100的、将存储写入数据的物理存储空间,即存储块或页面。换言之,存储器控制器1200可响应于写入命令映射对应于逻辑地址的物理地址。物理地址可对应于非易失性存储器装置1100的、将存储从主机2000接收到的写入数据的物理存储空间。
存储器控制器1200可响应于写入命令映射对应于逻辑地址的物理地址,并且可利用新生成的逻辑地址与物理地址之间的映射信息,即逻辑到物理地址映射信息,来更新存储在缓冲存储器装置1300或存储器缓冲器720中的现有逻辑到物理地址映射信息。
在这种情况下,存储在非易失性存储器装置1100中的逻辑到物理地址映射信息和存储在缓冲存储器装置1300或存储器缓冲器720中的逻辑到物理地址映射信息之间可能存在差异。存储器控制器1200可将存储在缓冲存储器装置1300或存储器缓冲器720中的逻辑到物理地址映射信息清除到非易失性存储器装置1100,使得存储在非易失性存储器装置1100中的逻辑到物理地址映射信息可与存储在缓冲存储器装置1300或存储器缓冲器720中的逻辑到物理地址映射信息相同。存储器控制器1200可执行上述清除操作,以使存储在缓冲存储器装置1300或存储器缓冲器720中的逻辑到物理地址映射信息与存储在非易失性存储器装置1100中的逻辑到物理地址映射信息一致。
存储器控制器1200可以元切片为单位执行清除操作,并且在清除操作期间,存储器控制器1200可将日志数据以及元切片存储在非易失性存储器装置1100中。日志数据可以是与元数据更新有关的历史信息。换言之,可通过日志数据导出更新之前或更新之后的元数据。当填满日志数据时,可执行上述元数据清除操作。
日志数据可被存储在缓冲存储器装置1300或存储器缓冲器720的空间中。当填满日志数据时,这可表示缓冲存储器装置1300或存储器缓冲器720中的、被分配用于存储日志数据的空间可能被填满。在存储在缓冲存储器装置1300或存储器缓冲器720中的日志数据被清除到非易失性存储器装置1100之后,可擦除存储在缓冲存储器装置1300或存储器缓冲器720中的日志数据。换言之,在清除操作之后,新日志数据可被存储在缓冲存储器装置1300或存储器缓冲器720的日志数据存储空间中。
例如,当填满日志数据时,存储器控制器1200可将存储在缓冲存储器装置1300或存储器缓冲器720中的第一元切片MS1以及日志数据清除到非易失性存储器装置1100。这种满的日志数据可被称为“日志条目-1”。存储器控制器1200可将存储在缓冲存储器装置1300或存储器缓冲器720中的第一元切片MS1和日志条目-1清除到非易失性存储器装置1100。随后,新的日志数据可被存储在缓冲存储器装置1300或存储器缓冲器720的日志数据存储空间中。
随后,当再次填满日志数据时,即当生成日志条目-2时,存储器控制器1200可将存储在缓冲存储器装置1300或存储器缓冲器720中的日志条目-2和第二元切片MS2清除到非易失性存储器装置1100。如上所述,当填满日志数据时,存储器控制器1200可将先前被清除的元切片之后的下一元切片连同日志数据一起清除到非易失性存储器装置1100。
以上述方式,存储器控制器1200可顺序地将逻辑到物理地址映射信息的元切片MS3至MS8连同日志条目-3至日志条目-8一起清除。
如上所述,被清除到非易失性存储器装置1100的多个日志条目可被统称为“日志数据”。
随后,存储器控制器1200可顺序地将包括在有效页面信息中的第九元切片MS9和第十元切片MS10以及包括在可靠性信息中的第十一元切片MS11和第十二元切片MS12连同日志条目-9至日志条目-12清除到非易失性存储器装置1100。
在存储器控制器1200将形成元数据的多个元切片中的最后一个元切片,即第十二元切片MS12清除之后,如果再次填满日志数据,则存储器控制器1200可将相应的日志数据和第一元切片,即日志条目-13和第一元切片MS1清除到非易失性存储器装置1100。
通过上述操作,存储器控制器1200可将存储在缓冲存储器装置1300或存储器缓冲器720中的元数据和日志数据清除到非易失性存储器装置1100。
元数据中元切片的大小可由处理器710确定。例如,可基于逻辑地址将元数据划分成多个元切片。
当向存储器***1000供电时,存储器控制器1200可生成命令和地址,所述命令和地址用于顺序地读取存储在非易失性存储器装置1100中的、被划分为多个元切片的元数据,并将读取的元数据存储在缓冲存储器装置1300或存储器缓冲器720中。存储器控制器1200可根据导致元数据改变的操作来控制存储器***1000更新存储在缓冲存储器装置1300或存储器缓冲器720中的元数据,并且可生成与元数据改变相对应的日志条目并将与元数据改变相对应的日志条目存储在缓冲存储器装置1300或存储器缓冲器720中。
日志条目可包括恢复元数据改变所必需的信息。例如,日志条目可包括与导致元数据改变的操作类型有关的信息,以及用于恢复元数据改变的数据。与导致元数据改变的操作类型有关的信息可包括定义可能改变元数据的所有操作的类型的信息,例如,写入操作、分配存储块的操作和复制存储在页面中的数据的操作。另外,用于恢复元数据改变的数据可包括逻辑地址、先前物理地址和新物理地址。
图10是示出根据实施例的日志重放操作的示图。
当在突然断电之后通电时,存储器***1000可读取存储在非易失性存储器装置1100中的元数据,并且在缓冲存储器装置1300或存储器缓冲器720中重建所读取的元数据。在这种情况下,可执行日志重放操作。如上所述,日志数据可以是与元数据更新有关的历史信息。换言之,可通过日志数据导出更新之前或之后的元数据改变。从非易失性存储器装置1100读取的元数据可包括更新前的信息,而非最新信息,并且可通过日志重放操作利用最新信息来重建更新前的该信息。
参照图10,存储器控制器1200可在日志重放操作期间重放与所有元切片相对应的所有日志条目,从而执行元数据重建操作。存储器控制器1200可重放与元数据中的元切片的数量一样多的日志条目。
例如,当元数据包括十二个元切片并且清除操作已经执行到第二元切片MS2时,存储器控制器1200可通过以从日志条目-14到日志条目-3的反向方向对所有日志条目执行日志重放操作来重建最新元数据,其中日志条目-14与作为最近被清除的元切片的第二元切片MS-2相对应,日志条目-3与作为对应于日志条目-2的第二元切片MS2下一个的第三元切片MS3相对应。待被重放的日志条目的数量可与元数据中的元切片的数量相同。在上述示例中,待被重放的日志条目的数量和元数据中的元切片的数量分别是十二。
当存储器***1000在突然断电之后再次通电时,存储器***1000可在缓冲存储器装置1300或存储器缓冲器720中重建最新元数据。执行该重建操作所耗费的时间可被称为“打开时间”。换言之,通过使用存储在非易失性存储器装置1100中的元数据或日志数据来在缓冲存储器装置1300或存储器缓冲器720中重建最新元数据可耗费打开时间。打开时间可占执行日志重放操作所耗费时间的大部分时间。换言之,在打开时间期间,存储器控制器1200可将所有元切片加载到缓冲存储器装置1300或存储器缓冲器720。
图11至图16是示出根据实施例的元数据管理方法和元数据清除操作的示图。图11至图13例示了在执行元数据清除操作时元数据的改变。图14和图15示出了被清除到非易失性存储器装置1100中的数据结构。图14和图15例示了被清除的日志条目、元切片、元切片映射和日志重放上下文,被清除的日志条目、元切片、元切片映射和日志重放上下文如参照图11至图13例示的被顺序地清除到非易失性存储器装置1100中。图16示出了存储在缓冲存储器装置1300或存储器缓冲器720中的数据结构。
存储在缓冲存储器装置1300或存储器缓冲器720中的元数据的元切片与存储在非易失性存储器装置1100中的元数据的元切片可彼此相同或不同。当存储在缓冲存储器装置1300或存储器缓冲器720中的元数据的元切片与存储在非易失性存储器装置1100中的元数据的元切片相同时,这些元切片可被称为“清洁元切片”。另一方面,当存储在缓冲存储器装置1300或存储器缓冲器720中的元数据的元切片与存储在非易失性存储器装置1100中的元数据的元切片不同时,这些元切片可被称为“脏元切片”。
存储器控制器1200可对存储在缓冲存储器装置1300或存储器缓冲器720中的元切片中的至少一个进行更新。因此,缓冲存储器装置1300或存储器缓冲器720中被更新的元切片可能与存储在非易失性存储器装置1100中的元切片不同。
如上所述,存储器控制器1200可以元切片为单位执行清除操作,并且在清除操作期间,存储器控制器1200可将日志数据与元切片一起清除到非易失性存储器装置1100。存储器控制器1200可仅对脏元切片执行清除操作,而不对清洁元切片执行清除操作。存储器控制器1200可将缓冲存储器装置1300或存储器缓冲器720中被更新的元切片标记为脏元切片,将脏元切片清除到非易失性存储器装置1100,并将脏元切片改变成清洁元切片。
在下文中,将参照图11至图16描述本发明的实施例,其中假设日志条目(日志条目-1、日志条目-2、日志条目-3和日志条目-4),脏元切片MS1、MS6、MS11和MS12,元切片映射1以及日志重放上下文1被清除到非易失性存储器装置1100。
首先,参照图11和图14,当日志数据被生成到预定大小时,存储器控制器1200可生成日志条目并将日志条目存储在缓冲存储器装置1300或存储器缓冲器720中。日志条目可包括具有预定大小的日志数据和与存储先前被清除的元切片映射的物理地址有关的信息。当日志数据被生成有预定大小时,这可表示日志数据被生成到与被分配来存储日志数据的存储区域相对应的大小。被分配来存储日志数据的存储区域可存在于缓冲存储器装置1300或存储器缓冲器720中。
存储器控制器1200可在生成日志条目之后搜索脏元切片。例如,当由于填满了日志数据而生成第五日志条目-5时,存储器控制器1200可在存储在缓冲存储器装置1300或存储器缓冲器720中的元数据的元切片中搜索脏元切片。例如,可从第一元切片MS1开始以升序来搜索脏元切片。例如,第一元切片MS1可以是清洁元切片,第二元切片MS2可以是脏元切片。存储器控制器1200可将存储在缓冲存储器装置1300或存储器缓冲器720中的第五日志条目-5和第二元切片MS2两者清除到非易失性存储器装置1100。
存储器控制器1200可将存储在缓冲存储器装置1300或存储器缓冲器720中的、为脏元切片的第二元切片MS2与第五日志条目-5一起清除到非易失性存储器装置1100,并且然后可将第二元切片MS2改变成清洁元切片。在第二元切片MS2被清除到非易失性存储器装置1100之后,存储在非易失性存储器装置1100中的第二元切片MS2的信息与存储在缓冲存储器装置1300或存储器缓冲器720中的第二元切片MS2的信息可以相同。因此,第二元切片可以是清洁元切片。
在存储器控制器1200将第二元切片MS2与第五日志条目-5一起清除到非易失性存储器装置1100之后,存储器控制器1200可更新存储在缓冲存储器装置1300或存储器缓冲器720中的元切片映射和日志重放上下文。
元切片映射可包括与物理地址有关的信息,其中物理地址存储与日志条目一起被清除到非易失性存储器装置1100的脏元切片。日志重放上下文可包括与被清除到非易失性存储器装置1100的脏元切片有关的索引信息。日志重放上下文可具有与预定数量的脏元切片有关的索引信息。例如,日志重放上下文可包括与十个脏元切片有关的索引信息。当添加与新脏元切片有关的索引信息时,可删除与最旧脏元切片有关的索引信息。每当存储器控制器1200将脏元切片与日志条目一起清除到非易失性存储器装置1100时,存储器控制器1200可更新存储在缓冲存储器装置1300或存储器缓冲器720中的元切片映射和日志重放上下文。
存储器控制器1200可更新元切片映射以包括与物理地址有关的信息,其中物理地址存储与日志条目一起被清除的脏元切片。例如,存储器控制器1200可将与存储第二元切片MS2的物理地址有关的信息反映到存储在缓冲存储器装置1300或存储器缓冲器720中的元切片映射中,其中第二元切片MS2与第五日志条目-5一起被清除。被一起清除的元切片和日志条目可被存储在非易失性存储器装置1100的相同物理地址处。换言之,第二元切片MS2和第五日志条目-5可被存储在相同的物理地址处。在下文中,当元切片和日志条目被一起清除时,可假设相应元切片和相应日志条目被存储在非易失性存储器装置1100的相同物理地址处。物理地址可表示与包括在单个存储块中的页面中的每一个相对应的地址,或者表示与包括在单个超级块中的条带中的每一个相对应的地址。然而,本发明的实施例不限于此。
存储器控制器1200可更新日志重放上下文以包括与被清除到非易失性存储器装置1100的脏元切片有关的索引信息。例如,存储器控制器1200可将与被清除到非易失性存储器装置1100的第二元切片MS2有关的索引信息反映到存储在缓冲存储器装置1300或存储器缓冲器720中的日志重放上下文中。与脏元切片有关的索引信息可被反映为具有与脏元切片被清除的顺序相同的顺序。
随后,当日志数据再次被生成到预定大小时,存储器控制器1200可生成第六日志条目-6。存储器控制器1200可以从先前被清除的第二元切片MS2之后的元切片,即第三元切片MS3开始,以升序,即与先前脏元切片的搜索方向相同的方向来搜索脏元切片。换言之,脏元切片的搜索方向可被固定为预定方向,而不变化。
例如,第三元切片MS3和第四元切片MS4可以是清洁元切片,第五元切片MS5可以是脏元切片。存储器控制器1200可以从先前被清除的第二元切片MS2之后的元切片,即第三元切片MS3开始,继续按顺序搜索脏元切片,直到检测到脏元切片。存储器控制器1200可检测到为脏元切片的第五元切片MS5。存储器控制器1200然后可将存储在缓冲存储器装置1300或存储器缓冲器720中的第五元切片MS5和第六日志条目-6两者清除到非易失性存储器装置1100,并且然后可将第五元切片MS5改变为清洁元切片。
在存储器控制器1200将第五元切片MS5与第六日志条目-6一起清除到非易失性存储器装置1100之后,存储器控制器1200可更新存储在缓冲存储器装置1300或存储器缓冲器720中的元切片映射和日志重放上下文。
如上所述,每当日志数据被生成到预定大小时,存储器控制器1200可从先前被清除的元切片之后的元切片开始,以升序搜索脏元切片。可以与先前搜索方向相同的方向来搜索脏元切片。另外,脏元切片的搜索方向可被固定为最初确定的方向。
参照图12和图14,在第五元切片MS5被清除之后,为清洁元切片的第三元切片MS3可能被改变为脏元切片。换言之,存储器控制器1200可更新存储在缓冲存储器装置1300或存储器缓冲器720中的第三元切片MS3。因此,被更新的第三元切片MS3可能是脏元切片。
随后,当日志数据再次被生成到预定大小时,存储器控制器1200可生成第七日志条目-7,存储器控制器1200可从先前被清除的第五元切片MS5之后的元切片,即第六元切片MS6开始,以升序再次搜索脏元切片。换言之,可以与先前搜索方向相同的顺序执行搜索。如上所述,元切片中的、编号小于第六元切片MS6的第三元切片MS3可能是脏元切片。存储器控制器1200可以上述搜索脏元切片的方向检测到元切片编号大于第六元切片MS6的第七元切片MS7。换言之,存储器控制器1200可不改变脏元切片搜索方向。随后,存储器***1000可将第七元切片MS7与第七日志条目-7一起清除到非易失性存储器装置1100,并且然后可将第七元切片MS7改变为清洁元切片。
在存储器控制器1200将第七元切片MS7与第七日志条目-7一起清除到非易失性存储器装置1100之后,存储器控制器1200可更新存储在缓冲存储器装置1300或存储器缓冲器720中的元切片映射和日志重放上下文。
以上述方式,存储器控制器1200可将有效页面信息区域和可靠性信息区域中的、为脏元切片的第九元切片MS9、第十元切片MS10和第十二元切片MS12与第八日志条目-8、第九日志条目-9和第十日志条目-10一起清除,并且然后可将第九元切片MS9、第十元切片MS10和第十二元切片MS12改变为清洁元切片。并且,存储器控制器1200可更新存储在缓冲存储器装置1300或存储器缓冲器720中的元切片映射和日志重放上下文。
存储在缓冲存储器装置1300或存储器缓冲器720中的元切片映射可包括关于以下的信息:包括在元数据中的元切片是清洁的还是脏的。存储器控制器1200可在元切片映射上将被更新的元切片标记为脏元切片。另外,存储器控制器1200可在脏元切片搜索操作期间使用关于以下的信息:包括在元切片映射中的元切片中的每一个是清洁的还是脏的。另外,在存储器控制器1200将脏元切片清除到非易失性存储器装置1100之后,存储器控制器1200可在元切片映射上将先前被标记为脏元切片的相应元切片取消标记。换言之,在存储器控制器1200将脏元切片清除到非易失性存储器装置1100之后,存储器控制器1200可在元切片映射上将相应元切片标记为清洁元切片。根据实施例,可独立于元切片映射来管理关于以下的信息:元切片是清洁的还是脏的。
可以循环方式来搜索脏元切片。例如,存储器控制器1200可以从作为第一个元切片的第一元切片MS1到作为最后一个元切片的第十二元切片MS12的顺序方式来在元切片中搜索脏元切片。当为了搜索脏元切片而搜索了第十二元切片MS12,即最后一个元切片时,可认为完成了一轮搜索。当完成一轮搜索时,存储器控制器1200可从作为第一个元切片的第一元切片MS1开始,以升序再次在元切片中搜索脏元切片。
每当完成n轮搜索时,存储器控制器1200可将存储在缓冲存储器装置1300或存储器缓冲器720中的元切片映射和日志重放上下文清除到非易失性存储器装置1100,其中n为自然数。例如,每完成一轮搜索时,存储器控制器1200可将存储在缓冲存储器装置1300或存储器缓冲器720中的元切片映射和日志重放上下文清除到非易失性存储器装置1100。如图14所示,在作为最后一个元切片的第十二元切片MS12被清除之后,可将元切片映射2和日志重放上下文2清除到非易失性存储器装置1100。当作为最后一个元切片的第十二元切片MS12被清除时,这可表示为了搜索脏元切片而搜索了第十二元切片MS12,并且完成了一轮搜索。当发现第十二元切片MS12是清洁元切片时,可将日志条目-10与在下一轮搜索中第一个发现的脏元切片一起清除到非易失性存储器装置1100。
作为被清除到非易失性存储器装置1100的元切片映射和日志重放上下文的示例,图15示出了元切片映射2和日志重放上下文2。参照图14和图15,可示出,与脏元切片MS2、MS5、MS7、MS9、MS10和MS12有关的索引信息被反映在被清除到非易失性存储器装置1100的日志重放上下文2中,其中脏元切片MS2、MS5、MS7、MS9、MS10和MS12在将日志重放上下文1清除之后被清除。另外,被清除到非易失性存储器装置1100的元切片映射2可包括与存储脏元切片MS2、MS5、MS7、MS9、MS10和MS12的物理地址(物理地址5至物理地址10)有关的信息,其中脏元切片MS2、MS5、MS7、MS9、MS10和MS12在将元切片映射1清除之后被清除。元切片映射中的术语“无效”表示关于以下的信息:因为相应元切片没有被校正,所以不包括与相应元切片有关的物理地址。
参照图13和图14,在元切片映射2和日志重放上下文2被清除到非易失性存储器装置1100之后,当日志数据被生成到预定大小时,存储器控制器1200可生成第十一日志条目-11。存储器控制器1200可从第一元切片MS1开始,重新开始搜索脏元切片。
存储器控制器1200可通过上述搜索检测到为脏元切片的第二元切片MS2,并且将第二元切片MS2与第十一日志条目-11一起清除到非易失性存储器装置1100,并且然后可将第二元切片MS2改变成清洁元切片。
在存储器控制器1200将第二元切片MS2与第十一日志条目-11一起清除到非易失性存储器装置1100之后,存储器控制器1200可更新存储在缓冲存储器装置1300或存储器缓冲器720中的元切片映射和日志重放上下文。
随后,当日志数据被生成到预定大小时,存储器控制器1200可生成第十二日志条目-12,存储器控制器1200可从第三元切片MS3重新开始搜索脏元切片。当第三元切片MS3是脏元切片时,存储器控制器1200可将第三元切片MS3与第十二日志条目12一起清除到非易失性存储器装置1100,并且然后可将第三元切片MS3改变成清洁元切片。
在存储器控制器1200将第三元切片MS3与第十二日志条目(日志条目-12)一起清除到非易失性存储器装置1100之后,存储器控制器1200可更新存储在缓冲存储器装置1300或存储器缓冲器720中的元切片映射和日志重放上下文。
图16示出了以下示例:在元切片映射2和日志重放上下文2被清除到非易失性存储器装置1100之后,关于以下的信息被反映在缓冲存储器装置1300或存储器缓冲器720中:与脏元切片MS2和MS3一起被清除的日志条目(日志条目-11和日志条目-12)。
参照图16,可示出,与存储日志条目(日志条目-11和日志条目-12)的物理地址(物理地址11和物理地址12)有关的信息被反映在存储在缓冲存储器装置1300或存储器缓冲器720中的元切片映射3中,其中日志条目(日志条目-11和日志条目-12)与脏元切片MS2和MS3一起被清除。另外,可示出,与脏元切片MS2和MS3有关的索引信息被反映在存储在缓冲存储器装置1300或存储器缓冲器720中的日志重放上下文3中。
当在元切片映射3和日志重放上下文3被清除到非易失性存储器装置1100之前发生突然断电时,存储在缓冲存储器装置1300或存储器缓冲器720中的元切片映射3和日志重放上下文3中的信息可能消失,而不被反映在非易失性存储器装置1100中。这种信息可通过随后的日志重放操作来恢复。这将在下面结合附图进行描述。
图17是示出根据另一实施例的管理元数据的方法的流程图。
根据实施例,可省略图17所示的步骤中的至少一个,并且可改变步骤的顺序。
在步骤1701中,存储器控制器1200可更新存储在缓冲存储器装置1300或存储器缓冲器720中的元切片中的至少一个。
在步骤1703中,存储器控制器1200可将被更新的元切片标记为脏元切片。
在步骤1705中,存储器控制器1200可生成与被更新的元切片相对应的日志数据。日志数据可包括关于元切片的、与更新元切片之前和更新元切片之后之间的差异相对应的信息。例如,日志数据可包括逻辑地址、对应于逻辑地址的先前物理地址以及对应于逻辑地址的被更新的物理地址。
在步骤1707中,存储器控制器1200可检查日志数据是否被生成到预定大小。当日志数据被生成到预定大小(Y)时,可执行步骤1709,否则(N),可执行步骤1701。
在步骤1709中,存储器控制器1200可使用日志数据来生成日志条目。日志条目可包括与存储被清除到非易失性存储器装置1100的先前元切片映射的物理地址有关的信息和在步骤1705中生成的日志数据。
在步骤1711中,存储器控制器1200可搜索脏元切片。可以循环方式来搜索脏元切片。根据实施例,当在一轮搜索内执行对脏元切片的搜索时,可从第一元切片开始,以升序执行对脏元切片的搜索。根据实施例,当在一轮搜索内,在第一元切片之后执行对脏元切片的搜索时,可从先前找到的脏元切片之后的元切片开始,以升序执行对脏元切片的搜索。
在步骤1713中,存储器控制器1200可确定是否在n轮搜索中找到脏元切片,其中n为自然数。当在n轮搜索中找到脏元切片(Y)时,可执行步骤1715,否则(N),可执行步骤1721。
在步骤1715中,存储器控制器1200可将在步骤1709中生成的日志条目和在步骤1713中找到的脏元切片清除到非易失性存储器装置1100。
在步骤1717中,存储器控制器1200可将被清除到非易失性存储器装置1100的脏元切片改变为清洁元切片。
在步骤1719中,存储器控制器1200可更新元切片映射和日志重放上下文。例如,存储器控制器1200可将与存储日志条目和脏元切片的物理地址有关的信息反映在元切片映射中,其中日志条目和脏元切片在步骤1715中被清除。例如,存储器控制器1200可将在步骤1715中被清除的脏元切片的索引反映在日志重放上下文中。
在基于步骤1713的确定结果而执行的步骤1721中,该确定结果为在该轮搜索中未发现脏元切片,存储器控制器1200可将元切片映射和日志重放上下文清除到非易失性存储器装置1100。
此后,可执行步骤1715。
图18和图19是示出根据实施例的日志重放操作的示图。图18示出了用于重建元数据的信息被清除到非易失性存储器装置1100的示例。图19示出了在缓冲存储器装置1300或存储器缓冲器720中重建元数据的进程的示例。
在存储器***1000的大部分打开时间期间,可在缓冲存储器装置1300或存储器缓冲器720中重建逻辑到物理地址映射信息。因此,为了在通电时快速响应,应当减少打开逻辑到物理地址映射信息所需的时间。当打开逻辑到物理地址映射信息时,这可能表示最新逻辑到物理地址映射信息可被加载到缓冲存储器装置1300或存储器缓冲器720。
然而,在诸如突然断电的特殊情况后通电时,可能耗费更长的时间来重建逻辑到物理地址映射信息。例如,当全部元切片被加载到缓冲存储器装置1300或存储器缓冲器720以重建元数据,并且日志数据被重放时,这可能耗费很长的时间来打开逻辑到物理地址映射信息。因此,根据本发明的实施例,提供了一种方法,该方法可以减少待被重放的日志条目的数量以在更短的时间内重建元数据。
图18示出了用于重建元数据的信息被清除到两个存储块BLK1和BLK2的示例。然而,本发明不限于此。
参照图18,根据该方法,在日志重放操作期间,存储器控制器1200可在非易失性存储器装置1100中搜索最近的元切片,即最后被清除的日志条目和元切片。例如,当分配两个存储块BLK1和BLK2来作为用于存储用于重建元数据的信息的存储区域时,存储器控制器1200可顺序地访问存储块BLK1和BLK2的物理地址,以便检查最后记录数据的物理地址。存储器控制器1200可确定最后被清除的日志条目和元切片被存储在上述所检查的物理地址中。图18示出了发现日志条目-12和元切片3(MS3)是最后被清除的日志条目和元切片的示例。
随后,存储器控制器1200可搜索最后被清除的元切片映射和日志重放上下文。如上所述,日志条目中的每一个可包括与物理地址有关的信息,该物理地址包括最后被清除的元切片映射和日志重放上下文。因此,存储器控制器1200可参考日志条目-12来检查存储最后被清除的元切片映射和日志重放上下文的物理地址,并且可访问所检查的物理地址来搜索最后被清除的元切片映射和日志重放上下文。在参照图18描述的实施例中,可发现元切片映射2是最后被清除的元切片映射,并且可发现日志重放上下文2是最后被清除的日志重放上下文。
随后,存储器控制器1200可将日志重放上下文2和元切片映射2加载到缓冲存储器装置1300或存储器缓冲器720中,并且可在缓冲存储器装置1300或存储器缓冲器720中重建日志重放上下文2和元切片映射2。根据实施例,存储器控制器1200可重建日志重放上下文2,以包括与元切片有关的索引信息,其中在清除日志重放上下文2之后清除该元切片,即元切片2(MS2)和元切片3(MS3)。
图19示出了重建的日志重放上下文2的示例。参照图19,与图15所示的重建之前的日志重放上下文2相比,元切片2(MS2)和元切片3(MS3)的索引信息1902可被添加到重建的日志重放上下文2。换言之,如图19所示,可看出,如参照图16描述的日志重放上下文3中的、由于突然断电而消失以致未被清除到非易失性存储器装置1100的信息,被反映在重建的日志重放上下文2中。
然后,存储器控制器1200可基于重建的日志重放上下文2来确定待重建的元切片。待重建的元切片可表示被刷新到非易失性存储器装置1100的脏元切片之中待加载到缓冲存储器装置1300或存储器缓冲器720中并进行重建的脏元切片。
存储器控制器1200可确定与待重建的元切片相对应的索引集。索引集可被确定为包括与重建的日志重放上下文2中的最后元切片顺序相邻的尽可能多的元切片的索引以及最后元切片的索引。另外,在顺序相邻的元切片的索引中之,第一个元切片的索引可被确定为大于最后元切片的索引。例如,参照图19,对应于顺序元切片MS5-MS7-MS9-MS10-MS12-MS2-MS3的索引可被确定为索引集1904。存储器控制器1200可将对应于索引集1904的元切片确定为待被重建的元切片。
再次参照图18,存储器控制器1200可通过反映与物理地址有关的信息来重建元切片映射2,其中该物理地址存储在将元切片映射2清除之后被清除的元切片,即元切片2(MS2)和元切片3(MS3)。图19示出了重建的元切片映射2的示例。参照图19,可示出,与图15所示的重建之前的元切片映射2相比,与元切片2(MS2)和元切片3(MS3)有关的信息被添加到重建的元切片映射2。换言之,如图19所示,可看出,如参照图16描述的元切片映射3中的、由于突然断电而消失以致未被清除到非易失性存储器装置1100的信息,被反映在重建的元切片映射2中。
在上述示例中,可通过顺序地访问存储元切片映射2和日志重放上下文2的物理地址之后的物理地址,来检查在将元切片映射2和日志重放上下文2清除之后被清除的日志条目和元切片。
存储器控制器1200可基于待被重建的元切片的索引和重建的元切片映射来确定待被重放的日志条目。例如,存储器控制器1200可将与待被重建的元切片一起被清除的日志条目确定为待被重放的日志条目。在图18和图19所示的示例中,与待被重建的元切片MS5、MS7、MS9、MS10、MS12、MS2和MS3一起被清除的日志条目(日志条目-5至日志条目-12)可被确定为待被重放的日志条目。
存储器控制器1200可基于重建的元切片映射2来检查存储待被重放的日志条目的物理地址,并且访问所检查的物理地址,以将待被重放的日志条目和待被重建的元切片加载到缓冲存储器装置1300或存储器缓冲器720中。
存储器控制器1200可通过在重放所加载的待被重放的日志条目的同时校正所加载的元切片,来重建元数据。待被重放的日志条目可按将日志条目清除到非易失性存储器装置1100的顺序来进行重放。存储器控制器1200可从待被重放的第一个日志条目即第六日志条目6开始来执行日志重放操作,直到最后被清除的第十二日志条目12。以这种方式,可完成日志重放操作。
在参照图18和图19描述的示例中,因为存储器控制器1200仅重放与第五元切片MS5至第三元切片MS3之间的元切片相对应的日志条目,所以待被重放的日志条目的数量可小于参照图10所述的示例中的数量。例如,当仅对与包括在一轮搜索中的脏元切片相对应的日志条目执行日志重放操作来重建最近的元数据时,待被重放的日志条目的数量可小于参照图10所述的示例中的数量。更具体地,在以上示例中,可能存在七个待被重放的日志条目,但元数据中可能包括十二个元切片。
因为反映改变的元切片被存储在后面,所以关于未被加载元切片的日志条目可不被重放。因此,在日志重放操作期间待被重建的元数据的数量可小于参照图10所述的示例中的数量,从而可减少日志重放操作的时间。因此,可减少存储器***1000的打开时间。
例如,当频繁输入随机写入请求时,由于随机写入请求导致生成新逻辑到物理地址映射信息,而非更新现有逻辑到物理地址映射信息,所以包括在元数据中的全部元切片中的脏元切片的数量可比清洁元切片的数量少得多。在该示例中,因为在日志重放操作期间待被重建的元数据可比全部元数据少得多,所以可显著地减少日志重放操作所耗费的时间,从而可减少存储器***1000的打开时间。
图20是示出根据实施例的日志重放操作的流程图。
当在图17的步骤期间发生突然断电并且再次通电时,可执行图20中的步骤。然而,实施例不限于此。根据实施例,可省略图20所示的步骤中的至少一个,并且可改变步骤的顺序。
在步骤2001中,存储器控制器1200可搜索最后被清除到非易失性存储器装置1100的日志条目和元切片。
在步骤2003中,存储器控制器1200可参考找到的日志条目来检查存储最后被清除到非易失性存储器装置1100的元切片映射和日志重放上下文的物理地址。
在步骤2005中,存储器控制器1200可访问在步骤2003中所检查的物理地址,并将最后被清除到非易失性存储器装置1100的元切片映射和日志重放上下文加载到缓冲存储器装置1300或存储器缓冲器720中。
在步骤2007中,存储器控制器1200可检查在最后被清除的日志重放上下文之后被清除的元切片,并重建日志重放上下文。
在步骤2009中,存储器控制器1200可基于重建的日志重放上下文来确定待被重建的元切片。
在步骤2011中,存储器控制器1200可检查在最后被清除的元切片映射之后被清除的元切片,并重建元切片映射。
在步骤2013中,存储器控制器1200可基于待被重建的元切片的索引和重建的元切片映射来确定待被重放的日志条目。
在步骤2015中,存储器控制器1200可基于重建的元切片映射来检查存储待被重放的日志条目的物理地址。
在步骤2017中,存储器控制器1200可访问在步骤2015中所检查的物理地址,并将待被重放的日志条目和待被重建的元切片加载到缓冲存储器装置1300或存储器缓冲器720中。存储器控制器1200可重放待被重放的日志条目,并校正待被重建的元切片。以这种方式,可重建最后元数据。
可将不是待被重建的元切片的元切片单独或集体地加载到缓冲存储器装置1300或存储器缓冲器720中。例如,每当需要访问包括在不是待被重建的元切片的元切片中的物理地址时,可将包括与相应物理地址有关的映射信息的元切片加载到缓冲存储器装置1300或存储器缓冲器720中。
图21是示出非易失性存储器***的实施例的示图。
参照图21,存储器***30000可被实现在蜂窝电话、智能电话、平板PC、个人数字助理(PDA)或无线通信装置中。存储器***30000可包括非易失性存储器装置1100和存储器控制器1200,其中存储器控制器1200控制非易失性存储器装置1100的操作。存储器控制器1200可响应于处理器3100的控制来控制非易失性存储器装置1100的数据访问操作,例如编程操作、擦除操作或读取操作。
存储器控制器1200可控制被编程到非易失性存储器装置1100中的数据通过显示器3200而输出。
无线电收发器3300可通过天线ANT交换无线电信号。例如,无线电收发器3300可将通过天线ANT接收到的无线电信号改变为可由处理器3100处理的信号。因此,处理器3100可处理从无线电收发器3300输出的信号,并将处理后的信号传输到存储器控制器1200或显示器3200。存储器控制器1200可将由处理器3100处理的信号编程到半导体非易失性存储器装置1100中。另外,无线电收发器3300可将从处理器3100输出的信号改变为无线电信号,并且通过天线ANT将无线电信号输出到外部装置。用于控制处理器3100的操作的控制信号或待由处理器3100处理的数据可由输入装置3400输入,并且输入装置3400可包括诸如触摸板和计算机鼠标的定点装置、小键盘或键盘。处理器3100可控制显示器3200的操作,使得从存储器控制器1200输出的数据、从无线电收发器3300输出的数据或从输入装置3400输出的数据可通过显示器3200输出。
根据实施例,控制非易失性存储器装置1100的操作的存储器控制器1200可形成处理器3100的一部分,或者被形成为独立于处理器3100的芯片。另外,存储器控制器1200可通过图2所示的存储器控制器的示例来形成。
图22是示出存储器***的实施例的示图。
参照图22,存储器***40000可被实现在个人计算机(PC)、平板PC、上网本、电子阅读器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器或MP4播放器中。
存储器***40000可包括非易失性存储器装置1100和存储器控制器1200,其中存储器控制器1200控制非易失性存储器装置1100的操作。
处理器4100可根据通过输入装置4200输入的数据来通过显示器4300输出存储在非易失性存储器装置1100中的数据。输入装置4200的示例可包括诸如触摸板或计算机鼠标的定点装置、小键盘或键盘。
处理器4100可控制存储器***40000的一般操作,并且控制存储器控制器1200的操作。根据实施例,控制非易失性存储器装置1100的操作的存储器控制器1200可形成处理器4100的一部分,或者被形成为独立于处理器4100的芯片。另外,存储器控制器1200可通过图2所示的存储器控制器的示例来形成。
图23是示出存储器***的实施例的示图。
参照图23,存储器***50000可被设置为图像处理装置,例如数码相机、附设有数码相机的移动电话、附设有数码相机的智能电话或附设有数码相机的平板PC。
存储器***50000可包括非易失性存储器装置1100和存储器控制器1200,其中存储器控制器1200控制非易失性存储器装置1100的数据处理操作,例如,编程操作、擦除操作或读取操作。
存储器***50000的图像传感器5200可将光学图像转换成数字信号,并且转换后的数字信号可被传输到处理器5100或存储器控制器1200。响应于处理器5100的控制,转换后的数字信号可通过显示器5300输出,或者通过存储器控制器1200而被存储在半导体非易失性存储器装置1100中。存储器控制器1200可控制被编程到非易失性存储器装置1100中的数据通过显示器5300而输出。
根据实施例,控制非易失性存储器装置1100的操作的存储器控制器1200可形成处理器5100的一部分,或者被形成为独立于处理器5100的芯片。另外,存储器控制器1200可通过图2所示的存储器控制器的示例来形成。
图24是示出存储器***的实施例的示图。
参照图24,存储器***70000可包括存储卡或智能卡。存储器***70000可包括非易失性存储器装置1100、存储器控制器1200和卡接口7100。
存储器控制器1200可控制半导体非易失性存储器装置1100和卡接口7100之间的数据交换。在实施例中,卡接口7100可以是但不限于安全数字(SD)卡接口或多媒体卡(MMC)接口。进一步地,存储器控制器1200可通过图2所示的存储器控制器的示例来形成。
卡接口7100可根据主机60000的协议来接口连接主机60000和存储器控制器1200以进行数据交换。根据实施例,卡接口7100可支持通用串行总线(USB)协议和芯片间(IC)-USB协议。卡接口可指能够支持主机60000使用的协议的硬件、安装在硬件中的软件或者信号传输方法。
当存储器***70000连接到诸如PC、平板PC、数码相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件或数字机顶盒的主机60000的主机接口6200时,主机接口6200可在微处理器6100的控制下通过卡接口7100和存储器控制器1200与非易失性存储器装置1100进行数据通信。
根据本公开,结合存储器***的操作,可减少重建元数据所耗费的时间。
对于本领域技术人员显而易见的是,在不脱离本发明的实质或范围的情况下,可对本发明的上述示例性实施例进行各种修改。因此,只要修改落入所附权利要求及其等同方案的范围内,本发明意在覆盖所有这些修改。

Claims (19)

1.一种存储器***,包括:
缓冲存储器,存储构成元数据的多个元切片;以及
存储器控制器,将存储在所述缓冲存储器中的多个元切片之中的、被更新的元切片标记为脏元切片,生成包括与所述脏元切片对应的更新信息的日志数据,并且将所述日志数据与所述脏元切片中的一个一起清除到非易失性存储器装置,
其中所述更新信息包括所述脏元切片的更新之前和更新之后的地址信息以及与所述更新有关的操作类型信息,
其中,所述多个元切片中的每一个是与至少一个条带相对应的信息,或与至少一个页面相对应的信息。
2.根据权利要求1所述的存储器***,其中每当所述日志数据被生成到预定大小时,所述存储器控制器将所述日志数据与所述脏元切片中的一个一起清除。
3.根据权利要求1所述的存储器***,其中所述存储器控制器根据循环方式在存储在所述缓冲存储器中的元切片中搜索脏元切片,并且每当所述日志数据被生成到预定大小时,所述存储器控制器将找到的脏元切片与所述日志数据一起清除。
4.根据权利要求3所述的存储器***,其中当新日志数据被生成到预定大小时,所述存储器控制器在先前发现的脏元切片之后的元切片中搜索新脏元切片。
5.根据权利要求3所述的存储器***,其中:
所述缓冲存储器存储元切片映射和日志重放上下文,其中所述元切片映射包括与物理地址有关的信息,所述物理地址存储与所述日志数据一起被清除的脏元切片,所述日志重放上下文包括与所述脏元切片有关的索引信息,并且
每当所述存储器控制器将所述日志数据与所述脏元切片中的一个一起清除到所述非易失性存储器装置时,所述存储器控制器更新所述元切片映射和所述日志重放上下文。
6.根据权利要求5所述的存储器***,其中当完成n轮搜索时,所述存储器控制器将所述元切片映射和所述日志重放上下文清除到所述非易失性存储器装置,其中n为自然数。
7.根据权利要求6所述的存储器***,其中所述元切片映射包括与存储在将先前元切片映射清除之后与日志数据一起被清除的脏元切片的物理地址有关的信息。
8.根据权利要求1所述的存储器***,其中每当所述脏元切片中的一个脏元切片被清除时,所述存储器控制器将所述一个脏元切片改变为清洁元切片。
9.根据权利要求1所述的存储器***,其中所述元数据包括逻辑到物理地址映射信息、有效页面信息和可靠性信息中的至少一个。
10.一种存储器***,包括:
非易失性存储器装置,在构成元数据的多个元切片之中的脏元切片、包括与所述脏元切片对应的更新信息的日志条目、以及包括与所述脏元切片有关的索引信息的日志重放上下文被清除到所述非易失性存储器装置;
缓冲存储器,存储从所述非易失性存储器装置加载的信息;以及
存储器控制器,将所述日志重放上下文加载到所述缓冲存储器中,并通过反映关于以下的信息来重建被加载到所述缓冲存储器中的日志重放上下文:所述脏元切片之中的、在将所述日志重放上下文清除之后被清除的脏元切片,
其中所述脏元切片是所述多个元切片之中、被更新的元切片,并且所述更新信息包括所述脏元切片的更新之前和更新之后的地址信息以及与所述更新有关的操作类型信息,
其中,所述多个元切片中的每一个是与至少一个条带相对应的信息,或与至少一个页面相对应的信息。
11.根据权利要求10所述的存储器***,其中多个日志重放上下文被清除到所述非易失性存储器装置,并且
所述存储器控制器将所述多个日志重放上下文之中的、最近被清除的日志重放上下文加载到所述缓冲存储器中。
12.根据权利要求10所述的存储器***,其中所述存储器控制器基于重建的日志重放上下文来确定待被重建的元切片。
13.根据权利要求12所述的存储器***,其中所述存储器控制器将所述待被重建的元切片和与所述待被重建的元切片一起被清除的日志条目加载到所述缓冲存储器中,并且重放所述日志条目以校正所述待被重建的元切片。
14.根据权利要求12所述的存储器***,其中包括与物理地址有关的信息的元切片映射被进一步清除到所述非易失性存储器装置,所述物理地址存储与所述日志条目一起被清除的脏元切片,并且
所述存储器控制器将所述元切片映射加载到所述缓冲存储器中,通过反映关于以下的信息来重建所述元切片映射:所述脏元切片之中的、在将所述元切片映射清除之后被清除的脏元切片,并且通过使用重建的元切片映射来检查存储所述待被重建的元切片的物理地址。
15.根据权利要求14所述的存储器***,其中多个元切片映射被清除到所述非易失性存储器装置,并且
所述存储器控制器将所述多个元切片映射之中的、最近被清除的元切片映射加载到所述缓冲存储器中。
16.一种操作存储器***的方法,所述方法包括:
将构成元数据的多个元切片加载到缓冲存储器中;
将所述多个元切片之中的、被更新的元切片标记为脏元切片,其中更新信息包括所述脏元切片的更新之前和更新之后的地址信息以及与所述更新有关的操作类型信息;
生成日志条目,所述日志条目包括与所述脏元切片中的至少一个对应的所述更新信息;
每当生成一个日志条目时,在被加载到所述缓冲存储器中的多个元切片中搜索所述脏元切片中的一个,并将一个日志条目与找到的脏元切片一起清除到非易失性存储器装置;
更新包括与物理地址有关的信息的元切片映射,所述物理地址存储与所述日志条目一起被清除的脏元切片;
更新日志重放上下文,所述日志重放上下文包括与所述日志条目一起被清除的脏元切片有关的索引信息;以及
将更新的元切片映射和更新的日志重放上下文清除到所述非易失性存储器装置,
其中,所述多个元切片中的每一个是与至少一个条带相对应的信息,或与至少一个页面相对应的信息。
17.根据权利要求16所述的方法,其中以循环方式搜索所述脏元切片,并且
每当完成n轮搜索时,执行将所述更新的元切片映射和所述更新的日志重放上下文清除到所述非易失性存储器装置,其中n为自然数。
18.根据权利要求16所述的方法,进一步包括:
将被清除到所述非易失性存储器装置的日志重放上下文加载到所述缓冲存储器中;
使用关于以下的信息来重建被加载到所述缓冲存储器中的日志重放上下文:在被清除到所述非易失性存储器装置的脏元切片之中的、在将所述日志重放上下文清除之后被清除的脏元切片;
基于重建的日志重放上下文来确定执行日志重放操作的、待被重放的日志条目;
将与所述待被重放的日志条目一起被清除的元切片加载到所述缓冲存储器中;并且
通过校正被加载到所述缓冲存储器中的元切片来重建所述元数据,其中通过重放所述待被重放的日志条目来校正被加载到所述缓冲存储器中的元切片。
19.根据权利要求18所述的方法,进一步包括:
将被清除到所述非易失性存储器装置的元切片映射加载到所述缓冲存储器中;
使用关于以下的信息来重建被加载到所述缓冲存储器中的元切片映射:在被清除到所述非易失性存储器装置的脏元切片之中的、在将所述元切片映射清除之后被清除的脏元切片;以及
通过使用重建的元切片映射来检查存储所述待被重放的日志条目的物理地址。
CN201811063250.4A 2017-11-13 2018-09-12 存储器***及其操作方法 Active CN109783009B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0150761 2017-11-13
KR20170150761 2017-11-13

Publications (2)

Publication Number Publication Date
CN109783009A CN109783009A (zh) 2019-05-21
CN109783009B true CN109783009B (zh) 2022-06-07

Family

ID=66432204

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811063250.4A Active CN109783009B (zh) 2017-11-13 2018-09-12 存储器***及其操作方法

Country Status (3)

Country Link
US (1) US10997065B2 (zh)
KR (1) KR20190054974A (zh)
CN (1) CN109783009B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200104601A (ko) 2019-02-27 2020-09-04 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR102456173B1 (ko) 2017-10-27 2022-10-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20210022260A (ko) * 2019-08-20 2021-03-03 삼성전자주식회사 메모리 컨트롤러의 구동방법, 메모리 컨트롤러 및 스토리지 장치
US11651209B1 (en) 2019-10-02 2023-05-16 Google Llc Accelerated embedding layer computations
KR20220005832A (ko) * 2020-07-07 2022-01-14 에스케이하이닉스 주식회사 메타 데이터 관리를 위한 메모리 시스템 및 메모리 시스템의 동작방법
KR102456176B1 (ko) 2020-05-21 2022-10-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
KR20210063724A (ko) 2019-11-25 2021-06-02 에스케이하이닉스 주식회사 메모리 시스템
KR20210120240A (ko) 2020-03-26 2021-10-07 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR102435253B1 (ko) 2020-06-30 2022-08-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR102406449B1 (ko) 2020-06-25 2022-06-08 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR102495910B1 (ko) 2020-04-13 2023-02-06 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
US11755476B2 (en) 2020-04-13 2023-09-12 SK Hynix Inc. Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device
KR20220005111A (ko) * 2020-07-06 2022-01-13 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20220019570A (ko) * 2020-08-10 2022-02-17 에스케이하이닉스 주식회사 메모리 시스템 및 이에 포함된 메모리 컨트롤러의 동작 방법
KR20220021772A (ko) * 2020-08-14 2022-02-22 에스케이하이닉스 주식회사 메모리 시스템 및 이에 포함된 메모리 장치의 동작 방법
CN114115441B (zh) 2020-08-26 2024-05-17 长鑫存储技术有限公司 存储器
CN114115437B (zh) 2020-08-26 2023-09-26 长鑫存储技术有限公司 存储器
CN114115440B (zh) 2020-08-26 2023-09-12 长鑫存储技术有限公司 存储器
CN114115439A (zh) 2020-08-26 2022-03-01 长鑫存储技术有限公司 存储器
US11537326B2 (en) 2020-09-10 2022-12-27 Western Digital Technologies, Inc. Relocation flow using CbA technology
KR20220048871A (ko) * 2020-10-13 2022-04-20 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
US11620084B2 (en) 2020-12-30 2023-04-04 Samsung Electronics Co., Ltd. Storage device including memory controller and operating method of memory controller
US12014052B2 (en) * 2021-03-22 2024-06-18 Google Llc Cooperative storage architecture
CN113010616B (zh) * 2021-04-26 2024-07-19 广州小鹏汽车科技有限公司 数据处理方法和数据处理***
KR102435910B1 (ko) * 2022-03-15 2022-08-25 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법
US20240054056A1 (en) * 2022-08-12 2024-02-15 Netapp Inc. Recovery mechanism with selective ordering and concurrent operations

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2154511A1 (en) * 1994-09-08 1996-03-09 Lorenzo Falcon, Jr. Video optimized media streamer with distributed video data storage

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9632870B2 (en) * 2007-03-29 2017-04-25 Violin Memory, Inc. Memory system with multiple striping of raid groups and method for performing the same
US9251012B2 (en) * 2008-01-18 2016-02-02 Tivo Inc. Distributed backup and retrieval system
US9396067B1 (en) * 2011-04-18 2016-07-19 American Megatrends, Inc. I/O accelerator for striped disk arrays using parity
KR101790165B1 (ko) * 2011-08-09 2017-11-20 삼성전자 주식회사 메모리 시스템 및 그것의 메타 데이터 관리 방법
US8943282B1 (en) * 2012-03-29 2015-01-27 Emc Corporation Managing snapshots in cache-based storage systems
KR101482013B1 (ko) 2012-05-30 2015-01-14 한국외국어대학교 연구산학협력단 플래시 메모리 기반 저장 시스템의 변환 테이블인 메타데이터 데이터 업데이트 방법 및 장치
US8805855B2 (en) * 2012-08-17 2014-08-12 International Business Machines Corporation Efficiently storing and retrieving data and metadata
US8880786B2 (en) * 2012-09-28 2014-11-04 Apple Inc. Flash translation layer (FTL) database journaling schemes
US9197340B2 (en) * 2012-10-16 2015-11-24 Cadence Design Systems Inc. Connector and interface circuit for simultaneous content streaming and user data from handheld devices
US9081689B2 (en) * 2013-01-14 2015-07-14 Freescale Semiconductor, Inc. Methods and systems for pushing dirty linefill buffer contents to external bus upon linefill request failures
US9053012B1 (en) * 2013-03-15 2015-06-09 Pmc-Sierra, Inc. Systems and methods for storing data for solid-state memory
US9697219B1 (en) * 2014-12-29 2017-07-04 EMC IP Holding Company LLC Managing log transactions in storage systems
US11175831B2 (en) * 2016-10-14 2021-11-16 Netapp, Inc. Read and write load sharing in a storage array via partitioned ownership of data blocks
US10628300B2 (en) * 2017-11-13 2020-04-21 Western Digital Technologies, Inc. RAID stripe physical placement

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2154511A1 (en) * 1994-09-08 1996-03-09 Lorenzo Falcon, Jr. Video optimized media streamer with distributed video data storage

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
盛秀杰等.PetroV分布式数据存储与分析框架设计.《石油地球物理勘探》.2017,(第04期),第14+259、267页. *

Also Published As

Publication number Publication date
US10997065B2 (en) 2021-05-04
US20190146911A1 (en) 2019-05-16
CN109783009A (zh) 2019-05-21
KR20190054974A (ko) 2019-05-22

Similar Documents

Publication Publication Date Title
CN109783009B (zh) 存储器***及其操作方法
US11334448B2 (en) Memory system and operating method thereof
US11068408B2 (en) Memory system and operating method thereof
US9507711B1 (en) Hierarchical FTL mapping optimized for workload
US9880939B2 (en) Memory system and information processing system
JP5728672B2 (ja) ハイブリッドメモリ管理
US11194520B2 (en) Memory system and operating method thereof
US20140075100A1 (en) Memory system, computer system, and memory management method
US10606758B2 (en) Memory system and method of operating the same
US11386005B2 (en) Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache
US8694748B2 (en) Data merging method for non-volatile memory module, and memory controller and memory storage device using the same
US20190138440A1 (en) Memory system and operating method thereof
US20190121727A1 (en) Memory system and method for operating the same
US10283196B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US10977144B2 (en) Memory system and method of operating the same
US10769060B2 (en) Storage system and method of operating the same
US20210232343A1 (en) Memory controller, memory system, and operating method thereof
CN112783435A (zh) 存储设备和操作存储设备的方法
TWI831297B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置
TWI823649B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant