CN110647290B - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN110647290B CN110647290B CN201910134128.XA CN201910134128A CN110647290B CN 110647290 B CN110647290 B CN 110647290B CN 201910134128 A CN201910134128 A CN 201910134128A CN 110647290 B CN110647290 B CN 110647290B
- Authority
- CN
- China
- Prior art keywords
- super
- memory
- block
- blocks
- superblocks
- 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
-
- 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
-
- 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/0625—Power saving in 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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/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
- 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
-
- 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/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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
Abstract
本发明涉及一种存储器系统,该存储器系统可包括:包括多个存储块的存储器装置;以及控制器,将多个存储块作为多个超级块进行管理,该控制器可将通过对至少一个坏存储块和正常存储块进行混合和分组而形成的超级块分类和管理为第一超级块,并且可将通过仅对正常存储块进行分组而形成的超级块分类和管理为第二超级块,控制器可检查从主机接收的写入数据的累积大小,可基于累积大小的检查结果将写入数据分组为多个数据组,并且每当形成一个数据组时,可将形成的一个数据组存储在N个第一超级块和M个第二超级块中。
Description
相关申请的交叉引用
本申请要求于2018年6月27日提交的申请号为10-2018-0074106的韩国专利申请的优先权,其整体通过引用并入本文。
技术领域
示例性实施例涉及一种存储器系统,且更特别地,涉及一种包括非易失性存储器装置的存储器系统及该存储器系统的的操作方法。
背景技术
计算机环境范例已经变为可在任何时间和任何地点使用的普适计算系统。因此,诸如移动电话、数码照相机和笔记本电脑的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可用作便携式电子装置的主存储装置或辅助存储装置。
因为存储器系统没有移动部件,所以它们可提供优良的稳定性、耐用性、高信息存取速度以及低功耗。具有这种优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态硬盘(SSD)。
发明内容
各个实施例涉及一种能够通过将存储块分组为超级存储块来管理包括在存储器装置中的多个存储块的存储器系统,以及操作该存储器系统的方法。
在实施例中,一种存储器系统可包括:存储器装置,包括每个包括多个页面的多个存储块,每个包括多个存储块的多个平面,以及每个包括多个平面的多个管芯;以及控制器,被配置成将多个存储块作为多个超级块进行管理,通过以对应于设定条件的形式对多个存储块进行分组来形成多个超级块,控制器可将通过对至少一个坏存储块和正常存储块进行混合和分组而形成的超级块分类和管理为多个超级块中的第一超级块,并且可将通过仅对正常存储块进行分组而形成的超级块分类和管理为多个超级块中的第二超级块,控制器可检查从主机接收的写入数据的累积大小,可基于累积大小的检查结果将写入数据分组为多个数据组,并且每当形成一个数据组时,可将形成的一个数据组存储在N个第一超级块和M个第二超级块中,其中N是1或更大的自然数,M是大于N的自然数。
基于累积大小的检查结果,每当写入数据的累积大小变为设定大小时,控制器可将具有对应于设定大小的大小的写入数据分组为一个数据组,并且将该一个数据组存储在N个第一超级块和M个第二超级块中,并且可基于存储器装置的状态来预先确定该设定大小,并且可基于预先确定的设定大小来预先确定N和M的值。
控制器可管理:第一使用计数,指示N个第一超级块之中的用于存储一个数据组的第一超级块的数量;第二使用计数,指示M个第二超级块之中的用于存储一个数据组的第二超级块的数量。
当第二使用计数不同于M时,控制器可选择M个第二超级块中的任何一个,可增加第二使用计数的值,然后可将写入数据存储在所选择的第二超级块中。
当第二使用计数等于M时,控制器可选择N个第一超级块中的任何一个,可增加第一使用计数的值,然后可将写入数据存储在所选择的第一超级块中,并且当第一使用计数的增加值等于N时,控制器可初始化第一和第二使用计数的各自值。
控制器可将第一超级块之中的每个包括数量为设定值或更少的坏块的第一超级块分类和管理为第三超级块,控制器将第一超级块之中的每个包括数量超过设定值的坏块的第一超级块分类和管理为第四超级块,当写入数据是第一类数据时,控制器可将形成的一个数据组存储在K个第三超级块和I个第二超级块中,当写入数据是第二类数据时,控制器可将形成的一个数据组存储在L个第四超级块和J个第二超级块中,K可以是1或更大的自然数,K可以是小于I的自然数,L是小于J的自然数,L是大于K的自然数,并且N可以是通过将K与L相加而获得的数。
当写入数据是第一类数据时,基于累积大小的检查结果,每当写入数据的累积大小可变为第一设定大小,控制器可将具有对应于第一设定大小的大小的写入数据分组为一个数据组,并且可将该一个数据组存储在K个第三超级块和I个第二超级块中,当写入数据是第二类数据时,基于累积大小的检查结果,每当写入数据的累积大小可变为第二设定大小,控制器可将具有对应于第二设定大小的大小的写入数据分组为一个数据组,并且可将该一个数据组存储在L个第四超级块和J个第二超级块中,并且可基于存储器装置的状态来预先确定第一和第二设定大小,可基于预先确定的设定大小来预先确定N、K、L、M、I和J的值。
控制器可管理:第二使用计数,指示I或J个第二超级块之中的用于存储一个数据组的第二超级块的数量;第三使用计数,指示K个第三超级块之中的用于存储一个数据组的第三超级块的数量;以及第四使用计数,指示L个第四超级块之中的用于存储一个数据组的第四超级块的数量。
当写入数据是第一类数据并且第二使用计数不同于I时,控制器可选择I个第二超级块中的任何一个,可增加第二使用计数的值,然后可将写入数据存储在所选择的第二超级块中,并且当写入数据是第二类数据并且第二使用计数不同于J时,控制器可选择J个第二超级块中的任何一个,可增加第二使用计数的值,然后可将写入数据存储在所选择的第二超级块中。
当写入数据是第一类数据并且第二使用计数等于I时,控制器可选择K个第三超级块中的任何一个,可增加第三使用计数的值,然后可将写入数据存储在所选择的第三超级块中,并且当第三使用计数的增加值等于K时,控制器可初始化第二和第三使用计数的各自值;并且当写入数据是第二类数据并且第二使用计数等于J时,控制器可选择L个第四超级块中的任何一个,可增加第四使用计数的值,然后可将写入数据存储在所选择的第四超级块中,并且当第四使用计数的增加值等于L时,控制器可初始化第二和第四使用计数的各自值。
在实施例中,一种操作存储器系统的方法,该存储器系统包括存储器装置,该存储器装置包括每个包括多个页面的多个存储块、每个包括多个存储块的多个平面以及每个包括多个平面的多个管芯,该方法可包括:将多个存储块作为多个超级块进行管理,通过以对应于设定条件的形式对多个存储块进行分组来形成多个超级块;执行第一操作,将通过对至少一个坏存储块和正常存储块进行混合和分组而形成的超级块分类和管理为多个超级块中的第一超级块;执行第二操作,将通过仅对正常存储块进行分组而形成的超级块分类和管理为多个超级块中的第二超级块;执行第三操作,检查从主机接收的写入数据的累积大小,并且基于累积大小的检查结果将写入数据分组为多个数据组;以及执行存储操作,每当在第三操作中形成一个数据组时,将形成的一个数据组存储在第一操作中形成的第一超级块之中的N个第一超级块和第二操作中形成的第二超级块之中的M个第二超级块中,N可以是1或更大的自然数,M是大于N的自然数。
第三操作可包括:基于累积大小的检查结果,每当写入数据的累积大小变为设定大小时,将具有对应于设定大小的大小的写入数据分组为一个数据组,并且可基于存储器装置的状态来预先确定该设定大小,并且可基于预先确定的设定大小来预先确定N和M的值。
该方法可进一步包括:管理第一使用计数和第二使用计数,该第一使用计数指示N个第一超级块之中的用于存储一个数据组的第一超级块的数量,该第二使用计数指示M个第二超级块之中的用于存储一个数据组的第二超级块的数量,在存储操作中使用第一和第二使用计数。
执行存储操作可包括:当第二使用计数不同于M时,选择M个第二超级块中的任何一个,增加第二使用计数的值,然后将写入数据存储在所选择的第二超级块中。
执行存储操作可包括:当第二使用计数等于M时,选择N个第一超级块中的任何一个,增加第一使用计数的值,然后将写入数据存储在所选择的第一超级块中,并且当第一使用计数的增加值等于N时,初始化第一和第二使用计数的各自值。
该方法可进一步包括:执行第四操作,将在第一操作中分类的第一超级块之中的每个包括数量为设定值或更少的坏块的第一超级块分类和管理为第三超级块;以及执行第五操作,将在第一操作中分类的第一超级块之中的每个包括数量超过设定值的坏块的第一超级块分类和管理为第四超级块,执行存储操作可包括:执行第一存储操作,当写入数据是第一类数据时,将在第三操作中形成的一个数据组存储在第四操作中分类的第三超级块之中的K个第三超级块中和在第二操作中分类的第二超级块之中的I个第二超级块中;以及执行第二存储操作,当写入数据是第二类数据时,将在第四操作中形成的一个数据组存储在第五操作中分类的第四超级块之中的L个第四超级块中和在第二操作中分类的第二超级块之中的J个第二超级块中,并且K可以是1或更大的自然数,K可以是小于I的自然数,L可以是小于J的自然数,L可以是大于K的自然数,N可以是通过将K与L相加而获得的数。
执行第三操作可包括:当写入数据是第一类数据并且基于累积大小的检查结果,每当写入数据的累积大小变为第一设定大小时,可将具有对应于第一设定大小的大小的写入数据分组为一个数据组,当写入数据是第二类数据并且基于累积大小的检查结果,每当写入数据的累积大小变为第二设定大小时,可将具有对应于第二设定大小的大小的写入数据分组为一个数据组,并且可基于存储器装置的状态来预先确定第一和第二设定大小,可基于预先确定的设定大小来预先确定N、K、L、M、I和J的值。
该方法可进一步包括:管理第二使用计数、第三使用计数和第四使用计数,其中第二使用计数指示I或J个第二超级块之中的用于存储写入数据的第二超级块的数量,第三使用计数指示K个第三超级块之中的用于存储写入数据的第三超级块的数量,并且第四使用计数指示L个第四超级块之中的用于存储写入数据的第四超级块的数量。
执行第一存储操作可包括:当第二使用计数不同于I时,选择I个第二超级块中的任何一个,增加第二使用计数的值,然后将写入数据存储在所选择的第二超级块中;并且执行第二存储操作可包括:当第二使用计数不同于J时,选择J个第二超级块中的任何一个,增加第二使用计数的值,然后将写入数据存储在所选择的第二超级块中。
执行第一存储操作可包括:当第二使用计数等于I时,选择K个第三超级块中的任何一个,增加第三使用计数的值,然后将写入数据存储在所选择的第三超级块中,并且当第三使用计数的增加值等于K时,初始化第二和第三使用计数的各自值;并且执行第二存储操作可包括:当第二使用计数等于J时,选择L个第四超级块中的任何一个,增加第四使用计数的值,然后将写入数据存储在所选择的第四超级块中,并且当第四使用计数的增加值等于L时,初始化第二和第四使用计数的各自值。
在实施例中,存储器系统可包括:包括多个存储块的存储器装置;以及控制器,适于:将多个存储块作为包括正常超级块和缺陷(insufficient)超级块的多个超级块进行管理,缺陷超级块中的每一个包括至少一个坏存储块和正常存储块;并且基于写入数据的量来控制待用于存储写入数据的正常超级块的数量和缺陷超级块的数量。
附图说明
根据参照附图的以下具体实施方式,本发明的这些和其它特征及优点对于本发明所属领域的技术人员将变得显而易见,其中:
图1是示出包括根据本发明的实施例的存储器系统的数据处理系统的框图;
图2是示出图1所示的存储器系统中采用的存储器装置的示图;
图3是示出图2所示的存储器装置中的存储块的存储器单元阵列的电路图;
图4是示出图2所示的存储器装置的三维结构的示图;
图5是示出根据本发明的实施例的存储器系统中使用的超级存储块的示图;
图6A和图6B是示出根据本发明的实施例的在存储器系统中以超级存储块为单位来管理存储块的操作的示图;
图7至图10是示出根据实施例的在存储器系统中对包括坏存储块的超级存储块进行管理的操作的示图;
图11至图19是示出根据本发明的各个实施例的数据处理系统的应用示例的示图。
具体实施方式
以下参照附图更详细地描述本发明的各个实施例。然而,我们注意到,本发明可以包括任何所公开的实施例的变型的不同形式来实施。因此,本发明不限于本文阐述的实施例。相反,提供所描述的实施例使得本公开完整和全面并将本发明充分地传达给本发明所属领域的技术人员。在整个公开中,相同的附图标记在整个本发明的各个附图和实施例中表示相同的部件。而且,在整个说明书中,对“一个实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然术语“第一”、“第二”、“第三”等可在本文使用以识别各个元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与另一个具有相同或相似名称的元件区分开。因此,在不脱离本发明的技术方案和范围的情况下,一个示例中的第一元件在另一示例中可被称为第二元件或第三元件。
附图不一定按比例绘制,在一些情况下,为了清楚地示出实施例的特征,可能已经放大了比例。
将进一步理解的是,除非另有说明,或者上下文另有要求,否则当一个元件被称为“连接到”、“联接到”另一个元件或与另一个元件“通信”时,这种连接、联接或通信可以是有线的或无线的,也可以是直接的或间接的,即通过一个或多个中间元件实现。此外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之中的唯一元件,或者也可存在一个或多个中间元件。
本文使用的术语的目的是描述特定实施例而不旨在限制本发明。如本文使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式,反之亦然。将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,但不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和全部组合。
除非另有限定,否则本文所使用的包括技术术语和科学术语的所有术语具有与本发明所属领域中普通技术人员通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中限定的那些术语的术语应被理解为具有与它们在本公开的上下文和相关领域中的含义一致的含义并且将不以理想化或过于正式的意义来解释,除非本文如此明确地限定。
在下面的描述中,为了提供对本发明的全面理解,描述了大量的具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
也应注意的是,在一些情况下,对相关领域的技术人员显而易见的是,结合一个实施例描述的特征或元件可单独使用或与另一实施例的其它特征或元件结合使用,除非另有明确说明。
图1是示出包括根据本发明的实施例的存储器系统110的数据处理系统100的框图。
参照图1,数据处理系统100可包括主机102和存储器系统110。
主机102可被实施为诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置中的任何一种,或者被实施为诸如台式计算机、游戏机、电视(TV)和投影仪的各种非便携式电子装置中的任何一种。
存储器系统110可响应于主机102的请求来为主机102存储数据。存储器系统110的非限制示例包括固态硬盘(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用存储总线(USB)装置、通用闪存(UFS)装置、标准闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA)卡和记忆棒。MMC可包括嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)和微型-MMC。SD卡可包括迷你-SD卡和微型-SD卡。
存储器系统110可由各种类型的存储装置中的任何一种来实施。存储器系统110中的存储装置的非限制性示例包括诸如动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置和诸如以下的非易失性存储器装置:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM)和闪速存储器。闪速存储器可具有三维(3D)堆叠结构。
存储器系统110可包括控制器130和存储器装置150。存储器装置150可为主机120存储数据,并且控制器130可控制到储器装置150中的数据存储。
控制器130和存储器装置150可被集成到单个半导体装置中,单个半导体装置可被实施为如上例示的各种类型的存储器系统中的任何一种中。
存储器系统110的非限制性应用示例包括计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、3维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、建立数据中心的存储装置、能够在无线环境下传输/接收信息的装置、建立家庭网络的各种电子装置中的一个、建立计算机网络的各种电子装置中的一个、建立远程信息处理的各种电子装置中的一个、射频识别(RFID)装置或建立计算系统的各种部件中的一个。
存储器装置150可以是非易失性存储器装置,即使不供应电力,其也保留其中存储的数据。存储器装置150可通过写入操作存储从主机102提供的数据,并且通过读取操作将存储在其中的数据提供给主机102。存储器装置150可以包括多个存储器管芯(未示出),每个存储器管芯包括多个平面(未示出),每个平面包括多个存储块152至156,存储块中的每一个可包括多个页面。页面中的每一个可包括联接到字线的多个存储器单元。
控制器130可以响应于来自主机102的请求来控制存储器装置150。例如,控制器130可将从存储器装置150读取的数据提供给主机102,并将由主机102提供的数据存储到存储器装置150中。对于该操作,控制器130可控制存储器装置150的读取操作、写入操作、编程操作和擦除操作。
控制器130可包括主机接口(I/F)132、处理器134、错误校正码(ECC)部件138、电源管理单元(PMU)140、存储器接口(I/F)(或NAND闪速控制器(NFC))142以及存储器144,其全部通过内部总线可操作地联接。
主机接口132可被配置成处理主机102的命令和数据,并可通过诸如以下的各种接口协议中的一种或多种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
ECC部件138可检测并且校正从存储器装置150读取的数据中包含的错误。换言之,ECC部件138可通过在ECC编码进程期间使用的ECC代码对从存储器装置150读取的数据执行错误校正解码进程。根据错误校正解码进程的结果,ECC部件138可输出信号,例如错误校正成功/失败信号。当错误位的数量大于可校正错误位的阈值时,ECC部件138不校正错误位,并且相反地,可输出错误校正失败信号。
ECC部件138可通过诸如低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、涡轮码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等的编码调制执行错误校正操作。然而,ECC部件138不限于这些校正技术。同样地,ECC部件138可包括适于错误校正的所有电路、模块、系统或装置。
PMU 140可提供和管理控制器130的电力。
NFC 142可以用作用于将控制器130和存储器装置150接口连接的存储器或存储接口,使得控制器130响应于来自主机102的请求来控制存储器装置150。当存储器装置150是闪速存储器或具体是NAND闪速存储器时,NFC 142可以在处理器134的控制下生成用于存储器装置150的控制信号并且处理待提供给存储器装置150的数据。NFC 142可以用作用于处理控制器130和存储器装置150之间的命令和数据的接口(例如,NAND闪存接口)。具体地,NFC 142可以支持控制器130和存储器装置150之间的数据传送。
存储器144可用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可响应于来自主机102的请求控制存储器装置150执行读取操作、写入操作、编程操作和擦除操作。控制器130可将从存储器装置150读取的数据提供给主机102并可将从主机102提供的数据存储到存储器装置150中。存储器144可存储控制器130和存储器装置150执行这些操作所需的数据。
存储器144可通过易失性存储器来实施。例如,存储器144可通过静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实施。存储器144可被设置在控制器130的内部或外部。图1示出了设置在控制器130内部的存储器144。然而,在另一实施例中,存储器144可由具有在存储器144和控制器130之间传输数据的存储器接口的外部易失性存储器实施。
处理器134可控制存储器系统110的全部操作。处理器134可驱动固件来控制存储器系统110的全部操作。固件可被称为闪存转换层(FTL)。
控制器130的处理器134可包括用于执行存储器装置150的坏块管理操作的管理单元(未示出)。管理单元可执行对存储器装置150中的多个存储块152至156中,由于NAND闪速存储器的特性而在编程操作期间发生编程失败的块(即,坏块)进行识别的坏块管理操作。管理单元可将坏块的编程失败数据写入新的存储块。在具有3D堆叠结构的存储器装置150中,坏块管理操作可能降低存储器装置150的使用效率和存储器系统110的可靠性。因此,坏块管理操作需要被更可靠地执行。
图2是示出图1中的存储器系统110的存储器装置150的示图。
参照图2,存储器装置150可包括多个存储块0至N-1,并且块0至N-1中的每一个可包括多个页面,例如2M个页面,页面的数量可根据电路设计而变化。各个存储块0至N-1中的存储器单元可以是存储1位数据的单层单元(SLC)或存储2位或更多位数据的多层单元(MLC)中的一个或多个。在实施例中,存储器装置150可包括多个三层单元(TLC),多个TLC中每个存储3位数据。在另一实施例中,存储器装置150可包括多个四层单元(QLC),多个QLC中的每个存储4位数据。
图3是示出存储器装置150中的存储块330的存储器单元阵列的电路图。
参照图3,可对应于存储器系统110的存储器装置150中的多个存储块152至156中的任意一个的存储块330可包括联接到多个相应位线BL0至BLm-1的多个单元串340。在单元串340中,每一列可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。多个存储器单元MC0至MCn-1可串联地被联接在漏极选择晶体管DST和源极选择晶体管SST之间。在实施例中,存储器单元晶体管MC0至MCn-1的每一个可通过能够存储多个位的数据信息的MLC来实施。单元串340中的每一个可被电联接到多个位线BL0至BLm-1中的相应位线。例如,如图3所示,第一单元串联接到第一位线BL0,并且最后单元串联接到最后位线BLm-1。
虽然图3示出NAND闪速存储器单元,但是本发明不限于此配置。存储器单元可以是NOR闪速存储器单元或者包括在其中组合的两种或更多种存储器单元的混合闪速存储器单元。另外,应注意的是,存储器装置150可以是包括作为电荷存储层的导电浮栅的闪速存储器装置,或是包括作为电荷存储层的绝缘层的电荷撷取闪存(CTF)存储器装置。
存储器装置150可进一步包括提供字线电压的电压供给310,字线电压包括根据操作模式供应至字线的编程电压、读取电压和通过电压。电压供给310的电压产生操作可由控制电路(未示出)来控制。在控制电路的控制下,电压供给310可选择存储器单元阵列的存储块(或扇区)中的一个,选择所选择的存储块的字线中的一个,并且按需要将字线电压提供给所选择的字线和未选择的字线。
存储器装置150可包括由控制电路控制的读取和写入(读取/写入)电路320。在验证/正常读取操作期间,读取/写入电路320可用作用于从存储器单元阵列读取数据的读出放大器。在编程操作期间,读取/写入电路320可根据待存储在存储器单元阵列中的数据用作用于驱动位线的写入驱动器。在编程操作期间,读取/写入电路320可从缓冲器(未示出)接收待被存储到存储器单元阵列中的数据,并根据接收的数据驱动位线。读取/写入电路320可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器(PB)322至326。页面缓冲器322至326中的每一个可包括多个锁存器(未示出)
图4是示出图2中的存储器装置150的三维(3D)结构的示图。
存储器装置150可以由二维(2D)或3D存储器装置来实施。具体地,如图4所示,存储器装置150可以由具有3D堆叠结构的非易失性存储器装置来实施。当存储器装置150具有3D结构时,存储器装置150可包括多个存储块BLK0至BLKN-1,其各自具有3D结构(或垂直结构)。
图5是示出根据本发明的实施例的存储器系统中使用的超级存储块的示图。
参照图5,存储器装置150可包括管芯、平面和存储块的布置。
存储器装置150包括多个存储块BLOCK000、BLOCK001、BLOCK002、……和BLOCK00N,BLOCK010、BLOCK011、BLOCK012、……和BLOCK01N,BLOCK100、BLOCK101、BLOCK102、……和BLOCK10N,以及BLOCK110、BLOCK111、BLOCK112、……和BLOCK11N。
存储器装置150包括能够通过第零通道CH0输入/输出数据的第零存储器管芯DIE0和能够通过第一通道CH1输入/输出数据的第一存储器管芯DIE1。第零通道CH0和第一通道CH1可以交错方案输入/输出数据。
第零存储器管芯DIE0包括分别对应于多个通路WAY0和WAY1的多个平面PLANE00和PLANE01,多个通路WAY0和WAY1能够通过共享第零通道CH0以交错方案输入/输出数据。
第一存储器管芯DIE1包括分别对应于多个通路WAY2和WAY3的多个平面PLANE10和PLANE11,多个通路WAY2和WAY3能够通过共享第一通道CH1以交错方案输入/输出数据。
第零存储器管芯DIE0的第一平面PLANE00包括所有多个存储块BLOCK000、BLOCK001、BLOCK002、……和BLOCK00N,BLOCK010、BLOCK011、BLOCK012、……和BLOCK01N,BLOCK100、BLOCK101、BLOCK102、……和BLOCK10N,以及BLOCK110、BLOCK111、BLOCK112、……和BLOCK11N之中的设定或预定数量的存储块,即BLOCK000、BLOCK001、BLOCK002、……和BLOCK00N。
第零存储器管芯DIE0的第二平面PLANE01包括所有多个存储块之中的设定或预定数量的存储块,即BLOCK010、BLOCK011、BLOCK012、……和BLOCK01N。
第一存储器管芯DIE1的第一平面PLANE10包括所有多个存储块之中的设定或预定数量的存储块,即BLOCK100、BLOCK101、BLOCK102、……和BLOCK10N。
第一存储器管芯DIE1的第二平面PLANE11包括所有多个存储块之中的设定或预定数量的存储块,即BLOCK110、BLOCK111、BLOCK112、……和BLOCK11N。
以这种方式,可根据物理位置来划分存储器装置150中的多个存储块,使得相同平面中的块使用相同的通路,并且相同管芯中的块使用相同的通道。
虽然在图5中示出存储器装置150包括两个管芯,管芯中的每一个包括两个平面,但这仅是示例。基于设计和操作考虑,存储器装置150中的存储器管芯的数量可以是任何适当的数量,并且每个存储器管芯中的平面的数量同样可与图5所示的示例中的数量不同。当然,根据设计和操作考虑,每个平面中存储块的设定或预定数量也可以是不同的。
而且,与根据物理位置来划分存储块不同,控制器130可使用根据存储块的同时选择和操作来划分存储块的方案。也就是说,控制器130可通过对能够被同时选择的存储块进行分组并且因此将多个存储块划分为超级存储块来对多个存储块进行管理。
根据设计考虑,由控制器130分组为超级存储块的多个存储块可根据各种方案被进行划分。例如,本文将描述三种方案。
在第一方案中,控制器130可通过将第零存储器管芯DIE0的第一平面PLANE00中的一个存储块BLOCK000和第零存储器管芯DIE0的第二平面PLANE01中的一个存储块BLOCK010进行分组来在存储器装置150中创建和管理一个超级存储块A1。当将第一方案应用于第一存储器管芯DIE1时,控制器130可通过将第一平面PLANE10中的一个存储块BLOCK100和第二平面PLANE11中的一个存储块BLOCK110进行分组来创建和管理一个超级存储块A2。
在第二方案中,控制器130可创建和管理一个超级存储块B1,以包括第零存储器管芯DIE0的第一平面PLANE00中的存储块BLOCK002和第一存储器管芯DIE1的第一平面PLANE10中的一个存储块BLOCK102。当再次应用第二方案时,控制器130可通过将第零存储器管芯DIE0的第二平面PLANE01中的一个存储块BLOCK012和第一存储器管芯DIE1的第二平面PLANE11中的一个存储块BLOCK112进行分组来创建和管理一个超级存储块B2。因此,第一方案将来自相同管芯中的两个不同平面的两个存储块分组成超级块,而第二方案将来自不同管芯中的每一个的一个块分组成超级块。任何一种方案的方法都可扩展到应用于两个以上管芯并且一个管芯中存在两个以上平面的布置。
在第三方案中,控制器130可通过对第零存储器管芯DIE0的第一平面PLANE00中的一个存储块BLOCK001、第零存储器管芯DIE0的第二平面PLANE01中的一个存储块BLOCK011、第一存储器管芯DIE1的第一平面PLANE10中的一个存储块BLOCK101以及包括在第一存储器管芯DIE1的第二平面PLANE11中的一个存储块BLOCK111进行分组来创建和管理一个超级存储块C。因此,在第三方案中,将来自每个管芯中的每个平面的两个块进行分组以形成超级块。如下面进一步描述的,第三方案也可扩展到应用于更复杂的管芯/平面布置。
可通过例如以下的交错方案基本上同时选择通过被包括在相同超级存储块中而能够被同时选择的存储块:通道交错方案、存储器管芯交错方案、存储器芯片交错方案或通路交错方案。
图6A和图6B是示出根据本发明的实施例的在存储器系统中以超级存储块为单位来管理存储块的操作的示图。
参照图6A,控制器130可使用通过将多个存储块划分为超级存储块来形成超级存储块的方案来管理存储器装置150中的多个存储块。
在图6A中,存储器装置150包括八个存储器管芯DIE<0:7>。八个存储器管芯DIE<0:7>中的每一个包括四个平面PLANE<0:3>以允许八个存储器管芯DIE<0:7>包括总共32个平面(即,PLANE<0:3>*8)。32个平面PLANE<0:3>*8中的每一个可包括1024个存储块BLOCK<0:1023>。也就是说,存储器装置150可包括总共32768个存储块BLOCK<0:1023>*32。
在图6A所示的存储器装置150中,八个存储器管芯DIE<0:7>中的总共32个平面PLANE<0:3>*8可通过两个通道CH<0:1>和八个通路WAY<0:7>输入和/或输出数据。即,四个通路WAY<0:3>或WAY<4:7>共享一个通道CH0或CH1。四个平面PLANE<0:3>共享WAY0、WAY1、WAY2、WAY3、WAY4、WAY5、WAY6和WAY7之中的一个通路。
存储器系统110的控制器130使用以超级存储块为单位管理存储器装置150中的多个存储块的方案。特别地,可以看出的是,图6A所示的实施例使用如上参照图5所述的控制器130将存储块划分为超级存储块的第三方案。
也就是说,在图6A中,控制器130通过在存储器装置150中的32个平面PLANE<0:3>*8的每一个中选择一个存储块来形成超级存储块SUPER BLOCK<0:1023>中的每一个,并且管理这些超级块。因此,超级存储块SUPER BLOCK<0:1023>中的每一个包括32个存储块。
因为控制器130同时选择超级存储块SUPER BLOCK<0:1023>中的每一个中的32个存储块,所以在如图6A所示的以超级存储块为单位进行管理的配置中,可使用用于选择各个超级存储块SUPER BLOCK<0:1023>的超级存储块地址(未示出)。
以这种方式,为了使用超级存储块地址,控制器130使用以下方案:通过对存储器装置150中的各个32个平面PLANE<0:3>*8中的相同相对位置的存储块进行分组来管理超级存储块。
例如,控制器130通过对各个32个平面PLANE<0:3>*8中的32个第零存储块BLOCK0进行分组来形成和管理第零超级存储块SUPER BLOCK0。控制器130通过对各个32个平面PLANE<0:3>*8中的32个第一存储块BLOCK1进行分组来形成和管理第一超级存储块SUPERBLOCK1。控制器130通过对各个32个平面PLANE<0:3>*8中的32个第二存储块BLOCK2进行分组来形成和管理第二超级存储块SUPER BLOCK2。以这种方式,控制器130通过对各自包括32个存储块的1024个超级存储块SUPER BLOCK<0:1023>进行管理,来管理存储器装置150中的32768个存储块BLOCK<0:1023>*32。
控制器130通过对超级块SUPER BLOCK<0:1023>进行管理来管理存储块BLOCK<0:1023>*32的事实表示控制器130将访问处理单位设置为超级存储块单位。即使控制器130通过使用超级存储块SUPER BLOCK<0:1023>中的每一个的超级存储块地址来选择超级存储块中的每一个,在控制器130中也使用每一个存储块地址。例如,控制器130通过第零超级存储块地址来访问第零超级存储块SUPER BLOCK0的事实表示一次访问了与各个32个平面PLANE<0:4>*8中的、被分组成第零超级存储块SUPER BLOCK0的32个第零存储块BLOCK0相对应的32个存储块。
对于存储器装置150中的所有存储块都正常地操作,这几乎是不可能的。即,当安装和使用存储器装置150时,在多个存储块之中可能存在至少一个无法操作的坏存储块。因为这种具有较差耐用性的存储块可能即使在未达到其寿命限制时也无法执行正常操作,所以这种存储块可被确定为坏存储块。
如上所述,在控制器130使用通过对各个32个平面PLANE<0:3>*8中相同相对位置或定位的存储块进行分组来管理超级存储块的方案的情况下,对于超级存储块SUPERBLOCK<0:1023>之中的包括坏存储块的超级存储块,不可能将访问处理单位设置为超级存储块单位。
例如,即使只有一个存储块是坏存储块而所有剩余的31个存储块都是好存储块,如果无法将相应的超级存储块的访问处理单位设置为超级存储块单位,则管理这种超级块将是显著低效的。
根据这一事实,如图6B所示,通过采用再生超级块表700,重新使用所包括的至少一个存储块是坏存储块的超级存储块。
参照图6B,在存储器装置150中的所有超级存储块SUPER BLOCK之中,第718超级存储块SUPER BLOCK718、第820超级存储块SUPER BLOCK820和第829超级存储块SUPERBLOCK829中的每一个中的32个存储块之中的一个或多个存储块被确定为坏存储块。
详细地,包括在第718超级存储块SUPER BLOCK718中的32个存储块之中,第一存储器管芯DIE1的第一平面PLANE1中的存储块被确定为坏存储块,并且剩余的31个存储块是好存储块。
包括在第820超级存储块SUPER BLOCK820中的32个存储块之中,第三存储器管芯DIE3的第一平面PLANE1中的存储块和第四存储器管芯DIE4的第一平面PLANE1中的存储块被确定为坏存储块,并且剩余的30个存储块是好存储块。
包括在第829超级存储块SUPER BLOCK829中的32个存储块之中,第零存储器管芯DIE0的第一平面PLANE1中的存储块被确定为坏存储块,并且剩余的31个存储块是好存储块。
在这种状态下,控制器130生成再生超级块表700,以利用好存储块替换各个被确定为坏超级存储块的第718超级存储块SUPER BLOCK718、第820超级存储块SUPER BLOCK820和第829超级存储块SUPER BLOCK829中的坏存储块,从而再生正常操作的超级存储块。
详细地,为了重新使用第718超级存储块SUPER BLOCK718,控制器130应当搜索能够替换第一存储器管芯DIE1的第一平面PLANE1中的坏存储块的存储块。
为此,控制器130搜索超级存储块SUPER BLOCK<0:1023>之中的包括至少一个坏存储块的超级存储块。控制器130可排除仅具有好存储块的任何超级存储块作为搜索目标。
控制器130可搜索到包括两个坏存储块的第820超级存储块SUPER BLOCK820。在这种情况下,控制器130检查第820超级存储块SUPER BLOCK820中的任何一个坏存储块的位置或定位是否与第718超级存储块SUPER BLOCK718中的坏存储块的位置或定位相同。
如果第820超级存储块SUPER BLOCK820中的任何一个坏存储块的位置与第718超级存储块SUPER BLOCK718中的坏存储块的位置相同,则排除第820超级存储块SUPERBLOCK820作为搜索目标,并搜索另一超级存储块。相反地,如果第820超级存储块SUPERBLOCK820中的任何一个坏存储块的位置与第718超级存储块SUPER BLOCK718中的坏存储块的位置不同,则将第820超级存储块SUPER BLOCK820确定为搜索目标超级存储块。
如从图6B中可以看出,第718超级存储块SUPER BLOCK718的坏存储块位于第一存储器管芯DIE1的第一平面PLANE1中,第820超级存储块SUPER BLOCK820的坏存储块位于第三存储器管芯DIE3的第一平面PLANE1和第四存储器管芯DIE4的第一平面PLANE1中。换言之,第820超级存储块SUPER BLOCK820中的坏存储块的位置与第718超级存储块SUPERBLOCK718中的坏存储块的位置不重叠。
因此,控制器130确定第820超级存储块SUPER BLOCK820作为搜索目标,并生成再生超级块表700,使得第820超级存储块SUPER BLOCK820中的32个存储块之中的第一存储器管芯DIE1的第一平面PLANE1中的存储块可用于第718超级存储块SUPER BLOCK718。
即,为了替换第718超级存储块SUPER BLOCK718,控制器130将再生超级块表700的第一行设置为第零再生超级存储块RE SUPER BLOCK0,并且存储用于替换第718超级存储块SUPER BLOCK718的32个存储块的块地址值。
因此,在存储在再生超级块表700的第一行中的第零再生超级存储块RE SUPERBLOCK0的值中,仅用于指示第一存储器管芯DIE1的第一平面PLANE1中的存储块的一个块地址是第820超级存储块SUPER BLOCK820的块地址,并且所有剩余的31个块地址是第718超级存储块SUPER BLOCK718的块地址。
以这种方式,因为生成了再生超级块表700,所以当控制器130访问第718超级存储块SUPER BLOCK718时,可参考存储在再生超级块表700的第一行中的第零再生超级存储块RE SUPER BLOCK0的值。
然后,为了重新使用第820超级存储块SUPER BLOCK820,控制器130应当搜索能够替换包括在第820超级存储块SUPER BLOCK820中的32个存储块之中的第一存储器管芯DIE1的第一平面PLANE1中的存储块、第三存储器管芯DIE3的第一平面PLANE1中的坏存储块和第四存储器管芯DIE4的第一平面PLANE1中的坏存储块的存储块。
虽然在第820超级存储块SUPER BLOCK820中的32个存储块之中只存在两个坏存储块,但是可对能够替换包括在第820超级存储块SUPER BLOCK820中的32个存储块之中的三个存储块的存储块进行搜索。对能够替换包括在第820超级存储块SUPER BLOCK820中的32个存储块之中的三个存储块的存储块进行搜索的原因在于:第820超级存储块SUPERBLOCK820的一个存储块被用于正常地操作作为再生超级存储块的第718超级存储块SUPERBLOCK718。即,原因在于使用包括在第820超级存储块SUPER BLOCK820中的32个存储块之中的第一存储器管芯DIE1的第一平面PLANE1中的存储块,来生成再生超级块表700。
因此,为了重新使用第820超级存储块SUPER BLOCK820,控制器130对超级存储块SUPER BLOCK<0:1023>之中的包括至少一个坏存储块的超级存储块进行搜索。控制器130可排除超级存储块SUPER BLOCK<0:1023>之中的仅包括好存储块的任何超级存储块作为搜索目标。
控制器130可搜索到包括一个坏存储块的第829超级存储块SUPER BLOCK829。在这种情况下,控制器130检查第829超级存储块SUPER BLOCK829中的坏存储块的位置是否与第718超级存储块SUPER BLOCK718中的坏存储块的位置和第820超级存储块SUPER BLOCK820中的坏存储块的位置相同。
如果存在相同位置的块,即如果第829超级存储块SUPER BLOCK829中的坏存储块的位置与第718超级存储块SUPER BLOCK718中的坏存储块的位置和第820超级存储块SUPERBLOCK820中的坏存储块的位置相同,则排除第829超级存储块SUPER BLOCK829作为搜索目标,并且搜索另一超级存储块。相反地,如果不存在位置重叠,则确定第829超级存储块SUPER BLOCK829作为搜索目标超级存储块。
如从图6B中可以看出,第829超级存储块SUPER BLOCK829的坏存储块位于第零存储器管芯DIE0的第一平面PLANE1中,第718超级存储块SUPER BLOCK718的坏存储块位于第一存储器管芯DIE1的第一平面PLANE1中,第820超级存储块SUPER BLOCK820的坏存储块位于第三存储器管芯DIE3的第一平面PLANE1和第四存储器管芯DIE4的第一平面PLANE1中。也就是说,第829超级存储块SUPER BLOCK829的坏存储块的位置与第820超级存储块SUPERBLOCK820中的坏存储块的位置和第718超级存储块SUPER BLOCK718中的坏存储块的位置不重叠。
因此,控制器130确定第829超级存储块SUPER BLOCK829作为搜索目标,并生成再生超级块表700,使得第829超级存储块SUPER BLOCK829的第一存储器管芯DIE1的第一平面PLANE1中的存储块、第三存储器管芯DIE3的第一平面PLANE1中的存储块以及第四存储器管芯DIE4的第一平面PLANE1中的存储块可用于第820超级存储块SUPER BLOCK820。
即,为了替换第820超级存储块SUPER BLOCK820,控制器130将再生超级块表700的第二行设置为第一再生超级存储块RE SUPER BLOCK1,并且存储用于替换第820超级存储块SUPER BLOCK820的32个存储块的各个块地址值。
因此,在存储在再生超级块表700的第二行中的第一再生超级存储块RE SUPERBLOCK1的值之中,只有三个超级存储块SUPER BLOCK829中的块的块地址:一个指示第一存储器管芯DIE1的第一平面PLANE1中的存储块,另一个指示第三存储器管芯DIE3的第一平面PLANE1中的存储块,并且第三个指示第四存储器管芯DIE4的第一平面PLANE1中的存储块。所有剩余的29个块地址用于第820超级存储块SUPER BLOCK820的存储块。
以这种方式,因为生成了再生超级块表700,所以当控制器130访问第820超级存储块SUPER BLOCK820时,可参考存储在再生超级块表700的第二行中的第一再生超级存储块RE SUPER BLOCK1的值。
然后,为了重新使用第829超级存储块SUPER BLOCK829,控制器130应当搜索能够替换包括在第829超级存储块SUPER BLOCK829中的32个存储块之中的第零存储器管芯DIE0的第一平面PLANE1中的坏存储块、第一存储器管芯DIE1的第一平面PLANE1中的存储块、第三存储器管芯DIE3的第一平面PLANE1中的存储块和第四存储器管芯DIE4的第一平面PLANE1中的存储块的存储块。
虽然第829超级存储块SUPER BLOCK829中只有一个坏存储块,但是搜索能够替换第829超级存储块SUPER BLOCK829中的32个存储块之中的四个存储块的存储块。搜索能够替换第829超级存储块SUPER BLOCK829中的32个存储块之中的四个存储块的存储块的原因在于:第829超级存储块SUPER BLOCK829的三个好存储块被用于正常地操作作为再生超级存储块的第820超级存储块SUPER BLOCK820。即,原因在于使用包括在第829超级存储块SUPER BLOCK829中的32个存储块之中的第一存储器管芯DIE1的第一平面PLANE1、第三存储器管芯DIE3的第一平面PLANE1和第四存储器管芯DIE4的第一平面PLANE1中的存储块,来生成再生超级块表700。
因此,为了重新使用第829超级存储块SUPER BLOCK829,控制器130对超级存储块SUPER BLOCK<0:1023>之中的包括至少一个坏存储块的超级存储块进行搜索。控制器130可排除超级存储块SUPER BLOCK<0:1023>之中的仅包括好存储块的任何超级存储块作为搜索目标。
作为搜索的结果,控制器130可能没有搜索到包括坏存储块的超级存储块。因此,控制器130不重新使用第829超级存储块SUPER BLOCK829。
如上参照图6B所述,通过使用再生超级块表700,即使在三个超级存储块SUPERBLOCK718、SUPER BLOCK820和SUPER BLOCK829中包括坏存储块,也可针对两个超级存储块SUPER BLOCK718和SUPER BLOCK820来将访问处理单位设置为超级存储块单位。
也就是说,在如图6B所示的方案中,包括坏存储块的超级存储块SUPER BLOCK718、SUPER BLOCK820和SUPER BLOCK829之中的一些超级存储块,即SUPER BLOCK718和SUPERBLOCK820被正常地使用,并且仅超级存储块SUPER BLOCK829未被使用。
然而,即使在图6B所示的方案中,虽然不能使用超级存储块SUPER BLOCK829,但超级存储块SUPER BLOCK829仍然存在,并且超级存储块SUPER BLOCK829中的好存储块不能被使用,因为这些好存储块没有以超级存储块单位进行分组。
因此,根据实施例,存储器系统110可以如在下文中参照图7至10描述的方式操作以使得包括坏存储块的超级存储块使用所有的好存储块。也就是说,不存在好存储块不能被使用的情况。
图7至图10是示出根据实施例的在存储器系统中对包括坏存储块的超级存储块进行管理的操作的示图。
参照图7,控制器130可管理超级存储块,使得坏存储块和好存储块被混合在任何超级存储块中。
存储器装置150包括两个存储器管芯DIE<0:1>。两个存储器管芯DIE<0:1>中的每一个包括四个平面PLANE<0:3>,以允许两个存储器管芯DIE<0:1>包括总共八个平面PLANE<0:3>*2。八个平面PLANE<0:3>*2中的每一个包括(N+1)个存储块B<0:N>。此配置仅为示例。
存储器系统110的控制器130使用以超级存储块为单位管理多个存储块的方案。特别地,图7示出如上参照图5所述的控制器130将存储块划分为超级存储块的第三方案。
在图7中,控制器130通过在存储器装置150中的八个平面PLANE<0:3>*2的每一个中选择一个存储块来管理超级存储块SUPER BLOCK<0:N>中的每一个。因此,在超级存储块SUPER BLOCK<0:N>中的每一个中包括八个存储块。
在图7所示的实施例中,一些超级块包括至少一个坏块并且剩余的块为好块。也就是说,超级存储块可包括一个或多个坏存储块。
在第零超级存储块SUPER BLOCK<0>中,与第零管芯DIE<0>的第零平面PLANE<0>相对应的一个存储块是坏存储块,并且该一个坏存储块与七个好存储块一起分组。
在第一超级存储块SUPER BLOCK<1>中,与第零管芯DIE<0>的第零平面PLANE<0>、第零管芯DIE<0>的第一平面PLANE<1>和第一管芯DIE<1>的第零平面PLANE<0>相对应的三个存储块是坏存储块,并且它们与五个好存储块一起分组。
在第二超级存储块SUPER BLOCK<2>中,与第一管芯DIE<1>的第零平面PLANE<0>相对应的一个存储块是坏存储块,并且它与七个好存储块一起分组。
在第三超级存储块SUPER BLOCK<3>中,与第零管芯DIE<0>的第零平面PLANE<0>和第一管芯DIE<1>的第二平面PLANE<2>相对应的两个存储块是坏存储块,并且它们与六个好存储块一起分组。
在第四超级存储块SUPER BLOCK<4>中,与第零管芯DIE<0>的第一平面PLANE<1>、第一管芯DIE<1>的第零平面PLANE<0>和第一管芯DIE<1>的第一平面PLANE<1>相对应的三个存储块是坏存储块,它们与五个好存储块一起分组。
在第(N-2)超级存储块SUPER BLOCK<N-2>中,与第零管芯DIE<0>的第零平面PLANE<0>相对应的一个存储块是坏存储块,并且它与七个好存储块一起分组。
剩余的超级存储块SUPER BLOCK<5:N-3,N-1,N>中的每一个都不包括坏存储块,因此它们被作为正常超级存储块进行管理,每一个仅具有八个好存储块。
如上所述,在图7中,当包括至少一个坏存储块和好存储块的超级存储块SUPERBLOCK<0:4,N-2>被分组时,如上参照图6A和6B所述,不可能将访问处理单位设置为超级存储块单位。
在第零超级存储块SUPER BLOCK<0>、第二超级存储块SUPER BLOCK<2>和第(N-2)超级存储块SUPER BLOCK<N-2>中,它们中的每一个仅包括七个好存储块。在第三超级存储块SUPER BLOCK<3>中,仅包括六个好存储块。在第一超级存储块SUPER BLOCK<1>和第四超级存储块SUPER BLOCK<4>中,它们中的每一个中仅包括五个好存储块。
因此,因为一次访问八个存储块,所以不包括坏存储块的正常超级存储块SUPERBLOCK<5:N-3,N-1,N>中的每一个满足访问处理单位是超级存储块单位的条件。相反地,在各自包括至少一个坏存储块的超级存储块SUPER BLOCK<0:4,N-2>的情况下,这些块不满足访问处理单位是超级存储块单位的条件。
考虑到这一点,控制器130通过将超级存储块SUPER BLOCK<0:4,N-2>分类为标示为BAD+SUPERBLOCK0的第一超级块来管理超级存储块SUPER BLOCK<0:4,N-2>。相反地,通过将正常超级存储块SUPER BLOCK<5:N-3,N-1,N>分类为标示为NORMAL SUPERBLOCK的第二超级块来管理正常超级存储块SUPER BLOCK<5:N-3,N-1,N>。
而且,控制器130基于包括在各个第一超级块BAD+SUPERBLOCK0中的坏存储块的数量来对第一超级块BAD+SUPERBLOCK0的各自使用进行不同地管理。也就是说,控制器130通过将第一超级块BAD+SUPERBLOCK0之中的第一超级块SUPER BLOCK<0,2,3,N-2>分类为第三超级块BAD+SUPERBLOCK1对它们进行管理,其中第一超级块SUPER BLOCK<0,2,3,N-2>中的每一个包括数量小于或等于预设数量(例如,2)的坏存储块。控制器130通过将第一超级块BAD+SUPERBLOCK0之中的第一超级块SUPER BLOCK<1,4>分类为第四超级块BAD+SUPERBLOCK2对它们进行管理,其中第一超级块SUPER BLOCK<1,4>中的每一个包括数量超过预设数量的坏存储块。
例如,如图7所示,预设数量可以是“2”。换言之,控制器130通过将第一超级块BAD+SUPERBLOCK0之中的第一超级块SUPER BLOCK<0,2,3,N-2>分类为第三超级块BAD+SUPERBLOCK1对它们进行管理,其中第一超级块SUPER BLOCK<0,2,3,N-2>中的每一个包括2个或更少的坏存储块。因此,在第三超级块BAD+SUPERBLOCK1中,包括第零超级存储块SUPERBLOCK<0>、第二超级存储块SUPER BLOCK<2>、第三超级存储块SUPER BLOCK<3>和第(N-2)超级存储块SUPER BLOCK<N-2>。
进一步地,控制器130通过将第一超级块BAD+SUPERBLOCK0之中的第一超级块SUPER BLOCK<1,4>分类为第四超级块BAD+SUPERBLOCK2对它们进行管理,其中第一超级块SUPER BLOCK<1,4>中的每一个包括多于2个坏存储块。因此,包括在第四超级块BAD+SUPERBLOCK2中的是第一超级存储块SUPER BLOCK<1>和第四超级存储块SUPER BLOCK<4>。
虽然描述了预设数量为“2”,但根据设计和操作考虑,可将预设数量设置为不同的值。此外,在将超级块分类为不同类型时,分类类型可以多于两个。例如,控制器130可基于两个预设数量将第一超级块分类为四种超级块。
虽然在图7中没有具体示出,但可能出现以下情况:在存储器系统110的初始操作中通过被分类为第二超级块NORMAL SUPERBLOCK来进行管理的某个超级块由于重复地执行擦除-写入周期而被分类为第一超级块BAD+SUPERBLOCK0进行管理。
也就是说,可能出现以下情况:在存储器系统110的初始操作中已经通过被分类为第二超级块NORMAL SUPERBLOCK来进行管理的某个超级块的好存储块可能由于重复的擦除-写入周期而被确定为坏存储块。在这种情况下,控制器130通过合并操作将存储在出现坏存储块的某个超级块中的有效数据移动到目标超级块,然后将进入空闲状态的某个超级块作为第一超级块BAD+SUPERBLOCK0进行管理。在这方面,根据进入空闲状态的某个超级块中的坏存储块的数量是否超过预设数量,确定将某个超级块作为第三超级块BAD+SUPERBLOCK1还是作为第四超级块BAD+SUPERBLOCK2进行管理。
在这方面,为了防止在已存在坏块的某个超级块中已经存储的有效数据的可靠性劣化,控制器130可另外执行检测和校正已经存储在某个超级块中的有效数据的错误的操作,然后可通过合并操作仅将被确定为正常的有效数据移动到目标超级块。
参照图8,示出存储器系统110的第一实施例132,其中第一实施例132与将参照图7描述的超级存储块SUPER BLOCK<0:N>划分为第一超级块BAD+SUPERBLOCK0和第二超级块NORMAL SUPERBLOCK的情况相对应。
详细地,控制器130可将存储器系统110的超级存储块SUPER BLOCK<0:N>划分为第一超级块BAD+SUPERBLOCK0和第二超级块NORMAL SUPERBLOCK。
第一超级块BAD+SUPERBLOCK0是通过将至少一个坏存储块BAD BLOCK与正常存储块GOOD BLOCK混合并且对它们进行分组而形成的超级块。
第二超级块NORMAL SUPERBLOCK是通过仅对正常存储块GOOD BLOCK进行分组而形成的超级块。
在操作1321中,控制器130检查从主机102接收的写入数据的累积大小。
无论写入数据的类型或特性如何,控制器130仅检查来自主机102的写入数据的累积大小。例如,无论写入数据是用户数据、系统数据、串行数据还是随机数据,控制器130都检查来自主机102的写入数据的累积大小。
在操作1322中,控制器130参考操作1321的结果,即检查来自主机102的写入数据的累积大小的结果,将来自主机102的写入数据划分为多个数据组。
也就是说,在操作1322的操作1324中,参考操作1321的结果,每当来自主机102的写入数据的累积大小变为“设定大小”时,控制器130将具有对应于“设定大小”的大小的写入数据分组到一个数据组。
例如,控制器130可将“设定大小”设置为1GB(Gbyte)。在这种情况下,控制器130检查来自主机102的写入数据的累积大小是否对应于1GB,并且将检查的对应于1GB的写入数据分组到一个数据组。因此,当从主机102接收到具有总大小为10GB的写入数据时,控制器130可每次以1GB来检查来自主机102的10GB的写入数据,并且将写入数据分组到总共十个数据组。
在操作1323中,每当在操作1322中形成一个数据组时,控制器130将该一个数据组存储在N个第一超级块BAD+SUPERBLOCK0和M个第二超级块NORMAL SUPERBLOCK中。此处,N可被定义为1或更大的自然数,M可被定义为大于N的数。
也就是说,可操作控制器130,使得用于存储被分组到一个数据组中的写入数据的第二超级块NORMAL SUPERBLOCK的数量大于第一超级块BAD+SUPERBLOCK0的数量。
一起参照图7和图8,控制器130可将被分组到一个数据组的写入数据存储在一个第一超级块BAD+SUPERBLOCK0和四个第二超级块NORMAL SUPERBLOCK中。例如,一个第一超级块BAD+SUPERBLOCK0包括第零超级块SUPER BLOCK<0>、第一超级块SUPER BLOCK<1>、第二超级块SUPER BLOCK<2>、第三超级块SUPER BLOCK<3>、第四超级块SUPER BLOCK<4>和第N-2超级块SUPER BLOCK<N-2>中的任何一个。四个第二超级块NORMAL SUPERBLOCK包括从第五至第N-3超级块、第N-1超级块SUPER BLOCK<N-1>和第N超级块SUPER BLOCK<N>之中选择的四个超级块。在这种情况下,N可以是1,M可以是4。
更详细地,每当在操作1324中形成具有“设定大小”的一个数据组时,控制器130将该一个数据组存储在N个第一超级块BAD+SUPERBLOCK0和M个第二超级块NORMALSUPERBLOCK中。
在各个实施例中,可基于存储器装置150的状态来预先确定“设定大小”。例如,可基于存储器装置150的存储容量和传输带宽来预先确定“设定大小”。换言之,可由设计者根据包括在存储器系统110中的存储器装置150的类型,以各种方式来确定“设定大小”而不受限制。
在各个实施例中,可基于存储器装置150的状态和“设定大小”来预先确定M和N中的每一个的值。也就是说,可在控制器130中通过基于超级存储块对多个存储块进行分组而管理多个存储块的过程期间,预先确定能够存储在一个第一超级块BAD+SUPERBLOCK0中的数据的大小、第一超级块BAD+SUPERBLOCK0的数量、能够存储在一个第二超级块NORMALSUPERBLOCK中的数据的大小、第二超级块NORMAL SUPERBLOCK的数量。因此,对应于基于存储器装置150的状态来预先确定“设定大小”,也可预先确定M和N中的每一个的值。
例如,当基于存储器装置150的状态,“设定大小”被预先确定为1GB时,能够存储在一个第一超级块BAD+SUPERBLOCK0中的数据的大小为189MB,并且能够存储在一个第二超级块NORMAL SUPERBLOCK中的数据的大小为216MB。在这种情况下,具有对应于“设定大小”的1GB的一个数据组可被存储在四个第二超级块NORMAL SUPERBLOCK和一个第一超级块BAD+SUPERBLOCK0中。
参照图9,顺序可对应于参照图7和图8描述的存储器系统110的第一实施例132。换言之,图9示出图7和图8的第一实施例132中的通过操作1322将被分组到一个数据组中的写入数据存储在第一超级块BAD+SUPERBLOCK0和第二超级块NORMAL SUPERBLOCK中的顺序。特别地,可在图9中示出使得待使用的第二超级块NORMAL SUPERBLOCK的数量大于第一超级块BAD+SUPERBLOCK0的数量的方案。
首先,如参照图7和图8所述,“设定大小”与包括在一个数据组中的写入数据的大小相对应,并且已经预先确定了M和N中的每一个的值。例如,当已预先确定“设定大小”为1GB时,已预先确定M为4并且已预先确定N为1。将在以下描述中描述该示例。
详细地,控制器130管理第一使用计数ACCUM_INSUFF_OPEN_CN,其指示在N个(具有值“1”)第一超级块BAD+SUPERBLOCK0之中已经完成存储包括在一个数据组中的写入数据的第一超级块BAD+SUPERBLOCK0的数量。也就是说,控制器130通过第一使用计数ACCUM_INSUFF_OPEN_CN来管理是否已经使用一个第一超级块BAD+SUPERBLOCK0来存储包括在数据组中的具有1GB的“设定大小”的写入数据。
此外,控制器130管理第二使用计数ACCUM_NORMAL_OPEN_CN,其指示在M个(具有值“4”)第二超级块NORMAL SUPERBLOCK之中已经完成存储包括在一个数据组中的写入数据的第二超级块NORMAL SUPERBLOCK的数量。也就是说,控制器130通过第二使用计数ACCUM_NORMAL_OPEN_CN来管理是否已经使用了四个第二超级块NORMAL SUPERBLOCK来存储包括在数据组中的具有1GB的“设定大小”的写入数据。
在操作S10中,当响应于从主机102接收到写入数据而需要开放新的超级块时,控制器130开始操作。也就是说,在从主机102接收到写入数据的时间点没有开放超级块的情况下,控制器130应当开放新的超级块。在这种情况下,如图9所示,操作开始。
在操作S11中,控制器130检查第二使用计数ACCUM_NORMAL_OPEN_CN是否具有值4(或者是否小于或等于4)。
如果检查到第二使用计数ACCUM_NORMAL_OPEN_CN不具有值4(或者如果它小于或等于4)(S11,否),则在操作S16中,控制器130选择第二超级块NORMAL SUPERBLOCK(或NORMAL_SP_BL)中的任何一个并且开放该第二超级块。换言之,选择并且开放第五至第(N-3)超级块、第(N-1)超级块SUPER BLOCK<N-1>和第N超级块SUPER BLOCK<N>中的任何一个超级块。
如果通过操作S16,任何一个第二超级块NORMAL SUPERBLOCK开放,则在操作S17中,控制器130将第二使用计数ACCUM_NORMAL_OPEN_CN的值增加1。
此外,如果通过操作S16,任何一个第二超级块NORMAL SUPERBLOCK开放,则控制器130将从主机102接收的写入数据存储在在操作S16中开放的任何一个第二超级块NORMALSUPERBLOCK中。
如果从主机102接收的写入数据已被存储在操作S16中开放的任何一个第二超级块NORMAL SUPERBLOCK的整个内部存储空间中,则关闭该任何一个第二超级块NORMALSUPERBLOCK。此后,可再次执行操作S10。例如,当一个第二超级块NORMAL SUPERBLOCK的存储空间的大小为216MB时,在已经存储了从主机102接收的具有大小为216MB的所有写入数据之后,关闭在操作S16中开放的任何一个第二超级块NORMAL SUPERBLOCK。
总之,在第二使用计数ACCUM_NORMAL_OPEN_CN的值变为4之前,其中第二使用计数ACCUM_NORMAL_OPEN_CN的值从0开始每次增加1,控制器130可重复执行上述操作S10、S11、S16和S17,并且逐个开放和关闭四个第二超级块NORMAL SUPERBLOCK。
这样,在通过重复执行操作S10、S11、S16和S17来逐个开放和关闭四个第二超级块NORMAL SUPERBLOCK之后,如果控制器130再次执行操作S11,则检查到第二使用计数ACCUM_NORMAL_OPEN_CN具有值4(S11,是)。因此,在操作S12中,控制器130选择并且开放第一超级块BAD+SUPERBLOCK0(或INSUFF_SP_BL)中的任何一个。换言之,控制器130选择并开放第零超级块SUPER BLOCK<0>、第一超级块SUPER BLOCK<1>、第二超级块SUPER BLOCK<2>、第三超级块SUPER BLOCK<3>、第四超级块SUPER BLOCK<4>和第(N-2)超级块SUPER BLOCK<N-2>中的任何一个超级块。
如果通过操作S12,任何一个第一超级块BAD+SUPERBLOCK0开放,则在操作S13中,控制器130将第一使用计数ACCUM_INSUFF_OPEN_CN的值增加1。
此外,如果通过操作S12,任何一个第一超级块BAD+SUPERBLOCK0开放,则控制器130将从主机102接收的写入数据存储在在操作S12中开放的任何一个第一超级块BAD+SUPERBLOCK0中。
如果从主机102接收的写入数据已被存储在操作S12中开放的任何一个第一超级块BAD+SUPERBLOCK0的整个内部存储空间中,则关闭该任何一个第一超级块BAD+SUPERBLOCK0。此后,可再次执行操作S10。例如,当一个第一超级块BAD+SUPERBLOCK0的存储空间的大小为189MB时,在已经存储了从主机102接收的具有大小为189MB的所有写入数据之后,关闭在操作S12中开放的任何一个第一超级块BAD+SUPERBLOCK0。
在操作S13之后的操作S14中,独立于将写入数据存储在操作S13中开放的任何一个第一超级块BAD+SUPERBLOCK0中的操作,控制器130检查第一使用计数ACCUM_INSUFF_OPEN_CN的值是否具有值1(或者是否大于或等于1)。
如果检查到第一使用计数ACCUM_INSUFF_OPEN_CN具有值1(或者如果它大于或等于1)(S14,是),则在操作S15中,控制器130将第一使用计数ACCUM_INSUFF_OPEN_CN和第二使用计数ACCUM_NORMAL_OPEN_CN的各自值初始化为0。
这样,根据在操作S14中选择“是”的结果,控制器130将第一使用计数ACCUM_INSUFF_OPEN_CN和第二使用计数ACCUM_NORMAL_OPEN_CN的各自值初始化为0的原因在于以下事实:在第二使用计数ACCUM_NORMAL_OPEN_CN的值从0变为4之前,在重复执行上述操作S10、S11、S16和S17时,开放和关闭了四个第二超级块NORMAL SUPERBLOCK,并且在第一使用计数ACCUM_INSUFF_OPEN_CN的值从0变为1之前,在重复执行操作S10、S11、S12和S13时,开放和关闭了一个第一超级块BAD+SUPERBLOCK0。
其原因在于:在第二使用计数ACCUM_NORMAL_OPEN_CN变为4并且第一使用计数ACCUM_INSUFF_OPEN_CN变为1之前,控制器130已将从主机102接收的对应于一个数据组的1GB的写入数据存储在所有的四个第二超级块NORMAL SUPERBLOCK和一个第一超级块BAD+SUPERBLOCK0中,同时增加第二使用计数ACCUM_NORMAL_OPEN_CN和第一使用计数ACCUM_INSUFF_OPEN_CN。
因此,在操作S15之后,如果再次从主机102接收到写入数据,则控制器130可重新执行开放第二超级块NORMAL SUPERBLOCK并且将写入数据存储在该第二超级块NORMALSUPERBLOCK中的操作,同时执行上述操作S10、S11、S16和S17。
另一方面,独立于执行操作S14之后的操作S15,换言之,无论在操作S14中选择“是”还是“否”,如果从主机102接收的写入数据已被存储在操作S14中开放的任何一个第一超级块BAD+SUPERBLOCK0的整个内部存储空间中,则可关闭该任何一个第一超级块BAD+SUPERBLOCK0,此后,可再次执行操作S10。例如,当一个第一超级块BAD+SUPERBLOCK0的存储空间的大小为189MB时,在已经存储了从主机102接收的具有大小为189MB的所有写入数据之后,关闭在操作S14中开放的任何一个第一超级块BAD+SUPERBLOCK0。
总之,在第一使用计数ACCUM_INSUFF_OPEN_CN的值从0变为1之前,控制器130可重复执行上述操作S10、S11、S12、S13和S14,并且开放和关闭一个第一超级块BAD+SUPERBLOCK0。
作为参考,在前述第一实施例中,因为已示出了N为1的情况,所以在执行操作S15之前,操作S12、S13和S14被描述为仅执行一次。然而,当N为大于1的2时,在执行操作S15之前可重复执行两次操作S12、S13和S14。
再次参照图8,示出存储器系统110的第二实施例134,其与将参照图7描述的超级存储块SUPER BLOCK<0:N>划分为第二超级块NORMAL SUPERBLOCK、第三超级块BAD+SUPERBLOCK1、第四超级块BAD+SUPERBLOCK2的情况相对应。
详细地,控制器130可将存储器系统110的超级存储块SUPER BLOCK<0:N>划分为第二超级块NORMAL SUPERBLOCK、第三超级块BAD+SUPERBLOCK1和第四超级块BAD+SUPERBLOCK2。
第二超级块NORMAL SUPERBLOCK是通过仅对正常存储块GOOD BLOCK进行分组而形成的超级块。
第三超级块BAD+SUPERBLOCK1是通过将数量为预定数量或更少的坏存储块BADBLOCK与正常存储块GOOD BLOCK进行混合并对它们进行分组而形成的超级块。
第四超级块BAD+SUPERBLOCK2是通过将数量为预定数量或更多的坏存储块BADBLOCK与正常存储块GOOD BLOCK进行混合并对它们进行分组而形成的超级块。
在操作1341中,控制器130检查从主机102接收的写入数据的累积大小。
控制器130检查来自主机102的写入数据的类型或特性,然后根据写入数据的类型或特性检查写入数据的累积大小。例如,在写入数据是用户数据或串行数据的情况下,控制器130检查到写入数据是第一类写入数据,并且检查第一类写入数据的累积大小。此外,在写入数据是系统数据或随机数据的情况下,控制器130检查到写入数据是第二类写入数据,并且检查第二类写入数据的累积大小。
作为参考,在前面的描述中将写入数据的类型或特性分类为两种类型仅用于说明目的,并且实际上可将写入数据分类为更多种类型而不受限制。此外,可在控制器130中执行对来自主机102的写入数据的类型进行分类的操作,或者可选地,可在将写入数据传输到控制器130之前在主机102中将写入数据分类为各类型。
在操作1342中,控制器130参考操作1341的结果,即检查来自主机102的写入数据的累积大小的结果,将来自主机102的写入数据划分成多个数据组。
换言之,在操作1342的操作1345中,在来自主机102的写入数据是第一类数据的情况下,参考操作1341的结果,每当来自主机102的写入数据的累积大小变为“第一设定大小”时,控制器130将具有对应于“第一设定大小”的大小的写入数据分组到一个数据组。
此外,在操作1342的操作1346中,在来自主机102的写入数据是第二类数据的情况下,参考操作1341的结果,每当来自主机102的写入数据的累积大小变为“第二设定大小”时,控制器130将具有对应于“第二设定大小”的大小的写入数据分组到一个数据组。
例如,控制器130可将“第一设定大小”设置为1GB。在这种情况下,控制器130检查来自主机102的并且被分类为第一类型的写入数据的累积大小是否对应于1GB,并且将检查到的1GB的写入数据分组到一个数据组。因此,当从主机102接收到具有总大小为10GB并且被分类为第一类型的写入数据时,控制器130可每次以1GB来检查来自主机102的10GB的写入数据,并且将写入数据分组到总共十个数据组。
同样地,控制器130可将“第二设定大小”设置为500MB。在这种情况下,控制器130检查来自主机102并且被分类为第二类型的写入数据的累积大小是否对应于500MB,并且将检查到的500MB的写入数据分组到一个数据组。因此,当从主机102接收到具有总大小为10GB并且被分类为第二类型的写入数据时,控制器130可每次以500MB来检查从主机102接收的10GB的写入数据,并且将写入数据分组到总共二十个数据组。
在操作1347中,每当在操作1345中形成一个数据组时,控制器130将该一个数据组存储在K个第三超级块BAD+SUPERBLOCK1和I个第二超级块NORMAL SUPERBLOCK中。
在操作1348中,每当在操作1346中形成一个数据组时,控制器130将该一个数据组存储在L个第四超级块BAD+SUPERBLOCK2和J个第二超级块NORMAL SUPERBLOCK中。此处,K可被定义为1或更大的自然数,K可小于I,L可小于J,L可大于K,并且N可被定义为通过将K与L相加而获得的数。
换言之,可操作控制器130,使得用于存储被分组为一个数据组中的第一类写入数据的第二超级块NORMAL SUPERBLOCK的数量大于第三超级块BAD+SUPERBLOCK1的数量。
另外,可操作控制器130,使得用于存储被分组为一个数据组中的第二类写入数据的第二超级块NORMAL SUPERBLOCK的数量大于第四超级块BAD+SUPERBLOCK2的数量。
此外,考虑到以下事实:包括在第三超级块BAD+SUPERBLOCK1中的每一个中的坏存储块BAD BLOCK的数量小于包括在第四超级块BAD+SUPERBLOCK2中的每一个中的坏存储块BAD BLOCK的数量,可操作控制器130以使得待使用的第三超级块BAD+SUPERBLOCK1的数量和待存储在第三超级块BAD+SUPERBLOCK1中的写入数据的类型分别不同于待使用的第四超级块BAD+SUPERBLOCK2的数量和待存储在第四超级块BAD+SUPERBLOCK2中的写入数据的类型。
一起参照图7和图8,控制器130可将被分组到一个数据组的第一类写入数据存储在一个第三超级块BAD+SUPERBLOCK1和四个第二超级块NORMAL SUPERBLOCK中。例如,一个第三超级块BAD+SUPERBLOCK1包括第零超级块SUPER BLOCK<0>、第二超级块SUPER BLOCK<2>、第三超级块SUPER BLOCK<3>和第N-2超级块SUPER BLOCK<N-2>中的任何一个。四个第二超级块NORMAL SUPERBLOCK包括从第五至第N-3超级块、第N-1超级块SUPER BLOCK<N-1>和第N超级块SUPER BLOCK<N>之中选择的四个超级块。在这种情况下,K可以是1,I可以是4。
此外,控制器130可将被分组到一个数据组的第二类写入数据存储在一个第四超级块BAD+SUPERBLOCK2和两个第二超级块NORMAL SUPERBLOCK中。例如,一个第四超级块BAD+SUPERBLOCK2包括第一超级块SUPER BLOCK<1>和第四超级块SUPER BLOCK<4>中的任何一个。两个第二超级块NORMAL SUPERBLOCK包括从第五至第(N-3)超级块、第(N-1)超级块SUPER BLOCK<N-1>和第N超级块SUPER BLOCK<N>之中选择的两个超级块。在这种情况下,L可以是1,J可以是2。
更详细地,每当在操作1345中形成具有“第一设定大小”的一个数据组时,控制器130将该一个数据组存储在K个第三超级块BAD+SUPERBLOCK1和I个第二超级块NORMALSUPERBLOCK中。
每当在操作1346中形成具有“第二设定大小”的一个数据组时,控制器130将该一个数据组存储在L个第四超级块BAD+SUPERBLOCK2和J个第二超级块NORMAL SUPERBLOCK中。
在各个实施例中,可基于存储器装置150的状态来预先确定“第一设定大小”和“第二设定大小”。例如,可基于存储器装置150的存储容量和传输带宽来预先确定“第一设定大小”和“第二设定大小”。换言之,可由设计者根据包括在存储器系统110中的存储器装置150的类型,以各种方式来确定“第一设定大小”和“第二设定大小”而不受限制。
在各个实施例中,可基于存储器装置150的状态、“第一设定大小”和“第二设定大小”来预先确定K、L、I和J中的每一个的值。也就是说,可在控制器130中通过基于超级存储块对多个存储块进行分组来管理多个存储块的过程期间,预先确定能够存储在一个第三超级块BAD+SUPERBLOCK1中的数据的大小、第三超级块BAD+SUPERBLOCK1的数量、能够存储在一个第四超级块BAD+SUPERBLOCK2中的数据的大小、第四超级块BAD+SUPERBLOCK2的数量、能够存储在一个第二超级块NORMAL SUPERBLOCK中的数据的大小、第二超级块NORMALSUPERBLOCK的数量。因此,对应于基于存储器装置150的状态预先确定“第一设定大小”和“第二设定大小”,也可预先确定K、L、I和J中的每一个的值。
例如,当基于存储器装置150的状态,“第一设定大小”被预先确定为1GB时,能够存储在一个第三超级块BAD+SUPERBLOCK1中的数据的大小为189MB,并且能够存储在一个第二超级块NORMAL SUPERBLOCK中的数据的大小为216MB。在这种情况下,具有对应于“第一设定大小”的1GB的一个数据组可被存储在四个第二超级块NORMAL SUPERBLOCK和一个第三超级块BAD+SUPERBLOCK1中。
此外,当基于存储器装置150的状态,“第二设定大小”被预先确定为500MB时,能够存储在一个第四超级块BAD+SUPERBLOCK2中的数据的大小为162MB,并且能够存储在一个第二超级块NORMAL SUPERBLOCK中的数据的大小为216MB。在这种情况下,具有对应于“第二设定大小”的500MB的一个数据组可被存储在两个第二超级块NORMAL SUPERBLOCK和一个第四超级块BAD+SUPERBLOCK2中。
参照图10,顺序可对应于参照图7和图8描述的存储器系统110的第二实施例134。换言之,图10示出图7和图8的第二实施例134中的通过操作1345将被分组到一个数据组中的第一类写入数据存储在第三超级块BAD+SUPERBLOCK1和第二超级块NORMAL SUPERBLOCK中的顺序。特别地,可在图10中示出使得待使用的第二超级块NORMAL SUPERBLOCK的数量大于第三超级块BAD+SUPERBLOCK1的数量的方案。
此外,参照图10,顺序可对应于参照图7和图8描述的存储器系统110的第二实施例134。换言之,图10示出图7和图8的第二实施例134中的通过操作1346将被分组到一个数据组中的第二类写入数据存储在第四超级块BAD+SUPERBLOCK2和第二超级块NORMALSUPERBLOCK中的顺序。特别地,可在图10中示出使得待使用的第二超级块NORMALSUPERBLOCK的数量大于第四超级块BAD+SUPERBLOCK2的数量的方案。
首先,如参照图7和图8所述,“第一设定大小”和“第二设定大小”与包括在一个数据组中的写入数据的大小相对应,并且已经预先确定了K、L、I和J中的每一个的值。例如,当预先确定“第一设定大小”为1GB,预先确定“第二设定大小”为500MB时,预先确定I为4,预先确定J为2,预先确定K为1,并且预先确定L为1。上述情况将在下面的描述中描述。
详细地,控制器130管理第三使用计数ACCUM_INSUFF_OPEN_CN1,其指示在K个(具有值“1”)第三超级块BAD+SUPERBLOCK1之中已经完成存储包括在一个数据组中的写入数据的第三超级块BAD+SUPERBLOCK1的数量。也就是说,控制器130通过第三使用计数ACCUM_INSUFF_OPEN_CN1来管理是否已经使用了一个第三超级块BAD+SUPERBLOCK1来存储包括在数据组中的具有1GB的“第一设定大小”的写入数据。
详细地,控制器130管理第四使用计数ACCUM_INSUFF_OPEN_CN2,其指示在L个(具有值“1”)第四超级块BAD+SUPERBLOCK2之中已经完成存储包括在一个数据组中的写入数据的第四超级块BAD+SUPERBLOCK2的数量。也就是说,控制器130通过第四使用计数ACCUM_INSUFF_OPEN_CN2来管理是否已经使用了一个第四超级块BAD+SUPERBLOCK2来存储包括在数据组中的具有500MB的“第二设定大小”的写入数据。
此外,控制器130管理第二使用计数ACCUM_NORMAL_OPEN_CN,其指示在I个(具有值“4”)或J个(具有值“2”)第二超级块NORMAL SUPERBLOCK之中已经完成存储包括在一个数据组中的写入数据的第二超级块NORMAL SUPERBLOCK的数量。也就是说,控制器130通过第二使用计数ACCUM_NORMAL_OPEN_CN来管理是否已经使用了四个第二超级块NORMALSUPERBLOCK来存储包括在数据组中的具有1GB的“第一设定大小”的写入数据。此外,控制器130通过第二使用计数ACCUM_NORMAL_OPEN_CN来管理是否已经使用了两个第二超级块NORMAL SUPERBLOCK来存储包括在数据组中的具有500MB的“第二设定大小”的写入数据。
在操作S20中,当响应于从主机102接收到写入数据而需要开放新的超级块时,控制器130开始操作。也就是说,在从主机102接收到写入数据的时间点没有开放超级块的情况下,控制器130应当开放新的超级块。在这种情况下,如图10所示,操作开始。
在操作S21中,控制器130检查从主机102接收的写入数据的类型。
根据操作S21的结果,当检查到从主机102接收到第一类写入数据时,在操作S29中,控制器130检查第二使用计数ACCUM_NORMAL_OPEN_CN是否具有值4(或者是否小于或等于4)。
如果检查到第二使用计数ACCUM_NORMAL_OPEN_CN不具有值4(或者如果它小于或等于4)(S29,否),则在操作S27中,控制器130选择第二超级块NORMAL SUPERBLOCK(或NORMAL_SP_BL)中的任何一个并且开放该超级块。换言之,选择并且开放第五至第(N-3)超级块、第(N-1)超级块SUPER BLOCK<N-1>和第N超级块SUPER BLOCK<N>中的任何一个超级块。
如果通过操作S27,任何一个第二超级块NORMAL SUPERBLOCK开放,则在操作S28中,控制器130将第二使用计数ACCUM_NORMAL_OPEN_CN的值增加1。
此外,如果通过操作S27,任何一个第二超级块NORMAL SUPERBLOCK开放,则控制器130将从主机102接收的写入数据存储在在操作S27中开放的任何一个第二超级块NORMALSUPERBLOCK中。
当从主机102接收的写入数据被存储在操作S27中开放的任何一个第二超级块NORMAL SUPERBLOCK的整个内部存储空间中时,关闭该任何一个第二超级块NORMALSUPERBLOCK。此后,可再次执行操作S20。例如,当一个第二超级块NORMAL SUPERBLOCK的存储空间的大小为216MB时,在已经存储了从主机102接收的具有大小为216MB的所有写入数据之后,关闭在操作S27中开放的任何一个第二超级块NORMAL SUPERBLOCK。
总之,在第二使用计数ACCUM_NORMAL_OPEN_CN的值变为4之前,其中第二使用计数ACCUM_NORMAL_OPEN_CN的值从0开始每次增加1,控制器130可重复执行上述操作S20、S21、S29、S27和S28,并且逐个开放和关闭四个第二超级块NORMAL SUPERBLOCK。
这样,在通过重复执行操作S20、S21、S29、S27和S28来逐个开放和关闭四个第二超级块NORMAL SUPERBLOCK之后,如果控制器130再次执行操作S29,则检查到第二使用计数ACCUM_NORMAL_OPEN_CN具有值4(S29,是)。因此,在操作S30中,控制器130选择并且开放第三超级块BAD+SUPERBLOCK1(或INSUFF_SP_BL1)中的任何一个。换言之,控制器130选择并且开放第零超级块SUPER BLOCK<0>、第二超级块SUPER BLOCK<2>、第三超级块SUPER BLOCK<3>和第(N-2)超级块SUPER BLOCK<N-2>中的任何一个超级块。
如果通过操作S30,任何一个第三超级块BAD+SUPERBLOCK1开放,则在操作S31中,控制器130将第三使用计数ACCUM_INSUFF_OPEN_CN1的值增加1。
此外,如果通过操作S30,任何一个第三超级块BAD+SUPERBLOCK1开放,则控制器130将从主机102接收的写入数据存储在在操作S30中开放的任何一个第三超级块BAD+SUPERBLOCK1中。
如果从主机102接收的写入数据已被存储在操作S30中开放的任何一个第三超级块BAD+SUPERBLOCK1的整个内部存储空间中,则关闭该任何一个第三超级块BAD+SUPERBLOCK1。此后,可再次执行操作S20。例如,当一个第三超级块BAD+SUPERBLOCK1的存储空间的大小为189MB时,在已经存储了从主机102接收的具有大小为189MB的所有写入数据之后,关闭在操作S30中开放的任何一个第三超级块BAD+SUPERBLOCK1。
在操作S30之后的操作S32中,独立于将写入数据存储在操作S30中开放的任何一个第三超级块BAD+SUPERBLOCK1中的操作,控制器130检查第三使用计数ACCUM_INSUFF_OPEN_CN1的值是否具有值1(或者是否大于或等于1)。
如果检查到第三使用计数ACCUM_INSUFF_OPEN_CN1具有值1(或者如果它大于或等于1)(S32,是),则在操作S33中,控制器130将第三使用计数ACCUM_INSUFF_OPEN_CN1和第二使用计数ACCUM_NORMAL_OPEN_CN的各自值初始化为0。
这样,根据在操作S32中选择“是”的结果,控制器130将第三使用计数ACCUM_INSUFF_OPEN_CN1和第二使用计数ACCUM_NORMAL_OPEN_CN的各自值初始化为0的原因在于以下事实:在第二使用计数ACCUM_NORMAL_OPEN_CN的值从0变为4之前,在重复执行上述操作S20、S21、S29、S27和S28时,开放和关闭了四个第二超级块NORMAL SUPERBLOCK,并且在第三使用计数ACCUM_INSUFF_OPEN_CN1的值从0变为1之前,在重复执行操作S20、S21、S29、S30和S31时,开放和关闭了一个第三超级块BAD+SUPERBLOCK1。
换言之,其原因在于:在第二使用计数ACCUM_NORMAL_OPEN_CN变为4并且第三使用计数ACCUM_INSUFF_OPEN_CN1变为1之前,控制器130已将从主机102接收的对应于一个数据组的1GB的写入数据存储在所有的四个第二超级块NORMAL SUPERBLOCK和一个第三超级块BAD+SUPERBLOCK1中,同时增加第二使用计数ACCUM_NORMAL_OPEN_CN和第三使用计数ACCUM_INSUFF_OPEN_CN1。
因此,在操作S33之后,如果再次从主机102接收到写入数据,则控制器130可重新执行开放第二超级块NORMAL SUPERBLOCK并且将写入数据存储在该第二超级块NORMALSUPERBLOCK中的操作,同时执行上述操作S20、S21、S29、S27和S28。
另一方面,独立于执行操作S32之后的操作S33,换言之,无论在操作S32中选择“是”还是“否”,如果从主机102接收的写入数据已被存储在任何一个第三超级块BAD+SUPERBLOCK1的整个内部存储空间中,则可关闭在操作S30中开放的任何一个第三超级块BAD+SUPERBLOCK1,此后,可再次执行操作S20。例如,当一个第三超级块BAD+SUPERBLOCK1的存储空间的大小为189MB时,在已经存储了从主机102接收的具有大小为189MB的所有写入数据之后,关闭在操作S30中开放的任何一个第三超级块BAD+SUPERBLOCK1。
总之,在第三使用计数ACCUM_INSUFF_OPEN_CN1的值从0变为1之前,控制器130可重复执行操作S20、S21、S29、S30和S31,并且开放和关闭一个第三超级块BAD+SUPERBLOCK1。
作为参考,在前述第二实施例中,因为已示出了K为1的情况,所以在执行操作S33之前,操作S30、S31和S32被描述为仅执行一次。然而,当K为大于1的2时,在执行操作S33之前可重复执行两次操作S30、S31和S32。
另一方面,根据操作S21的结果,当检查到从主机102接收到第二类写入数据时,在操作S22中,控制器130检查第二使用计数ACCUM_NORMAL_OPEN_CN是否具有值2(或者是否小于或等于2)。
如果检查到第二使用计数ACCUM_NORMAL_OPEN_CN不具有值2(或者如果它小于或等于2)(S22,否),则在操作S27中,控制器130选择第二超级块NORMAL SUPERBLOCK中的任何一个并且开放该超级块。换言之,选择第五至第(N-3)超级块、第(N-1)超级块SUPER BLOCK<N-1>和第N超级块SUPER BLOCK<N>中的任何一个超级块并且开放。
如果通过操作S27,任何一个第二超级块NORMAL SUPERBLOCK开放,则在操作S28中,控制器130将第二使用计数ACCUM_NORMAL_OPEN_CN的值增加1。
此外,如果通过操作S27,任何一个第二超级块NORMAL SUPERBLOCK开放,则控制器130将从主机102接收的写入数据存储在操作S27中开放的任何一个第二超级块NORMALSUPERBLOCK中。
当从主机102接收的写入数据被存储在操作S27中开放的任何一个第二超级块NORMAL SUPERBLOCK的整个内部存储空间中时,关闭该任何一个第二超级块NORMALSUPERBLOCK。此后,可再次执行操作S20。例如,当一个第二超级块NORMAL SUPERBLOCK的存储空间的大小为216MB时,在已经存储了从主机102接收的具有大小为216MB的所有写入数据之后,关闭在操作S27中开放的任何一个第二超级块NORMAL SUPERBLOCK。
总之,在第二使用计数ACCUM_NORMAL_OPEN_CN的值变为2之前,其中第二使用计数ACCUM_NORMAL_OPEN_CN的值从0开始每次增加1,控制器130可重复执行上述操作S20、S21、S22、S27和S28,并且逐个开放和关闭两个第二超级块NORMAL SUPERBLOCK。
这样,在通过重复执行操作S20、S21、S22、S27和S28逐个开放和关闭两个第二超级块NORMAL SUPERBLOCK之后,如果控制器130再次执行操作S22,则检查到第二使用计数ACCUM_NORMAL_OPEN_CN具有值2(S22,是)。因此,在操作S23中,控制器130选择并且开放第四超级块BAD+SUPERBLOCK2(或INSUFF_SP_BL2)中的任何一个。换言之,控制器130选择并且开放第一超级块SUPER BLOCK<1>和第四超级块SUPER BLOCK<4>中的任何一个超级块。
如果通过操作S23,任何一个第四超级块BAD+SUPERBLOCK2开放,则在操作S24中,控制器130将第四使用计数ACCUM_INSUFF_OPEN_CN2的值增加1。
此外,如果通过操作S23,任何一个第四超级块BAD+SUPERBLOCK2开放,则控制器130将从主机102接收的写入数据存储在在操作S23中开放的任何一个第四超级块BAD+SUPERBLOCK2中。
如果从主机102接收的写入数据已被存储在操作S23中开放的任何一个第四超级块BAD+SUPERBLOCK2的整个内部存储空间中,则关闭该任何一个第四超级块BAD+SUPERBLOCK2。此后,可再次执行操作S20。例如,当一个第四超级块BAD+SUPERBLOCK2的存储空间的大小为162MB时,在已经存储了从主机102接收的具有大小为162MB的所有写入数据之后,关闭在操作S23中开放的任何一个第四超级块BAD+SUPERBLOCK2。
在操作S23之后的操作S25中,独立于将写入数据存储在操作S23中开放的任何一个第三超级块BAD+SUPERBLOCK1中的操作,控制器130检查第四使用计数ACCUM_INSUFF_OPEN_CN2是否具有值1(或者是否大于或等于1)。
如果检查到第四使用计数ACCUM_INSUFF_OPEN_CN2具有值1(或者如果它大于或等于1)(S25,是),则在操作S26中,控制器130将第四使用计数ACCUM_INSUFF_OPEN_CN2和第二使用计数ACCUM_NORMAL_OPEN_CN的各自值初始化为0。
这样,根据在操作S25中选择“是”的结果,控制器130将第四使用计数ACCUM_INSUFF_OPEN_CN2和第二使用计数ACCUM_NORMAL_OPEN_CN的各自值初始化为0的原因在于以下事实:在第二使用计数ACCUM_NORMAL_OPEN_CN的值从0变为2之前,在重复执行上述操作S20、S21、S22、S27和S28时,开放和关闭了两个第二超级块NORMAL SUPERBLOCK,并且在第三使用计数ACCUM_INSUFF_OPEN_CN1的值从0变为1之前,在重复执行操作S20、S21、S22、S23和S24时,开放和关闭了一个第四超级块BAD+SUPERBLOCK2。
换言之,其原因在于:在第二使用计数ACCUM_NORMAL_OPEN_CN变为2并且第四使用计数ACCUM_INSUFF_OPEN_CN2变为1之前,控制器130已将从主机102接收的对应于一个数据组的1GB的写入数据存储在所有的两个第二超级块NORMAL SUPERBLOCK和一个第四超级块BAD+SUPERBLOCK2中,同时增加第二使用计数ACCUM_NORMAL_OPEN_CN和第四使用计数ACCUM_INSUFF_OPEN_CN2。
因此,在操作S26之后,如果再次从主机102接收到写入数据,则控制器130可重新执行开放第二超级块NORMAL SUPERBLOCK并且将写入数据存储在该第二超级块NORMALSUPERBLOCK中的操作,同时执行上述操作S20、S21、S22、S27和S28。
另一方面,独立于执行操作S25之后的操作S26,换言之,无论在操作S25中选择“是”还是“否”,如果从主机102接收的写入数据已被存储在任何一个第四超级块BAD+SUPERBLOCK2的整个内部存储空间中,则可关闭在操作S23中开放的任何一个第四超级块BAD+SUPERBLOCK2,此后,可再次执行操作S20。例如,当一个第四超级块BAD+SUPERBLOCK2的存储空间的大小为162MB时,在已经存储了从主机102接收的具有大小为162MB的所有写入数据之后,关闭在操作S23中开放的任何一个第四超级块BAD+SUPERBLOCK2。
总之,在第四使用计数ACCUM_INSUFF_OPEN_CN2的值从0变为1之前,控制器130可重复执行操作S20、S21、S22、S23和S24,并且开放和关闭一个第三超级块BAD+SUPERBLOCK1。
作为参考,在前述第二实施例中,因为已示出了K为1的情况,所以在执行操作S26之前,操作S23、S24和S25被描述为仅执行一次。然而,当K为大于1的2时,在执行操作S26之前可重复执行两次操作S23、S24和S25。
在下文中,将参照图11至图19更详细地描述设置有存储器系统110的数据处理系统和电子设备,该存储器系统110包括根据实施例参照图1至图8描述的存储器装置150和控制器130。
图11至图19是示出图1的数据处理系统的应用示例的示图。
图11是示出包括根据本实施例的存储器系统的数据处理系统的另一示例的示图。例如,图11示出了应用了根据本实施例的存储器系统的存储卡系统6100。
参照图11,存储卡系统6100可包括存储器控制器6120、存储器装置6130和连接器6110。
更具体地,存储器控制器6120可被连接至通过非易失性存储器(NVM)实施的存储器装置6130,并被配置成访问存储器装置6130。例如,存储器控制器6120可被配置成控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可被配置成提供存储器装置6130和主机之间的接口并驱动用于控制存储器装置6130的固件。也就是说,存储器控制器6120可以对应于参照图1和图8描述的存储器系统110的控制器130,并且存储器装置6130可以对应于参照图1和图8描述的存储器系统110的存储器装置150。
因此,存储器控制器6120可包括随机存取存储器(RAM)、处理单元、主机接口、存储器接口和错误校正单元。存储器控制器130可进一步包括图8所示的元件。
存储器控制器6120可通过连接器6110与例如图1的主机102的外部装置通信。例如,如参照图1所述,存储器控制器6120可被配置成通过诸如以下的各种通信协议中的一种或多种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(EDSI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、无线保真(Wi-Fi或WiFi)和蓝牙。因此,根据本实施例的存储器系统和数据处理系统可应用于有线/无线电子装置,或者特别是应用于移动电子装置。
存储器装置6130可由易失性存储器(NVM)来实施。例如,存储器装置6130可由诸如以下的各种非易失性存储器装置来实施:可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪存、NOR闪存、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和自旋转移扭矩磁性RAM(STT-MRAM)。存储器装置6130可包括图7的存储器装置150中的多个管芯。
存储器控制器6120和存储器装置6130可集成到单个半导体装置中。例如,存储器控制器6120和存储器装置6130可通过集成到单个半导体装置中来构造固态驱动器(SSD)。此外,存储器控制器6120和存储器装置6130可构成诸如以下的存储卡:PC卡(例如,个人计算机存储卡国际协会(PCMCIA))、标准闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型-MMC和eMMC)、安全数字(SD)卡(例如,SD、迷你-SD、微型-SD和SDHC)和通用闪存(UFS)。
图12示出包括根据本实施例的存储器系统的数据处理系统6200的另一示例的示图。
参照图12,数据处理系统6200可包括具有一个或多个非易失性存储器(NVM)的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。图12所示的数据处理系统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的数据。当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)码、涡轮码、里德-所罗门(RS)码、卷积码、递归系统码(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被配置成通过各种通信协议中的一种或多种与外部装置进行通信,因此根据本实施例的存储器系统和数据处理系统可应用于有线/无线电子装置或特别是移动电子装置。
图13示出包括根据本实施例的存储器系统的数据处理系统的另一示例的示图。例如,图13示出应用根据本实施例的存储器系统的固态驱动器(SSD)6300。
参照图13,SSD 6300可包括控制器6320和包括多个非易失性存储器(NVM)的存储器装置6340。控制器6320可对应于图1至图8的存储器系统110中的控制器130,并且存储器装置6340可对应于图1至图8的存储器系统中的存储器装置150。
更具体地,控制器6320可通过多个通道CH1至CHi连接到存储器装置6340。控制器6320可包括一个或多个处理器6321、错误校正码(ECC)电路6322、主机接口6324、缓冲存储器6325和例如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可临时存储从主机6310提供的数据或从包括在存储器装置6340中的多个闪速存储器NVM提供的数据,或者临时存储多个闪速存储器NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可由易失性存储器或非易失性存储器来实现,其中易失性存储器诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、低功耗DDR(LPDDR)SDRAM和图形RAM(GRAM),非易失性存储器诸如铁电RAM(FRAM)、电阻式RAM(RRAM或ReRAM)、自旋转移扭矩磁性RAM(STT-MRAM)和相变RAM(PRAM)。为便于描述,图13示出了缓冲存储器6325存在于控制器6320中。然而,缓冲存储器6325可存在于控制器6320的外部。
ECC电路6322可在编程操作期间计算待被编程到存储器装置6340的数据的错误校正码(ECC)值,在读取操作期间基于ECC值对从存储器装置6340读取的数据执行错误校正操作,并在失效数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324可提供与诸如主机6310的外部装置的接口功能,并且非易失性存储器接口6326可提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可提供应用了图1和图8的存储器系统110的多个SSD 6300来实施数据处理系统,例如,独立磁盘冗余阵列(RAID)系统。此时,RAID系统可包括多个SSD 6300和用于控制多个SSD 6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可根据多个RAID级别,即,从SSD 6300中的主机6310提供的写入命令的RAID级别信息,来选择一个或多个存储器系统或SSD 6300,并将对应于写入命令的数据输出到选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取命令时,RAID控制器可根据多个RAID级别,即,从SSD 6300中的主机6310提供的读取命令的RAID级别信息,来选择一个或多个存储器系统或SSD 6300,并将从所选择的SSD 6300读取的数据提供给主机6310。
图14示出包括根据本实施例的存储器系统的数据处理系统的另一示例的示图。例如,图14示出应用根据本实施例的存储器系统的嵌入式多媒体卡(eMMC)6400。
参照图14,eMMC 6400可包括控制器6430和通过一个或多个NAND闪速存储器实施的存储器装置6440。控制器6430可对应于图1至图8的存储器系统110中的控制器130,并且存储器装置6440可对应于图1至图8的存储器系统110中的存储器装置150。
更具体地,控制器6430可通过多个通道连接到存储器装置6440。控制器6430可包括一个或多个内核6432、主机接口6431和诸如NAND接口6433的存储器接口。
内核6432可控制eMMC6400的全部操作,主机接口6431可提供控制器6430和主机6410之间的接口功能,并且NAND接口6433可提供存储器装置6440和控制器6430之间的接口功能。例如,主机接口6431可作为并行接口,例如参照图1所描述的MMC接口。此外,主机接口6431可用作串行接口,例如超高速(UHS-I/UHS-II)接口。
图15至图18是示出包括根据本实施例的存储器系统的数据处理系统的其它示例的示图。例如,图15至图18示出应用根据本实施例的存储器系统的通用闪存(UFS)系统。
参照图15至图18,UFS系统6500、6600、6700和6800可分别包括主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830。主机6510、6610、6710和6810可以用作有线/无线电子装置或特别是移动电子装置的应用处理器,UFS装置6520、6620、6720和6820可以用作嵌入式UFS装置,并且UFS卡6530、6630、6730和6830可以用作外部嵌入式UFS装置或可移除UFS卡。
在各个UFS系统6500、6600、6700和6800中的主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过UFS协议与例如有线/无线电子装置或特别是移动电子装置的外部装置通信,并且UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过图1至图8所示的存储器系统110实施。例如,在UFS系统6500、6600、6700和6800中,UFS装置6520、6620、6720和6820可以参照图12至图14描述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实施,并且UFS卡6530、6630、6730和6830可以参照图11描述的存储卡系统6100的形式来实施。
此外,在UFS系统6500、6600、6700和6800中,主机6510、6610、6710和6810、UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可以通过例如移动工业处理器接口(MIPI)中的MIPI M-PHY和MIPI统一协议(UniPro)的UFS接口来彼此通信。此外,UFS装置6520、6620、6720和6820与UFS卡6530、6630、6730和6830可通过除UFS协议以外的各种协议彼此通信,例如通用串行总线(USB)闪存驱动器(UFD)、多媒体卡(MMC)、安全数字(SD)、迷你-SD和微型-SD。
在图15所示的UFS系统6500中,主机6510、UFS装置6520以及UFS卡6530中的每一个可包括UniPro。主机6510可执行交换操作,以便与UFS装置6520和UFS卡6530通信。特别地,主机6510可通过诸如UniPro处的L3交换的链路层交换与UFS装置6520或UFS卡6530通信。此时,UFS装置6520和UFS卡6530可通过主机6510的UniPro处的链路层交换来彼此通信。在本实施例中,为便于描述,已经例示了其中一个UFS装置6520和一个UFS卡6530连接到主机6510的配置。然而,多个UFS装置和UFS卡可并联或以星型形式连接到主机6410,并且多个UFS卡可并联或以星型形式连接到UFS装置6520,或者串联或以链型形式连接到UFS装置6520。
在图16所示的UFS系统6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可包括UniPro,并且主机6610可通过执行交换操作的切换模块6640,例如,通过在UniPro处执行链路层交换(例如L3交换)的交换模块6640,来与UFS装置6620或UFS卡6630通信。UFS装置6620和UFS卡6630可通过在UniPro处的交换模块6640的链路层交换来彼此通信。在本实施例中,为了便于描述,已经例示一个UFS装置6620和一个UFS卡6630连接到交换模块6640的配置。然而,多个UFS装置和UFS卡可并联或以星型形式连接到交换模块6640,并且多个UFS卡可串联或以链型形式连接到UFS装置6620。
在图17所示的UFS系统6700中,主机6710、UFS装置6720和UFS卡6730中的每一个可包括UniPro,并且主机6710可通过执行交换操作的交换模块6740,例如,通过在UniPro处执行链路层交换(例如L3交换)的交换模块6740,来与UFS装置6720或UFS卡6730通信。此时,UFS装置6720和UFS卡6730可通过交换模块6740在UniPro处的链路层交换来彼此通信,并且交换模块6740可在UFS装置6720内部或外部与UFS装置6720集成为一个模块。在本实施例中,为便于描述,已经例示了其中一个UFS装置6720和一个UFS卡6730连接到交换模块6740的配置。然而,每一个包括交换模块6740和UFS装置6720的多个模块可并联或以星型形式连接到主机6710,或者串联或以链型形式彼此连接。此外,多个UFS卡可以并行地或以星型形式连接到UFS装置6720。
在图18所示的UFS系统6800中,主机6810、UFS装置6820和UFS卡6830中的每一个可包括M-PHY和UniPro。UFS装置6820可执行交换操作以便与主机6810和UFS卡6830通信。特别地,UFS装置6820可以通过用于与主机6810通信的M-PHY和UniPro模块之间的交换操作和用于与UFS卡6830通信的M-PHY和UniPro模块之间的交换操作,例如通过目标标识符(ID)交换操作,来与主机6810或UFS卡6830通信。此时,主机6810和UFS卡6830可通过UFS装置6820的M-PHY和UniPro模块之中的目标ID交换来彼此通信。在本实施例中,为便于描述,已经例示了其中一个UFS装置6820连接到主机6810,一个UFS卡6830连接到UFS装置6820的配置。然而,多个UFS装置可并联或以星形形式连接到主机6810或串联或以链型形式连接到主机6810,并且多个UFS卡可并联或以星型形式连接到UFS装置6820或串联或以链型形式连接到UFS装置6820。
图19是示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。图19是示出应用了根据本实施例的存储器系统的用户系统6900的示图。
参照图19,用户系统6900可包括用户接口6910、存储器模块6920、应用处理器6930、网络模块6940和存储模块6950。
更具体地,应用处理器6930可以驱动包括在例如操作系统(OS)的用户系统6900中的部件,并且包括控制包括在用户系统6900中的部件的控制器、接口、图形引擎。应用处理器6930可被设置为片上系统(SoC)。
存储器模块6920可用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块6920可包括诸如动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、DDR2SDRAM、DDR3SDRAM、低功率DDR(LPDDR)SDRAM、LPDDR2SDRAM或LPDDR3SDRAM的易失性随机存取存储器(RAM),或诸如相变RAM(PRAM)、电阻式RAM(ReRAM)、磁阻RAM(MRAM)或铁电RAM(FRAM)的非易失性RAM。例如,可基于堆叠封装(PoP)来封装和安装应用处理器6930和存储器模块6920。
网络模块6940可与外部装置通信。例如,网络模块6940不仅可支持有线通信,而且还可支持诸如以下的各种无线通信协议:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(Wimax)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI),从而与包括移动电子装置的有线/无线电子装置通信。因此,根据本发明的实施例的存储器系统和数据处理系统可应用于有线/无线电子装置。网络模块6940可被包括在应用处理器6930中。
存储模块6950可存储数据,例如从应用处理器6930接收的数据的,然后可将所存储的数据传输到应用处理器6930。存储模块6950可通过诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪存、NOR闪存和3D NAND闪存的非易失性半导体存储器装置来实施,并且可被提供为诸如用户系统6900的存储卡或外部驱动器的可移动存储介质。存储模块6950可对应于参照图1至图8描述的存储器系统110。此外,存储模块6950可被实施为如上参照图13至图18所述的SSD、eMMC和UFS。
用户接口6910可包括用于将数据或命令输入到应用处理器6930或用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器的用户输出接口。
此外,当其中图1至图8的存储器系统110被应用于用户系统6900的移动电子装置时,应用处理器6930可以控制移动电子装置的整体操作,并且网络模块6940可以用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6910可在移动电子装置的显示/触摸模块上显示通过处理器6930处理的数据,或支持从触摸面板接收数据的功能。
在各个实施例中,当包括在存储器装置中的多个存储块被分组到超级存储块中并且以超级存储块进行管理时,可将彼此混合的至少一个坏存储块和正常存储块进行分组并且作为超级存储块进行管理。此处,可适当地调整包括坏存储块的超级存储块的使用频率。
因此,可防止包括坏存储块的超级存储块被过度频繁地使用,从而可防止存储器系统的整体性能劣化。
Claims (20)
1.一种存储器系统,包括:
存储器装置,包括每个包括多个页面的多个存储块、每个包括所述多个存储块的多个平面以及每个包括所述多个平面的多个管芯;以及
控制器,将所述多个存储块作为多个超级块进行管理,通过以对应于设定条件的形式对所述多个存储块进行分组来形成所述多个超级块,
其中所述控制器将通过对至少一个坏存储块和正常存储块进行混合和分组而形成的超级块分类和管理为所述多个超级块中的第一超级块,并且将通过仅对正常存储块进行分组而形成的超级块分类和管理为所述多个超级块中的第二超级块,
其中所述控制器检查从主机接收的写入数据的累积大小,基于所述累积大小的检查结果将所述写入数据分组为多个数据组,并且每当形成一个数据组时,将所形成的一个数据组存储在N个第一超级块和M个第二超级块中,其中N是1或更大的自然数,M是大于N的自然数。
2.根据权利要求1所述的存储器系统,
其中基于所述累积大小的检查结果,每当所述写入数据的累积大小变为设定大小时,所述控制器将具有与所述设定大小相对应的大小的写入数据分组为一个数据组,并且将所述一个数据组存储在所述N个第一超级块和所述M个第二超级块中,并且
其中基于所述存储器装置的状态来预先确定所述设定大小,并且基于预先确定的设定大小来预先确定N和M的值。
3.根据权利要求2所述的存储器系统,其中所述控制器管理:
第一使用计数,指示所述N个第一超级块之中的用于存储所述一个数据组的所述第一超级块的数量;
第二使用计数,指示所述M个第二超级块之中的用于存储所述一个数据组的所述第二超级块的数量。
4.根据权利要求3所述的存储器系统,其中当所述第二使用计数不同于M时,所述控制器选择所述M个第二超级块中的任何一个,增加所述第二使用计数的值,然后将所述写入数据存储在所选择的第二超级块中。
5.根据权利要求4所述的存储器系统,
其中当所述第二使用计数等于M时,所述控制器选择所述N个第一超级块中的任何一个,增加所述第一使用计数的值,然后将所述写入数据存储在所选择的第一超级块中,并且
其中当所述第一使用计数的增加值等于N时,所述控制器初始化所述第一使用计数和所述第二使用计数的各自值。
6.根据权利要求1所述的存储器系统,
其中所述控制器将所述第一超级块之中的每个包括数量为设定值或更少的坏块的第一超级块分类和管理为第三超级块,
其中所述控制器将所述第一超级块之中的每个包括数量超过所述设定值的坏块的第一超级块分类和管理为第四超级块,
其中当所述写入数据是第一类数据时,所述控制器将所形成的一个数据组存储在K个第三超级块和I个第二超级块中,
其中当所述写入数据是第二类数据时,所述控制器将所形成的一个数据组存储在L个第四超级块和J个第二超级块中,并且
其中K是1或更大的自然数,K是小于I的自然数,L是小于J的自然数,L是大于K的自然数,并且N是通过将K与L相加而获得的数。
7.根据权利要求6所述的存储器系统,
其中当所述写入数据是所述第一类数据时,基于所述累积大小的检查结果,每当所述写入数据的累积大小变为第一设定大小,所述控制器将具有与所述第一设定大小相对应的大小的写入数据分组为一个数据组,并且将所述一个数据组存储在所述K个第三超级块和所述I个第二超级块中,
其中当所述写入数据是所述第二类数据时,基于所述累积大小的检查结果,每当所述写入数据的累积大小变为第二设定大小,所述控制器将具有与所述第二设定大小相对应的大小的写入数据分组为一个数据组,并且将所述一个数据组存储在所述L个第四超级块和所述J个第二超级块中,并且
其中基于所述存储器装置的状态来预先确定所述第一设定大小和所述第二设定大小,并且基于预先确定的设定大小来预先确定N、K、L、M、I和J的值。
8.根据权利要求7所述的存储器系统,其中所述控制器管理:
第二使用计数,指示所述I或J个第二超级块之中的用于存储所述一个数据组的所述第二超级块的数量;
第三使用计数,指示所述K个第三超级块之中的用于存储所述一个数据组的所述第三超级块的数量;以及
第四使用计数,指示所述L个第四超级块之中的用于存储所述一个数据组的所述第四超级块的数量。
9.根据权利要求8所述的存储器系统,
其中当所述写入数据是所述第一类数据并且所述第二使用计数不同于I时,所述控制器选择所述I个第二超级块中的任何一个,增加所述第二使用计数的值,然后将所述写入数据存储在所选择的第二超级块中,并且
其中当所述写入数据是所述第二类数据并且所述第二使用计数不同于J时,所述控制器选择所述J个第二超级块中的任何一个,增加所述第二使用计数的值,然后将所述写入数据存储在所选择的第二超级块中。
10.根据权利要求9所述的存储器系统,
其中当所述写入数据是所述第一类数据并且所述第二使用计数等于I时,所述控制器选择所述K个第三超级块中的任何一个,增加所述第三使用计数的值,然后将所述写入数据存储在所选择的第三超级块中,并且当所述第三使用计数的增加值等于K时,所述控制器初始化所述第二使用计数和所述第三使用计数的各自值;并且
其中当所述写入数据是所述第二类数据并且所述第二使用计数等于J时,所述控制器选择所述L个第四超级块中的任何一个,增加所述第四使用计数的值,然后将所述写入数据存储在所选择的第四超级块中,并且当所述第四使用计数的增加值等于L时,所述控制器初始化所述第二使用计数和所述第四使用计数的各自值。
11.一种操作存储器系统的方法,所述存储器系统包括存储器装置,所述存储器装置包括每个包括多个页面的多个存储块、每个包括所述多个存储块的多个平面以及每个包括所述多个平面的多个管芯,所述方法包括:
将所述多个存储块作为多个超级块进行管理,通过以对应于设定条件的形式对所述多个存储块进行分组来形成所述多个超级块;
执行第一操作,将通过对至少一个坏存储块和正常存储块进行混合和分组而形成的超级块分类和管理为所述多个超级块中的第一超级块;
执行第二操作,将通过仅对正常存储块进行分组而形成的超级块分类和管理为所述多个超级块中的第二超级块;
执行第三操作,检查从主机接收的写入数据的累积大小,并且基于所述累积大小的检查结果将所述写入数据分组为多个数据组;以及
执行存储操作,每当在所述第三操作中形成一个数据组时,将所形成的一个数据组存储在所述第一操作中形成的所述第一超级块之中的N个第一超级块和在所述第二操作中形成的所述第二超级块之中的M个第二超级块中,
其中N是1或更大的自然数,M是大于N的自然数。
12.根据权利要求11所述的方法,其中所述第三操作包括:
基于所述累积大小的所述检查结果,每当所述写入数据的累积大小变为设定大小时,将具有与所述设定大小相对应的大小的写入数据分组为一个数据组,
其中基于所述存储器装置的状态来预先确定所述设定大小,并且基于预先确定的设定大小来预先确定N和M的值。
13.根据权利要求12所述的方法,进一步包括:管理第一使用计数和第二使用计数,所述第一使用计数指示所述N个第一超级块之中的用于存储所述一个数据组的第一超级块的数量,所述第二使用计数指示所述M个第二超级块之中的用于存储所述一个数据组的第二超级块的数量,在所述存储操作中使用所述第一使用计数和所述第二使用计数。
14.根据权利要求13所述的方法,其中执行所述存储操作包括:当所述第二使用计数不同于M时,选择所述M个第二超级块中的任何一个,增加所述第二使用计数的值,然后将所述写入数据存储在所选择的第二超级块中。
15.根据权利要求14所述的方法,其中执行所述存储操作包括:当所述第二使用计数等于M时,选择所述N个第一超级块中的任何一个,增加所述第一使用计数的值,然后将所述写入数据存储在所选择的第一超级块中,并且当所述第一使用计数的增加值等于N时,初始化所述第一使用计数和所述第二使用计数的各自值。
16.根据权利要求11所述的方法,进一步包括:
执行第四操作,将在所述第一操作中分类的所述第一超级块之中的每个包括数量为设定值或更少的坏块的第一超级块分类和管理为第三超级块;以及
执行第五操作,将在所述第一操作中分类的所述第一超级块之中的每个包括数量超过所述设定值的坏块的第一超级块分类和管理为第四超级块,
其中执行所述存储操作包括:
执行第一存储操作,当所述写入数据是第一类数据时,将在所述第三操作中形成的一个数据组存储在所述第四操作中分类的所述第三超级块之中的K个第三超级块和在所述第二操作中分类的所述第二超级块之中的I个第二超级块中;以及
执行第二存储操作,当所述写入数据是第二类数据时,将在所述第四操作中形成的一个数据组存储在所述第五操作中分类的所述第四超级块之中的L个第四超级块和在所述第二操作中分类的所述第二超级块之中的J个第二超级块中,并且
其中K是1或更大的自然数,K是小于I的自然数,L是小于J的自然数,L是大于K的自然数,并且N是通过将K与L相加而获得的数。
17.根据权利要求16所述的方法,其中执行所述第三操作包括:
当所述写入数据是所述第一类数据并且基于所述累积大小的检查结果,每当所述写入数据的累积大小变为第一设定大小时,将具有与所述第一设定大小相对应的大小的写入数据分组为一个数据组,并且
当所述写入数据是所述第二类数据并且基于所述累积大小的检查结果,每当所述写入数据的累积大小变为第二设定大小时,将具有与所述第二设定大小相对应的大小的写入数据分组为一个数据组,
其中基于所述存储器装置的状态来预先确定所述第一设定大小和所述第二设定大小,并且基于预先确定的设定大小来预先确定N、K、L、M、I和J的值。
18.根据权利要求17所述的方法,进一步包括:管理第二使用计数、第三使用计数和第四使用计数,其中所述第二使用计数指示所述I或J个第二超级块之中的用于存储所述写入数据的所述第二超级块的数量,所述第三使用计数指示所述K个第三超级块之中的用于存储所述写入数据的所述第三超级块的数量,并且所述第四使用计数指示所述L个第四超级块之中的用于存储所述写入数据的所述第四超级块的数量。
19.根据权利要求18所述的方法,
其中执行所述第一存储操作包括:当所述第二使用计数不同于I时,选择所述I个第二超级块中的任何一个,增加所述第二使用计数的值,然后将所述写入数据存储在所选择的第二超级块中,并且
其中执行所述第二存储操作包括:当所述第二使用计数不同于J时,选择所述J个第二超级块中的任何一个,增加所述第二使用计数的值,然后将所述写入数据存储在所选择的第二超级块中。
20.根据权利要求19所述的方法,
其中执行所述第一存储操作包括:当所述第二使用计数等于I时,选择所述K个第三超级块中的任何一个,增加所述第三使用计数的值,然后将所述写入数据存储在所选择的第三超级块中,并且当所述第三使用计数的增加值等于K时,初始化所述第二使用计数和所述第三使用计数的各自值,并且
其中执行所述第二存储操作包括:当所述第二使用计数等于J时,选择所述L个第四超级块中的任何一个,增加所述第四使用计数的值,然后将所述写入数据存储在所选择的第四超级块中,并且当所述第四使用计数的增加值等于L时,初始化所述第二使用计数和所述第四使用计数的各自值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180074106A KR102583726B1 (ko) | 2018-06-27 | 2018-06-27 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR10-2018-0074106 | 2018-06-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110647290A CN110647290A (zh) | 2020-01-03 |
CN110647290B true CN110647290B (zh) | 2023-01-20 |
Family
ID=69009274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910134128.XA Active CN110647290B (zh) | 2018-06-27 | 2019-02-22 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10776049B2 (zh) |
KR (1) | KR102583726B1 (zh) |
CN (1) | CN110647290B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210043314A (ko) * | 2019-10-11 | 2021-04-21 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 |
KR20220130389A (ko) | 2021-03-18 | 2022-09-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
JP2023000031A (ja) * | 2021-06-17 | 2023-01-04 | 富士通株式会社 | データ配置プログラム、プロセッサ、及びデータ配置方法 |
US11599416B1 (en) | 2021-09-01 | 2023-03-07 | Micron Technology, Inc. | Memory sub-system using partial superblocks |
CN116303118B (zh) * | 2023-05-18 | 2023-09-05 | 合肥康芯威存储技术有限公司 | 一种存储设备及其控制方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105989885A (zh) * | 2015-03-18 | 2016-10-05 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN107797882A (zh) * | 2016-09-05 | 2018-03-13 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529905B2 (en) * | 2005-10-13 | 2009-05-05 | Sandisk Corporation | Method of storing transformed units of data in a memory system having fixed sized storage blocks |
TW200739369A (en) * | 2006-04-04 | 2007-10-16 | Sunonwealth Electr Mach Ind Co | Searching method for patent database and brief form of searching results outputted therefrom |
US8429493B2 (en) * | 2007-05-12 | 2013-04-23 | Apple Inc. | Memory device with internal signap processing unit |
US8456905B2 (en) * | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
US8095765B2 (en) * | 2009-03-04 | 2012-01-10 | Micron Technology, Inc. | Memory block management |
US8447920B1 (en) * | 2010-06-29 | 2013-05-21 | Western Digital Technologies, Inc. | System and method for managing data access in non-volatile memory |
US8832507B2 (en) | 2010-08-23 | 2014-09-09 | Apple Inc. | Systems and methods for generating dynamic super blocks |
TWI425357B (zh) | 2010-09-27 | 2014-02-01 | Silicon Motion Inc | 用來進行區塊管理之方法以及記憶裝置及控制器 |
US9239781B2 (en) * | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
US9501400B2 (en) * | 2013-11-13 | 2016-11-22 | Sandisk Technologies Llc | Identification and operation of sub-prime blocks in nonvolatile memory |
US20160041760A1 (en) * | 2014-08-08 | 2016-02-11 | International Business Machines Corporation | Multi-Level Cell Flash Memory Control Mechanisms |
JP6523193B2 (ja) | 2016-03-08 | 2019-05-29 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
KR102645572B1 (ko) * | 2016-11-29 | 2024-03-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
KR102559528B1 (ko) | 2018-03-20 | 2023-07-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
-
2018
- 2018-06-27 KR KR1020180074106A patent/KR102583726B1/ko active IP Right Grant
-
2019
- 2019-01-21 US US16/253,090 patent/US10776049B2/en active Active
- 2019-02-22 CN CN201910134128.XA patent/CN110647290B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105989885A (zh) * | 2015-03-18 | 2016-10-05 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN107797882A (zh) * | 2016-09-05 | 2018-03-13 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110647290A (zh) | 2020-01-03 |
US10776049B2 (en) | 2020-09-15 |
US20200004462A1 (en) | 2020-01-02 |
KR20200001310A (ko) | 2020-01-06 |
KR102583726B1 (ko) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107797882B (zh) | 存储器系统及其操作方法 | |
CN110399311B (zh) | 存储器系统及该存储器系统的操作方法 | |
CN108304141B (zh) | 存储器系统及其操作方法 | |
CN109144408B (zh) | 存储器系统及其操作方法 | |
US10073622B2 (en) | Memory system and operation method thereof | |
CN110858180B (zh) | 数据处理系统及其操作方法 | |
CN108121665B (zh) | 存储器系统及其操作方法 | |
CN109947358B (zh) | 存储器系统及其操作方法 | |
CN108345550B (zh) | 存储器系统 | |
CN108108308B (zh) | 存储器系统及其操作方法 | |
CN110647290B (zh) | 存储器系统及其操作方法 | |
CN110308867B (zh) | 存储器系统及其操作方法 | |
CN108694138B (zh) | 控制器及其操作方法 | |
CN110347330B (zh) | 存储器系统及其操作方法 | |
CN108932203B (zh) | 数据处理系统和数据处理方法 | |
CN110362270B (zh) | 存储器系统及其操作方法 | |
US10019173B1 (en) | Memory system and operating method thereof | |
CN108389602B (zh) | 存储器系统及其操作方法 | |
CN108694970B (zh) | 控制器及其操作方法 | |
CN107807887B (zh) | 存储器系统及其操作方法 | |
CN111309638B (zh) | 存储器系统及其操作方法 | |
CN110716883A (zh) | 存储器系统及其操作方法 | |
CN108427536B (zh) | 存储器系统及其操作方法 | |
CN110570894A (zh) | 存储器系统及该存储器系统的操作方法 | |
CN109656470B (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 |