CN109840214B - 数据存储装置及其操作方法 - Google Patents

数据存储装置及其操作方法 Download PDF

Info

Publication number
CN109840214B
CN109840214B CN201810889522.XA CN201810889522A CN109840214B CN 109840214 B CN109840214 B CN 109840214B CN 201810889522 A CN201810889522 A CN 201810889522A CN 109840214 B CN109840214 B CN 109840214B
Authority
CN
China
Prior art keywords
data
block
memory
map data
address
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
CN201810889522.XA
Other languages
English (en)
Other versions
CN109840214A (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 CN109840214A publication Critical patent/CN109840214A/zh
Application granted granted Critical
Publication of CN109840214B publication Critical patent/CN109840214B/zh
Active 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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
    • 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/14Error detection or correction of the data by redundancy in operation
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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/7211Wear leveling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

本发明涉及一种数据存储装置,其包括:非易失性存储器装置,非易失性存储器装置包括存储块组和映射数据块,每个存储块组包括存储从主机装置传输的数据的第一页面组和存储与数据相对应的地址映射信息的第二页面组;以及控制器,其确定存储在第二页面组被损坏的第一存储块组中的有效数据的数量是否等于或小于正在被使用的开放映射数据块的可用容量,并且当有效数据的数量等于或小于可用容量时,控制非易失性存储器装置以将与第一存储块组的有效数据相对应的地址映射信息存储在开放映射数据块中。

Description

数据存储装置及其操作方法
相关申请的交叉引用
本申请要求于2017年11月28日提交的申请号为10-2017-0160847的韩国专利申请的优先权,其整体通过引用整体并入本文。
技术领域
各个实施例总体涉及一种半导体装置,并且更特别地,涉及一种数据存储装置及其操作方法。
背景技术
近来,用于计算机环境的范例已经转变至普适计算,使得计算机***可以随时随地使用。由于该事实,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经快速增长。通常,这种便携式电子装置使用数据存储装置,数据存储装置使用用于存储数据的存储器装置。
使用存储器装置的数据存储装置提供的优点在于,由于其不存在机械驱动部件,因此稳定性和耐久性优良,信息访问速度高并且功耗小。具有这种优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪速存储(UFS)装置和固态硬盘(SSD)。
发明内容
本发明公开的各个实施例涉及一种具有改进的操作性能的数据存储装置及其操作方法。
根据本发明第一方面的各个实施例,提供一种数据存储装置。数据存储装置可以包括:非易失性存储器装置,其包括多个存储块组和多个映射数据块,每个存储块组包括存储从主机装置传输的数据的第一页面组和存储与数据相对应的地址映射信息的第二页面组;以及控制器,当在多个存储块组中出现第二页面组被损坏的第一存储块组时,控制器确定存储在第一存储块组中的有效数据的数量是否等于或小于多个映射数据块中的、正在被使用的开放映射数据块的可用容量,以及当存储在第一存储块组中的有效数据的数量等于或小于开放映射数据块的可用容量时,控制器控制非易失性存储器装置以将与第一存储块组的有效数据相对应的地址映射信息存储在开放映射数据块中。
根据本发明第二方面的各个实施例,提供一种数据存储装置的操作方法。该数据存储装置包括:非易失性存储器装置,其包括多个存储块组和多个映射数据块,每个存储块组具有存储从主机装置传输的数据的第一页面组和存储与数据相对应的地址映射信息的第二页面组;以及控制器,其用于控制非易失性存储器装置,该方法可以包括:当在多个存储块组中出现第二页面组被损坏的第一存储块组时,控制器将存储在第一存储块组中的有效数据的数量与多个映射数据块中的、正在被使用的开放映射数据块的可用容量进行比较;并且当存储在第一存储块组中的有效数据的数量等于或小于开放映射数据块的可用容量时,控制器控制非易失性存储器装置以将与第一存储块组的有效数据相对应的地址映射信息存储在开放映射数据块中。
根据本发明第三方面的各个实施例,提供一种数据存储装置。数据存储装置可以包括:存储器装置,其包括第一存储块至第三存储块;以及控制器,当第一存储块被损坏时,控制器控制存储器装置:当第二存储块的可用容量等于或大于第一存储块的一个或多个物理到逻辑(P2L)地址条目的大小时,将第一存储块的一个或多个P2L地址条目移动到第二存储块中,并且当第二存储块的可用容量小于第一存储块的一个或多个P2L地址条目的大小时,将第一存储块的一个或多个P2L地址条目移动到第三存储块中。
根据本发明的各个实施例,预定数量的P2L地址条目可以被存储在每个映射数据块中。本发明可以改进垃圾收集(GC)并且可以防止其成本过度增加。
此外,根据本发明的各个实施例,多个超级块的P2L地址条目可以被存储在一个映射数据块中,从而提高有限数量的映射数据块的使用效率。
附图说明
图1是示出根据本公开的实施例的数据存储装置的配置的框图。
图2是示出根据本公开的实施例的非易失性存储器装置的配置的示图。
图3是示出在根据本公开的实施例的数据存储装置中驱动的软件的示图。
图4是示出包括在一个超级块中的存储块的配置的示例的示图。
图5是概念性地示出非易失性存储器装置和映射数据块的区域分配的示例的示图。
图6是帮助说明根据其数量存储超级块的P2L条目的示图。
图7是示出根据本公开的实施例的数据存储装置的操作方法的流程图。
图8是示出包括根据本公开的实施例的固态驱动器(SSD)的数据处理***的示例的示图。
图9是示出图8所示的控制器的示例的示图。
图10是示出包括根据本公开的实施例的数据存储设备的数据处理***的示例的示图。
图11是示出包括根据本公开的实施例的数据存储设备的数据处理***的示例的示图。
图12是示出包括根据本公开的实施例的数据存储装置的网络***的示例的示图。
图13是示出包括在根据本公开的实施例的数据存储设备中的非易失性存储器装置的示例的框图。
具体实施方式
在下文中,以下将通过本发明的实施例的各个示例参照附图来描述数据存储装置及其操作方法。
在描述本发明的各个实施例时,可以省略对已知现有技术的详细描述,以避免用不必要的已知细节模糊本发明的公开。
并且,注意的是,诸如第一和第二的术语可以用于描述各种部件,然而,部件不受这些术语的限制,而是术语仅用于将相似部件彼此区分开。
进一步注意的是,如本文使用的,单数形式也旨在包括复数形式,除非上下文另有清楚地说明。
将进一步理解的是,术语“包含(includes)”和“包含有(including)”可以与开放式术语“包括(comprises)”、“包括有(comprising)”互换使用,以指定任何所述元件的存在并且不排除一个或多个其它元件的存在或添加。
并且,如本文使用的,术语“和/或”包括一个或多个相关的所列项目的任意和所有组合。
在以下描述中,为了提供本发明的彻底理解,阐述了许多具体细节。本发明可以在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了不使本发明不必要模糊,未详细地描述公知的进程结构和/或进程。
还应注意的是,在一些情况下,对相关领域的技术人员将显而易见的是,结合一个实施例描述的特征或元件可单独使用或与另一实施例的其它特征或元件结合使用,除非另有明确说明。
图1是示出根据实施例的数据存储装置10的配置的示例的框图。在本实施例中,数据存储装置10可以存储待由诸如移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、车载信息娱乐***等的主机装置(未示出)访问的数据。数据存储装置10也可以被称为存储器***。数据存储装置10可以经由任何合适的方法可操作地联接到主机。
数据存储装置10可以根据主机接口被制造为各种类型的存储装置中的任意一种,其中主机接口表示关于主机装置的传输协议。例如,数据存储装置10可以为诸如以下的各种类型的存储装置中的任意一种:固态硬盘、以MMC、eMMC、RS-MMC和微型-MMC形式的多媒体卡、以SD、迷你-SD和微型-SD形式的安全数字卡、通用串行总线(USB)存储装置、通用闪速存储(UFS)装置、个人计算机存储卡国际协会(PCMCIA)卡式存储装置、***组件互连(PCI)卡式存储装置、高速PCI(PCI-E)卡式存储装置、标准闪存(CF)卡、智能媒体卡、记忆棒等。
数据存储装置10可以被制造为各种封装类型中的任意一种。例如,数据存储装置10可以被制造为诸如以下的各种封装类型中的任意一种:堆叠封装(POP)、***级封装(SIP)、片上***(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
参照图1,数据存储装置10可以包括非易失性存储器装置100和控制器200。
非易失性存储器装置100可以用作数据存储装置10的存储介质。非易失性存储器装置100可以根据存储器单元通过诸如以下的各种类型的非易失性存储器装置中的任意一种来配置:NAND闪速存储器装置、NOR闪速存储器装置、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧道磁阻(TMR)层的磁性随机存取存储器(MRAM)、使用硫族化物合金的相变随机存取存储器(PRAM)以及使用过渡金属化合物的电阻式随机存取存储器(RERAM)。
非易失性存储器装置100可以包括存储器单元阵列,存储器单元阵列具有分别设置在多个位线(未示出)和多个字线(未示出)彼此交叉的区域处的多个存储器单元。存储器单元阵列可以包括多个存储块,并且多个存储块中的每一个可以包括多个页面。
例如,存储器单元阵列中的每个存储器单元可以是存储1位数据的单层单元(SLC)、能够存储2位数据的多层单元(MLC)、能够存储3位数据的三层单元(TLC)或能够存储4位数据的四层单元(QLC)。存储器单元阵列可以包括来自单层单元、多层单元、三层单元和四层单元中的至少一个的多个存储器单元。存储器单元阵列可以包括二维水平结构的存储器单元或三维垂直结构的存储器单元。
图2是示出非易失性存储器装置的示例性配置的示图。
参照图2,非易失性存储器装置100可以包括多个管芯D1至Dn。管芯D1至Dn中的每一个可以包括多个存储块B1至Bm。虽然未在图2中示出,但是管芯D1至Dn中的每一个可以包括多个平面,并且平面中的每一个可以包括多个存储块。在图2中,为了简化图示,省略了平面。
如图2所示,非易失性存储器装置100可以包括多个超级块,即,第一超级块SB1至第m超级块SBm。第一超级块SB1至第m超级块SBm中的每一个可以包括多个存储块。例如,第一超级块SB1可以包括第一管芯D1至第n管芯Dn的第一存储块B1。类似地,第二超级块SB2可以包括第一管芯D1至第n管芯Dn的第二存储块B2,并且依此类推,第m超级块SBm可以包括第一管芯D1至第n管芯Dn的第m存储块Bm。
控制器200可以包括主机接口210、处理器220、随机存取存储器230和存储器接口240。
主机接口210可以将主机装置(未示出)和数据存储装置10接口连接。例如,主机接口210可以通过诸如以下的标准传输协议中的任意一种与主机装置400通信:通用串行总线(USB)协议、通用闪速存储(UFS)协议、多媒体卡(MMC)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机***接口(SCSI)协议、串列SCSI(SAS)协议、***组件互联(PCI)协议和高速PCI(PCI-E)协议。
处理器220可以由微控制单元(MCU)或中央处理单元(CPU)来配置。处理器220可以处理从主机装置传输的请求。为了处理请求,处理器220可以驱动被加载在随机存取存储器230中的代码类型的指令或算法,即软件,并且可以控制内部功能块和非易失性存储器装置100。
随机存取存储器230可以由包括例如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)的任何合适的随机存取存储器来配置。随机存取存储器230可以存储待由处理器220驱动的软件。进一步地,随机存取存储器230可以存储驱动软件所需的数据。即,随机存取存储器230可以用作处理器220的工作存储器。
图3是示出存储在随机存取存储器230中的软件的示图。软件可以由处理器220驱动。
在非易失性存储器装置100是闪速存储器装置的情况下,存储在随机存取存储器230中并且由处理器220驱动的软件被称为闪存转换层FTL。软件可以由处理器220驱动以控制非易失性存储器装置100的固有操作,并且提供与主机装置的设备兼容性。通过驱动软件(例如,闪速存储器的情况下的FTL),主机装置可以将数据存储装置10识别为并且用作诸如硬盘的通用数据存储装置。被加载在随机存取存储器230中的软件(例如,FTL)可以包括用于执行各种功能的多个模块和驱动模块所需的元数据。
参照图3,示出的软件是FTL。根据图3的实施例的FTL可以包括损耗均衡模块WLM、坏块管理模块BBM、垃圾收集模块GCM、地址映射MAP、交叉(interleaving)模块IM和电源故障恢复模块PRM。然而,应当注意的是,FTL中包括的模块不特别限于此。
损耗均衡模块WLM可以管理非易失性存储器装置100的存储块的损耗水平。由于重复的擦除操作和编程操作,非易失性存储器装置100的存储器单元可能磨损。磨损的存储器单元可能导致故障(例如,物理缺陷)。损耗均衡模块WLM可以管理各个存储块的编程-擦除计数以保持均衡,从而防止某个存储块比其它存储块更快地磨损。即,损耗均衡模块WLM可以管理包括在非易失性存储器装置100中的所有存储块的损耗水平以保持相似的水平。
坏块管理模块BBM可以管理非易失性存储器装置100的存储块中的已经发生故障的存储块。如上所述,在磨损的存储器单元中可能发生故障(例如,物理缺陷)。存储在故障的存储器单元中的数据可能无法正常地读取。此外,数据可能无法被正常地存储在故障的存储器单元中。坏块管理模块BBM可以管理包括故障的存储器单元的存储块以使其不被使用。
垃圾收集模块GCM可以管理非易失性存储器装置100以执行将存储和分布在非易失性存储器装置100的存储块中的有效数据收集到一个存储块并擦除无效数据的操作。
由闪速存储器装置配置的非易失性存储器装置100由于其结构特性而不支持数据的重写。如果数据被再次编程在处于编程状态的存储器单元中,则不能确保存储在对应存储器单元中的数据的可靠性。因此,为了将数据编程在处于编程状态的存储器单元中,应当先进行擦除操作。
由于以存储块为单位对非易失性存储器装置100执行擦除操作,因此需要相当长的时间。因此,如果与待编程的地址相对应的存储器单元处于编程状态,则处理器220将数据编程在已经处于擦除状态的另一存储器单元中,而不是在擦除对应的存储器单元之后编程数据。在该情况下,存储在最初被编程的存储器单元中的数据可以是无效数据,并且存储在另一存储器单元中的数据可以是有效数据。
由于处理器220的这种操作,有效数据和无效数据被混合在非易失性存储器装置100中。如果必要,处理器220可以通过驱动垃圾收集模块GCM来执行将分布的有效数据收集在一个地方,即一个存储块中并且擦除无效数据的一系列操作。这样的一系列操作被称为垃圾收集操作。
地址映射MAP可以存储用于地址转换操作的地址映射信息的片段。在主机装置访问数据存储装置10(例如,请求读取操作或编程操作)的情况下,主机装置可以将逻辑地址提供给数据存储装置10。通过使用地址映射MAP,闪存转换层FTL可以将逻辑地址转换为非易失性存储器装置100的实际地址,即物理地址,并且可以对与转换的物理地址相对应的存储器单元执行读操作或编程操作。
交叉模块IM可以管理包括在非易失性存储器装置100中的一个组中的多个存储块以并行操作。如图2所示,非易失性存储器装置100可以包括第一超级块SB1至第m超级块SBm。为了增加数据处理量,处理器220可以驱动交叉模块IM,并且由此同时对包括在第一超级块SB1至第m超级块SBm中的每一个中的多个存储块执行编程操作和读取操作。换言之,通过驱动交叉模块IM,处理器220可以并行操作每个超级块中的存储块。例如,处理器220可以并行操作包括在第一超级块SB1中的第一存储块B1,或者包括在第二超级块SB2中的第二存储块B2,并且依此类推,第m超级块SBm中的第m存储块。
如果在对存储器单元的编程操作期间,供给到数据存储装置10的电力被突然切断,则无法正常完成编程操作。当数据存储装置10从意外的电源故障(例如,突然断电(SPO))中恢复时,处理器220可以通过使用电源故障恢复模块PRM来管理由于电源故障而具有高可能性发生错误的存储器单元、页面或存储块。
随机存取存储器230可以用作数据缓冲存储器或数据高速缓存存储器。例如,随机存取存储器230可以临时存储待从主机装置传输到非易失性存储器装置100的数据或待从非易失性存储器装置100传输到主机装置的数据。
存储器接口240可以根据处理器220的控制来控制非易失性存储器装置100。存储器接口240也可以被称为存储器控制器。存储器接口240可以将控制信号提供给非易失性存储器装置100。控制信号可以包括用于控制非易失性存储器装置100的命令、地址等。存储器接口240可以将数据提供给非易失性存储器装置100,或者可以被提供来自非易失性存储器装置100的数据。存储器接口240可以通过包括一个或多个信号线的通道CH与非易失性存储器装置100联接。
图4是示出包括在一个超级块中的存储块的配置的示图。虽然图4作为示例示出了图2的第一超级块SB1,但是剩余超级块的存储块也可以具有与图4中所示那些存储块相同的配置。
第一超级块SB1可以包括第一管芯D1至第n管芯Dn中包括的n个第一存储块B1。第一存储块B1中的每一个可以包括k个页面P1至Pk。此处,n和k可以是等于或大于1的整数。第一页面P1至第k页面Pk可以分别对应于第一字线至第k字线(未示出)。第一页面P1至第k页面Pk中的每一个可以是一个物理页面和一个或多个逻辑页面。
第一页面P1至第k页面Pk可以被划分为第一页面组PG1和第二页面组PG2。在图4中,示出了第一页面组PG1包括第一页面P1至第(k-1)页面Pk-1并且第二页面组PG2包括第k页面Pk。然而,应当注意的是,页面组的配置不特别限于此。
第一页面组PG1的第一页面P1至第(k-1)页面Pk-1中的每一个可以包括用户区域UR和元区域MR。用户区域UR可以是存储从主机装置传输的编程数据的区域。元区域MR可以是存储关于从主机装置传输的编程数据的信息、关于与编程请求相关的编程操作的信息、关于被执行编程操作的存储块的信息等的区域。关于存储在相应页面中的编程数据的地址映射信息可以被存储在元区域MR中。例如,在第一页面组PG1的第一页面P1至第(k-1)页面Pk-1中的每一个的元区域MR中,可以存储在相应页面中存储的编程数据的物理到逻辑(P2L)地址条目。
存储在第一页面P1至第(k-1)页面Pk-1的元区域MR中的P2L地址条目可以被存储在第二页面组PG2的第k页面Pk中。第二页面组PG2的第k页面Pk可以用作地址区域AR,其中存储在第一超级块SB1的用户区域UR中的编程数据的地址映射信息(例如,P2L地址条目)被存储在地址区域AR中。
如果对第一超级块SB1的第一页面组PG1的第一页面P1至第(k-1)页面Pk-1的编程操作完成,则处理器220可以读出存储在第一页面组PG1的第一页面P1至第(k-1)页面Pk-1的元区域MR中的所有P2L地址条目并且可以将读出的P2L地址条目存储在第二页面组PG2的第k页面Pk中。
如果在处理器220将从第一页面组PG1读出的P2L地址条目存储在第二页面组PG2的第k页面Pk中时发生突然断电(SPO),则存储在第一超级块SB1的第k页面Pk中的P2L地址条目可能被损坏,并且第一超级块SB1的第k页面Pk在被执行擦除操作之前可能不再被使用。
每当在对第一超级块SB1的第一页面组PG1的第一页面P1至第(k-1)页面Pk-1顺序地执行编程操作时发生突然断电(SPO)时,处理器220检测无效页面,生成包括检测到的无效页面的至少一个虚拟(dummy)页面,并且从虚拟页面之后的页面继续编程操作。例如,如果在对第一超级块SB1的第(k-1)页面Pk-1执行编程操作时发生突然断电(SPO),则第一超级块SB1的第k页面Pk成为虚拟页面并且不能用作地址区域AR。
以该方式,如果在超级块SB1至SBm中出现最后页面(例如,第k页面Pk)不能用作地址区域AR的超级块SB,则处理器220可以将存储在相应超级块SB的第一页面P1至第(k-1)页面Pk-1的元区域MR中的P2L地址条目存储在***块(在下文中,被称为“映射数据块”)中,其中***块被分配为用于存储映射数据。
图5是示出非易失性存储器装置100的区域分配和映射数据块的示图。参照图5,非易失性存储器装置100的整个区域可以被分配为***区域100A和用户区域100B。
***区域100A可以存储用于管理非易失性存储器装置100的元信息、关于非易失性存储器装置100的特性或者有效管理所需的内部操作(例如,性能控制、合并、损耗均衡、垃圾收集等)的信息、映射表等。虽然未在图5中具体示出,但是***区域100A可以包括多个存储块,并且***区域100A的存储块可以以单个块为单位来管理。单个块可以表示一个物理块。
非易失性存储器装置100的用户区域100B可以存储来自主机装置的请求编程的数据(编程数据)等。虽然未在图5中具体示出,但是用户区域100B可以包括多个存储块,并且用户区域100B的存储块可以以图2所示的超级块SB(即,多个物理块)为单位来管理。
非易失性存储器装置100的***区域100A和用户区域100B可以被分配有预定大小。控制器200可以将非易失性存储器装置100的用户区域100B的大小信息传输到主机装置,并且在没有限制意义的情况下,主机装置可以基于传输的用户区域100B的大小信息来设置待被传输到数据存储装置10的逻辑地址的长度。逻辑地址的长度可以对应于逻辑地址的数量。
存储块之中的预定数量的存储块可以被分配为包括在非易失性存储器装置100的***区域100A中的映射数据块。图5示出其中分配i个映射数据块MDB1至MDBi的示例。此处,‘i’可以是等于或大于1的整数。第一映射数据块MDB1至第i映射数据块MDBi中的每一个可以存储一个或多个超级块的P2L地址条目。
可以预先设置可以存储在第一映射数据块MDB1至第i映射数据块MDBi中的每一个中的P2L地址条目的最大数量。通常,由于P2L地址条目对应于每个有效数据,因此超级块SB的P2L地址条目的数量可以对应于存储在该超级块SB中的有效数据的数量。即,在本实施例中,超级块SB的有效数据的数量与该超级块SB的P2L地址条目的数量相同。在对一个或多个相关超级块SB执行垃圾收集(GC)之后,可以通过擦除操作擦除存储在第一映射数据块MDB1至第i映射数据块MDBi中的P2L地址条目。
如上所述,垃圾收集(GC)是指将分布在多个存储块中的有效数据收集到一个存储块中,并且对其中仅剩下无效数据的存储块执行擦除操作。待被收集到一个存储块中的有效数据的数量越大,垃圾收集(GC)成本就越高。垃圾收集(GC)成本的增加意味着执行垃圾收集(GC)所需的时间增加。如果执行垃圾收集(GC)所需的时间增加,则数据存储装置10的操作性能可能劣化。
如果P2L地址条目被存储在一个映射数据块中而没有数量限制,则映射数据块的利用率增加,但是对与存储在单个映射数据块中的P2L地址条目相关的超级块的垃圾收集(GC)的成本增加。如果仅一个超级块的P2L地址条目被存储在一个映射数据块中,则垃圾收集(GC)的成本降低,但是映射数据块的利用率降低。
考虑到这一点,在本实施例中,预先设置了待被存储在一个映射数据块中的P2L地址条目的最大数量,并且对一个或多个超级块的P2L地址条目进行存储,使得不超过针对每个映射数据块设置的P2L地址条目的最大数量。
图6是帮助说明根据与各个超级块相对应的P2L地址条目的数量来存储超级块的P2L地址条目的示图。为了便于说明,在图6中,假设第一超级块SB1至第四超级块SB4的地址区域AR(参见图4)被损坏。而且,假设存储在第一超级块SB1至第四超级块SB4的元区域MR中的P2L地址条目的数量分别为30、100、20和50。此外,假设可以存储在第一映射数据块MDB1至第i映射数据块MDBi中的每一个中的P2L地址条目的最大数量被设置为100。在下文中,使用中的映射数据块被称为‘开放映射数据块’,并且使用前的映射数据块被称为‘空闲映射数据块’。
处理器220检查第一超级块SB1的有效数据的数量。由于地址映射信息的片段(即,P2L地址条目)对应于有效数据,因此处理器220可以基于存储在第一超级块SB1的第一页面组PG1(参见图4)的元区域MR中的P2L地址条目的数量,来确定第一超级块SB1的有效数据的数量。
处理器220可以控制非易失性存储器装置100从第一超级块SB1的元区域MR读出P2L地址条目并且将读出的第一超级块SB1的P2L地址条目存储在***区域100A的第一映射数据块MDB1中。由于从任意存储块读出数据并将读出的数据存储在另一存储块中的技术对应于本领域已知的技术,因此本文将省略详细描述。当第一超级块SB1的P2L地址条目被存储时,第一映射数据块MDB1可以变为开放映射数据块。
如果第一映射数据块MDB1充满P2L地址条目,则第一超级块SB1可以变为关闭块。关闭块可以表示被完全使用的块,例如,完成对所有页面的编程的块。
由于从第一超级块SB1读出的P2L地址条目的数量是30,因此在存储30个P2L地址条目之后,第一映射数据块MDB1的可用容量可以是70个P2L地址条目。
处理器220基于存储在第二超级块SB2的元区域MR中的P2L地址条目的数量来确定第二超级块SB2的有效数据的数量。处理器220可以将第二超级块SB2的有效数据的数量和第一映射数据块MDB1的可用容量进行比较,并且可以确定第二超级块SB2的有效数据的数量是否小于第一映射数据块MDB1的可用容量。
由于第二超级块SB2的有效数据的数量(即,P2L地址条目的数量)是100,因此它大于第一映射数据块MDB1的当前可用容量(即,70个P2L地址条目)。因此,处理器220可以控制非易失性存储器装置100将第二超级块SB2的P2L地址条目存储在从空闲映射数据块中选择的第二映射数据块MDB2中。
处理器220基于存储在第三超级块SB3的元区域MR中的P2L地址条目的数量来确定第三超级块SB3的有效数据的数量。处理器220可以将第三超级块SB3的有效数据的数量和第一映射数据块MDB1的可用容量进行比较,并且可以确定第三超级块SB3的有效数据的数量是否小于第一映射数据块MDB1的可用容量。
由于第三超级块SB3的有效数据的数量(即,P2L地址条目的数量)是20,因此它小于第一映射数据块MDB1的当前可用容量(即,70个P2L地址条目)。因此,处理器220可以控制非易失性存储器装置100将第三超级块SB3的P2L地址条目存储在第一映射数据块MDB1中。因此,在存储了20个P2L地址条目之后,第一映射数据块MDB1的可用容量可以是50个P2L地址条目。
处理器220基于存储在第四超级块SB4的元区域MR中的P2L地址条目的数量来确定第四超级块SB4的有效数据的数量。处理器220可以将第四超级块SB4的有效数据的数量和第一映射数据块MDB1的可用容量进行比较,并且可以确定第四超级块SB4的有效数据的数量是否小于第一映射数据块MDB1的可用容量。
由于第四超级块SB4的有效数据的数量(即,P2L地址条目的数量)是50,因此它等于第一映射数据块MDB1的当前可用容量(即,50个P2L地址条目)。因此,处理器220可以控制非易失性存储器装置100将第四超级块SB4的P2L地址条目存储在第一映射数据块MDB1的剩余空间中。
此处,第一超级块SB1、第三超级块SB3和第四超级块SB4的P2L地址条目可以被存储在第一映射数据块MDB1中,并且第二超级块SB2的P2L地址条目可以被存储在第二映射数据块MDB2中。
虽然与存储在第一映射数据块MDB1中的P2L地址条目相关的超级块的数量(例如,3)大于与存储在第二映射数据块MDB2中的P2L地址条目相关的超级块的数量(例如,1),但是由于有效数据的数量相同,因此对与存储在第一映射数据块MDB1中的P2L地址条目相关的超级块的垃圾收集(GC)的成本和对与存储在第二映射数据块MDB2中的P2L地址条目相关的超级块的垃圾收集(GC)的成本之间不存在显著差异。
此外,由于多个超级块的P2L地址条目可以被存储在一个映射数据块中,因此可以有效地使用有限数量的映射数据块。
图7是示出根据本公开的实施例的数据存储装置10的操作方法的流程图。在参照图7说明根据实施例的数据存储装置10的操作方法时,可以参考图1至图6。
在步骤S710处,控制器200的处理器220可以确定是否出现地址区域AR(参见图4)被损坏的超级块SB。由于突然断电(SPO)等,可能出现地址区域AR被损坏的超级块SB。由于针对出现地址区域AR被损坏的超级块SB的情况,上面已经进行了描述,因此这里将省略对其的详细描述。如果出现地址区域AR被损坏的超级块SB,则进程可以进行到步骤S720。
在步骤S720处,处理器220可以确定被分配在非易失性存储器装置100(参见图5)的***区域100A(参见图5)中的第一映射数据块MDB1至第i映射数据块MDBi(参见图5)之中,是否存在开放映射数据块。开放映射数据块可以表示正在被使用的映射数据块,即,存储少于预定数量(例如,N个)的P2L地址条目的映射数据块。如果存在开放映射数据块,则进程可以进行到步骤S730。
在步骤S730处,处理器220可以将地址区域AR被损坏的超级块SB的有效数据的数量和开放映射数据块的可用容量进行比较。超级块SB的有效数据的数量可以对应于存储在超级块SB的元区域MR(参见图4)中的P2L地址条目的数量。
在步骤S740处,处理器220可以确定超级块SB的有效数据的数量是否等于或小于开放映射数据块的可用容量。如果有效数据的数量等于或小于开放映射数据块的可用容量(例如,剩余空间的大小),则进程可以进行到步骤S750。
在步骤S750处,处理器220可以控制非易失性存储器装置100读出存储在地址区域AR被损坏的超级块SB的元区域MR中的P2L地址条目并且将读出的P2L地址条目存储在开放映射数据块的剩余空间中。
如果在步骤S720处不存在开放映射数据块或者在步骤S740处有效数据的数量大于开放映射数据块的可用容量,则进程可以进行到步骤S760。
在步骤S760处,处理器220可以控制非易失性存储器装置100读出存储在地址区域AR被损坏的超级块SB的元区域MR中的P2L地址条目并且将读出的P2L地址条目存储在空闲映射数据块中。可以由处理器220在第一映射数据块MDB1至第i映射数据块MDBi之中选择在该步骤处使用的空闲映射数据块。
图8是示出包括根据实施例的固态硬盘(SSD)的数据处理***的示例的示图。参照图8,数据处理***2000可以包括主机设备2100和SSD 2200。
SSD 2200可以包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231至223n、电源2240、信号连接器2250和电源连接器2260。
控制器2210可以控制SSD 2200的全部操作。
缓冲存储器装置2220可以临时存储待被存储在非易失性存储器装置2231至223n中的数据。缓冲存储器装置2220可以临时存储从非易失性存储器装置2231至223n读取的数据。临时存储在缓冲存储器装置2220中的数据可以根据控制器2210的控制被传输到主机设备2100或非易失性存储器装置2231至223n。
非易失性存储器装置2231至223n可以用作SSD 2200的存储介质。非易失性存储器装置2231至223n可以通过多个通道CH1至CHn联接到控制器2210。一个或多个非易失性存储器装置可以联接到一个通道。联接到一个通道的非易失性存储器装置可以联接到相同的信号总线和相同的数据总线。
电源2240可以将通过电源连接器2260输入的电力PWR提供给SSD 2200的内部。电源2240可以包括辅助电源2241。辅助电源2241可以供给电力,使得即使当发生突然断电时SSD 2200也正常地终止。辅助电源2241可以包括能够充电电力PWR的大容量电容器。
控制器2210可以通过信号连接器2250与主机设备2100交换信号SGL。信号SGL可以包括命令、地址、数据等。根据主机设备2100和SSD 2200之间的接口连接方法,信号连接器2250可以由各种类型的连接器配置。
图9是示出图8的控制器2210的示例的示图。参照图9,控制器2210可以包括主机接口单元2211、控制单元2212、随机存取存储器(RAM)2213、错误校正码(ECC)单元2214和存储器接口单元2215。
主机接口单元2211可以根据主机设备2100的协议执行主机设备2100和SSD 2200之间的接口连接。例如,主机接口单元2211可以通过以下中的任意一种与主机设备2100通信:安全数字协议、通用串行总线(USB)协议、多媒体卡(MMC)协议、嵌入式MMC(eMMC)协议、个人计算机存储卡国际协会(PCMCIA)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机***接口(SCSI)协议、串列SCSI(SAS)协议、***组件互连(PCI)协议、高速PCI(PCI-E)协议和通用闪速存储(UFS)协议。主机接口单元2211可以执行盘模拟功能,该盘模拟功能为主机设备2100将SSD 2200识别为通用数据存储设备,例如,硬盘驱动器HDD。
控制单元2212可以分析和处理从主机设备2100输入的信号SGL。控制单元2212可以根据用于驱动SSD 2200的固件和/或软件来控制内部功能块的操作。RAM 2213可以用作驱动固件或软件的工作存储器。
ECC单元2214可以生成待被传送到非易失性存储器装置2231至223n的数据的奇偶校验数据。生成的奇偶校验数据可以与数据一起被存储在非易失性存储器装置2231至223n中。ECC单元2214可以基于奇偶校验数据来检测从非易失性存储器装置2231至223n读取的数据的错误。如果检测到的错误在可校正的范围内,则ECC单元2214可以校正检测到的错误。
存储器接口单元2215可以根据控制单元2212的控制将诸如命令和地址的控制信号提供给非易失性存储器装置2231至223n。存储器接口单元2215可以根据控制单元2212的控制与非易失性存储器装置2231至223n交换数据。例如,存储器接口单元2215可以将存储在缓冲存储器装置2220中的数据提供给非易失性存储器装置2231至223n,或将从非易失性存储器装置2231至223n读取的数据提供给缓冲存储器装置2220。
图10是示出包括根据实施例的数据存储设备的数据处理***的示例的示图。参照图10,数据处理***3000可以包括主机设备3100和数据存储设备3200。
主机设备3100可以为诸如印刷电路板(PCB)的板形式。虽然在图10中未示出,但是主机设备3100可以包括执行主机设备3100的功能的内部功能块。
主机设备3100可以包括诸如插座、插槽或连接器的连接端子3110。数据存储设备3200可以被安装在连接端子3110上。
数据存储设备3200可以为诸如PCB的板形式。数据存储设备3200可以指存储器模块或存储卡。数据存储设备3200可以包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231至3232、电源管理集成电路(PMIC)3240和连接端子3250。
控制器3210可以控制数据存储设备3200的全部操作。控制器3210可以具有与图9所示的控制器2210相同的配置。
缓冲存储器装置3220可以临时存储待被存储在非易失性存储器装置3231和3232中的数据。缓冲存储器装置3220可以临时存储从非易失性存储器装置3231和3232读取的数据。临时存储在缓冲存储器装置3220中的数据可以根据控制器3210的控制被传输到主机设备3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可以用作数据存储设备3200的存储介质。
PMIC 3240可以将通过连接端子3250输入的电力提供给数据存储设备3200的内部。PMIC 3240可以根据控制器3210的控制来管理数据存储设备3200的电力。
连接端子3250可以联接到主机设备3100的连接端子3110。诸如命令、地址和数据的信号以及电力可以通过连接端子3250在主机设备3100和数据存储设备3200之间传输。连接端子3250可以根据主机设备3100和数据存储设备3200之间的接口连接方法而被配置为各种形式。连接端子3250可以被布置在数据存储设备3200的任意一侧中。
图11是示出包括根据实施例的数据存储设备的数据处理***的示例的示图。参照图11,数据处理***4000可以包括主机设备4100和数据存储设备4200。
主机设备4100可以为诸如PCB的板形式。虽然在图11中未示出,但是主机设备4100可以包括执行主机设备4100的功能的内部功能块。
数据存储设备4200可以为表面安装封装形式。数据存储设备4200可以通过焊球4250被安装到主机设备4100上。数据存储设备4200可以包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
控制器4210可以控制数据存储设备4200的全部操作。控制器4210可以具有与图9所示的控制器2210相同的配置。
缓冲存储器装置4220可以临时存储待被存储在非易失性存储器装置4230中的数据。缓冲存储器装置4220可以临时存储从非易失性存储器装置4230读取的数据。临时存储在缓冲存储器装置4220中的数据可以通过控制器4210的控制被传输到主机设备4100或非易失性存储器装置4230。
非易失性存储器装置4230可以用作数据存储设备4200的存储介质。
图12是示出包括根据实施例的数据存储设备的网络***5000的示例的示图。参照图12,网络***5000可以包括通过网络5500联接的服务器***5300和多个客户端***5410至5430。
服务器***5300可以响应于多个客户端***5410至5430的请求来服务数据。例如,服务器***5300可以存储从多个客户端***5410至5430提供的数据。又例如,服务器***5300可以将数据提供给多个客户端***5410至5430。
服务器***5300可以包括主机设备5100和数据存储设备5200。数据存储设备5200可以由图1的数据存储设备10、图8的数据存储设备2200、图10的数据存储设备3200或图11的数据存储设备4200来配置。
图13是示出包括在根据实施例的数据存储设备中的非易失性存储器装置的示例的框图。参照图13,非易失性存储器装置100可以包括存储器单元阵列110、行解码器120、列解码器140、数据读取/写入块130、电压发生器150和控制逻辑160。
存储器单元阵列110可以包括布置在字线WL1至WLm和位线BL1至BLn彼此相交的区域中的存储器单元MC。
行解码器120可以通过包括字线WL1至WLm的行线联接到存储器单元阵列110。行解码器120可以通过控制逻辑160的控制来操作。行解码器120可以解码从外部设备(未示出)提供的地址。行解码器120可以基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器120可以将从电压发生器150提供的字线电压提供给字线WL1至WLm。
数据读取/写入块130可以通过位线BL1至BLn联接到存储器单元阵列110。数据读取/写入块130可以包括对应于位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块130可以根据控制逻辑160的控制来操作。数据读取/写入块130可以根据操作模式而用作写入驱动器或读出放大器。例如,在写入操作中,数据读取/写入块130可以用作写入驱动器,其中写入驱动器将从外部设备提供的数据存储在存储器单元阵列110中。又例如,在读取操作中,数据读取/写入块130可以用作读出放大器,其中读取放大器从存储器单元阵列110读取数据。
列解码器140可以根据控制逻辑160的控制来操作。列解码器140可以解码从外部设备(未示出)提供的地址。列解码器140可以基于解码结果,将对应于位线BL1至BLn的数据读取/写入块130的读取/写入电路RW1至RWn和数据输入/输出(I/O)线(或数据I/O缓冲器)联接。
电压发生器150可以生成用于非易失性存储器装置100的内部操作的电压。通过电压发生器150生成的电压可以被施加到存储器单元阵列110的存储器单元。例如,在编程操作中生成的编程电压可以被施加到待被执行编程操作的存储器单元的字线。又例如,在擦除操作中生成的擦除电压可以被施加到待被执行擦除操作的存储器单元的阱区。再例如,在读取操作中生成的读取电压可以被施加到待被执行读取操作的存储器单元的字线。
控制逻辑160可以基于从外部设备提供的控制信号来控制非易失性存储器装置100的全部操作。例如,控制逻辑160可以控制非易失性存储器装置100的操作,诸如非易失性存储器装置100的读取操作、写入操作和擦除操作。
本发明的上述实施例旨在说明而不是限制本发明。各种可选方案和等同方案是可能的。本发明不受本文所述的实施例的限制。本发明也不限于任何具体类型的半导体装置。鉴于本公开,其它添加、删减或变型是显而易见的,并且旨在落入所附权利要求的范围内。

Claims (16)

1.一种数据存储装置,其包括:
非易失性存储器装置,其包括多个存储块组和多个映射数据块,所述多个存储块组中的每个包括存储从主机装置传输的数据的第一页面组和存储与所述数据相对应的地址映射信息的第二页面组;以及
控制器;
当在所述多个存储块组中出现所述第二页面组被损坏的第一存储块组时,所述控制器确定存储在所述第一存储块组中的有效数据的一个或多个物理到逻辑地址条目即P2L地址条目的大小是否等于或小于所述多个映射数据块中的、正在被使用的开放映射数据块的可用容量;以及
当存储在所述第一存储块组中的所述有效数据的所述一个或多个P2L地址条目的大小等于或小于所述开放映射数据块的可用容量时,所述控制器控制所述非易失性存储器装置以将所述第一存储块组的所述有效数据的所述一个或多个P2L地址条目存储在所述开放映射数据块中。
2.根据权利要求1所述的数据存储装置,其中所述多个映射数据块中的每个存储预定数量的P2L地址条目。
3.根据权利要求1所述的数据存储装置,其中所述控制器检查在所述多个映射数据块中是否存在所述开放映射数据块、当不存在所述开放映射数据块时在所述多个映射数据块中选择一个映射数据块、并且控制所述非易失性存储器装置将所述第一存储块组的所述有效数据的所述一个或多个P2L地址条目存储在所选择的映射数据块中。
4.根据权利要求1所述的数据存储装置,其中当存储在所述第一存储块组中的所述有效数据的所述一个或多个P2L地址条目的大小超过所述开放映射数据块的可用容量时,所述控制器选择除所述开放映射数据块之外的剩余映射数据块,并且控制所述非易失性存储器装置将所述第一存储块组的所述有效数据的所述一个或多个P2L地址条目存储在所选择的映射数据块中。
5.根据权利要求1所述的数据存储装置,
其中所述多个存储块组的每个的第一页面组包括多个第一页面,以及
其中所述多个第一页面包括存储从所述主机装置传输的数据的用户区域和存储所述数据的元信息的元区域。
6.根据权利要求5所述的数据存储装置,其中地址映射信息被存储在所述多个第一页面的元区域中,所述地址映射信息对应于存储在相应用户区域中的数据。
7.根据权利要求6所述的数据存储装置,其中当对所述多个存储块组中的每个的多个第一页面的编程完成时,所述控制器控制所述非易失性存储器装置读出存储在所述多个第一页面的元区域中的地址映射信息并且将所读出的地址映射信息存储在所述第二页面组中。
8.一种数据存储装置的操作方法,所述数据存储装置包括非易失性存储器装置和控制器,所述非易失性存储器装置包括多个存储块组和多个映射数据块,所述多个存储块组中的每个具有存储从主机装置传输的数据的第一页面组和存储与所述数据相对应的地址映射信息的第二页面组,以及所述控制器用于控制所述非易失性存储器装置,所述方法包括:
当在所述多个存储块组中出现所述第二页面组被损坏的第一存储块组时,所述控制器将存储在所述第一存储块组中的有效数据的一个或多个物理到逻辑地址条目即P2L地址条目的大小与所述多个映射数据块中的、正在被使用的开放映射数据块的可用容量进行比较;并且
当存储在所述第一存储块组中的所述有效数据的所述一个或多个P2L地址条目的大小等于或小于所述开放映射数据块的可用容量时,所述控制器控制所述非易失性存储器装置以将所述第一存储块组的所述有效数据的所述一个或多个P2L地址条目存储在所述开放映射数据块中。
9.根据权利要求8所述的方法,其进一步包括,在所述控制器将存储在所述第一存储块组中的有效数据的所述一个或多个P2L地址条目的大小与所述开放映射数据块的可用容量进行比较之前,
所述控制器检查在所述多个映射数据块之中是否存在所述开放映射数据块。
10.根据权利要求9所述的方法,其中当不存在所述开放映射数据块时,所述控制器控制所述非易失性存储器装置以将所述第一存储块组的所述有效数据的所述一个或多个P2L地址条目存储在从所述多个映射数据块中选择的映射数据块中。
11.根据权利要求8所述的方法,其中在所述控制器将存储在所述第一存储块组中的所述有效数据的所述一个或多个P2L地址条目的大小与所述开放映射数据块的可用容量进行比较之后,当存储在所述第一存储块组中的所述有效数据的所述一个或多个P2L地址条目的大小超过所述开放映射数据块的可用容量时,所述控制器控制所述非易失性存储器装置以将所述第一存储块组的所述有效数据的所述一个或多个P2L地址条目存储在从除所述开放映射数据块之外的剩余的映射数据块中选择的映射数据块中。
12.根据权利要求8所述的方法,其中所述多个映射数据块中的每个存储预定数量的P2L地址条目。
13.根据权利要求8所述的方法,其中所述多个存储块组中的每个的第一页面组包括存储所述数据的用户区域和存储所述数据的元信息的元区域。
14.根据权利要求13所述的方法,其中在所述第一页面组的元区域中,存储与在相应用户区域中存储的数据相对应的地址映射信息。
15.根据权利要求14所述的方法,其中当对所述多个存储块组中的每个的第一页面组的编程完成时,所述控制器控制所述非易失性存储器装置读出存储在所述元区域中的地址映射信息并且将所读出的地址映射信息存储在所述第二页面组中。
16.一种数据存储装置,其包括:
存储器装置,其包括存储块、使用中的映射数据块和空闲映射数据块;以及
控制器,当所述存储块被损坏时,所述控制器控制所述存储器装置:当所述使用中的映射数据块的可用容量等于或大于所述存储块的一个或多个物理到逻辑地址条目,即P2L地址条目的大小时,将所述存储块的所述P2L地址条目移动到所述使用中的映射存储块中;并且当所述使用中的映射数据块的可用容量小于所述P2L地址条目的大小时,将所述存储块的所述P2L地址条目移动到所述空闲映射数据块中。
CN201810889522.XA 2017-11-28 2018-08-07 数据存储装置及其操作方法 Active CN109840214B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0160847 2017-11-28
KR1020170160847A KR20190061942A (ko) 2017-11-28 2017-11-28 데이터 저장 장치 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
CN109840214A CN109840214A (zh) 2019-06-04
CN109840214B true CN109840214B (zh) 2023-06-06

Family

ID=66633234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810889522.XA Active CN109840214B (zh) 2017-11-28 2018-08-07 数据存储装置及其操作方法

Country Status (3)

Country Link
US (1) US10657046B2 (zh)
KR (1) KR20190061942A (zh)
CN (1) CN109840214B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110943936A (zh) * 2019-11-08 2020-03-31 中国科学院信息工程研究所 一种高效的基于动态数组的网络流量处理方法及***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009086376A1 (en) * 2007-12-27 2009-07-09 Pliant Technology, Inc. Flash memory controller and system including data pipelines incorporating multiple buffers
CN106681931A (zh) * 2015-11-06 2017-05-17 爱思开海力士有限公司 数据储存设备及其操作方法
CN107025185A (zh) * 2016-02-01 2017-08-08 爱思开海力士有限公司 数据存储装置及其操作方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) * 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US7395404B2 (en) * 2004-12-16 2008-07-01 Sandisk Corporation Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
TWI540428B (zh) * 2011-11-18 2016-07-01 群聯電子股份有限公司 資料寫入方法、記憶體控制器與記憶體儲存裝置
KR20160132204A (ko) 2015-05-07 2016-11-17 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US9858003B2 (en) * 2016-05-02 2018-01-02 Toshiba Memory Corporation Storage system that reliably stores lower page data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009086376A1 (en) * 2007-12-27 2009-07-09 Pliant Technology, Inc. Flash memory controller and system including data pipelines incorporating multiple buffers
CN106681931A (zh) * 2015-11-06 2017-05-17 爱思开海力士有限公司 数据储存设备及其操作方法
CN107025185A (zh) * 2016-02-01 2017-08-08 爱思开海力士有限公司 数据存储装置及其操作方法

