CN107797882B - 存储器***及其操作方法 - Google Patents
存储器***及其操作方法 Download PDFInfo
- Publication number
- CN107797882B CN107797882B CN201710598819.6A CN201710598819A CN107797882B CN 107797882 B CN107797882 B CN 107797882B CN 201710598819 A CN201710598819 A CN 201710598819A CN 107797882 B CN107797882 B CN 107797882B
- Authority
- CN
- China
- Prior art keywords
- memory
- block
- bad
- super
- blocks
- 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
- 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
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID 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
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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
- 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/785—Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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/7206—Reconfiguration of flash memory system
-
- 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)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种存储器***,其可包括:存储器装置,其包括多个存储块;以及控制器,其适于通过对存储块按照对应于预定条件的类型进行分组来将存储块作为多个超级存储块进行管理,通过在每个都包括一个或多个坏存储块的超级存储块中将超级存储块设置为坏超级存储块来管理位图和索引形式的坏块池,并且通过经由坏块池检查包括在各个坏超级存储块中的正常存储块然后按照对应于预定条件的类型执行分组来管理重新生成的超级存储块。
Description
相关申请的交叉引用
本申请要求于2016年9月5日向韩国知识产权局提交的申请号为10-2016-0113738的韩国专利申请的优先权,该申请的全部公开内容通过引用并入本文。
技术领域
示例性实施例涉及一种存储器***,并且更特别地,涉及一种用于处理去往和来自存储器装置的数据的存储器***及其操作方法。
背景技术
计算机环境范式已经转变为普适计算***,其能够在任何时间和任何地点使用。由于此,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有一个或更多个用于存储数据的存储器装置的存储器***。存储器***可用作便携式电子装置的主存储器装置或辅助存储器装置。
存储器***因其不具有移动部件而可提供优良的稳定性、耐用性、高信息存取速度以及低功耗。具有这种优点的存储器***的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
各种实施例涉及一种存储器***及其操作方法,其能够以超级存储块为单位来管理在存储器装置中包括的多个存储块。
在实施例中,存储器***可包括:存储器装置,其包括多个存储块;以及控制器,其适于通过根据预定条件对存储块进行分组来将存储块作为多个超级存储块进行管理,通过将具有一个或多个坏存储块的超级存储块设置为坏超级存储块来管理包括位图和索引的坏块池,并且通过经由坏块池检查在各个坏超级存储块中包括的正常存储块然后根据预定条件执行分组来管理复用(reused)超级存储块。
控制器可包括设置值,设置值包括在坏块池中对应于指示各个坏超级存储块的超级块地址信息的索引,并且控制器可将包括在各个坏超级存储块中的正常存储块和坏存储块的位置改变为包括位图的坏存储块管理信息,并且包括坏块池中对应于各个设置值的坏存储块管理信息。
在通过包括在坏块池中的坏存储块管理信息来检查包括在各个坏超级存储块中的正常存储块的位置之后,控制器可根据预定条件通过将对应于各个被检查的坏存储块管理信息的设置值进行分组来生成多个设置值表,并且可将各个设置值表作为复用超级存储块进行管理。
在生成设置值表之后,控制器可擦除包括在坏块池中的坏存储块管理信息。
即使在生成设置值表之后,控制器也可保留坏块池中包括的坏存储块管理信息,并且在超级存储块之中存在另外应包括在坏超级超级存储块中的超级存储块的情况下,控制器可通过坏块池的坏存储块管理信息再次检查包括在各个坏超级存储块中的正常存储块,可根据预定条件通过将对应于被再次检查的坏存储块管理信息的设置值进行再次分组来再次生成设置值表,并且可将再次生成的设置值表作为复用超级存储块进行管理。
存储器装置可进一步包括:多个平面,其分别对应于能够通过共享一个通道以交错方案输入/输出数据的多个通路,并且分别包括存储块;以及多个存储器管芯,其分别对应于能够以交错方案输入/输出数据的多个通道,并且分别包括平面。
控制器可包括:在预定条件下,对在存储器管芯中的任意一个存储器管芯的第一平面中包括的一个可选存储块和在第二平面中包括的一个可选存储块进行分组。
控制器可包括:在预定条件下,对在存储器管芯中的第一存储器管芯的第一平面中包括的一个可选存储块和在第二存储器管芯的第一平面中包括的一个可选存储块进行分组,并且对在第一存储器管芯的第二平面中包括的一个可选存储块和在第二存储器管芯的第二平面中包括的一个可选存储块进行分组。
控制器可包括:在预定条件下,对在存储器管芯中的第一存储器管芯的第一平面中包括的一个可选存储块、在第一存储器管芯的第二平面中包括的一个可选存储块、在第二存储器管芯的第一平面中包括的一个可选存储块以及在第二存储器管芯的第二平面中包括的一个可选存储块进行分组。
在实施例中,一种包括含有多个存储块的存储器装置的存储器***的操作方法可包括:根据预定条件,通过对存储块进行分组来将存储块作为多个超级存储块进行管理;通过将具有一个或多个坏存储块的超级存储块设置为坏超级存储块来管理包括位图和索引的坏块池;并且通过经由坏块池检查包括在各个坏超级存储块中的正常存储块,然后根据预定条件进行分组来管理复用超级存储块。
坏块池的管理可包括:包括在坏块池中具有指示各个坏超级存储块的超级块地址信息的索引的设置值;并且将包括在各个坏超级存储块中的正常存储块和坏存储块的位置改变到包括位图的坏存储块管理信息中,并且包括坏块池中对应于各个设置值的坏存储块管理信息。
复用超级存储块的管理可包括:通过包括在坏块池中的坏存储块管理信息来检查包括在各个坏超级存储块中的正常存储块的位置;以及根据预定条件将对应于在检查中检查的各个坏存储块管理信息的设置值进行分组来生成多个设置值表,并且将各个设置值表作为复用超级存储块进行管理。
该方法可进一步包括:在复用超级存储块的管理中生成设置值表之后,擦除包括在坏块池中的坏存储块管理信息。
该方法可进一步包括:在复用超级存储块的管理中生成设置值表之后,保留包括在坏块池中的坏存储块管理信息,并且复用超级存储块的管理可包括:在保留之后,在超级存储块之中存在另外应当包括在坏超级超级存储块中的超级存储块的情况下,通过坏块池的坏存储块管理信息再次检查包括在各个坏超级存储块中的正常存储块;以及根据预定条件通过将对应于再次检查中被再次检查的坏存储块管理信息的设置值再次进行分组来再次生成设置值表,并且将再次生成的设置值表作为复用超级存储块进行管理。
分别对应于能够通过共享一个通道以交错方案输入/输出数据的多个通路并且分别包括存储块的多个平面,以及分别对应于能够以交错方案输入/输出数据的多个通道并且分别包括平面的多个存储器管芯可另外包括在存储器装置中。
预定条件可包括:对在存储器管芯中的任何一个存储器管芯的第一平面中包括的一个可选存储块和在第二平面中包括的一个可选存储块进行分组。
预定条件可包括:对在存储器管芯中的第一存储器管芯的第一平面中包括的一个可选存储块和在第二存储器管芯的第一平面中包括的一个可选存储块进行分组,并且对在第一存储器管芯的第二平面中包括的一个可选存储块和在第二存储器管芯的第二平面中包括的一个可选存储块进行分组。
预定条件可包括:对在存储器管芯中的第一存储器管芯的第一平面中包括的一个可选存储块、在第一存储器管芯的第二平面中包括的一个可选存储块、在第二存储器管芯的第一平面中包括的一个可选存储块以及在第二存储器管芯的第二平面中包括的一个可选存储块进行分组。
在实施例中,存储器***可包括:存储器装置,其包括多个超级存储块;以及控制器,其适于生成坏块池和复用超级块表,并且基于坏块池和复用超级块表生成一个或多个复用超级存储块。坏块池可包括分别对应于超级存储块中的一个或多个坏超级存储块的一个或多个坏超级存储块索引、一个或多个超级存储块地址以及一个或多个坏存储块信息;每一个坏存储块信息可包括位图,位图的每一位表示包括在对应的坏超级存储块中的正常存储块和坏存储块中的一个;复用超级块表可包括复用超级存储块的信息,每一个复用超级存储块的信息可包括位图,位图的每一位具有坏超级存储块索引的一个值,并且表示由坏超级存储块索引的值所表示的一个坏超级存储块的正常存储块;控制器可通过用牺牲(victim)超级存储块的正常存储块替换目标超级存储块的坏存储块来生成复用超级存储块,并且目标存储块和牺牲存储块可被包括在坏超级存储块中。
在生成复用超级存储块之后,控制器可擦除包括在坏块池中的坏存储块信息。
附图说明
从下面参照附图详细描述中,本发明的这些和其它特征与优点对于本发明所属领域的技术人员将变得显而易见,其中:
图1是示出根据本发明的实施例的包括存储器***的数据处理***的框图。
图2是示出图1的存储器***中采用的存储器装置的示例性配置的示意图。
图3是示出图2的存储器装置中的存储块的存储器单元阵列的示例性配置的电路图。
图4是示出图2的存储器装置的示例性三维结构的示意图。
图5是示出根据本发明的实施例的存储器***中使用的超级存储块的图。
图6是示出根据本发明的实施例的存储器***中以超级存储块为单位管理存储块的操作的图。
图7是示出根据本发明的实施例的在存储器***中用于复用其中包括一个或多个坏存储块的坏超级存储块的方法的图。
图8是示出根据本发明的实施例的在存储器***中用于复用其中包括一个或多个坏存储块的坏超级存储块的方法的图。
图9是示出根据本发明的另一实施例的在存储器***中用于复用其中包括一个或多个坏存储块的坏超级存储块的方法的图。
图10至图18是示意性示出根据本发明的各个实施例的图1的数据处理***的应用示例的图。
具体实施方式
参照附图更具体而言描述本发明的各个实施例。然而,我们注意到,本发明可以不同的实施例、形式以及变型实施,并不应被解释为受限于本文所阐述的实施例。相反,提供所描述的实施例以便使本公开将是彻底且完全的,并将本发明完全传达给本发明所属领域的技术人员。贯穿本公开,在本发明的各个附图和实施例中,相同的附图标记表示相同的部件。
将理解的是,尽管可在本文中使用术语“第一”、“第二”、“第三”等来描述各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一个元件区分开。因此,在不脱离本发明的精神和范围的情况下,下面描述的第一元件也可被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,比例可能已经被放大以便清楚地示出实施例的各个特征。
将进一步理解的是,当元件被称为“连接到”或“联接到”另一元件时,其可直接在其它元件上、连接到或联接到其它元件,或者可存在一个或多个中间元件。此外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。
本文使用的术语仅是为了描述特定实施例为目的,并不旨在限制本发明。如本文所使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,并且不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术语境中的含义一致的含义,并且将不以理想化或过于正式的意义来解释,除非本文中明确地这样定义。
在下面的描述中,为了提供对本发明的全面理解,描述了大量具体细节。可在没有一些或全部这些具体细节的情况下实践本发明。在其它情况下,没有具体而言描述公知的进程结构和/或进程以避免不必要地模糊本发明。
还应注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有特别说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用。
在下文中,将参照附图详细描述本发明的各个实施例。
图1是示出根据本发明的实施例的包括存储器***100的数据处理***110的框图。
参照图1,数据处理***100可包括主机102和存储器***110。
主机102可包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏机、TV和投影仪的非便携式电子装置。
主机102可包括至少一个OS(操作***)。OS可管理并控制主机102的全部功能和操作,并提供主机102和使用数据处理***100的用户之间的操作或提供主机和存储器***110之间的操作。OS可支持对应于用户的使用目的和用途的功能和操作。例如,根据主机102的移动性,OS可被划分为通用OS和移动OS。根据用户的环境,通用OS可被分为个人OS和企业OS。例如,被配置为支持向普通用户提供服务的功能的个人OS可包括Windows和Chrome,被配置为保护和支持高性能的企业OS可包括Windows服务器、Linux和Unix。此外,被配置为支持向用户提供移动服务功能和***的省电功能的移动OS可包括Android、iOS和WindowsMobile。主机102可包括一个或更多个OS。主机102可执行OS以在存储器***110上执行对应于用户的请求的操作。
存储器***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可包括存储器装置150和控制器130。存储器装置150可存储用于主机120的数据,并且控制器130可控制存储到存储器装置150中的数据。
控制器130和存储器装置150可集成到单个半导体装置中,其可被包括在如上所例示的各种类型的存储器***中。例如,控制器130和存储器装置150可集成为单个半导体装置来构成SSD。当存储器***110用作SSD时,可提高连接到存储器***110的主机102的操作速度。控制器130和存储器装置150可集成为单个半导体装置来构成存储卡。例如,控制器130和存储器装置150可构成诸如以下的存储卡:PCMCIA(个人计算机存储卡国际协会)卡,CF卡,SMC(智能媒体卡),记忆棒,包括RS-MMC和微型-MMC的MMC,包括迷你-SD、微型-SD和SDHC的SD卡,或UFS装置。
存储器***110的非限制性应用示例可包括计算机、超级移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航***、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储器、能够在无线环境下传输和接收信息的装置、构成家庭网络的各种电子装置之一、构成计算机网络的各种电子装置之一、构成远程信息处理网络的各种电子装置之一、无线射频识别(RFID)装置或构成计算***的各种部件之一。
存储器装置150可以是非易失性存储器装置,并且在即使不提供电源的情况下仍可保留其中存储的数据。存储器装置150可通过写入操作来存储从主机102提供的数据,并且通过读取操作将存储在其中的数据提供给主机102。存储器装置150可包括多个存储器管芯(未示出),每一个存储器管芯包括多个平面(未示出),每一个平面包括多个存储块152至156,存储块152至156中的每一个可包括多个页面,并且每一个页面可包括联接到字线的多个存储器单元。
控制器130可响应于来自主机102的请求来控制存储器装置150。例如,控制器130可将从存储器装置150读取的数据提供给主机102,并将由主机102提供的数据存储到存储器装置150中。对于该操作,控制器130可控制存储器装置150的读取操作、写入操作、编程操作和擦除操作。
控制器130可包括主机接口(I/F)单元132、处理器134、错误校正码(ECC)单元138、电源管理单元(PMU)140、NAND闪速存储器控制器(NFC)142以及存储器144,其全部经由内部总线可操作地联接。
主机接口单元132可配置为处理主机102的命令和数据,并可通过诸如以下的各种接口协议中的一种或多种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速***组件互连(PCI-E)、小型计算机***接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。
ECC单元138可检测并校正从存储器装置150读取的数据中所包括的错误。换言之,ECC单元138可通过在ECC编码进程期间使用的ECC码对从存储器装置150读取的数据执行错误校正解码进程。根据错误校正解码进程的结果,ECC单元138可输出信号,例如错误校正成功/失败信号。当错误位数量大于可校正错误位的阈值时,ECC单元138可不校正错误位,并且可输出错误校正失败信号。
ECC单元138可通过诸如以下的编码调制执行错误校正:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(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的整体(overall)操作。处理器134可驱动固件来控制存储器***110的整体操作。固件可被称为闪存转换层(FTL)。
控制器130的处理器134可包括用于执行存储器装置150的坏块管理操作的管理单元(未示出)。管理单元可在包括在存储器装置150中的多个存储块152至156中执行检查其中在编程操作期间由于NAND闪速存储器的特性而出现编程失败的坏块的坏块管理操作。管理单元可将坏块的编程失败数据写入新的存储块。在具有3D堆叠结构的存储器装置150中,坏块管理操作可能会降低存储器装置150的使用效率和存储器***110的可靠性。因此,需要以更可靠的方式执行坏块管理操作。
图2是示出存储器装置150的示意图。
参照图2,存储器装置150可包括多个存储块0至N-1,并且块0至N-1中的每一个可包括多个页面,例如2M个页面,其数量可根据电路设计而变化。包括在各个存储块0至N-1中的存储器单元可以是存储1位数据的一个或多个单层单元(SLC)中、或是存储2位或更多位数据的多层单元(MLC)。MLC的示例包括存储2位数据的二层单元、存储3位数据的三层单元(TLC)、存储4位数据的四层单元(QLC)、存储5位或更多位数据的多层单元等。
图3是示出存储器装置150中的存储块的存储器单元阵列的示例性配置的电路图。
参照图3,可对应于包括在存储器***110的存储器装置150中的多个存储块152至156中的任一个的存储块330可包括被联接到多个相应位线BL0至BLm-1的多个单元串340。每列的单元串340可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在漏极选择晶体管DST和源极选择晶体管SST之间,可串联联接多个存储器单元MC0至MCn-1。在实施例中,存储器单元晶体管MC0至MCn-1的每一个可由能够存储多个位的数据信息的MLC实现。单元串340中的每一个可电联接到多个位线BL0至BLm-1中的对应位线。例如,如图3所示,第一单元串联接到第一位线BL0,最后一个单元串联接到最后一个位线BLm-1。
尽管图3示出了NAND闪速存储器单元,但是本发明不限于此。应注意的是,存储器单元可以是NOR闪速存储器单元,或者包括两个或更多个组合在其中的存储器单元的混合闪速存储器单元。另外,应注意的是,存储器装置150可以是包括作为电荷存储层的导电浮动栅极的闪速存储器装置,或是包括作为电荷存储层的绝缘层的电荷捕获闪速(CTF)存储器装置。
存储器装置150可进一步包括电压供应单元310,电压供应单元310根据操作模式提供包括编程电压、读取电压和通过电压的字线电压以供应至字线。电压供应单元310的电压生成操作可由控制电路(未示出)控制。在控制电路的控制下,电压供应单元310可选择存储器单元阵列的存储块(或扇区)中的一个,选择所选存储块的一个字线,并按需要将字线电压提供给所选择的字线和未选择的字线。
存储器装置150可包括由控制电路控制的读取/写入电路320。在验证/正常读取操作期间,读取/写入电路320可作为用于从存储器单元阵列读取数据的读出放大器而操作。在编程操作期间,读取/写入电路320可作为用于根据待被存储在存储器单元阵列中的数据来驱动位线的写入驱动器而操作。在编程操作期间,读取/写入电路320可从缓冲器(未示出)接收待被存储到存储器单元阵列中的数据,并根据所接收的数据驱动位线。读取/写入电路320可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器322至326,并且页面缓冲器322至326中的每一个可包括多个锁存器(未示出)。
图4是示出存储器装置150的示例性3D结构的示意图。
存储器装置150可由2D或3D存储器装置实现。具体地,如图4所示,存储器装置150可由具有3D堆叠结构的非易失性存储器装置实现。当存储器装置150具有3D结构时,存储器装置150可包括每一个都具有3D结构(或垂直结构)的多个存储块BLK0至BLKN-1。
图5是示出根据本发明的实施例的在存储器***中使用的超级存储块的图。
参照图5,存储器装置150包括多个存储块BLOCK000至BLOCK11N。
存储器装置150包括能够通过第零通道CH0输入/输出数据的第零存储器管芯DIE0和能够通过第一通道CH1输入/输出数据的第一存储器管芯DIE1。第零通道CH0和第一通道CH1可以交错方案输入/输出数据。
第零存储器管芯DIE0包括分别对应于能够以交错方案通过共享第零通道CH0输入/输出数据的多个通路WAY0和WAY1的多个平面PLANE00和PLANE01。
第一存储器管芯DIE1包括分别对应于能够以交错方案通过共享第一通道CH1输入/输出数据的多个通路WAY2和WAY3的多个平面PLANE10和PLANE11。
第零存储器管芯DIE0的第一平面PLANE00包括多个存储块BLOCK000至BLOCK11N之中的预定数量的存储块BLOCK000至BLOCK00N。
第零存储器管芯DIE0的第二平面PLANE01包括多个存储块BLOCK000至BLOCK11N之中的预定数量的存储块BLOCK010至BLOCK01N。
第一存储器管芯DIE1的第一平面PLANE10包括多个存储块BLOCK000至BLOCK11N之中的预定数量的存储块BLOCK100至BLOCK10N。
第一存储器管芯DIE1的第二平面PLANE11包括多个存储块BLOCK000至BLOCK11N之中的预定数量的存储块BLOCK110至BLOCK11N。
以这种方式,包括在存储器装置150中的多个存储块BLOCK000至BLOCK11N可根据它们的物理位置及其使用的通路和通道进行分组。
作为示例,图5示出了包括在存储器装置150中的两个存储器管芯DIE0和DIE1、包括在管芯DIE0和DIE1的每一个中的两个平面以及包括在每一个平面中的预定数量相同的存储块。应当注意的是,根据设计者的选择,包括在存储器装置150中的存储器管芯的数量可大于或小于两个,并且包括在每一个存储器管芯中的平面的数量可大于或小于两个。此外,可根据设计者的选择来不同地调整包括在每一个平面中的存储块的数量。
控制器130可通过将存储块分组成多个超级存储块来管理多个存储块。每一个超级存储块包括可能在多个存储块中同时选择的多个存储块。
参照图5,可例举通过控制器130将多个存储块分组成多个超级存储块的各种方案。
第一方案是由控制器130通过对包括在存储器装置150中的多个存储器管芯DIE0和DIE1之间的第零存储器管芯DIE0的第一平面PLANE00中的一个可选存储块BLOCK000和第二平面PLANE01中的一个可选存储块BLOCK010进行分组来管理一个超级存储块A1。当将第一方案应用于包括在存储器装置150中的多个存储器管芯DIE0和DIE1之间的第一存储器管芯DIE1时,控制器130可通过将第一存储器管芯DIE1的第一平面PLANE10中的一个可选存储块BLOCK100和第二平面PLANE11中的一个可选存储块BLOCK110进行分组来管理一个超级存储块A2。
第二方案是通过控制器130对包括在存储器装置150中的多个存储器管芯DIE0和DIE1之间的第零存储器管芯DIE0的第一平面PLANE00中包括的一个可选存储块BLOCK002和第一存储器管芯DIE1的第一平面PLANE10中包括的一个可选存储块BLOCK102进行分组来管理一个超级存储块B1。当再次应用第二方案时,控制器130可通过对包括在存储器装置150中的多个存储器管芯DIE0和DIE1之间的第零存储器管芯DIE0的第二平面PLANE01中包括的一个可选存储块BLOCK012和第一存储器管芯DIE1的第二平面PLANE11中包括的一个可选存储块BLOCK112进行分组来管理一个超级存储块B2。
第三种方案是通过控制器130对包括在存储器装置150中的多个存储器管芯DIE0和DIE1之间的第零存储器管芯DIE0的第一平面PLANE00中包括的一个可选存储块BLOCK001、第零存储器管芯DIE0的第二平面PLANE01中包括的一个可选存储块BLOCK011、第一存储器管芯DIE1的第一平面PLANE10中包括的一个可选存储块BLOCK101以及第一存储器管芯DIE1的第二平面PLANE11中包括的一个可选存储块BLOCK111进行分组来管理一个超级存储块C。
在各个超级存储块中,可通过诸如通道交错方案、存储器管芯交错方案、存储器芯片交错方案或通路交错方案的交错方案来同时选择存储块。
图6是示出根据本发明的实施例的存储器***中以超级存储块为单位来管理存储块的操作的图。
参照图6,可看到选择每一个超级存储块的方案。
首先,例示了存储器装置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。
另外,例示了在存储器装置150中,包括在八个存储器管芯DIE<0:7>中的总共32个平面PLANE<0:3>*8通过两个通道CH<0:1>和8个通路WAY<0:7>输入/输出数据。即,例示了在存储器装置150中,各8个管芯DIE<0:7>中的每一个的四个平面PLANE<0:3>共享8个通路WAY<0:7>中的一个。而且,8个通路WAY<0:7>的前半部分(例如,前四个通路WAY<0:3>)共享第一通道CH0,8通路WAY<0:7>的后半部分(例如,后四通路WAY<4:7>)共享第二通道CH1。
根据本发明的实施例的存储器***110的控制器130使用通过以超级存储块为单位划分存储块来管理包括在存储器装置150中的多个存储块的方案。
如图6所示,控制器130通过在包括在存储器装置150中的32个平面PLANE<0:3>*8中的每一个中选择一个任意的存储块来管理超级存储块SUPER BLOCK<0:1023>中的每一个。因此,32个存储块被包括在每一个超级存储块SUPER BLOCK<0:1023>中。
在以如图6所示的超级存储块为单位执行管理的配置中,由于控制器130同时选择包括在超级存储块SUPER BLOCK<0:1023>的每一个中的32个存储块,因此仅使用超级存储块地址来选择各个超级存储块SUPER BLOCK<0:1023>。
换言之,在以超级存储块为单位执行管理的配置中,仅使用超级存储块地址(未示出)来选择各个1024个超级存储块SUPER BLOCK<0:1023>,而不是使用存储块地址(未示出)来选择包括在存储器装置150中的32768个存储块BLOCK<0:1023>*32的各个存储块。
以这种方式,为了仅使用超级存储块地址,控制器130使用通过对包括在存储器装置150中的32个平面PLANE<0:3>*8中各自的相同位置的存储块进行分组来管理超级存储块的方案。
例如,控制器130通过对包括在存储器装置150中的32个平面PLANE<0:3>*8中各自的32个第零存储块BLOCK0进行分组来管理第零超级存储块SUPER BLOCK0,通过对32个平面PLANE<0:3>*8中各自的32个第一存储块BLOCK1进行分组来管理第一超级存储块SUPERBLOCK1,并且通过对32个平面PLANE<0:3>*8中各自的32个第二存储块BLOCK2进行分组来管理第二超级存储块SUPER BLOCK2。以这种方式,控制器130通过将存储块分割成总共1024个超级存储块SUPER BLOCK<0:1023>来管理包括在存储器装置150中的32768个存储块BLOCK<0:1023>*32。
同时,包括在存储器装置150中的所有存储块均正常工作是基本上不可能的。也就是说,在包括在存储器装置150中的多个存储块中,通常在一定程度上存在非正常工作的坏存储块。例如,在图6的实施例中,如图所示,32768个存储块BLOCK<0:1023>*32包括在存储器装置150中,对应于大约2%的约650个存储块可能是坏存储块。
就此而言,如上所述,在控制器130使用通过对包括在存储器装置150中的32个平面PLANE<0:3>*8中各自的相同位置的存储块进行分组来管理超级存储块的方案以便仅使用超级存储块地址的情况下,超级存储块SUPER BLOCK<0:1023>之中包括坏存储块的坏超级存储块可能不能正常工作。也就是说,即使包括在超级存储块SUPER BLOCK<0:1023>的每一个中的32个存储块中的一个存储块中被确定为坏存储块,相应的坏超级存储块也可能无法正常工作。
以这种方式,即使在包括在任何一个超级存储块中的32个存储块中只有一个存储块是坏存储块并且所有剩余的31个存储块都是正常的情况下,相应的坏超级存储块也不被使用,这样效率显然不高。
考虑到这个事实,在根据本发明的实施例的存储器***110中,通过采用复用超级块表来复用其中包括至少一个坏存储块的坏超级存储块。
图7是示出根据本发明的实施例的在存储器***中复用其中包括一个或多个坏存储块的坏超级存储块的方法的图。
参照图7,可以看出,在包括在图6所示的存储器装置150中的多个超级存储块SUPER BLOCK<0:1023>中,包括在第718超级存储块SUPER BLOCK718、第820超级存储块SUPER BLOCK820和第829超级存储块SUPER BLOCK829的每一个中的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,用于以超级存储块SUPER BLOCK<0:1023>中正常存储块来替换包括在各个坏超级存储块(即,第718超级存储块SUPERBLOCK718、第820超级存储块SUPER BLOCK820和第829超级存储块SUPER BLOCK829)中的坏存储块,从而将坏超级存储块恢复为正常超级存储块。
具体而言,为了复用坏的第718超级存储块SUPER BLOCK718,控制器130可在第718超级存储块SUPER BLOCK718(以下简称“目标超级存储块”)中包括的32个存储块中,替换包括在第一存储器管芯DIE1的第一平面PLANE1中的坏存储块。
为此,控制器130在超级存储块SUPER BLOCK<0:1023>中选择其中包括至少一个坏存储块的牺牲超级存储块。控制器130排除了在其中仅包括正常存储块的超级存储块SUPERBLOCK<0:1023>中对目标或牺牲超级存储块的搜索。
例如,控制器130可选择包括两个坏存储块的坏的第820超级存储块SUPERBLOCK820作为牺牲超级存储块。在这种状态下,控制器130检查包括在坏的第820超级存储块SUPER BLOCK820(即,牺牲超级存储块)中的坏存储块的位置与包括在坏的第718超级存储块SUPER BLOCK718(即,目标超级存储块)中的坏存储块的位置是否相同。
如果包括在坏的第820超级存储块SUPER BLOCK820(即,牺牲超级存储块)中的坏存储块的位置与包括在坏的第718超级存储块SUPER BLOCK718(即,目标超级存储块)中的坏存储块的位置相同,则控制器130可选择另一个坏超级存储块作为牺牲超级存储块。例如,将第820超级存储块SUPER BLOCK820从成为牺牲搜索的目标中排除,并执行对牺牲超级存储块的另一搜索。相反,如果在目标超级存储块SUPER BLOCK718中的坏存储块的位置与超级存储块SUPER BLOCK820中的坏存储块的位置不同,则将第820超级存储块SUPERBLOCK820确定为牺牲超级存储块。
从附图中可以看出,坏的第718超级存储块SUPER BLOCK718(即,目标超级存储块)的坏存储块位于第一存储器管芯DIE1的第一平面PLANE1中,并且坏的第820超级存储块SUPER BLOCK820(即,牺牲超级存储块)的坏存储块位于第三存储器管芯DIE3的第一平面PLANE1和第四存储器管芯DIE4的第一平面PLANE1中。换言之,包括在第820超级存储块SUPER BLOCK820中的坏存储块的位置是不与第718超级存储块SUPER BLOCK718中包括的坏存储块的位置相重叠的位置。
因此,控制器130将第820超级存储块SUPER BLOCK820确定为牺牲超级存储块,并生成复用超级块表700,使得在第820超级存储块SUPER BLOCK820(即,牺牲超级存储块)中包括的32个存储块中,包括在第一存储器管芯DIE1的第一平面PLANE1中的存储块可用于第718超级存储块SUPER BLOCK718(即,目标超级存储块)中。
也就是说,为了替换超级存储块SUPER BLOCK718,控制器130将复用超级块表700的第一行设置为第零复用超级存储块RE SUPER BLOCK0,并存储用于替换目标超级存储块或第718超级存储块SUPER BLOCK718的32个存储块的块地址值。
因此,在复用超级块表700的第一行中存储的第零复用超级存储块RE SUPERBLOCK0的值中,只有用于指示在32个存储块中包括在第一存储器管芯DIE1的第一平面PLANE1中的存储块的块地址是第820超级存储块SUPER BLOCK820的块地址,所有剩余的31个块地址是第718超级存储块SUPER BLOCK718的块地址。
这样,由于生成了复用超级块表700,当控制器130访问第718超级存储块SUPERBLOCK718时,可参照在复用超级块表700的第一行中存储的第零复用超级存储块RE SUPERBLOCK0的值。
然后,为了复用坏的第820超级存储块SUPER BLOCK820(即,目标超级存储块),控制器130可在第820超级存储块SUPER BLOCK820中包括的32个存储块中替换包括在第一存储器管芯DIE1的第一平面PLANE1中的存储块以及包括在第三存储器芯片DIE3的第一平面PLANE1中和包括第四存储器管芯DIE4的第一平面PLANE1中的坏存储块。
如上所述,包括在第一存储器管芯DIE1的第一平面PLANE1中的坏的第820超级存储块SUPER BLOCK820的存储块被采用用于复用超级存储块RE SUPER BLOCK0,并且因此,坏的第820超级存储块SUPER BLOCK820因其被采用的存储块以及包括在其中的坏存储块而需要正常存储块。
因此,为了复用坏的第820超级存储块SUPER BLOCK820,控制器130在超级存储块SUPER BLOCK<0:1023>中选择其中包括至少一个坏存储块的牺牲超级存储块。
例如,控制器130可选择包括一个坏存储块的坏的第829超级存储块SUPERBLOCK829作为牺牲超级存储块。在这种状态下,控制器130检查包括在第829超级存储块SUPER BLOCK829(即,牺牲超级存储块)中的坏存储块的位置与包括在第718超级存储块SUPER BLOCK718(即,先前的目标超级存储块)中的坏存储块的位置、以及包括在第820超级存储块SUPER BLOCK820(即,当前的目标超级存储块)中的坏存储块的位置是否相同。
如果包括在第829超级存储块SUPER BLOCK829(即,牺牲超级存储块)中的坏存储块的位置与包括在第718超级存储块SUPER BLOCK718(即,先前的目标超级存储块)中的坏存储块的位置、以及包括在第820超级存储块SUPER BLOCK820(即,当前的目标超级存储块)中的坏存储块的位置相同,则控制器130可选择另一个坏超级存储块作为牺牲超级存储块。
从附图中可以看出,坏的第829超级存储块SUPER BLOCK829(即,牺牲超级存储块)的坏存储块位于第零存储器管芯DIE0的第一平面PLANE1中,第718超级存储块SUPERBLOCK718(即,先前的目标超级存储块)的坏存储块位于第一存储器管芯DIE1的第一平面PLANE1中,并且坏的第820超级存储块SUPER BLOCK820(即,当前的目标超级存储块)的坏存储块位于第三存储器管芯DIE3的第一平面PLANE1和第四存储器管芯DIE4的第一平面PLANE1中。也就是说,第829超级存储块SUPER BLOCK829的坏存储块的位置处于不与包括在第820超级存储块SUPER BLOCK820中的坏存储块的位置以及包括在第718超级存储块SUPERBLOCK718中的坏存储块的位置相重叠的位置。
因此,控制器130将第829超级存储块SUPER BLOCK829确定为新的牺牲超级存储块,生成复用超级块表700,使得在第829超级存储块SUPER BLOCK829(即,牺牲超级存储块)中包括的32个存储块中,包括在第一存储器管芯DIE1的第一平面PLANE1中的存储块,包括在第三存储器管芯DIE3的第一平面PLANE1中的存储块,以及包括在第四存储器管芯DIE4的第一平面PLANE1中的存储块可用于第820超级存储块SUPER BLOCK820(即,当前的目标超级存储块)。
也就是说,为了替换第820超级存储块SUPER BLOCK820,控制器130将复用超级块表700的第二行设置为第一复用超级存储块RE SUPER BLOCK1,并且存储用于替换目标超级存储块(即,根据图7示出的示例的第820超级存储块SUPER BLOCK820)的32个存储块的各个块地址值。
因此,在复用超级块表700的第二行中存储的第一复用超级存储块RE SUPERBLOCK1的值中,只有用于指示在32个存储块中包括在第一存储器管芯DIE1的第一平面PLANE1中的存储块、包括在第三存储器管芯DIE3的第一平面PLANE1中的存储块以及包括在第四存储器管芯DIE4的第一平面PLANE1中的存储块的块地址是第829超级存储块SUPERBLOCK829的块地址,所有剩余的29个块地址是第820超级存储块SUPER BLOCK820的块地址。
这样,由于生成了复用超级块表700,当控制器130访问第820超级存储块SUPERBLOCK820时,可参照存储在复用超级块表700的第二行中的第一复用超级存储块RE SUPERBLOCK1的值。
然后,为了复用坏的第829超级存储块SUPER BLOCK829(即,目标超级存储块),控制器130可在第829超级存储块SUPER BLOCK829中包括的32个存储块中替换包括在第零存储器管芯DIE0的第一平面PLANE1中的坏存储块、包括在第一存储器管芯DIE1的第一平面PLANE1中的存储块、包括在第三存储器管芯DIE3的第一平面PLANE1中的存储块以及包括在第四存储器管芯DIE4的第一平面PLANE1中的存储块。
即使第829超级存储块SUPER BLOCK829中包括的32个存储块中只有一个存储块是坏存储块,但能够在第829超级存储块SUPER BLOCK829中包括的32个存储块中替换四个存储块的存储块仍被搜索的原因在于:第829超级存储块SUPER BLOCK829的三个存储块被用于正常操作作为复用超级存储块的第820超级存储块SUPER BLOCK820。具体地说,如上所述,因为第718超级存储块SUPER BLOCK718中包括的32个存储块中,坏存储块包括在第一存储器管芯DIE1的第一平面PLANE1中,并且在第820超级存储块SUPER BLOCK820中包括的32个存储块中,坏存储块包括在第三存储器管芯DIE3的第一平面PLANE1和第四存储器管芯DIE4的第一平面PLANE1中,因此生成复用超级块表700,以使用在第829超级存储块SUPERBLOCK829中包括的32个存储块中的包括在第一存储器管芯DIE1的第一平面PLANE1中、第三存储器管芯DIE3的第一平面PLANE1以及第四存储器管芯DIE4的第一平面PLANE1中的存储块。
因此,为了复用坏的第829超级存储块SUPER BLOCK829,控制器可搜索以找到在超级存储块SUPER BLOCK<0:1023>中具有至少一个坏存储块的牺牲超级存储块。
在图7所示的实施例中,由于控制器130不能再找到另一牺牲超级存储块,即具有至少一个坏存储块的超级存储块,因此控制器130不能复用第829坏超级存储块SUPERBLOCK829。
同时,在上面参照图7描述的复用超级块表700中,存在用于指示包括在复用超级存储块RE SUPER BLOCK 0和RE SUPER BLOCK 1中的32个存储块中的每一个的32个存储块地址。如图7所示,对于复用超级存储块RE SUPER BLOCK 0和RE SUPER BLOCK 1,在复用超级块表700中包括用于指示64个存储块的块地址。
以这种方式,在复用超级块表700中直接包括块地址的方案的情况下,因为块地址占据很大的空间,所以用于存储复用超级块表700的空间随着复用超级存储块的数量增加而显著增加。
例如,当假定存储一个块地址所需的存储空间的大小为2字节时,在复用超级块表700中单个复用超级存储块的块地址的大小变为64字节。100个复用超级存储块的块地址大小变为6400字节,并且250个复用超级存储块的块地址大小变为16000字节。
如上参照图1所述,复用超级块表700可被存储在控制器130的存储器144中。存储器144可以是易失性存储器区域,这意味着存储器***110的有效操作可能需要最小限度地保留存储复用超级块表700的区域的大小。在本公开的实施例中,通过使用如图8所示的方案,最小限度地保留了存储复用超级块表700的区域的大小。
图8是示出根据本发明的另一实施例的在存储器***中复用其中包括一个或多个坏存储块的坏超级存储块的方法的图。
如图7所示,图8表示存储器装置150具有多个坏超级存储块的情况。也就是说,在包括在存储器装置150中的多个超级存储块SUPER BLOCK<0:1023>中,包括在第718超级存储块SUPER BLOCK718、第820超级存储块SUPER BLOCK820和第829超级存储块SUPERBLOCK829的每一个中的32个存储块中的一个或多个存储块被确定为坏存储块。
在这种状态下,控制器130可通过坏块池820以位图和索引形式来设置和管理坏超级存储块(例如,坏超级存储块SUPER BLOCK718、SUPER BLOCK820和SUPER BLOCK829)。
坏块池820可包括分别对应于坏超级存储块的多个坏超级存储块索引POOL[0:2]。例如,图8例示了分别对应于坏超级存储块SUPER BLOCK718、SUPER BLOCK820和SUPERBLOCK829的坏超级存储块索引POOL[0:2]。坏超级存储块索引POOL[0:2]可映射到表示相应的坏超级存储块的超级存储块地址XADD[0:2]以及表示包括在相应的坏超级存储块中的坏存储块的位置的坏存储块信息BITMAP[0:2]。坏存储块信息BITMAP[0:2]可以是位图的形式。
例如,第一坏超级存储块索引POOL[0]可对应于坏的第718超级存储块SUPERBLOCK718。第一坏超级存储块索引POOL[0]可包括具有坏的第718超级存储块SUPERBLOCK718的超级存储块地址的值(“718”)的超级存储块地址XADD[0]。第一坏超级存储块索引POOL[0]可进一步包括表示包括在坏的第718超级存储块SUPER BLOCK718中的坏存储块的位置的坏存储块信息BITMAP[0]。如图8所示,在位图形式的坏存储块信息BITMAP[0]中,值“0”可表示正常存储块,“1”值可表示坏存储块。由于假设32个存储块被包括在单个超级存储块中,位图形式的每一个坏存储块信息BITMAP[0:2]可表示包括在单个超级存储块中的32个存储块位置,并且因此坏存储块信息BITMAP[0:2]的值“1”可表示包括在坏超级存储块中的坏存储块的位置。
在坏块池820中,控制器130包括分别表示坏超级存储块SUPER BLOCK718、SUPERBLOCK820和SUPER BLOCK829的坏超级存储块索引POOL[0:2],这些超级存储块分别由超级存储块地址XADD[0:2]指示。控制器130将包括在各个坏超级存储块SUPER BLOCK718、SUPERBLOCK820和SUPER BLOCK829中的正常存储块和坏存储块的位置存储到位图的形式的坏存储块信息BITMAP[0:2]中,并且在坏块池820中对应于各个坏超级存储块索引POOL[0:2]包括坏存储块信息BITMAP[0:2]和超级存储块地址XADD[0:2]。
控制器130通过多个设置值表POOL_TB[0:1]生成表示复用超级存储块RE SUPERBLOCK 0和RE SUPER BLOCK 1的复用超级块表800。设置值表POOL_TB[0:1]可以位图的形式表示复用超级存储块RE SUPER BLOCK 0和RE SUPER BLOCK 1。设置值表POOL_TB[0:1]的位图中的每一位可通过坏超级存储块索引POOL[0:2]的索引值表示坏超级存储块的正常存储块。例如,在设置值表POOL_TB[0:1]中,位图值“0”到“2”分别表示坏超级存储块SUPERBLOCK718、SUPER BLOCK820和SUPER BLOCK829的正常存储块。
在图8的实施例中,生成复用超级存储块RE SUPER BLOCK 0和RE SUPER BLOCK 1的方案(即,选择用于目标超级存储块的牺牲超级存储块,并使用牺牲超级存储块的正常存储块替换目标超级存储块的坏存储块,从而生成复用超级存储块)可与参照图7描述的相同,除了图8的实施例使用坏存储块信息BITMAP[0:2]和坏超级存储块索引POOL[0:2]的索引值。
换言之,在坏块池820中,控制器130可包括对应于分别指示坏超级存储块SUPERBLOCK718、SUPER BLOCK820和SUPER BLOCK829的超级块地址信息XADD值718、820和829的以索引形式的设置值POOL[0:2]。控制器130可将包括在各个坏超级存储块SUPER BLOCK718、SUPER BLOCK820和SUPER BLOCK829中的正常存储块和坏存储块的位置改变为位图形式的位置信息BITMAP[0:2],并且对应于各个设置值POOL[0:2],在坏块池820中包括位置信息BITMAP[0:2]。在通过包括在坏块池820中的位置信息BITMAP[0:2]检查包括在各个坏超级存储块SUPER BLOCK718、SUPER BLOCK820和SUPER BLOCK829中的正常存储块的位置之后,控制器130可通过以超级存储块为单位将对应于各个被检查的位置信息BITMAP[0:2]的设置值POOL[0:2]进行分组来生成多个设置值表POOL_TB[0:1],并且可将设置值表POOL_TB[0:1]存储在复用超级块表800中,以管理作为复用超级存储块RE SUPER BLOCK[0:1]的各个设置值表POOL_TB[0:1]。
具体而言,控制器130可生成与具有在超级存储块SUPER BLOCK<0:1023>中指示被确定为坏超级存储块的各个第718超级存储块SUPER BLOCK718、第820超级存储块SUPERBLOCK820和第829超级存储块SUPER BLOCK829的值718、820和829的超级块地址信息XADD相对应的坏超级存储块索引POOL[0:2],并且在坏块池820中包括坏超级存储块索引POOL[0:2]。
例如,控制器130可生成具有指示与坏超级存储块索引POOL[0:2]中的第一坏超级存储块索引POOL[0]相对应的坏的第718块超级存储块SUPER BLOCK718的值718的超级块地址信息XADD,并且可将第一坏超级存储块索引POOL[0]存储在坏块池820中。
然后,控制器130可将包括在第718超级存储块SUPER BLOCK718中的正常存储块和坏存储块的位置存储到位图形式的坏存储块信息BITMAP[0:2]中的第一坏存储块信息BITMAP[0]中,并且对应于第一坏超级存储块索引POOL[0],将第一坏存储块信息BITMAP[0]存储在坏块池820中。
由于在第718超级存储块SUPER BLOCK718中包括的32个存储块中,包括在第一存储器管芯DIE1的第一平面PLANE1中的存储块是唯一的坏存储块,并且所有剩余的31个存储块都是正常存储块,对应于第718超级存储块SUPER BLOCK718的第一坏存储块信息BITMAP[0]在表示唯一的坏存储块的位(bit)位置处具有单个值“1”。
进一步地,控制器130生成具有与在坏超级存储块索引POOL[0:2]中的第二坏超级存储块索引POOL[1]相对应的第820超级存储块SUPER BLOCK820的值820的超级块地址信息XADD,并且将第二坏超级存储块索引POOL[1]存储在坏块池820中。
控制器130将包括在第820超级存储块SUPER BLOCK820中的正常存储块和坏存储块的位置存储到位图形式的坏存储块信息BITMAP[0:2]中的第二坏存储块信息BITMAP[1]中,并且将对应于第二坏超级存储块索引POOL[1]的第二坏存储块信息BITMAP[1]存储在坏块池820中。
由于第820超级存储块SUPER BLOCK820中包括的32个存储块中,包括在第三存储器管芯DIE3的第一平面PLANE1和第四存储器管芯DIE4的第一平面PLANE1中的存储块是坏存储块,并且所有剩余的30个存储块都是正常存储块,因此对应于第820超级存储块SUPERBLOCK820的第二坏存储块信息BITMAP[1]在表示坏存储块的位位置处具有两个值“1”。
此外,控制器130生成具有指示与坏超级存储块索引POOL[0:2]中,的第三坏超级存储块索引POOL[2]对应的第829超级存储块SUPER BLOCK820的值829的超级块地址信息XADD,并且将第三坏超级存储块索引POOL[2]存储在坏块池820中。
控制器130可将包括在第829超级存储块SUPER BLOCK829中的正常存储块和坏存储块的位置存储到位图形式的坏存储块信息BITMAP[0:2]中的第三坏存储块信息BITMAP[2]中,并且将第三坏存储块信息BITMAP[2]存储在对应于第三坏超级存储块索引POOL[2]的坏块池829中。
由于在第829超级存储块SUPER BLOCK829中包括的32个存储块中,包括在第零存储器管芯DIE0的第一平面PLANE1中的存储块是唯一的坏存储块,并且所有剩余的31个存储块都是正常存储块,因此对应于第829超级存储块SUPER BLOCK829的第三坏存储块信息BITMAP[2]的值在表示唯一的坏存储块的位位置处具有单个值“1”。
如上所述,控制器130生成分别与包括在存储器装置150中的多个超级存储块SUPER BLOCK<0:1023>中被确定为坏超级存储块的第718超级存储块SUPER BLOCK718、第820超级存储块SUPER BLOCK820和第829超级存储块SUPER BLOCK829相对应的所有坏超级存储块索引POOL[0:2],并且将坏超级存储块索引POOL[0:2]存储到坏块池820中。而且,对应于坏超级存储块索引POOL[0:2],控制器130将通过以位图的形式存储被确定为坏超级存储块的第718超级存储块SUPER BLOCK718、第820超级存储块SUPER BLOCK820和第829超级存储块SUPER BLOCK829中包括的32个存储块中的正常存储块和坏存储块的位置而获得的坏存储块信息BITMAP[0:2]存储在坏块池820中。
以这种方式,在与包括在存储器装置150中的多个超级存储块SUPER BLOCK<0:1023>中的坏超级存储块相对应的所有坏超级存储块索引POOL[0:2]和坏存储块信息BITMAP[0:2]被存储在坏块池820中之后,控制器130通过参照坏块池820生成复用超级块表800。
具体而言,为了复用坏的第718超级存储块SUPER BLOCK718,控制器130在坏块池820中存储的坏超级存储块索引POOL[0:2]中,从对应于剩余的坏超级存储块索引POOL[1:2]的坏存储块信息BITMAP[1:2]中而非从对应于第一坏超级存储块索引POOL[0]的第一坏存储块信息BITMAP[0]中选择牺牲超级存储块。
换言之,控制器130在第718超级存储块SUPER BLOCK718(即,目标超级存储块)中包括的32个存储块中选择用于替换包括在第一存储器管芯DIE1的第一平面PLANE1中的坏存储块的牺牲超级存储块。
例如,指示在对应于第一坏超级存储块索引POOL[0]的第一坏存储块信息BITMAP[0]中的坏存储块和在对应于第二坏超级存储块索引POOL[1]的第二坏存储块信息BITMAP[1]中的坏存储块的位置“1”彼此不重叠。
因此,控制器130将对应于第二坏超级存储块索引POOL[1]的第820超级存储块SUPER BLOCK820选择为牺牲超级存储块,并生成复用超级块表800,使得在第820超级存储块SUPER BLOCK820(即,牺牲超级存储块)中包括的32个存储块中,包括在第一存储器管芯DIE1的第一平面PLANE1中的存储块可用在第718超级存储块SUPER BLOCK718(即,目标超级存储块)中。
也就是说,为了替换超级存储块SUPER BLOCK718,控制器130通过以位图的形式生成第一设置值表POOL_TB[0],将复用超级块表800的第一行设置为第零复用超级存储块RESUPER BLOCK0。设置值表POOL_TB[0:1]的每一个长度可表示包括在单个超级存储块中的存储块的数量。例如,各个设置值表POOL_TB[0:1]的长度可以是32位,这表示有32个存储块包括在各个坏超级存储块SUPER BLOCK718、SUPER BLOCK820和SUPER BLOCK829中。第一设置值表POOL_TB[0]的位图中的每一位可通过坏超级存储块索引POOL[0:2]的索引值表示坏超级存储块的正常存储块。例如,在设置值表POOL_TB[0:1]中,位图值“0”到“2”可分别表示坏超级存储块SUPER BLOCK718、SUPER BLOCK820和SUPER BLOCK829的正常存储块。
参照图8的复用超级块表800,第一设置值表POOL_TB[0]具有表示第820超级存储块SUPER BLOCK820的正常存储块的值“1”,其表示在目标超级存储块(即,第718超级存储块SUPER BLOCK718)和牺牲超级存储块(即,第820超级存储块SUPER BLOCK820)之间坏存储块和正常存储块的替换关系。在第一设置值表POOL_TB[0]中,值“1”表示目标超级存储块(即,第718超级存储块SUPER BLOCK718)的坏存储块(即,包括在第一存储器管芯DIE1的第一平面PLANE1中的存储块)被由值“1”的位位置所表示的相同位置的牺牲超级存储块(即,第820超级存储块SUPER BLOCK820)的正常存储块(即,包括在第一存储器管芯DIE1的第一平面PLANE1中的存储块)替换。
如上所述,控制器130未将用于替换坏的第718超级存储块SUPER BLOCK718的32个存储块的各个块地址值存储在复用超级块表800中。相反,控制器130通过以超级存储块为单位,对表示对应于第718超级存储块SUPER BLOCK718的第一坏超级存储块索引POOL[0]的值“0”以及表示对应于第820超级存储块SUPER BLOCK820的第二坏超级存储块索引POOL[1]的值“1”进行分组来生成第一设置值表POOL_TB[0],并且将第一设置值表POOL_TB[0]存储为复用超级块表800的第一行。同时,控制器130将复用超级块表800的第一行设置为第零复用超级存储块RE SUPER BLOCK0,用于替换坏的第718超级存储块SUPER BLOCK718。
因此,在复用超级块表800的第一行中,设置了用于替换第718超级存储块SUPERBLOCK718的第零复用超级存储块RE SUPER BLOCK0,并且将第一设置值表POOL_TB[0]存储为第零复用超级存储块RE SUPER BLOCK0的值。
这样,由于生成了复用超级块表800,因此当控制器130访问第718超级存储块SUPER BLOCK718时,可参照存储在复用超级块表800的第一行中的第零复用超级存储块RESUPER BLOCK0的值,即第一设置值表POOL_TB[0],然后可找到第一坏超级存储块索引POOL[0]和第二坏超级存储块索引POOL[1]。这意味着可以找到包括在第一坏超级存储块索引POOL[0]中的指示第718超级存储块SUPER BLOCK718的超级存储块地址,以及包括在第二坏超级存储块索引POOL[1]中的指示第820超级存储块SUPER BLOCK820的超级存储块地址。
也就是说,当参照存储在复用超级块表800的第一行中的第零复用超级存储块RESUPER BLOCK0的值,即第一个设置值表POOL_TB[0]时,可通过坏块池820找到对应于包括在第718超级存储块SUPER BLOCK718中的32个存储块的各个的32个块地址。
进一步地,为了复用坏的第820超级存储块SUPER BLOCK820,控制器130在坏块池820中存储的坏超级存储块索引POOL[0:2]中,从对应于剩余的坏超级存储块索引POOL[2]的剩余坏存储块信息BITMAP[2]中选择牺牲超级存储块,而非从通过结合对应于第一坏超级存储块索引POOL[0]的第一坏存储块信息BITMAP[0]和对应于第二坏超级存储块索引POOL[1]的第二坏存储块信息BITMAP[1]而获得的第一和第二坏存储块信息BITMAP[0:1]中选择牺牲超级存储块。
换言之,控制器130选择牺牲超级存储块,用于在第820超级存储块SUPERBLOCK820(即,目标超级存储块)中包括的32个存储块中替换包括在第一存储器管芯DIE1的第一平面PLANE1中的存储块、包括在第三存储器管芯DIE3的第一平面PLANE1中的坏存储块以及包括在第四存储器管芯DIE4的第一平面PLANE1中的坏存储块。
如上所述,包括在第一存储器管芯DIE1的第一平面PLANE1中的坏的第820超级存储块SUPER BLOCK820的存储块被采用用于复用超级存储块RE SUPER BLOCK0,因此,坏的第820超级存储块SUPER BLOCK820因其被采用的存储块以及包括在其中的坏存储块而需要正常存储块。
例如,指示通过结合对应于第一坏超级存储块索引POOL[0]的第一坏存储块信息BITMAP[0]和对应于第二坏超级存储块索引POOL[1]的第二坏存储块信息BITMAP[1]以及对应于第三坏超级存储块索引POOL[2]的第三坏存储块信息BITMAP[2]而获得的坏存储块信息BITMAP[0:1]中的坏存储块的位置“1”不彼此重叠。
因此,控制器130将对应于第三坏超级存储块索引POOL[2]的第829超级存储块SUPER BLOCK829选择为牺牲超级存储块,并生成复用超级块表800,使得在第829超级存储块SUPER BLOCK829(即,牺牲超级存储块)中包括的32个存储块中,包括在第一存储器管芯DIE1的第一平面PLANE1中的存储块、包括在第三存储器管芯DIE3的第一平面PLANE1中的存储块以及包括在第四存储器管芯DIE4的第一平面PLANE1中的存储块可用于第820超级存储块SUPER BLOCK820(即,目标超级存储块)。
也就是说,为了替换超级存储块SUPER BLOCK820,控制器130通过以位图的形式生成第二设置值表POOL_TB[1],将复用超级块表800的第二行设置为第一复用超级存储块RESUPER BLOCK1。第二设置值表POOL_TB[1]的位图中的每一位可通过坏超级存储块索引POOL[0:2]的索引值表示坏超级存储块的正常存储块。
参照图8的复用超级块表800,第二设置值表POOL_TB[1]具有表示第829超级存储块SUPER BLOCK820的正常存储块的值“2”,其表示在目标超级存储块(即,第820超级存储块SUPER BLOCK820)和牺牲超级存储块(即,第829超级存储块SUPER BLOCK829)之间的坏存储块、被采用的存储块以及正常存储块的替换关系。在第二个设置值表POOL_TB[1]中,值“2”表示目标超级存储块(即,第820超级存储块SUPER BLOCK820)的被采用的存储块(即,包括在第一存储器管芯DIE1的第一平面PLANE1中的存储块)和坏存储块(即,包括在第三存储器管芯DIE3的第一平面PLANE1中和第四存储器管芯DIE4的第一平面PLANE1的存储块)被由值“2”的位位置所表示的相同位置的牺牲超级存储块(即,第829超级存储块SUPER BLOCK829)的正常存储块(即,包括在第一存储器管芯DIE1的第一平面PLANE1、第三存储器管芯DIE3的第一平面PLANE1和第四存储器管芯DIE4的第一平面PLANE1中的存储块)替换。
如上所述,在复用超级块表800中,控制器130未存储用于替换坏的第820超级存储块SUPER BLOCK820的32个存储块的各个块地址值。相反,控制器130通过以超级存储块为单位,将表示对应于第820超级存储块SUPER BLOCK820的第二坏超级存储块索引POOL[1]的值“1”以及表示对应于第829超级存储块SUPER BLOCK829的第三坏超级存储块索引POOL[2]的值“2”进行分组来生成第二设置值表POOL_TB[1],并且将第二设置值表POOL_TB[1]存储为复用超级块表800的第二行。同时,控制器130将复用超级块表800的第二行设置为用于替换坏的第820超级存储块SUPER BLOCK820的第一复用超级存储块RE SUPER BLOCK1。
因此,在复用超级块表800的第二行中,设置用于替换第820超级存储块SUPERBLOCK820的第一复用超级存储块RE SUPER BLOCK1,并且将第二设置值表POOL_TB[1]存储为第一复用超级存储块RE SUPER BLOCK1的值。
这样,由于生成了复用超级块表800,因此当控制器130访问第820超级存储块SUPER BLOCK820时,可参照存储在复用超级块表800的第二行中的第一复用超级存储块RESUPER BLOCK0的值,即第二设置值表POOL_TB[1],然后可找到第二坏超级存储块索引POOL[1]和第三坏超级存储块索引POOL[2]。这意味着可以找到包括在第二坏超级存储块索引POOL[1]中的指示第820超级存储块SUPER BLOCK820的超级存储块地址,以及包括在第三坏超级存储块索引POOL[2]中的指示第829超级存储块SUPER BLOCK829的超级存储块地址。
也就是说,当参照存储在复用超级块表800的第二行中的第一复用超级存储块RESUPER BLOCK1的值,即第二个设置值表POOL_TB[1]时,可通过坏块池820找到对应于包括在第820超级存储块SUPER BLOCK820中的32个存储块的各个的32个块地址。
此外,为了复用第829坏超级存储块SUPER BLOCK829,控制器130在坏块池820中存储的坏超级存储块索引POOL[0:2]中,从对应于剩余的坏超级存储块索引(其不存在)的剩余的坏存储块信息(其不存在)中选择牺牲超级存储块,而非从通过结合对应于第一坏超级存储块索引POOL[0]的第一坏存储块信息BITMAP[0]、对应于第二坏超级存储块索引POOL[1]的第二坏存储块信息BITMAP[1]以及对应于第三坏超级存储块索引POOL[2]的第三坏存储块信息BITMAP[2]而获得的坏存储块信息BITMAP[0:2]中选择牺牲超级存储块。然而,在图8所示的实施例中,可以看出,由于第三坏超级存储块索引POOL[2]是最后一个坏超级存储块索引,因此作为搜索目标的剩余的坏超级存储块索引是不存在的。
因此,控制器130不再使用第829坏超级存储块SUPER BLOCK829。
如上所述,在如图8所示的复用超级块表800中,以表的形式包括32个坏超级存储块索引,其用于指示包括在待被复用的每一个超级存储块中的32个存储块。各个32个坏超级存储块索引可通过参照包括超级存储块地址的坏块池820以及包括各个超级存储块的正常存储块的特定位置信息的复用超级块表800被改变为存储块地址。例如,在图8中,包括64个坏超级存储块索引以复用两个超级存储块SUPER BLOCK718和SUPER BLOCK820,并且可通过包括超级存储块地址的坏块池820和包括各个超级存储块的正常存储块的特定位置信息的复用超级块表800被分别改变为用于指示64个存储块的存储块地址。
这意味着可以预期这与如上参照图7所述将用于指示包括在待被复用的每一个超级存储块中的32个存储块的32个块地址直接存储在复用超级块表700中,并搜索32个块地址的情况具有相同的效果。
在使用复用超级块表800中包括坏超级存储块索引,并且通过如图8所示的坏块池820和复用超级块表800将所包括的坏超级存储块索引改变为存储块地址的方案的情况下,由于坏超级存储块索引的大小与存储块地址的大小相比占据了相对较小的空间,因此即使待被复用的超级存储块的数量增加,也可以比使用上述参照图7所述的复用超级块表700的情况使用更小的空间。
例如,当假设存储一个坏超级存储块索引所需的存储空间的大小是1字节,并且存储一个块地址所需的存储空间的大小是2字节时,由于存储在复用超级块表800中以复用一个超级存储块的坏超级存储块索引的大小是32字节,因此对应于存储在坏块池820中以复用一个超级存储块的一个坏超级存储块索引的一个位置信息的大小是32位(4字节),并且一个块地址的大小是2字节,总共需要38个字节。可以看出,与上述参照图7描述的方案中所需的64个字节相比,该值显著降低。
此外,由于存储在复用超级块表800中以复用100个超级存储块的坏超级存储块索引的大小是3200字节,与存储在坏块池820中以复用100个超级存储块的100个坏超级存储块索引相对应的100个坏存储块信息的大小是3200位(400字节),并且100个块地址的大小是200字节,所以总共需要3800字节。可以看出,与上述参照图7描述的方案中所需的6400个字节相比,该值显著降低。
类似地,由于存储在复用超级块表800中以复用250个超级存储块的坏超级存储块索引的大小是8000字节,与存储在坏块池820中以复用250个超级存储块的250个坏超级存储块索引相对应的250个位置信息的大小是8000位(1000字节),并且250个块地址的大小是500字节,所以总共需要9500字节。可以看出,与上述参照图7描述的方案中所需的16,000个字节相比,该值显著降低。
作为参照,超级存储块索引的大小比块地址的大小相对较小的原因在于:以索引形式存储在坏块池820中的坏超级存储块索引的数量对应于包括在存储器装置150中的多个超级存储块中被确定为坏超级存储块的超级存储块的数量,而块地址的大小对应于包括在存储器装置150中的多个超级存储块的总数量。
在以索引形式存储在坏块池820中的坏超级存储块索引POOL[0:2]中,包括具有值718、820和829的地址信息XADD和坏存储块信息BITMAP[0:2]。换言之,在坏超级存储块索引POOL[0]、POOL[1]或POOL[2]的一个中,包括具有值为718、820或829的一个地址信息XADD和坏存储块信息BITMAP[0]、BITMAP[1]或BITMAP[2]的一个。
包括在坏超级存储块索引POOL[0:2]中的具有值为718、820和829的地址信息XADD被用在生成复用超级块表800的过程中,即用在确定设置值表POOL_TB[0:1]的值的过程中,并且在复用超级块表800生成之后,即在确定了设置值表POOL_TB[0:1]的所有值之后被使用。
然而,包括在坏超级存储块索引POOL[0:2]中的坏存储块信息BITMAP[0:2]仅在生成复用超级块表800的过程中,即在确定设置值表POOL_TB[0:1]的值的过程中使用,并且在复用超级块表800生成之后,即在确定了设置值表POOL_TB[0:1]的所有值之后不再使用。
因此,在复用超级块表800生成之后,即在确定了设置值表POOL_TB[0:1]的所有值之后,控制器130可以仅将具有值718、820和829的地址信息XADD留在坏超级存储块索引POOL[0:2]中,并擦除坏存储块信息BITMAP[0:2]。
当然,可能存在一种情况,即在复用超级块表800生成之后,即在确定了设置值表POOL_TB[0:1]的所有值之后,可能会复用包括在坏超级存储块索引POOL[0:2]中的坏存储块信息BITMAP[0:2]。例如,在安装和使用存储器***110一段时间时,在存储器装置150中可能会出现新的坏存储块。也就是说,可能存在以下情况:在生成复用超级块表800的过程中,即在确定设置值表POOL_TB[0:1]的值的过程中被确定为正常存储块的存储块在存储器***110安装后被使用时,可能会改变为坏存储块,并且控制器130可检查这种情况并执行重新生成复用超级块表800的操作。
也就是说,可能存在这种情况,在存储器***110安装后进行使用时,控制器130执行在存储器装置150中是否出现坏存储块的周期性检查的操作,并且根据坏存储块的出现来执行再次生成复用超级块表800的操作。
在这种情况下,即使在生成复用超级块表800之后,也就是说,即使在确定了设置值表POOL_TB[0:1]的所有值之后,控制器130可在坏超级存储块索引POOL[0:2]中既保留具有值718、820和829的地址信息XADD,也保留坏存储块信息BITMAP[0:2]。
在这种状态下,控制器130在超级存储块SUPER BLOCK<0:1023>中检查是否存在应另外包括在坏超级存储块中的超级存储块。也就是说,控制器130在包括在存储器装置150中的多个存储块BLOCK<0:1023>中检查是否存在先前是正常存储块并刚刚转换成坏存储块的存储块。
作为检查的结果,在超级存储块SUPER BLOCK<0:1023>中存在应另外包括在坏超级存储块中的超级存储块的情况下,包括在各个坏超级存储块中的正常存储块通过坏块池820的坏存储块信息BITMAP[0:2]被再次检查,并通过以超级存储块为单位将与被再次检查的各个坏存储块信息BITMAP[0:2]相对应的坏超级存储块索引POOL[0:2]进行分组而再次生成设置值表POOL_TB[0:1]。然后,将再次生成的设置值表POOL_TB[0:1]存储在复用超级块表800中,作为复用超级存储块RE SUPER BLOCK[0:1]进行管理。
虽然在上述实施例中假设存储一个坏超级存储块索引所需的存储空间的大小为1字节,但是这是源于存储在坏块池820中的坏超级存储块索引的最大数量为256(2^8)的假设得出的。
如果需要将存储在坏块池820中的坏超级存储块索引的数量设置为大于256,虽然存在逐一比特来增加存储一个坏超级存储块索引所需的存储空间的大小的方法,但可使用在不增加存储一个坏超级存储块索引所需的存储空间的大小的情况下通过如图9所示将坏块池820分组来管理坏块池820的方法。
图9是示出根据本发明的另一实施例的在存储器***中复用具有一个或多个坏存储块的坏超级存储块的方法的图。
除了图9的坏块池920包括例如第一坏块池922和第二坏块池924的多个坏块池以外,图9所示的坏块池920和复用超级块表900与图8所示的坏块池820和复用超级块表800相同。第一坏块池922和第二坏块池924中的每一个可存储256个坏超级存储块索引。第一坏块池922和第二坏块池924中的每一个可与图8所示的坏块池820和复用超级块表800相同。存储在坏块池920中的坏超级存储块索引的总数为512。
因此,在图9中,总计512个设置值表被存储在复用超级块表900中。也就是说,在图9中,可在复用超级块表900中管理总计512个复用超级存储块。
换言之,图9示出了在坏超级存储块的数量相对较大的情况下如何管理复用超级块表900和坏块池920。
具体而言,当存储在坏块池920中的坏超级存储块索引的总数为512时,可在第一坏块池922和第二坏块池924的每一个中使用相同的坏超级存储块索引***,并且将存储空间分离以不与彼此重叠。
也就是说,对于第718至第1024坏超级存储块,可将256个坏超级存储块索引POOL[0:255]存储在第一坏块池922中,并且对于第1243至第1534坏超级存储块,可将相同的坏超级存储块索引POOL[0:255]存储在第二坏块池924中。
在该状态下,在复用超级块表900中存储的512个设置值表POOL_TB 0至511中,包括在第1至第256设置值表POOL_TB 0至255中的坏超级存储块索引通过参照第一坏块池922来替换块地址。
类似地,在复用超级块表900中存储的512个设置值表POOL_TB 0至511中,包括在第257至第512设置值表POOL_TB 256至511中的坏超级存储块索引可通过参照第二坏块池924来替换块地址。
如上所述,由于在坏块池920中存储的坏超级存储块索引基于256个坏超级存储块索引被分开存储,并且待访问的存储空间根据坏超级存储块索引在复用超级块表900中被存储的顺序而设为不同,因此可使用如上参照图8所述的将坏超级存储块索引改变为块地址,而不增加存储每一个坏超级存储块索引所需的存储空间的大小的方案。
图10至图18是示意性示出图1的数据处理***的应用示例的图。
图10是示意性示出包括根据本实施例的存储器***的数据处理***的另一示例的图。图10示意性示出应用了根据本实施例的存储器***的存储卡***。
参照图10,存储卡***6100可包括存储器控制器6120、存储器装置6130和连接器6110。
更具体地,存储器控制器6120可连接到由非易失性存储器实施的存储器装置6130,并配置为访问存储器装置6130。例如,存储器控制器6120可配置为控制存储器装置6130的读取、写入、擦除和后台操作。存储器控制器6120可配置为提供存储器装置6130和主机之间的接口以及用于控制存储器装置6130的驱动器固件。也就是说,存储器控制器6120和存储器装置6130可分别对应于先前参照图1至图9描述的存储器***110的控制器130和存储器装置150。
因此,存储器控制器6120可包括RAM、处理单元、主机接口、存储器接口和错误校正单元。
存储器控制器6120可通过连接器6110与例如图1的主机102的外部装置通信。例如,如参照图1所述,存储器控制器6120可配置为通过诸如以下的各种通信协议中的一种或多种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、***组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA,并行ATA、小型计算机***接口(SCSI)、增强型小型磁盘接口(EDSI)、电子集成驱动器(IDE)、火线、通用闪速存储(UFS)、WI-FI以及蓝牙等。因此,根据本实施例的存储器***和数据处理***可应用于有线/无线电子装置,或者特别是移动电子装置。
存储器装置6130可由非易失性存储器来实施。例如,存储器装置6130可由诸如以下的各种非易失性存储器装置来实施:可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋力矩转移磁性RAM(STT-MRAM)。存储器装置6130可包括如图5的存储器装置150中的多个管芯。
存储器控制器6120和存储器装置6130可集成到单个半导体装置中。例如,存储器控制器6120和存储器装置6130可通过集成到单个半导体装置中来构造固态驱动器(SSD)。此外,存储器控制器6120和存储器装置6130可构造存储卡,诸如PC卡(PCMCIA:个人计算机存储卡国际协会)、标准闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、SD卡(例如,SD、迷你SD、微型SD和SDHC)以及通用闪速存储器(UFS)。
图11是示意性示出包括根据本实施例的存储器***的数据处理***的另一示例的图。
参照图11,数据处理***6200可包括具有一个或多个非易失性存储器的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。如图11所示的数据处理***6200可用作如参照图1所描述的诸如存储卡(CF、SD、微型-SD等)或USB装置的存储介质。存储器控制器6220和存储器装置6230可分别对应于先前参照图1至图9描述的存储器***110的控制器130和存储器装置150。存储器控制器6220可响应于主机6210的请求来控制对于存储器装置6230的读取、写入或擦除操作,并且存储器控制器6220可包括一个或多个CPU 6221、诸如RAM 6222的缓冲存储器、ECC电路6223、主机接口6224以及诸如NVM接口6225的存储器接口。
CPU 6221可控制存储器装置6230上的整体操作,例如读取、写入、文件***管理和坏页面管理操作。可根据CPU 6221的控制来操作RAM6222,并将其用作工作存储器、缓冲存储器或高速缓冲存储器。当RAM6222被用作工作存储器时,由CPU 6221处理的数据可临时存储在RAM6222中。当RAM 6222被用作缓冲存储器时,RAM 6222可用于缓冲从主机6210传输到存储器装置6230的数据或从存储器装置6230传输到主机6210的数据。当RAM 6222被用作高速缓冲存储器时,RAM 6222可辅助低速存储器装置6230以高速运行。
ECC电路6223可对应于图1所示的控制器130的ECC单元138。如参照图1所述,ECC电路6223可生成用于校正从存储器装置6230提供的数据的失败位或错误位的ECC(错误校正码)。ECC电路6223可对被提供给存储器装置6230的数据执行错误校正编码,由此形成可存储在存储器装置6230中的具有奇偶校验位的数据。ECC电路6223可对从存储器装置6230输出的数据执行错误校正解码。此时,ECC电路6223可使用奇偶校验位来校正错误。例如,如参照图1所述,ECC电路6223可使用LDPC码、BCH码、turbo码、里德-所罗门(RS)码、卷积码、RSC或诸如TCM或BCM的编码调制来校正错误。
存储器控制器6220可通过主机接口6224向主机6210传输数据/从主机6210接收数据,并通过NVM接口6225向存储器装置6230传输数据/从存储器装置6230接收数据。主机接口6224可通过PATA总线、SATA总线、SCSI、USB、PCIe或NAND接口连接到主机6210。存储器控制器6220可具有具备诸如WiFi或长期演进(LTE)的移动通信协议的无线通信功能。存储器控制器6220可连接到外部装置,例如主机6210或另一个外部装置,然后向外部装置传输数据/从外部装置接收数据。特别地,由于存储器控制器6220配置为通过各种通信协议的一种或多种与外部装置通信,因此根据本实施例的存储器***和数据处理***可应用于有线/无线电子装置或特别是移动电子装置。
图12是示意性示出包括根据本实施例的存储器***的数据处理***的另一示例的图。图12示意性示出应用了根据本实施例的存储器***的SSD。
参照图12,SSD 6300可包括控制器6320和包括多个非易失性存储器的存储器装置6340。存储器控制器6320和存储器装置6340可分别对应于先前参照图1至图9描述的存储器***110的控制器130和存储器装置150。
更具体地,控制器6320可通过多个通道CH1至CHi连接到存储器装置6340。控制器6320可包括一个或多个处理器6321、缓冲存储器6325、ECC电路6322、主机接口6324以及诸如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可临时存储从主机6310提供的数据或从包括在存储器装置6340中的多个闪速存储器NVM提供的数据,或者临时存储多个闪速存储器NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可由诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器实现或由诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器来实现。为便于描述,图12示出了缓冲存储器6325存在于控制器6320内部。然而,缓冲存储器6325可存在于控制器6320外部。
ECC电路6322可在编程操作期间计算待被编程到存储器装置6340的数据的ECC值,在读取操作期间基于ECC值对从存储器装置6340读取的数据执行错误校正操作,并在失效数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324可提供与诸如主机6310的外部装置的接口功能,并且非易失性存储器接口6326可提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可提供应用了存储器***110的多个SSD 6300来实现数据处理***,例如,RAID(独立磁盘冗余阵列)***。此时,RAID***可包括多个SSD 6300和用于控制多个SSD6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可根据多个RAID级别(即,从SSD 6300中的主机6310提供的写入命令的RAID级别信息)选择一个或多个存储器***或SSD6300,并将对应于写入命令的数据输出到所选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取命令时,RAID控制器可根据多个RAID级别(即,从SSD 6300中的主机6310提供的读取命令的RAID级别信息)选择一个或多个存储器***或SSD6300,并将从所选择的SSD 6300读取的数据提供给主机6310。
图13是示意性示出包括根据实施例的存储器***的数据处理***的另一示例的图。图13示意性示出应用了根据实施例的存储器***的嵌入式多媒体卡(eMMC)。
参照图13,eMMC 6400可包括控制器6430和由一个或多个NAND闪速存储器实现的存储器装置6440。存储器控制器6430和存储器装置6440可分别对应于先前参照图1至图9描述的存储器***110的控制器130和存储器装置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)接口。
图14至图17是示意性示出包括根据本实施例的存储器***的数据处理***的其他示例的图。图14至图17示意性示出应用了根据本实施例的存储器***的UFS(通用闪速存储)***。
参照图14至图17,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、7600和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至图9所示的存储器***110实施。例如,在UFS***6500、6600、6700和6800中,可以参照图11至图13描述的数据处理***6200、SSD 6300或eMMC 6400的形式实施UFS装置6520、6620、6720和6820,并且可以参照图10描述的存储卡***6100的形式实施UFS卡6530、6630、6730和6830。
而且,在UFS***6500、6600、6700和6800中,主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过UFS接口彼此通信,例如,MIPI(移动工业处理器接口)中的MIPI M-PHY和MIPI UniPro(统一协议)。此外,UFS装置6520、6620、6720和6820与UFS卡6530、6630、6730和6830可通过除UFS协议以外的各种协议彼此通信,例如,UFD、MMC、SD、迷你-SD和微型-SD。
在图14所示的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。
在图15所示的UFS***6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可包括UniPro,并且主机6610可通过执行交换操作的交换模块6640与UFS装置6620或UFS卡6630进行通信,例如,通过交换模块在UniPro处执行链路层交换(例如L3交换)的交换模块6640。UFS装置6620和UFS卡6630可通过UniPro处的交换模块6640的链路层交换来彼此通信。在本实施例中,为便于描述,已经例示了其中一个UFS装置6620和一个UFS卡6630连接到交换模块6640的配置。然而,多个UFS装置和UFS卡可并联或以星型形式连接到交换模块6640,并且多个UFS卡可串联或以链型的形式连接到UFS装置6620。
在图16所示的UFS***6700中,主机6710、UFS装置6720和UFS卡6730中的每一个可包括UniPro,并且主机6710可通过执行交换操作的交换模块6740与UFS装置6720或UFS卡6730进行通信,例如,通过在UniPro执行链路层交换(例如L3交换)的交换模块6740。此时,UFS装置6720和UFS卡6730可通过UniPro处的交换模块6740的链路层交换来彼此通信,并且交换模块6740可在UFS装置6720内部或外部与UFS装置6720集成为一个模块。在本实施例中,为便于描述,已经例示了其中一个UFS装置6720和一个UFS卡6730连接到交换模块6740的配置。然而,每一个都包括交换模块6740和UFS装置6720的多个模块可并联或以星型形式连接到主机6710,或者串联或以链型的形式彼此连接。此外,多个UFS卡可并联或以星型形式连接到UFS装置6720。
在图17所示的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。
图18是示意性示出包括根据本发明的实施例的存储器***的数据处理***的另一示例的图。图18是示意性示出应用了根据实施例的存储器***的用户***的图。
参照图18,用户***6900可包括应用处理器6930、存储器模块6920、网络模块6940、存储模块6950和用户接口6910。
更具体地,应用处理器6930可驱动包括在用户***6900中的诸如OS的组件,并且包括控制器、接口和控制包括在用户***6900中的组件的图形引擎。应用处理器6930可提供为片上***(SoC)。
存储器模块6920可用作用户***6900的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块6920可包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDR SDARM、LPDDR3SDRAM或LPDDR3SDRAM的易失性RAM,或诸如PRAM、ReRAM、MRAM或FRAM的非易失性RAM。例如,应用处理器6930和存储器模块6920可基于POP(堆叠式封装)封装和安装。
网络模块6940可与外部装置通信。例如,网络模块6940不仅可支持有线通信,而且可支持各种无线通信协议,诸如码分多址(CDMA)、全球移动通信***(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(WiMAX)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI)等,由此与有线/无线电子装置或特别是移动电子装置通信。因此,根据本发明的实施例的存储器***和数据处理***可应用于有线/无线电子装置。网络模块6940可包括在应用处理器6930中。
存储模块6950可存储诸如从应用处理器6930接收的数据的数据,然后可将存储的数据传输到应用处理器6930。存储模块6950可由诸如以下的非易失性半导体存储器装置实现:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪速存储器、NOR闪速存储器和3D NAND闪速存储器,并且可被提供为诸如用户***6900的存储卡或外部驱动器的可移除存储介质。存储模块6950可对应于参照图1至图9描述的存储器***110。此外,存储模块6950可被实现为如上参照图12至图17所述的SSD、eMMC和UFS。
用户接口6910可包括用于向应用处理器6930输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和电动机的用户输出接口。
此外,当图1和图5的存储器***110应用于用户***6900的移动电子装置时,应用处理器6930可控制移动电子装置的整体操作,并且网络模块6940可用作用于控制与外部装置进行有线/无线通信的通信模块。用户接口6910可在移动电子装置的显示/触摸模块上显示由处理器6930处理的数据,或支持从触摸面板接收数据的功能。
在本技术中,当以超级存储块为单位管理包括在存储器装置中的多个存储块时,可通过坏块池以位图和索引形式来管理坏超级存储块的信息。
通过这种方式,可以最小化管理坏超级存储块的信息所需的管理区域的大小。
虽然为了说明的目的已经描述了各种实施例,但是对于本领域技术人员将显而易见的是,在不脱离如权利要求中所限定的本发明的精神和范围的情况下,可实现各种其他实施例、改变和修改。
Claims (20)
1.一种存储器***,其包括:
存储器装置,其包括多个存储块;以及
控制器,其适于通过根据预定条件对所述存储块进行分组来将所述存储块作为多个超级存储块进行管理,通过将具有一个或多个坏存储块的超级存储块设置为坏超级存储块来管理包括位图和索引的坏块池,并且通过经由所述坏块池检查包括在各个所述坏超级存储块中的正常存储块然后根据所述预定条件执行分组来管理复用超级存储块,
包括在所述坏块池中的位图中的每一个对应于所述坏超级存储块中的每一个,并且所述位图中的每一个的每个位对应于所述坏超级存储块中的所述正常存储块或者所述坏存储块。
2.根据权利要求1所述的存储器***,
其中,所述控制器包括具有在所述坏块池中与指示各个所述坏超级存储块的超级块地址信息对应的索引的设置值,并且
其中所述控制器将包括在各个所述坏超级存储块中的所述正常存储块和坏存储块的位置改变到包括位图的坏存储块管理信息中,并且包括在所述坏块池中对应于各个所述设置值的坏存储块管理信息。
3.根据权利要求2所述的存储器***,其中,在通过包括在所述坏块池中的所述坏存储块管理信息来检查包括在各个所述坏超级存储块中的所述正常存储块的位置之后,所述控制器根据所述预定条件通过将对应于各个被检查的坏存储块管理信息的设置值进行分组来生成多个设置值表,并且将各个所述设置值表作为所述复用超级存储块进行管理。
4.根据权利要求3所述的存储器***,
其中,在生成所述设置值表之后,所述控制器擦除包括在所述坏块池中的所述坏存储块管理信息。
5.根据权利要求3所述的存储器***,
其中,即使在生成所述设置值表之后,所述控制器仍保留包括在所述坏块池中的所述坏存储块管理信息,并且
其中,在所述超级存储块之中存在应另外包括在所述坏超级存储块中的超级存储块的情况下,所述控制器通过所述坏块池的坏存储块管理信息再次检查包括在各个所述坏超级存储块中的正常存储块,根据所述预定条件通过将对应于被再次检查的坏存储块管理信息的所述设置值进行再次分组而再次生成所述设置值表,并且将再次生成的所述设置值表作为所述复用超级存储块进行管理。
6.根据权利要求1所述的存储器***,其中所述存储器装置进一步包括:
多个平面,其分别对应于能够通过共享一个通道以交错方案输入/输出数据的多个通路,并且分别包括所述存储块;以及
多个存储器管芯,其分别对应于能够以交错方案输入/输出数据的多个通道,并且分别包括所述平面。
7.根据权利要求6所述的存储器***,其中,所述控制器包括:在所述预定条件下,对在所述存储器管芯中的任何一个存储器管芯的第一平面中包括的一个可选存储块和在第二平面中包括的一个可选存储块进行分组。
8.根据权利要求6所述的存储器***,其中,所述控制器包括:在所述预定条件下,对在所述存储器管芯中的第一存储器管芯的第一平面中包括的一个可选存储块和在第二存储器管芯的第一平面中包括的一个可选存储块进行分组,并且对在所述第一存储器管芯的第二平面中包括的一个可选存储块和在所述第二存储器管芯的第二平面中包括的一个可选存储块进行分组。
9.根据权利要求6所述的存储器***,其中,所述控制器包括:在所述预定条件下,对在所述存储器管芯中的第一存储器管芯的第一平面中包括的一个可选存储块、在所述第一存储器管芯的第二平面中包括的一个可选存储块、在所述存储器管芯之中的第二存储器管芯的第一平面中包括的一个可选存储块以及在所述第二存储器管芯的第二平面中包括的一个可选存储块进行分组。
10.一种用于操作包括含有多个存储块的存储器装置的存储器***的方法,其包括:
根据预定条件,通过对所述存储块进行分组来将所述存储块作为多个超级存储块进行管理;
通过将具有一个或多个坏存储块的超级存储块设置为坏超级存储块来管理包括位图和索引的坏块池;以及
通过经由所述坏块池检查包括在各个所述坏超级存储块中的正常存储块,然后根据所述预定条件执行分组来管理复用超级存储块,
包括在所述坏块池中的位图中的每一个对应于所述坏超级存储块中的每一个,并且所述位图中的每一个的每个位对应于所述坏超级存储块中的所述正常存储块或者所述坏存储块。
11.根据权利要求10所述的方法,其中所述坏块池的管理包括:
包括具有在所述坏块池中指示各个坏超级存储块的超级块地址信息的索引的设置值;以及
将包括在各个坏超级存储块中的正常存储块和坏存储块的位置改变到具有位图的坏存储块管理信息中,并且包括在所述坏块池中对应于各个所述设置值的坏存储块管理信息。
12.根据权利要求11所述的方法,其中所述复用超级存储块的管理包括:
通过包括在所述坏块池中的所述坏存储块管理信息来检查包括在各个坏超级存储块中的所述正常存储块的位置;以及
根据所述预定条件,将对应于在所述检查中检查的各个坏存储块管理信息的设置值进行分组来生成多个设置值表,并且将各个所述设置值表作为复用超级存储块进行管理。
13.根据权利要求12所述的方法,其进一步包括:
在所述复用超级存储块的管理中生成所述设置值表之后,擦除包括在所述坏块池中的所述坏存储块管理信息。
14.根据权利要求12所述的方法,其进一步包括:
在所述复用超级存储块的管理中生成所述设置值表之后,保留包括在所述坏块池中的所述坏存储块管理信息,并且
其中,所述复用超级存储块的管理包括:
在所述保留之后,在所述超级存储块之中存在应另外包括在所述坏超级存储块中的超级存储块的情况下,通过所述坏块池的所述坏存储块管理信息来再次检查包括在各个所述坏超级存储块中的正常存储块;以及
根据所述预定条件,通过再次将对应于在所述再次检查中被再次检查的所述坏存储块管理信息的设置值进行分组来再次生成所述设置值表,并且将再次生成的所述设置值表作为复用超级存储块进行管理。
15.根据权利要求10所述的方法,其中,分别对应于能够通过共享一个通道以交错方案输入/输出数据的多个通路并且分别包括存储块的多个平面,以及分别对应于能够以交错方案输入/输出数据的多个通道并且分别包括所述平面的多个存储器管芯被另外包括在所述存储器装置中。
16.根据权利要求15所述的方法,其中,所述预定条件包括:对所述存储器管芯中的任何一个存储器管芯的第一平面中包括的一个可选存储块和在第二平面中包括的一个可选存储块进行分组。
17.根据权利要求15所述的方法,其中,所述预定条件包括:对在所述存储器管芯中的第一存储器管芯的第一平面中包括的一个可选存储块和在第二存储器管芯的第一平面中包括的一个可选存储块进行分组,并且对在所述第一存储器管芯的第二平面中包括的一个可选存储块和在所述第二存储器管芯的第二平面中包括的一个可选存储块进行分组。
18.根据权利要求15所述的方法,其中,所述预定条件包括:对在所述存储器管芯中的第一存储器管芯的第一平面中包括的一个可选存储块、在所述第一存储器管芯的第二平面中包括的一个可选存储块、在所述存储器管芯之中的第二存储器管芯的第一平面中包括的一个可选存储块以及在所述第二存储器管芯的第二平面中包括的一个可选存储块进行分组。
19.一种存储器***, 包括:
存储器装置,其包括多个超级存储块;以及
控制器,其适于生成坏块池和复用超级块表,并且基于所述坏块池和所述复用超级块表生成一个或多个复用超级存储块,
其中,所述坏块池包括分别与所述超级存储块之中的一个或多个坏超级存储块相对应的一个或多个坏超级存储块索引、一个或多个超级存储块地址以及一个或多个坏存储块信息,
其中,每一个坏存储块信息包括位图,位图的每一位表示包括在对应的坏超级存储块中的正常存储块和坏存储块中的一个,
其中,所述复用超级块表包括复用超级存储块的信息,
其中,每一个所述复用超级存储块的信息包括位图,位图的每一位具有所述坏超级存储块索引的一个值,并且表示由所述坏超级存储块索引的所述值所表示的所述坏超级存储块中的一个的正常存储块,
其中,所述控制器通过用牺牲超级存储块的正常存储块替换目标超级存储块的坏存储块来生成所述复用超级存储块,并且
其中,所述目标超级存储块和所述牺牲超级存储块包括在所述坏超级存储块中。
20.根据权利要求19所述的存储器***,其中在生成所述复用超级存储块之后,所述控制器擦除包括在所述坏块池中的所述坏存储块信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160113738A KR20180026876A (ko) | 2016-09-05 | 2016-09-05 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR10-2016-0113738 | 2016-09-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107797882A CN107797882A (zh) | 2018-03-13 |
CN107797882B true CN107797882B (zh) | 2021-01-01 |
Family
ID=61281236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710598819.6A Active CN107797882B (zh) | 2016-09-05 | 2017-07-21 | 存储器***及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10366761B2 (zh) |
KR (1) | KR20180026876A (zh) |
CN (1) | CN107797882B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102420025B1 (ko) * | 2017-06-19 | 2022-07-13 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10649661B2 (en) * | 2017-06-26 | 2020-05-12 | Western Digital Technologies, Inc. | Dynamically resizing logical storage blocks |
KR20190040607A (ko) * | 2017-10-11 | 2019-04-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102559528B1 (ko) * | 2018-03-20 | 2023-07-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102524432B1 (ko) * | 2018-04-09 | 2023-04-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102530369B1 (ko) * | 2018-04-23 | 2023-05-10 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR102583726B1 (ko) * | 2018-06-27 | 2023-10-05 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US20210333999A1 (en) * | 2018-08-30 | 2021-10-28 | SK Hynix Inc. | Data storage device, operation method thereof and storage system having the same |
KR102537373B1 (ko) * | 2018-09-10 | 2023-05-30 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 데이터 전달 방법 및 장치 |
KR20200042791A (ko) * | 2018-10-16 | 2020-04-24 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20200072139A (ko) | 2018-12-12 | 2020-06-22 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR102669517B1 (ko) * | 2018-12-14 | 2024-05-29 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR102691784B1 (ko) * | 2018-12-26 | 2024-08-06 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR20200115831A (ko) | 2019-03-27 | 2020-10-08 | 에스케이하이닉스 주식회사 | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 |
CN110109627A (zh) * | 2019-05-21 | 2019-08-09 | 深圳市时创意电子有限公司 | 一种有效提升Nand闪存设备生产足容率的方法 |
KR20200134784A (ko) | 2019-05-23 | 2020-12-02 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR20210013445A (ko) | 2019-07-25 | 2021-02-04 | 에스케이하이닉스 주식회사 | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 |
KR20210099943A (ko) | 2020-02-05 | 2021-08-13 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US11640259B2 (en) * | 2020-05-21 | 2023-05-02 | Western Digital Technologies, Inc. | Use of surplus erase block pairs in super block formation |
KR20220001222A (ko) * | 2020-06-29 | 2022-01-05 | 에스케이하이닉스 주식회사 | 베드 블록을 처리하는 메모리 시스템 및 동작 방법 |
KR102569823B1 (ko) * | 2021-02-24 | 2023-08-24 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
KR20220130389A (ko) * | 2021-03-18 | 2022-09-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929795A (zh) * | 2012-10-31 | 2013-02-13 | 飞天诚信科技股份有限公司 | 一种NandFlash坏块管理方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100845137B1 (ko) * | 2006-10-02 | 2008-07-09 | 삼성전자주식회사 | 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러 |
KR100849221B1 (ko) * | 2006-10-19 | 2008-07-31 | 삼성전자주식회사 | 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치 |
KR101399549B1 (ko) * | 2007-09-04 | 2014-05-28 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 블록 관리 방법 |
US8706950B2 (en) * | 2008-03-01 | 2014-04-22 | Kabushiki Kaisha Toshiba | Memory system |
US8095765B2 (en) * | 2009-03-04 | 2012-01-10 | Micron Technology, Inc. | Memory block management |
US8560770B2 (en) * | 2009-11-13 | 2013-10-15 | Seagate Technology Llc | Non-volatile write cache for a data storage system |
US20150378884A1 (en) * | 2013-04-08 | 2015-12-31 | Avalanche Technology, Inc. | Storage system controlling addressing of solid storage disks (ssd) |
CN104750565B (zh) * | 2013-12-31 | 2019-08-30 | 锐迪科(重庆)微电子科技有限公司 | Nand坏块处理方法及nand闪存设备 |
KR20150107197A (ko) | 2014-03-13 | 2015-09-23 | 한국전자통신연구원 | 배드 블록을 이용한 스토리지 장치 및 방법 |
-
2016
- 2016-09-05 KR KR1020160113738A patent/KR20180026876A/ko active IP Right Grant
-
2017
- 2017-05-23 US US15/602,293 patent/US10366761B2/en active Active
- 2017-07-21 CN CN201710598819.6A patent/CN107797882B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929795A (zh) * | 2012-10-31 | 2013-02-13 | 飞天诚信科技股份有限公司 | 一种NandFlash坏块管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180068731A1 (en) | 2018-03-08 |
US10366761B2 (en) | 2019-07-30 |
CN107797882A (zh) | 2018-03-13 |
KR20180026876A (ko) | 2018-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107797882B (zh) | 存储器***及其操作方法 | |
CN108304141B (zh) | 存储器***及其操作方法 | |
CN108121669B (zh) | 存储器***及其操作方法 | |
CN109144408B (zh) | 存储器***及其操作方法 | |
CN107562649B (zh) | 存储器***及其操作方法 | |
US10073622B2 (en) | Memory system and operation method thereof | |
CN108733595B (zh) | 存储器***、包括其的数据处理***及其操作方法 | |
CN109947358B (zh) | 存储器***及其操作方法 | |
CN108121665B (zh) | 存储器***及其操作方法 | |
CN107491396B (zh) | 存储器***及其操作方法 | |
CN108694138B (zh) | 控制器及其操作方法 | |
CN110347330B (zh) | 存储器***及其操作方法 | |
CN107346214B (zh) | 存储器***及其操作方法 | |
CN108268212B (zh) | 控制器及操作方法 | |
CN108108308B (zh) | 存储器***及其操作方法 | |
CN110308867B (zh) | 存储器***及其操作方法 | |
CN108932203B (zh) | 数据处理***和数据处理方法 | |
CN110362270B (zh) | 存储器***及其操作方法 | |
CN110570894B (zh) | 存储器***及该存储器***的操作方法 | |
CN109032501B (zh) | 存储器***及其操作方法 | |
CN108389602B (zh) | 存储器***及其操作方法 | |
CN107562653B (zh) | 存储器***及其操作方法 | |
CN108694970B (zh) | 控制器及其操作方法 | |
CN110647290B (zh) | 存储器***及其操作方法 | |
CN107807887B (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 |