CN110196816A - 控制器、其操作方法以及包括控制器的存储器系统 - Google Patents

控制器、其操作方法以及包括控制器的存储器系统 Download PDF

Info

Publication number
CN110196816A
CN110196816A CN201811351760.1A CN201811351760A CN110196816A CN 110196816 A CN110196816 A CN 110196816A CN 201811351760 A CN201811351760 A CN 201811351760A CN 110196816 A CN110196816 A CN 110196816A
Authority
CN
China
Prior art keywords
block
memory
controller
data
page
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
CN201811351760.1A
Other languages
English (en)
Other versions
CN110196816B (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.)
Mimi Ip Co ltd
Original Assignee
Hynix Semiconductor 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 Hynix Semiconductor Inc filed Critical Hynix Semiconductor Inc
Publication of CN110196816A publication Critical patent/CN110196816A/zh
Application granted granted Critical
Publication of CN110196816B publication Critical patent/CN110196816B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • 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/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
    • 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/061Improving I/O performance
    • 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/0626Reducing size or complexity of 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • 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

Landscapes

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

Abstract

本发明公开了一种控制器,包括处理器;以及存储器,其中,当数据被存储在存储器装置的开放块的所有页面中时,处理器确定开放块中的有效页面的数量,并且当有效页面的数量被确定为小于或等于阈值时对开放块执行垃圾收集操作,其中数量范围为从零至开放块中的页面的总数量。

Description

