CN107622018B - 存储器***及其操作方法 - Google Patents
存储器***及其操作方法 Download PDFInfo
- Publication number
- CN107622018B CN107622018B CN201710273616.XA CN201710273616A CN107622018B CN 107622018 B CN107622018 B CN 107622018B CN 201710273616 A CN201710273616 A CN 201710273616A CN 107622018 B CN107622018 B CN 107622018B
- Authority
- CN
- China
- Prior art keywords
- memory
- block
- controller
- data
- memory block
- 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
Links
Images
Classifications
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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/061—Improving I/O performance
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- 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
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及一种存储器***,其可包括:存储器装置,其包括多个存储块,每个存储块包括多个页面;以及控制器,其适于:将与写入命令相对应的用户数据存储在存储块中;将与存储的用户数据相对应的映射数据存储在存储块中;确定指示与存储的用户数据相对应的存储块中更新的映射数据的量的熵;并且在存储块之中选择与熵相对应的源存储块。
Description
相关申请的交叉引用
本申请要求于2016年7月14日提交的申请号为10-2016-0089383的韩国专利申请的优先权,其全部公开通过引用并入本文。
技术领域
示例性实施例涉及一种存储器***,且更特别地,涉及一种处理关于存储器装置的数据的存储器***及其操作方法。
背景技术
计算机环境范式已经转变为普适计算***,其能够在任何时间和任何地点使用。由于此,诸如移动电话、数字照相机和笔记本计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有一个或多个用于存储数据的存储器装置的存储器***。存储器***可用作便携式电子装置的主存储器装置或辅助存储器装置。
使用存储器装置的存储器***因其不具有活动部件而可提供优良的稳定性、耐用性、高信息存取速度以及低功耗。具有这种优点的存储器***的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
各个实施例涉及一种存储器***及其操作方法,其能够最小化存储器***的复杂性和性能退化,并最大化存储器装置的使用效率,从而快速且稳定地处理关于存储器装置的数据。
在实施例中,存储器***包括:存储器装置,其包括多个存储块,每个存储块包括多个页面;以及控制器,其适于:将与写入命令相对应的用户数据存储在存储块中,将与存储的用户数据相对应的映射数据存储在存储块中,确定指示与存储的用户数据相对应的存储块中更新的映射数据的量的熵(entropy),并且在存储块中选择与熵相对应的源存储块。
控制器可更新与存储的用户数据相对应的映射数据,并且可确定更新的映射数据的映射段的数量。
可对应于更新的映射数据的映射段的数量来确定熵。
控制器可在存储块之中从具有最小熵的存储块开始顺序地选择源存储块。
当从主机接收到针对存储在存储块中的用户数据的写入命令时,控制器可执行对存储在存储块中的用户数据的更新编程操作。
控制器可更新与存储块中的更新编程操作相对应的存储块的映射数据。
控制器可确定与存储的用户数据相对应的存储块中的有效页面,并可选择与有效页面的数量相对应的源存储块。
控制器可在存储块之中从具有最小数量的有效页面的存储块开始顺序地选择源存储块。
控制器可将存储块的从组合有效页面的数量和熵而得出的参数、有效页面的数量和熵记录在列表中,并可将列表存储在存储块中。
控制器可在存储块之中选择目标存储块,并可将源存储块中的有效数据复制并存储到目标存储块中。
在实施例中,一种用于操作存储器***的方法可包括:将与写入命令相对应的用户数据存储在存储器装置中的多个存储块中,每个存储块包括多个页面;将与存储的用户数据相对应的映射数据存储在存储块中;确定指示与存储的用户数据相对应的存储块中更新的映射数据的量的熵;以及在存储块之中选择与熵相对应的源存储块。
该方法可进一步包括:更新与所存储的用户数据相对应的映射数据,熵的确定包括确定更新的映射数据的映射段的数量。
熵与更新的映射数据的映射段的数量相对应。
选择可在存储块之中从具有最小熵的存储块开始顺序地选择源存储块。
该方法可进一步包括:当从主机接收到针对存储在存储块中的用户数据的写入命令时,执行对存储在存储块中的用户数据的更新编程操作。
映射数据的更新可包括更新与存储块中的更新编程操作相对应的存储块的映射数据。
熵的确定可包括确定与所存储的用户数据相对应的存储块中的有效页面,并且选择可选择与有效页面的数量相对应的源存储块。
源存储块的选择可包括在存储块之中从具有最小数量的有效页面的存储块开始顺序地选择源存储块。
该方法可进一步包括:将存储块的从组合有效页面的数量和熵而得出的参数记录在列表中;以及将列表存储在存储块中。
该方法可进一步包括:在存储块之中选择目标存储块;以及将源存储块中的有效数据复制并存储到目标存储块中。
附图说明
从下面参照附图对本发明的各个实施例的详细描述,本发明的这些和其它特征与优点对于本发明所属领域的技术人员将变得显而易见,其中:
图1是示出根据本发明的实施例的包括联接到主机的存储器***的数据处理***的图;
图2是示出根据本发明的实施例的图1的存储器***中的存储器装置的图;
图3是示出根据本发明的实施例的存储器装置中的存储块的存储器单元阵列电路的图;
图4是示出根据本发明的实施例的存储器***中的存储器装置的结构的图;
图5至图7是示出根据实施例的关于存储器***中的存储器装置的数据处理操作的图;
图8是示出根据实施例的用于在存储器***中处理数据的操作进程的流程图;以及
图9至图14是示出根据本发明的实施例的存储器***的图。
具体实施方式
尽管下面参照附图更详细地描述了各个实施例,但是应注意到,本发明可以不同的形式实施,并且不应被解释为限于本文所阐述的实施例。相反,提供所描述的实施例以便本公开将是彻底且完全的,并将本发明完全传达给本发明所属领域的技术人员。贯穿本公开,在本发明的各个附图和实施例中,相同的附图标记表示相同的部件。
将理解的是,尽管可以在本文中使用术语“第一”、“第二”、“第三”等来描述各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一个元件区分开。因此,在不脱离本发明的精神和范围的情况下,下面描述的第一元件也可被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,比例可能已经被夸大以便清楚地示出本发明的实施例的特征。
将进一步理解的是,当元件被称为“连接到”或“联接到”另一元件时,其可直接在另一元件上、连接到或联接到另一元件,或者可存在一个或多个中间元件。此外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制本发明。如本文所使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,并且不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员考虑到本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语应当被解释为具有与其在相关技术和本公开语境中的含义一致的含义,并且将不以理想化或过于正式的意义来解释,除非本文中明确地这样定义。
在下面的描述中,描述了大量具体细节以提供对本发明的全面理解。可在没有一些或全部这些具体细节的情况下实践本发明。在其它情况下,没有详细地描述公知的进程结构和/或进程以避免不必要地模糊本发明。
还应注意的是,在一些情况下,如对于本发明所属相关领域的技术人员显而易见的是,除非另有特别说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用。
在下文中,将参照附图详细描述本发明的各个实施例。
图1示出了根据本发明的实施例的包括存储器***110的数据处理***100。
参照图1,数据处理***100可包括主机102和联接到主机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可包括存储将由主机102访问的数据的存储器装置150,以及可控制数据存储在存储器装置150中的控制器130。
控制器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装置或配置计算***的各种组成元件之一。
当装置的电源被中断时,存储器***110的存储器装置150可保留所存储的数据。特别地,存储器装置150可在写入操作期间存储从主机102提供的数据,并且在读取操作期间将存储的数据提供至主机102。存储器装置150可包括多个存储块152、154和156。存储块152、154和156中的每一个可包括多个页面。每个页面可包括多个存储器单元,其中多个字线(WL)电联接到多个存储器单元。存储器装置150可以是非易失性存储器装置,诸如闪速存储器。闪速存储器可具有三维(3D)堆叠结构。
存储器***110的控制器130可响应于来自主机102的请求来控制存储器装置150。控制器130可将从存储器装置150读取的数据提供给主机102,并将从主机102提供的数据存储在存储器装置150中。控制器130可控制存储器装置150的全部操作,诸如读取操作、写入操作、编程操作和擦除操作。
例如,控制器130可包括经由内部总线IB可操作地联接的主机接口单元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中的组成元件的电力。可采用任何适合的PMU。
NFC 142是控制器130和存储器装置150之间的存储器接口,其允许控制器130响应于来自主机102的请求来控制存储器装置150。例如,当存储器装置150是闪速存储器时,NFC142可在处理器134的控制下生成用于存储器装置150的控制信号并且处理数据。特别地,当存储器装置150是NAND闪速存储器时,NFC 142可在处理器134的控制下生成用于存储器装置150的控制信号并处理数据。当存储器装置150不是NAND闪速存储器时,可采用适于用作控制器130和存储器装置150之间的存储器接口以允许控制器130响应于来自主机102的请求来控制存储器装置150的其它公知的存储器接口。
存储器144可用作存储器***110和控制器130的工作存储器,并且存储用于驱动存储器***110和控制器130的数据。控制器130可响应于来自主机102的请求来控制存储器装置150。例如,控制器130可将从存储器装置150读取的数据提供至主机102,并将从主机102提供的数据存储在存储器装置150中。当控制器130控制存储器装置150的操作时,存储器144可存储由控制器130和存储器装置150用于读取操作、写入操作、编程操作和擦除操作的数据。
存储器144可利用易失性存储器来实施。存储器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可包括多个存储块。例如,存储器装置150可包括第0存储块210至第(N-1)存储块240。多个存储块210至240中的每一个可包括多个页面。例如,多个存储块210至240中的每一个可包括2M个页面(2M页面),本发明将不限于此。多个页面中的每一个可包括电联接到字线的多个存储器单元。
而且,根据每个存储器单元中可存储或表达的位的数量,存储器装置150可包括如单层单元(SLC)存储块和多层单元(MLC)存储块的多个存储块。SLC存储块可包括利用每个能够存储1位数据的存储器单元实施的多个页面。MLC存储块可包括利用存储器单元实施的多个页面,其中每个存储器单元能够存储多位数据,例如,两位或更多位数据。包括利用每个能够存储3位数据的存储器单元实施的多个页面的MLC存储块也可被称为三层单元(TLC)存储块。
多个存储块210至240中的每一个可在写入操作期间存储从主机102提供的数据,并且可在读取操作期间将所存储的数据提供到主机102。
图3是示出图1的存储器装置150的多个存储块152至156中的一个的电路图。
参照图3,存储器装置150的存储块330可包括分别电联接到多个位线BL0到BLm-1的多个单元串340。每个单元串340可包括至少一个漏极选择晶体管DST和至少一个源极选择晶体管SST。每个单元串340还可包括串联地电联接在至少一个漏极选择晶体管DST和至少一个源极选择晶体管SST之间的多个存储器单元或多个存储器单元晶体管MC0至MCn-1。存储器单元MC0至MCn-1中的每一个可由存储多个位的数据信息的多层单元(MLC)配置。串340中的每一个可电联接到多个位线BL0至BLm-1中的对应位线。作为参照,在图3中,“DSL”表示漏极选择线,“SSL”表示源极选择线,并且“CSL”表示共源线。
虽然图3作为示例示出了由NAND闪速存储器单元配置的存储器装置150的存储块330,但是应当注意的是,存储块330不限于NAND闪速存储器单元。例如,根据其它实施例,存储块330可利用NOR闪速存储器单元和组合至少两种存储器单元的混合闪速存储器单元来实施。在实施例中,存储块330可被实施为其中控制器内置在存储器芯片中的1-NAND闪速存储器。在实施例中,存储器装置150可以是其中电荷存储层由导电浮栅配置的闪速存储器装置。在另一实施例中,存储器装置150可以是其中电荷存储层由介电层配置的电荷捕获闪存(CTF)。
存储器装置150的电压供应块310可根据操作模式向各个字线提供诸如编程电压、读取电压和通过电压的字线电压,并且可向例如其中形成有存储器单元的阱区的体材料(bulk)提供电压。电压供应块310可在控制电路(未示出)的控制下执行电压生成操作。电压供应块310可生成多个可变读取电压以生成多个读取数据,在控制电路的控制下选择存储器单元阵列的存储块或扇区中的一个,选择所选择的存储块的字线中的一个字线,并且将字线电压提供至所选择的字线和未选择的字线。
存储器装置150的读取/写入电路320可由控制电路控制,并且可根据操作模式用作读出放大器或写入驱动器。在验证/正常读取操作期间,读取/写入电路320可用作用于从存储器单元阵列读取数据的读出放大器。而且,在编程操作期间,读取/写入电路320可用作根据将存储在存储器单元阵列中的数据来驱动位线的写入驱动器。读取/写入电路320可在编程操作期间从缓冲器(未示出)接收将写入存储器单元阵列中的数据,并且可根据接收的数据来驱动位线。读取/写入电路320可包括分别对应于列或位线或者列对或位线对的多个页面缓冲器322、324和326,并且多个锁存器(未示出)可被包括在页面缓冲器322、324和326中的每一个中。
图4是示意性地示出图1的存储器装置150的示例的框图。
参照图4,存储器装置150可包括多个存储块BLK0至BLKN-1,存储块BLK0至BLKN-1中的每个以也称为竖直结构的三维(3D)结构实施。存储块BLK0至BLKN-1中的每一个可包括在第一方向至第三方向上延伸的结构。各个存储块BLK0至BLKN-1可包括例如多个NAND串的多个单元串,每个单元串在第二方向上延伸,例如在竖直方向上延伸。多个NAND串可在第一方向和第二方向上以规律间隔分隔开。每个NAND串可电联接到位线、至少一个源极选择线、至少一个接地选择线、多个字线、至少一个虚拟字线以及共源线。即,各个存储块BLK0至BLKN-1可电联接到多个位线、多个源极选择线、多个接地选择线、多个字线、多个虚拟字线以及多个共源线。
在下文中,将参照图5至图7详细描述根据本发明的实施例的关于存储器***中的存储器装置150的数据处理。特别地,将描述关于存储器装置150的对应于从主机102接收的命令的命令数据处理操作。
图5至图7是示出根据实施例的关于存储器***中的存储器装置的数据处理操作的示例的图。作为示例,将对当图1所示的存储器***110中执行与从主机102接收的命令相对应的命令操作时的数据处理进行详细描述。例如,将对当执行与从主机102接收的写入命令相对应的编程操作时的数据处理进行详细描述。此外,作为示例,将对以下的数据处理进行描述:在将与从主机102接收的写入命令相对应的写入数据存储在控制器130的存储器144中包含的缓冲器/高速缓冲存储器中后,将存储在缓冲器/高速缓冲存储器中的数据写入,即编程并存储在存储器装置150中包含的多个存储块中,并且在更新存储在存储器装置150中的数据之后,更新数据被再次编程在存储器装置150中。
此外,如上所述,当控制器130在存储器***110中执行数据处理操作时,包括在控制器130中的处理器134可通过闪存转换层(FTL)执行数据处理。
例如,在将与从主机102接收的写入命令相对应的用户数据和元数据存储在控制器130的存储器144中包含的缓冲器中之后,控制器130将存储在缓冲器中的数据写入并存储在存储器装置150中包含的多个存储块中。也就是说,控制器130执行编程操作。
元数据可包括存储在与编程操作相对应的存储块中的数据的第一映射数据和第二映射数据,其中第一映射数据包括在下文中被称为“逻辑信息”的逻辑/物理(L2P:逻辑到物理)信息,并且第二映射数据包括在下文中被称为“物理信息”的物理/逻辑(P2L:物理到逻辑)信息。另外,元数据可包括关于与从主机102接收的命令相对应的命令数据的信息、关于与命令相对应的命令操作的信息、关于对其执行命令操作的存储器装置150的存储块的信息以及关于与命令操作相对应的映射数据的信息。也就是说,元数据可包括除了与从主机102接收的命令相对应的用户数据之外的所有剩余信息和数据。
当控制器130从主机102接收到诸如写入命令的命令时,将与写入命令相对应的用户数据写入并存储在存储器装置150的存储块中。例如,将与写入命令相对应的用户数据写入并存储在存储块之中的空存储块、开放存储块或执行了擦除操作的空闲存储块中。元数据可包括存储在存储块中的用户数据的逻辑地址和物理地址之间的映射信息,以及存储用户数据的存储块的物理地址和逻辑地址之间的映射信息。也就是说,元数据包括含有记录逻辑信息的L2P映射表的第一映射数据和含有记录物理信息的P2L映射表的第二映射数据。可将元数据写入并存储在存储器装置150的存储块之中的空存储块、开放存储块或空闲存储块中。特别地,在本公开的实施例中,当从主机102接收到写入命令时,将与写入命令相对应的用户数据的数据段和元数据的元段存储在存储器装置150的存储块中。也就是说,将作为映射数据的映射段的第一映射数据的L2P段和第二映射数据的P2L段存储在存储器装置150的存储块中。
当通过检查存储在存储块中的用户数据的第一映射数据和第二映射数据,在存储块中对与从主机102接收的命令相对应的用户数据执行命令操作时,在存储块中对用户数据执行命令操作,并且对应于这样的命令操作,更新用户数据的第一映射数据和第二映射数据。
在本实施例中,在控制器130将与从主机102接收的写入命令相对应的用户数据存储在控制器130的存储器144中包含的缓冲器中之后,控制器130将存储在缓冲器中的数据编程到包括在存储器装置150中的多个存储块之中的可选存储块的多个页面中。例如,控制器130执行编程操作,并将存储在缓冲器中的数据存储在第一存储块的第一页面中。当控制器130从主机102接收到针对存储在第一存储块的第一页面中的数据的写入命令时,控制器130对存储在第一存储块的第一页面中的数据执行更新编程操作。也就是说,控制器130将与从主机102接收的写入命令相对应的用户数据存储在可选存储块的其它页面中或另一可选存储块的页面中。例如,控制器130将与写入命令相对应的用户数据存储在第一存储块的第二页面或第二存储块的第一页面中。存储在前一个可选存储块的页面中的数据被处理为无效数据。也就是说,第一存储块的第一页面被处理为无效数据,因此,第一存储块的第一页面变成无效页面。
例如,当无效页面包括在存储器装置150的存储块中时,为了最大化存储器装置150的利用效率,执行在存储器装置150的存储块之间处理数据的操作。此外,将描述对存储器装置150执行后台操作时的数据处理。在本公开的实施例中,垃圾收集操作可作为后台操作执行,其包括将存储在存储器装置150的存储块中的数据复制并处理到可选存储块的操作。此外,损耗均衡操作可作为后台操作执行,其包括交换并处理存储器装置150的存储块或存储在该存储块中的数据的操作。下面,将对当执行在存储器装置150的存储块中复制并处理数据的操作即垃圾收集操作时的数据处理进行详细描述。
在本实施例中,当完成对存储器装置150的存储块之中的存储块的编程时,控制器130执行在存储块之间复制并存储数据的操作。也就是说,在存储器装置150的存储块之中的存储块已经执行了用于将数据编程在包括在每个存储块中的所有页面中的操作,控制器130执行在存储块之间复制并存储数据的操作。当无效页面在存储器装置150的封闭存储块中时,控制器130执行将包括在存储块中的有效页面的数据,即有效数据,复制并存储到未执行编程的存储块中的操作。例如,控制器130执行将有效数据复制并存储到空存储块、开放存储块或空闲存储块中的操作。也就是说,控制器130对存储器装置150的存储块执行垃圾收集操作。
在本公开的实施例中,在检查存储器装置150的存储块中的有效页面之后,控制器130考虑存储块的参数来执行垃圾收集。例如,参数可包括存储块的有效页面计数(VPC)和存储块的熵。也就是说,在考虑到存储块的VPC和熵来选择存储块之中的源存储块之后,将源存储块中的有效数据复制并存储到目标存储块中。例如,目标存储块可包括空存储块、开放存储块或空闲存储块,其中未执行对包括在每个存储块中的所有页面的数据编程。然后,对源存储块执行擦除操作。因此,执行将源存储块生成为空存储块、开放存储块或空闲存储块的垃圾收集操作。如上所述,当执行与从主机102接收的命令相对应的命令操作时,执行更新与编程操作相对应的用户数据的映射数据的操作。特别地,当执行与写入命令相对应的编程操作时,执行更新与编程操作相对应的用户数据的映射数据的操作。此时,根据各个存储块中的映射更新量来确定存储器装置150的存储块中的熵。以下,将参照图5至图7详细描述根据实施例的存储器***中的数据处理操作。
首先,参照图5,控制器130执行与从主机102接收的命令相对应的命令操作,例如与写入命令相对应的编程操作。此时,控制器130将与写入命令相对应的用户数据写入并存储在存储器装置150的存储块552、554、562、564、572、574、582和584中。此外,对应于对存储块552、554、562、564、572、574、582和584的编程操作,控制器130生成并更新用户数据的元数据,并将元数据写入并存储在存储器装置150的存储块552、554、562、564、572、574、582和584中。
控制器130生成并更新指示用户数据被存储在存储器装置150的存储块552、554、562、564、572、574、582和584中的页面中包含的信息。例如,信息包括第一映射数据和第二映射数据。也就是说,控制器130生成并更新第一映射数据的逻辑段,即L2P段,和第二映射数据的物理段,即P2L段。然后,控制器130通过执行映射刷新操作,将L2P段和P2L段存储在存储器装置150的存储块552、554、562、564、572、574、582和584中包含的页面中。
例如,控制器130将与从主机102接收的写入命令相对应的用户数据缓存并缓冲在包括在控制器130的存储器144中的第一缓冲器510中。也就是说,控制器130将用户数据的数据段512存储在作为数据缓冲器/高速缓冲存储器的第一缓冲器510中。然后,控制器130将存储在第一缓冲器510中的数据段512写入并存储在存储器装置150的存储块552、554、562、564、572、574、582和584中包含的页面中。
当与从主机102接收的写入命令相对应的用户数据的数据段512被写入并存储在存储器装置150的存储块552、554、562、564、572、574、582和584中包含的页面中时,控制器130生成第一映射数据和第二映射数据,并将第一映射数据和第二映射数据存储在控制器130的存储器144中包含的第二缓冲器520中。即,控制器130将用户数据的第一映射数据的L2P段522和用户数据的第二映射数据的P2L段524存储在作为映射缓冲器/高速缓冲存储器的第二缓冲器520中。在控制器130的存储器144中的第二缓冲器520中,如上所述,可存储有第一映射数据的L2P段522和第二映射数据的P2L段524,或者可存储有第一映射数据的L2P段522的映射列表和第二映射数据的P2L段524的映射列表。控制器130将存储在第二缓冲器520中的第一映射数据的L2P段522和第二映射数据的P2L段524分别写入并存储在存储器装置150的存储块552、554、562、564、572、574、582和584中包含的页面中。
另外,控制器130将与从主机102接收的命令相对应的数据的映射段加载在第二缓冲器520中。例如,控制器130将与读取命令相对应的用户数据的第一映射数据的L2P段522和第二映射数据的P2L段524加载在第二缓冲器520中,并检查L2P段522和P2L段524。之后,控制器130读取存储在存储器装置150的存储块552、554、562、564、572、574、582和584之中的对应存储块中包含的页面中的用户数据,将读取的用户数据的数据段512存储在第一缓冲器510中,并将数据段512提供给主机102。
当执行擦除操作或诸如例如垃圾收集操作或损耗均衡操作的在包括在存储器装置150中的存储块之中复制数据或交换数据的操作的后台操作时,控制器130将对应的用户数据的数据段512存储在第一缓冲器510中,并将与用户数据相对应的映射数据的映射段522和映射段524存储在第二缓冲器520中,从而执行擦除操作、垃圾收集操作或损耗均衡操作。
参照图6,存储器装置150包括多个存储器管芯,多个存储器管芯包括存储器管芯0610、存储器管芯1 630、存储器管芯2 650和存储器管芯3 670。存储器管芯610、630、650和670中的每一个包括多个平面(plane)。例如,存储器管芯0 610包括平面0 612、平面1 616、平面2 620和平面3 624。存储器管芯1 630包括平面0 632、平面1 636、平面2 640和平面3644。存储器管芯2 650包括平面0 652、平面1 656、平面2 660和平面3 664。存储器管芯3670包括平面0 672、平面1 676、平面2 680和平面3 684。包括在存储器装置150中的存储器管芯610、630、650和670中的各个平面612、616、620、624、632、636、640、644、652、656、660、664、672、676、680和684分别包括多个存储块614、618、622、626、634、638、642、646、654、658、662、666、674、678、682和686。例如,每个平面包括N个块Block0、Block 1……BlockN-1,每个块包括多个页面,例如,如上面参照图2所述,每个块包括2M个页面。存储器装置150的多个存储器管芯联接到相同通道。例如,存储器管芯0 610和存储器管芯2 650通过通道0602联接,存储器管芯1 630和存储器管芯3 670通过通道1 604联接。
如上所述,包括在存储器装置150中的多个存储块552、554、562、564、572、574、582和584包括多个页面。根据本公开的实施例的存储器***中的控制器130执行与从主机102接收的写入命令相对应的编程操作。也就是说,控制器130将与写入命令相对应的用户数据写入并存储在存储器装置150的存储块552、554、562、564、572、574、582和584中包含的页面中。此外,当从主机102接收到针对存储在存储器装置150的存储块552、554、562、564、572、574、582和584中的数据的写入命令时,控制器130再次执行编程操作,即,更新编程操作。因此,控制器130将与从主机102接收的写入命令相对应的用户数据写入并存储在存储器装置150的相同存储块的其它页面或其它存储块的页面中。也就是说,控制器130将存储在存储器装置150的存储块552、554、562、564、572、574、582和584中的数据写入并存储在存储器装置150的相同存储块的其它页面或其它存储块的页面中。
与这样的更新编程操作相对应,控制器130检查存储器装置150的存储块552、554、562、564、572、574、582和584的有效页面,并且将指示存储块552、554、562、564、572、574、582和584中的有效页面的数量的VPC记录在列表中。特别地,控制器130通过指示存储器装置150的存储块552、554、562、564、572、574、582和584的索引(index)将各个存储块552、554、562、564、572、574、582和584的VPC记录在列表中,并将该列表存储在控制器130的存储器144中。然后,考虑到记录在列表中的存储块552、554、562、564、572、574、582和584的VPC,控制器130对存储器装置150的存储块552、554、562、564、572、574、582和584执行例如垃圾收集操作的后台操作。
此外,与上述更新编程操作相对应,控制器130检查存储器装置150的存储块552、554、562、564、572、574、582和584的映射更新量,并且将对应于存储块552、554、562、564、572、574、582和584中的映射更新量的熵记录在列表中。特别地,控制器130通过指示存储器装置150的存储块552、554、562、564、572、574、582和584的索引将各个存储块552、554、562、564、572、574、582和584的熵记录在列表中,并将该列表存储在控制器130的存储器144中。然后,考虑到记录在列表中的存储块552、554、562、564、572、574、582和584的熵,控制器130对存储器装置150的存储块552、554、562、564、572、574、582和584执行例如垃圾收集操作的后台操作。例如,当在存储器装置150的存储块552、554、562、564、572、574、582和584中执行编程操作,特别是与从主机102接收的写入命令相对应的更新编程操作时,控制器130更新存储器装置150的存储块552、554、562、564、572、574、582和584的映射数据。然后,控制器130检查在各个存储块552、554、562、564、572、574、582和584中更新的映射数据的量。例如,控制器130检查在各个存储块552、554、562、564、572、574、582和584中更新的映射数据的映射段的数量。随后,控制器130将各个存储块552、554、562、564、572、574、582和584的与更新的映射数据的映射段的数量相对应的熵记录在列表中。各个存储块552、554、562、564、572、574、582和584的熵可记录在记录各个存储块552、554、562、564、572、574、582和584中的擦除计数的字段的可选位中,然后可存储在存储器装置150的可选存储块中。例如,擦除计数可存储在13位中,熵可存储在3位中。
考虑到存储器装置150的存储块552、554、562、564、572、574、582和584中的VPC和熵,控制器130在存储器装置150的存储块552、554、562、564、572、574、582和584中执行例如垃圾收集操作的数据复制操作。此时,考虑到记录在列表中的VPC和熵,控制器130在存储块552、554、562、564、572、574、582和584中选择源存储块。然后,控制器130将源存储块的有效数据复制到目标存储块,对源存储块执行擦除操作,从而将源存储块生成为空存储块、开放存储块或空闲存储块。下面,将参照图7详细描述对根据实施例的存储器***中的存储器装置150的存储块执行垃圾收集操作。
参照图7,如上所述,控制器130执行与从主机102接收的命令相对应的命令操作,例如与写入命令相对应的编程操作。此时,控制器130将与写入命令相对应的用户数据存储在控制器130的存储器144中包含的缓冲器中,并将存储在缓冲器中的用户数据写入并存储在存储器装置150中包含的多个存储块552、554、562、564、572、574、582和584中。此外,对应于对存储块552、554、562、564、572、574、582和584的编程操作,控制器130生成并更新用户数据的映射数据,并将映射数据写入并存储在存储器装置150的存储块552、554、562、564、572、574、582和584中。
如上所述,包括在存储器装置150中的多个存储块552、554、562、564、572、574、582和584包括多个页面。在本公开的实施例中,当执行存储在存储器装置150的存储块552、554、562、564、572、574、582和584中的数据的更新编程时,控制器130检查有效页面的数量和更新的映射数据的量。例如,控制器130检查存储块552、554、562、564、572、574、582和584中的更新的映射数据的映射段的数量。然后,控制器130将指示存储块552、554、562、564、572、574、582和584中的有效页面的数量的VPC和指示存储块552、554、562、564、572、574、582和584中的更新的映射数据的量的熵记录在列表中。特别地,控制器130通过指示存储器装置150的存储块552、554、562、564、572、574、582和584的索引将存储块552、554、562、564、572、574、582和584的VPC和熵记录在列表中,并将该列表存储在控制器130的存储器144中。控制器130考虑记录在列表中的存储块552、554、562、564、572、574、582和584的VPC和熵来执行垃圾收集。也就是说,控制器130考虑记录在列表中的存储块552、554、562、564、572、574、582和584的VPC和熵来在存储块552、554、562、564、572、574、582和584之中选择源存储块。然后,控制器130将源存储块的有效数据复制到目标存储块,对源存储块执行擦除操作,从而将源存储块生成为空存储块、开放存储块或空闲存储块。在下文中,将通过使用存储器装置150的存储块0 552、存储块1 554、存储块2 562、存储块3 564、存储块4 572、存储块5574、存储块6 582、存储块7 584是封闭存储块的示例来对本公开的实施例中的数据处理操作进行详细描述。
详细地,控制器130检查在包括在存储器装置150中的多个存储块之中的封闭存储块中的有效页面。例如,控制器130检查存储块0 552、存储块1 554、存储块2 562、存储块3564、存储块4 572、存储块5 574、存储块6 582和存储块7 584中的有效页面。然后,控制器130生成列表700,在列表700中通过指示存储块0 552、存储块1 554、存储块2 562、存储块3564、存储块4 572、存储块5 574、存储块6 582和存储块7 584的索引702来记录存储块0552、存储块1 554、存储块2 562、存储块3 564、存储块4 572、存储块5 574、存储块6 582和存储块7 584的VPC 704。之后,控制器130将列表700存储在控制器130的存储器144中包含的第二缓冲器520中。其中记录各个存储块552、554、562、564、572、574、582和584的VPC 704的列表700可通过包括在元数据中而被存储在存储器装置150的可选存储块中。
例如,在列表700中,将作为存储块0 552的VPC 704的VPC0记录为对应于作为存储块0 552的索引702的“0”。将作为存储块1 554的VPC 704的VPC1记录为对应于作为存储块1554的索引702的“1”。将作为存储块2 562的VPC 704的VPC2记录为对应于作为存储块2 562的索引702的“2”。将作为存储块3 564的VPC 704的VPC3记录为对应于作为存储块3 564的索引702的“3”。将作为存储块4 572的VPC 704的VPC4记录为对应于作为存储块4 572的索引702的“4”。将作为存储块5 574的VPC 704的VPC5记录为对应于作为存储块5 574的索引702的“5”。将作为存储块6 582的VPC 704的VPC6记录为对应于作为存储块6 582的索引702的“6”。将作为存储块7 584的VPC 704的VPC7记录为对应于作为存储块7 584的索引702的“7”。
此外,控制器130在包括在存储器装置150中的多个存储块之中的封闭存储块中检查与更新编程操作相对应的各个存储块552、554、562、564、572、574、582和584的映射更新量。例如,控制器130在存储块0 552、存储块1 554、存储块2 562、存储块3 564、存储块4572、存储块5 574、存储块6 582和存储块7 584中检查与更新编程操作相对应的各个存储块552、554、562、564、572、574、582和584的映射更新量。即,如上所述,当从主机102接收到针对存储在各个存储块552、554、562、564、572、574、582和584中的数据的写入命令时,控制器130将与写入命令相对应的用户数据写入并存储在存储器装置150的存储块552、554、562、564、572、574、582和584中。也就是说,控制器130执行更新编程操作。与这种更新编程操作相对应,控制器130更新各个存储块552、554、562、564、572、574、582和584的映射数据。
此时,控制器130检查各个存储块552、554、562、564、572、574、582和584更新的映射数据的量。也就是说,控制器130检查更新的映射数据的映射段的数量。然后,控制器130通过指示存储块0552、存储块1 554、存储块2 562、存储块3 564、存储块4 572、存储块5574、存储块6 582和存储块7 584的索引702,将指示更新的映射段的数量的各个存储块552、554、562、564、572、574、582和584的熵706记录在列表700中。在生成记录各个存储块552、554、562、564、572、574、582和584的熵706的列表700之后,控制器130将列表700存储在控制器130的存储器144中包含的第二缓冲器520中。记录各个存储块552、554、562、564、572、574、582和584的熵706的列表700可通过包括在元数据中而被存储在存储器装置150的可选存储块中。
例如,在列表700中,将作为存储块0 552的熵706的E0记录为对应于作为存储块0552的索引702的“0”。将作为存储块1 554的熵706的E1记录为对应于作为存储块1 554的索引702的“1”。将作为存储块2 562的熵706的E2记录为对应于作为存储块2 562的索引702的“2”。将作为存储块3 564的熵706的E3记录为对应于作为存储块3 564的索引702的“3”。将作为存储块4 572的熵706的E4记录为对应于作为存储块4 572的索引702的“4”。将作为存储块5 574的熵706的E5记录为对应于作为存储块5 574的索引702的“5”。将作为存储块6582的熵706的E6记录为对应于作为存储块6 582的索引702的“6”。将作为存储块7 584的熵706的E7记录为对应于作为存储块7 584的索引702的“7”。通过根据更新的映射数据的映射段的数量设置N个熵等级,可将各个存储块552、554、562、564、572、574、582和584的熵706记录在列表700中。例如,在设置包括等级0至等级7的8个熵等级之后,可将根据各个存储块552、554、562、564、572、574、582和584的更新的映射段的数量的相应的熵等级作为熵706记录在列表700中。例如,8个熵等级包括当更新的映射数据的映射段的数量等于或小于32时的等级0、当更新的映射数据的映射段的数量为33至128时的等级1、当更新的映射数据的映射段的数量为129至512时的等级2……当更新的映射数据的映射段的数量等于或大于4000时的等级7。
控制器130组合记录在列表700中的各个存储块552、554、562、564、572、574、582和584的VPC 704和熵706,并生成用于对存储器装置150的存储块552、554、562、564、572、574、582和584执行例如垃圾收集操作的后台操作的参数708。然后,控制器130将各个存储块552、554、562、564、572、574、582和584的参数708记录在列表700中。在生成记录各个存储块552、554、562、564、572、574、582和584的参数708的列表700之后,控制器130将列表700存储在控制器130的存储器144中包含的第二缓冲器520中。记录各个存储块552、554、562、564、572、574、582和584的参数708的列表700可通过包括在元数据中而被存储在存储器装置150的可选存储块中。
例如,控制器130通过组合作为存储块0 552的VPC 704的“VPC0”和作为存储块0552的熵706的“E0”来生成作为存储块0 552的参数708的“P0”,并与作为存储块0 552的索引702的“0”相对应地将作为存储块0 552的参数708的“P0”记录在列表700中。控制器130通过组合作为存储块1 554的VPC 704的“VPC1”和作为存储块1 554的熵706的“E1”来生成作为存储块1 554的参数708的“P1”,并与作为存储块1 554的索引702的“1”相对应地将作为存储块1 554的参数708的“P1”记录在列表700中。控制器130通过组合作为存储块2 562的VPC 704的“VPC2”和作为存储块2 562的熵706的“E2”来生成作为存储块2 562的参数708的“P2”,并与作为存储块2 562的索引702的“2”相对应地将作为存储块2 562的参数708的“P2”记录在列表700中。控制器130通过组合作为存储块3 564的VPC 704的“VPC3”和作为存储块3 564的熵706的“E3”来生成作为存储块3 564的参数708的“P3”,并与作为存储块3564的索引702的“3”相对应地将作为存储块3 564的参数708的“P3”记录在列表700中。同样,控制器130通过组合作为存储块4 572的VPC 704的“VPC4”和作为存储块4 572的熵706的“E4”来生成作为存储块4 572的参数708的“P4”,并与作为存储块4 572的索引702的“4”相对应地将作为存储块4 572的参数708的“P4”记录在列表700中。控制器130通过组合作为存储块5 574的VPC 704的“VPC5”和作为存储块5 574的熵706的“E5”来生成作为存储块5574的参数708的“P5”,并与作为存储块5 574的索引702的“5”相对应地将作为存储块5 574的参数708的“P5”记录在列表700中。控制器130通过组合作为存储块6 582的VPC 704的“VPC6”和作为存储块6 582的熵706的“E6”来生成作为存储块6 582的参数708的“P6”,并与作为存储块6 582的索引702的“1”相对应地将作为存储块6 582的参数708的“P6”记录在列表700中。控制器130通过组合作为存储块7 584的VPC 704的“VPC7”和作为存储块7 584的熵706的“E7”来生成作为存储块7 584的参数708的“P7”,并与作为存储块7 584的索引702的“7”相对应地将作为存储块7 584的参数708的“P7”记录在列表700中。
控制器130通过使用存储在第二缓冲器520中的列表700对存储器装置150的存储块552、554、562、564、572、574、582和584执行例如垃圾收集操作的后台操作。
例如,控制器130通过使用记录在列表700中的各个存储块552、554、562、564、572、574、582和584的参数708来对存储块552、554、562、564、572、574、582和584执行垃圾收集操作。也就是说,控制器130在存储块552、554、562、564、572、574、582和584之中选择源存储块,并且将存储在源存储块中的有效数据复制并存储到包括在存储器装置150中的可选存储块中。例如,控制器130将存储在源存储块中的有效数据复制并存储到作为目标存储块的空存储块、开放存储块或空闲存储块中。控制器130对源存储块执行擦除操作。
特别地,控制器130通过记录在列表700中的各个存储块552、554、562、564、572、574、582和584的VPC 704预测执行垃圾收集操作时所需的时间。在选择各个存储块552、554、562、564、572、574、582和584作为源存储块之后,控制器130预测将存储在源存储块中的有效数据复制并存储到目标存储块中所需的时间。此外,控制器130通过记录在列表700中的各个存储块552、554、562、564、572、574、582和584的熵706预测执行垃圾收集操作时所需的时间。此外,类似于上述描述,控制器130预测在选择各个存储块552、554、562、564、572、574、582和584作为源存储块并执行将有效数据复制到目标存储块的操作之后,对源存储块和目标存储块执行映射更新操作,即,对存储器装置150的存储块执行映射更新操作时所需的时间。
也就是说,控制器130通过使用由各个存储块552、554、562、564、572、574、582和584的VPC 704和熵706生成的各个存储块552、554、562、564、572、574、582和584的参数708来预测对各个存储块552、554、562、564、572、574、582和584执行垃圾收集操作和映射更新操作所需的时间。然后,控制器130通过考虑所预测的所需时间来在各个存储块552、554、562、564、572、574、582和584中选择源存储块。例如,为了最小化存储器装置150执行垃圾收集操作所需的时间,控制器130在存储器装置150的存储块552、554、562、564、572、574、582和584中从具有最小VPC的存储块开始顺序地选择源存储块。然后,控制器130将源存储块的有效数据复制并存储到目标存储块中。此外,为了最小化执行映射更新操作所需的时间,控制器130在存储器装置150的存储块552、554、562、564、572、574、582和584中从具有最小熵的存储块开始顺序地选择源存储块,然后将源存储块的有效数据复制并存储到目标存储块中。
因此,在通过检查包括在存储器装置150中的存储块的有效页面和熵来预测对包括在存储器装置150中的存储块执行作为后台操作的例如存储块中的垃圾收集操作的数据复制操作时所需的时间之后,通过从具有最小所需时间的存储块开始选择源存储块来执行垃圾收集操作。因此,当快速且有效地执行对存储器装置150的垃圾收集操作时,可最大化包括在存储器装置150中的存储块的利用效率。以下,将参照图8详细描述根据实施例的在存储器***中处理数据的操作。
图8是示出根据实施例的用于在存储器***中处理数据的操作进程的流程图。
参照图8,在步骤810中,存储器***执行与从主机102接收的命令相对应的命令操作。例如,存储器***执行与从主机102接收的写入命令相对应的编程操作。具体地,当从主机102接收到针对存储在存储器装置150的存储块中的数据的写入命令时,存储器***将与写入命令相对应的数据编程并存储在存储器装置150的存储块之中的其它可选存储块中,即,执行更新编程操作。
在步骤820中,与存储器装置150的存储块中的更新编程操作相对应,更新存储器装置150的存储块的映射数据。
然后,在步骤830中,检查存储器装置150的存储块的VPC和熵。也就是说,检查包括在存储器装置150中的封闭存储块的有效页面的数量和存储块中的更新的映射数据的映射段的数量。
在步骤840中,作为对存储器装置150的存储块的后台操作,在存储块中执行例如垃圾收集操作的数据复制操作。即,考虑到存储器装置150的存储块的VPC和熵,在存储器装置150的存储块之中选择源存储块。然后,在将源存储块的有效数据复制并存储到目标存储块中之后,执行对源存储块的擦除操作。也就是说,将源存储块生成为空存储块、开放存储块或空闲存储块。
由于上面参照图5至图7详细描述了检查存储器装置150的存储块的VPC和熵,即检查存储器装置150的封闭存储块中的有效页面的数量和更新的映射数据的映射段的数量,执行考虑到以这种方式检查的VPC和熵来在存储器装置150的存储块之中选择源存储块的操作,以及对存储器装置150的存储块执行垃圾收集操作,因此这里将省略对其的进一步描述。在下文中,将参照图9至图14,对采用根据本发明的各个实施例的存储器***的电子装置进行详细描述。
图9是示出包括根据本发明的实施例的存储器***的存储卡***6100的图。
参照图9,存储卡***6100包括存储器控制器6120、存储器装置6130和连接器6110。
存储器控制器6120与存储器装置6130可操作地连接。存储器控制器6120可访问存储器装置6130以控制存储器装置6130的操作。例如,存储器控制器6120可控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120还被配置为经由连接器6110提供存储器装置6130和主机之间的接口。存储器控制器可驱动用于控制存储器装置6130的固件。
存储器控制器6120可对应于上面参照图1描述的存储器***110中的控制器130,并且存储器装置6130可对应于上面参照图1描述的存储器***110中的存储器装置150。
因此,存储器控制器6120可包括诸如随机存取存储器(RAM)、处理单元、主机接口、存储器接口和错误校正单元的组件。
存储器控制器6120可通过连接器6110与例如上面参照图1描述的主机102的外部装置通信。例如,如上面参照图1所述,存储器控制器6120可被配置为通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、***部件互连(PCI)、PCI Express(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机***接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪速存储器(UFS)、WI-FI以及蓝牙。因此,根据实施例的存储器***和数据处理***可应用于有线/无线电子设备,特别是,移动电子设备。
存储器装置6130可以是非易失性存储器NVM。例如,存储器装置6130可以是诸如可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、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是示意性地示出包括根据本发明的实施例的存储器***的数据处理***6200的示例的图。
参照图10,数据处理***6200可包括通过至少一个非易失性存储器NVM来实施的存储器装置6230以及控制存储器装置6230的存储器控制器6220。如上面参照图1所述的,图10所示的数据处理***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处理的数据临时存储在RAM6222中。当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是示出根据本发明的实施例的采用存储器***的固态驱动器(SSD)6300的图。
参照图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和诸如非易失性存储器接口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的接口功能。
在实施例中,在包括多个SSD 6300的***中提供独立磁盘冗余阵列(RAID)***。每个SSD 6300可采用上面参照图1描述的存储器***110。在RAID***中,可包括多个SSD6300和用于控制多个SSD6300的RAID控制器。当通过从主机6310接收写入命令来执行编程操作时,RAID控制器可响应于从主机6310接收的写入命令的RAID等级信息在多个RAID等级,即多个SSD 6300中选择至少一个存储器***,即至少一个SSD 6300,并且可将与写入命令相对应的数据输出到所选择的SSD 6300中。此外,当通过从主机6310接收读取命令来执行读取操作时,RAID控制器可响应于从主机6310接收的读取命令的RAID等级信息在多个RAID等级之中,即多个SSD 6300之中选择至少一个存储器***,即至少一个SSD 6300,并且可将从所选择的SSD 6300输出的数据提供给主机6310。
图12是示出根据本发明的实施例的包括存储器***的数据处理***6400的图。图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接口的并行接口,或者可以是诸如超高速(UHS)-I/UHS-II和通用闪速存储(UFS)接口的串行接口。
图13是示出具有根据本发明的实施例的存储器***的通用闪速存储(UFS)***6500的图。
参照图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是示出具有根据本发明的实施例的存储器***的用户***6600的图。
参照图14,用户***6600可包括应用处理器6630、存储器模块6620、网络模块6640、存储模块6650和用户接口6610。
应用处理器6630可驱动包括在用户***6600中的组件和操作***(OS)。例如,应用处理器6630可包括用于控制包括在用户***6600中的组件的控制器、接口、图形引擎等。应用处理器6630可作为片上***(SoC)提供。
存储器模块6620可作为用户***6600的主存储器、工作存储器、缓冲存储器或高速缓冲存储器操作。存储器模块6620可包括诸如动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率(DDR)SDRAM、DDR2SDRAM、DDR3SDRAM、低功率双倍数据速率(LPDDR)SDRAM、LPDDR2SDRAM和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可存储诸如从应用处理器6630接收的数据的数据,并将存储在其中的数据传输到应用处理器6630。存储模块6650可由诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪速存储器、NOR闪速存储器以及三维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.根据权利要求3所述的存储器***,其中所述控制器在所述存储块之中从具有最小熵的存储块开始顺序地选择所述源存储块。
5.根据权利要求4所述的存储器***,其中当从主机接收到针对存储在所述存储块中的所述用户数据的写入命令时,所述控制器执行对存储在所述存储块中的所述用户数据的更新编程操作。
6.根据权利要求5所述的存储器***,其中所述控制器更新与所述存储块中的所述更新编程操作相对应的所述存储块的映射数据。
7.根据权利要求2所述的存储器***,其中所述控制器确定与所存储的用户数据相对应的所述存储块中的有效页面,并选择与所述有效页面的数量相对应的所述源存储块。
8.根据权利要求7所述的存储器***,其中所述控制器在所述存储块之中从具有最小数量的有效页面的存储块开始顺序地选择所述源存储块。
9.根据权利要求7所述的存储器***,其中所述控制器将所述存储块的从组合所述有效页面的数量和熵而得出的参数、所述有效页面的数量和熵记录在列表中,并将所述列表存储在所述存储块中。
10.根据权利要求1所述的存储器***,其中所述控制器在所述存储块之中选择目标存储块,并将所述源存储块中的有效数据复制并存储到所述目标存储块中。
11.一种用于操作存储器***的方法,其包括:
将与写入命令相对应的用户数据存储在存储器装置中的多个存储块中,所述存储块中的每个包括多个页面;
将与所存储的用户数据相对应的映射数据存储在所述存储块中;
确定熵,所述熵指示与所存储的用户数据相对应的所述存储块中更新的所述映射数据的量;以及
在所述存储块之中选择与所述熵相对应的源存储块。
12.根据权利要求11所述的方法,其进一步包括:
更新与所存储的用户数据相对应的所述映射数据,
其中所述熵的确定包括确定所更新的映射数据的映射段的数量。
13.根据权利要求12所述的方法,其中所述熵对应于所更新的映射数据的映射段的数量。
14.根据权利要求13所述的方法,其中所述选择在所述存储块之中从具有最小熵的存储块开始顺序地选择所述源存储块。
15.根据权利要求14所述的方法,其进一步包括:
当从主机接收到针对存储在所述存储块中的所述用户数据的写入命令时,执行对存储在所述存储块中的所述用户数据的更新编程操作。
16.根据权利要求15所述的方法,其中所述映射数据的更新包括更新与所述存储块中的所述更新编程操作相对应的所述存储块的映射数据。
17.根据权利要求12所述的方法,
其中所述熵的确定包括确定与所存储的用户数据相对应的所述存储块中的有效页面,并且
其中所述选择选择与所述有效页面的数量相对应的所述源存储块。
18.根据权利要求17所述的方法,其中所述源存储块的选择包括在所述存储块之中从具有最小数量的有效页面的存储块开始顺序地选择所述源存储块。
19.根据权利要求17所述的方法,其进一步包括:
将所述存储块的从组合所述有效页面的数量和所述熵而得出的参数记录在列表中;以及
将所述列表存储在所述存储块中。
20.根据权利要求11所述的方法,进一步包括:
在所述存储块之中选择目标存储块;以及
将所述源存储块中的有效数据复制并存储到所述目标存储块中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2016-0089383 | 2016-07-14 | ||
KR1020160089383A KR102475798B1 (ko) | 2016-07-14 | 2016-07-14 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107622018A CN107622018A (zh) | 2018-01-23 |
CN107622018B true CN107622018B (zh) | 2020-08-04 |
Family
ID=60941169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710273616.XA Active CN107622018B (zh) | 2016-07-14 | 2017-04-25 | 存储器***及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10296244B2 (zh) |
KR (1) | KR102475798B1 (zh) |
CN (1) | CN107622018B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190106008A (ko) * | 2018-03-07 | 2019-09-18 | 에스케이하이닉스 주식회사 | 메모리 시스템, 그것의 동작 방법 및 전자 장치 |
KR20200006829A (ko) * | 2018-07-11 | 2020-01-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR20200038812A (ko) * | 2018-10-04 | 2020-04-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20200122685A (ko) * | 2019-04-18 | 2020-10-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 내에서 서로 다른 종류의 데이터를 처리하기 위한 장치 및 방법 |
US11082168B1 (en) | 2020-03-19 | 2021-08-03 | Western Digital Technologies, Inc. | Entropy driven endurance for normalized quality of service |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567221A (zh) * | 2010-12-29 | 2012-07-11 | 群联电子股份有限公司 | 数据管理方法、存储器控制器与存储器储存装置 |
US20130166818A1 (en) * | 2011-12-21 | 2013-06-27 | Sandisk Technologies Inc. | Memory logical defragmentation during garbage collection |
US20140237286A1 (en) * | 2013-02-20 | 2014-08-21 | Samsung Electronics Co., Ltd. | Memory system performing address mapping according to bad page map |
CN104268095A (zh) * | 2014-09-24 | 2015-01-07 | 上海新储集成电路有限公司 | 一种存储器及基于该存储器进行数据读/写操作的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100789406B1 (ko) | 2006-11-03 | 2007-12-28 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법 |
US8626986B2 (en) | 2010-06-30 | 2014-01-07 | Sandisk Technologies Inc. | Pre-emptive garbage collection of memory blocks |
KR101790165B1 (ko) * | 2011-08-09 | 2017-11-20 | 삼성전자 주식회사 | 메모리 시스템 및 그것의 메타 데이터 관리 방법 |
KR101826047B1 (ko) * | 2011-09-28 | 2018-02-07 | 삼성전자주식회사 | 저장 장치 및 그 구동 방법 |
US9323667B2 (en) | 2012-04-12 | 2016-04-26 | Violin Memory Inc. | System and method for managing trim operations in a flash memory system using mapping tables and block status tables |
KR102147628B1 (ko) | 2013-01-21 | 2020-08-26 | 삼성전자 주식회사 | 메모리 시스템 |
-
2016
- 2016-07-14 KR KR1020160089383A patent/KR102475798B1/ko active IP Right Grant
-
2017
- 2017-02-22 US US15/438,878 patent/US10296244B2/en active Active
- 2017-04-25 CN CN201710273616.XA patent/CN107622018B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567221A (zh) * | 2010-12-29 | 2012-07-11 | 群联电子股份有限公司 | 数据管理方法、存储器控制器与存储器储存装置 |
US20130166818A1 (en) * | 2011-12-21 | 2013-06-27 | Sandisk Technologies Inc. | Memory logical defragmentation during garbage collection |
US20140237286A1 (en) * | 2013-02-20 | 2014-08-21 | Samsung Electronics Co., Ltd. | Memory system performing address mapping according to bad page map |
CN104268095A (zh) * | 2014-09-24 | 2015-01-07 | 上海新储集成电路有限公司 | 一种存储器及基于该存储器进行数据读/写操作的方法 |
Non-Patent Citations (1)
Title |
---|
针对组相联缓存的无效缓存路访问混合过滤机制研究;范灵俊等;《计算机学报》;20130430;第799-807页 * |
Also Published As
Publication number | Publication date |
---|---|
KR102475798B1 (ko) | 2022-12-12 |
KR20180008966A (ko) | 2018-01-25 |
CN107622018A (zh) | 2018-01-23 |
US10296244B2 (en) | 2019-05-21 |
US20180018112A1 (en) | 2018-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107632777B (zh) | 存储器***及其操作方法 | |
CN110399311B (zh) | 存储器***及该存储器***的操作方法 | |
CN108121669B (zh) | 存储器***及其操作方法 | |
CN107766257B (zh) | 存储器***及其操作方法 | |
CN107643985B (zh) | 存储器***及其操作方法 | |
CN107797882B (zh) | 存储器***及其操作方法 | |
CN107562649B (zh) | 存储器***及其操作方法 | |
CN107346213B (zh) | 存储器***及其操作方法 | |
CN110858180B (zh) | 数据处理***及其操作方法 | |
CN110765035B (zh) | 存储器***及其操作方法 | |
CN109388594B (zh) | 存储器***及其操作方法 | |
CN109947358B (zh) | 存储器***及其操作方法 | |
CN107589906B (zh) | 存储器***及其操作方法 | |
CN107450845B (zh) | 存储器***及其操作方法 | |
CN107346214B (zh) | 存储器***及其操作方法 | |
KR102468751B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN108108308B (zh) | 存储器***及其操作方法 | |
CN109032501B (zh) | 存储器***及其操作方法 | |
US20180012666A1 (en) | Memory system and operating method thereof | |
CN108694138B (zh) | 控制器及其操作方法 | |
CN109697171B (zh) | 控制器及其操作方法 | |
CN107622018B (zh) | 存储器***及其操作方法 | |
CN107562653B (zh) | 存储器***及其操作方法 | |
CN110825318A (zh) | 控制器及其操作方法 | |
CN110045914B (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 |