CN112667146A - 有效管理存储块的存储器系统及其操作方法 - Google Patents
有效管理存储块的存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN112667146A CN112667146A CN202010647707.7A CN202010647707A CN112667146A CN 112667146 A CN112667146 A CN 112667146A CN 202010647707 A CN202010647707 A CN 202010647707A CN 112667146 A CN112667146 A CN 112667146A
- Authority
- CN
- China
- Prior art keywords
- block
- blocks
- super
- memory
- source
- 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.)
- Withdrawn
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/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
- 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
- G06F12/0607—Interleaved addressing
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0626—Reducing size or complexity of 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/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/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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
Abstract
本公开涉及一种存储器系统,该存储器系统包括:非易失性存储器装置,包括多个存储块;以及控制器,适用于:根据特定条件将多个存储块分组到多个超级块中,多个超级块中的每一个包括两个或更多个存储块;对多个超级块之中的混合超级块进行分类,混合超级块包括源块和普通块,源块为读取计数等于或大于参考值的存储块,普通块为读取计数小于参考值的存储块;根据特定条件将两个或更多个混合超级块中包括的两个或更多个源块收集并重新分组到一个或多个源超级块中;并且将一个或多个源超级块的有效数据移动到一个或多个普通超级块,普通超级块中的每一个仅包括普通块。
Description
相关申请的交叉引用
本申请要求于2019年10月16日提交的申请号为10-2019-0128466的韩国专利申请的优先权,该韩国专利申请的公开内容通过引用全部并入本文。
技术领域
本公开的各个实施例总体上涉及一种存储器系统,更特别地,涉及一种能够有效地管理其中所包括的存储块的存储器系统及其操作方法。
背景技术
近来,计算机环境范例已经转变成使得计算机系统能够随时随地被访问的普适计算。因此,诸如移动电话、数码相机、笔记本计算机等的便携式电子装置的使用已经迅速增加。这种便携式电子装置各自使用或者包括使用或嵌入至少一个存储器装置的存储器系统,例如数据存储装置。数据存储装置可用作便携式电子装置的主存储装置或辅助存储装置。
在计算装置中,与硬盘不同,数据存储装置包括非易失性半导体存储器装置,其优点在于,由于其不具有机械驱动部件(例如,机械臂)而具有优异的稳定性和耐久性,并且具有较高的数据访问速度和低功耗。这种数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
本公开的各个实施例涉及存储器系统、数据处理系统以及用于操作该存储器系统和该数据处理系统的方法,其可以使存储器系统的复杂性和性能劣化最小化,使存储器装置的使用效率最大化,并且快速且稳定地利用存储器装置处理数据。
本公开的各个实施例涉及一种存储器系统及其操作方法,其中,在当根据特定条件将多个存储块分组到多个超级块中时,对其处理读取请求的存储块分布在两个或更多个超级块中的情况下,该存储器系统仅对来自多个超级块的对其处理读取请求的存储块进行分类,将该存储块重新分组到较小数量的超级块中,然后仅对该较小数量的超级块执行合并操作。
根据本公开的实施例,一种存储器系统可以包括:非易失性存储器装置,包括多个存储块;以及控制器,适用于:根据特定条件将多个存储块分组到多个超级块中,多个超级块中的每一个包括两个或更多个存储块;对多个超级块之中的混合超级块进行分类,混合超级块包括源块和普通块,源块为读取计数等于或大于参考值的存储块,普通块为读取计数小于参考值的存储块;根据特定条件将两个或更多个混合超级块中包括的两个或更多个源块收集并重新分组到一个或多个源超级块中;并且将一个或多个源超级块的有效数据移动到每个仅包括普通块的一个或多个普通超级块。
控制器可以收集两个或更多个混合超级块中包括的两个或更多个普通块并且可以根据特定条件来将其重新分组到一个或多个普通超级块中。
控制器可以检查多个和值,多个和值中的每一个通过对多个超级块的每一个中包括的存储块的读取计数进行求和而获得,可以在多个超级块之中选择与等于或大于特定值的和值相对应的超级块,并且可以根据所选择的超级块中包括的存储块的类型将所选择的超级块分类到混合超级块或源超级块中。
当在所选择的超级块中仅包括源块时,控制器可以将所选择的超级块分类到源超级块中,并且当所选择的超级块中包括源块和普通块时,可以将所选择的超级块分类到混合超级块中。
控制器可以根据读取计数来检查存储块中的每一个,并且可以根据检查结果对多个超级块之中的混合超级块进行分类。
控制器可以根据检查结果将多个超级块之中的仅包括源块的超级块分类到源超级块中,并且可以根据检查结果将多个超级块之中的混合了源块和普通块的超级块分类到混合超级块中。
当检查到在非易失性存储器装置中仅存在一个混合超级块预定时间时,控制器可以将一个混合超级块的有效数据移动到一个或多个普通超级块。
当两个或更多个混合超级块中包括的两个或更多个源块被收集预定时间但不满足特定条件时,控制器可以将两个或更多个混合超级块的每一个中存储的有效数据移动到一个或多个普通超级块。
控制器可以通过多个数据路径连接到非易失性存储器装置,并且特定条件可以包括:非易失性存储器装置中的两个或更多个存储块是否能够通过多个数据路径以交错方式输入和输出数据。
根据本发明的实施例,一种操作存储器系统的方法,该存储器系统包括非易失性存储器装置,该非易失性存储器装置包括多个存储块,该方法可以包括:根据特定条件将多个存储块分组到多个超级块中,多个超级块中的每一个包括两个或更多个存储块;对多个超级块之中的混合超级块进行分类,混合超级块包括源块和普通块,源块为读取计数等于或大于参考值的存储块,普通块为读取计数小于参考值的存储块;根据特定条件将两个或更多个混合超级块中包括的两个或更多个源块收集并重新分组到一个或多个源超级块中;以及将一个或多个源超级块的有效数据移动到每个仅包括普通块的一个或多个普通超级块。
该操作方法可以进一步包括:根据特定条件将两个或更多个混合超级块中包括的两个或更多个普通块收集并重新分组到一个或多个普通超级块中。
对混合超级块进行分类可以包括:检查多个和值,多个和值中的每一个通过对多个超级块的每一个中包括的存储块的读取计数进行求和而获得;在多个超级块之中选择与等于或大于特定值的和值相对应的超级块;以及根据所选择的超级块中包括的存储块的类型将所选择的超级块分类到混合超级块或源超级块中。
对所选择的超级块进行分类可以包括:当在所选择的超级块中仅包括源块时,将所选择的超级块分类到源超级块中;以及当在所选择的超级块中包括源块和普通块时,将所选择的超级块分类到混合超级块中。
对混合超级块进行分类可以包括:根据读取计数来检查存储块中的每一个;以及根据检查结果对多个超级块之中的混合超级块进行分类。
对混合超级块进行分类可以包括:根据检查结果将多个超级块之中的仅包括源块的超级块分类到源超级块中;以及根据检查结果将多个超级块之中的混合了源块和普通块的超级块分类到混合超级块中。
该操作方法可以进一步包括:当检查到在非易失性存储器装置中仅存在一个混合超级块预定时间而未将其重新分组到源超级块中时,将该一个混合超级块的有效数据移动到一个或多个普通超级块。
该操作方法可以进一步包括:当两个或更多个混合超级块中包括的两个或更多个源块被收集预定时间但不满足特定条件时,将两个或更多个混合超级块的每一个中存储的有效数据移动到一个或多个普通超级块。
多个数据路径可以连接到非易失性存储器装置,并且特定条件可以包括:非易失性存储器装置中的两个或更多个存储块是否能够通过多个数据路径以交错方式输入和输出数据。
本公开的这些和其他特征和优点不限于上述实施例,并且通过以下结合附图的详细描述,本公开所属领域的技术人员将清楚地理解本公开的这些和其他特征和优点。
附图说明
图1是示出根据实施例的包括存储器系统的数据处理系统的框图。
图2是示出根据实施例的包括存储器系统的数据处理系统的框图。
图3是示出根据实施例的存储器系统中的控制器的框图。
图4是示出根据实施例的存储器装置的内部配置的框图。
图5A和5B示出根据实施例的存储器系统的操作方法。
图6A和6B示出根据另一实施例的存储器系统的操作方法。
图7A和7B示出根据又一实施例的存储器系统的操作方法。
具体实施方式
以下参照附图更详细地描述本公开的各个示例。然而,可以以不同的方式实现本发明的方面和特征以形成包括任何公开的实施例的变型的其他实施例。因此,本发明不应被解释为限于本文所阐述的实施例。相反,提供所描述的实施例使得本公开是彻底且完整的,并且将向本发明所属领域的技术人员充分地传达本公开。在整个公开中,相同的附图标记在贯穿本公开的各个附图和示例表示相同的部件。注意的是,对“实施例”、“另一实施例”等的参考不一定仅指一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然术语“第一”、“第二”、“第三”等可在本文使用以识别各个元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与否则具有相同或相似的名称的另一元件区分开。因此,在不脱离本发明的精神和范围的情况下,在一个实例中的第一元件可以在另一实例中被称为第二或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征可能已经夸大了比例。当元件被称为连接或联接到另一元件时,应当理解的是,前者可直接连接或联接到后者,或者经由两者之间的一个或多个中间元件电连接或联接到后者。另外,还将理解的是,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制本发明。如本文使用的,除非上下文另有清楚地说明,否则单数形式也旨在包括复数形式,反之亦然。类似地,不定冠词“一”和“一个”表示一个或多个,除非从语言或上下文中可以清楚看出仅意指一个。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在而并不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意和全部组合。
除非另有定义,否则本文所使用的包括技术和科学术语的所有术语具有与本发明所属领域中普通技术人员鉴于本公开通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些的术语应当被解释为具有与其在本公开和相关技术的语境中的含义一致的含义,并且不以理想化或过于形式化的意义来解释,除非本文中明确地这样定义。
在下面的描述中,为了提供对本发明的透彻理解,阐述了大量具体细节。可在没有一些或全部这些具体细节的情况下实践本发明。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一实施例的其它特征或元件组合使用。
下面参照附图详细描述本公开的实施例,其中相同的附图标记指代相同的元件。
图1是示出根据实施例的包括存储器系统110的数据处理系统的框图。
例如,存储器系统110可以被安装在计算装置或移动装置上,然后与主机102互连地传输和接收数据。
参照图1,存储器系统110可以包括控制器130和存储器装置150。控制器130可以将由主机102请求并从存储器装置150接收的数据输出到主机102,或者将从主机102传送的数据存储在存储器装置150中。另外,控制器130可以在内部生成管理主机102的存储或输出数据的操作所需的数据,并且将生成的数据存储在存储器装置150中或输出到存储器装置150。存储器装置150可以包括多个存储器管芯,例如150A、150B、150C和150D。存储器管芯150A、150B、150C和150D可以分别包括多个存储块BLOCK<0:3>、BLOCK<10:13>、BLOCK<20:23>和BLOCK<30:33>。存储块BLOCK<0:3>、BLOCK<10:13>、BLOCK<20:23>和BLOCK<30:33>中的每一个可以包括多个页面,每个页面包括多个存储器单元。存储器装置150的内部配置的设计可以根据存储器装置150的特性、使用存储器系统110的目的或者主机102所请求的存储器系统110的规格而改变。
控制器130和存储器装置150可以通过多个数据路径彼此连接。存储器装置150中包括的存储器管芯150A、150B、150C和150D可以分别通过不同的数据路径连接到控制器130。参照图1,第一存储器管芯150A可以通过第一通道和第一通路CH1W1连接到控制器130,第二存储器管芯150B可以通过第一通道和第二通路CH1W2连接到控制器130。第三存储器管芯150C可以通过第二通道和第一通路CH2W1连接到控制器130,并且第四存储器管芯150D可以通过第二通道和第二通路CH2W2连接到控制器130。构成控制器130与存储器装置150之间的数据路径的通道和通路的数量可以根据存储器装置150中包括的存储器管芯的数量而变化。可以根据使用存储器系统110的目的或主机102所请求的存储器系统110的规格来设计将存储器管芯150A、150B、150C和150D连接到控制器130的通道和通路的数量。
控制器130可以包括超级块管理块1305和操作执行块1307。超级块管理块1305可以包括超级块分组电路1301、超级块分类电路1302和超级块重新分组电路1303。
如本公开中所使用的,术语“电路”可以指以下中的一个或多个:(a)纯硬件电路实施方案,诸如仅在模拟和/或数字电路中的实施方案,(b)电路与软件(和/或固件)的组合,诸如:(i)处理器的组合,或(ii)包括数字信号处理器的处理器、软件和存储器的一部分,其一起工作以使得诸如移动电话或服务器的设备执行各种功能,以及(c)诸如微处理器或微处理器的一部分的电路,它们使用软件或固件,即使软件或固件并非物理地存在。作为另一示例,术语“电路”可以指一个或多个处理器或处理器的一部分以及随附的软件和/或固件。术语“电路”可以指存储装置的集成电路。
具体地,控制器130可以根据“特定条件”将存储器装置150中包括的存储块BLOCK<0:3>、BLOCK<10:13>、BLOCK<20:23>和BLOCK<30:33>分组到多个超级块中。控制器130可以将多个超级块之中的、将读取计数等于或大于参考值的源块和读取计数小于参考值的普通块混合并分组于其中的超级块,分类为混合超级块。另外,控制器130可以将多个超级块之中的、仅将读取计数等于或大于参考值的源块分组于其中的超级块分类为源超级块。
可以将在被分类为混合超级块或源超级块之前的多个超级块中的每一个假定为仅包括读取计数小于参考值的普通块。因此,控制器130可以检查多个超级块的每一个中包括的存储块的种类,即检查存储块是读取计数等于或大于参考值的源块还是读取计数小于参考值的普通块,并且将多个超级块分类为混合超级块和源超级块。可以由系统设计者根据存储器装置150的种类或操作方法来不同地设置用于将存储块分类为源块和普通块的“参考值”。
控制器130可以根据“特定条件”将两个或更多个混合超级块中包括的两个或更多个源块重新分组到源超级块中。在这种情况下,由于一个或多个源块和一个或多个普通块可以混合并包括在混合超级块的每一个中,因此两个或更多个源块和两个或更多个普通块可以包括在两个或更多个混合超级块中。由于源超级块是通过将两个或更多个混合超级块中包括的两个或更多个源块重新分组来确定的,因此源超级块可以仅包括源块。因此,控制器130可以对两个或更多个混合超级块中包括的两个或更多个源块进行分类,然后根据“特定条件”将分类后的两个或更多个源块重新分组到一个或多个源超级块中。另外,控制器130可以对包括在两个或更多个混合超级块中的两个或更多个普通块进行分类,然后根据“特定条件”将分类后的两个或更多个普通块重新分组到一个或多个普通超级块中。普通超级块可以仅包括普通块。
总之,控制器130可以根据“特定条件”将两个或更多个混合超级块中包括的两个或更多个源块收集并重新分组到一个或多个源超级块中。另外,控制器130可以根据“特定条件”将两个或更多个混合超级块中包括的两个或更多个普通块收集并重新分组到一个或多个普通超级块中。换言之,控制器130可以对两个或更多个混合超级块中包括的存储块进行分类,然后根据存储块中的每一个的类型,即根据存储块中的每一个是普通块还是源块,将分类后的存储块重新分组到一个或多个源超级块和一个或多个普通超级块中。
“特定条件”可以包括,当如图1所示数据路径CH1W1、CH1W2、CH2W1和CH2W2连接在控制器130和存储器装置150之间时,存储器装置150中包括的多个存储块BLOCK<0:3>、BLOCK<10:13>、BLOCK<20:23>和BLOCK<30:33>之中的两个或更多个存储块是否可以通过多个数据路径CH1W1、CH1W2、CH2W1和CH2W2以交错方式输入/输出数据。例如,当从存储器装置150中包括的存储块BLOCK<0:3>、BLOCK<10:13>、BLOCK<20:23>和BLOCK<30:33>之中选择的两个存储块具有能够通过数据路径CH1W1、CH1W2、CH2W1和CH2W2以交错方式输入/输出数据的关系时,可以认为所选择的两个存储块满足“特定条件”。相反,当所选择的两个存储块不具有能够通过数据路径CH1W1、CH1W2、CH2W1和CH2W2以交错方式输入/输出数据的关系时,可以不将所选择的两个存储块视为满足“特定条件”。稍后将提供“特定条件”的详细说明。
控制器130可以执行将源超级块中存储的有效数据移动到一个或多个普通超级块的合并操作。源超级块可以仅包括读取计数等于或大于参考值的源块。因此,为了维持源块中存储的数据的可靠性,需要执行将源块中存储的有效数据移动到处于空闲或开放状态的一个或多个目标块的合并操作。在合并操作中,将源块中存储的有效数据复制到目标块中,然后擦除源块中存储的数据。因此,控制器130可以执行合并操作,以将源超级块中存储的所有有效数据移动到处于空闲或开放状态的一个或多个普通超级块中包括的目标块,以便保持存储器装置150中存储的数据的可靠性。
合并操作可以是垃圾收集操作、读取回收操作和损耗均衡操作中的任一种。在本实施例中,由于基于读取计数对源块和普通块进行分类,因此合并操作可以称为读取回收操作。当基于有效页面的数量对源块和普通块进行分类时,合并操作可以称为垃圾收集操作。当基于编程/擦除周期对源块和普通块进行分类时,合并操作可以称为损耗均衡操作。
控制器130中包括的超级块管理块1305可以执行,根据“特定条件”将存储器装置150中包括的存储块BLOCK<0:3>、BLOCK<10:13>、BLOCK<20:23>和BLOCK<30:33>收集并分组到多个超级块中的操作,根据超级块各自的状态将多个超级块分类为一个或多个混合超级块和一个或多个源超级块的操作,以及将两个或更多个混合超级块重新分组到一个或多个源超级块和一个或多个普通超级块中的操作。
具体地,超级块管理块1305中包括的超级块分组电路1301可以执行根据“特定条件”将存储器装置150中包括的存储块BLOCK<0:3>、BLOCK<10:13>、BLOCK<20:23>和BLOCK<30:33>收集并分组到多个超级块中的操作。超级块管理块1305中包括的超级块分类电路1302可以执行,将多个超级块之中的、将读取计数等于或大于参考值的源块和读取计数小于参考值的普通块混合并分组于其中的超级块分类为混合超级块的操作。另外,超级块分类电路1302可以执行将多个超级块之中的、仅将读取计数等于或大于参考值的源块分组于其中的超级块分类为源超级块的操作。超级块管理块1305中包括的超级块重新分组电路1303可以执行根据“特定条件”将两个或更多个混合超级块中包括的两个或更多个源块重新分组到源超级块中的操作。另外,超级块重新分组电路1303可以执行对两个或更多个混合超级块中包括的两个或更多个普通块进行分类,并根据“特定条件”将分类后的两个或更多个普通块重新分组到一个或多个普通超级块中的操作。
控制器130中包括的操作执行块1307可以对多个超级块、混合超级块和源超级块中的每一个执行数据输入/输出操作。另外,操作执行块1307可以对源超级块执行合并操作。
图2是根据实施例的包括存储器系统110的数据处理系统100的框图。
参照图2,数据处理系统100可以包括与存储器系统110接合或可操作地联接的主机102。
主机102可以包括诸如移动电话、MP3播放器、膝上型计算机等的便携式电子装置以及诸如台式计算机、游戏机、电视(TV)、投影仪等的电子装置中的任一种。
主机102包括至少一个操作系统(OS),该操作系统通常可以管理和控制由主机102执行的功能和操作。OS可以提供与存储器系统110接合的主机102和存储器系统110的用户之间的互操作性。OS可以支持与用户的请求相对应的功能和操作。作为示例而非限制,根据主机102的移动性,OS可以包括通用操作系统、移动操作系统或其两者。根据系统要求或用户的工作环境,通用操作系统可以包括个人操作系统和企业操作系统。个人操作系统可以接受用于一般目的的支持服务,并且包括Windows和Chrome中的任一种。企业操作系统可以专门用于确保和支持高性能,并且包括Windows服务器、Linux和Unix中的任一种。此外,移动操作系统可以包括Android和iOS中的任一种。移动操作系统可以接受用于移动性的支持服务或功能(例如,省电功能)。
主机102可以包括多个操作系统。主机102可以与存储器系统110协作运行多个操作系统以对应于用户的请求。主机102可以将与用户的请求相对应的多个命令传输到存储器系统110,从而在存储器系统110中执行与多个命令相对应的操作。
存储器系统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)的易失性存储器装置和/或诸如以下的非易失性存储器装置来实施:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)或闪速存储器。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以存储待由主机102访问的数据。控制器130可以控制将数据存储在存储器装置150中的操作。
控制器130和存储器装置150可被集成到单个半导体装置中,其中单个半导体装置可以被包括在如上所述的各种类型的存储器装置的任何一个中。
作为示例而非限制,控制器130和存储器装置150可以集成到一个半导体装置中以形成具有提高的操作速度的SSD。当将存储器系统110用作SSD时,与连接硬盘的主机相比,可以将连接到存储器系统110的主机102的操作速度提高得更多。在另一实施例中,控制器130和存储器装置150可以集成到一个半导体装置中以形成诸如以下的存储卡:PC卡(PCMCIA)、紧凑式闪存卡(CF)、智能媒体卡(例如,SM或SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC或微型MMC)、安全数字(SD)卡(例如,SD、迷你SD、微型SD或SDHC)或通用闪存卡。
存储器系统110可以被配置为例如以下的一部分:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传输和接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或配置计算系统的各种组件之一。
存储器装置150可以是非易失性存储器装置,并且即使不供电时,其也可保留其中存储的数据。存储器装置150可以通过写入操作来存储由主机102提供的数据,并且通过读取操作将存储在其中的数据提供给主机102。存储器装置150可以包括多个存储块BLOCK<0,1,2,...>,每个存储块可以包括多个页面P<0,1,2,3,4,...>。多个页面P<0,1,2,3,4,...>中的每一个可以包括多个存储器单元,多个字线(WL)中的相应一个联接到该多个存储器单元。如图1所示,存储器装置150还包括多个存储器管芯150A、150B、150C和150D,每个存储器管芯包括多个平面。平面中的每一个包括多个存储块BLOCK<0,1,2,...>之中的一些存储块。另外,存储器装置150可以是闪速存储器,并且闪速存储器可以具有三维堆叠结构。
控制器130可以控制存储器装置150的全部操作,诸如读取操作、写入操作(或编程操作)和擦除操作。例如,控制器130可以响应于来自主机102的请求控制存储器装置150。控制器130可以将从存储器装置150读取的数据提供给主机102。控制器130可以将由主机102提供的数据存储在存储器装置150中。
控制器130可以包括全部经由内部总线IN_BUS可操作地联接的主机接口132、处理器134、错误校正码(ECC)电路138、电源管理单元(PMU)140、存储器接口142和存储器144。
主机接口132可以处理由主机102提供的命令和数据,并且可以使用诸如以下的各种接口协议中的至少一种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
ECC电路138可以检测和校正从存储器装置150输出的数据的错误位,并且可以包括ECC编码器和ECC解码器。此处,ECC编码器可以对待编程在存储器装置150中的数据执行错误校正编码,并且生成添加了奇偶校验位的经编码的数据,并将经编码的数据存储在存储器装置150中。当控制器130读取存储在存储器装置150中的数据时,ECC解码器可以检测并校正从存储器装置150读取的数据中包含的错误位。换言之,在对从存储器装置150读取的数据执行错误校正解码之后,ECC电路138可以确定错误校正解码是否已经成功并且输出指令信号(例如,校正成功信号或校正失败信号)。ECC电路138可以使用在ECC编码进程期间所生成的奇偶校验位来校正所读取的数据的错误位。当错误位的数量大于可校正错误位的数量时,ECC组件138可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
ECC电路138可以基于诸如以下的编码调制执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。ECC电路138可以包括基于上述代码中的至少一种来执行错误校正操作的任何或所有电路、模块、系统或装置。
PMU 140可以管理控制器130中的电力。例如,PMU 140可以检测通电和断电。另外,PMU 140可以包括功率检测器。
存储器接口142可以用作处理控制器130和存储器装置150之间传送的命令和数据的接口,以便允许控制器130响应于从主机102传递的请求来控制存储器装置150。当存储器装置150是闪速存储器时,特别是当存储器装置150是NAND闪速存储器时,存储器接口142可以生成针对存储器装置150的控制信号,并且可以在处理器134的控制下处理待写入存储器装置150的写入数据或从存储器装置150输出的读取数据。存储器接口142可以提供控制器130和存储器装置150之间的NAND闪存接口的操作。根据实施例,存储器接口142可以利用称为闪存接口层(FIL)的固件来实施,作为用于与存储器装置150交换数据的组件。
存储器144可以支持由存储器系统110和控制器130执行的操作。存储器144可以存储针对存储器系统110和控制器130中的操作而生成或传递的临时数据或事务数据。控制器130可以响应于来自主机102的请求来控制存储器装置150。控制器130可以将从存储器装置150读取的数据传递到主机102。控制器130可以将从主机102输入的数据存储在存储器装置150内。存储器144可以用于存储由控制器130和存储器装置150使用的数据以执行诸如读取操作或编程/写入操作的操作。
存储器144可以是易失性存储器。存储器144可以利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或其两者来实施。尽管图2示出了布置在控制器130内的存储器144,但是实施例不限于该布置。也就是说,存储器144可以设置在控制器130内部或外部。例如,存储器144可以是外部易失性存储器,该外部易失性存储器具有在存储器144和控制器130之间传送数据和/或信号的存储器接口。
存储器144可以存储用于执行诸如以下的操作的数据:由主机102所请求的数据写入和数据读取;和/或用于诸如垃圾收集和损耗均衡的后台操作的存储器装置150与控制器130之间的数据传送。根据实施例,为了支持存储器系统110中的操作,存储器144可以用作编程存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存和映射缓冲器/高速缓存中的一个或多个。
处理器134可以是微处理器或中央处理单元(CPU)。存储器系统110可以包括一个或多个处理器134。处理器134可以控制存储器系统110的全部操作。作为示例而非限制,处理器134可以分别响应于从主机102输入的写入请求或读取请求来控制存储器装置150的编程操作或读取操作。根据实施例,处理器134可以使用或运行固件来控制存储器系统110的全部操作。本文中,固件可以是闪存转换层(FTL)。FTL可以用作主机102和存储器装置150之间的接口。主机102可以通过FTL向存储器装置150传输针对写入操作和读取操作的请求。
FTL可以管理地址映射、垃圾收集、损耗均衡等操作。特别地,FTL可以加载、生成、更新或存储映射数据。因此,控制器130可以基于映射数据将从主机102输入的逻辑地址与存储器装置150的物理地址进行映射。存储器装置150可以用作执行读取或写入操作的普通存储装置。另外,通过基于映射数据的地址映射操作,当控制器130试图更新存储器装置150的特定页面中存储的数据时,控制器130可以将所更新的数据编程在存储器装置150的另一空白页面中,并且由于用作存储器装置150的闪速存储器装置的特性,可以使特定页面的旧数据无效(例如,将与经更新的数据的逻辑地址相对应的物理地址从特定页面更新为新编程的页面)。进一步,控制器130可以将所更新的数据的映射数据存储到FTL中。
例如,当对存储器装置150执行由主机102请求的操作时,控制器130使用处理器134。与存储器装置150接合的处理器134可以管理与来自主机102的命令相对应的指令或命令。控制器130可以执行与来自主机102的命令相对应的命令操作作为前台操作,诸如与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除/丢弃命令相对应的擦除/丢弃操作或者与带有设置命令的设置参数命令或设置特征命令相对应的参数设置操作。
控制器130可以使用处理器134对存储器装置150执行后台操作。作为示例而非限制,对存储器装置150执行的后台操作可以包括交换和处理存储器装置150的存储块BLOCK<0,1,2,...>或存储块BLOCK<0,1,2,...>中存储的数据的操作,例如,损耗均衡(WL)操作或读取回收(RR)操作。另外,对存储器装置150执行的后台操作可以包括将控制器130中存储的映射数据存储在存储器装置150的存储块BLOCK<0,1,2,...>中的操作,例如,映射刷新操作,或检查并处理存储器装置150中包括的存储块BLOCK<0,1,2,...>中的坏块的坏块管理操作。
复制、交换、移动或合并存储块BLOCK<0,1,2,...>或存储块BLOCK<0,1,2,...>中存储的数据的操作,诸如垃圾收集操作、损耗均衡操作和读取回收操作,可以被定义为合并操作,并且该合并操作可以由控制器130的处理器134中包括的操作执行块1307控制。
在存储器系统110中,控制器130执行与从主机102接收的多个命令相对应的多个命令操作。例如,当顺序地、随机地或可选地执行与多个编程命令相对应的多个编程操作、与多个读取命令相对应的多个读取操作以及与多个擦除命令相对应的多个擦除操作时,控制器130可以确定用于将控制器130连接到存储器装置150中的哪个(哪些)存储器管芯的哪个(哪些)通道或通路对于执行每个命令操作是适当的或合适的。控制器130可以通过该(这些)通道或通路来传输数据或指令用以执行每个命令操作。在每个命令操作完成之后,存储器装置150中的多个存储器管芯可以分别通过相同的通道或通路将操作结果传输到控制器130。然后,控制器130可以将响应或确认信号传输到主机102。在实施例中,控制器130可以检查每个通道或每个通路的状态。响应于从主机102接收到的命令,控制器130可以基于每个通道或每个通路的状态选择至少一个通道和至少一个通路,使得带有数据的指令和/或操作结果可以通过所选择的通道和通路从存储器装置150传递到控制器130。
控制器130可以检查联接到存储器装置150中的多个存储器管芯的多个通道(或通路)的状态。
控制器130可以确定每个通道或每个通路正处于忙碌状态、就绪状态、活动状态、空闲状态、正常状态或异常状态。控制器可以基于例如指令(和/或数据)被传递到的存储器管芯的物理块地址来确定指令(和/或数据)通过哪个通道或通路传递。控制器130可以参考从存储器装置150传递的描述符。描述符可以包括描述存储器装置150的特性的参数块或参数页面,并且可以具有设定的格式或结构。描述符可以包括装置描述符、配置描述符、单元描述符等。控制器130可以参考或使用描述符来确定用于在控制器130与存储器装置150之间交换指令或数据的(多个)通道或通路。
管理单元(未示出)可以包括在处理器134中。管理单元可以执行针对存储器装置150的坏块管理。管理单元可以发现不满足进一步使用的条件的坏存储块,并对坏存储块执行坏块管理。当存储器装置150是诸如NAND闪速存储器的闪速存储器时,由于NAND逻辑功能的特性,在编程(或写入)操作期间可能发生编程失败。在坏块管理期间,编程失败的存储块或坏存储块中存储的数据可以被编程到新存储块中。例如,在读取数据时可能发生读取失败,并且将发生读取失败的存储块作为坏存储块管理。坏存储块可能会大大降低具有3D堆叠结构的存储器装置150的利用率和存储器系统110的可靠性。因此,可靠的坏块管理可以增强或改善存储器系统110的性能。
控制器130的处理器134可以根据特定条件控制将存储器装置150中包括的存储块BLOCK<0,1,2,...>收集并分组到超级块中的操作。为此,控制器130可以进一步包括超级块管理块1305。
同时,将在下面描述控制器130的编程操作、读取操作和擦除操作。
控制器130可以将与从主机102输入的编程(或写入)命令相对应的编程数据存储在控制器130的存储器144中包括的缓冲器/高速缓存中,然后将缓冲器/高速缓存中存储的数据存储在存储器装置150中包括的存储块BLOCK<0,1,2,...>中。换言之,当从主机102输入编程命令时,控制器130可以执行与该编程命令相对应的编程操作。此时,控制器130可以将与编程命令相对应的编程数据存储在存储器装置150中包括的存储块BLOCK<0,1,2,...>的至少一个中,例如,存储块BLOCK<0,1,2,...>之中的已执行擦除操作的空白存储块、开放存储块或空闲存储块。另外,控制器130可以更新与对存储器装置150执行的编程操作相对应的映射数据,然后将更新后的映射数据存储在存储器装置150中包括的存储块BLOCK<0,1,2,...>中。换言之,控制器130可以将关于存储块BLOCK<0,1,2,...>中存储的用户数据的逻辑到物理地址信息(L2P映射信息)和物理到逻辑地址信息(P2L映射信息),以映射表格或映射列表的形式,存储在存储器装置150中包括的存储块BLOCK<0,1,2,...>之中的空白存储块、开放存储块或空闲存储块中。
当从主机102输入读取命令时,控制器130可以检查与连同读取命令一起输入的逻辑地址相对应的映射数据,以找到与该逻辑地址相对应的物理地址,并基于该物理地址从存储器装置150读取与该读取命令相对应的数据。随后,控制器130可以将所读取的数据存储在控制器130的存储器144中包括的缓冲器/高速缓存中,然后向主机102提供缓冲器/高速缓存中存储的数据。
当从主机102输入擦除命令时,控制器130可以执行以下的擦除操作:检查与擦除命令相对应的存储块,擦除所检查的存储块中存储的数据,更新与所擦除数据相对应的映射数据,然后将更新后的映射数据存储在存储器装置150中包括的存储块BLOCK<0,1,2,...>中。
在本文中,映射数据可以包括与编程操作相对应的关于存储块BLOCK<0,1,2,...>中存储的数据的逻辑到物理(L2P)信息和物理到逻辑(P2L)信息。
与命令相对应的数据可以包括用户数据和由控制器130生成的元数据。元数据可以包括由控制器130生成的并且对应于存储器装置150中存储的用户数据的映射数据。另外,元数据可以包括关于从主机102输入的命令的信息,关于与命令相对应的命令操作的信息,关于对其执行命令操作的存储器装置150的存储块的信息,以及关于与命令操作相对应的映射数据的信息。换言之,元数据可以包括除了与从主机102输入的命令相对应的用户数据之外的用于命令操作的信息和数据。如上所述,可以从控制器130的内部生成元数据。
存储器装置150中存储的用户数据可以以每个具有预定大小的段(segment)为单位进行存储。该预定大小可以与存储器系统110与主机102交互所需的最小数据大小相同。在一些实施例中,可以根据存储器装置150的配置和控制方法来确定作为用户数据的单位的数据段的大小。在将用户数据的数据段存储在存储器装置150的存储块中的同时,控制器130可以生成或更新与所存储的数据段相对应的映射地址。作为包括映射地址的元数据的单位的元段,可以包括逻辑到物理(L2P)段和物理到逻辑(P2L)段,并且当映射段由控制器130生成时,或者当映射段被存储在存储块中然后在被加载到存储器144中之后被更新时,可以将元段存储在存储器装置150的存储块中。
图3是示出根据本公开的另一实施例的存储器系统中的控制器的框图。
参照图3,控制器130与主机102和存储器装置150协作。控制器130可以包括主机接口(I/F)132、闪存转换层(FTL)电路40、存储器接口(I/F)142和存储器144。
主机接口132可以处置来自主机102的命令和数据。作为示例而非限制,主机接口132可以包括命令队列56、缓冲管理器52和事件队列54。命令队列56可以顺序地存储来自主机102的命令和数据,并且以存储的顺序将它们输出到缓冲管理器52。缓冲管理器52可以对从命令队列56传递的命令和数据进行分类、管理或调整。事件队列54可以顺序地传输用于处理来自缓冲管理器52的命令和数据的事件。
可以从主机102连续地接收具有相同特性的多个命令或数据,或者可以将具有不同特性的命令和数据混合之后传送到存储器系统110。例如,可以传递多个读取命令,或者可以将读取命令和编程/写入命令交替地传输到存储器系统110。主机接口132可以顺序地将从主机102接收的命令和数据存储到命令队列56。此后,主机接口132可以根据从主机102接收的命令和数据的特征来估计或预测控制器130将执行哪种内部操作。主机接口132可以至少基于命令和数据的的特性来确定命令和数据的处理顺序和优先级。根据来自主机102的命令和数据的特性,主机接口132中的缓冲管理器52被配置成确定缓冲管理器52是否应该将命令和数据存储在存储器144中,或者缓冲管理器52是否应该将命令和数据传递到闪存转换层(FTL)电路40中。事件队列54接收从缓冲管理器52输入的事件,以便按照接收的顺序将事件传递到闪存转换层(FTL)电路40中,这些事件将由存储器系统110或控制器130响应于来自主机102的命令和数据而在内部运行和处理。
根据实施例,图3中的主机接口132可以执行图2中的控制器130的功能。
根据实施例,闪存转换层(FTL)电路40可以包括状态管理器(GC/WL/RR)42、映射管理器(MM)44、主机请求管理器(HRM)46和块管理器(BM/BBM)48。主机请求管理器46可以管理从事件队列54输入的事件。映射管理器44可以处置或控制映射数据。状态管理器42可以执行合并操作,诸如垃圾收集操作(GC)、损耗均衡操作(WL)或读取回收操作(RR)。块管理器48可以对存储器装置150中的块运行命令或指令。
作为示例而非限制,主机请求管理器46可以根据从主机接口132传递的读取命令和编程命令以及事件,使用映射管理器44和块管理器48来处置或处理请求。主机请求管理器46可以向映射管理器44发送查询请求,以确定与随事件一起输入的逻辑地址相对应的物理地址。主机请求管理器46可以将读取请求与物理地址一起发送到存储器接口142,以处理读取请求(或处置事件)。另一方面,主机请求管理器46可以向块管理器48发送编程请求(或写入请求),以将所输入的数据编程到存储器装置150中的空白页面(即,没有数据的页面),然后可以将与编程请求相对应的映射更新请求传输到映射管理器44,以更新映射地址。
块管理器48可以将从主机请求管理器46、映射管理器44和/或状态管理器42传递的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了使存储器系统110(参见图2)的编程或写入性能最大化或使之增强,块管理器48可以收集编程请求并将用于多平面和单触发编程操作的闪存编程请求发送到存储器接口142。块管理器48可以向存储器接口142发送若干闪存编程请求,以增强多通道和多方向闪存控制器的并行处理或使之最大化。
块管理器48可以被配置为根据有效页面的数量来管理存储器装置150中的块,当需要空闲块时选择并擦除没有有效页面的块,并且当确定有必要进行垃圾回收时选择包括最小数量的有效页面的块。状态管理器42可以执行垃圾收集以将有效数据移动到空块并擦除从中移动了有效数据的块中的剩余数据,从而块管理器48可以具有足够的空闲块。如果块管理器48将关于待擦除的块的信息提供给状态管理器42,则状态管理器42能够检查待擦除的块的所有闪存页面以确定每个页面是否有效。为了确定每个页面的有效性,状态管理器42可以识别存储在每个页面的带外(OOB)区域中的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将页面的物理地址与映射到从请求获得的逻辑地址的物理地址进行比较。状态管理器42为每个有效页面向块管理器48发送编程请求。当编程操作完成时,可以通过映射管理器44的更新来更新映射表。
映射管理器44可以管理逻辑-物理映射表。映射管理器44可以处理由主机请求管理器46或状态管理器42生成的诸如查询和更新的请求。映射管理器44可以将整个映射表存储在存储器装置150(例如,闪速存储器/非易失性存储器)中,并根据存储器144的存储容量来高速缓存映射条目。当在处理查询或更新请求时发生映射高速缓存未命中时,映射管理器44可以向存储器接口142发送读取请求以加载存储在存储器装置150中的相关映射表。当映射管理器44中的脏高速缓存块的数量超过某个阈值时,可以将编程请求发送到块管理器48,以便生成清洁的高速缓存块,并且可以将脏映射表存储在存储器装置150中。
当执行垃圾收集时,状态管理器42将有效页面复制到空闲块中,并且主机请求管理器46可以针对该页面的相同逻辑地址对数据的最新版本进行编程,并且发布更新请求。当状态管理器42在未完成有效页面的复制的状态下请求映射更新时,映射管理器44可以不执行映射表更新。这是因为如果状态管理器42请求映射更新并且直到稍后才完成有效页面复制,则与旧物理信息一起发布映射请求。映射管理器44可以仅当最新的映射表仍然指向旧物理地址时,执行映射更新操作以确保准确性。
在一些实施例中,参照图3描述的块管理器48、映射管理器44和状态管理器42中的至少一个可以包括参照图1和图2描述的超级块管理块1305和操作执行块1307。
存储器装置150可以包括多个存储块。根据在这样的块的一个存储器单元中可存储或表示的位数,多个存储块中的每一个可以是单层单元(SLC)存储块或多层单元(MLC)存储块。这里,SLC存储块包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块可以具有较高的数据I/O操作性能和较高的耐用性。MLC存储块包括由每个存储多位(例如,两位或更多位)数据的存储器单元实施的多个页面。与SLC存储块相比,MLC存储块就相同的空间可以具有更大的存储容量。MLC存储块可以在存储容量方面高度集成。在实施例中,存储器装置150可以用MLC存储块来实施,诸如双层单元存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合。双层单元存储块可以包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可以包括由每个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用包括由每个能够存储5位或更多位数据的存储器单元实施的多个页面的块来实施。
在本公开的实施例中,存储器装置150是非易失性存储器,诸如作为NAND闪速存储器、NOR闪速存储器等的闪速存储器。在另一实施例中,存储器装置150可以是相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)和自旋注入磁性存储器(例如,自旋转移力矩磁性随机存取存储器(STT-MRAM))中的至少一个。
图4是示出根据实施例的图1至图3所示的存储器装置150的内部配置的框图。
参照图4,存储器装置150可以包括多个存储器管芯,例如,四个存储器管芯150A、150B、150C和150D。第一存储器管芯150A和第二存储器管芯150B可以通过第一通道CH1连接到例如图1至图3所示的控制器130的控制器。第三存储器管芯150C和第四存储器管芯150D可以通过第二通道CH2连接到控制器130。
尽管在图4中描述了四个存储器管芯150A、150B、150C和150D通过两个通道CH1和CH2连接到控制器130,但是存储器装置150可以包括各种数量的存储器管芯,例如两个或八个存储器管芯,并且还可以提供各种数量的通道,例如两个、三个、四个或五个通道。可以根据使用包括控制器130和存储器装置150的存储器系统110的目的、存储器系统110的所需性能等来改变存储器装置150中的存储器管芯的数量和通道的数量。
当多个存储器管芯被连接到一个通道时,存储器管芯中的每一个可以通过通路连接到该通道。参照图4,第一存储器管芯150A和第二存储器管芯150B可以分别通过第一通路W1和第二通路W2连接到第一通道CH1。第三存储器管芯150C和第四存储器管芯150D可以分别通过第一通路W1和第二通路W2连接到第二通道CH2。可以根据连接到每个通道的存储器管芯的数量来确定通路的数量。
控制器130可以将存储器装置150中包括的多个存储块BLOCK<0:3>、BLOCK<10:13>、BLOCK<20:23>和BLOCK<30:33>以至少两个为单位来收集,并根据“特定条件”将其分组到多个超级块中。
具体地,该“特定条件”可以包括,在如图4所示数据路径CH1W1、CH1W2、CH2W1和CH2W2连接在控制器130和存储器装置150之间的状态下,存储器装置150中包括的多个存储块BLOCK<0:3>、BLOCK<10:13>、BLOCK<20:23>和BLOCK<30:33>之中的两个或更多个存储块是否可以通过多个数据路径CH1W1、CH1W2、CH2W1和CH2W2以交错方式输入/输出数据。
具体地,当存储器管芯150A、150B、150C和150D之中的通过不同数据路径输入/输出数据的两个或更多个存储器管芯以交错方式输入/输出数据时,该两个或更多个存储器管芯可以被视为满足“特定条件”。
例如,由于第一存储器管芯150A连接到第一通道CH1的第一通路W1,第二存储器管芯150B连接到第一通道CH1的第二通路W2,所以第一存储器管芯150A中包括的存储块BLOCK<0:3>中的任何一个和第二存储器管芯150B中包括的存储块BLOCK<10:13>中的任何一个可以以交错方式输入/输出数据,因此被认为满足“特定条件”。
又例如,由于第一存储器管芯150A连接到第一通道CH1的第一通路W1,第二存储器管芯150B连接到第一通道CH1的第二通路W2,并且第三存储器管芯150C连接到第二通道CH2的第一通路W1,所以第一存储器管芯150A中包括的存储块BLOCK<0:3>中的任何一个、第二存储器管芯150B中包括的存储块BLOCK<10:13>中的任何一个、以及第三存储器管芯150C中包括的存储块BLOCK<20:23>中的任何一个可以以交错方式输入/输出数据,因此被认为满足“特定条件”。
又例如,由于第一存储器管芯150A连接到第一通道CH1的第一通路W1,第二存储器管芯150B连接到第一通道CH1的第二通路W2,第三存储器管芯150C连接到第二通道CH2的第一通路W1,并且第四存储器管芯150D连接到第二通道CH2的第二通路W2,所以第一存储器管芯150A中包括的存储块BLOCK<0:3>中的任何一个、第二存储器管芯150B中包括的存储块BLOCK<10:13>中的任何一个、第三存储器管芯150C中包括的存储块BLOCK<20:23>中的任一个、以及第四存储器管芯150D中包括的存储块BLOCK<30:33>中的任何一个可以以交错方式输入/输出数据,因此被认为满足“特定条件”。
作为相反的示例,由于第一存储器管芯150A中包括的存储块BLOCK<0:3>连接到相同的数据路径CH1W1,所以存储块BLOCK<0:3>可以不以交错方式输入/输出数据,因此可以不被视为满足“特定条件”。
在另一相反的示例中,由于第二存储器管芯150B中包括的存储块BLOCK<10:13>连接到相同的数据路径CH1W2,所以存储块BLOCK<10:13>可以不以交错方式输入/输出数据,因此可以不被视为满足“特定条件”。
在又一相反的示例中,由于在第一存储器管芯150A中包括的存储块BLOCK<0:3>中的一个和第二存储器管芯150B中包括的存储块BLOCK<10:13>中的两个之中,不同存储器管芯中的两个存储块,例如第一存储器管芯150A的一个存储块和第二存储器管芯150B的一个存储块分别连接到不同的数据路径CH1W1和CH1W2,但是同一存储器管芯中的两个存储块,例如第二存储器管芯150B的两个存储块,连接到相同的数据路径CH1W2,因此该三个存储块可以不以交错方式输入/输出数据,因此可以不被视为满足“特定条件”。
图5A和图5B示出根据实施例的存储器系统的操作方法。
参照图5A和图5B,存储器装置以与参照图1描述的存储器装置150相同的方式包括多个存储器管芯150A、150B、150C和150D。然而,尽管图1示出了在存储器管芯150A、150B、150C和150D的每一个中包括四个存储块,但是图5A和图5B中的存储器管芯150A、150B、150C和150D的每一个中可以包括更多数量的存储块。在图5A和图5B中,可以看到分别从存储器管芯150A、150B、150C和150D中包括的多个存储块BLOCK<0,1,2,3,...>,BLOCK<10,11,12,13,...>,BLOCK<20,21,22,23,...>和BLOCK<30,31,32,33,...>中的每一组中各选择一个存储块,并将所选择的存储块分组到例如SB0、SB1、SB2和SB3的多个超级块中。换言之,可以看到四个存储器管芯150A、150B、150C和150D中分别包括的四个第一存储块BLOCK<0,10,20,30>被收集并分组到第一超级块SB0中。可以看到四个存储器管芯150A、150B、150C和150D中分别包括的四个第二存储块BLOCK<1,11,21,31>被收集并且被分组到第二超级块SB1中。可以看到四个存储器管芯150A、150B、150C和150D中分别包括的四个第三存储块BLOCK<2,12,22,32>被收集并且被分组到第三超级块SB2中。可以看到分别包括在第一、第二和第四存储器管芯150A、150B和150D中的三个第四存储块BLOCK<3,13,33>和包括在第三存储器管芯150C中的第101存储块BLOCK<2100>被收集并被分组到第四超级块SB3中。
在图5A中,假设第一至第四超级块SB0至SB3中的存储块BLOCK<3,12,20,31>是源块,并且第一至第四超级块SB0至SB3中的其他存储块是普通块。具体地,参照图1和图5A,可以看到读取计数等于或大于参考值的源块BLOCK<20>和读取计数小于参考值的普通块BLOCK<0,10,30>被混合并包括在第一超级块SB0中。因此,控制器130可以将第一超级块SB0分类为混合超级块。类似地,可以看到读取计数等于或大于参考值的源块BLOCK<31>和读取计数小于参考值的普通块BLOCK<1,11,21>被混合并包括在第二超级块SB1中。因此,控制器130可以将第二超级块SB1分类为混合超级块。可以看到读取计数等于或大于参考值的源块BLOCK<12>和读取计数小于参考值的普通块BLOCK<2,22,32>被混合并包括在第三超级块SB2中。因此,控制器130可以将第三超级块SB2分类为混合超级块。可以看到读取计数等于或大于参考值的源块BLOCK<3>和读取计数小于参考值的普通块BLOCK<13,2100,33>被混合并包括在第四超级块SB3中。因此,控制器130可以将第四超级块SB3分类为混合超级块。
这样,控制器130可以将第一至第四超级块SB0、SB1、SB2和SB3分类到混合超级块中,然后收集四个混合超级块中包括的四个源块并根据“特定条件”将它们重新分组到源超级块中。
参照图1和图5B,可以看到控制器130将第一混合超级块SB0中包括的源块BLOCK<20>与第四混合超级块SB3中包括的普通块BLOCK<2100>交换。因此,第一混合超级块SB0可以处于仅包括四个普通块BLOCK<0,10,2100,30>的状态。因此,在将源块BLOCK<20>与普通块BLOCK<2100>交换之后,控制器130可以将第一混合超级块SB0分类为普通超级块。
类似地,可以看到控制器130将第二混合超级块SB1中包括的源块BLOCK<31>与第四混合超级块SB3中包括的普通块BLOCK<33>交换。因此,第二混合超级块SB1可以处于仅包括四个普通块BLOCK<1,11,21,33>的状态。因此,在将源块BLOCK<31>与普通块BLOCK<33>交换之后,控制器130可以将第二混合超级块SB1分类为普通超级块。
此外,可以看到控制器130将第三混合超级块SB2中包括的源块BLOCK<12>与第四混合超级块SB3中包括的普通块BLOCK<13>交换。因此,第三混合超级块SB2可以处于仅包括四个普通块BLOCK<2,13,22,32>的状态。因此,在将源块BLOCK<12>与普通块BLOCK<13>交换之后,控制器130可以将第三混合超级块SB2分类为普通超级块。
通过控制器130的上述操作,第四混合超级块SB3可以处于仅包括四个源块BLOCK<3,12,20,31>的状态。因此,在交换操作之后,控制器130可以将超级块SB3分类为源超级块。
此后,控制器130可以执行将源超级块SB3的有效数据移动到一个或多个普通超级块的合并操作。
图6A和图6B示出根据另一实施例的存储器系统的操作方法。
参照图6A和图6B,存储器装置以与参照图1描述的存储器装置150相同的方式包括多个存储器管芯150A、150B、150C和150D。然而,尽管图1示出了在存储器管芯150A、150B、150C和150D的每一个中包括四个存储块,但是图6A和图6B中的存储器管芯150A、150B、150C和150D的每一个中可以包括更多数量的存储块。在图6A和图6B中,可以看到分别从存储器管芯150A、150B、150C和150D中包括的多个存储块BLOCK<0,1,2,3,...>,BLOCK<10,11,12,13,...>,BLOCK<20,21,22,23,...>和BLOCK<30,31,32,33,...>中的每一组中各选择一个存储块,并将所选择的存储块分组到多个超级块SB0、SB1、SB2和SB3中。换言之,可以看到四个存储器管芯150A、150B、150C和150D中分别包括的四个第一存储块BLOCK<0,10,20,30>被收集并分组到第一超级块SB0中。可以看到四个存储器管芯150A、150B、150C和150D中分别包括的四个第二存储块BLOCK<1,11,21,31>被收集并分组到第二超级块SB1中。可以看到四个存储器管芯150A、150B、150C和150D中分别包括的四个第三存储块BLOCK<2,12,22,32>被收集并分组到第三超级块SB2中。可以看到分别包括在第一、第二和第四存储器管芯150A、150B和150D中的三个第四存储块BLOCK<3,13,33>和包括在第三存储器管芯150C中的第101存储块BLOCK<2100>被收集并分组到第四超级块SB3中。
具体地,参照图1和图6A,控制器130可以检查通过对分别包括在超级块SB0、SB1、SB2和SB3中的存储块BLOCK<0,10,20,30>,BLOCK<1,11,21,31>,BLOCK<2,12,22,32>和BLOCK<3,13,2100,33>的读取计数以超级块为单位进行求和而获得的多个和值。
例如,在图6A中,可以看到通过对第一超级块SB0中包括的四个存储块BLOCK<0,10,20,30>的读取计数求和而获得的和值为“410”。可以看到通过对第二超级块SB1中包括的四个存储块BLOCK<1,11,21,31>的读取计数求和而获得的和值为“390”。可以看到通过对第三超级块SB2中包括的四个存储块BLOCK<2,12,22,32>的读取计数求和而获得的和值为“220”。可以看到通过对第四超级块SB3中包括的四个存储块BLOCK<3,13,2100,33>的读取计数求和而获得的和值为“600”。
控制器130可以在与超级块SB0、SB1、SB2和SB3相对应的多个和值之中选择与等于或大于特定值的和值相对应的超级块,检查所选择的超级块中包括的存储块的类型,然后对所选择的超级块进行分类。当所选择的超级块中包括的存储块都是普通块时,控制器130可以将所选择的超级块分类为普通超级块中=。当所选择的超级块中包括的存储块处于普通块和源块混合的状态时,控制器130可以将所选择的超级块分类为混合超级块。当所选择的超级块中包括的存储块都是源块时,控制器130可以将所选择的超级块分类为源超级块。
例如,在图6A中,假设第一超级块SB0的和值为“410”,第二超级块SB1的和值为“390”,第三超级块SB2的和值为“220”,第四超级块SB3的和值为“600”,并且特定值是“400”。还假设第二超级块SB1和第四超级块SB3中包括的存储块BLOCK<3,2100,31>是源块。
因此,控制器130可以选择各自的和值均高于特定值“400”的第一超级块SB0和第四超级块SB3。随后,控制器130可以检查所选择的第一超级块SB0中包括的存储块BLOCK<0,10,20,30>的类型。作为检查结果,可以看到第一超级块SB0中包括的存储块BLOCK<0,10,20,30>都是普通块。因此,控制器130可以将第一超级块SB0分类为普通超级块。类似地,控制器130可以检查所选择的第四超级块SB3中包括的存储块BLOCK<3,13,2100,33>的类型。作为检查结果,可以看到在第四超级块SB3中包括的存储块BLOCK<3,13,2100,33>之中,两个存储块BLOCK<3,2100>是源块,两个存储块BLOCK<13,33>是普通块。换言之,源块和普通块被混合并包括在第四超级块SB3中。因此,控制器130可以将第四超级块SB3分类为混合超级块。
在图6A的实施例中,由于控制器130执行以下操作:检查多个超级块SB0、SB1、SB2和SB3的多个和值,选择一些和值高于特定值的超级块,然后再次检查所选择的超级块的类型,即,检查是否继续将所选择的超级块分类为普通超级块或者是否将所选择的超级块分类为混合超级块或源超级块,因此即使存在大量超级块,控制器130也可以相对快速地检查超级块的类型。另一方面,由于仅检查所选择的超级块的类型,所以可能会降低检查超级块SB0、SB1、SB2和SB3的类型的操作的准确性。例如,在图6A中,由于第二超级块SB1包括源块BLOCK<31>和三个普通块BLOCK<1,11,21>,因此第二超级块SB1应被分类为混合超级块。然而,由于第二超级块SB1的和值“390”小于特定值,因此第二超级块SB1未被选择,从而控制器130可能不执行检查第二超级块SB1的类型的操作。为了克服这样的缺点,可以使用下面参照图6B描述的方法。
参照图1和图6B,控制器130可以检查分别包括在超级块SB0、SB1、SB2和SB3中的存储块BLOCK<0,10,20,30>、BLOCK<1,11,21,31>、BLOCK<2,12,22,32>和BLOCK<3,13,2100,33>的读取计数,并且根据所检查的读取计数将存储块分类到源块和普通块中。
例如,在图6B中,可以看到第一超级块SB0中包括的四个存储块BLOCK<0,10,20,30>的读取计数分别是30、20、50和40。由于参考值为“100”,因此控制器130可以将第一超级块SB0中包括的所有四个存储块BLOCK<0,10,20,30>分类到普通块中。
可以看到第二超级块SB1中包括的四个存储块BLOCK<1,11,21,31>的读取计数分别为40、10、60和110。由于参考值为“100”,因此控制器130可以在第二超级块SB1中包括的四个存储块BLOCK<1,11,21,31>之中将三个存储块BLOCK<1,11,21>分类到普通块中,并将一个存储块BLOCK<31>分类到源块中。
可以看到第三超级块SB2中包括的四个存储块BLOCK<2,12,22,32>的读取计数分别为120、30、140和90。由于参考值为“100”,因此控制器130可以在第三超级块SB2中包括的四个存储块BLOCK<2,12,22,32>之中将两个存储块BLOCK<2,22>分类到源块中,并且将两个存储块BLOCK<12,32>分类到普通块中。
可以看到第四超级块SB3中包括的四个存储块BLOCK<3,13,2100,33>的读取计数分别为110、130、150和100。由于参考值为“100”,因此控制器130可以将第四超级块SB3中包括的所有四个存储块BLOCK<3,13,2100,33>分类到源块中。
控制器130可以将分别包括在超级块SB0、SB1、SB2和SB3中的存储块BLOCK<0,10,20,30>、BLOCK<1,11,21,31>、BLOCK<2,12,22,32>和BLOCK<3,13,2100,33>分类到源块和普通块中,然后根据分类结果确定超级块SB0、SB1、SB2和SB3的类型。换言之,控制器130可以继续将超级块SB0、SB1、SB2和SB3之中的仅包括普通块的超级块分类为普通超级块。另外,控制器130可以将超级块SB0、SB1、SB2和SB3之中的包括普通块和源块两者的超级块分类为混合超级块。此外,控制器130可以将超级块SB0、SB1、SB2和SB3之中的仅包括源块的超级块分类为源超级块。
例如,在图6B中,由于第一超级块SB0中包括的所有四个存储块BLOCK<0,10,20,30>都是普通块,因此控制器130可以继续将第一超级块SB0分类为普通超级块。由于在第二超级块SB1中包括的四个存储块BLOCK<1,11,21,31>之中,三个存储块BLOCK<1,11,21>是普通块,一个存储块BLOCK<31>是源块,因此控制器130可以将第二超级块SB1分类为混合超级块。由于在第三超级块SB2中包括的四个存储块BLOCK<2,12,22,32>之中,两个存储块BLOCK<2,22>是源块,两个存储块BLOCK<12,32>是普通块,因此控制器130可以将第三超级块SB2分类为混合超级块。由于第四超级块SB3中包括的所有四个存储块BLOCK<3,13,2100,33>都是源块,因此控制器130可以将第四超级块SB3分类为源超级块。
图7A和图7B示出根据又一实施例的存储器系统的操作方法。
参照图7A和图7B,存储器装置以与参照图1描述的存储器装置150相同的方式包括多个存储器管芯150A、150B、150C和150D。然而,尽管图1示出了在存储器管芯150A、150B、150C和150D的每一个中包括四个存储块,但是图7A和图7B中的存储器管芯150A、150B、150C和150D的每一个中可以包括更多数量的存储块。在图7A和图7B中,可以看到分别从存储器管芯150A、150B、150C和150D中包括的多个存储块BLOCK<0,1,2,3,...>,BLOCK<10,11,12,13,...>,BLOCK<20,21,22,23,...>和BLOCK<30,31,32,33,...>中的每一组中各选择一个存储块,并将所选择的存储块分组到多个超级块SB0、SB1、SB2和SB3中。换言之,可以看到四个存储器管芯150A、150B、150C和150D中分别包括的四个第一存储块BLOCK<0,10,20,30>被收集并分组到第一超级块SB0中。可以看到四个存储器管芯150A、150B、150C和150D中分别包括的四个第二存储块BLOCK<1,11,21,31>被收集并分组到第二超级块SB1中。可以看到四个存储器管芯150A、150B、150C和150D中分别包括的四个第三存储块BLOCK<2,12,22,32>被收集并分组到第三超级块SB2中。可以看到分别包括在第一、第二和第四存储器管芯150A、150B和150D中的三个第四存储块BLOCK<3,13,33>和包括在第三存储器管芯150C中的第101存储块BLOCK<2100>被收集并分组到第四超级块SB3中。
在图7A中,假设第四超级块SB3中的存储块BLOCK<3,2100>是源块,并且第一至第四超级块SB0至SB3中的其他存储块是普通块。
具体地,参照图1和图7A,可以看到多个超级块SB0、SB1、SB2和SB3之中的第一超级块SB0、第二超级块SB1和第三超级块SB2仅包括普通块。因此,控制器130可以将第一超级块SB0、第二超级块SB1和第三超级块SB2的类型保持为普通超级块。另一方面,可以看到第四超级块SB3包括两个普通块BLOCK<13,33>和两个源块BLOCK<3,2100>。因此,控制器130可以将第四超级块SB3分类为混合超级块。换言之,可以看到在多个超级块SB0、SB1、SB2和SB3之中,可以被分类到混合超级块中的超级块的数量为1。
这样,当多个超级块SB0,SB1,SB2和SB3之中的仅一个超级块可以被分类为混合超级块的状态保持“预定时间”或更长时间时,控制器130可以对唯一一个混合超级块执行合并操作。也就是说,控制器130可以将唯一一个混合超级块(例如,图7A中的第四超级块SB3)中包括的有效数据移动到一个或多个普通超级块。
需要图7A所示的操作的原因在于,即使重复执行将两个或更多个混合超级块中包括的源块收集并且重新分组到源超级块中的操作,也可能留下一个或多个混合超级块未被重新分组到源超级块中。例如,如图7A所示,当存储器装置150中包括的多个存储块BLOCK<0,1,2,3,...>、BLOCK<10,11,12,13,...>、BLOCK<20,21,22,23,...>和BLOCK<30,31,32,33,...>之中的源块的数量为2(BLOCK<3,2100>),并且两个源块BLOCK<3,2100>包括在一个混合超级块SB3中时,源块BLOCK<3,2100>可能不会被重新分组到源超级块中。因此,当图7A所示的状态保持“预定时间”或更长时间时,控制器130可以对混合超级块SB3执行合并操作。
“预定时间”可以是绝对定义的时间,也可以是在存储器装置150中重复特定操作特定次数所花费的时间。例如,“预定时间”可以是在存储器装置150中将读取操作重复100次所花费的时间。
“预定时间”可以根据存储器装置150中包括的多个存储块BLOCK<0,1,2,3,...>、BLOCK<10,11,12,13,...>、BLOCK<20,21,22,23,...>和BLOCK<30,31,32,33,...>的类型或使用方法,例如,根据存储块是SLC块还是MLC块,由系统设计师通过各种方式进行设置。
参照图1和图7B,可以看到多个超级块SB0、SB1、SB2和SB3之中的第一超级块SB0和第二超级块SB1仅包括普通块。因此,控制器130可以将第一超级块SB0和第二超级块SB1的类型保持为普通超级块。另一方面,可以看到第三超级块SB2包括一个源块BLOCK<2>和三个普通块BLOCK<12,22,32>。另外,可以看到第四超级块SB3包括一个源块BLOCK<3>和三个普通块BLOCK<13,2100,33>。因此,控制器130可以将第三超级块SB2和第四超级块SB3分类为混合超级块。换言之,可以看到在多个超级块SB0、SB1、SB2和SB3之中,能够被分类到混合超级块中的超级块的数量为2。
这样,即使存在两个混合超级块SB2和SB3,也可以不执行对两个混合超级块SB2和SB3中包括的源块进行分类和重新分组的操作。原因在于第三超级块SB2中的一个源块BLOCK<2>和第四超级块SB3中的一个源块BLOCK<3>不满足“特定条件”。换言之,由于在第一存储器管芯150A中包括的第三超级块SB2中的一个源块BLOCK<2>和第四超级块SB3中的一个源块BLOCK<3>之间不能执行交错操作,因此存储块BLOCK<2,3>可能不会被分组到源超级块中。因此,第三超级块SB2和第四超级块SB3可以被保持为混合超级块。
当混合超级块未被重新分组为源超级块而是保持为混合超级块“预定时间”时,控制器130可以对该混合超级块执行合并操作。换言之,当混合超级块被保持为混合超级块“预定时间”而未被重新分组时,控制器130可以将该混合超级块中包括的有效数据移动到一个或多个普通超级块。
以下描述根据本公开的实施例的存储器系统的效果。
在当通过根据特定条件分组到多个超级块中来操作多个存储块时,读取请求集中的存储块分布在两个或更多个超级块中的情况下,根据本公开的实施例的存储器系统仅对来自多个超级块的读取请求集中的存储块进行分类,将该存储块重新分组到一个或多个超级块中,然后仅对该一个或多个超级块执行合并操作,从而大大减少了以超级块为单位所执行的合并操作的数量。
虽然已经针对具体实施例描述了本公开,但是对于本领域技术人员将显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (18)
1.一种存储器系统,包括:
非易失性存储器装置,包括多个存储块;以及
控制器:根据特定条件将所述多个存储块分组到多个超级块中,所述多个超级块中的每一个包括两个或更多个存储块;对所述多个超级块之中的混合超级块进行分类,所述混合超级块包括源块和普通块,所述源块为读取计数等于或大于参考值的存储块,所述普通块为读取计数小于所述参考值的存储块;根据所述特定条件,将两个或更多个混合超级块中包括的两个或更多个源块收集并重新分组到一个或多个源超级块中;并且将所述一个或多个源超级块的有效数据移动到一个或多个普通超级块,所述一个或多个普通超级块中的每一个仅包括普通块。
2.根据权利要求1所述的存储器系统,其中所述控制器根据所述特定条件将所述两个或更多个混合超级块中包括的两个或更多个普通块收集并重新分组到一个或多个普通超级块中。
3.根据权利要求1所述的存储器系统,其中所述控制器检查多个和值,所述多个和值中的每一个通过对所述多个超级块的每一个中包括的存储块的读取计数进行求和而获得;在所述多个超级块之中选择与等于或大于特定值的和值相对应的超级块;并且根据所选择的超级块中包括的存储块的类型将所选择的超级块分类为所述混合超级块或所述源超级块。
4.根据权利要求3所述的存储器系统,其中当在所选择的超级块中仅包括所述源块时,所述控制器将所选择的超级块分类为所述源超级块;并且当所选择的超级块中包括所述源块和所述普通块时,将所选择的超级块分类为所述混合超级块。
5.根据权利要求1所述的存储器系统,其中所述控制器根据读取计数来检查所述存储块中的每一个,并且根据检查结果对所述多个超级块之中的所述混合超级块进行分类。
6.根据权利要求5所述的存储器系统,其中所述控制器根据所述检查结果将所述多个超级块之中的仅包括源块的超级块分类为所述源超级块,并且根据所述检查结果将所述多个超级块之中的混合了所述源块和所述普通块的超级块分类为所述混合超级块。
7.根据权利要求1所述的存储器系统,其中当检查到在所述非易失性存储器装置中仅存在一个混合超级块预定时间时,所述控制器将所述一个混合超级块的有效数据移动到一个或多个普通超级块。
8.根据权利要求1所述的存储器系统,其中当所述两个或更多个混合超级块中包括的所述两个或更多个源块被收集预定时间但不满足所述特定条件时,所述控制器将所述两个或更多个混合超级块的每一个中存储的有效数据移动到一个或多个普通超级块。
9.根据权利要求1所述的存储器系统,其中所述控制器通过多个数据路径连接到所述非易失性存储器装置,并且所述特定条件包括:所述非易失性存储器装置中的两个或更多个存储块是否能够通过所述多个数据路径以交错方式输入和输出数据。
10.一种操作存储器系统的方法,所述存储器系统包括非易失性存储器装置,所述非易失性存储器装置包括多个存储块,所述方法包括:
根据特定条件将所述多个存储块分组到多个超级块中,所述多个超级块中的每一个包括两个或更多个存储块;
对所述多个超级块之中的混合超级块进行分类,所述混合超级块包括源块和普通块,所述源块为读取计数等于或大于参考值的存储块,所述普通块为读取计数小于所述参考值的存储块;
根据所述特定条件将两个或更多个混合超级块中包括的两个或更多个源块收集并重新分组到一个或多个源超级块中;以及
将所述一个或多个源超级块的有效数据移动到一个或多个普通超级块,所述一个或多个普通超级块中的每一个仅包括普通块。
11.根据权利要求10所述的操作方法,进一步包括:根据所述特定条件将所述两个或更多个混合超级块中包括的两个或更多个普通块收集并重新分组到一个或多个普通超级块中。
12.根据权利要求10所述的操作方法,其中对所述混合超级块进行分类包括:
检查多个和值,所述多个和值中的每一个通过对所述多个超级块的每一个中包括的存储块的读取计数进行求和而获得;
在所述多个超级块之中选择与等于或大于特定值的和值相对应的超级块;以及
根据所选择的超级块中包括的存储块的类型将所选择的超级块分类为所述混合超级块或所述源超级块。
13.根据权利要求12所述的操作方法,其中对所选择的超级块进行分类包括:
当在所选择的超级块中仅包括所述源块时,将所选择的超级块分类为所述源超级块;以及
当在所选择的超级块中包括所述源块和所述普通块时,将所选择的超级块分类为所述混合超级块。
14.根据权利要求10所述的操作方法,其中对所述混合超级块进行分类包括:
根据读取计数来检查所述存储块中的每一个;以及
根据检查结果对所述多个超级块之中的所述混合超级块进行分类。
15.根据权利要求14所述的操作方法,其中对所述混合超级块进行分类包括:
根据所述检查结果将所述多个超级块之中的仅包括所述源块的超级块分类为所述源超级块;以及
根据所述检查结果将所述多个超级块之中的混合了所述源块和所述普通块的超级块分类为所述混合超级块。
16.根据权利要求10所述的操作方法,进一步包括:当检查到在所述非易失性存储器装置中仅存在一个混合超级块预定时间而未将其重新分组到源超级块中时,将所述一个混合超级块的有效数据移动到一个或多个普通超级块。
17.根据权利要求10所述的操作方法,进一步包括:当所述两个或更多个混合超级块中包括的所述两个或更多个源块被收集预定时间但不满足所述特定条件时,将所述两个或更多个混合超级块的每一个中存储的有效数据移动到一个或多个普通超级块。
18.根据权利要求10所述的操作方法,其中多个数据路径连接到所述非易失性存储器装置,并且所述特定条件包括:所述非易失性存储器装置中的两个或更多个存储块是否能够通过所述多个数据路径以交错方式输入和输出数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0128466 | 2019-10-16 | ||
KR1020190128466A KR102653235B1 (ko) | 2019-10-16 | 2019-10-16 | 메모리 블록을 효율적으로 관리할 수 있는 메모리 시스템 및 메모리 시스템의 동작방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112667146A true CN112667146A (zh) | 2021-04-16 |
Family
ID=75403195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010647707.7A Withdrawn CN112667146A (zh) | 2019-10-16 | 2020-07-07 | 有效管理存储块的存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11354051B2 (zh) |
KR (1) | KR102653235B1 (zh) |
CN (1) | CN112667146A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113885778B (zh) * | 2020-07-02 | 2024-03-08 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
US11709612B2 (en) | 2020-07-02 | 2023-07-25 | Silicon Motion, Inc. | Storage and method to rearrange data of logical addresses belonging to a sub-region selected based on read counts |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8095765B2 (en) | 2009-03-04 | 2012-01-10 | Micron Technology, Inc. | Memory block management |
US9798475B2 (en) | 2015-03-11 | 2017-10-24 | Toshiba Memory Corporation | Memory system and method of controlling nonvolatile memory |
KR102605609B1 (ko) * | 2018-04-02 | 2023-11-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102434343B1 (ko) * | 2018-04-23 | 2022-08-22 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
CN110888591B (zh) * | 2018-09-07 | 2023-05-30 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN110888820B (zh) * | 2018-09-07 | 2022-01-25 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN110888593B (zh) * | 2018-09-07 | 2024-01-26 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
US11237973B2 (en) * | 2019-04-09 | 2022-02-01 | SK Hynix Inc. | Memory system for utilizing a memory included in an external device |
KR20210003625A (ko) * | 2019-07-02 | 2021-01-12 | 에스케이하이닉스 주식회사 | 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
KR20210039163A (ko) * | 2019-10-01 | 2021-04-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR20210043314A (ko) * | 2019-10-11 | 2021-04-21 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 |
-
2019
- 2019-10-16 KR KR1020190128466A patent/KR102653235B1/ko active IP Right Grant
-
2020
- 2020-05-22 US US16/882,129 patent/US11354051B2/en active Active
- 2020-07-07 CN CN202010647707.7A patent/CN112667146A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR102653235B1 (ko) | 2024-04-01 |
US11354051B2 (en) | 2022-06-07 |
KR20210045114A (ko) | 2021-04-26 |
US20210117089A1 (en) | 2021-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110928807B (zh) | 用于检查存储器系统中的有效数据的设备和方法 | |
CN110825659B (zh) | 用于检查存储器系统中的块中的有效数据的设备和方法 | |
US11150822B2 (en) | Memory system for determining usage of a buffer based on I/O throughput and operation method thereof | |
US11275525B2 (en) | Apparatus and method for improving write throughput of memory system | |
CN112148632A (zh) | 用于改善存储器系统的输入/输出吞吐量的设备和方法 | |
CN110806837B (zh) | 数据处理系统及其操作方法 | |
CN111581121B (zh) | 用于管理存储器系统中的映射数据的方法和设备 | |
CN113900586A (zh) | 存储器系统及其操作方法 | |
CN110895448A (zh) | 用于管理存储器系统中的有效数据的设备和方法 | |
CN110781023A (zh) | 用于在存储器系统中处理数据的设备和方法 | |
CN112558860A (zh) | 分布和读取数据的存储器系统及其操作方法 | |
CN111752474A (zh) | 控制存储器系统的写入操作的设备和方法 | |
CN112148533A (zh) | 将数据存储在存储器系统的mlc区域中的设备和方法 | |
CN112835811A (zh) | 存储器系统及其操作方法 | |
CN111831578A (zh) | 用于处理存储器系统中的不同类型数据的设备及方法 | |
CN113010098A (zh) | 用于提高存储器系统的输入/输出吞吐量的设备和方法 | |
US11822426B2 (en) | Memory system, data processing system and operation method of the same | |
CN111435334B (zh) | 在存储器系统中检查有效数据的设备和方法 | |
CN112667146A (zh) | 有效管理存储块的存储器系统及其操作方法 | |
CN111435321A (zh) | 处理存储器系统的易失性存储器中的错误的设备和方法 | |
CN113448503B (zh) | 调整顺序命令的操作时间差的存储器系统及其操作方法 | |
US11200960B2 (en) | Memory system, data processing system and operation method of the same | |
CN113849121A (zh) | 用于访问条带形式的数据的存储器系统及其操作方法 | |
CN112445424A (zh) | 提高存储器系统的输入/输出吞吐量的设备和方法 | |
CN113050881A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210416 |
|
WW01 | Invention patent application withdrawn after publication |