控制器、其操作方法以及包括控制器的存储器系统
相关申请的交叉引用
本申请要求于2018年2月27日提交的申请号为10-2018-0023714的韩国专利申请的优先权,其整体内容通过引用并入本文。
技术领域
各种实施例涉及存储器相关的技术,更具体地,涉及一种用于控制存储器装置的控制器、该控制器的操作方法以及包括该控制器的存储器系统.。
背景技术
计算环境范例已经转变为能在任何时间和任何地点使用的普适计算系统。因此,对诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用迅速增长。这些便携式电子装置通常使用具有一个或多个用于存储数据的存储器装置的存储器系统。存储器系统可以用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘装置相比,因为存储器系统不具有移动部件,所以存储器系统提供优异的稳定性、耐久性、高信息存储速度和低功耗。具有这种优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
各种实施例涉及一种能够提高操作性能的控制器、该控制器的操作方法和包括该控制器的存储器系统。
在实施例中,一种控制器可以包括:处理器;以及存储器,其中,当数据被存储在存储器装置的开放块的所有页面中时,处理器确定开放块中的有效页面的数量,并且当有效页面的数量被确定为小于或等于阈值时对开放块执行垃圾收集操作,其中上述数量范围为从零至开放块中的页面的总数量。
在上述控制器中,处理器可以在将数据存储在开放块中的同时,生成关于开放块的映射信息并且将映射信息存储在存储器中。映射信息可以包括物理地址到逻辑地址(P2L)映射,在P2L映射中,对应于数据的逻辑地址被映射到物理地址。映射信息可以包括对应于有效页面的物理地址并且可以不包括对应于一个或多个无效页面的物理地址。处理器可以使用映射信息来执行垃圾收集。处理器可以在关闭开放块之前,确定有效页面的数量并且执行垃圾收集。处理器可以在生成映射信息的同时,将关于开放块的有效页面的数量的信息存储在存储器中。当有效页面的数量被确定为超过阈值时,处理器可以关闭开放块。
在实施例中,一种操作控制器的方法可以包括:响应于来自主机的数据写入请求,将数据存储在存储器装置的开放块中;当数据被存储在开放块的所有页面中时确定开放块中的有效页面的数量,其中该数量范围为从零至开放块中的页面的总数量;以及当有效页面的数量被确定为小于或等于阈值时,对开放块执行垃圾收集。
在上述方法中,将数据存储在开放块中可以包括生成关于开放块的映射信息并且将映射信息存储在存储器中。映射信息可以包括物理地址到逻辑地址(P2L)映射,在P2L映射中,对应于数据的物理地址被映射到物理地址。映射信息可以包括对应于有效页面的物理地址并且可以不包括对应于一个或多个无效页面的物理地址。可以使用映射信息来执行垃圾收集。在开放块未被关闭的状态下进行确定有效页面的数量并且执行垃圾收集。生成映射信息可以进一步包括将关于开放块的有效页面的数量的信息存储在存储器中。该方法可以进一步包括:在有效页面的数量被确定为超过阈值时,关闭开放块。
在实施例中,一种存储器系统可以包括:用于存储数据的存储器装置;和用于控制存储器的控制器,其中,当数据被存储在存储器装置的开放块的所有页面中时,控制器确定开放块中的有效页面的数量,并且当确定有效页面的数量小于或等于阈值时对开放块执行垃圾收集,其中该数量范围为从零至开放块中的页面的总数量。
在上述存储器系统中,控制器可以在将数据存储在开放块中的同时,生成关于开放块的映射信息并且管理映射信息。映射信息可以包括对应于有效页面的物理地址并且不包括对应于一个或多个无效页面的物理地址。控制器可以使用映射信息来执行垃圾收集。
在实施例中,一种存储器系统可以包括:包括多个块的存储器装置,每个块用于存储数据,其中在每个块的最后页面被编程有数据之后,关闭每个块;以及控制器,配置成控制在存储器装置中执行的操作;其中,在关闭多个块之中的被选择块之前,控制器基于与被选择块中的有效页面的数量有关条件,来确定是否对被选择块执行垃圾收集;并且当该条件被满足时,控制器对被选择块执行垃圾收集。
附图说明
从参照附图的随后详细描述中,对于本公开所属领域的技术人员而言,本公开的这些和其他特征以及优点将变得显而易见。
图1是示出根据本公开实施例的包括存储器系统的数据处理系统的框图。
图2是示出图1所示的存储器系统中采用的存储器装置的示例性配置的示意图。
图3是示出图2所示的存储器装置中的存储块的存储器单元阵列的示例性配置的电路图。
图4是示出图2所示的存储器装置的示例性三维结构的示意图。
图5是示出了根据本公开的另一实施例的存储器系统的示图。
图6是示出了将数据写入至图5的存储器系统中的开放块的示例进程和通过该过程生成的映射的示图。
图7是示出在图5的存储器系统中执行垃圾收集的示例方法的示图。
图8是示出根据本公开的另一实施例的存储器系统的操作方法的流程图。
图9至图17是示意性示出根据本发明的各个实施例的图1中所示的数据处理系统的应用示例的示图。
具体实施方式
以下参照附图更详细地描述本公开的各个实施例。然而,注意到的是,本公开的元件和特征可以与本文中示出或描述的方式不同的方式来配置或布置。因此,本公开不应限于本文所阐述的实施例。相反,提供所描述的实施例使得本公开将完整和全面并将本公开充分地传达给本公开所属领域的技术人员。在整个本公开中,相同的附图标记在本发明的各个附图和实施例中表示相同的部件。
将理解的是,虽然可在本文中使用术语“第一”、“第二”、“第三”等来表示各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一个元件区分开,这些元件在其他情况下具有相同或相似的名称。因此,在不脱离本公开的精神和范围的情况下,一个示例中的第一元件可被标识为其他示例中的第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能已经被夸大。
将进一步理解的是,当元件被称为“连接至”、“联接到”另一元件或者“与另一元件通信”时,这种连接、连接或通信可以是有线或无线的,有线或无线方式可以是直接或间接的方式,其中间接的方式即为通过一个或多个中间元件。另外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
本文使用的术语是为了描述特定实施例的目的,并不旨在限制本公开。如本文所使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式,反之亦然。将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,但并不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术语境中的含义一致的含义,并且将不以理想化或过于正式的意义来解释,除非本文中明确地这样定义。
在下面的描述中,为了提供对本公开的全面理解,描述了大量具体细节。本公开可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了避免不必要地模糊本公开,未详细地描述公知的进程结构和/或进程。
还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用。并且,在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对这些短语任何的不同参考也不一定针对相同的实施例。
图1是示出根据本公开的实施例的包括存储器系统110的数据处理系统100的框图。
参照图1,数据处理系统100可包括主机102和存储器系统110。
主机102可包括例如诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式电脑、游戏机、TV和投影仪等的非便携式电子装置。
存储器系统110可操作以响应于主机102的请求来存储用于主机102的数据。存储器系统110的非限制性示例可包括固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用存储总线(USB)装置、通用闪存(UFS)装置、标准闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA)卡、和记忆棒。MMC可以包括嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)和微型-MMC。SD卡可以包括迷你-SD卡和微型-SD卡。
存储器系统110可以由各种类型的存储装置来实施。包括在存储器系统110中的存储装置的非限制性示例包括诸如DRAM动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置,以及诸如以下的非易失性存储器装置:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM)和闪速存储器。闪速存储器可以具有三维(3D)堆叠结构。
存储器系统110可包括存储器装置150和控制器130。存储器装置150可以存储用于主机102的数据。控制器130可控制将数据存储在存储器装置150中。
控制器130和存储器装置150可被集成到单个半导体装置中,单个半导体装置可被包括在如上所述的各种类型的存储器系统的任一种中。
存储器系统110的非限制性应用示例包括:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下传输/接收信息的装置、构成家庭网络的各种电子装置之一、构成计算机网络的各种电子装置之一、构成远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或构成计算系统的各种部件之一。
存储器装置150可以是非易失性存储器装置,并且即使不供应电力,其也可保留其中存储的数据。存储器装置150可通过写入操作来存储从主机102提供的数据。存储器装置150通过读取操作将存储在其中的数据提供给主机102。存储器装置150可包括多个存储器管芯(未示出),每个存储器管芯包括多个平面(未示出),每个平面包括多个存储块152至156。存储块152至156中的每一个可包括多个页面,并且每一个页面可包括联接至字线的多个存储器单元。
控制器130可响应于来自主机102的请求来控制存储器装置150。例如,控制器130可将从存储器装置150读取的数据提供给主机102,以及可将从主机102提供的数据存储到存储器装置150中。对于此操作,控制器130可以控制存储器装置150的读取操作、写入操作、编程操作和擦除操作。
控制器130可包括主机接口(I/F)132、处理器134、错误校正码(ECC)部件138、电源管理电路(PMU)140、NAND闪速控制器(NFC)142以及存储器144,其全部通过内部总线可操作地联接或通信。
主机接口132可配置成处理主机102的命令和数据,并且可根据诸如以下的各种接口协议中的一种或多种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-E)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
ECC部件138可检测并校正从存储器装置150读取的数据中的错误。换言之,ECC部件138可以通过在ECC解码过程期间使用的ECC码,对从存储器装置150读取的数据执行错误校正解码处理。根据错误校正解码处理的结果,ECC部件138可以输出信号,例如错误校正成功或失败信号。当错误位的数量大于可校正错误位的阈值时,ECC部件138可以不校正错误位,并且替代地,可输出错误校正失败信号。
ECC部件138可通过诸如以下的编码调制来执行错误校正:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)以及分组编码调制(BCM)。然而,ECC部件138不限于这些错误校正技术。因此,ECC部件138可包括用于合适的错误校正的所有电路、模块、系统或装置。
PMU 140可管理在控制器130中使用和提供的电力。
NFC142可用作将控制器130和存储器装置150接口连接的存储器/存储接口,使得控制器130响应于来自主机102的请求来控制存储器装置150。当存储器装置150是闪速存储器时,或者特别地,当存储器装置150是NAND闪速存储器时,NFC 142可在处理器134的控制下,生成用于存储器装置150的控制信号以处理提供给存储器装置150的数据。NFC142可以用作用于处理控制器130和存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)。特别地,NFC142可以支持控制器130和存储器装置150之间的数据传输。
存储器144可用作存储器系统110和控制器130的工作存储器。存储器144可以存储支持存储器系统110和控制器130的操作的数据。控制器130可响应于来自主机102的请求,来控制存储器装置150从而进行读取、写入、编程和擦除操作。控制器130可将从存储器装置150读取的数据提供给主机102,可将从主机102提供的数据存储到存储器装置150中。存储器144可存储控制器130和存储器装置150执行这些操作所需的数据。
存储器144可利用易失性存储器来实施。例如,存储器144可利用静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实施。存储器144可以被设置在控制器130的内部或外部。图1示出了存储器144设置在控制器130内部的示例。在另一实施例中,存储器144可通过具有在存储器144和控制器130之间传输数据的存储器接口的外部易失性存储器来实施。
处理器134可控制存储器系统110的全部操作。处理器134可使用固件来控制存储器系统110的全部操作。固件可称为闪存转换层(FTL)。
控制器130的处理器134可以包括用于执行存储器装置150的坏块的管理操作的管理单元(未示出)。管理单元可以执行在存储器装置150中的多个存储块152至156之中检查坏块的坏块管理操作。坏块可以是由于NAND闪速存储器的特性而在编程操作期间发生编程失败的块。管理单元可以将坏块的编程失败数据写入至新的存储块。在具有3D堆叠结构的存储器装置150中,坏块管理操作可降低存储器装置150的使用效率和存储器系统110的可靠性。因此,需要保证更高的可靠性的情况下来执行坏块管理操作。
在根据本公开实施例的存储器系统中,控制器130可以对存储器装置150执行雨从主机102接收的多个命令对应的多个命令操作。例如,控制器130可以对存储器装置150执行对应于多个写入命令的多个编程操作、对应于多个读取命令的多个读取操作以及对应于多个擦除命令的多个擦除操作。对应于执行命令操作,控制器130可以更新元数据,特别是映射数据。特别地,在根据本公开实施例的存储器系统中,在控制器130对多个存储块执行与从主机102接收的多个命令对应的命令操作时,在存储块中可能发生特性劣化,因此存储器150的操作可靠性可能劣化。因此,对应于命令操作的执行,控制器130基于存储器装置150的参数,在存储器装置150的存储块中执行命令操作和交换操作。
在根据本公开的实施例的存储器系统中,由于对存储块执行命令操作,所以在存储块中可能发生特性劣化。在对发生了这种特性劣化的存储块执行命令操作时,在执行命令操作的过程中可能发生失败。因此,在存储器系统中,控制器130检查被执行命令操作的存储块的参数。特别地,对于在多个存储块中执行的擦除操作和编程操作,控制器130可以检查擦除计数、编程计数、编程/擦除(P/E)周期或擦除/写入(E/W)周期。为了减小或最小化由于存储块中的特性劣化而在执行命令操作中发生的失败,控制器130根据参数来执行命令操作和交换操作。由于下面将参照图5至图8对根据存储器装置150的存储块的参数来执行命令操作和交换操作进行了详细说明,因此此处将省略对其的详细描述。
用于执行对存储器装置150的坏块管理的管理单元(未示出)可被包括在控制器130的处理器134中或者由处理器134实施。管理单元检查多个存储块152、154、156之中的坏块。管理单元可通过识别坏块或将坏块标记为坏的来执行坏块管理。在存储器装置150为闪速存储器,例如NAND闪速存储器的情况下,由于NAND闪存存储器的特性,当控制器130利用写入数据执行编程操作,即执行数据编程时,可能发生编程失败。在这种情况下,坏块管理是指将已经发生编程失败的存储块确定为坏的,并且将编程失败的数据写入,即编程在新的存储块中。此外,在存储器装置150具有如上所述的三维堆叠结构的情况下,对应的存储块被处理为坏块。因为存储器装置150的使用效率和存储器系统110的可靠性会突然劣化,因此需要可靠地执行坏块管理。将在下文参照图2至图4详细描述根据本公开的实施例的存储器系统中的存储器装置。
图2是示出存储器装置150的示例的示意图。
参照图2,存储器装置150可包括多个存储块,例如BLOCK0(210)、BLOCK1(220)、BLOCK2(230)至BLOCK N-1(240),并且这些块中的每一个可包括多个页面,例如2M个页面,页面的数量可根据电路设计而变化。各个存储块中包括的存储器单元可以是存储一位数据的单层单元(SLC)或存储两位或更多位数据的多层单元(MLC)中的一个或多个。在实施例中,存储器装置150可以包括多个三层单元(TLC),多个TLC中的每一个存储3位数据。在另一实施例中,存储器装置可以包括多个四层单元(QLC),多个QLC中的每一个存储4位数据。
图3是示出存储器装置150中的存储块的存储器单元阵列的示例配置的电路图。
参照图3,可以对应于存储器系统110的存储器装置150中的多个存储块152至156中的任一个的存储块330可包括多个单元串340,多个单元串340联接到多个对应的位线BL0至BLm-1。每列单元串340可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。多个存储器单元MC0至MCn-1可串联地联接在漏极选择晶体管DST和源极选择晶体管SST之间。在实施例中,存储器单元MC0至MCn-1中的每个可由MLC来实施,其中MLC能够存储多个位的数据信息。单元串340中的每一个可电联接到多个位线BL0至BLm-1之中的对应位线。例如,如图3中所示,第一单元串联接至第一位线BL0,并且最后单元串联接至最后位线BLm-1。
尽管图3示出了NAND闪速存储器单元,但是本公开并不限于此方式。在另外的实施例中,存储器单元可以是NOR闪速存储器单元,或其中组合了的两种或多种存储器单元的混合闪速存储器单元。并且,应注意的是,存储器装置150可以是包括作为电荷存储层的导电浮栅的闪速存储器装置或者是包括作为电荷存储层的绝缘层的电荷捕获闪速(CTF)存储器装置。
存储器装置150可以进一步包括电压供应单元310,该电压供应单元310根据操作模式将包括编程电压、读取电压和通过电压的字线电压供应给字线。可以通过控制电路(未示出)来控制电压供应单元310的电压发生操作。在控制电路的控制下,电压供应单元310可以选择存储器单元阵列的存储块(或扇区)中的一个,选择所选择的存储块的字线中的一个,并且可以根据需要将字线电压提供至所选择的字线和未选择的字线。
存储器装置150可以包括由控制电路控制的读取/写入电路320。在验证/正常读取操作期间,读取/写入电路320可以用作读出放大器以从存储器单元阵列读取数据。在编程操作期间,读取/写入电路320可以用作写入驱动器以根据待存储在存储器单元阵列中的数据来驱动位线。在编程操作期间,读取/写入电路320可以从缓冲器(未示出)接收待存储至存储器单元阵列的数据,并且可以根据接收的数据将电流或电压供应至位线。读取/写入电路320可以包括分别对应于列(或位线)或列对(位线对)的多个页面缓冲器322至326。页面缓冲器322至326中的每一个可以包括多个锁存器(未示出)。
图4是示出了存储器装置150的示例3D结构的示意图。
存储器150可以由2D或3D存储器装置来实施。具体地,如图4所示,存储器装置150可通过具有3D堆叠结构的非易失性存储器装置来实施。当存储器装置150具有3D结构时,存储器装置150可包括多个存储块BLK0至BLKN-1,其每一个具有3D结构(或垂直结构)。
将在下文描述一种在诸如上述的存储器系统中执行垃圾收集的方法。
存储器装置,例如图1中所示的存储器装置150中的多个存储块的每一个可以包括写入操作完成的关闭块和写入操作正在执行的开放块。此处,写入操作正在执行的状态可以表示将数据从开放块的第一页面写入至第N页面的进程。此处,第N页面可以包括开放块的最后页面。也就是,即使数据被写入至开放块的最后页面,在执行关闭操作之前该开放块仍然是开放块。关闭操作可以包括针对被写入直到最后页面的开放块生成物理地址到逻辑地址(P2L)映射和/或逻辑地址到物理地址(L2P)映射,并且将这些映射存储在控制器中的存储器中,例如,存储在图1中所示的控制器130中的存储器144中。P2L映射可以包括其中物理地址被设置为索引的映射信息,并且L2P映射可以包括其中逻辑地址被设置为索引的映射信息。P2L映射和L2P映射可以在设定时间或预定时间被备份至存储器装置150。当需要时,P2L映射和L2P映射可以被选择性地加载至存储器144中并且可以参考P2L映射和L2P映射,以实现具体操作。
然而,在本发明之前,从关闭块之中选择牺牲块,其中牺牲块为垃圾收集的目标块。因此,对所选的关闭块执行垃圾收集。更具体地,在垃圾收集中,当具体的关闭块被选择为牺牲块时,针对具体的关闭块生成的并且存储在存储器装置150中的P2L映射和L2P映射可以被加载至存储器144中。可以执行有效性判断操作,其中将加载的P2L映射和L2P映射彼此比较,以便将匹配页面当作用于存储有效数据的有效页面并且将不匹配页面确定为用于存储无效数据的无效页面。存储在有效页面中的有效数据可以被复制至垃圾收集的目的块。P2L映射和L2P映射可以基于目的块中的复制页面来更新。然后,在有效页面被完全移动至目的块之后,可以对该具体的关闭块执行擦除操作,以仅剩余无效页面。
然而,在上述情况中,可能需要所有的存储块被一起(once)关闭,也就是,针对所有存储块生成P2L映射和L2P映射,并且每当执行垃圾收集时就加载P2L映射和L2P映射。因此,可能在存储器系统的操作中发生过载。
根据本公开的实施例,当在关闭存储块之前该存储块满足具体的条件的情况下,可以执行垃圾收集以减小映射生成/更新和映射加载的数量和/或量。将参照图5至图8给出更详细的说明。
图5是示出了根据本公开的另一实施例的存储器系统的示图,图6是示出了将数据写入至图5的存储器系统中的开放块的进程以及通过该进程生成的映射的示图,并且图7是示出了在图5的存储器系统中执行垃圾收集的方法的示图。
首先,参照图5,根据实施例的存储器系统500可以包括存储数据的存储器装置520和响应于从主机(未示出)接收的命令而控制存储器装置520的操作的控制器510。
本实施例的存储器装置520可以与图1的存储器装置150相同或相似。换言之,存储器装置520可以执行与图1的存储器装置150的功能相同或相似的功能。此外,存储器装置520可以包括图1的存储器装置150的一些或全部部件。存储器装置520可以进一步包括图1中未示出的其他部件。存储器装置520可以是非易失性存储器。
本实施例的存储器装置520可以包括多个存储块B1、B2、…、BN,每个存储块可以包括多个页面。进一步地,存储块B1、B2、…、BN可以包括写入操作完成的关闭块和写入操作正在执行的开放块。
本实施例的控制器510可以与图1的控制器130相同或相似。换言之,控制器510可以执行与图1的控制器130的功能相同或相似的功能。此外,控制器510可以包括控制器130的一些或全部部件。控制器510可以进一步包括图1中未示出的其他部件。
在本实施例中,控制器510可以包括用于控制存储器系统500的各种操作的处理器511和用作工作存储器、缓冲存储器和/或高速缓存存储器并且与处理器511通信的存储器513。处理器511可以执行与图1的处理器134的功能相同或相似的功能,以及存储器513可以执行与图1的存储器144的功能相同或相似的功能。存储器513可以是易失性存储器。
特别地,在处理器511响应于来自主机的写入请求而将数据存储在存储器装置520中时,处理器511可以通过将写入请求中包括的逻辑地址LA与存储器装置520的物理地址PA相关联来生成映射信息。处理器511可以将映射信息存储在存储器513中。更具体地,处理器511可以将输入数据从存储器装置520的多个存储块B1、B2、…、BN之中的具体存储块的第一页面顺序地存储至最后页面。由于正在写入数据,因此该具体存储块可以对应于开放块。在本实施例中,示出了多个数据被顺序地从第一页面存储至最后页面,但是在其他实施例中,可以以不同的顺序或方式存储多个数据。例如,数据可以被随机地存储在开放块的空页面中。此外,处理器511可以在将数据存储在开放块中的同时生成映射信息,其中生成的映射信息可以是用于开放块的P2L映射。用于开放块的P2L映射可以被称为OP2L映射。该OP2L映射可以与上述针对关闭块生成的P2L映射和L2P映射不同。用于开放块的OP2L映射可以包括或反映最新信息,该最新信息可以连续地或规律地更新直到开放块的属性改变(即,新的数据被写入在开放块的空页面中)。图6示出了将在下文描述的示例。
参照图6,除了主机的写入请求,数据和对应于数据的逻辑地址也可以输入至控制器510。在图6中,顺序输入的数据由D1、D2、D3、D4、…、DN表示,并且与这些数据对应的逻辑地址分别由L1、L2、L3、L4、…、LN表示。此处,可以输入具有新的或未使用的逻辑地址的新数据,或者可以输入与之前输入数据相关联的、具有相同逻辑地址的更新数据。作为示例,数据D2的更新数据D2’的写入请求可以与逻辑地址L2一起输入。数据D4的更新数据D4’的写入请求可以与逻辑地址L4一起输入。当更新数据D2’和D4’被输入时,之前的数据D2和D4可以是无效数据。
控制器510的处理器511可以将数据D1、D2、D3、D4、…、DN存储至存储器装置520的具体块BK的相应页面P1、P2、P3、P4、…、PN,其中K是等于或大于1并且等于或小于N的自然数。处理器511可以通过将包括页面信息的物理地址与逻辑地址相关联来生成映射信息。处理器511可以将映射信息存储在控制器510的存储器513中。由于数据被写入在具体块BK中,所以具体块BK可以被称为开放块BK。并且,生成的映射信息可以是用于开放块BK的OP2L映射。OP2L映射可以是物理地址被设置为索引的映射信息。每当数据被存储在开放块BK中,就可以生成和/或更新OP2L映射。例如,当包括逻辑地址L1和数据D1的写入请求从主机输入时,处理器511可以将数据D1存储在开放块BK的页面P1中。处理器511可以生成包括将逻辑地址L1与物理地址P1相关联的列表的OP2L映射。然后,当包括逻辑地址L2和数据D2的写入请求从主机输入时,处理器511可以将数据D2存储在开放块BK的页面P2中。处理器511可以更新OP2L映射以增加将逻辑地址L2与物理地址P2相关联的列表。以相似的方式,数据D3可以存储在页面P3中,并且将逻辑地址L3对应于物理地址P3的列表可以被增加至OP2L映射。并且,以相似的方式,数据D4可以存储在页面P4中,并且将逻辑地址L4对应于物理地址P4的列表可以被增加至OP2L映射。
在上述进程中,如果从主机输入了与之前从主机输入的逻辑地址相同的逻辑地址,例如与数据D2’一起输入的逻辑地址L2,则之前的数据D2可能由D2’替换。然而,由于不能对已经存储了数据的页面重写数据,所以处理器511可以将数据D2’存储在开放块BK的空页面PX中并且更新OP2L映射以增加表示逻辑地址L2与物理地址PX相关联的条目。OP2L映射中的包括逻辑地址L2和相应物理地址P2的之前条目可以被删除。以类似的方式,当逻辑地址L4与数据D4’一起被输入时,处理器511可以将数据D4’存储在开放块BK的空页面PY中,并且增加表示逻辑地址L4对应于物理地址PY的条目,并且更新OP2L映射使得包括逻辑地址L4和相应物理地址P4的之前条目被删除。以这种方式,如果数据被写入至开放块BK的最后页面PN,则OP2L映射可以包括如图6中的箭头下方示出的多个条目的列表。也就是,OP2L映射可以包括仅指示有效页面的物理地址而不包括关于无效页面的信息。因此,OP2L映射可以表示被写入在开放块BK中的数据的最新地址信息。
在本实施例中,可以使用上述OP2L映射来执行垃圾收集。将在下文更详细地描述这种操作。
再次参照图5,已经描述了处理器511在将数据存储在存储器装置520的开放块BK中的同时,生成OP2L映射并且将OP2L映射存储在存储器513中。此外,处理器511可以在生成/更新OP2L映射的同时,根据需要管理关于有效页面计数VPC的信息。在OP2L映射仅包含有效页面的地址的情况下,每当生成/更新OPL2映射时,处理器511可以将OP2L映射中的物理地址的数量和/或逻辑地址对应于物理地址的条目或项目的数量存储在存储器513中,以作为有效页面计数信息。
此外,当处理器511确定数据被存储至开放块BK的最后页面PN,即,数据被存储在开放块BK的所有页面中并且不存在空页面时,处理器511可在关闭开放块BK之前,确定开放块BK的有效页面的数量是否等于或小于阈值,该阈值可以被预先确定。处理器511可以通过检查存储器513中存储的开放块BK的有效页面计数信息、检查OP2L映射中的物理地址的数量、和/或逻辑地址对应于物理地址的列表的数量来确认开放块BK的有效页面的数量。然后,处理器511可以将开放块BK的有效页面的数量与阈值相比较。此处,在考虑存储器系统500的性能的情况下,可以各种地调整阈值。例如,在考虑垃圾收集的吞吐量、写入延时等的情况下,可以确定阈值。
作为上述确定的结果,在开放块BK的有效页面的数量小于或等于阈值时,可以立即对开放块BK执行垃圾收集而无需关闭开放块BK。在开放块BK的有效页面的数量已经太低时,成为垃圾收集的目标的可能性可能非常高。因此,对具有大量无效数据的开放块BK执行关闭进程可能是不必要并且低效的。例如,在关闭进程中,将执行生成L2P映射和PL2映射并且将这些映射备份至存储器装置520的进程。此外,当开放块BK称为垃圾收集的目标时,处理器511可加载这些映射并且判断它们的有效性。因此,在本实施例中,每当开放块BK关闭时,也就是每当开放块BK的最后页面被写入时,可以检查有效页面的数量,以便可以在需要的情况下执行垃圾收集。
此处,可以使用OP2L映射来执行垃圾收集。已经在上文描述了OP2L映射仅包括有效页面的物理地址。因此,处理器511可以将开放块BK的所有页面之中的、与OP2L映射中的物理地址对应的页面的数据复制到垃圾收集的目的块中。处理器511可以对仅剩余无效页面的开放块BK执行擦除操作,以生成仅包括空页面的自由块。图7示出了将在下面描述的示例。
参照图7,在有效页面的数量小于或等于阈值的开放块BK中,处理器511可以将有效页面中存储的有效数据D1、D3、D2’、D4’、…、DN复制到存储器装置520的新块BX的页面中。
因此,只有无效数据可以被剩余在开放块BK中。然后处理器511通过对开放块BK执行擦除操作来删除开放块BK的所有数据,以将开放块BK改变成空闲块。
再次参照图5,如果根据确定结果,开放块BK的有效页面的数量大于阈值,则开放块BK可以关闭。也就是,可以生成关于开放块BK的L2P映射和P2L映射。L2P映射和P2L映射可以使用OP2L映射来生成并且可以临时存储在存储器513中,然后备份至存储器装置520。因此,开放块BK可以转变成关闭块。后续的操作可以与之前描述的实施例中的对应操作相同或基本相同。例如,如果根据可以预先确定的条件,将关闭块选择为牺牲块,则可以以如下方式执行垃圾收集操作:将存储在存储器装置520中的P2L映射和L2P映射加载至存储器513,通过将加载的P2L映射和L2P映射彼此比较来确定加载的P2L映射和L2P映射的有效性,将存储在有效页面中的有效数据复制至垃圾收集的目的块,对仅包括无效页面的具体关闭块执行擦除操作,并且基于目的块的有效页面来更新P2L映射和L2P映射。
根据上述的存储器系统及其操作方法的实施例,通过增加简单有效的操作,即针对开放块BK的每次关闭时间来确认有效页面的数量,可以对很可能需要垃圾收集操作的开放块BK提前执行垃圾收集。因此,可以减小映射生成/更新和映射加载的数量和/或量。因此,可以提高存储器系统的操作性能。
图8是示出了根据本公开的另一实施例的存储器系统的操作方法的流程图。
参照图8,控制器510的处理器511可以从主机接收数据的写入请求(S801)。写入请求可以包括数据及其对应的逻辑地址。
处理器511可以响应于主机的写入请求,将数据存储在存储器装置520的具体块BK的空页面中(S803)。可以从第一页面至最后页面顺序地执行数据的存储,但是实施例不限于此。该具体块BK还可以被称为开放块。此外,在该步骤S803中,处理器511可以通过将与被写入数据的页面对应的物理地址与包括在写入请求中的逻辑地址进行匹配来生成映射信息。映射信息可以包括具体块BK的OP2L映射。此外,可以生成并管理关于具体块BK的有效页面的数量的信息。
然后,处理器511可以确定数据是否被存储在具体块BK的所有页面中(S805)。如果从第一页面至最后页面顺序地存储数据,则处理器511可以检查数据是否被存储在最后页面中。
作为步骤S805中的确定结果,如果在具体块BK中存在空页面,则处理器511可以返回至步骤S803以继续地将输入数据存储在空页面中。
另一方面,作为步骤S805中的确定结果,如果数据被存储在具体块BK中的所有页面中,则处理器511可以在关闭具体块BK之前,确定具体块BK的有效页面VPC的数量是否等于或小于阈值(S807)。阈值可以被预先确定。处理器511可以通过检查存储器513中存储的有效页面计数信息或通过对存储器513中存储的OP2L映射中的列表数量进行计数来获得具体块BK的有效页面的数量。
作为步骤S807中的确定结果,如果具体块BK的有效页面VPC的数量等于或小于阈值,则可以立即对具体块BK执行垃圾收集(S809)。可以使用OP2L映射来执行垃圾收集。也就是,具体块BK的、与存在于OP2L映射中的物理地址对应的页面可以被复制至新的存储块,然后可以对该具体块BK进行擦除。
另一方面,作为步骤S807中的确定结果,如果具体块BK的有效页面VPC的数量大于阈值,则可以关闭具体块BK(S811)。关闭的具体块可以稍后根据条件来进行垃圾收集,其中该条件可以被预先确定。然而,此时执行的垃圾收集可以使用关闭的具体块的L2P映射和P2L映射来执行,因此此时执行的垃圾收集与步骤S809中执行的垃圾收集不同,其中步骤S809中执行的垃圾收集为使用处于开放状态的具体块BK的OP2L映射执行的垃圾收集。
将参照图9至图17对可以应用根据本公开实施例的包括上述的存储器装置150和控制器130的存储器系统110的数据处理系统和电子设备进行详细说明。
图9至图17是示意性说明图1的数据处理系统的应用示例的示图。
图9是示意性示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。图9示意性示出了应用存储器系统的存储卡系统。
参照图9,存储卡系统6100可包括存储器控制器6120、存储器装置6130和连接器6110。
存储器控制器6120可被连接至通过非易失性存储器实施的存储器装置6130。存储器控制器6120可以被配置成访问存储器装置6130。例如,存储器控制器6120可被配置成控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可被配置成提供存储器装置6130和主机之间的接口并使用固件以控制存储器装置6130。也就是说,存储器控制器6120可对应于参照图1至图8描述的存储器系统110的控制器130,并且存储器装置6130可对应于参照图1至图8描述的存储器系统110的存储器装置150。
因此,存储器控制器6120可包括RAM、处理器、主机接口、存储器接口和错误校正部件。存储器控制器6120可进一步包括图1至图8所示的元件。
存储器控制器6120可通过连接器6110与例如图1的主机102的外部装置通信。例如,如参照图1所述,存储器控制器6120可被配置成根据诸如以下的各种通信协议中的一种或多种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(EDSI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WIFI以及蓝牙。因此,存储器系统和数据处理系统可应用于有线/无线电子装置,特别是移动电子装置。
存储器装置6130可通过非易失性存储器来实施。例如,存储器装置6130可通过诸如以下的各种非易失性存储器装置中的任一种来实施:可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋转移力矩磁性RAM(STT-MRAM)。存储器装置6130可包括如图1至图8的存储器装置150中的多个管芯。
存储器控制器6120和存储器装置6130可被集成至单个半导体装置中。例如,存储器控制器6120和存储器装置6130可被集成以形成固态驱动器(SSD)。可选地,存储器控制器6120和存储器装置6130可被集成以形成存储卡,诸如PC卡(PCMCIA:个人计算机存储卡国际协会)、标准闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、SD卡(例如,SD、迷你SD、微型SD和SDHC)以及通用闪速存储(UFS)。
图10是示意性示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。
参照图10,数据处理系统6200可包括具有一个或多个非易失性存储器的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。图10所示的数据处理系统6200可作为如参照图1所描述的诸如存储卡(CF、SD、微型SD等)或USB装置的存储介质。存储器装置6230可对应于图1至图8所示的存储器系统110中的存储器装置150,并且存储器控制器6220可对应于图1至图8所示的存储器系统110中的控制器130。
存储器控制器6220可响应于主机6210的请求控制对存储器装置6230的读取操作、写入操作或擦除操作,并且存储器控制器6220可包括一个或多个CPU 6221、诸如RAM 6222的缓冲存储器、ECC电路6223、主机接口6224以及诸如NVM接口6225的存储器接口。
CPU 6221可控制对存储器装置6230的全部操作,例如读取操作、写入操作、文件系统管理操作和坏页面管理操作。RAM 6222可根据CPU 6221的控制来操作。RAM 6222可以用作工作存储器、缓冲存储器或高速缓冲存储器。当RAM 6222用作工作存储器时,通过CPU6221处理的数据可被临时存储在RAM 6222中。当RAM 6222用作缓冲存储器时,RAM 6222可用于缓冲从主机6210传输到存储器装置6230的数据或从存储器装置6230传输到主机6210的数据。当RAM 6222用作高速缓冲存储器时,RAM 6222可辅助低速存储器装置6230以高速运行。
ECC电路6223可对应于图1所示的控制器130的ECC部件138。如参照图1所述,ECC电路6223可生成用于校正从存储器装置6230提供的数据的失效位或错误位的ECC(错误校正码)。ECC电路6223可对提供给存储器装置6230的数据执行错误校正编码,从而形成具有奇偶校验位的数据。奇偶校验位可被存储在存储器装置6230中。ECC电路6223可对从存储器装置6230输出的数据执行错误校正解码。ECC电路6223可使用奇偶校验位来校正错误。例如,如参照图1所述,ECC电路6223可使用LDPC码、BCH码、turbo码、里德-所罗门码、卷积码、RSC或诸如TCM或BCM的编码调制来校正错误。
存储器控制器6220可通过主机接口6224向主机6210传输数据/接收来自主机6210的数据。存储器控制器6220可以通过NVM接口6225向存储器装置6230传输数据/接收来自存储器装置6230的数据。主机接口6224可通过PATA总线、SATA总线、SCSI、USB、PCIe或NAND接口连接至主机6210。存储器控制器6220可利用诸如WiFi或长期演进(LTE)的移动通信协议具有无线通信功能。存储器控制器6220可连接至外部装置,例如主机6210或另一个外部装置,然后向外部装置传输数据/接收来自外部装置的数据。特别地,由于存储器控制器6220被配置成通过各种通信协议中的一种或多种与外部装置通信,因此根据实施例的存储器系统和数据处理系统可被应用于有线/无线电子装置特别是移动电子装置。
图11是示意性示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。图11示意性示出应用该存储器系统的SSD。
参照图11,SSD 6300可包括控制器6320和包括多个非易失性存储器的存储器装置6340。控制器6320可对应于图1至图8的存储器系统110中的控制器130,并且存储器装置6340可对应于图1至图8的存储器系统中的存储器装置150。
更具体地,控制器6320可通过多个通道CH1至CHi连接至存储器装置6340。控制器6320可包括一个或多个处理器6321、缓冲存储器6325、ECC电路6322、主机接口6324以及诸如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可临时存储从主机6310提供的数据或从包括在存储器装置6340中的多个闪速存储器NVM提供的数据,或者临时存储多个闪速存储器NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可通过诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器来实施。为便于描述,图11示出了缓冲存储器6325设置在控制器6320中。然而,缓冲存储器6325可存在于控制器6320的外部。
ECC电路6322可在编程操作期间计算待被编程到存储器装置6340的数据的ECC值。ECC电路6322可以读取操作期间基于ECC值对从存储器装置6340读取的数据执行错误校正操作,并可以在失效数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324可提供与诸如主机6310的外部装置的接口功能。非易失性存储器接口6326可提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可提供应用了图1至图8的存储器系统110的多个SSD 6300来实施数据处理系统,例如,RAID(独立磁盘冗余阵列)系统。RAID系统可包括多个SSD 6300和用于控制多个SSD 6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的写入命令的RAID级别信息,在SSD 6300中选择一个或多个存储器系统或SSD 6300。RAID控制器可以将对应于写入命令的数据输出到被选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的读取命令的RAID级别信息,在SSD 6300中选择一个或多个存储器系统或SSD 6300。RAID控制器可以将从所选择的SSD 6300读取的数据提供给主机6310。
图12是示意性示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。图12示意性示出应用了此存储器系统的嵌入式多媒体卡(eMMC)。
参照图12,eMMC 6400可包括控制器6430和通过一个或多个NAND闪速存储器实施的存储器装置6440。控制器6430可对应于图1至图8的存储器系统110中的控制器130,并且存储器装置6440可对应于图1至图8的存储器系统110中的存储器装置150。
更具体地,控制器6430可通过多个通道连接至存储器装置6440。控制器6430可包括一个或多个内核6432、主机接口6431和诸如NAND接口6433的存储器接口。
内核6432可控制eMMC 6400的全部操作。主机接口6431可提供控制器6430和主机6410之间的接口功能。NAND接口6433可提供存储器装置6440和控制器6430之间的接口功能。例如,主机接口6431可用作并行接口,例如参照图1所描述的MMC接口。此外,主机接口6431可用作串行接口,例如UHS((超高速)-I/UHS-II)接口。
图13至图16是示意性示出包括根据实施例的存储器系统的数据处理系统的其它示例的示图。图13至图16示意性示出应用此存储器系统的UFS(通用闪存)系统。
参照图13至图16,UFS系统6500、6600、6700、6800可分别包括主机6510、6610、6710、6810,UFS装置6520、6620、6720、6820以及UFS卡6530、6630、6730、6830。主机6510、6610、6710、6810可用作有线/无线电子装置或特别是移动电子装置的应用处理器,UFS装置6520、6620、6720、6820可用作嵌入式UFS装置,并且UFS卡6530、6630、6730、6830可用作外部嵌入式UFS装置或可移除UFS卡。
各个UFS系统6500、6600、6700、6800中的主机6510、6610、6710、6810,UFS装置6520、6620、6720、6820以及UFS卡6530、6630、6730、6830可通过UFS协议与诸如有线/无线电子装置或特别是移动电子装置的外部装置通信,并且UFS装置6520、6620、6720、6820以及UFS卡6530、6630、6730、6830可通过图1至图8所示的存储器系统110来实施。例如,在UFS系统6500、6600、6700、6800中,UFS装置6520、6620、6720、6820可以参照图10至图12描述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实施,并且UFS卡6530、6630、6730、6830可以参照图9描述的存储卡系统6100的形式来实施。
此外,在UFS系统6500、6600、6700和6800中,主机6510、6610、6710、6810,UFS装置6520、6620、6720、6820以及UFS卡6530、6630、6730、6830可通过UFS接口,例如,MIPI(移动行业处理器接口)中的MIPI M-PHY和MIPI UniPro(统一协议)彼此通信。此外,UFS装置6520、6620、6720、6820与UFS卡6530、6630、6730、6830可通过除UFS协议以外的各种协议,例如,UFD、MMC、SD、迷你SD和微型SD彼此通信。
在图13中示出的UFS系统6500中,主机6510、UFS装置6520和UFS卡6530中的每一个可以包括UniPro。主机6510可以执行交换操作,以便与UFS装置6520和UFS卡6530通信。具体地,主机6510可以在UniPro处,通过例如L3交换的链路层交换与UFS装置6520或UFS卡6530通信。UFS装置6520和UFS卡6530可以在主机6510的UniPro处,通过链路层交换来彼此通信。在本实施例中,示出了其中一个UFS装置6520和一个UFS卡6530联接至主机6510的配置。然而,在另一实施例中,多个UFS装置和UFS卡可以并联或以星型形式连接至主机6510。星型形式是单个装置与多个其它装置或卡联接以用于集中控制的布置。多个UFS卡可以并联或以星型形式连接至UFS装置6520或者串联或以链型形式连接至UFS装置6520。
在图14中示出的UFS系统6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可以包括UniPro,并且主机6610可以通过执行交换操作的交换模块6640,例如,通过在UniPro处执行例如L3交换的链路层交换的交换模块6640,与UFS装置6620或UFS卡6630通信。UFS装置6620和UFS卡6630可以通过交换模块6640在UniPro处的的链路层交换来彼此通信。在本实施例中,示出了其中一个UFS装置6620和一个UFS卡6630连接至交换模块6640的配置。然而,在另外的实施例中,多个UFS装置和UFS卡可以并联或以星型形式连接至交换模块6640,并且多个UFS卡可以串联或以链型形式连接至UFS装置6620。
在图15中示出的UFS系统6700中,主机6710、UFS装置6720和UFS卡6730中的每一个均可以包括UniPro,并且主机6710可以通过执行交换操作的交换模块6740,例如通过在UniPro处执行例如L3交换的链路层交换的交换模块6740,来与UFS装置6720或UFS卡6730通信。UFS装置6720和UFS卡6730可以通过交换模块6740在UniPro处的的链路层交换来彼此通信,并且交换模块6740可以在UFS装置6720的内侧或外侧与UFS装置6720集成为一个模块。在本实施例中,示出了其中一个UFS装置6720和一个UFS卡6730连接至交换模块6740的配置。然而,在另一实施例中,每一个均包括交换模块6740和UFS装置6720的多个模块可以并联或以星型形式连接至主机6710,或者串联或以链型形式连接至彼此。此外,多个UFS卡可以并联或以星型形式连接至UFS装置6720。
在图16中示出的UFS系统6800中,主机6810、UFS装置6820和UFS卡6830中的每一个均可以包括M-PHY和UniPro。UFS装置6820可以执行交换操作,以便与主机6810和UFS卡6830通信。特别地,UFS装置6820可以通过用于与主机6810通信的M-PHY和UniPro模块之间的交换操作和用于与UFS卡6830通信的M-PHY和UniPro模块之间的交换操作,例如通过目标ID(标识符)交换操作,来与主机6810或UFS卡6830通信。主机6810和UFS卡6830可以通过UFS装置6820的M-PHY模块和UniPro模块之间的目标ID交换来彼此通信。在本实施例中,示出了其中一个UFS装置6820连接至主机6810并且一个UFS卡6830连接至UFS装置6820的配置。然而,在另一实施例中,多个UFS装置可以并联或以星型连接至主机6810,或者串联或以链型形式连接至主机6810,并且多个UFS卡可以并联或以星型形式联接至UFS装置6820,或者串联或以链型形式连接至UFS装置6820。
图17是示意性示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。图17是示意性示出应用了此存储器系统的用户系统的示图。
参照图17,用户系统6900可包括应用处理器6930、存储器模块6920、网络模块6940、存储模块6950和用户接口6910。
更具体地,应用处理器6930可驱动包括在诸如OS的用户系统6900中的组件,并且包括控制包括在用户系统6900中的组件的控制器、接口和图形引擎。应用处理器6930可作为片上系统(SoC)被提供。
存储器模块6920可用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块6920可包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDARM、LPDDR2 SDRAM或LPDDR3 SDRAM的易失性RAM,或诸如PRAM、ReRAM、MRAM或FRAM的非易失性RAM。例如,可基于POP(堆叠式封装)封装和安装应用处理器6930和存储器模块6920。
网络模块6940可与外部装置通信。例如,网络模块6940不仅可支持有线通信,而且可支持各种无线通信协议,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(WiMAX)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI),从而与有线/无线电子装置特别是移动电子装置通信。因此,根据本公开的实施例的存储器系统和数据处理系统可应用于有线/无线电子装置。网络模块6940可被包括在应用处理器6930中。
存储模块6950可存储数据,例如从应用处理器6930接收的数据,然后可将所存储的数据传输到应用处理器6930。存储模块6950可通过诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪存、NOR闪存和3D NAND闪存的非易失性半导体存储器装置来实施,并且可被提供为诸如用户系统6900的存储卡或外部驱动器的可移除存储介质。存储模块6950可对应于参照图1至图8描述的存储器系统110。此外,存储模块6950可被实施为如上参照图11至图16所述的SSD、eMMC和UFS。
用户接口6910可包括用于向应用处理器6930输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器的用户输出接口。
此外,当图1至图8的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可控制移动电子装置的全部操作。网络模块6940可用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6910可在移动电子装置的显示/触摸模块上显示通过处理器6930处理的数据。另外,用户接口6910可以支持从触摸面板接收数据的功能。
根据实施例的存储器系统及其操作方法可以减小或最小化存储器系统的复杂性和性能劣化,并且增强或最大化存储器装置的使用效率,从而快速且稳定地处理关于存储器装置的数据。
虽然已经描述并图示了各种实施例,但是对于本领域技术人员显而易见的是,在不脱离如所附权利要求所限定的本公开的精神和范围的情况下,可进行各种改变和修改。