Also Published As

Publication number Publication date
CN109840214A (zh) 2019-06-04
US10657046B2 (en) 2020-05-19
US20190163625A1 (en) 2019-05-30
KR20190061942A (ko) 2019-06-05

Similar Documents

Publication Publication Date Title
CN106681931B (zh) 数据储存设备及其操作方法
CN111506516B (zh) 数据存储装置及数据存储装置的操作方法
CN110083545B (zh) 数据存储装置及其操作方法
CN108932107B (zh) 数据存储装置及其操作方法
CN109992202B (zh) 数据存储设备、其操作方法以及包括其的数据处理***
CN111124273B (zh) 数据存储装置及数据存储装置的操作方法
US20200218653A1 (en) Controller, data storage device, and operating method thereof
CN110837342A (zh) 数据存储装置及其操作方法
CN109407966B (zh) 数据存储装置及其操作方法
CN109240937B (zh) 数据存储装置及其操作方法
CN111752852A (zh) 数据存储装置及数据存储装置的操作方法
US11379363B2 (en) Controller, memory system, and operating methods thereof
CN113704138A (zh) 存储装置及其操作方法
US10558562B2 (en) Data storage device and operating method thereof
CN113741798A (zh) 数据存储装置及其操作方法
CN110119326B (zh) 数据存储装置及其操作方法
US11782638B2 (en) Storage device with improved read latency and operating method thereof
US11249917B2 (en) Data storage device and operating method thereof
CN109656471B (zh) 数据存储设备及其操作方法
CN110032466B (zh) 数据存储装置及其操作方法
CN109840214B (zh) 数据存储装置及其操作方法
US20210397558A1 (en) Storage device and operating method thereof
US11157401B2 (en) Data storage device and operating method thereof performing a block scan operation for checking for valid page counts
US20200250082A1 (en) Controller, memory system, and operating method thereof
US20200117390A1 (en) Data storage device and operating method thereof

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