CN107346213B - 存储器系统及其操作方法 - Google Patents

存储器系统及其操作方法 Download PDF

Info

Publication number
CN107346213B
CN107346213B CN201710039453.9A CN201710039453A CN107346213B CN 107346213 B CN107346213 B CN 107346213B CN 201710039453 A CN201710039453 A CN 201710039453A CN 107346213 B CN107346213 B CN 107346213B
Authority
CN
China
Prior art keywords
memory
block
memory block
storage
data
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
CN201710039453.9A
Other languages
English (en)
Other versions
CN107346213A (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 CN107346213A publication Critical patent/CN107346213A/zh
Application granted granted Critical
Publication of CN107346213B publication Critical patent/CN107346213B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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
    • 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
    • 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/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
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/10Programming or data input 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/7205Cleaning, compaction, garbage collection, erase control

Abstract

本发明提供一种存储器系统,其包括:存储器装置,其包括多个存储块;以及控制器,其适于:将对应于从主机接收的写入命令的用户数据存储在存储块中,将响应于用户数据的存储的映射数据存储在存储块中,根据用户数据的逻辑信息对包括在映射数据中的映射段进行排序,通过映射段确定存储块的相关性,以及基于所确定的相关性在存储块中选择源存储块。

Description

存储器系统及其操作方法
相关申请的交叉引用
本申请要求于2016年5月4日向韩国知识产权局提交的申请号为10-2016-0055488的韩国专利申请的优先权,其全部公开内容通过引用并入本文。
技术领域
示例性实施例涉及一种存储器系统,且更特别地,涉及一种处理关于存储器装置的数据的存储器系统及其操作方法。
背景技术
计算机环境范式已经转变为普适计算系统,其能够在任何时间和任何地点使用。由于这个事实,诸如移动电话、数字照相机和笔记本计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有例如数据存储装置的存储器装置的存储器系统。存储器系统可用作便携式电子装置的主存储器装置或辅助存储器装置。
使用存储器装置的存储器系统因其不具有移动部件而可提供优良的稳定性、耐用性、高信息存取速度以及低功耗。具有这种优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
各种实施例涉及一种存储器系统及其操作方法,其能够最小化存储器系统的复杂性和性能退化,并最大化存储器装置的使用效率,从而快速且稳定地处理关于存储器装置的数据。
在实施例中,存储器系统可包括:存储器装置,其包括多个存储块;以及控制器,其适于:将对应于从主机接收的写入命令的用户数据存储在存储块中,将响应于用户数据的存储的映射数据存储在存储块中,根据用户数据的逻辑信息对包括在映射数据中的映射段进行排序,通过映射段确定存储块的相关性,以及基于所确定的相关性在存储块之中选择源存储块。
控制器可通过存储在存储块中的用户数据的逻辑信息的重叠和序列(sequence)中的至少一个来确定存储块的相关性。
控制器可在存储块中选择在逻辑信息上具有重叠的第一存储块和第二存储块作为源存储块。
控制器可在存储块中选择在逻辑信息上具有序列的第一存储块和第二存储块作为源存储块。
用户数据的逻辑信息可包括存储在存储块中的用户数据的逻辑页面编号(LPN)。
控制器可通过指示存储块的索引(index)记录存储块的映射段的最小逻辑页面编号和最大逻辑页面编号来生成列表,并将该列表存储在控制器的存储器中。
控制器可通过从列表中检查存储块的最小逻辑页面编号和最大逻辑页面编号来确定存储块的相关性。
映射段可包括响应于用户数据在存储块中的存储的用户数据的物理到逻辑(P2L)段。
控制器可在用户数据的物理到逻辑(P2L)表中按照用户数据的逻辑页面编号(LPN)的序列对指示存储在存储块中的索引进行排序。
控制器可将存储在源存储块的有效页面中的数据复制并存储在存储块之中的目标存储块中,并且可对源存储块执行擦除操作。
在实施例中,用于操作存储器系统的方法可包括:从主机接收用于存储器装置的多个存储块的写入命令;将对应于写入命令的用户数据存储在存储块中;根据用户数据的逻辑信息,对响应于用户数据的存储的映射数据的映射段进行排序和更新;以及通过映射段来基于存储块的相关性选择存储块中的源存储块。
源存储块的选择可包括通过存储在存储块中的用户数据的逻辑信息的重叠和序列中的至少一个来确定存储块的相关性。
源存储块的选择可包括在存储块中选择在逻辑信息上具有重叠的第一存储块和第二存储块作为源存储块。
源存储块的选择可包括在存储块中选择在逻辑信息上具有序列的第一存储块和第二存储块作为源存储块。
用户数据的逻辑信息可包括存储在存储块中的用户数据的逻辑页面编号(LPN)。
该方法可进一步包括:通过指示存储块的索引记录存储块的映射段的最小逻辑页面编号和最大逻辑页面编号来生成列表;以及将该列表存储在控制器的存储器中。
源存储块的选择可包括通过从列表中检查存储块的最小逻辑页面编号和最大逻辑页面编号来确定存储块的相关性。
映射段可包括响应于用户数据在存储块中的存储的用户数据的物理到逻辑(P2L)段。
映射段的排序和更新可包括在用户数据的物理到逻辑(P2L)表中按照用户数据的逻辑页面编号(LPN)的序列对指示存储在存储块中的索引进行排序。
该方法可进一步包括:将存储在源存储块的有效页面中的数据复制并存储在存储块之中的目标存储块中,并且对源存储块执行擦除操作。
附图说明
将参照附图描述本发明的这些和其它特征和优点,其中:
图1是示出根据本发明的实施例的包括存储器系统的数据处理系统的图。
图2是示出在图1的存储器系统中采用的存储器装置的示例的图。
图3是示出根据本发明的实施例的存储器装置中的存储块的电路图。
图4是示意性地示出根据本发明的实施例的存储器装置的示例配置的图。
图5至图7是示意性地示出根据本发明的实施例的关于存储器系统中的存储器装置的数据处理操作的图。
图8是示出根据本发明的实施例的用于在存储器系统中处理数据的操作过程的流程图。
图9至图14是示出根据本发明的实施例的存储器系统的示例的图。
具体实施方式
尽管下面参照附图更详细地描述了各种实施例,但是应注意到,本发明可以不同的形式实施,并且不应被解释为限于本文所阐述的实施例。相反,提供所描述的实施例以便使本公开将是彻底且完全的,并将本发明完全传达给本发明所属领域的技术人员。贯穿本公开,在本发明的各个附图和实施例中,相同的附图标记表示相同的部件。
将理解的是,尽管可以在本文中使用术语“第一”、“第二”、“第三”等来描述各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一个元件区分开。因此,在不脱离本发明的精神和范围的情况下,下面描述的第一元件也可被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,比例可能已经被夸大以便清楚地示出实施例的特征。
将进一步理解的是,当元件被称为“连接到”或“联接到”另一元件时,其可直接在另一元件上、连接到或联接到另一元件,或者可存在一个或多个中间元件。此外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
本文使用的术语仅是为了描述特定实施例为目的,并不旨在限制本发明。如本文所使用的,除非上下文另有明确指示,否则单数形式也旨在包括复数形式。还应当理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,并且不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员考虑到本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语应当被解释为具有与其在本公开和相关技术语境中的含义一致的含义,并且将不以理想化或过于正式的意义来解释,除非本文中明确地这样定义。
在下面的描述中,为了提供对本发明的全面理解,描述了大量具体细节。可在没有一些或全部这些具体细节的情况下实践本发明。在其它情况下,没有详细地描述公知的进程结构和/或进程以避免不必要地模糊本发明。
还应注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有特别说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用。
在下文中,将参照附图详细描述本发明的各种实施例。
图1示出了根据本发明的实施例的包括存储器系统的数据处理系统100。
参照图1,数据处理系统100可包括主机102和存储器系统110。
例如,主机102可包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏机、电视(TV)和投影仪的电子装置。
存储器系统110可响应于来自主机102的请求而操作。例如,存储器系统110可存储将由主机102访问的数据。存储器系统110可用作主机102的主存储器或辅助存储器。根据将与主机102电联接的主机接口的协议,存储器系统110可利用各种存储装置中的任一种来实施。存储器系统110可利用诸如以下的各种存储装置的任何一种来实施:例如,固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)、微型-MMC、安全数字(SD)卡、迷你-SD、微型-SD、通用串行总线(USB)存储装置、通用闪速存储(UFS)装置、标准闪存(CF)卡、智能媒体(SM)卡、记忆棒等。
形成存储器系统110的存储装置可利用诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)的易失性存储器装置或诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)和闪速存储器的非易失性存储器装置实施。
存储器系统110可包括存储器装置150和控制器130。存储器装置150存储将由主机102访问的数据,并且控制器130控制存储器装置150和主机102之间的数据交换。也就是说,在控制器130的控制下,从主机接收的数据可被存储在存储器装置150中。
控制器130和存储器装置150可集成到一个半导体装置中。例如,控制器130和存储器装置150可集成到一个半导体装置中以形成固态驱动器(SSD)。当存储器系统110用作SSD时,可显著增加与存储器系统110电联接的主机102的操作速度。
控制器130和存储器装置150可集成到一个半导体装置中以形成存储卡,诸如,例如个人计算机存储卡国际协会(PCMCIA)卡、标准闪存(CF)卡、智能媒体卡(SMC)、记忆棒、多媒体卡(MMC)、RS-MMC、微型-MMC、安全数字(SD)卡、迷你-SD、微型-SD、SDHC以及通用闪速存储(UFS)装置。
对于另一实例,存储器系统110可配置计算机、超移动PC(UMPC)、工作站、上网书、个人数字助理(PDA)、便携式计算机、网络平板、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航装置、黑盒、数字照相机、数字多媒体广播(DMB)播放器、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、用于数据中心的存储器、能够在无线环境下传输和接收信息的装置、用于家庭网络的各种电子装置之一、用于计算机网络的各种电子装置之一、用于远程信息处理网络的各种电子装置之一、RFID装置或用于计算系统的各种组成元件之一。
存储器装置150即使在电力被阻断时也可保留所存储的数据,可在写入操作期间存储从主机102提供的数据,并且可在读取操作期间将所存储的数据提供到主机102。存储器装置150可包括多个存储块152、154和156。存储块152、154和156中的每一个可包括多个页面。每个页面可包括多个存储器单元,其中多个字线(WL)电联接到多个存储器单元。存储器单元可以是一位单元或多位单元。存储器单元可布置成二维或三维堆叠结构。存储器装置150可以是非易失性存储器装置,例如闪速存储器。闪速存储器可具有三维(3D)堆叠结构。稍后将参照图2至图11详细描述存储器装置150的结构和存储器装置150的三维(3D)堆叠结构。
存储器系统110的控制器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(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
ECC单元138可检测并校正读取操作期间从存储器装置150读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC单元138可不校正错误位,并且可输出指示校正错误位失败的错误校正失败信号。
ECC单元138可基于诸如低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、turbo码,里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、块编码调制(BCM)等的编码调制来执行错误校正操作。ECC单元138可包括用于错误校正操作的所有电路、系统或装置。
PMU 140可提供和管理用于控制器130的电力,即用于包括在控制器130中的组成元件的电力。
NFC 142可用作控制器130和存储器装置150之间的存储器接口,以允许控制器130响应于来自主机102的请求来控制存储器装置150。当存储器装置150是闪速存储器时,并且特别是当存储器装置150是NAND闪速存储器时,NFC 142可在处理器134的控制下生成用于存储器装置150的控制信号并且处理数据。
存储器144可用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可响应于来自主机102的请求来控制存储器装置150。例如,控制器130可将从存储器装置150读取的数据提供至主机102,并将从主机102提供的数据存储在存储器装置150中。当控制器130控制存储器装置150的操作时,存储器144可存储由控制器130和存储器装置150用于诸如读取操作、写入操作、编程操作和擦除操作的操作的数据。
存储器144可利用诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)的易失性存储器来实施。如上所述,存储器144可存储由主机102和存储器装置150用于读取操作和写入操作的数据。对于数据的这种存储,存储器144可包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
处理器134可控制存储器系统110的一般操作以及响应于来自主机102的写入请求或读取请求控制存储器装置150的写入操作或读取操作。处理器134可驱动被称为闪存转换层(FTL)的固件,以控制存储器系统110的一般操作。处理器134可利用微处理器或中央处理单元(CPU)来实施。
管理单元(未示出)可被包括在处理器134中,并且可执行存储器装置150的坏块管理。管理单元可找到包括在存储器装置150中的对于进一步使用处于令人不满意状况的坏存储块,并且对坏存储块执行坏块管理。当存储器装置150是例如NAND闪速存储器的闪速存储器时,由于NAND逻辑功能的特性,在写入操作期间,例如在编程操作期间,可能发生编程故障。在坏块管理期间,可将编程失败的存储块或坏存储块的数据编程到新存储块中。而且,由于编程失败导致的坏块严重降低了具有3D堆叠结构的存储器装置150的利用效率和存储器系统110的可靠性,因此需要可靠的坏块管理。
图2是图1所示的存储器装置150的详细图。
参照图2,存储器装置150可包括多个存储块,例如第零存储块(BLOCK0)210、第一存储块(BLOCK1)220、第二存储块(BLOCK2)230以及第N-1存储块(BLOCKN-1)240。存储块210至240中的每一个可包括多个页面,例如2M个页面(2M页面)。每个页面可包括多个存储器单元,其中多个字线电联接到多个存储器单元。
而且,存储器装置150可根据每个存储器单元中可存储或表达的位的数量而包括如单层单元(SLC)存储块和多层单元(MLC)存储块的多个存储块。SLC存储块可包括利用每个能够存储1位数据的存储器单元实施的多个页面。MLC存储块可包括利用存储器单元实施的多个页面,其中每个存储器单元能够存储多位数据,例如,两位或更多位数据。包括利用每个能够存储3位数据的存储器单元实施的多个页面的MLC存储块可被定义为三层单元(TLC)存储块。
存储块210至240中的每一个可在写入操作期间存储从主机102提供的数据,并且在读取操作期间将存储的数据提供至主机102。
图3是示出包括图2所示的存储块的存储器装置150的图。图3示出了单个存储块330及与其相关的电路310和320的详细配置。
参照图3,存储块330可包括分别电联接到位线BL0到BLm-1的多个单元串340。每列的单元串340可包括至少一个漏极选择晶体管(即,串选择晶体管)DST和至少一个接地选择晶体管(即,源极选择晶体管)GST。多个存储器单元晶体管MC0至MCn-1可串联地电联接在选择晶体管GST和DST之间。各个存储器单元MC0至MCn-1可由多层单元(MLC)配置,每个多层单元存储多个位的数据信息。单元串340可分别电联接到对应的位线BL0到BLm-1。作为参考,在图3中,“DSL”表示漏极选择线(即,串选择线),“GSL”表示接地选择线(即,源极选择线),“CSL”表示共源线。
虽然图3示出了由NAND闪速存储器单元配置的存储块330作为示例,但是应当注意的是,根据本发明的示例性实施例的存储器装置300的存储块330不限于NAND闪速存储器,并且可由NOR闪速存储器、其中组合有至少两种存储器单元的混合闪速存储器或者其中控制器内置在存储器芯片中的1-NAND闪速存储器来实现。半导体装置的操作特性不仅可应用于其中电荷存储层由导电浮栅配置的闪速存储器装置,而且可应用于其中电荷存储层由介电层配置的电荷捕获闪存(CTF)。
存储器装置300的电压供应块310可提供将根据操作模式供应给各个字线的字线电压,例如编程电压、读取电压和通过电压,以及提供将供应给形成有存储器单元的例如阱区的体材料(bulk)的电压。电压供应块310可在控制电路(未示出)的控制下执行电压生成操作。电压供应块310可生成多个可变读取电压以生成多个读取数据,在控制电路的控制下选择存储器单元阵列的存储块或扇区中的一个,选择所选存储块的字线中的一个字线,并且将字线电压提供至所选字线和未选择的字线。
存储器装置300的读取/写入电路320可由控制电路控制,并且可根据操作模式用作读出放大器或写入驱动器。在验证/正常读取操作期间,读取/写入电路320可用作用于从存储器单元阵列读取数据的读出放大器。而且,在编程操作期间,读取/写入电路320可用作根据将存储在存储器单元阵列中的数据来驱动位线的写入驱动器。在编程操作期间,读取/写入电路320可从缓冲器(未示出)接收将写入存储器单元阵列中的数据,并且可根据输入的数据来驱动位线。为此,读取/写入电路320可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器322、324和326,并且多个锁存器(未示出)可被包括在页面缓冲器322、324和326中的每一个中。
存储器装置150可被实现为二维或三维存储器装置。例如,如图4所示,在存储器装置150被实现为三维非易失性存储器装置的情况下,存储器装置150可包括多个存储块BLK0至BLKN-1。
图4是示出图3所示的存储器装置的存储块的框图,并且存储块BLK0至BLKN-1可被实现为三维结构(或竖直结构)。例如,各个存储块BLK0至BLKN-1可通过包括在第一至第三方向(例如,x轴方向、y轴方向和z轴方向)上延伸的结构而被实现为三维结构。
各个存储块BLK0至BLKN-1可包括在第二方向上延伸的多个NAND串。多个NAND串可设置在第一方向和第三方向上。每个NAND串可电联接到位线、至少一个漏极选择线、至少一个接地选择线、多个字线、至少一个虚拟字线以及共源线。即,各个存储块BLK0至BLKN-1可电联接到多个位线、多个漏极选择线、多个接地选择线、多个字线、多个虚拟字线以及多个共源线。
在下文中,将参照图5至图8详细描述关于根据本发明的实施例的存储器系统中的存储器装置150的数据处理。特别地,将描述关于存储器装置150的对应于从主机102接收的命令的命令数据处理操作。
图5至图7是示出关于根据本发明的实施例的存储器系统中的存储器装置的数据处理操作的图。以下,将在如下情况下描述数据处理:在图1所示的存储器系统110中,在将对应于从主机102接收的命令的命令数据存储在包括在控制器130的存储器144中的缓冲器/高速缓冲存储器中后,执行对应于从主机102接收的命令的命令操作。例如,对应于存储在缓冲器/高速缓冲存储器中的写入命令的写入数据被写入(或编程)在包括在存储器装置150中的多个存储块中,然后编程在存储器装置150中的数据被更新并被重新编程在存储器装置150中。
如下所述,作为示例,控制器130可在存储器系统110中执行数据处理操作。然而,应当注意的是,包括在控制器130中的处理器134可通过闪存转换层(FTL)执行数据处理。此外,如下所述,数据处理操作可以是编程操作。编程操作可由控制器130执行。编程操作可包括:控制器130首先将对应于从主机102接收的写入命令的用户数据和元数据存储在包括在控制器130的存储器144中的缓冲器中。编程操作可进一步包括:控制器130将存储在缓冲器中的数据写入(即,存储)在包括在存储器装置150中的多个存储块中。例如,控制器130执行编程操作。
元数据可包括响应于编程操作存储在存储块中的数据的包含逻辑到物理(L2P)信息(以下也称为“逻辑信息”)的第一映射数据和包含物理到逻辑(P2L)信息(以下也称为“物理信息”)的第二映射数据。元数据可包括关于对应于从主机102接收的命令的命令数据的信息、关于对应于命令的命令操作的信息、关于将对其执行命令操作的存储器装置150的存储块的信息以及关于对应于命令操作的映射数据的信息。换言之,元数据可包括除了对应于从主机102接收的命令的用户数据之外的所有剩余信息和数据。
在实施例中,当控制器130从主机102接收到写入命令时,对应于写入命令的用户数据存储在存储器装置150的存储块中。例如,对应于写入命令的用户数据可存储在对其执行擦除操作的开放存储块中或存储块中的空闲存储块中。元数据可包括存储在存储块中的用户数据的逻辑地址和物理地址之间的映射信息,以及存储用户数据的存储块的物理地址和逻辑地址之间的映射信息。前一个映射信息是包括记录逻辑信息的L2P映射表的第一映射数据。后一个映射信息是包括记录物理信息的P2L映射表的第二映射数据。元数据存储在存储器装置150的存储块之中的开放存储块或空闲存储块中。例如,在实施例中,当从主机102接收到写入命令时,对应于写入命令的用户数据存储在存储块中,并且包括存储在存储块中的用户数据的第一映射数据和第二映射数据等的元数据存储在存储块中。此时,用户数据的数据段和元数据的元段存储在存储器装置150的存储块中。例如,第一映射数据的L2P段和第二映射数据的P2L段作为映射数据的映射段存储在存储器装置150的存储块中。
在实施例中,在对与从主机102接收的命令相对应的用户数据执行存储块中的命令操作以执行命令操作的情况下,搜索并检查存储在存储块中的用户数据的第一映射数据和第二映射数据。通过搜索和检查用户数据的第一映射数据的各个逻辑段和用户数据的第二映射数据的各个物理段,执行对存储块中的用户数据的命令操作。例如,通过扫描用户数据的第一映射数据的L2P段和用户数据的第二映射数据的P2L段,执行对存储块中的用户数据的命令操作。
搜索和检查用户数据的第一映射数据的逻辑段和用户数据的第二映射数据的物理段可包括根据逻辑信息对包括在第一映射数据和第二映射数据中的映射段进行排序。例如,为了更快速和稳定地对第一映射数据中的逻辑段和第二映射数据中的物理段执行扫描,可根据用户数据的逻辑页面编号(以下称为“LPN”)或逻辑地址对包括在第一映射数据中的逻辑段和第二映射数据中的物理段进行排序。以这种方式,可生成第一映射数据和第二映射数据。第一映射数据和第二映射数据可存储在存储器装置150的存储块中。然后,在扫描第一映射数据和第二映射数据以执行对应于从主机102接收的命令的命令操作的情况下,在将第一映射数据和第二映射数据加载在包括在控制器130的存储器144中的映射高速缓冲存储器或映射缓冲器中之后,可更快地执行对第一映射数据和第二映射数据的已排序的映射段的扫描。例如,可更快地执行对逻辑段和物理段的搜索和检查。
在实施例中,在执行对应于从主机102接收的写入命令的写入命令操作时生成和更新第二映射数据的情况下,基于LPN对写入存储块的页面中的数据的逻辑地址和包括在第二映射数据的P2L映射表中的P2L段进行排序。例如,检查对应于写入命令的用户数据的LPN,并且基于LPN对包括在第二映射数据的P2L映射表中的P2L段进行排序。以这种方式,构建P2L映射表。例如,生成第二映射数据。如上所述基于LPN对P2L段进行排序的第二映射数据存储在存储器装置150的存储块中,并且被管理和存储在包括在控制器130的存储器144中的映射高速缓冲存储器或映射缓冲器中。
在实施例中,在当对应于从主机102接收的写入命令的用户数据被写入存储器装置150的存储块中时执行第一映射数据和第二映射数据的更新的情况下,检查写入存储块中的用户数据的LPN。由于基于LPN对存储在控制器130的存储器144中的第一映射数据和第二映射数据进行排序,因此在排序的P2L段中检查对应于写入存储块中的用户数据的LPN的位置,并且转移存在于检查位置处的P2L段。特别地,对第二映射数据的P2L段进行排序。由于对应于写入存储块中的用户数据的P2L段记录在通过转移生成的空白区域中,所以第二映射数据被更新。更新的第二映射数据的P2L段也基于LPN排序。
因此,在实施例中,在第一映射数据的逻辑段和第二映射数据的物理段中执行搜索和检查以执行对应于从主机102接收的命令的命令操作的情况下,由于第一映射数据的逻辑段和第二映射数据的物理段基于LPN排序,所以可更快地针对与命令相对应的用户数据的LPN在第一映射数据的逻辑段和第二映射数据的物理段中执行搜索和检查。例如,可更快地针对与命令相对应的用户数据的LPN在第一映射数据和第二映射数据中执行扫描。
以这种方式,在实施例中,由于第一映射数据和第二映射数据被加载在控制器130的存储器144中,所以可更快地执行对与对应于从主机102接收的命令的用户数据相对应的P2L段的扫描。特别地,基于LPN对第二映射数据的P2L段进行排序。因此,可更快地执行映射数据的搜索和检查以执行对应于从主机102接收的命令的命令操作。例如,增加了用于执行命令操作的映射数据的访问速度,由此可以更快速和稳定地处理对应于从主机102接收的命令的命令数据。
在实施例中,可考虑如上所述基于LPN排序的第一映射数据和第二映射数据来执行对存储器装置150的后台操作。例如,后台操作可包括通过将存储在存储器装置150的存储块中的数据复制到可选存储块来处理这些数据的操作。例如,可执行垃圾收集操作,即交换存储器装置150的存储块或存储在存储块中的数据的操作(例如,损耗平衡操作)。可执行将存储在控制器130中的映射数据存储在存储器装置150的存储块中的操作(例如,映射刷新操作)。
在实施例中,在控制器130将对应于从主机102接收的写入命令的写入数据存储在包括在控制器130的存储器144中的缓冲器中之后,控制器130将存储在缓冲器中的数据编程在包括在存储器装置150中的多个存储块中的可选存储块的多个页面中。例如,控制器130执行编程操作,并将存储在缓冲器中的数据存储在第一存储块的第一页面中。在控制器130从主机102接收到用于存储在第一存储块的第一页面中的数据的写入命令的情况下,控制器130对存储在第一存储块的第一页面中的数据执行编程。换言之,控制器130将对应于从主机102接收的写入命令的写入数据存储在可选存储块的其它页面中或另一可选存储块的页面中。例如,控制器130将对应于写入命令的写入数据存储在第一存储块的第二页面或第二存储块的第一页面中。此时,存储在前一个可选存储块的页面中的数据被处理为无效数据。例如,第一存储块的第一页面被处理为无效数据,因此,第一存储块的第一页面变成无效页面。
在实施例中,在存储器装置150的存储块中以这种方式包括无效页面的情况下,为了最大化存储器装置150的利用效率,可在存储器装置150的存储块中执行处理数据的操作。例如,垃圾收集操作可作为后台操作执行。在实施例中,检查存储器装置150的存储块中的封闭存储块,即,其中已经执行用于将数据写入包括在存储块中的所有页面中的操作的存储块,以及还检查封闭存储块中的无效页面的编号。然后,控制器130执行将包括在存储块中的有效页面的数据即有效数据复制到并存储在空存储块、开放存储块或空闲存储块中的操作,即,对存储器装置150的存储块的垃圾收集操作。
即,在实施例中,考虑到在存储器装置150的存储块之中的已经执行用于将数据写入包括在每个存储块中的所有页面中的操作的存储块,并且考虑到已经执行数据编程的封闭存储块中的无效页面,控制器130执行将包括在存储块中的有效页面的数据复制到并存储在未执行编程的存储块中的操作。例如,控制器130执行将有效数据复制到并存储在空存储块、开放存储块或空闲存储块中的操作。例如,控制器130对存储器装置150的存储块执行垃圾收集操作。
在这方面,在实施例中,控制器130可检查存储器装置150的存储块中的有效页面,并根据存储块的一个或多个参数执行垃圾收集操作,并可因此生成空存储块、开放存储块或空闲存储块。例如,参数可包括存储块的有效页面计数(VPC)。例如,在实施例中,将在不仅考虑存储器装置150的封闭存储块的参数而且考虑在存储器装置150的封闭存储块中如上所述基于LPN排序的第一映射数据和第二映射数据对存储器装置150的存储块执行垃圾收集操作的情况下,对数据处理进行详细描述。例如,在实施例中,在包括在存储器装置150中的存储块中,考虑到封闭存储块的参数,例如封闭存储块的VPC、基于LPN排序的第一映射数据和第二映射数据,在存储块之中选择源存储块。然后,源存储块中的有效数据被复制到并存储在目标存储块中,并且对源存储块执行擦除操作。例如,目标存储块可包括空存储块、开放存储块或空闲存储块,其中不执行对包括在每个存储块中的所有页面的数据编程。因此,执行将源存储块生成为空存储块、开放存储块或空闲存储块的垃圾收集操作。以下,将参照图5至图7详细描述根据实施例的存储器系统中的数据处理操作。
首先,参照图5,控制器130将对应于从主机102接收的命令的数据,例如,与写入命令相对应的用户数据,写入并存储在存储器装置150的存储块之中的数据存储块550的开放存储块552、554、556、558和560中。例如,控制器130将对应于写入命令的用户数据写入并存储在数据存储块550的开放存储块552、554、556、558和560中。响应于对数据存储块550的写入操作,控制器130将用户数据的映射数据存储在存储器装置150的存储块之中的映射存储块580的开放存储块582和584中。
控制器130将指示用户数据存储在包括在存储器装置150中的数据存储块550的开放存储块552、554、556、558和560中的页面中的信息存储在包括在存储器装置150的映射存储块580中的开放存储块582和584中。例如,指示用户数据存储在包括在存储器装置150中的数据存储块550的开放存储块552、554、556、558和560中的页面中的信息可包括第一映射数据和第二映射数据。换言之,控制器130将第一映射数据的逻辑段(例如,L2P段)存储在映射存储块580的第一存储块582中,并且将第二映射数据的物理段(例如,P2L段)存储在映射存储块580的第二存储块584中。
此外,控制器130将对应于从主机102接收的命令的数据,例如,与写入命令相对应的用户数据,缓存并缓冲在包括在控制器130的存储器144中的第一缓冲器510中,例如,将用户数据的数据段512存储在作为数据缓冲器/高速缓冲存储器的第一缓冲器510中。例如,控制器130将对应于写入命令的用户数据缓存并缓冲在包括在控制器130的存储器144中的第一缓冲器510中。例如,控制器130将用户数据的数据段512存储在作为数据缓冲器/高速缓冲存储器的第一缓冲器510中。然后,控制器130将存储在第一缓冲器510中的数据段512写入并存储在包括在存储器装置150的数据存储块550中的开放存储块552、554、556、558和560的页面中。
当对应于从主机102接收的命令的用户数据的数据段512存储在包括在存储器装置150的数据存储块550中的开放存储块552、554、556、558和560的页面中时,控制器130生成第一映射数据和第二映射数据,并将第一映射数据和第二映射数据存储在包括在控制器130的存储器144中的第二缓冲器520中。即,控制器130将用户数据的第一映射数据的L2P段522和用户数据的第二映射数据的P2L段524存储在作为映射缓冲器/高速缓冲存储器的第二缓冲器520中。
在控制器130的存储器144的第二缓冲器520中,如上所述,可存储有第一映射数据的L2P段522和第二映射数据的P2L段524。或者,可存储有第一映射数据的L2P段522的映射列表和第二映射数据的P2L段524的映射列表。在这种情况下,第一映射数据的L2P段522和第二映射数据的P2L段524通过按照LPN的序列排序而存储在第二缓冲器520中。或者,指示映射列表中的映射段的索引通过按照LPN的序列排序而存储在第二缓冲器520中。在下文中,为了便于解释,将对第一映射数据的L2P段522和第二映射数据的P2L段524通过按照LPN的序列排序而存储在第二缓冲器520中的情况进行详细描述。然而,应当注意的是,本实施例可以相同的方式应用于指示映射列表中的映射段的索引通过按照LPN的序列排序而存储在第二缓冲器520中的情况。
控制器130将存储在第二缓冲器520中的第一映射数据的L2P段522和第二映射数据的P2L段524分别存储在存储器装置150的映射存储块580中的第一存储块582和第二存储块584中。另外,在第一映射数据和第二映射数据中对与命令相对应的用户数据执行扫描以执行对应于从主机102接收的命令的命令操作的情况下,控制器130在存储在第二缓冲器520中的第一映射数据的L2P段522和第二映射数据的P2L段524中执行扫描。或者,控制器130将分别存储在存储器装置150的映射存储块580中的第一存储块582和第二存储块584中的第一映射数据的L2P段和第二映射数据的P2L段加载在第二缓冲器520中,然后在加载在第二缓冲器520中的第一映射数据的L2P段522和第二映射数据的P2L段524中执行扫描。以下,为了便于说明,将作为示例详细描述将对应于从主机102接收的命令的用户数据的数据段512存储在存储器装置150的存储块之中的存储块0 552中。
参照图6,当从主机102接收到命令(例如写入命令)时,控制器130将对应于写入命令的用户数据的数据段512存储在包括在控制器130的存储器144中的第一缓冲器510中。例如,控制器130将具有逻辑页面编号70的数据段(以下称为“数据70”)、具有逻辑页面编号20的数据段(以下称为“数据20”)、具有逻辑页面编号30的数据段(以下称为“数据30”)、具有逻辑页面编号1的数据段(以下称为“数据1”)、具有逻辑页面编号60的数据段(以下称为“数据60”)以及具有逻辑页面编号5的数据段(以下称为“数据5”)存储在第一缓冲器510中。
控制器130将存储在第一缓冲器510中的用户数据的数据段512写入并存储在包括在存储器装置150的存储块0 552中的页面中。在存储在第一缓冲器510中的用户数据的数据段512中,控制器130将数据70存储在存储块0 552的页面0中,将数据20存储在存储块0552的页面1中,将数据30存储在存储块0 552的页面2中,将数据1存储在存储块0 552的页面3中,将数据60存储在存储块0 552的页面4中,以及将数据5存储在存储块0 552的页面5。
控制器130生成指示用户数据的数据段512存储在包括在存储器装置150的存储块0 552中的页面中的信息。例如,控制器130生成第二映射数据的P2L段524。然后,控制器130通过基于LPN对第二映射数据的P2L段524进行排序,将它们存储在第二缓冲器520中。
具体地,在其中记录了指示LPN 610的物理地址的索引620的第二映射数据的P2L映射表中,控制器130生成指示数据70存储在存储块0 552的页面0中的P2L段642(下文中称为“P2L段70”),指示数据20存储在存储块0 552的页面1中的P2L段636(以下称为“P2L段20”),指示数据30存储在存储块0 552的页面2中的P2L段638(以下称为“P2L段30”),指示数据1存储在存储块0 552的页面3中的P2L段632(以下称为“P2L段1”),指示数据60存储在存储块0 552的页面4中的P2L段640(以下称为“P2L段60”),以及指示数据5存储在存储块0552的页面5中的P2L段634(以下称为“P2L段5”)。换言之,控制器130生成指示用户数据的数据段512存储在包括在存储器装置150的存储块0 552中的页面中的第二映射数据的P2L段524。例如,控制器130生成P2L段70 642、P2L段20 636、P2L段30 638、P2L段1 632、P2L段60640和P2L段5 634。
控制器130通过基于LPN对按照这种方式生成的第二映射数据的P2L段524进行排序来生成第二映射数据。例如,控制器130生成P2L段70 642、P2L段20 636、P2L段30 638、P2L段1 632、P2L段60 640和P2L段5 634。例如,控制器130根据第二映射数据的P2L映射表中的LPN通过按照那种序列对P2L段1 632、P2L段5 634、P2L段20 636、P2L段30 638、P2L段60 640和P2L段70 642进行排序来生成第二映射数据。控制器130在第二缓冲器520中管理并存储其中将P2L段524以这种方式排序的第二映射数据,并将第二映射数据存储在包括在存储器装置150的映射存储块580中的第二存储块584中。下面,将参照图7详细描述对根据实施例的存储器系统中的存储器装置150的存储块执行垃圾收集操作。
参照图7,如上所述,控制器130将对应于从主机102接收的写入命令的写入数据存储在包括在控制器130的存储器144中的缓冲器中,并且将在包括在存储器装置150中的多个存储块中对存储在缓冲器中的数据编程。例如,控制器130在存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764、存储块8 766和存储块i 768之中的对应的可选存储块中对存储在缓冲器中的数据编程。
如上所述,包括在存储器装置150中的多个存储块中的每一个包括多个页面。在实施例中,在更新编程存储在存储器装置150的存储块中的数据的情况下,控制器130检查对应于更新编程的存储块中的有效页面,并且指示存储块中的有效页面的编号的有效页面计数(VPC)包括在列表中。例如,控制器130通过指示存储器装置150的存储块的索引在列表中记录存储块的VPC,并将该列表存储在控制器130的存储器144中。控制器130考虑到记录在列表中的存储块的VPC来执行垃圾收集。例如,控制器130考虑到记录在列表中的存储块的VPC在存储器装置150的存储块之中选择源存储块,将源存储块的有效数据复制到目标存储块,对源存储块执行擦除操作,并且由此将源存储块生成为空存储块、开放存储块或空闲存储块。
在实施例中,如上所述,控制器130响应于数据在存储器装置150的存储块中的存储而生成映射数据。例如,控制器130生成第二映射数据的P2L段。然后,控制器130基于LPN对第二映射数据的P2L段进行排序。控制器130通过排序的P2L段检查各个存储块之间的相关性在存储器装置150的存储块之中选择源存储块,将源存储块的有效数据复制到目标存储块,对源存储块执行擦除操作,并且由此将源存储块生成为空存储块、开放存储块或空闲存储块。
在下文中,为便于解释,将通过举例对根据本实施例的数据处理操作进行详细描述,即,存储器装置150的存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4758、存储块5 760、存储块6 762、存储块7 764和存储块8 766是封闭存储块,并且存储块i768是目标存储块。
详细地,控制器130检查在包括在存储器装置150中的多个存储块之中的封闭存储块中的有效页面。例如,控制器130检查存储块0 750、存储块1 752、存储块2 754、存储块3756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766中的有效页面。然后,控制器130通过指示存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4758、存储块5 760、存储块6 762、存储块7 764和存储块8 766的索引720在列表710中记录存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766的VPC 730来生成列表710。随后,控制器130将列表710存储在包括在控制器130的存储器144中的缓冲器700中。
例如,在列表710中,记录了索引720为0的存储块0 750的VPC 730 70,其指示存储块0 750的VPC为70(VPC=70)。索引720为1的存储块1 752的VPC 730 100指示存储块1 752的VPC为100(VPC=100)。索引720为2的存储块2 754的VPC 730 130指示存储块2 754的VPC为130(VPC=130)。索引720为3的存储块3 756的VPC 730 230指示存储块3 756的VPC为230(VPC=230)。索引720为4的存储块4 758的VPC 730 450指示存储块4 758的VPC为450(VPC=450)。索引720为5的存储块5 760的VPC 730 220指示存储块5 760的VPC为220(VPC=220)。另外,在列表710中,记录了索引720为6的存储块6 762的VPC 730 2600,其指示存储块6 762的VPC为2600(VPC=2600)。索引720为7的存储块7 764的VPC 730 3100指示存储块7 764的VPC为3100(VPC=3100)。索引720为8的存储块8 766的VPC 730 3700指示存储块8766的VPC为3700(VPC=3700)。
控制器130检查包括在存储器装置150中的多个存储块之中的封闭存储块中的根据LPN的序列排序的映射数据的映射段,例如,第二映射数据的P2L段。例如,控制器130检查存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766中的根据LPN的序列排序的第二映射数据的P2L段。因此,控制器130检查存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766之间的相关性。控制器130通过指示存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766的索引720,来通过第二映射数据的P2L段检查存储在存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766中的数据段的LPN 740。例如,控制器130检查存储在各个存储块中的数据段的最小LPN和最大LPN,并将LPN 740记录在列表710中。
例如,在列表710中,记录了索引720为0的存储块0 750的LPN 740 0/600,其指示存储块0 750的最小LPN/最大LPN是0/600(LPN=0/600)。索引720为1的存储块1 752的LPN740 1500/1800指示存储块1 752的最小LPN/最大LPN为1500/1800(LPN=1500/1800)。索引720为2的存储块2 754的LPN 740 570/850指示存储块2 754的最小LPN/最大LPN为570/850(LPN=570/850)。索引720为3的存储块3 756的LPN 740 200/650指示存储块3 756的最小LPN/最大LPN为200/650(LPN=200/650)。索引720为4的存储块4 758的LPN 740 2000/2600指示存储块4 758的最小LPN/最大LPN为2000/2600(LPN=2000/2600)。索引720为5的存储块5 760的LPN 740 605/900指示存储块5 760的最小LPN/最大LPN为605/900(LPN=605/900)。另外,在列表710中,记录了索引720为6的存储块6 762的LPN 740 3000/6000,其指示存储块6 762的最小LPN/最大LPN为3000/6000(LPN=3000/6000)。索引720为7的存储块7764的LPN 740 8000/13000指示存储块7 764的最小LPN/最大LPN为8000/13000(LPN=8000/13000)。索引720为8的存储块8 766的LPN 740 16000/20000指示存储块8 766的最小LPN/最大LPN为16000/20000(LPN=16000/20000)。
在对包括存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766的存储器装置150的封闭存储块执行垃圾收集的情况下,控制器130通过检查存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766的参数来执行垃圾收集。例如,控制器130通过检查来自存储在控制器130的缓冲器700中的列表710的存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766的VPC 730和LPN 740来执行垃圾收集操作。
为了对包括在存储器装置150中的封闭存储块执行垃圾收集,控制器130考虑到封闭存储块的VPC和相关性,在包括在存储器装置150中的封闭存储块中选择源存储块。在下文中,为便于解释,将通过举例进行详细描述,即控制器130考虑到存储块0 750、存储块1752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766的VPC和相关性来选择源存储块。在下文中,将描述其中包括在存储器装置150中的封闭存储块之中的源存储块的阈值VPC被设置为1500的示例。
控制器130检查来自存储在缓冲器700中的列表710的存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766的VPC 730。从而,控制器130在存储块0 750、存储块1 752、存储块2 754、存储块3756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766之中选择源存储块。如上所述,由于在包括在存储器装置150中的封闭存储块之中的源存储块的阈值VPC为1500,所以控制器130可在存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766之中选择VPC小于阈值VPC的存储块作为源存储块。例如,控制器130可选择存储块0 750、存储块1 752、存储块2754、存储块3 756、存储块4 758和存储块5 760作为源存储块。
然后,控制器130通过来自存储在缓冲器700中的列表710的存储块0 750、存储块1752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766的LPN 740,检查存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766之间的相关性。例如,控制器130通过来自存储在缓冲器700中的列表710的存储块0 750、存储块1 752、存储块2754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766的LPN 740,检查存储在存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4758、存储块5 760、存储块6 762、存储块7 764和存储块8 766中的数据段的最小LPN和最大LPN。控制器130通过存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766中的最小LPN和最大LPN来检查各个存储块之间的相关性。
当通过举例进行详细描述时,控制器130可检查存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8766之中的可选存储块之间的相关性。例如,控制器130可检查具有最小VPC的存储块0 750和其它存储块之间的相关性,并且选择相对于存储块0 750的LPN 740 0/600具有重叠和/或序列的一个或多个存储块作为附加源存储块。例如,由于通过存储块0 750、存储块1752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766的LPN 740检查到存储块0 750的LPN 740 0/600和存储块3 756的LPN 740200/650具有最大和次最大的重叠,因此控制器130将存储块0 750和存储块3 756检查为具有大的相关性的存储块。因此,控制器130选择存储块0 750和存储块3 756作为源存储块。由于存储块0 750的LPN 740 0/600和存储块2 754的LPN 740 570/850也具有重叠,所以控制器130可附加地选择存储块2 754作为源存储块。由于存储块2 754的LPN 740 570/850和存储块5 760的LPN 740 605/900也具有重叠,所以控制器130可附加地选择存储块5 760作为源存储块。
此外,由于通过存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4758、存储块5 760、存储块6 762、存储块7 764和存储块8 766的LPN 740检查到存储块0750的LPN 740 0/600和存储块5 760的LPN 740 605/900具有最大序列,因此控制器130将存储块0 750和存储块5 760检查为具有大的相关性的存储块。因此,控制器130选择存储块0 750和存储块5 760作为源存储块。
控制器130通过存储块0 750、存储块1 752、存储块2 754、存储块3 756、存储块4758、存储块5 760、存储块6 762、存储块7 764和存储块8 766的LPN 740来检查存储块0750、存储块1 752、存储块2 754、存储块3 756、存储块4 758、存储块5 760、存储块6 762、存储块7 764和存储块8 766之间的相关性。例如,控制器130检查存储在各个存储块中的数据段的LPN的重叠和序列。然后,控制器130响应于各个存储块之间的重叠和序列来选择源存储块,并且对源存储块执行垃圾收集操作。
即,控制器130检查包括在根据各个存储块之间的相关性所选择的源存储块中的有效页面。例如,根据各个存储块的LPN重叠选择存储块0 750和存储块3 756作为源存储块,附加地选择存储块2 754和存储块5 760作为源存储块,并且根据各个存储块的LPN序列选择存储块0 750和存储块5 760作为源存储块。此后,控制器130将存储在存储块0 750、存储块3 756、存储块2 754和存储块5 760的有效页面中的有效数据复制到并存储在目标存储块中。例如,控制器130将有效数据存储在空存储块、开放存储块或空闲存储块中。例如,控制器130将有效数据存储在存储块i 768中。然后,控制器130对作为源存储块的存储块0750、存储块3 756、存储块2 754和存储块5 760执行擦除操作,并且将源存储块生成为空存储块、开放存储块或空闲存储块。
在存储在作为源存储块的存储块0 750、存储块3 756,存储块2 754和存储块5760的有效页面中的有效数据被复制到并存储在作为目标存储块的存储块i 768中的情况下,存储在存储块0 750、存储块3 756、存储块2 754和存储块5 760的有效页面中的有效数据根据LPN排序,并且排序的数据段被复制到并存储在存储块i 768中。控制器130响应于数据段在存储块i 768中的存储而生成映射数据,根据LPN对生成的映射数据的映射段进行排序,并将排序的映射段存储在映射存储块580中。例如,控制器130将存储在存储块0 750、存储块3 756、存储块2 754和存储块5 760中的数据段存储在作为目标存储块的存储块i 768中。根据LPN排序的数据段存储在存储块i 768中。换言之,从具有最小LPN 0的数据段到具有最大LPN 900的数据段的数据段根据LPN排序,然后存储。
如上所述,在根据实施例的存储器系统中,对应于从主机102接收的命令的命令数据的映射数据根据LPN进行排序。例如,映射数据可以是第二映射数据的P2L段。然后,映射数据在作为映射高速缓冲存储器的包括在控制器130的存储器144中的第二缓冲器520和存储器装置150的存储块中存储和管理。例如,在搜索和检查映射数据以执行对应于从主机102接收的命令的命令操作的情况下,可在映射数据中快速地执行搜索和检查映射数据。例如,在搜索和检查(例如,扫描)映射数据的逻辑段和物理段的情况下,可快速地在映射数据的段中执行扫描。例如,当第二映射数据的P2L段根据LPN的序列进行排序并且在控制器130的第二缓冲器520和存储器装置150的存储块中存储和管理时,可快速地在第二映射数据的P2L段中执行扫描第二映射数据的P2L段中对应于从主机102接收的命令的映射段。因此,可快速地处理对应于从主机102接收的命令的命令数据,并且可快速地执行对应于从主机102接收的命令的命令操作。此外,在根据实施例的存储器系统中,由于通过如上所述排序的LPN检查存储器装置150的存储块之间的相关性来选择源存储块,所以可有效地选择源存储块。因此,通过对以这种方式选择的源存储块执行垃圾收集操作,可最大化包括在存储器装置150中的存储块的利用效率。以下,将参照图8详细描述根据实施例的在存储器系统中处理数据的操作。
图8是示出根据本发明的实施例的在存储器系统中处理数据的操作的流程图。
参照图8,在存储器系统中,在步骤810中,在从主机接收到用于存储在存储器装置的存储块中的数据的写入命令的情况下,对应于写入命令的数据在存储器装置的存储块之中的其它可选存储块中进行编程和存储。例如,执行更新编程操作。然后,根据更新程序更新存储块的映射信息。在这点上,如上所述,可通过根据LPN排序来更新存储块的映射信息。例如,通过根据LPN排序来更新映射段。
然后,在步骤820中,选择一个或多个源存储块。可通过检查存储器装置的每个封闭存储块的VPC、最小LPN和最大LPN来选择源存储块。例如,可选择封闭存储块之中具有较小VPC的封闭存储块作为第一源存储块。或者,可选择具有小于预设阈值的VPC的至少一个封闭存储块作为第一源存储块。然后,基于与第一源存储块在一个或多个监测参数方面的相关性,可在封闭存储块中选择至少一个附加存储块作为附加源存储块。例如,监测参数可以是每个封闭存储块的最小LPN和最大LPN以及封闭存储块的LPN与第一源存储块的LPN的重叠程度(简称为重叠)。例如,可选择LPN与所选第一源存储块重叠的至少一个附加源存储块。在另一示例中,各个存储块的相关性可包括各个存储块的LPN重叠和LPN序列,并且在存储器装置的封闭存储块之中,可选择具有大的LPN重叠和大的LPN序列的存储块作为源存储块。
之后,在步骤830中,对存储器装置的所选源存储块执行垃圾收集。垃圾收集操作可包括复制存储在每个所选源存储块的有效页面中的数据到目标存储块,以及将所复制的数据存储在目标存储块中。垃圾收集操作可包括在有效数据被复制之后对源存储块执行擦除操作。例如,目标存储块可包括空存储块、开放存储块或空闲存储块。以这种方式,执行将源存储块生成为空存储块、开放存储块或空闲存储块的垃圾收集操作。
因为上面参照图5至图7进行了详细描述,因此这里将省略对通过根据LPN对映射数据(例如,第二映射数据的P2L段)进行排序来对存储器装置的存储块执行映射数据的更新操作、通过检查存储块之间的相关性(例如LPN重叠和LPN序列)来执行选择源存储块的操作以及对存储器装置的存储块执行垃圾收集操作的进一步描述。以下,将参照图9至图14对应用了根据实施例的上面参照图1至图8描述的包括存储器装置150和控制器130的存储器系统110的数据处理系统和电子设备进行详细描述。
图9是示出包括根据实施例的存储器系统的数据处理系统的图。图9是示意性地示出应用根据实施例的存储器系统的存储卡系统的图。
参照图9,存储卡系统6100包括存储器控制器6120、存储器装置6130和连接器6110。
详细地,存储器控制器6120可与存储器装置6130连接,并且可访问存储器装置6130。在一些实施例中,存储器装置6130可利用非易失性存储器(NVM)来实施。例如,存储器控制器6120可控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可提供存储器装置6130与主机(未示出)之间的接口,并且可驱动用于控制存储器装置6130的固件。例如,存储器控制器6120可对应于上面参照图1描述的存储器系统110中的控制器130,并且存储器装置6130可对应于上面参照图1描述的存储器系统110中的存储器装置150。
因此,存储器控制器6120可包括诸如如图1所示的随机存取存储器(RAM)、处理单元、主机接口、存储器接口和错误校正单元的组件。
存储器控制器6120可通过连接器6110与外部装置(例如,上面参照图1描述的主机102)通信。例如,如上面参照图1所述的,存储器控制器6120可被配置为通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围部件互连(PCI)、PCI Express(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪速存储器(UFS)、无线保真(WI-FI)以及蓝牙。因此,根据实施例的存储器系统和数据处理系统可应用于有线/无线电子设备,例如,移动电子设备。
存储器装置6130可利用非易失性存储器来实施。例如,存储器装置6130可利用诸如以下的各种非易失性存储器装置来实施:电可擦除可编程ROM(EPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)以及自旋转移力矩磁性RAM(STT-MRAM)。
存储器控制器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包括可利用至少一个非易失性存储器(NVM)实施的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。如上面参照图1所描述的,数据处理系统6200可以是诸如存储卡(例如,CF、SD和微型SD)的存储介质。存储器装置6230可对应于上面参照图1描述的存储器系统110中的存储器装置150,并且存储器控制器6220可对应于上面参照图1描述的存储器系统110中的控制器130。
存储器控制器6220可响应于从主机6210接收的请求来控制存储器装置6230的操作,包括读取操作、写入操作和擦除操作。存储器控制器6220可包括均经由内部总线联接的中央处理单元(CPU)6221、作为缓冲存储器的随机存取存储器(RAM)6222、错误校正码(ECC)电路6223、主机接口6224以及作为存储器接口的NVM接口6225。
CPU 6221可控制存储器装置6230的操作,诸如读取、写入、文件系统管理、坏页面管理等。RAM 6222可根据CPU 6221的控制来操作,并且可用作工作存储器、缓冲存储器、高速缓冲存储器等。在RAM 6222用作工作存储器的情况下,由CPU 6221处理的数据临时存储在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码、里德-所罗门(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)以及块编码调制(BCM)。
存储器控制器6220通过主机接口6224向主机6210传输数据以及从主机6210接收数据,并且通过NVM接口6225向存储器装置6230传输数据以及从存储器装置6230接收数据。主机接口6224可通过诸如以下的各种接口协议中的至少一种与主机6210连接:并行高级技术附件(PATA)总线、串行高级技术附件(SATA)总线、小型计算机系统接口(SCSI)、通用串行总线(USB)、高速外围部件互连(PCIe)或NAND接口等。此外,由于实现了诸如无线保真(WI-FI)或长期演进(LTE)的无线通信功能或移动通信协议,因此存储器控制器6220可通过与诸如主机6210的外部装置或除主机6210之外的另一外部装置连接来发送和接收数据。特别地,由于存储器控制器6220被配置为通过各种通信协议中的至少一种与外部装置通信,因此根据实施例的存储器系统和数据处理系统可应用于有线/无线电子设备,例如,移动电子设备。
图11是示出包括根据本发明的实施例的存储器系统的数据处理系统的示例的图。图11可以是固态驱动器(SSD)。
参照图11,SSD 6300可包括存储器装置6340和控制器6320,存储器装置6340可包括多个非易失性存储器NVM。控制器6320可对应于上面参照图1描述的存储器系统110中的控制器130,并且存储器装置6340可对应于上面参照图1描述的存储器系统110中的存储器装置150。
详细地,控制器6320可通过多个通道CH1、CH2、CH3……CHi与存储器装置6340连接。控制器6320可包括经由内部总线联接的处理器6321、缓冲存储器6325、错误校正码(ECC)电路6322、主机接口6324和作为存储器接口的非易失性存储器(NVM)接口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中编程的数据的错误校正码值,在读取操作中基于错误校正码值对从存储器装置6340读取的数据执行错误校正操作,并且在故障数据的恢复操作中对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324提供关于诸如主机6310的外部装置的接口功能。非易失性存储器接口6326提供关于通过多个通道CH1、CH2、CH3……CHi连接的存储器装置6340的接口功能。
由于使用每个都应用了上面参照图1描述的存储器系统110的多个SSD 6300,因此可实施诸如独立磁盘冗余阵列(RAID)系统的数据处理系统。在RAID系统中,可包括多个SSD6300和用于控制多个SSD6300的RAID控制器。在通过从主机6310接收写入命令来执行编程操作的情况下,RAID控制器可在多个RAID级别(例如,多个SSD 6300)之中响应于从主机6310接收的写入命令的RAID级别信息来选择至少一个存储器系统(例如,至少一个SSD6300),并且可向所选SSD 6300输出对应于写入命令的数据。在通过从主机6310接收读取命令来执行读取操作的情况下,RAID控制器可在多个RAID级别(例如,多个SSD 6300)之中响应于从主机6310接收的读取命令的RAID级别信息来选择至少一个存储器系统(例如,至少一个SSD 6300),并且可将从所选SSD 6300输出的数据提供至主机6310。
图12是示出包括根据本发明的实施例的存储器系统的数据处理系统的另一示例的图。图12是示意性地示出应用根据实施例的存储器系统的嵌入式多媒体卡(eMMC)的图。
参照图12,eMMC 6400包括利用至少一个NAND闪速存储器实施的存储器装置6440和控制器6430。控制器6430可对应于上面参照图1描述的存储器系统110中的控制器130,并且存储器装置6440可对应于上面参照图1描述的存储器系统110中的存储器装置150。
详细地,控制器6430可通过多个通道与存储器装置6440连接。控制器6430可包括核心(core)6432、主机接口6431和诸如NAND接口的存储器接口6433。
核心6432可控制eMMC 6400的操作。主机接口6431可提供控制器6430和主机6410之间的接口功能。NAND接口6433可提供存储器装置6440和控制器6430之间的接口功能。例如,主机接口6431可以是诸如上面参照图1所述的MMC接口的并行接口,或者是诸如超高速等级1(UHS-I)/UHS等级2(UHS-II)和通用闪速存储(UFS)接口的串行接口。
图13是示出包括根据本发明的实施例的存储器系统的数据处理系统的另一示例的图。图12是示意性地示出应用根据实施例的存储器系统的通用闪速存储器(UFS)的图。
参照图13,UFS系统6500可包括UFS主机6510、多个UFS装置6520和6530、嵌入式UFS装置6540和可移除UFS卡6550。UFS主机6510可以是例如移动电子设备的有线/无线电子设备的应用处理器。
UFS主机6510、UFS装置6520和6530、嵌入式UFS装置6540和可移除UFS卡6550可分别通过UFS协议与诸如有线/无线电子设备(例如,移动电子设备)的外部装置通信。UFS装置6520和6530、嵌入式UFS装置6540和可移除UFS卡6550可利用上面参照图1描述的存储器系统110来实施,例如被实施为上面参照图9描述的存储卡系统6100。嵌入式UFS装置6540和可移除UFS卡6550可通过除UFS协议之外的另一协议通信。例如,嵌入式UFS装置6540和可移除UFS卡6550可通过诸如但不限于以下的各种卡协议通信:USB闪存驱动器(UFD)、多媒体卡(MMC)、安全数字(SD)、迷你SD和微型SD。
图14是示出包括根据本发明的实施例的存储器系统的数据处理系统的示例的图。图14是示意性地示出应用根据实施例的存储器系统的用户系统的图。
参照图14,用户系统6600可包括应用处理器6630、存储器模块6620、网络模块6640、存储模块6650和用户接口6610。
应用处理器6630可驱动包括在用户系统6600中的组件和操作系统(OS)。例如,应用处理器6630可包括用于控制包括在用户系统6600中的组件、接口、图形引擎等的控制器。应用处理器6630可通过片上系统(SoC)提供。
存储器模块6620可作为用户系统6600的主存储器、工作存储器、缓冲存储器或高速缓冲存储器操作。存储器模块6620可包括诸如动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率(DDR)SDRAM、DDR2 SDRAM、DDR3 SDRAM、低功率双倍数据速率(LPDDR)SDRAM、LPDDR2 SDRAM和LPDDR3SDRAM的易失性随机存取存储器,或诸如相变随机存取存储器(PRAM)、电阻随机存取存储器(ReRAM)、磁性随机存取存储器(MRAM)和铁电随机存取存储器(FRAM)的非易失性随机存取存储器。例如,应用处理器6630和存储器模块6620可通过基于堆叠封装(POP)封装来安装。
网络模块6640可与外部装置通信。例如,网络模块6640不仅可支持有线通信,而且可支持各种无线通信,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(WiMAX)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示器(WI-DI)等,并且因此可与例如移动电子设备的有线/无线电子设备通信。根据这一事实,根据实施例的存储器系统和数据处理系统可应用于有线/无线电子设备。网络模块6640可包括在应用处理器6630中。
存储模块6650可存储诸如从应用处理器6530接收的数据的数据,并将存储在其中的数据传输到应用处理器6530。存储模块6650可由诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(ReRAM)、NAND闪速存储器、NOR闪速存储器以及3维NAND闪速存储器的非易失性半导体存储器装置来实现。存储模块6650可被设置为诸如用户系统6600的存储卡和外部驱动器的可移除存储介质。例如,存储模块6650可对应于上面参照图1描述的存储器系统110,并且可利用上面参照图11至图13描述的SSD、eMMC和UFS来实施。
用户接口6610可包括用于向应用处理器6630输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6610可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、发光二极管(LED)、扬声器和电动机的用户输出接口。
在将上面参照图1描述的存储器系统110应用于根据实施例的用户系统6600的移动电子设备的情况下,如上所述,应用处理器6630可控制移动电子设备的操作,并且作为通信模块的网络模块6640可控制与外部装置的有线/无线通信。作为移动电子设备的显示/触摸模块的用户接口6610显示由应用处理器6630处理的数据或者支持来自触摸面板的数据的输入。
根据实施例的存储器系统及其操作方法可最小化存储器系统的复杂性和性能退化,并最大化存储器装置的使用效率,从而快速且稳定地处理关于存储器装置的数据。
虽然为了说明的目的已经描述了各种实施例,但是对于本领域技术人员将显而易见的是,在不脱离如所附权利要求中所限定的本发明的精神和范围的情况下,可进行各种改变和修改。

Claims (20)

1.一种存储器系统,其包括:
存储器装置,其包括多个存储块;以及
控制器,其适于:
将对应于从主机接收的写入命令的用户数据存储在所述存储块中,
生成在每个存储块中存储的所述用户数据的映射段,
根据所述用户数据的逻辑信息对所述映射段进行排序,
单独地记录关于每个存储块的所述映射段的最小逻辑页面编号和最大逻辑页面编号,
生成包括关于所述多个存储块的所述最小逻辑页面编号和所述最大逻辑页面编号的映射数据,
检查所述多个存储块的所述最小逻辑页面编号和最大逻辑页面编号以确定所述多个存储块间的相关性,
基于所确定的相关性,在所述多个存储块中选择源存储块,以及
基于选择的所述源存储块,执行垃圾收集。
2.根据权利要求1所述的存储器系统,其中所述控制器通过存储在所述多个存储块中的所述用户数据的逻辑信息的重叠和序列中的至少一个来确定所述多个存储块间的相关性。
3.根据权利要求2所述的存储器系统,其中所述控制器在所述多个存储块中选择在所述逻辑信息上具有重叠的第一存储块和第二存储块作为所述源存储块。
4.根据权利要求2所述的存储器系统,其中所述控制器在所述多个存储块中选择在所述逻辑信息上具有序列的第一存储块和第二存储块作为所述源存储块。
5.根据权利要求1所述的存储器系统,其中所述用户数据的逻辑信息包括存储在所述多个存储块中的所述用户数据的逻辑页面编号,即LPN。
6.根据权利要求5所述的存储器系统,其中所述映射数据包括通过记录所述存储块的映射段的最小逻辑页面编号和最大逻辑页面编号并且通过指示所述存储块的索引而生成的列表。
7.根据权利要求1所述的存储器系统,其中所述控制器检查所述多个存储块中的有效页面以选择至少一个存储块,以便生成所述映射数据。
8.根据权利要求1所述的存储器系统,其中所述映射段包括响应于所述用户数据在所述多个存储块中的存储的所述用户数据的物理到逻辑段,即P2L段。
9.根据权利要求1所述的存储器系统,其中所述控制器在所述用户数据的物理到逻辑表即P2L表中按照所述用户数据的逻辑页面编号即LPN的序列对指示存储在所述多个存储块中的索引进行排序。
10.根据权利要求1所述的存储器系统,其中所述控制器将存储在所述源存储块的有效页面中的数据复制并存储在所述多个存储块中的目标存储块中,并且对所述源存储块执行擦除操作。
11.一种用于操作存储器系统的方法,其包括:
从主机接收用于存储器装置的多个存储块的写入命令;
将对应于所述写入命令的用户数据存储在所述存储块中;
生成在每个存储块中存储的所述用户数据的映射段;
根据所述用户数据的逻辑信息,响应于所述用户数据的存储,对所述映射段进行排序和更新;
单独地记录关于多个存储块中的每个的映射段的最小逻辑页面编号和最大逻辑页面编号;
生成包括关于所述多个存储块的所述最小逻辑页面编号和所述最大逻辑页面编号的映射数据;
检查所述多个存储块的所述最小逻辑页面编号和最大逻辑页面编号以确定所述多个存储块间的相关性;
基于所述多个存储块间的相关性在所述多个存储块中选择源存储块以执行垃圾收集。
12.根据权利要求11所述的方法,其中所述源存储块的选择包括通过存储在所述多个存储块中的所述用户数据的逻辑信息的重叠和序列中的至少一个来确定所述多个存储块间的相关性。
13.根据权利要求12所述的方法,其中所述源存储块的选择包括在所述多个存储块中选择在逻辑信息上具有重叠的第一存储块和第二存储块作为所述源存储块。
14.根据权利要求12所述的方法,其中所述源存储块的选择包括在所述多个存储块中选择在逻辑信息上具有序列的第一存储块和第二存储块作为所述源存储块。
15.根据权利要求11所述的方法,其中所述用户数据的逻辑信息包括存储在所述多个存储块中的所述用户数据的逻辑页面编号,即LPN。
16.根据权利要求15所述的方法,其中所述映射数据包括:
通过记录所述存储块的映射段的最小逻辑页面编号和最大逻辑页面编号并且通过指示所述存储块的索引而生成的列表。
17.根据权利要求11所述的方法,其进一步包括:
检查所述多个存储块中的有效页面以选择至少一个存储块,以便生成所述映射数据。
18.根据权利要求11所述的方法,其中所述映射段包括响应于所述用户数据在所述多个存储块中的存储的所述用户数据的物理到逻辑段,即P2L段。
19.根据权利要求11所述的方法,其中所述映射段的排序和更新包括在所述用户数据的物理到逻辑表即P2L表中按照所述用户数据的逻辑页面编号即LPN的序列对指示存储在所述多个存储块中的索引进行排序。
20.根据权利要求11所述的方法,其进一步包括:
将存储在所述源存储块的有效页面中的数据复制并存储在所述多个存储块中的目标存储块中,并且对所述源存储块执行擦除操作。
CN201710039453.9A 2016-05-04 2017-01-18 存储器系统及其操作方法 Active CN107346213B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160055488A KR102615593B1 (ko) 2016-05-04 2016-05-04 메모리 시스템 및 메모리 시스템의 동작 방법
KR10-2016-0055488 2016-05-04

Publications (2)

Publication Number Publication Date
CN107346213A CN107346213A (zh) 2017-11-14
CN107346213B true CN107346213B (zh) 2020-07-28

Family

ID=60243419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710039453.9A Active CN107346213B (zh) 2016-05-04 2017-01-18 存储器系统及其操作方法

Country Status (3)

Country Link
US (1) US10203900B2 (zh)
KR (1) KR102615593B1 (zh)
CN (1) CN107346213B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10313441B2 (en) * 2017-02-13 2019-06-04 Bank Of America Corporation Data processing system with machine learning engine to provide enterprise monitoring functions
US10929285B2 (en) * 2018-02-27 2021-02-23 Western Digital Technologies, Inc. Storage system and method for generating a reverse map during a background operation and storing it in a host memory buffer
KR20190106008A (ko) * 2018-03-07 2019-09-18 에스케이하이닉스 주식회사 메모리 시스템, 그것의 동작 방법 및 전자 장치
US10956318B2 (en) * 2018-06-19 2021-03-23 Macronix International Co., Ltd. Overlapping ranges of pages in memory systems
KR20200004656A (ko) 2018-07-04 2020-01-14 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20200006829A (ko) 2018-07-11 2020-01-21 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR102659036B1 (ko) * 2018-07-11 2024-04-22 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
CN110781098B (zh) * 2018-07-31 2023-03-28 爱思开海力士有限公司 用于彼此接合多个存储器系统的设备和方法
KR102649131B1 (ko) * 2018-08-14 2024-03-19 에스케이하이닉스 주식회사 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치
KR20200019429A (ko) * 2018-08-14 2020-02-24 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20200022179A (ko) * 2018-08-22 2020-03-03 에스케이하이닉스 주식회사 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
KR20200073794A (ko) * 2018-12-14 2020-06-24 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
TWI706250B (zh) * 2019-02-26 2020-10-01 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
US10991409B2 (en) * 2019-07-19 2021-04-27 SK Hynix Inc. Encoder for memory system and method thereof
KR20210025412A (ko) * 2019-08-27 2021-03-09 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176752A (zh) * 2012-07-02 2013-06-26 晶天电子(深圳)有限公司 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器
CN103902403A (zh) * 2012-12-27 2014-07-02 Lsi公司 经由冗余阵列的非易失性存储器编程故障恢复
CN103942010A (zh) * 2013-01-22 2014-07-23 Lsi公司 用于写入非易失性存储器的管理及区域选择
CN104268095A (zh) * 2014-09-24 2015-01-07 上海新储集成电路有限公司 一种存储器及基于该存储器进行数据读/写操作的方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7225291B2 (en) * 2004-04-19 2007-05-29 Phison Electronics Corp. Storage controlling and judging method of flash memory
US7870351B2 (en) 2007-11-15 2011-01-11 Micron Technology, Inc. System, apparatus, and method for modifying the order of memory accesses
TW201115582A (en) * 2009-10-29 2011-05-01 Acer Inc Method for determining data correlation and data processing method for memory
US9977732B1 (en) * 2011-01-04 2018-05-22 Seagate Technology Llc Selective nonvolatile data caching based on estimated resource usage
US8788788B2 (en) * 2011-08-11 2014-07-22 Pure Storage, Inc. Logical sector mapping in a flash storage array
KR101392174B1 (ko) 2011-11-09 2014-05-09 한양대학교 산학협력단 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법
US8819375B1 (en) * 2011-11-30 2014-08-26 Western Digital Technologies, Inc. Method for selective defragmentation in a data storage device
US8762627B2 (en) * 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
KR101482013B1 (ko) 2012-05-30 2015-01-14 한국외국어대학교 연구산학협력단 플래시 메모리 기반 저장 시스템의 변환 테이블인 메타데이터 데이터 업데이트 방법 및 장치
EP2680152B1 (en) 2012-06-27 2017-05-03 Alcatel Lucent Process for managing the storage of a list of N items in a memory cache of C items of a cache system
WO2014047159A1 (en) * 2012-09-21 2014-03-27 Violin Memory Inc. Write cache sorting
US9268709B2 (en) * 2012-10-18 2016-02-23 Marvell International Ltd. Storage controllers and storage control methods
US9852066B2 (en) * 2013-12-20 2017-12-26 Sandisk Technologies Llc Systems and methods of address-aware garbage collection
US10162748B2 (en) * 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
TWI579696B (zh) * 2015-11-06 2017-04-21 群聯電子股份有限公司 資料重建方法與系統及其記憶體控制電路單元
JP2018124915A (ja) * 2017-02-03 2018-08-09 富士通株式会社 解析プログラム、解析方法及びストレージシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176752A (zh) * 2012-07-02 2013-06-26 晶天电子(深圳)有限公司 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器
CN103902403A (zh) * 2012-12-27 2014-07-02 Lsi公司 经由冗余阵列的非易失性存储器编程故障恢复
CN103942010A (zh) * 2013-01-22 2014-07-23 Lsi公司 用于写入非易失性存储器的管理及区域选择
CN104268095A (zh) * 2014-09-24 2015-01-07 上海新储集成电路有限公司 一种存储器及基于该存储器进行数据读/写操作的方法

Also Published As

Publication number Publication date
US10203900B2 (en) 2019-02-12
KR102615593B1 (ko) 2023-12-21
KR20170126063A (ko) 2017-11-16
CN107346213A (zh) 2017-11-14
US20170322731A1 (en) 2017-11-09

Similar Documents

Publication Publication Date Title
CN107346213B (zh) 存储器系统及其操作方法
CN108121669B (zh) 存储器系统及其操作方法
CN107562649B (zh) 存储器系统及其操作方法
CN110858180B (zh) 数据处理系统及其操作方法
US10866898B2 (en) Method and apparatus for migrating data between nonvolatile main memory and first or second caches
CN109947358B (zh) 存储器系统及其操作方法
US10388387B2 (en) Memory system and operating method of memory system
CN107450845B (zh) 存储器系统及其操作方法
CN107589906B (zh) 存储器系统及其操作方法
CN107346214B (zh) 存储器系统及其操作方法
US20180101454A1 (en) Memory system and operation method for the same
CN109656837B (zh) 存储器系统及其操作方法
CN108694138B (zh) 控制器及其操作方法
US20190107961A1 (en) Memory system and operating method of the same
CN109032501B (zh) 存储器系统及其操作方法
CN110308867B (zh) 存储器系统及其操作方法
CN107807887B (zh) 存储器系统及其操作方法
CN107562653B (zh) 存储器系统及其操作方法
US10042568B2 (en) Memory system and operating method thereof
CN108733616B (zh) 包括多处理器的控制器及其操作方法
CN107622018B (zh) 存储器系统及其操作方法
US10198207B2 (en) Memory system and method for mapping nonvolatile memories
US10768839B2 (en) Memory system and operating method thereof
CN110007851B (zh) 存储器系统及其操作方法
CN110968521A (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