Claims (21)

1.一种控制器,包括:
处理器;以及
存储器;
其中,当数据被存储在存储器装置的开放块的所有页面中时,所述处理器确定所述开放块中的有效页面的数量,并且当所述有效页面的数量被确定为小于或等于阈值时对所述开放块执行垃圾收集,其中所述数量范围为从零至所述开放块中的页面的总数量。
2.根据权利要求1所述的控制器,其中所述处理器在将数据存储在所述开放块中的同时,生成关于所述开放块的映射信息并且将所述映射信息存储在所述存储器中。
3.根据权利要求2所述的控制器,其中所述映射信息包括物理地址到逻辑地址映射即P2L映射,在所述P2L映射中,对应于所述数据的逻辑地址被映射到物理地址。
4.根据权利要求2所述的控制器,其中所述映射信息包括与所述有效页面对应的物理地址并且不包括与一个或多个无效页面对应的物理地址。
5.根据权利要求2所述的控制器,其中所述处理器使用所述映射信息来执行所述垃圾收集。
6.根据权利要求1所述的控制器,其中所述处理器在关闭所述开放块之前,确定所述有效页面的数量并且执行所述垃圾收集。
7.根据权利要求2所述的控制器,其中所述处理器在生成所述映射信息的同时,将关于所述开放块的有效页面的数量的信息存储在所述存储器中。
8.根据权利要求1所述的控制器,其中当所述有效页面的数量被确定为超过所述阈值时,所述处理器关闭所述开放块。
9.一种操作控制器的方法,包括:
响应于来自主机的数据写入请求,将数据存储在存储器装置的开放块中;
当数据被存储在所述开放块的所有页面中时确定所述开放块中的有效页面的数量,其中所述数量范围为从零至所述开放块中的页面的总数量;以及
当所述有效页面的数量被确定为小于或等于阈值时,对所述开放块执行垃圾收集。
10.根据权利要求9所述的方法,其中将所述数据存储在所述开放块中包括生成关于所述开放块的映射信息并且将所述映射信息存储在存储器中。
11.根据权利要求10所述的方法,其中所述映射信息包括物理地址到逻辑地址映射即P2L映射,在所述P2L映射中,对应于所述数据的逻辑地址被映射到物理地址。
12.根据权利要求10所述的方法,其中所述映射信息包括与所述有效页面对应的物理地址并且不包括与一个或多个无效页面对应的物理地址。
13.根据权利要求10所述的方法,其中使用所述映射信息来执行所述垃圾收集。
14.根据权利要求9所述的方法,其中在所述开放块未被关闭的状态下进行确定所述有效页面的数量并且执行所述垃圾收集。
15.根据权利要求10所述的方法,其中生成所述映射信息进一步包括将关于所述开放块的有效页面的数量的信息存储在所述存储器中。
16.根据权利要求9所述的方法,进一步包括:
当所述有效页面的数量被确定为超过所述阈值时,关闭所述开放块。
17.一种存储器系统,包括:
用于存储数据的存储器装置;以及
用于控制所述存储器装置的控制器;
其中,当数据被存储在所述存储器装置的开放块的所有页面中时,所述控制器确定所述开放块中的有效页面的数量,并且当确定所述有效页面的数量小于或等于阈值时对所述开放块执行垃圾收集,其中所述数量范围为从零至所述开放块中的页面的总数量。
18.根据权利要求17所述的存储器系统,其中所述控制器在将数据存储在所述开放块中的同时,生成关于所述开放块的映射信息并且管理所述映射信息。
19.根据权利要求18所述的存储器系统,其中所述映射信息包括与所述有效页面对应的物理地址并且不包括与一个或多个无效页面对应的物理地址。
20.根据权利要求18所述的存储器系统,其中所述控制器使用所述映射信息来执行所述垃圾收集。
21.一种存储器系统,包括:
包括多个块的存储器装置,每个所述块用于存储数据,其中在每个所述块的最后页面被编程有数据之后,关闭每个所述块;以及
控制器,控制在所述存储器装置中执行的操作;
其中,在关闭多个所述块之中的被选择块之前,所述控制器基于与所述被选择块中的有效页面的数量有关的条件,来确定是否对所述被选择块执行垃圾收集;并且
其中当所述条件被满足时,所述控制器对所述被选择块执行所述垃圾收集。
CN201811351760.1A 2018-02-27 2018-11-14 控制器、其操作方法以及包括控制器的存储器系统 Active CN110196816B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0023714 2018-02-27
KR1020180023714A KR20190102790A (ko) 2018-02-27 2018-02-27 컨트롤러 및 그 동작 방법과, 이를 포함하는 메모리 시스템

