CN109697171A - 控制器及其操作方法 - Google Patents
控制器及其操作方法 Download PDFInfo
- Publication number
- CN109697171A CN109697171A CN201810718929.6A CN201810718929A CN109697171A CN 109697171 A CN109697171 A CN 109697171A CN 201810718929 A CN201810718929 A CN 201810718929A CN 109697171 A CN109697171 A CN 109697171A
- Authority
- CN
- China
- Prior art keywords
- block
- candidate blocks
- memory device
- memory
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开一种控制器,其包括:计数器,其将存储器装置中的多个块的每一个中的有效页面的数量计数为第一参数值;块选择器,其选择一个或多个第一候选块,一个或多个第一候选块中的每一个的第一参数值在预定范围内,并且在一个或多个第一候选块中选择牺牲块;以及处理器,其控制存储器装置读取存储在牺牲块中的有效数据并且将有效数据编程到存储器装置中的目标块中。
Description
相关申请的交叉引用
本申请要求于2017年10月23日提交的申请号为10-2017-0137160的韩国专利申请的优先权,其公开通过引用整体并入本文。
技术领域
本发明的各个实施例涉及一种控制器。特别地,这样的实施例涉及一种能够有效地执行垃圾收集操作的控制器及其操作方法。
背景技术
计算环境范例正转变为普适计算,其允许用户在任何时间任何地点使用计算机系统。因此,对诸如移动电话、数码相机和膝上型计算机的便携式电子装置的需求正在增长。这些电子装置通常包括作为数据存储装置的存储器系统,存储器系统包括存储器装置。数据存储装置可用作便携式电子装置的主存储器单元或辅助存储器单元。
因为包括存储器装置的数据存储装置不具有机械驱动单元,所以其具有优异的稳定性和耐久性、快速的数据访问速率和低功耗。具有这种优点的数据存储装置的非限制性示例包括通用串行总线(USB)存储器装置、各种接口的存储卡以及固态驱动器(SSD)等。
发明内容
本发明的各个实施例涉及一种能够有效地执行垃圾收集操作的控制器及其操作方法。
根据本发明的实施例,一种控制器可以包括:计数器,其将存储器装置中的多个块中的每一个中的有效页面的数量计数为第一参数值;块选择器,其选择一个或多个第一候选块,第一候选块中的每一个的第一参数值在预定范围内,并且在一个或多个第一候选块中选择牺牲块(victim block);以及处理器,其控制存储器装置读取存储在牺牲块中的有效数据并且将有效数据编程到存储器装置中的目标块中。
根据本发明的实施例,一种控制器的操作方法可以包括:使用计数器将存储器装置中的多个块中的每一个中的有效页面的数量计数为第一参数值;使用块选择器选择一个或多个第一候选块,第一候选块中的每一个的第一参数值在预定范围内,并且在一个或多个第一候选块中选择牺牲块;以及使用处理器控制存储器装置读取存储在牺牲块中的有效数据并且将有效数据编程到存储器装置中的目标块中。
根据本发明的实施例,一种存储器系统可以包括:存储器装置,其包括多个块;以及控制器,其确定多个块中的每一个中的有效页面的数量作为第一参数;在一个或多个第一候选块中选择牺牲块,一个或多个第一候选块中的每一个的第一参数在预定范围内;以及控制存储器装置读取存储在牺牲块中的有效数据并将有效数据编程到目标块中。
附图说明
图1是示出根据本发明的实施例的包括存储器系统的数据处理系统的框图。
图2是示出图1所示的存储器系统的存储器装置的示例性配置的示意图。
图3是示出图2所示的存储器装置中的存储块的存储器单元阵列的示例性配置的电路图。
图4是说明图2所示的存储器装置的示例性三维(3D)结构的示意图。
图5示出根据本发明实施例的存储器系统。
图6示出根据本发明实施例的垃圾收集操作。
图7示出根据本发明实施例的垃圾收集操作。
图8是示出根据本发明的实施例的控制器的操作的流程图。
图9至图17是示意性示出根据本发明的各个实施例的数据处理系统的应用示例的示图。
具体实施方式
以下参照附图更详细地描述本发明的各个实施例。然而,如本领域技术人员根据本公开将显而易见的,本发明的元件和特征可以与所描述和图示的实施例中所示的元件和特征不同地配置或布置。因此,本发明不限于本文阐述的实施例。相反,提供所描述的实施例使得本公开将完整和全面并将本发明充分地传达给本发明所属领域的技术人员。此外,对“实施例”的参考不一定意味着仅参考一个实施例,并且对“实施例”的不同参考不一定针对相同的实施例。在整个本公开中,相同的附图标记在本发明的各个附图和实施例中表示相同的部件。
将理解的是,虽然可在本文中使用术语“第一”、“第二”、“第三”等来识别各个元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一个元件区分开。因此,在不脱离本发明的精神和范围的情况下,以下描述的第一元件也可被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,比例可能已经被放大以便更清楚地示出公开的实施例的特征。
将进一步理解的是,当元件被称为“连接至”或“联接到”另一元件时,它可直接在其它元件上、连接至或联接到其它元件,或者可存在一个或多个中间元件。此外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
本文使用的术语是为了描述特定实施例的目的,并不旨在限制本发明。
如本文所使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式并且反之亦然。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术语境中的含义一致的含义,并且将不以理想化或过于正式的意义来解释,除非本文中明确地这样定义。
在下面的描述中,为了提供对本发明的全面理解,描述了大量具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了不使本发明不必要模糊,未详细地描述公知的进程结构和/或进程。
还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用。
图1是示出根据本发明的实施例的数据处理系统100的框图。
参照图1,数据处理系统100可包括被可操作地联接至存储器系统110的主机102。
例如,主机102可包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏机、TV和投影仪等的非便携式电子装置。
存储器系统110可响应于来自主机102的请求进行操作,并且特别地,可存储待由主机102访问的数据。存储器系统110可用作主机102的主存储器系统或辅助存储器系统。根据主机接口的协议,存储器系统110可利用可与主机102电联接的各种类型的存储装置中的任何一种来实施。合适的存储装置的示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)和微型-MMC、安全数字(SD)卡、迷你SD和微型SD、通用串行总线(USB)存储装置、通用闪存(UFS)装置、标准闪存(CF)卡、智能媒体(SM)卡、记忆棒等。
存储器系统110的存储装置可利用诸如以下的易失性存储器装置来实施:动态随机存取存储器(DRAM)和静态RAM(SRAM),并且存储器系统110的存储装置可利用诸如以下的非易失性存储器装置来实施:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM)和闪速存储器。
存储器系统110可包括存储待由主机102访问的数据的存储器装置150,以及可控制数据在存储器装置150中的存储的控制器130。
控制器130和存储器装置150可被集成到单个半导体装置中,单个半导体装置可被包括在如上所例示的各种类型的存储器系统中的任何一种中。
存储器系统110可被配置成以下的一部分:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、3D电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传输和接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或配置计算系统的各种部件元件之一。
存储器装置150可以是非易失性存储器装置,并且即使不供应电力,其也可保留其中存储的数据。存储器装置150可通过写入操作来存储从主机102提供的数据,并且通过读取操作将存储在其中的数据提供给主机102。存储器装置150可包括多个存储块152、154、156(在下文中,被称为“存储块152至156”),其中的每一个可包括多个页面。每一个页面可包括与多个字线(WL)电联接的多个存储器单元。
控制器130可控制存储器装置150的诸如读取操作、写入操作、编程操作和擦除操作的全部操作。例如,存储器系统110的控制器130可响应于来自主机102的请求来控制存储器装置150。控制器130可将从存储器装置150读取的数据提供给主机102,和/或可将从主机102提供的数据存储到存储器装置150中。
控制器130可包括均经由内部总线可操作地联接的主机接口(I/F)单元、处理器134、错误校正码(ECC)部件138、电源管理电路(PMC)140、诸如存储器接口(I/F)142的存储器装置控制器以及存储器144。
主机接口132可处理从主机102提供的命令和数据,并可通过诸如以下的各种接口协议中的至少一种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-E)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
ECC部件138可在读取操作期间检测并校正从存储器装置150读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC部件138不校正错误位,并且可输出指示校正错误位失败的错误校正失败信号。
ECC部件138可基于诸如以下的编码调制执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)以及分组编码调制(BCM)等。ECC部件138可包括用于错误校正操作的所有电路、模块、系统或装置。
PMC 140可提供和管理控制器130的电力。
存储器接口142可用作控制器130和存储器装置150之间的存储器/存储接口,以允许控制器130响应于来自主机102的请求来控制存储器装置150。当存储器装置150是闪速存储器,并且特别是NAND闪速存储器时,存储器接口142可在处理器134的控制下生成用于存储器装置150的控制信号并处理待被提供给存储器装置150的数据。
存储器144可用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可以响应于来自主机102的请求来控制存储器装置150。控制器130可将从存储器装置150读取的数据提供给主机102并可将从主机102提供的数据存储到存储器装置150中。存储器144可存储控制器130和存储器装置150执行这些操作所需的数据。
存储器144可利用易失性存储器来实施。例如,存储器144可利用静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实施。虽然,图1例示了存储器144设置在控制器130内部,但本公开不限于此。也就是说,存储器144可以被设置在控制器130的内部或外部。例如,在实施例中,存储器144可以由具有在存储器144和控制器130之间传送数据的存储器接口的外部易失性存储器实施。
处理器134可控制存储器系统110的全部操作。处理器134可驱动固件来控制存储器系统110的全部操作。固件可被称为闪存转换层(FTL)。
FTL可作为主机102和存储器装置150之间的接口来执行操作。主机102可通过FTL请求对存储器装置150执行写入操作和读取操作。
FTL可管理地址映射、垃圾收集、损耗均衡等操作。特别地,FTL可存储映射数据。因此,控制器130可通过映射数据将从主机102提供的逻辑地址映射到存储器装置150的物理地址。由于地址映射操作,存储器装置150可像普通装置一样执行操作。此外,通过基于映射数据的地址映射操作,当控制器130更新特定页面的数据时,由于闪速存储器装置的特性,控制器130可将新数据编程到另一空页面并且可使特定页面的旧数据无效。进一步地,控制器130可将新数据的映射数据存储到FTL中。
处理器134可利用微处理器或中央处理单元(CPU)来实施。存储器系统110可包括一个或多个处理器134。
管理单元(未示出)可被包括在处理器134中,并且可执行存储器装置150的坏块管理。管理单元可发现存储器装置150中包含的不符合进一步使用的要求的坏存储块,并对坏存储块执行坏块管理。当存储器装置150为例如NAND闪速存储器的闪速存储器时,由于NAND逻辑功能的特性,在写入操作期间,例如在编程操作期间,可能发生编程失败。在坏块管理期间,编程失败的存储块或坏存储块的数据可被编程到新的存储块中。此外,坏块使具有3D堆叠结构的存储器装置150的利用效率和存储器系统110的可靠性严重劣化,因此需要可靠的坏块管理。
图2是示出存储器装置150的示意图。
参照图2,存储器装置150可包括多个存储块0至N-1,例如,存储块0(BLK0)210,存储块1(BLK1)220,存储块2(BLK2)230和存储块N-1(BLKN-1)240。并且存储块210、220、230和240中的每一个可包括多个页面,例如2M个页面,页面的数量可根据电路设计而变化。根据每个存储器单元中可存储或表达的位数,存储器装置150可包括多个存储块,如单层单元(SLC)存储块和多层单元(MLC)存储块。SLC存储块可包括利用每一个都能够存储1位数据的存储器单元实施的多个页面。MLC存储块可包括利用每一个都能够存储例如两位或更多位数据的多位数据的存储器单元实施的多个页面。包括利用每一个都能够存储3位数据的存储器单元实施的多个页面的MLC存储块可被定义为三层单元(TLC)存储块。
图3是示出存储器装置150中的存储块330的电路图。
参照图3,存储块330可以对应于多个存储块152至156中的任何一个。
参照图3,存储器装置150的存储块330可包括分别电联接到位线BL0至BLm-1的多个单元串340。每列单元串340可包括至少一个漏极选择晶体管DST和至少一个源极选择晶体管SST。多个存储器单元或多个存储器单元晶体管MC0至MCn-1可串联地电联接在选择晶体管DST和SST之间。各个存储器单元MC0至MCn-1可由每一个都可存储1位信息的单层单元(SLC)或者由每一个都可存储多位数据信息的多层单元(MLC)来配置。串340可分别电联接到对应的位线BL0至BLm-1。作为参照,在图3中,“DSL”表示漏极选择线,“SSL”表示源极选择线,“CSL”表示共源线。多个字线WL0至WLn-1可以串联地电联接在源极选择线SSL和漏极选择线DSL之间。
虽然图3作为示例示出了通过NAND闪速存储器单元配置的存储块330,但注意的是,存储块330不限于NAND闪速存储器。存储块330可通过NOR闪速存储器、其中组合了至少两种存储器单元的混合闪速存储器、或其中控制器被内置在存储器芯片中的1-NAND闪速存储器实现。半导体装置的操作特性不仅可被应用于其中电荷存储层由导电浮栅配置的闪速存储器装置,而且可被应用于其中电荷存储层由电介质层配置的电荷撷取闪存(CTF)。
存储器装置150的电源电路310可提供待根据操作模式而被提供给各个字线的例如编程电压、读取电压和通过电压的字线电压以及待提供给例如其中形成有存储器单元的阱区的体材料(bulk)的电压。电源电路310可在控制电路(未示出)的控制下执行电压生成操作。电源电路310可生成多个可变读取电压以生成多个读取数据,在控制电路的控制下选择存储器单元阵列的存储块或扇区中的一个,选择所选择的存储块的字线中的一个,并将字线电压提供给所选择的字线和未选择的字线。
存储器装置150的读取/写入电路320可由控制电路控制,并且可根据操作模式用作读出放大器或写入驱动器。在验证/正常读取操作期间,读取/写入电路320可用作读出放大器,其用于从存储器单元阵列读取数据。在编程操作期间,读取/写入电路320可用作根据待被存储在存储器单元阵列中的数据驱动位线的写入驱动器。在编程操作期间,读取/写入电路320可从缓冲器(未示出)接收待被存储到存储器单元阵列中的数据,并根据接收的数据驱动位线。读取/写入电路320可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器322至326,并且页面缓冲器322至326中的每一个可包括多个锁存器(未示出)。
图4是示出存储器装置150的3D结构的示意图。
存储器装置150可通过2D或3D存储器装置来实施。如图4所示,存储器装置150可通过具有3D堆叠结构的非易失性存储器装置来实施。当存储器装置150具有3D结构时,存储器装置150可包括每一个都具有3D结构(或垂直结构)的多个存储块BLK0至BLKN-1。
参照图1,当接收针对与对应于之前被映射的物理地址的逻辑地址相同的逻辑地址的写入请求时,控制器130可以不实际移除存储在该物理地址中的数据而是使存储在该物理地址(在下文中被称为“页面”)中的数据无效,该数据在接收到针对与对应于物理地址的逻辑地址相同的逻辑地址的写入请求时被预选映射。如果重复无效进程,则无效页面可以被累积。然后,控制器130可以控制存储器装置150选择其无效页面的数量大于或等于阈值的牺牲块,从牺牲块复制有效数据并且将有效数据编程到为空闲块的目标块中。控制器130可以擦除存储在牺牲块中的无效页面中的剩余无效数据。该操作进程被称为垃圾收集。
本发明旨在提供一种能够通过基于特定标准选择牺牲块来有效地执行垃圾收集操作的控制器以及控制器的操作方法。将参照图5至图8描述本发明的实施例。为了便于解释,假设存储在无效页面中的数据是无效数据,并且存储在有效页面中的数据是有效数据。
图5示出根据本发明实施例的存储器系统110。
如以上参照图1所述,存储器系统110可以包括控制器130和存储器装置150。
存储器装置150可以包括多个存储块。存储块可以包括基于预定标准选择的牺牲块530以及为空闲块的目标块550。存储块中的每一个可以包括多个页面,并且页面中的每一个可以包括多个组块(chunk)。除了处理器134之外,控制器130可以进一步包括高速缓冲存储器(未示出)、计数器510和块选择器520。
如前所述,处理器134可以控制存储器装置150,以便将数据编程到存储器装置150中或从存储器装置150读取数据。进一步地,处理器134可以控制存储器装置150执行垃圾收集操作。具体地,处理器134可以读取存储在牺牲块530中的有效数据,并控制存储器装置150将有效数据编程到目标块550中。
虽然未示出,但是控制器130可以包括高速缓冲存储器。高速缓冲存储器可以被包括在图1的存储器144中并且可以被单独地配置。
当处理器134读取存储在牺牲块530中的有效数据时,读取的有效数据可以被临时存储在高速缓冲存储器中。随后,处理器134可以控制存储器装置150将存储在高速缓冲存储器中的有效数据编程到目标块550中。
每当执行垃圾收集操作时,计数器510可以对包括在存储块中的每一个中的有效页面的数量进行计数,或者计数或获得指示其的另一个值,该计数或其它值被称为有效页面计数(VPC)。并且,计数器510可以对存储在一个或多个候选块中的有效数据针对页面单元被编程到目标块550中的次数进行计数,或者计数或获得指示其的另一个值,该计数或其它值被称为数据写入计数(WC),其中一个或多个候选块的VPC在预定范围内。另外,当读取牺牲块530的有效数据以执行垃圾收集操作时,计数器510可以对有效数据针对页面单元被顺序地读取的次数进行计数,或者计数或获得指示其的另一个值,该计数或其它值被称为数据读取计数(RC)。
块选择器520可以基于预定标准来选择目标块550和牺牲块530。具体地,块选择器520可以选择其VPC在预定范围内的至少一个块作为一个或多个第一候选块。例如,当预定范围被设置为在50的预定VPC的大约10%的范围内时,块选择器520可以选择VPC为45到55的块作为第一候选块。当第一候选块的数量是1时,块选择器520可以选择该第一候选块作为牺牲块,并且处理器134可以对所选择的第一候选块执行垃圾收集操作。当第一候选块的数量是多个时,块选择器520可以选择具有最小WC的至少一个块作为一个或多个第二候选块。当第二候选块的数量是1时,块选择器520可以选择该第二候选块作为牺牲块,并且处理器134可以对所选择的第二候选块执行垃圾收集操作。当第二候选块的数量是多个时,块选择器520可以选择具有最小RC的至少一个块作为一个或多个第三候选块。当第三候选块的数量是1时,块选择器520可以选择该第三候选块作为牺牲块,并且处理器134可以对所选择的第三候选块执行垃圾收集操作。当第三候选块的数量是多个时,块选择器520可以选择具有最小VPC的至少一个块作为一个或多个第四候选块。当第四候选块的数量是1时,块选择器520可以选择该第四候选块作为牺牲块,并且处理器134可以对所选择的第四候选块执行垃圾收集操作。当第四候选块的数量是多个时,块选择器520可以选择第四候选块中的任何一个块作为牺牲块,并且处理器134可以对所选择的块执行垃圾收集操作。
图6示出根据本发明实施例的垃圾收集操作。具体地,图6中示出对作为用于选择牺牲块的标准的数据写入计数(WC)进行计数的方法。
例如,如图6所示,如果第一块630A的有效页面的数量是12,则第一块630A的VPC是12,并且如果第二块630B的有效页面的数量是13,则第二块630B的VPC是13。为了方便,假设第一块630A和第二块630B是如上参照图5所述的其预先设置的VPC在预定范围内的第一候选块,。因此,块选择器520可以在第一块630A和第二块630B中选择具有较小WC的块作为牺牲块。
图5的处理器134可以控制存储器装置150复制存储在第一块630A的有效页面中的有效数据并将有效数据编程到第一目标块650A中。因此,存储在第一块630A的第零页面的第零组块630A_1中的有效数据可以被编程到第一目标块650A的第零页面的第零组块650A_1中。存储在第一块630A的第零页面的第一组块630A_2中的无效数据可以不被传送到第一目标块650A。存储在第一块630A的第零页面的第二组块630A_3中的有效数据可以被编程到第一目标块650A的第零页面的第一组块650A_2中。以相同方式,存储在第一块630A的多个块630A_4、630A_6、630A_7和630A_9至630A_15中的每一个中的有效数据可以顺序地编程到第一目标块650A的多个组块650A_3至650A_12中的每一个中。因此,多个有效数据可以被最后编程到第一目标块650A的第三页面中。如前所述,由于对页面单元执行编程操作,因此计数器510可以将存储在第一块630A中的有效数据被编程到第一目标块650A中的次数计数为4,其对应于页面0至3。换言之,计数器510可以将第一块630A的WC计数为4。
处理器134可以控制存储器装置150复制存储在第二块630B的有效页面中的有效数据并将有效数据编程到第二目标块650B中。因此,存储在第二块630B的第零页面的第零组块630B_1中的有效数据可以被编程到第二目标块650B的第零页面的第零组块650B_1中。存储在第二块630B的第零页面的第一组块630B_2中的无效数据可以不被传送到第二目标块650B。存储在第二块630B的第零页面的第二组块630B_3中的有效数据可以被编程到第二目标块650B的第零页面的第一组块650B_2中。以相同方式,存储在第二块630B的多个块630B_4和630B_6至630B_15中的每个块中的有效数据可以被顺序地编程到第二目标块650B的多个块650B_3至650B_13中的每一个中。由于第二块630B的VPC是13,因此处理器134可以控制存储器装置150将有效数据一直编程到第二目标块650B的第四页面的第零组块650B_13中。由于对页面单元执行编程操作,因此处理器134可以控制存储器装置150将虚设(dummy)数据编程到第二目标块650B的第四页面的第一组块650B_14和第二组块650B_15中。因此,计数器510可以将存储在第二块630B中的有效数据被编程到第二目标块650B中的次数计数为5,其对应于页面0至4。换言之,计数器510可以将第二块630B的WC计数为5。
当存在多个第一候选块时,块选择器520可以在第一候选块中选择具有较小WC的块作为牺牲块。因此,在如上所述的情况下,块选择器520可以优先地选择第一块630A作为牺牲块。
图7示出根据本发明实施例的垃圾收集操作。具体地,图7中示出对作为用于选择牺牲块的标准的数据读取计数(RC)计数的方法。
如前所述,图5的处理器134可以读取牺牲块的有效数据以进行垃圾收集操作。可以对页面单元执行这种读取操作。当在特定页面中存在无效数据时,可以仅对连续的有效数据顺序地执行读取操作。
例如,对于第三块730A,无效数据可以被存储在第零页面的第一组块730A_2、第一页面的第一组块730A_5、第二页面的第零组块730A_7和第三页面的第一组块730A_11中。因此,为了对第三块730A执行垃圾收集操作,处理器134可以读取第零页面的第零组块730A_1的有效数据,并且随后读取第零页面的第二组块730A_3的有效数据。类似地,处理器134可以读取第一页面的第零组块730A_4的有效数据,并且随后读取第一页面的第二组块730A_6的有效数据。另一方面,处理器134可以一次性读取第二页面的第一组块730A_8和第二组块730A_9的有效数据。随后,处理器134可以读取第三页面的第零组块730A_10的有效数据,并且随后读取第三页面的第二组块730A_12的有效数据。最后,处理器134可以一次性读取第四页面的第零组块730A_13至第二组块730A_15中的每一个的有效数据。因此,处理器134可以执行读取操作八次,其对应于730A_1、730A_3、730A_4、730A_6、730A_8、730A_9、730A_10和730A_12至730A_15。计数器520可以将第三块730A的RC计数为8。
同时,对于第四块730B,无效数据可以被存储在第一页面的第零组块730B_4至第二组块730B_6以及第二页面的第零组块730B_7中。因此,为了执行第四块730B的垃圾收集操作,处理器134可以读取第零页面的第零组块730B_1至第二组块730B_3的有效数据。并且,处理器134可以一次性读取第二页面的第一组块730B_8和第二组块730B_9的有效数据。理器134可以一次性读取第三页面的第零组块730B_10至第二组块730B_12的有效数据。最后,处理器134可以一次性读取第四页面的第零组块730B_13至第二组块730B_15中的每一个的有效数据。因此,处理器134可以执行读取操作四次,其对应于730B_1至730B_3、730B_8、730B_9、730B_10至730B_12和730B_13至730B_15。计数器520可以将第四块730B的RC计数为4。
当存在多个第二候选块时,即,当存在具有相同WC的多个块时,图5的块选择器520可以在第二候选块中选择具有最小RC的块作为牺牲块。因此,在如上所述的情况下,块选择器520可以优先地选择第四块730B作为牺牲块。因此,处理器134可以控制存储器装置150从被选择为牺牲块的第四块730B读取有效数据并且将有效数据编程到目标块750中。
图8是说明根据本发明的实施例的图5的控制器130的操作的流程图。
在步骤S801处,块选择器520可以选择其VPC在预定范围内的一个或多个第一候选块。
在步骤S817处,当第一候选块的数量不是多个时,即,当第一候选块的数量是1时(即,在步骤S803中为“否”),块选择器520可以将该第一候选块选择为牺牲块。
在步骤S805处,当第一候选块的数量是多个时(即,在步骤S803中为“是”),块选择器520可以在第一候选块中选择具有最小WC的一个或多个第二候选块。
在步骤S817处,当第二候选块的数量不是多个时,即,当第二候选块的数量是1时(即,在步骤S807中为“否”),块选择器520可以将该第二候选块选择为牺牲块。
在步骤S809处,当第二候选块的数量是多个时(即,在步骤S807中为“是”),块选择器520可以在第二候选块中选择具有最小RC的一个或多个第三候选块。
在步骤S817处,当第三候选块的数量不是多个时,即,当第三候选块的数量是1时(即,在步骤S811中为“否”),块选择器520可以将该第三候选块选择为牺牲块。
在步骤S813处,当第三候选块的数量是多个时(即,在步骤S811中为“是”),块选择器520可以在第三候选块中选择具有最小VPC的一个或多个第四候选块。
在步骤S817处,当第四候选块的数量不是多个时,即,当第四候选块的数量是1时(即,在步骤S815中为“否”),块选择器520可以将该第四候选块选择为牺牲块。
在步骤S819处,当第四候选块的数量是多个时(即,在步骤S815中为“是”),块选择器520可以选择第四候选块中的任何一个块作为牺牲块。
在步骤S821处,处理器134可以控制存储器装置150对选择的牺牲块执行垃圾收集操作。
如上所述,根据本发明的实施例,基于被编程和读取的次数而不仅仅基于有效页面的数量可以更有效地选择牺牲块。
图9至图17是示意性示出根据各个实施例的图1至图8的数据处理系统的应用示例的示图。
图9是示意性示出包括根据实施例的存储器系统的数据处理系统的示例的示图。图9示意性示出了可以应用存储器系统的存储卡系统。
参照图9,存储卡系统6100可包括存储器控制器6120、存储器装置6130和连接器6110。
更具体地,存储器控制器6120可被连接至通过非易失性存储器实施的存储器装置6130,并被配置成访问存储器装置6130。例如,存储器控制器6120可被配置成控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可被配置成提供存储器装置6130和主机之间的接口并驱动固件以控制存储器装置6130。也就是说,存储器控制器6120可对应于参照图1至图8描述的存储器系统110的控制器130,并且存储器装置6130可对应于参照图1至图8描述的存储器系统110的存储器装置150。
因此,存储器控制器6120可包括RAM、处理器、主机接口、存储器接口和错误校正部件。存储器控制器6120可进一步包括图1所述的元件。
存储器控制器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的存储器装置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用作工作存储器时,通过CPU 6221处理的数据可被临时存储在RAM 6222中。当RAM 6222用作缓冲存储器时,RAM 6222可用于缓冲从主机6210传输到存储器装置6230的数据或从存储器装置6230传输到主机6210的数据。当RAM6222用作高速缓冲存储器时,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的数据,并通过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的存储器系统110中的控制器130,并且存储器装置6340可对应于图1的存储器系统中的存储器装置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值对从存储器装置6340读取的数据执行错误校正操作,并在失效数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324可提供与诸如主机6310的外部装置的接口功能,并且非易失性存储器接口6326可提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可提供应用了图1的存储器系统110的多个SSD 6300来实施数据处理系统,例如,RAID(独立磁盘冗余阵列)系统。此时,RAID系统可包括多个SSD 6300和用于控制多个SSD 6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的写入命令的RAID级别信息,在SSD 6300中选择一个或多个存储器系统或SSD 6300,并将对应于写入命令的数据输出到选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的读取命令的RAID级别信息,在SSD6300中选择一个或多个存储器系统或SSD 6300,并将从所选择的SSD 6300读取的数据提供给主机6310。
图12是示意性示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。图12示意性示出可以应用存储器系统的嵌入式多媒体卡(eMMC)。
参照图12,eMMC 6400可包括控制器6430和通过一个或多个NAND闪速存储器实施的存储器装置6440。控制器6430可对应于图1的存储器系统110中的控制器130,并且存储器装置6440可对应于图1的存储器系统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所示的存储器系统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彼此通信。
图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。例如,应用处理器6930和存储器模块6920可基于POP(堆叠式封装)封装和安装。
网络模块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描述的存储器系统110。此外,存储模块6950可被实施为如上参照图11至图16所述的SSD、eMMC和UFS。
用户接口6910可包括用于向应用处理器6930输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器的用户输出接口。
此外,当图1的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可控制移动电子装置的操作,并且网络模块6940可用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6910可在移动电子装置的显示/触摸模块上显示通过处理器6930处理的数据或支持从触摸面板接收数据的功能。
虽然已经针对具体实施例描述了本发明,但是根据本公开对于本领域技术人员显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可进行各种改变和变型。
Claims (20)
1.一种控制器,其包括:
计数器,其将存储器装置中的多个块中的每一个中的有效页面的数量计数为第一参数值;
块选择器,其选择一个或多个第一候选块,所述一个或多个第一候选块中的每一个的所述第一参数值在预定范围内,并且在所述一个或多个第一候选块中选择牺牲块;以及
处理器,其控制所述存储器装置读取存储在所述牺牲块中的有效数据并且将所述有效数据编程到所述存储器装置中的目标块中。
2.根据权利要求1所述的控制器,其中所述计数器将存储在所述第一候选块中的每一个中的有效数据被编程到所述目标块中的次数计数为第二参数值,以及
所述块选择器在所述一个或多个第一候选块中选择一个或多个第二候选块,所述一个或多个第二候选块中的每一个的所述第二参数值是最小值,并且在所述一个或多个第二候选块中选择所述牺牲块。
3.根据权利要求2所述的控制器,其中所述计数器将存储在所述第二候选块中的每一个中的所述有效数据被读取的次数计数为第三参数值,以及
所述块选择器在所述一个或多个第二候选块中选择一个或多个第三候选块,所述一个或多个第三候选块中的每一个的所述第三参数值是最小值,并且在所述一个或多个第三候选块中选择所述牺牲块。
4.根据权利要求3所述的控制器,其中所述块选择器在所述一个或多个第三候选块中选择一个或多个第四候选块,所述一个或多个第四候选块中的每一个的所述第一参数值是最小值,并且在所述一个或多个第四候选块中选择所述牺牲块。
5.根据权利要求1所述的控制器,其中所述块选择器在所述一个或多个第一候选块中选择具有最小值的所述第一参数值的块作为所述牺牲块。
6.根据权利要求1所述的控制器,其中所述处理器控制所述存储器装置对所述牺牲块执行擦除操作。
7.根据权利要求1所述的控制器,其中所述处理器控制所述存储器装置对所述目标块的页面单元执行编程操作。
8.根据权利要求7所述的控制器,其中所述处理器控制所述存储器装置在所述编程操作期间将虚设数据编程到所述目标块的未编程的组块中。
9.根据权利要求1所述的控制器,其中所述处理器控制所述存储器装置顺序地读取存储在所述有效页面中的所述有效数据。
10.根据权利要求9所述的控制器,其进一步包括:
高速缓冲存储器,其复制和存储所述有效数据。
11.一种控制器的操作方法,其包括:
使用计数器将存储器装置中的多个块中的每一个中的有效页面的数量计数为第一参数值;
使用块选择器选择一个或多个第一候选块,所述一个或多个第一候选块中的每一个的所述第一参数值在预定范围内,并且在所述一个或多个第一候选块中选择牺牲块;以及
使用处理器控制所述存储器装置读取存储在所述牺牲块中的有效数据并且将所述有效数据编程到所述存储器装置中的目标块中。
12.根据权利要求11所述的操作方法,其进一步包括:
将存储在所述第一候选块中的每一个中的有效数据被编程到所述目标块中的次数计数为第二参数值,以及
在所述一个或多个第一候选块中选择一个或多个第二候选块,所述一个或多个第二候选块中的每一个的所述第二参数是最小值,并且在所述一个或多个第二候选块中选择所述牺牲块。
13.根据权利要求12所述的操作方法,其进一步包括:
将存储在所述第二候选块中的每一个中的所述有效数据被读取的次数计数为第三参数值;以及
在所述一个或多个第二候选块中选择一个或多个第三候选块,所述一个或多个第三候选块中的每一个的所述第三参数是最小值,并且在所述一个或多个第三候选块中选择所述牺牲块。
14.根据权利要求13所述的操作方法,其进一步包括:
在所述一个或多个第三候选块中选择一个或多个第四候选块,所述一个或多个第四候选块中的每一个的所述第四参数是最小值,并且在所述一个或多个第四候选块中选择所述牺牲块。
15.根据权利要求11所述的操作方法,其中执行对所述一个或多个第一候选块的所述选择以及在所述一个或多个第一候选块中对所述牺牲块的所述选择,以选择具有最小值的所述第一参数值的块作为所述牺牲块。
16.根据权利要求11所述的操作方法,其中执行对所述存储器装置的所述控制以控制所述存储器装置在所述编程操作完成之后对所述牺牲块执行擦除操作。
17.根据权利要求11所述的操作方法,其中执行对所述存储器装置的所述控制以控制所述存储器装置对所述目标块的页面单元执行编程操作。
18.根据权利要求17所述的操作方法,其中执行对所述存储器装置的所述控制以控制所述存储器装置在所述编程操作期间将虚设数据编程到所述目标块的未编程的组块中。
19.根据权利要求11所述的操作方法,其中执行对所述存储器装置的所述控制以控制所述存储器装置顺序地读取存储在所述有效页面中的所述有效数据。
20.根据权利要求19所述的操作方法,其进一步包括:
复制所述有效数据并且将所述有效数据存储到高速缓冲存储器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0137160 | 2017-10-23 | ||
KR1020170137160A KR20190044798A (ko) | 2017-10-23 | 2017-10-23 | 컨트롤러 및 컨트롤러의 동작방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109697171A true CN109697171A (zh) | 2019-04-30 |
CN109697171B CN109697171B (zh) | 2023-08-15 |
Family
ID=66169300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810718929.6A Active CN109697171B (zh) | 2017-10-23 | 2018-07-03 | 控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10664391B2 (zh) |
KR (1) | KR20190044798A (zh) |
CN (1) | CN109697171B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445420A (zh) * | 2019-09-02 | 2021-03-05 | 爱思开海力士有限公司 | 存储控制器、存储装置以及操作该存储装置的方法 |
CN112445420B (zh) * | 2019-09-02 | 2024-06-07 | 爱思开海力士有限公司 | 存储控制器、存储装置以及操作该存储装置的方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102447602B1 (ko) * | 2017-10-25 | 2022-09-26 | 삼성전자주식회사 | 메모리 장치 및 그 동적 가비지 컬렉션 방법 |
KR20210063764A (ko) | 2019-11-25 | 2021-06-02 | 에스케이하이닉스 주식회사 | 메모리 시스템의 동작 방법 및 장치 |
KR20210144249A (ko) | 2020-05-22 | 2021-11-30 | 에스케이하이닉스 주식회사 | 저장 장치 및 이의 동작 방법 |
WO2021257084A1 (en) * | 2020-06-19 | 2021-12-23 | Hewlett-Packard Development Company, L.P. | Born-on date |
KR102580075B1 (ko) * | 2020-12-30 | 2023-09-21 | 한양대학교 산학협력단 | 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치 |
US11237958B1 (en) * | 2021-01-11 | 2022-02-01 | Oracle International Corporation | Low overhead cardinality estimation for incoming references in regional garbage collection |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130037555A (ko) * | 2011-10-06 | 2013-04-16 | 삼성전자주식회사 | 불휘발성 메모리 장치의 제어 방법 |
US20130326115A1 (en) * | 2012-05-31 | 2013-12-05 | Seagate Technology Llc | Background deduplication of data sets in a memory |
US20140006693A1 (en) * | 2012-07-02 | 2014-01-02 | SK Hynix Inc. | Semiconductor device and operating method thereof |
US20160019142A1 (en) * | 2014-07-17 | 2016-01-21 | Quanta Storage Inc. | Method of collecting garbage blocks in a solid state drive |
US20160163381A1 (en) * | 2014-12-04 | 2016-06-09 | SK Hynix Inc. | Memory system including semiconductor memory device and method of operating the same |
US20160283368A1 (en) * | 2015-03-28 | 2016-09-29 | Wipro Limited | System and method for selecting victim memory block for garbage collection |
US20170046068A1 (en) * | 2015-08-11 | 2017-02-16 | Phison Electronics Corp. | Memory management method, memory control circuit unit and memory storage device |
CN106598478A (zh) * | 2015-10-15 | 2017-04-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107015917A (zh) * | 2015-12-18 | 2017-08-04 | 三星电子株式会社 | 储存装置和其读取回收方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160132204A (ko) | 2015-05-07 | 2016-11-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
-
2017
- 2017-10-23 KR KR1020170137160A patent/KR20190044798A/ko unknown
-
2018
- 2018-06-05 US US16/000,402 patent/US10664391B2/en active Active
- 2018-07-03 CN CN201810718929.6A patent/CN109697171B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130037555A (ko) * | 2011-10-06 | 2013-04-16 | 삼성전자주식회사 | 불휘발성 메모리 장치의 제어 방법 |
US20130326115A1 (en) * | 2012-05-31 | 2013-12-05 | Seagate Technology Llc | Background deduplication of data sets in a memory |
US20140006693A1 (en) * | 2012-07-02 | 2014-01-02 | SK Hynix Inc. | Semiconductor device and operating method thereof |
US20160019142A1 (en) * | 2014-07-17 | 2016-01-21 | Quanta Storage Inc. | Method of collecting garbage blocks in a solid state drive |
US20160163381A1 (en) * | 2014-12-04 | 2016-06-09 | SK Hynix Inc. | Memory system including semiconductor memory device and method of operating the same |
US20160283368A1 (en) * | 2015-03-28 | 2016-09-29 | Wipro Limited | System and method for selecting victim memory block for garbage collection |
US20170046068A1 (en) * | 2015-08-11 | 2017-02-16 | Phison Electronics Corp. | Memory management method, memory control circuit unit and memory storage device |
CN106598478A (zh) * | 2015-10-15 | 2017-04-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107015917A (zh) * | 2015-12-18 | 2017-08-04 | 三星电子株式会社 | 储存装置和其读取回收方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445420A (zh) * | 2019-09-02 | 2021-03-05 | 爱思开海力士有限公司 | 存储控制器、存储装置以及操作该存储装置的方法 |
CN112445420B (zh) * | 2019-09-02 | 2024-06-07 | 爱思开海力士有限公司 | 存储控制器、存储装置以及操作该存储装置的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109697171B (zh) | 2023-08-15 |
US10664391B2 (en) | 2020-05-26 |
US20190121733A1 (en) | 2019-04-25 |
KR20190044798A (ko) | 2019-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108572927A (zh) | 存储器系统及其操作方法 | |
CN110399311A (zh) | 存储器系统及该存储器系统的操作方法 | |
CN107643985A (zh) | 存储器系统及其操作方法 | |
CN109697171A (zh) | 控制器及其操作方法 | |
CN109388594A (zh) | 存储器系统及其操作方法 | |
CN109426449A (zh) | 存储器系统及其操作方法 | |
CN109284202A (zh) | 控制器及其操作方法 | |
CN108268212A (zh) | 控制器及操作方法 | |
CN108932203A (zh) | 数据处理系统和数据处理方法 | |
CN110058797A (zh) | 存储器系统及其操作方法 | |
CN110322920A (zh) | 控制器及控制器的操作方法 | |
CN108694138A (zh) | 控制器及其操作方法 | |
CN110531922A (zh) | 存储器系统、控制器及其操作方法 | |
CN110321069A (zh) | 存储器系统及其操作方法 | |
CN108257637A (zh) | 存储器系统及其操作方法 | |
CN108427536A (zh) | 存储器系统及其操作方法 | |
CN110457230A (zh) | 存储器系统及其操作方法 | |
CN108733616A (zh) | 包括多处理器的控制器及其操作方法 | |
CN109656749A (zh) | 存储器系统及其操作方法 | |
CN108241470A (zh) | 控制器及其操作方法 | |
CN110457242A (zh) | 控制器、存储器系统及其操作方法 | |
CN107622018A (zh) | 存储器系统及其操作方法 | |
CN109656470A (zh) | 存储器系统及其操作方法 | |
CN109521946A (zh) | 数据处理系统及其操作方法 | |
CN108628755A (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 |