Publications (2)

Publication Number Publication Date
CN110196816A true CN110196816A (zh) 2019-09-03
CN110196816B CN110196816B (zh) 2023-06-13

Family

ID=67684521

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811351760.1A Active CN110196816B (zh) 2018-02-27 2018-11-14 控制器、其操作方法以及包括控制器的存储器系统

Country Status (3)

Country Link
US (1) US10783074B2 (zh)
KR (1) KR20190102790A (zh)
CN (1) CN110196816B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200078046A (ko) * 2018-12-21 2020-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10915444B2 (en) * 2018-12-27 2021-02-09 Micron Technology, Inc. Garbage collection candidate selection using block overwrite rate
US12019899B2 (en) * 2022-03-03 2024-06-25 Western Digital Technologies, Inc. Data relocation with protection for open relocation destination blocks

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101218570A (zh) * 2005-06-30 2008-07-09 飞思卡尔半导体公司 在直接存储器存取任务请求之间进行仲裁的装置和方法
CN101233499A (zh) * 2005-08-03 2008-07-30 桑迪士克股份有限公司 回收快闪存储器系统中的数据存储容量
US20110055458A1 (en) * 2009-09-03 2011-03-03 248 Solid State, Inc. Page based management of flash storage
CN103080911A (zh) * 2010-06-30 2013-05-01 桑迪士克科技股份有限公司 存储器块的先占式垃圾回收
US20140032817A1 (en) * 2012-07-27 2014-01-30 International Business Machines Corporation Valid page threshold based garbage collection for solid state drive
US9489296B1 (en) * 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
US20170228313A1 (en) * 2016-02-08 2017-08-10 Wipro Limited Method and System for Optimized Garbage Collection in a Storage Device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102292198B1 (ko) 2014-10-15 2021-08-25 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 데이터 저장 장치 및 그것의 동작 방법
KR102292183B1 (ko) * 2014-11-07 2021-08-25 삼성전자주식회사 불휘발성 메모리의 동작 방법 및 불휘발성 메모리를 포함하는 스토리지 장치의 동작 방법
US10877898B2 (en) * 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101218570A (zh) * 2005-06-30 2008-07-09 飞思卡尔半导体公司 在直接存储器存取任务请求之间进行仲裁的装置和方法
CN101233499A (zh) * 2005-08-03 2008-07-30 桑迪士克股份有限公司 回收快闪存储器系统中的数据存储容量
US20110055458A1 (en) * 2009-09-03 2011-03-03 248 Solid State, Inc. Page based management of flash storage
CN103080911A (zh) * 2010-06-30 2013-05-01 桑迪士克科技股份有限公司 存储器块的先占式垃圾回收
US20140032817A1 (en) * 2012-07-27 2014-01-30 International Business Machines Corporation Valid page threshold based garbage collection for solid state drive
US9489296B1 (en) * 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
US20170228313A1 (en) * 2016-02-08 2017-08-10 Wipro Limited Method and System for Optimized Garbage Collection in a Storage Device

Also Published As

Publication number Publication date
CN110196816B (zh) 2023-06-13
US20190266082A1 (en) 2019-08-29
US10783074B2 (en) 2020-09-22
KR20190102790A (ko) 2019-09-04

Similar Documents

Publication Publication Date Title
CN108572927A (zh) 存储器系统及其操作方法
CN108255739A (zh) 存储器系统及其操作方法
CN107643985A (zh) 存储器系统及其操作方法
CN109388594A (zh) 存储器系统及其操作方法
CN109656472A (zh) 存储器系统及其操作方法
CN109947358A (zh) 存储器系统及其操作方法
CN107346213A (zh) 存储器系统及其操作方法
CN110244907A (zh) 存储器系统及该存储器系统的操作方法
CN109426449A (zh) 存储器系统及其操作方法
CN108121665A (zh) 存储器系统及其操作方法
CN109284202A (zh) 控制器及其操作方法
CN107818057A (zh) 存储器系统及其操作方法
CN110347330A (zh) 存储器系统及其操作方法
CN109521947A (zh) 存储器系统以及存储器系统的操作方法
CN107591182A (zh) 存储器系统及其操作方法
CN110058797A (zh) 存储器系统及其操作方法
CN110321069A (zh) 存储器系统及其操作方法
CN108108308A (zh) 存储器系统及其操作方法
CN108932203A (zh) 数据处理系统和数据处理方法
CN109032501A (zh) 存储器系统及其操作方法
CN109656749A (zh) 存储器系统及其操作方法
CN109271328A (zh) 存储器系统及其操作方法
CN110457230A (zh) 存储器系统及其操作方法
CN110197692A (zh) 存储器系统及其操作方法
CN109656470A (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
TR01 Transfer of patent right

Effective date of registration: 20240613

Address after: American Texas

Patentee after: Mimi IP Co.,Ltd.

Country or region after: U.S.A.

Address before: Gyeonggi Do, South Korea

Patentee before: Sk Hynix Inc.

Country or region before: Republic of Korea

TR01 Transfer of patent right