CN113377687A - 存储器控制器及其操作方法 - Google Patents

存储器控制器及其操作方法 Download PDF

Info

Publication number
CN113377687A
CN113377687A CN202010931246.6A CN202010931246A CN113377687A CN 113377687 A CN113377687 A CN 113377687A CN 202010931246 A CN202010931246 A CN 202010931246A CN 113377687 A CN113377687 A CN 113377687A
Authority
CN
China
Prior art keywords
memory
memory device
block
blocks
bad block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN202010931246.6A
Other languages
English (en)
Inventor
金基荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN113377687A publication Critical patent/CN113377687A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • G11C16/3472Circuits or methods to verify correct erasure of nonvolatile memory cells whilst erasing is in progress, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate erasure
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本申请涉及一种电子装置。存储器控制器控制存储器装置,使得该存储器装置的寿命增加。控制存储器装置的存储器控制器包括:闪存转换层,被配置成基于从存储器装置接收的装置信息来生成装置健康描述符;以及坏块控制器,被配置成基于从存储器装置接收的坏块信息来生成坏块表,并且基于装置健康描述符来生成回收信息,该回收信息用于回收坏块表中记录的坏块中的页面。

Description

存储器控制器及其操作方法
相关申请的交叉引用
本申请要求于2020年3月9日提交的申请号为10-2020-0029236的韩国专利申请的优先权,其全部内容通过引用并入本文。
技术领域
本公开涉及一种电子装置,且更特别地,涉及一种存储器控制器及其操作方法。
背景技术
存储装置在诸如计算机、智能电话或智能平板的主机装置的控制下存储数据。存储装置可以是在诸如硬盘驱动器(HDD)的磁盘中存储数据的类型,或者是在诸如固态驱动器(SSD)或存储卡的、特别是非易失性存储器的半导体存储器中存储数据的类型。
存储装置可包括存储数据的存储器装置,以及将数据存储在存储器装置中的存储器控制器。存储器装置可以是易失性存储器或非易失性存储器。非易失性存储器的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)和铁电RAM(FRAM)。
发明内容
本公开的实施例提供了一种存储器控制器及其操作方法,该存储器控制器控制存储器装置以根据装置描述符中包括的信息来回收坏块,以便增加存储器装置的寿命。
根据本公开的实施例的存储器控制器控制存储器装置。该存储器控制器可包括:闪存转换层,被配置成基于从存储器装置接收的装置信息来生成装置健康描述符;以及坏块控制器,被配置成基于从存储器装置接收的坏块信息来生成坏块表,并且基于装置健康描述符来生成用于回收坏块表中记录的坏块中的页面的回收信息。
根据本公开的实施例的操作存储器控制器的方法是操作控制存储器装置的存储器控制器的方法。该方法可包括:从存储器装置接收装置信息;基于装置信息生成装置健康描述符;以及基于装置健康描述符确定是否回收存储器装置中的坏块中的页面。
根据本公开的实施例的操作存储器控制器的方法是操作存储器控制器的方法。该方法可包括:从存储器装置接收第一和第二信息项;根据第一信息项控制存储器装置以对基于第二信息项选择的坏块内的有效页面执行操作,其中第一信息项指示关于存储器装置的剩余寿命的等级,并且其中第二信息项指示存储器装置内的每个坏块中的一个或多个有效页面。
根据本发明的实施例,可通过回收坏块来延长存储器装置的寿命。
附图说明
图1是示出存储装置的框图。
图2是示出诸如图1的存储器装置的结构的示图。
图3是示出诸如图2的存储器单元阵列的实施例的示图。
图4是示出诸如图1的存储器控制器的配置的示图。
图5是用于描述从诸如图1的闪存转换层输出的装置健康描述符的示图。
图6是示出诸如图2的存储器单元阵列的实施例的示图。
图7是示出在编程操作期间生成的坏块以及保留块的示图。
图8是示出在垃圾收集操作期间生成的坏块以及保留块的示图。
图9是示出在擦除操作期间生成的坏块的示图。
图10A至图10C是用于描述基于保留块的数量来确定的存储器装置的寿命的示图。
图11是示出坏块表的示图。
图12是示出生成坏块的实施例的示图。
图13是用于描述当回收第一平面中包括的坏块时从回收目标中排除的页面的示图。
图14是用于描述当回收第二平面中包括的坏块时从回收目标中排除的页面的示图。
图15是用于描述当回收第三平面中包括的坏块时从回收目标中排除的页面的示图。
图16是用于描述当回收第四平面中包括的坏块时从回收目标中排除的页面的示图。
图17是用于描述当回收第一至第四平面中的坏块时经回收的页面的示图。
图18是用于描述当擦除操作失败时从回收目标中排除的存储块的示图。
图19是用于描述根据本公开的实施例的存储器控制器的操作的示图。
图20是用于描述根据本公开的实施例的存储器控制器的操作的示图。
图21是用于描述根据本公开的实施例的存储器控制器的操作的示图。
图22是示出诸如图1的存储器控制器的另一实施例的示图。
图23是示出根据本公开的实施例的应用了存储装置的存储卡系统的框图。
图24是示出根据本公开的实施例的应用了存储装置的固态驱动器(SSD)系统的框图。
图25是示出根据本公开的实施例的应用了存储装置的用户系统的框图。
具体实施方式
本文提供的具体结构和功能描述针对本发明的实施例。然而,本发明的各特征和个方面可以以各种其它方式来配置和/或实施。因此,本发明不限于或不受限于任何所公开的实施例,也不限于或不受限于本文所描述的任何特定细节。而且,在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种措词的不同参考不一定针对相同的实施例。
图1是示出存储装置的框图。
参照图1,存储装置50可包括存储器装置100和存储器控制器200。
存储装置50可在诸如以下的主机300的控制下存储数据:蜂窝电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC或车载信息娱乐系统。
根据作为与主机300的通信方法的主机接口,存储装置50可被配置成各种类型的存储装置中的任意一种。例如,存储装置50可以是以下中任意一种:固态驱动器(SSD),MMC、eMMC、RS-MMC和微型-MMC形式的多媒体卡,SD、迷你-SD和微型-SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪速存储(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡以及记忆棒。
存储装置50可被制造成各种类型的封装中的任意一种。例如,存储装置50可被制造成以下中的任意一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
存储器装置100可存储数据。存储器装置100响应于存储器控制器200的控制来操作。存储器装置100可包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。存储器单元阵列可包括多个存储块。存储块中的每一个可包括多个存储器单元,并且多个存储器单元可配置多个页面。在实施例中,页面可以是用于将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单位。存储块可以是用于擦除数据的单位。
在实施例中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(DDRSDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻式随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移扭矩随机存取存储器(STT-RAM)等。在本说明书中,作为示例,在存储器装置100是NAND闪速存储器的背景下描述本发明的特征和各方面。
存储器装置100可被实施为二维阵列结构或三维阵列结构。在下文中,将作为实施例来描述三维阵列结构,但是本发明不限于该三维阵列结构。本公开不仅可应用于其中电荷存储层由导电浮栅(FG)配置的闪速存储器装置,而且还可应用于其中电荷存储层由绝缘膜配置的电荷撷取闪存(CTF)。
在实施例中,存储器装置100可以其中一个存储器单元中存储一个数据位的单层单元(SLC)方式来操作。可选地,存储器装置100可以其中在一个存储器单元中存储至少两个数据位的方式来操作。例如,存储器装置100可以其中在一个存储器单元中存储两个数据位的多层单元(MLC)方式、在一个存储器单元中存储三个数据位的三层单元(TLC)方式或在一个存储器单元中存储四个数据位的四层单元(QLC)方式来操作。
存储器装置100被配置成从存储器控制器200接收命令和地址,并且访问存储器单元阵列中的由地该址选择的区域。也就是说,存储器装置100可对由地址选择的区域执行对应于命令的操作。例如,存储器装置100可根据所接收的命令执行写入操作(编程操作)、读取操作或擦除操作。例如,当接收到编程命令时,存储器装置100可将数据编程到由地址选择的区域中。当接收到读取命令时,存储器装置100可从通过地址选择的区域读取数据。当接收到擦除命令时,存储器装置100可擦除由地址选择的区域中存储的数据。
存储器控制器200可控制存储装置50的全部操作。
当向存储装置50施加电源电压时,存储器控制器200可运行固件。当存储器装置100为闪速存储器装置100时,存储器控制器200可操作诸如闪存转换层(FTL)的固件,用以控制主机300和存储器装置100之间的通信。
在实施例中,存储器控制器200可包括固件(未示出),该固件可从主机300接收数据和逻辑块地址(LBA),并且将LBA转换成物理块地址(PBA),该物理块地址(PBA)指示存储器装置100中待存储数据的存储器单元的地址。另外,存储器控制器200可将配置LBA与PBA之间的映射关系的逻辑-物理地址映射表存储在缓冲存储器中。
存储器控制器200可控制存储器装置100以根据主机300的请求来执行编程操作、读取操作、擦除操作等。例如,当从主机300接收到编程请求时,存储器控制器200可将编程请求转换成编程命令,并且可向存储器装置100提供该编程命令、PBA和数据。当从主机300接收到读取请求与LBA时,存储器控制器200可将读取请求改变为读取命令,选择对应于LBA的PBA,然后将读取命令和PBA提供到存储器装置100。当从主机300接收到擦除请求与LBA时,存储器控制器200可将擦除请求改变为擦除命令,选择对应于LBA的PBA,然后将擦除命令和PBA提供到存储器装置100。
在实施例中,存储器控制器200可在没有来自主机300的请求的情况下生成相应的编程命令、地址和数据并将它们传输到存储器装置100。例如,存储器控制器200可将命令、地址及数据自主地提供到存储器装置100以便执行诸如损耗均衡和垃圾收集操作的各种后台操作中的任意一种。
存储器控制器200可包括闪存转换层210。闪存转换层210可从存储器装置100接收装置信息。装置信息可包括关于已经对存储器装置100执行编程操作和擦除操作中的每种操作的次数、存储器装置100中的保留块的数量以及已经对存储器装置100执行的刷新操作的次数的信息。装置信息不限于上述信息;该装置信息可包括其它各种信息。当存储器装置100的状态改变或者当执行后台操作时,装置信息可被输出到存储器控制器200。在另一实施例中,可响应于存储器控制器200的请求而从存储器装置100输出装置信息。
在实施例中,在从存储器装置100接收到装置信息之后,闪存转换层210可基于该装置信息来生成装置健康描述符(DEVICE HEALTH DESCRIPTOR(DHD))。该DHD可包括多个字段。
例如,DHD可配置有由指示DHD的大小的字段、指示基于保留块的数量而确定的存储器装置的寿命的字段、指示根据编程/擦除周期而确定的存储器装置的寿命的字段、以及指示已经执行刷新操作的次数的字段。DHD不限于上述字段;DHD中可包括其它信息/字段。
闪存转换层210可基于装置信息来生成DHD,然后将所生成的DHD提供到坏块控制器220。
存储器控制器200可包括坏块控制器220。坏块控制器220可基于从闪存转换层210接收的DHD来确定是否回收存储器装置100中的坏块。
具体地,根据DHD中的字段之中的基于剩余保留块的数量所生成的字段值,可确定是否回收存储器装置100中的坏块。
例如,当基于DHD的特定字段所确定的存储器装置的寿命属正常等级或警告等级时,坏块控制器220可确定不回收坏块。可基于存储器装置100中的剩余保留块的数量来确定正常等级和警告等级中的每一个。
然而,当基于DHD的特定字段所确定的存储器装置的寿命属临界等级时,坏块控制器220可确定回收坏块。该临界等级可基于存储器装置100中的剩余保留块的数量来确定。
当坏块控制器220确定回收坏块时,坏块控制器220可基于从存储器装置100接收的坏块信息来确定或识别坏块中的页面之中的经回收页面。此后,可对(多个)经回收页面执行写入操作或数据移动。
在实施例中,存储装置50可进一步包括缓冲存储器(未示出)。存储器控制器200可控制主机300和缓冲存储器(未示出)之间的数据交换。可选地,存储器控制器200可将用于控制存储器装置100的系统数据临时存储在缓冲存储器中。例如,存储器控制器200可将从主机300输入的数据临时存储在缓冲存储器中,然后将临时存储在缓冲存储器中的数据传输到存储器装置100。
在各个实施例中,缓冲存储器可用作存储器控制器200的操作存储器和/或高速缓存存储器。缓冲存储器可存储由存储器控制器200执行的代码或命令。可选地,缓冲存储器可存储由存储器控制器200处理的数据。
在实施例中,缓冲存储器可被实施为动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM),该动态随机存取存储器(DRAM)诸如双倍数据速率同步动态随机存取存储器(DDR SDRAM)、DDR4 SDRAM、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)或Rambus动态随机存取存储器(RDRAM)。
在多个实施例中,缓冲存储器可处于存储装置50的外部。在这种情况下,连接到存储装置50的一个或多个易失性存储器装置可用作缓冲存储器。
在实施例中,存储器控制器200可控制两个或更多个存储器装置。在这种情况下,存储器控制器200可根据交错方案来控制存储器装置,以便提高操作性能。
主机300可使用诸如以下的各种通信方法中的至少一种来与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及/或者低负载DIMM(LRDIMM)。
图2是示出图1的存储器装置的结构的示图。
参照图2,存储器装置100可包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL连接到行解码器121。多个存储块BLK1至BLKz可通过位线BL1至BLn连接到页面缓冲器组123。多个存储块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元为非易失性存储器单元。连接到相同字线的存储器单元可被定义为一个页面。因此,一个存储块可包括多个页面。
行线RL可包括至少一个源极选择线、多个字线和至少一个漏极选择线。
存储器单元阵列110中包括的存储器单元中的每一个可被配制成存储一个数据位的单层单元(SLC)、存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或存储四个数据位的四层单元(QLC)。
外围电路120可被配置成在控制逻辑130的控制下对存储器单元阵列110中所选择的区域执行编程操作、读取操作或擦除操作。外围电路120可驱动存储器单元阵列110。例如,外围电路120可在控制逻辑130的控制下将多种操作电压施加到行线RL和位线BL1至BLn或者放电所施加的电压。
外围电路120可包括行解码器121、电压生成器122、页面缓冲器组123、列解码器124、输入/输出电路125和感测电路126。
行解码器121通过行线RL连接到存储器单元阵列110。行线RL可包括至少一个源极选择线、多个字线和至少一个漏极选择线。在实施例中,字线可包括正常字线和虚设字线。在实施例中,行线RL可进一步包括管道选择线。
行解码器121被配置成解码从控制逻辑130接收的行地址RADD。行解码器121根据经解码地址来在存储块BLK1至BLKz之中选择至少一个存储块。另外,行解码器121可根据经解码地址,选择所选择的存储块的至少一个字线,将由电压生成器122生成的电压施加到该至少一个字线WL。
例如,在编程操作期间,行解码器121可将编程电压施加到所选择的字线并将电平低于编程电压的电平的编程通过电压施加到未选择的字线。在编程验证操作期间,行解码器121可将验证电压施加到所选择的字线并将高于验证电压的验证通过电压施加到未选择的字线。在读取操作期间,行解码器121可将读取电压施加到所选择的字线并将高于读取电压的读取通过电压施加到未选择的字线。
在实施例中,以存储块单位来执行存储器装置100的擦除操作。在擦除操作期间,行解码器121可根据经解码地址来选择一个存储块。在擦除操作期间,行解码器121可将接地电压施加到与所选择的存储块连接的字线。
电压生成器122响应于控制逻辑130的控制而进行操作。电压生成器122被配置成使用供应到存储器装置100的外部电源电压来生成多个电压。具体地,电压生成器122可响应于操作信号OPSIG而生成用于编程操作、读取操作和擦除操作的各种操作电压Vop。例如,响应于控制逻辑130的控制,电压生成器122可生成编程电压、验证电压、通过电压、读取电压、擦除电压等。
在实施例中,电压生成器122可通过调节外部电源电压来生成内部电源电压。通过电压生成器122生成的内部电源电压被用作存储器装置100的操作电压。
在实施例中,电压生成器122使用外部电源电压或内部电源电压来生成多个电压。
例如,电压生成器122可包括接收内部电源电压的多个泵浦电容器,并且可响应于控制逻辑130的控制,选择性地激活多个泵浦电容器以生成多个电压。
所生成的多个电压可通过行解码器121供应到存储器单元阵列110。
页面缓冲器组123包括分别通过第一至第n位线BL1至BLn连接到存储器单元阵列110的第一至第n页面缓冲器PB1至PBn。第一至第n页面缓冲器PB1至PBn响应于控制逻辑130的控制而操作。具体地,第一至第n页面缓冲器PB1至PBn可响应于页面缓冲器控制信号PBSIGNALS而操作。例如,在读取操作或验证操作期间,第一至第n页面缓冲器PB1至PBn可临时存储通过第一至第n位线BL1至BLn接收的数据,或者可感测位线BL1至BLn的电压或电流。
具体地,在编程操作期间,当编程电压被施加到所选择的字线时,第一至第n页面缓冲器PB1至PBn可通过第一至第n位线BL1至BLn来将通过输入/输出电路125接收的数据DATA传送到所选择的存储器单元。所选择的页面中的存储器单元根据所传输的数据DATA进行编程。在编程验证操作期间,第一至第n页面缓冲器PB1至PBn可通过感测通过第一至第n位线BL1至BLn从所选择的存储器单元接收的电压或电流来读取页面数据。
在读取操作期间,第一至第n页面缓冲器PB1至PBn通过第一至第n位线BL1至BLn从所选择的页面的存储器单元读取数据DATA,并且在列解码器124的控制下将所读取的数据DATA输出到输入/输出电路125。
在擦除操作期间,第一至第n页面缓冲器PB1至PBn可使第一至第n位线BL1至BLn浮置(float)或者施加擦除电压。
列解码器124可响应于列地址CADD而在输入/输出电路125和页面缓冲器组123之间传送数据。例如,列解码器124可通过数据线DL与第一至第n页面缓冲器PB1至PBn交换数据,或者可通过列线CL与输入/输出电路125交换数据。
输入/输出电路125可将从图1的存储器控制器200接收的命令CMD和地址ADDR传送到控制逻辑130,或者可与列解码器124交换数据DATA。
在读取操作或验证操作期间,感测电路126可响应于许可位信号VRYBIT来生成参考电流,并且将从页面缓冲器组123接收到的感测电压VPB与由参考电流生成的参考电压进行比较,以输出通过信号PASS或失败信号FAIL。
控制逻辑130可响应于命令CMD和地址ADDR来输出操作信号OPSIG、行地址RADD、页面缓冲器控制信号PBSIGNALS和许可位信号VRYBIT,以控制外围电路120。例如,控制逻辑130可响应于子块读取命令和地址来控制对所选择的存储块的读取操作。另外,控制逻辑130可响应于子块擦除命令和地址来控制对所选择的存储块中包括的所选择的子块的擦除操作。另外,控制逻辑130可响应于通过信号PASS或失败信号FAIL来确定验证操作已经通过还是已经失败。
存储器单元阵列110中包括的存储器单元可根据每个存储器单元中存储的数据而被编程为多个编程状态中的任意一个。根据待存储的数据,可将存储器单元的目标编程状态确定为多个编程状态中的任意一个。
图3是示出图2的存储器单元阵列的实施例的示图。
图3是示出图2的存储器单元阵列110中的多个存储块BLK1至BLKz之中的代表性存储块BLKa的电路图。
彼此平行布置的第一选择线、字线和第二选择线可连接到存储块BLKa。例如,字线可彼此平行地布置在第一选择线和第二选择线之间。此处,第一选择线可以是源极选择线SSL,并且第二选择线可以是漏极选择线DSL。
更具体地,存储块BLKa可包括连接在位线BL1至BLn与源极线SL之间的多个串。位线BL1至BLn可分别连接到串,并且源极线SL可共同连接到串。因为串中的每一个可被配置成相同,所以将作为示例具体描述连接到第一位线BL1的串ST。
串ST可包括串联连接在源极线SL和第一位线BL1之间的源极选择晶体管SST、多个存储器单元F1至F16以及漏极选择晶体管DST。一个串ST可包括一个或多个源极选择晶体管SST和漏极选择晶体管DST,并且可包括比附图中所示的16个存储器单元F1至F16更多的存储器单元。
源极选择晶体管SST的源极可连接到源极线SL,漏极选择晶体管DST的漏极可连接到第一位线BL1。存储器单元F1至F16可串联连接在源极选择晶体管SST和漏极选择晶体管DST之间。不同串中包括的源极选择晶体管SST的栅极可连接到源极选择线SSL,漏极选择晶体管DST的栅极可连接到漏极选择线DSL,并且存储器单元F1至F16的栅极可连接到多个字线WL1至WL16。不同串中包括的存储器单元之中的连接到相同字线的一组存储器单元可被称为“物理页面,PPG”。因此,存储块BLKa可包括与字线WL1至WL16相同数量的物理页面PPG。
一个存储器单元可存储一位数据。这种单元通常被称为单层单元(SLC)。在这种情况下,一个物理页面PPG可存储一个逻辑页面(LPG)的数据。一个逻辑页面(LPG)的数据可包括与一个物理页面PPG中的存储器单元的数量相同数量的数据位。另外,一个存储器单元可存储两位或更多位的数据。这种单元通常被称为多层单元(MLC)。在这种情况下,一个物理页面PPG可存储两个或更多个逻辑页面(LPG)的数据。
在一个存储器单元中存储两位或更多位数据的存储器单元被称为多层单元(MLC),但是最近,随着在一个存储器单元中存储的数据位的数量增加,在更具体的意义上,多层单元(MLC)是指存储两位数据的存储器单元。在这种情况下,存储三位数据的存储器单元被称为三层单元(TLC),并且存储四位数据的存储器单元被称为四层单元(QLC)。另外,已经开发了存储多于四位数据的存储器单元方法。因此,更一般地,本发明可应用于存储两位或更多位数据的存储器装置100。
在另一实施例中,存储块可具有三维结构。每个存储块包括堆叠在衬底上的多个存储器单元。这种多个存储器单元沿+X方向、+Y方向和+Z方向布置。
图4是示出图1的存储器控制器的配置的示图。
参照图4,存储器控制器200可包括闪存转换层210和坏块控制器220。
在实施例中,闪存转换层210可从存储器装置100接收装置信息DEVICE_INF。该装置信息DEVICE_INF可包括关于已经对存储器装置100执行编程操作和擦除操作中的每一个的次数、存储器装置100中包括的保留块的数量以及已经对存储器装置100执行的刷新操作的次数的信息。该装置信息DEVICE_INF还可包括其它信息。
在实施例中,该装置信息DEVICE_INF可以以设定的间隔生成,例如周期性地生成,或者可响应于来自存储器控制器200的请求而从存储器装置100输出。可选地,当存储器装置100的状态从忙碌状态改变为就绪状态时,或者当存储器装置100的状态从非空闲状态改变为空闲状态时,可生成装置信息DEVICE_INF。
在另一实施例中,装置信息DEVICE_INF可在存储器装置100的后台操作期间生成。
在实施例中,闪存转换层210可基于装置信息DEVICE_INF来生成装置健康描述符DHD。该DHD可由多个字段来配置。每个字段可包括各种信息。
例如,该DHD可包括包含与存储器装置100的寿命相关的内容的字段以及包含与已经执行刷新操作的次数相关的内容的字段。每个字段的信息内容最初可由默认值表示,每个字段的信息内容可根据从存储器装置100接收的装置信息DEVICE_INF而改变。
在实施例中,每当闪存转换层210从存储器装置100接收到装置信息DEVICE_INF时,闪存转换层210可生成装置健康描述符DHD(或其更新值)。也就是说,当接收到指示存储器装置100的状态改变的信息时,可基于存储器装置100的经改变的状态来生成DHD。可将所生成的DHD提供到坏块控制器220。
在实施例中,坏块控制器220可从存储器装置100接收坏块信息BB_INF。坏块信息BB_INF可包括与在存储器装置100的操作期间产生运行时坏块(RTBB)相关的信息。
例如,坏块信息BB_INF可包括关于存在操作失败的页面的数量、包括相应失败页面的存储块的数量、包括相应存储块的平面的数量、以及将包括相应平面的管芯与存储器控制器200连接的通道的数量的信息。失败的操作可以是编程操作、读取操作或擦除操作。除了上述信息之外,坏块信息BB_INF还可包括关于坏块的各种其它信息。
当坏块控制器220接收到坏块信息BB_INF时,可基于所接收的坏块信息BB_INF来生成坏块表。
参照图11更详细地描述该坏块表。
坏块控制器220可基于从闪存转换层210接收的DHD以及从存储器装置100接收的坏块信息BB_INF来生成回收信息RECYCLING_INF。
在实施例中,坏块控制器220可基于关于DHD的信息来生成回收信息RECYCLING_INF。
具体地,坏块控制器220可基于DHD的字段之中指示存储器装置100的寿命的字段的值来生成回收信息RECYCLING_INF。指示存储器装置100的寿命的值可基于存储器装置100中的剩余保留块的数量来确定。
例如,当指示存储器装置100的寿命的值指示临界等级时,坏块控制器220可生成回收信息RECYCLING_INF。相反,当指示存储器装置100的寿命的值指示正常等级或警告等级时,坏块控制器220可不生成回收信息RECYCLING_INF。
也就是说,当存储器装置100的寿命处于临界等级而不处于正常等级或警告等级时,可生成回收信息RECYCLING_INF。因此,当存储器装置100的寿命处于临界等级时,可根据回收信息RECYCLING_INF来回收坏块中的页面,并且当存储器装置100的寿命处于正常等级或警告等级时,可不回收坏块中的页面。
因此,因为当存储器装置100的寿命处于临界等级时,坏块中的页面被回收,所以可延长存储器装置100的寿命。也就是说,因为当存储器装置100的寿命处于临界等级时,对坏块中的页面执行编程操作,所以可延长存储器装置100的寿命。
在实施例中,坏块控制器220可基于从存储器装置100接收的坏块信息BB_INF来生成回收信息RECYCLING_INF。具体地,可参考基于坏块信息BB_INF生成的坏块表来生成回收信息RECYCLING_INF。
例如,当参考坏块表确定坏块中的失败页面时,可生成关于坏块中的剩余页面(不包括失败页面和与失败页面相邻的页面)的信息。也就是说,回收信息RECYCLING_INF可包括关于经回收的页面的信息,作为坏块中的页面之中的剩余页面的信息,即除操作失败的页面和与失败页面相邻的页面之外的所有页面的信息。
在实施例中,坏块控制器220可将回收信息RECYCLING_INF输出到存储器装置100。此外,存储器控制器200可基于回收信息RECYCLING_INF来指示对回收信息RECYCLING_INF中的页面执行编程操作。
此后,当存储器装置100执行编程操作时,基于回收信息RECYCLING_INF对回收信息RECYCLING_INF中的页面执行这种操作。因此,可通过回收坏块中的页面来延长存储器装置100的寿命。
图5是用于描述从闪存转换层输出的装置健康描述符的示图。
作为示例,图5示出装置健康描述符DHD中包括的字段。DHD的第一行示出每个字段的名称,并且第二行示出对应于每个字段的默认值。
在图5中,DHD中包括的字段的数量为三个,但是本发明不限于此;也就是说,字段的数量可多于三个字段。
在实施例中,DHD中包括的第一字段bPreEOLInfo可指示存储器装置100的寿命。可基于存储器装置100中的剩余保留块的数量来确定第一字段bPreEOLInfo的值。也就是说,对应于第一字段bPreEOLInfo的值可指示基于剩余保留块的数量而确定的存储器装置100的寿命。
在实施例中,对应于第一字段bPreEOLInfo的值可以是“01h”、“02h”和“03h”中的任意一个。当第一字段bPreEOLInfo的值为“01h”时,存储器装置100的剩余寿命可处于正常等级,当第一字段bPreEOLInfo的值为“02h”时,存储器装置100的剩余寿命可处于警告等级,而当对应于第一字段bPreEOLInfo的值为“03h”时,存储器装置100的剩余寿命可处于临界等级。
此处,正常等级可意为存储器装置100中的所有保留块中少于80%的是已使用的保留块。此外,警告等级意为使用了所有保留块中的80%或更多且少于90%,并且临界等级意为使用了所有保留块中的90%或更多。也就是说,随着所有保留块之中已使用的保留块的数量增加,存储器装置100的剩余寿命可接近临界等级,并且随着已使用的保留块的数量从高于正常等级减少,存储器装置100的剩余寿命可接近正常等级。
在图5中,因为第一字段bPreEOLInfo的值为作为默认值的“02h”,所以基于剩余保留块的数量所确定的存储器装置100的寿命可能处于警告等级。此后,根据从存储器装置100接收的装置信息DEVICE_INF,第一字段bPreEOLInfo的值可能从“02h”改变为“01h”或者从“02h”改变为“03h”,或者可能保持不变。
在实施例中,装置健康描述符DHD中的第二字段bDeviceLifeTimeEstA可以是指示存储器装置100的寿命的另一字段。然而,不同于第一字段bPreEOLInfo,该第二字段bDeviceLifeTimeEstA的值可指示如基于执行编程/擦除操作的次数所确定的存储器装置100的剩余寿命。也就是说,第二字段bDeviceLifeTimeEstA的值可指示基于执行编程/擦除操作的次数而确定的存储器装置100的剩余寿命。
对应于第二字段bDeviceLifeTimeEstA的值可以是“01h”至“0Ah”中的任意一个。当该值为“01h”时,存储器装置100的剩余寿命可以是90%至100%,当该值为“02h”时,存储器装置100的剩余寿命可以是80%至90%,当该值为“03h”时,存储器装置100的剩余寿命可以是70%至80%,当该值为“04h”时,存储器装置100的剩余寿命可以是60%至70%,当该值为“05h”时,存储器装置100的剩余寿命可以是50%至60%,当该值为“06h”时,存储器装置100的剩余寿命可以是40%至50%,当该值为“07h”时,存储器装置100的剩余寿命可以是30%至40%,当该值为“08h”时,存储器装置100的剩余寿命可以是20%至30%,当该值为“09h”时,存储器装置100的剩余寿命可以是10%至20%,并且当该值为“0Ah”时,存储器装置100的剩余寿命可以是0%至10%。
在图5中,因为第二字段bDeviceLifeTimeEstA的值为“04h”,所以基于执行编程/擦除操作的次数而确定的存储器装置100的剩余寿命可以是60%至70%;因此,“04h”可指示仍然存在存储器装置100的总寿命的60%至70%。此后,根据从存储器装置100接收的装置信息DEVICE_INF,第二字段bDeviceLifeTimeEstA的值可能从“04h”改变为另一值,或者可能保持不变。
在实施例中,装置健康描述符DHD中包括的第三字段dRefreshTotalCount可指示已经对存储器装置100执行刷新操作的次数。每当执行刷新操作时,对应于第三字段dRefreshTotalCount的值可增加“1”。
在图5中,作为dRefreshTotalCount值,“25h”表示已经对存储器装置100执行刷新操作的总次数。
图6是示出图2的存储器单元阵列的实施例的示图。
图6示出由多个平面配置的存储器单元阵列110的示例。图6的存储器单元阵列110可包括第一至第四平面PLANE1至PLANE4。在图6中,假设第一至第四平面PLANE1至PLANE4中的每一个包括六个存储块。
在另一实施例中,存储器单元阵列110可由多于或少于四个平面配置,并且每个平面可由多于或少于六个存储块配置。
在实施例中,第一平面PLANE1可包括第十一至第十六存储块BLK11至BLK16,第二平面PLANE2可包括第二十一至第二十六存储块BLK21至BLK26,第三平面PLANE3可包括第三十一至第三十六存储块BLK31至BLK36,并且第四平面PLANE4可包括第四十一至第四十六存储块BLK41至BLK46。
在实施例中,PLANE1中的BLK11、PLANE2中的BLK21、PLANE3中的BLK31以及PLANE4中的BLK41可配置为第一超级块SUPER_BLOCK1。
如上所述,PLANE1中的BLK12、PLANE2中的BLK22、PLANE3中的BLK32以及PLANE4中的BLK42可配置为第二超级块SUPER_BLOCK2。PLANE1中的BLK13、PLANE2中的BLK23、PLANE3中的BLK33以及PLANE4中的BLK43可配置为第三超级块SUPER_BLOCK3。PLANE1中的BLK14、PLANE2中的BLK24、PLANE3中的BLK34以及PLANE4中的BLK44可配置为第四超级块SUPER_BLOCK4。PLANE1中的BLK15、PLANE2中的BLK25、PLANE3中的BLK35以及PLANE4中的BLK45可配置为第五超级块SUPER_BLOCK5。PLANE1中的BLK16、PLANE2中的BLK26、PLANE3中的BLK36以及PLANE4中的BLK46可配置为第六超级块SUPER_BLOCK6。
每个平面中包括的多个存储块之中的一些存储块可被分配为开放块OPEN_BLOCK,而其它存储块可被分配为保留块RESERVED_BLOCK。可对开放存储块OPEN_BLOCK执行编程操作、读取操作和擦除操作中的任意一种。可对开放块OPEN_BLOCK中的多个页面之中作为编程/读取单位的特定页面执行编程操作和读取操作中的每一个,并且可对作为擦除单位的存储块执行擦除操作。
当对开放块OPEN_BLOCK中的页面执行编程操作之后,无法再对开放块OPEN_BLOCK编程更多数据时,可将该开放块OPEN_BLOCK改变为封闭块CLOSED_BLOCK。
在实施例中,可将第一平面PLANE1中包括的多个存储块之中的第十一至第十四存储块BLK11至BLK14、第二平面PLANE2中包括的多个存储块之中的第二十一至第二十四存储块BLK21至BLK24、第三平面PLANE3中包括的多个存储块之中的第三十一至第三十四存储块BLK31至BLK34以及第四平面PLANE4中包括的多个存储块之中的第四十一至第四十四存储块BLK41至BLK44分配为开放块OPEN_BLOCK。可对开放存储块执行编程操作、读取操作和擦除操作中的任意一种。
在实施例中,可将第一平面PLANE1中包括的多个存储块之中的第十五和第十六存储块BLK15和BLK16、第二平面PLANE2中包括的多个存储块之中的第二十五和第二十六存储块BLK25和BLK26、第三平面PLANE3中包括的多个存储块之中的第三十五和第三十六存储块BLK35和BLK36以及第四平面PLANE4中包括的多个存储块之中的第四十五和第四十六存储块BLK45和BLK46分配为保留块RESERVED_BLOCK。在实施例中,当开放块OPEN_BLOCK变为坏块时,可利用保留存储块RESERVED_BLOCK中的任意一个来替换相应的坏块。
例如,当对开放块OPEN_BLOCK中的页面中的特定页面中编程数据时,当读取开放块OPEN_BLOCK中的页面之中的特定页面中编程的数据时,或者当擦除开放块OPEN_BLOCK时,这类操作可能失败。其中操作失败的存储块被作为坏块处理,并且相应的坏块可利用任意一个保留块RESERVED_BLOCK替换。
参照图7至图9更详细地描述坏块的产生和利用保留块RESERVED_BLOCK替换坏块的方法。
图7是示出在编程操作期间产生的坏块和替换该坏块的保留块的示图。
图7示出以下情况:对第一平面PLANE1中的多个存储块之中的第十一存储块BLK11中的任意一个页面执行编程操作,但是该编程操作失败。
在实施例中,存储器控制器200可将待编程的编程数据PGM_DATA与指示编程操作的编程命令(未示出)一起传输到存储器装置100。存储器装置100可接收编程数据PGM_DATA,并且尝试将所接收的编程数据PGM_DATA编程到第十一存储块BLK11中包括的页面之中的特定页面。
然而,在该示例中,编程操作失败,并且第十一存储块BLK11可能变为坏块。在这种情况下,认为该第十一存储块BLK11是运行时坏块(RTBB)。
因为第十一存储块BLK11被作为坏块处理,所以不再可以在第十一存储块BLK11的页面中编程任何数据。因此,该第十一存储块BLK11可利用第一平面PLANE1中作为保留块的第十五和第十六存储块BLK15和BLK16中的任意一个来替换。
在图7中,假设利用第十五存储块BLK15来替换该第十一存储块BLK11。
因此,可将编程数据PGM_DATA编程在第十五存储块BLK15中的页面之中的特定页面中。
然而,在每当编程操作失败时包括编程失败的页面的存储块被作为坏块处理时,可能不存在足够的保留块可用于替换坏块。因此,在本公开中,提供了一种回收坏块中的、除操作失败的页面和与该失败页面相邻的页面之外的页面的方法。
参照图13至图17更详细地描述了经回收的页面。
图8是示出在垃圾收集操作期间产生的坏块和替换该坏块的保留块的示图。
图8示出以下情况:将第一平面PLANE1中包括的多个存储块之中的第十一和第十二存储块BLK11和BLK12选择为牺牲块,并且对该第十一和第十二存储块BLK11和BLK12执行垃圾收集GC。
在实施例中,当对第一平面PLANE1执行垃圾收集GC时,在PLANE1的存储块中的每一个的页面之中,可选择每个都具有相对大量的无效页面的第十一和第十二存储块BLK11和BLK12作为牺牲块。被选择作为牺牲块的存储块可包括有效页面和无效页面。此处,无效页面可以是存储了无效数据的页面,并且有效页面可以是存储了有效数据的页面。
在实施例中,假设第十一存储块BLK11中的有效页面中存储的数据是第十一有效数据VALID_DATA11,并且第十二存储块BLK12中包括的有效页面中存储的数据是第十二有效数据VALID_DATA12。
当执行垃圾收集GC时,可将牺牲块中的有效数据编程到新的存储块中。例如,可将分别作为牺牲块的第十一和第十二存储块BLK11和BLK12中的第十一和第十二有效数据VALID_DATA11和VALID_DATA12编程在作为新存储块的第十四存储块BLK14中。此后,当第十一和第十二存储块BLK11和BLK12被擦除时,该第十一和第十二存储块BLK11和BLK12可各自变为空闲块,因此可将该第十一和第十二存储块BLK11和BLK12分配为可对数据进行编程的开放块。
然而,当尝试将第十一和第十二有效数据VALID_DATA11和VALID_DATA12编程在第十四存储块BLK14中时,编程操作可能失败。在这种情况下,待将第十一和第十二有效数据VALID_DATA11和VALID_DATA12编程在另一存储块中。因此,其中发生编程失败的第十四存储块BLK14可能是坏块,并且该第十四存储块BLK14可利用第十五存储块BLK15替换。
当第十四存储块BLK14被第十五存储块BLK15替换时,可将第十一和第十二有效数据VALID_DATA11和VALID_DATA12重新编程在第十五存储块BLK15中。
然而,如参照图7所述,在每当编程操作失败,包括操作失败的页面的存储块被作为坏块处理时,可能无法确保有足够数量的保留块RESERVED_BLOCK,即保留块RESERVED_BLOCK的数量可能不够。因此,在本公开中,提供了一种回收坏块中的、除发生操作失败的页面和与该失败页面相邻的页面之外的页面的方法。
参照图13至图17更详细地描述了经回收的页面。
图9是示出擦除操作期间产生的坏块的示图。
图9示出对第一平面PLANE1中包括的多个存储块之中的第十一存储块BLK11执行擦除操作的情况。
在实施例中,存储器控制器200可向存储器装置100输出擦除命令,指示对第一平面PLANE1中的第十一存储块BLK11执行擦除操作。存储器装置100可响应于擦除命令而对第十一存储块BLK11执行擦除操作。然而,对第十一存储块BLK11的擦除操作可能失败。
当擦除操作失败时,将擦除操作失败的存储块作为坏块处理。然而,擦除操作失败的存储块可不利用另一存储块来替换。也就是说,因为第十一存储块BLK11是待擦除的存储块,所以没有必要利用用于编程的存储块来替换该BLK11。
因此,当擦除操作失败时,将失败存储块作为坏块处理,但是不会替换该失败存储块。
图10A至图10C是用于描述基于保留块的数量而确定的存储器装置的寿命的示图。
图10A至图10C仅示出图6的第一至第四平面PLANE1至PLANE4中的存储块之中的保留块。在图10A至图10C中,假设省略了图6的第一至第四平面PLANE1至PLANE4中的开放块OPEN_BLOCK。
在实施例中,在图10A至图10C中,第一至第四平面PLANE1至PLANE4中的保留块的总数可以是八个。在实施例中,存储器装置100的寿命可基于第一至第四平面PLANE1至PLANE4中的所有保留块之中未使用的保留块RESERVED_BLOCK的数量来确定,即根据剩余的保留块的数量来确定。
在实施例中,编程数据或读取所存储的数据的操作可能失败。在这种情况下,发生失败操作的存储块可被作为坏块处理,并且该坏块可利用保留块中的任意一个来替换。
例如,图10A示出以下情况:对第一平面PLANE1中的存储块中的任意一个以及对第二平面PLANE2中的存储块中的任意一个执行的操作失败,并且作为坏块处理的失败存储块被保留块替换。
在实施例中,第一平面PLANE1中的失败存储块可利用第十五存储块BLK15替换,并且第二平面PLANE2中的失败存储块可利用第二十五存储块BLK25替换。
图10B示出以下情况:对第一平面PLANE1中的存储块之中的两个存储块、对第二平面PLANE2中的存储块之中的两个存储块、对第三平面PLANE3中的存储块中的任意一个以及对第四平面PLANE4中的存储块中的任意一个执行的操作失败,并且作为坏块处理的失败存储块被保留块替换。
在实施例中,第一平面PLANE1中的失败存储块可利用第十五和第十六存储块BLK15和BLK16替换,第二平面PLANE2中的失败存储块可利用第二十五和第二十六存储块BLK25和BLK26替换,第三平面PLANE3中的失败存储块可利用第三十五存储块BLK35替换,并且第四平面PLANE4中的失败存储块可利用第四十五存储块BLK45替换。
图10C示出以下情况:对第一平面PLANE1中的存储块之中的两个存储块、对第二平面PLANE2中的存储块之中的两个存储块、对第三平面PLANE3中的存储块之中的两个存储块以及对第四平面PLANE4中的存储块中的任意一个执行的操作失败,并且作为坏块处理的失败存储块被保留块RESERVED_BLOCK替换。
在实施例中,第一平面PLANE1中的失败存储块可利用第十五和第十六存储块BLK15和BLK16替换,第二平面PLANE2中的失败存储块可利用第二十五和第二十六存储块BLK25和BLK26替换,第三平面PLANE3中的失败存储块可利用第三十五和第三十六存储块BLK35和BLK36替换,并且第四平面PLANE4中的失败存储块可利用第四十五存储块BLK45替换。
因此,在图10A中,作为坏块处理的两个存储块可利用BLK15和BLK25替换。在图10B中,作为坏块处理的六个存储块可利用BLK15、BLK16、BLK25、BLK26、BLK35和BLK45替换。在图10C中,作为坏块处理的七个存储块可利用BLK15、BLK16、BLK25、BLK26、BLK35、BLK36和BLK45替换。
在实施例中,存储器装置100的寿命可基于所有保留块之中除用于替换坏块的保留存储块之外的剩余保留块的数量来确定。
例如,当剩余保留块的数量等于或大于4时,存储器装置的寿命可处于正常等级,当剩余保留块的数量等于或小于3时,存储器装置的寿命可处于警告等级,并且当剩余保留块的数量等于或小于1时,存储器装置的寿命可处于临界等级。
因此,在图10A中,因为剩余保留块的数量为6,所以存储器装置100的寿命可处于正常等级。在图10B中,因为剩余保留块的数量为2,所以存储器装置100的寿命可处于警告等级。在图10C中,因为剩余保留块的数量为1,所以存储器装置100的寿命可处于临界等级。
基于剩余保留块的数量而确定的关于存储器装置100的寿命的信息可被包括在由闪存转换层210生成的装置健康描述符DHD中。此外,当基于剩余保留块的数量而确定的存储器装置100的寿命属临界等级时,存储器装置100可回收坏块。也就是说,在本公开中,当存储器装置100的寿命处于临界等级时,在坏块中包括的页面之中,可回收剩余的页面,即其中操作没有失败的页面。
在实施例中,存储器装置100可基于由坏块控制器220生成的坏块表来确定待回收的页面。参照图11更详细地描述由坏块控制器220生成的坏块表。
图11是示出坏块表的示图。
图11示出在从存储器装置100接收坏块信息BB_INF之后由坏块控制器220生成的坏块表。
在实施例中,坏块信息BB_INF可包括关于以下的信息:编程操作或读取操作失败的页面编号#PAGE、包括相应页面的存储块编号#BLOCK、包括相应存储块的平面编号#PLANE、相应平面连接到存储器控制器200的通道编号#CHANNEL。
当擦除操作失败时,坏块信息BB_INF可包括关于以下的信息:擦除操作失败的存储块编号#BLOCK、包括相应存储块的平面编号#PLANE以及相应平面连接到存储器控制器的通道编号#CHANNEL。
假设图11的坏块表仅由编程失败生成。
在实施例中,第一平面PLANE1可通过第一通道连接到存储器控制器,第二平面PLANE2可通过第二通道连接到存储器控制器,第三平面PLANE3可通过第三通道连接到存储器控制器,并且第四平面PLANE4可通过第四通道连接到存储器控制器。
在实施例中,如图11所示,PLANE1中的存储块之中的BLK12和BLK13、PLANE2中的存储块之中的BLK21和BLK22、PLANE3中的存储块之中的BLK32和BLK33以及PLANE4中的存储块之中的BLK41可被作为坏块处理。
具体地,坏块信息指示在块BLK12中的页面之中的PAGE12_4、块BLK13中的页面之中的PAGE13_4、块BLK21中的页面之中的PAGE21_2、块BLK22中的页面之中的PAGE22_2、块BLK32中的页面之中的PAGE32_4、块BLK33中的页面之中的PAGE33_4以及块BLK41中的页面之中的PAGE41_2中发生了编程操作失败。包括失败页面的每个存储块被作为坏块处理,并且可从存储器装置100输出关于这种处理的信息。
坏块控制器220可基于坏块信息来生成坏块表。
例如,因为在第十二存储块BLK12的第(12_4)页面PAGE12_4中发生编程失败,所以这种信息可在坏块表中反映为:存储块编号#BLOCK为“12”,通道编号#CHANNEL为“1”,平面编号#PLANE为“1”,并且页面编号#PAGE为“12_4”。
此外,因为在第十三存储块BLK13的第(13_4)页面PAGE13_4中发生编程失败,所以这种信息可在坏块表中反映为:存储块编号#BLOCK为“13”,通道编号#CHANNEL为“1”,平面编号#PLANE为“1”,并且页面编号#PAGE为“13_4”。
因为在第二十一存储块BLK21的第(21_2)页面PAGE21_2中发生编程失败,所以这种信息可在坏块表中反映为:存储块编号#BLOCK为“21”,通道编号#CHANNEL为“2”,平面编号#PLANE为“2”,并且页面编号#PAGE为“21_2”。
因为在第二十二存储块BLK22的第(22_2)页面PAGE22_2中发生编程失败,这种信息可在坏块表中反映为:存储块编号#BLOCK为“22”,通道编号#CHANNEL为“2”,平面编号#PLANE为“2”,并且页面编号#PAGE为“22_2”。
因为在第三十二存储块BLK32的第(32_4)页面PAGE32_4中发生编程失败,所以这种信息可在坏块表中反映为:存储块编号#BLOCK为“32”,通道编号#CHANNEL为“3”,平面编号#PLANE为“3”,并且页面编号#PAGE为“32_2”。
因为在第三十三存储块BLK33的第(33_4)页面PAGE33_4中发生编程失败,所以这种信息可在坏块表中反映为:存储块编号#BLOCK为“33”,通道编号#CHANNEL为“3”,平面编号#PLANE为“3”,并且页面编号#PAGE为“33_4”。
因为在第四十一存储块BLK41的第(41_2)页面PAGE41_2中发生编程失败,所以这种信息可在坏块表中反映为:存储块编号#BLOCK为“41”,通道编号#CHANNEL为“4”,平面编号#PLANE为“4”,并且页面编号#PAGE为“41_2”。
当坏块表被生成和/或更新时,可基于坏块表来确定坏块中回收的页面。也就是说,可回收作为坏块处理的存储块BLK12、BLK13、BLK21、BLK22、BLK32、BLK33和BLK41中的页面。
参照图12至图17更详细地描述确定回收页面的方法。
图12是示出产生坏块的实施例的示图。
图12示出基于图11的坏块表的存在编程操作失败的页面。
假设图12仅示出每个平面中包括的存储块中的一些。
在实施例中,第一平面PLANE1中的存储块之中的第十二和第十三存储块BLK12和BLK13可被作为坏块处理。
参照图11,尝试对第十二存储块BLK12中的第(12_4)页面PAGE12_4的编程操作失败,并且尝试对第十三存储块BLK13中的第(13_4)页面PAGE13_4的编程操作失败。因此,BLK12和BLK13可被作为坏块处理。
在实施例中,第二平面PLANE2中的存储块之中的BLK21和BLK22可被作为坏块处理。
参照图11,对第二十一存储块BLK21中的页面的第(21_2)页面PAGE21_2执行的编程操作失败,并且对第二十二存储块BLK22中的页面的第(22_2)页面PAGE22_2执行的编程操作失败。因此,BLK21和BLK22可被作为坏块处理。
在实施例中,第三平面PLANE3中的存储块之中的BLK32和BLK33可被作为坏块处理。
参照图11,对第三十二存储块BLK32中的页面的第(32_4)页面PAGE32_4执行的编程操作失败,并且对第三十三存储块BLK33中的页面的第(33_4)页面PAGE33_4执行的编程操作失败。因此,BLK32和BLK33可被作为坏块处理。
在实施例中,第四平面PLANE4中的存储块之中的BLK41可被作为坏块处理。
参照图11,对第四十一存储块BLK41中的页面的第(41_2)页面PAGE41_2执行的编程操作失败。因此,BLK41可被作为坏块处理。
图13是用于描述当在第一平面中回收坏块时从回收目标中排除的页面的示图。
图13示出确定回收页面的方法,以回收因尝试对第一平面PLANE1中的页面之中的特定页面进行的编程操作失败而作为坏块处理的存储块中的页面。
在实施例中,在与已经发生编程失败或读取失败的页面相邻的页面中很可能发生编程失败或读取失败。也就是说,由于干扰现象,存在与操作已经失败的页面相邻的页面中的操作也将失败的担忧。因此,将与操作失败的页面相邻的页面排除在回收目标之外,其中回收目标即被确定为可回收的页面。
因此,在第一平面PLANE1的BLK12中的页面之中,可将与发生编程失败的页面PAGE12_4相邻的页面PAGE12_3和页面PAGE12_5从回收目标中排除。
此外,可将与第一平面PLANE1的第十二存储块BLK12相邻的第二平面PLANE2的BLK22中的页面以及第一平面PLANE1的BLK12中的页面从回收目标中排除。
具体地,在第二平面PLANE2的BLK22中的页面之中,可将与发生编程失败的页面PAGE12_4相邻的页面PAGE22_4以及与页面PAGE22_4相邻的页面PAGE22_3和页面PAGE22_5从回收目标中排除。
如上所述,在第一平面PLANE1的BLK13中的页面之中,可将与发生编程失败的页面PAGE13_4相邻的页面PAGE13_3和页面PAGE13_5从回收目标中排除。
另外,在与第十三存储块BLK13相邻的第二平面PLANE2的BLK23中的页面之中,可将与发生编程失败的页面PAGE13_4相邻的页面PAGE23_4以及与页面PAGE23_4相邻的页面PAGE23_3和页面PAGE23_5从回收目标中排除。
因此,可将与发生编程失败的页面PAGE12_4和页面PAGE13_4相邻的页面从回收目标中排除。除了PLANE1中发生编程失败的页面之外,也可排除PLANE2中的页面中的一些。
图14是用于描述当回收第二平面中包括的坏块时从回收目标中排除的页面的示图。
参照图12和图14,图14示出确定回收页面的方法,以便回收因尝试对第二平面PLANE2中的页面之中的特定页面进行的编程操作失败而作为坏块处理的存储块中包括的页面。
在实施例中,在与已经发生编程失败或读取失败的页面相邻的页面中很可能发生编程失败或读取失败。也就是说,由于干扰现象,存在与操作已经失败的页面相邻的页面中的操作也将失败的担忧。因此,将与操作失败的页面相邻的页面从回收目标中排除。
因此,在第二平面PLANE2的BLK21中的页面之中,可将与发生编程失败的页面PAGE21_2相邻的页面PAGE21_1和页面PAGE21_3从回收目标中排除。
此外,可将与第二平面PLANE2的BLK21相邻的、第一平面PLANE1的BLK11中的页面和第三平面PLANE3的BLK31中的页面PAGE31_1至PAGE31_6中的一些以及第二平面PLANE2的块BLK21中的页面从回收目标中排除。
具体地,在第一平面PLANE1的BLK11中,可将与发生编程失败的页面PAGE21_2相邻的页面PAGE11_2以及与页面PAGE11_2相邻的页面PAGE11_1和PAGE11_3从回收目标中排除。另外,在第三平面PLANE3的BLK31中,可将与发生编程失败的页面PAGE21_2相邻的页面PAGE31_2以及与页面PAGE31_2相邻的页面PAGE31_1和PAGE31_3从回收目标中排除。
如上所述,在第二平面PLANE2的BLK22中,可将与发生编程失败的页面PAGE22_2相邻的页面PAGE22_1和PAGE22_3从回收目标中排除。
此外,在与BLK22相邻的第一平面PLANE1的BLK12中的页面之中,可将与发生编程失败的页面PAGE22_2相邻的PAGE12_2以及与页面PAGE12_2相邻的页面PAGE12_1和PAGE12_3从回收目标中排除。此外,在与BLK22相邻的第三平面PLANE3的BLK32中包括的页面PAGE32_1至PAGE32_6中,可将与发生编程失败的页面PAGE22_2相邻的页面PAGE32_2以及与页面PAGE32_2相邻的页面PAGE32_1和PAGE32_3从回收目标中排除。
因此,可将与发生编程失败的第(21_2)页面PAGE21_2和第(22_2)页面PAGE22_2相邻的页面从回收目标中排除。除了PLANE2中发生编程失败的页面之外,也可排除PLANE1和PLANE3中的页面中的一些。
图15是用于描述当回收第三平面中的坏块时从回收目标中排除的页面的示图。
图15示出确定回收页面的方法,以便回收因对第三平面PLANE3中的页面之中的特定页面执行的编程操作失败而作为坏块处理的存储块中的页面。
在实施例中,在与发生编程失败或读取失败的页面相邻的页面中很可能发生编程失败或读取失败。也就是说,由于干扰现象,存在与操作已经失败的页面相邻的页面中的操作将再次失败的担忧。因此,将与操作失败的页面相邻的页面从回收目标中排除。
因此,在第三平面PLANE3的BLK32中包括的页面PAGE32_1至PAGE32_6中,可将与发生编程失败的页面PAGE32_4相邻的页面PAGE32_3和PAGE32_5从回收目标中排除。
此外,可将与第三平面PLANE3的BLK32相邻的第二平面PLANE2的BLK22中的页面和第四平面PLANE4的BLK42中的页面PAGE42_1至PAGE42_6中的一些以及第三平面PLANE3的BLK32中的页面从回收目标中排除。
具体地,在第二平面PLANE2的BLK22中的页面之中,可将与发生编程失败的页面PAGE32_4相邻的页面PAGE22_4以及与页面PAGE22_4相邻的页面PAGE22_3和PAGE22_5从回收目标中排除。此外,在第四平面PLANE4的BLK42中的页面之中,可将与发生编程失败的页面PAGE32_4相邻的页面PAGE42_4以及与页面PAGE42_4相邻的页面PAGE42_3和页面PAGE42_5从回收目标中排除。
如上所述,在第三平面PLANE3的BLK33中的页面之中,可将与发生编程失败的页面PAGE33_4相邻的页面PAGE33_3和PAGE33_5从回收目标中排除。
另外,在与BLK33相邻的第二平面PLANE2的BLK23中的页面之中,可将与发生编程失败的页面PAGE33_4相邻的页面PAGE23_4以及与页面PAGE23_4相邻的页面PAGE23_3和PAGE23_5从回收目标中排除。另外,在与BLK33相邻的第四平面PLANE4的BLK43中的页面之中,可将与发生编程失败的页面PAGE33_4相邻的页面PAGE43_4以及与页面PAGE43_4相邻的页面PAGE43_3和PAGE43_5从回收目标中排除。
因此,可将与发生编程失败的页面PAGE32_4和页面PAGE33_4相邻的页面从回收目标中排除。除了PLANE3中发生编程失败的页面之外,也可排除PLANE2和PLANE4中的页面中的一些。
图16是用于描述当回收第四平面中的坏块时从回收目标中排除的页面的示图。
图16示出确定回收页面的方法,以便回收因对第四平面PLANE4中的页面之中的特定页面执行的编程操作失败而作为坏块处理的存储块中的页面。
在实施例中,在与发生编程失败或读取失败的页面相邻的页面中很可能发生编程失败或读取失败。也就是说,由于干扰现象,存在与操作已经失败的页面相邻的页面中的操作将再次失败的担忧。因此,将与操作失败的页面相邻的页面从回收目标中排除。
因此,在第四平面PLANE4的BLK41中的页面之中,可将与发生编程失败的页面PAGE41_2相邻的页面PAGE41_1和PAGE41_3从回收目标中排除。
此外,可将与第四平面PLANE4的BLK41相邻的第三平面PLANE3的BLK31中的页面中的一些以及第四平面PLANE4的BLK41中的页面从回收目标中排除。
具体地,在第三平面PLANE3的BLK31中的页面之中,可将与发生编程失败的页面PAGE41_2相邻的页面PAGE31_2以及与页面PAGE31_2相邻的页面PAGE31_1和PAGE31_3从回收目标中排除。
因此,可将与页面PAGE41_2相邻的页面从回收目标中排除。除了PLANE4中发生编程失败的页面之外,也可排除PLANE3中的页面中的一些。
图17是用于描述当回收第一至第四平面中的坏块时回收的页面的示图。
图17示出除被确定从回收目标中排除的页面之外的页面。
在实施例中,可能在以下平面中发生编程操作失败:第一平面PLANE1的BLK12中包括的页面之中的页面PAGE12_4、第一平面PLANE1的BLK13中包括的页面之中的页面PAGE13_4、第二平面PLANE2的BLK21中的页面之中的页面PAGE21_2、第二平面PLANE2的BLK22中的页面之中的页面PAGE22_2、第三平面PLANE3的BLK32中的页面之中的页面PAGE32_4、第三平面PLANE3的BLK33中的页面之中的页面PAGE33_4以及第四平面PLANE4的BLK41中的页面之中的页面PAGE41_2。
另外,可将与上述发生编程失败的页面相邻的页面从回收目标中排除。
因此,存储器控制器200中的坏块控制器220可基于从闪存转换层210接收的装置健康描述符DHD来确定存储器装置100的寿命。当所确定的存储器装置100的寿命处于临界等级时,存储器控制器200中的坏块控制器220可基于根据从存储器装置接收的坏块信息BB_INF生成的回收信息RECYCLING_INF来回收坏块中的页面。
因此,可对第一平面PLANE1中被作为坏块处理的BLK12中的页面之中的页面PAGE12_6以及BLK13中的页面之中的页面PAGE13_1、PAGE13_2和PAGE13_6进行回收。而且,可对BLK 11中的页面之中的页面PAGE11_4至PAGE11_6进行回收。
在第二平面PLANE2的情况下,可对被作为坏块处理的BLK21中的页面之中的页面PAGE21_4至PAGE21_6以及BLK22中的页面之中的页面PAGE22_6进行回收。此外,可对BLK 23中的页面之中的页面PAGE23_1、PAGE23_2和PAGE23_6进行回收。
在第三平面PLANE3的情况下,可对被作为坏块处理的BLK32中的页面之中的页面PAGE32_6以及BLK33中的页面之中的页面PAGE33_1、PAGE33_2和PAGE33_6进行回收。此外,可对BLK 31中的页面之中的页面PAGE31_4至PAGE11_6进行回收。
在第四平面PLANE4的情况下,可对被作为坏块处理的BLK41中的页面之中的页面PAGE41_4至PAGE41_6进行回收。此外,可对BLK 42中的页面之中的页面PAGE42_1、PAGE42_2和PAGE42_6以及BLK 43中的页面之中的页面PAGE43_1、PAGE43_2和PAGE43_6进行回收。
图18是用于描述当擦除操作失败时从回收目标中排除的存储块的示图。
图18示出图6的存储器单元阵列110。
在实施例中,在执行编程操作之后,其上执行过编程操作的存储块可被擦除。然而,擦除操作可能失败。
参照图18,对第一至第四平面PLANE1至PLANE4中的存储块之中的BLK12、BLK13、BLK21、BLK22、BLK32、BLK33和BLK41执行的擦除操作可能失败。当擦除操作失败时,相应存储块可被作为坏块处理,并且可不利用另一存储块来替换。
当擦除操作失败时,失败存储块中的页面不被回收,这不同于编程操作或读取操作失败的情况。因为擦除操作是以存储块为单位执行的,所以当擦除操作失败时,相应存储块的所有页面中存储的数据可能都不可信。
此外,可能不会使用包括擦除操作失败的存储块的超级块中的所有存储块。
例如,在图18中,因为对BLK12、BLK22或BLK32执行的擦除操作失败,所以可能不会使用SUPER_BLOCK2中的所有存储块。另外,因为对BLK13或BLK33执行的擦除操作失败,所以可能不会使用SUPER_BLOCK3中的所有存储块。另外,因为对BLK21或BLK41执行的擦除操作失败,所以可能不会使用SUPER_BLOCK1中的所有存储块。
因此,因为对存储块SUPER_BLOCK1中的BLK21和BLK41的擦除操作失败,所以即使BLK11和BLK31被作为坏块处理,也可能不会对BLK11和BLK31中的页面进行回收。
在SUPER_BLOCK2的情况下,因为对SUPER_BLOCK2中的存储块之中的BLK12、BLK22和BLK32的擦除操作失败,所以即使BLK42被作为坏块处理,但也可能不会对BLK42中的页面进行回收。
在SUPER_BLOCK3的情况下,因为SUPER_BLOCK3中的存储块之中的BLK13和BLK33的擦除操作失败,所以即使BLK23和BLK43被作为坏块处理,也可能不会对BLK23和BLK43中的页面进行回收。
图19是用于描述根据本公开的实施例的存储器控制器的操作的示图。
参照图19,在步骤S1901中,存储器控制器可从存储器装置接收装置信息。装置信息可包括关于已经对存储器装置执行编程操作和擦除操作的次数、存储器装置中的保留块的数量以及已经对存储器装置执行的刷新操作的次数的信息。在后台操作的执行期间,或者响应于存储器控制器的请求,当存储器装置的状态改变时,可从存储器装置输出装置信息。
在步骤S1903中,存储器控制器可基于从存储器装置接收的装置信息来生成装置健康描述符DHD。该DHD可由分别指示关于存储器装置的各种信息项的多个字段配置。
例如,该DHD可具有指示基于存储器装置中的剩余保留块的数量而确定的存储器装置的寿命的字段、指示基于已经执行编程/擦除操作的次数而确定的存储器装置的寿命的字段、指示已经对存储器装置执行刷新操作的次数的字段等。
在基于装置信息生成DHD之后,对存储器装置执行的操作可能失败,因此可能产生坏块(S1905)。存储器控制器可基于DHD中包括的字段之中的特定字段来确定是否回收坏块中不涉及失败操作的页面。
在步骤S1907中,存储器控制器可确定基于DHD的第一装置寿命字段中的值所确定的存储器装置的寿命是否处于临界等级。第一装置寿命字段可包括指示基于存储器装置中的剩余保留块的数量而确定的存储器装置的寿命的值。
当第一装置寿命字段中的值指示存储器装置的寿命处于临界等级(S1907为是)时,存储器控制器可确定对存储器装置中的坏块中的页面进行回收(S1911)。也就是说,通过回收坏块中的选择页面,可进一步延长存储器装置的寿命。
然而,当第一装置寿命字段中的值指示存储器装置的寿命不在临界等级(S1907为否)时,即,当第一装置寿命字段值指示存储器装置的寿命在正常等级或警告等级时,存储器控制器可使用存储器装置中的保留块,而不对存储器装置中的坏块中的页面进行回收(S1913)。因为存储器装置的寿命尚未达到临界等级,所以存储器控制器可利用保留块来替换操作失败的存储块。
图20是用于描述根据本公开的实施例的存储器控制器的操作的示图。
参照图20,在步骤S1907中,存储器控制器可确定基于DHD的第一装置寿命字段的值而确定的存储器装置的寿命是否处于临界等级。第一装置寿命字段值可指示基于存储器装置中的剩余保留块的数量而确定的存储器装置的寿命。
当第一装置寿命字段值指示存储器装置的寿命处于临界等级(S1907为是)时,存储器控制器可确定通过对存储器装置中的坏块中的页面进行回收来执行编程操作。
首先,在步骤S2003中,可将与编程操作失败的页面相邻的页面确定为不被回收的页面。不被回收的页面不仅可包括编程操作失败的存储块的失败页面,还可包括与该存储块相邻的存储块中的页面中的一些。
一旦确定了将不被回收的页面,存储器控制器可指示对坏块中的页面之中的回收页面再次执行编程操作。因此,存储器装置可对坏块中的页面之中的回收页面再次执行编程操作。也就是说,通过回收坏块中的选择页面,可进一步延长存储器装置的寿命。
然而,当第一装置寿命字段值指示存储器装置的寿命不在临界等级(S1907为否)时,即,当第一装置寿命字段值指示存储器装置的寿命在正常等级或警告等级时,存储器控制器可指示对保留块中的页面再次执行编程操作。
因此,存储器控制器可指示使用存储器装置中的保留块,而不对存储器装置中的坏块中的页面进行回收。也就是说,因为存储器装置的寿命尚未达到临界等级,所以存储器控制器可利用保留块来替换操作失败的存储块。
图21是用于描述根据本公开的实施例的存储器控制器的操作的示图。
参照图21,在步骤S1907中,存储器控制器可确定基于DHD的第一装置寿命字段值而确定的存储器装置的寿命是否处于临界等级。第一装置寿命字段值可指示基于存储器装置中的剩余保留块的数量而确定的存储器装置的寿命。
当第一装置寿命字段指示存储器装置的寿命处于临界等级(S1907为是)时,存储器控制器可将擦除操作失败的存储块作为坏块处理,并且确定不被回收的存储块(S2103)。
例如,可能不会对包括擦除操作失败的存储块的超级块中的所有存储块进行回收。因此,即使相应超级块中的存储块被作为坏块处理,被作为坏块处理的存储块中的页面也不会被回收。
然而,当第一装置寿命字段值指示存储器装置的寿命不在临界等级(S1907为否)时,即,当第一装置寿命字段值指示存储器装置的寿命在正常等级或警告等级时,存储器控制器可将擦除操作失败的存储块作为坏块处理。因此,当存储器装置的寿命不在临界等级时,可不确定坏块中的回收页面。
图22是示出图1的存储器控制器的另一实施例的示图。
存储器控制器1000连接到主机和存储器装置。存储器控制器1000被配置成响应于来自主机的请求而访问存储器装置。例如,存储器控制器1000被配置成控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000被配置成提供存储器装置与主机之间的接口。存储器控制器1000被配置成驱动用于控制存储器装置的固件。
参照图22,存储器控制器1000可包括处理器1010、存储器缓冲器1020、错误校正组件(ECC)1030、主机接口1040、缓冲器控制器(或缓冲器控制电路)1050、存储器接口1060和总线1070。
总线1070可被配置成提供存储器控制器1000的组件之间的通道。
处理器1010可控制存储器控制器1000的全部操作,并且可执行逻辑操作。处理器1010可通过主机接口1040与外部主机通信,并且通过存储器接口1060与存储器装置通信。另外,处理器1010可通过缓冲器控制器1050与存储器缓冲器1020通信。处理器1010可使用存储器缓冲器1020作为操作存储器、高速缓存存储器或缓冲存储器来控制存储装置的操作。
处理器1010可执行FTL的功能。处理器1010可通过FTL将由主机提供的LBA转换成PBA。FTL可通过使用映射表来接收LBA,并且将LBA转换成PBA。根据映射单位,闪存转换层的地址映射方法包括多种映射方法。地址映射方法的示例包括页面映射方法、块映射方法和混合映射方法。
在实施例中,处理器1010可从存储器装置100接收装置信息,以生成装置健康描述符DHD。装置信息可包括关于已经对存储器装置100执行编程操作和擦除操作中的每一个的次数、存储器装置100中包括的保留块的数量以及已经对存储器装置100执行的刷新操作的次数的信息。
另外,DHD可由多个字段配置,并且多个字段中的任意一个可指示与基于存储器装置100中的剩余保留块的数量而确定的存储器装置100的寿命相关的第一装置寿命。
此后,处理器1010可基于DHD中的第一装置寿命来确定是否回收坏块中的页面。例如,当指示第一装置寿命的值指示临界等级时,处理器1010可确定回收坏块中的页面。该临界等级可基于存储器装置100中的剩余保留块的数量来确定。
此外,可确定的是,在坏块中的页面之中,除了失败页面和与该失败页面相邻的页面之外的所有页面都进行回收。
处理器1010被配置成使从主机接收的数据随机化。例如,处理器1010可使用随机化种子来使从主机接收的数据随机化。经随机化数据作为待存储的数据提供到存储器装置,并且被编程到存储器单元阵列中。
处理器1010可通过驱动软件或固件来执行随机化和去随机化。
存储器缓冲器1020可用作处理器1010的操作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可存储由处理器1010运行的代码和命令。存储器缓冲器1020可存储由处理器1010处理的数据。存储器缓冲器1020可包括静态RAM(SRAM)或动态RAM(DRAM)。
错误校正组件1030可执行错误校正。错误校正组件1030可基于待通过存储器接口1060写入到存储器装置的数据来执行错误校正编码(ECC编码)。经错误校正编码的数据可通过存储器接口1060而传输到存储器装置。错误校正组件1030可对通过存储器接口1060从存储器装置接收的数据执行错误校正解码(ECC解码)。例如,错误校正组件1030可作为存储器接口1060的组件而被包括在存储器接口1060中。
主机接口1040被配置成在处理器1010的控制下与外部主机通信。主机接口1040可被配置成使用诸如以下的各种通信方法中的至少一种来执行通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(高速PCI)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和/或低负载DIMM(LRDIMM)。
缓冲器控制器1050被配置成在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060被配置成在处理器1010的控制下与存储器装置通信。存储器接口1060可通过通道与存储器装置通信命令、地址和数据。
例如,存储器控制器1000可不包括存储器缓冲器1020和缓冲器控制器1050。可分开提供存储器缓冲器1020和存储器控制器1050中的一者或两者,或者可将它们功能中的一者或两者分配到存储器控制器1000的(多个)其它组件。
例如,处理器1010可使用代码来控制存储器控制器1000的操作。处理器1010可从设置在存储器控制器1000内部的非易失性存储器装置(例如,只读存储器)加载代码。作为另一示例,处理器1010可通过存储器接口1060从存储器装置加载代码。
例如,存储器控制器1000的总线1070可被划分成控制总线和数据总线。数据总线可被配置成在存储器控制器1000内传输数据,控制总线可被配置成在存储器控制器1000内传输诸如命令和地址的控制信息。数据总线和控制总线可彼此分隔开,以便既不互相干扰也不互相影响。数据总线可连接到主机接口1040、缓冲器控制器1050、错误校正组件1030和存储器接口1060。控制总线可连接到主机接口1040、处理器1010、缓冲器控制器1050、存储器缓冲器1020和存储器接口1060。
图23是示出根据本公开的实施例的应用了存储装置的存储卡系统的框图。
参照图23,存储卡系统2000包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100连接到存储器装置2200。存储器控制器2100被配置成访问存储器装置2200。例如,存储器控制器2100被配置成控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100被配置成提供存储器装置2200与主机之间的接口。存储器控制器2100被配置成驱动用于控制存储器装置2200的固件。存储器装置2200可利用上述存储器装置中的任意一种来实施。
作为示例,存储器控制器2100可包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和错误校正组件的组件。
存储器控制器2100可通过连接器2300与外部装置通信。存储器控制器2100可根据特定通信标准与外部装置(例如,主机)通信。在示例中,存储器控制器2100被配置成通过诸如以下的各种通信标准中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和/或NVMe。作为示例,连接器2300可由上述各种通信标准中的至少一种来定义。
作为示例,存储器装置2200可被实施成诸如以下的各种非易失性存储器元件中的任意一种:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及/或者自旋转移扭矩磁性RAM(STT-MRAM)。
在实施例中,存储器控制器2100可从存储器装置2200接收装置信息,以生成装置健康描述符DHD。装置信息可包括关于已经对存储器装置2200执行编程操作和擦除操作的次数、存储器装置2200中的保留块的数量以及已经对存储器装置2200执行的刷新操作的次数的信息。
另外,DHD可由多个字段配置,多个字段中的任意一个可指示与基于存储器装置2200中的剩余保留块的数量而确定的存储器装置2200的寿命相关的第一装置寿命。
此后,存储器控制器2100可基于DHD中的指示第一装置寿命的值来确定是否回收坏块中的页面。例如,当指示第一装置寿命的值指示临界等级时,存储器控制器2100可确定回收坏块中的页面。该临界等级可基于存储器装置2200中的剩余保留块的数量来确定。
此外,可确定对坏块中除了失败页面和与失败页相邻的页面之外的所有页面都进行回收。
存储器控制器2100和存储器装置2200可被集成到一个半导体装置中以配置诸如以下的存储卡:PC卡(个人计算机存储卡国际协会:PCMCIA)、紧凑式闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)和/或通用闪存(UFS)。
图24是示出根据本公开的实施例的应用了存储装置的固态驱动器(SSD)系统的框图。
参照图24,SSD系统3000包括主机3100和SSD 3200。SSD 3200通过信号连接器3001与主机3100交换信号SIG,并且通过电源连接器3002接收电力PWR。SSD 3200包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源装置3230和缓冲存储器3240。
在实施例中,SSD控制器3210可执行图1的存储器控制器200的功能。
SSD控制器3210可响应于从主机3100接收的信号SIG来控制多个闪速存储器3221至322n。作为示例,信号SIG可以是基于主机3100和SSD 3200之间的接口的信号。例如,信号SIG可由诸如以下的接口中的至少一种定义:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和/或NVMe。
在实施例中,SSD控制器3210可从多个闪速存储器3221至322n接收装置信息以生成DHD。装置信息可包括关于已经对多个闪速存储器3221至322n执行编程操作和擦除操作的次数、多个闪速存储器3221至322n中的保留块的数量以及已经对多个闪速存储器3221至322n执行的刷新操作的次数的信息。
另外,DHD可由多个字段配置,多个字段中的任意一个可指示与基于多个闪速存储器3221至322n中的剩余保留块的数量而确定的多个闪速存储器3221至322n的寿命相关的第一装置寿命。
此后,SSD控制器3210可基于DHD中的指示第一装置寿命的值来确定是否回收坏块中的页面。例如,当指示第一装置寿命的值指示临界等级时,SSD控制器3210可确定回收坏块中的页面。该临界等级可基于多个闪速存储器3221至322n中的剩余保留块的数量来确定。
此外,可确定对坏块中除了失败页面和与失败页相邻的页面之外的所有页面都进行回收。
辅助电源装置3230通过电源连接器3002连接到主机3100。辅助电源装置3230可从主机3100接收电力PWR,并且可进行充电。当从主机3100供应的电力不平稳时,辅助电源装置3230可提供SSD 3200的电力。作为示例,辅助电源装置3230可被设置在SSD 3200内部或外部。例如,辅助电源装置3230可被设置在主板上,并且可向SSD 3200提供辅助电力。
缓冲存储器3240作为SSD 3200的缓冲存储器操作。例如,缓冲存储器3240可临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器或诸如FRAM、ReRAM、STT-MRAM和/或PRAM的非易失性存储器。
图25是示出根据本公开的实施例的应用了存储装置的用户系统的框图。
参照图25,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可驱动用户系统4000中包括的组件、操作系统(OS)、用户程序等。例如,应用处理器4100可包括用于控制包括在用户系统4000中的组件的控制器、接口、图形引擎等。应用处理器4100可被设置为片上系统(SoC)。
在实施例中,应用处理器4100可从图1的主机300接收待编程到存储模块4400中的数据,并且存储所接收的数据。可将应用处理器4100中存储的数据以存储的顺序来输出到存储模块4400。输出到存储模块4400的数据可存储在存储模块4400的页面缓冲器中。
在实施例中,应用处理器4100可从存储模块4400接收装置信息,以生成装置健康描述符DHD。装置信息可包括关于对存储模块4400执行的编程操作和擦除操作的次数、存储模块4400中包括的保留块的数量以及对存储模块4400执行的刷新操作的次数的信息。
另外,DHD可由多个字段配置,多个字段中的任意一个可指示与基于存储模块4400中的剩余保留块的数量而确定的存储模块4400的寿命相关的第一装置寿命。
此后,应用处理器4100可基于DHD中的指示第一装置寿命的值来确定是否回收坏块中的页面。例如,当指示第一装置寿命的值指示临界等级时,应用处理器4100可确定回收坏块中的页面。临界等级可基于存储模块4400中的剩余保留块的数量来确定。
此外,可确定对坏块中除了失败页面和与失败页相邻的页面之外的所有页面都进行回收。
存储器模块4200可作为用户系统4000的主存储器、操作存储器、缓冲存储器或高速缓存存储器来操作。存储器模块4200可包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和/或LPDDR3 SDRAM的易失性随机存取存储器,或者诸如PRAM、ReRAM、MRAM和/或FRAM的非易失性随机存取存储器。例如,应用处理器4100和存储器模块4200可基于堆叠封装(POP)来封装,并且作为一个半导体封装来提供。
网络模块4300可与外部装置通信。例如,网络模块4300可支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进、Wimax、WLAN、UWB、蓝牙或WI-FI的无线通信。例如,网络模块4300可包括在应用处理器4100中。
存储模块4400可存储数据。例如,存储模块4400可存储从应用处理器4100接收的数据。可选地,存储模块4400可将存储在存储模块4400中的数据传输到应用处理器4100。例如,存储模块4400可被实施为诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪存、NOR闪存和/或三维NAND闪存的非易失性半导体存储器元件。例如,存储模块4400可被设置为可移动存储装置(可移动驱动器),诸如用户系统4000的存储卡和外部驱动器。
例如,存储模块4400可包括多个非易失性存储器装置,多个非易失性存储器装置中的每一个可与参照图2和图3描述的存储器装置相同地进行操作。该存储模块可与参照图1描述的存储装置50相同地进行操作。
用户接口4500可包括用于向应用处理器4100输入数据或指令或者用于将数据输出到外部装置的接口。例如,用户接口4500可包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和/或压电元件。用户接口4500可包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和/或监视器。
虽然已经示出和描述了本发明的实施例,但是本领域技术人员根据本公开将会理解,可在配置和操作方面进行各种改变。本发明涵盖落入权利要求范围内的所有这种改变和变型。

Claims (20)

1.一种存储器控制器,所述存储器控制器控制存储器装置,所述存储器控制器包括:
闪存转换层,基于从所述存储器装置接收的装置信息来生成装置健康描述符;以及
坏块控制器,基于从所述存储器装置接收的坏块信息来生成坏块表,并且基于所述装置健康描述符来生成回收信息,所述回收信息用于回收所述坏块表中记录的坏块中的页面。
2.根据权利要求1所述的存储器控制器,其中所述装置健康描述符包括与基于所述存储器装置中的保留块的数量而确定的所述存储器装置的寿命相关的信息。
3.根据权利要求2所述的存储器控制器,其中所述装置健康描述符进一步包括与所述装置健康描述符的大小相关的信息,与基于对所述存储器装置执行的编程操作和擦除操作而确定的所述存储器装置的寿命相关的信息,以及与对所述存储器装置执行的刷新操作的次数相关的信息中的至少一种信息。
4.根据权利要求2所述的存储器控制器,其中与基于所述保留块的数量而确定的所述存储器装置的寿命相关的信息,是基于所述存储器装置中的保留块之中除用于替换所述坏块的保留块之外的剩余保留块的数量来确定的。
5.根据权利要求4所述的存储器控制器,其中与基于所述保留块的数量而确定的所述存储器装置的寿命相关的信息指示第一值、第二值和第三值中的任意一个,所述第一值指示如果所述剩余保留块的数量大于第一阈值,则所述存储器装置的寿命处于正常等级状态,所述第二值指示如果所述剩余保留块的数量大于第二阈值且小于所述第一阈值,则所述存储器装置的寿命处于警告等级状态,所述第三值指示如果所述剩余保留块的数量小于所述第二阈值,则所述存储器装置的寿命处于临界等级状态。
6.根据权利要求5所述的存储器控制器,其中如果与基于所述保留块的数量而确定的所述存储器装置的寿命相关的信息指示所述第三值,则所述坏块控制器生成所述回收信息。
7.根据权利要求1所述的存储器控制器,其中所述回收信息包括关于所述坏块表中记录的所述坏块中的页面之中除存在操作失败的失败页面和与所述失败页面相邻的页面之外的页面的信息。
8.根据权利要求7所述的存储器控制器,其中与所述失败页面相邻的所述页面包括与所述失败页面所属的平面相邻的平面中的页面。
9.根据权利要求3所述的存储器控制器,其中当所述坏块表中记录的所述坏块由于所述擦除操作的失败而被分类为擦除失败坏块时,所述坏块控制器针对所述坏块表中记录的除了所述擦除失败坏块所属的组内的存储块之外的坏块生成所述回收信息。
10.根据权利要求1所述的存储器控制器,其中所述存储器控制器基于所述回收信息来指示对页面执行编程操作。
11.一种操作存储器控制器的方法,所述存储器控制器控制存储器装置,所述方法包括:
从所述存储器装置接收装置信息;
基于所述装置信息来生成装置健康描述符;并且
基于所述装置健康描述符来确定是否回收所述存储器装置中的坏块中的页面。
12.根据权利要求11所述的方法,其中所述装置健康描述符包括与基于所述存储器装置中的保留块的数量而确定的所述存储器装置的寿命相关的信息。
13.根据权利要求12所述的方法,其中所述装置健康描述符进一步包括与所述装置健康描述符的大小相关的信息,与基于对所述存储器装置执行的编程操作和擦除操作而确定的所述存储器装置的寿命相关的信息,以及与对所述存储器装置执行的刷新操作的次数相关的信息中的至少一种信息。
14.根据权利要求12所述的方法,其中与基于所述保留块的数量而确定的所述存储器装置的寿命相关的信息是基于所述存储器装置中的保留块之中除用于替换所述坏块的保留块之外的剩余保留块的数量来确定的。
15.根据权利要求14所述的方法,其中与基于所述保留块的数量而确定的所述存储器装置的寿命相关的信息指示第一值、第二值和第三值中的任意一个,所述第一值指示如果所述剩余保留块的数量大于第一阈值,则所述存储器装置的寿命具有正常等级状态,所述第二值指示如果所述剩余保留块的数量大于第二阈值且小于所述第一阈值,则所述存储器装置的寿命具有警告等级状态,所述第三值指示如果所述剩余保留块的数量小于所述第二阈值,则所述存储器装置的寿命具有临界等级状态。
16.根据权利要求15所述的方法,其中基于所述装置健康描述符来确定是否回收所述存储器装置中的所述坏块中的页面包括:响应于与基于所述保留块的数量而确定的所述存储器装置的寿命相关的信息的所述第三值来回收所述坏块中的页面。
17.根据权利要求16所述的方法,进一步包括:
当确定回收所述坏块中的页面时,生成用于回收所述坏块中的页面的回收信息。
18.根据权利要求17所述的方法,其中生成所述回收信息包括:生成关于所述坏块中的所述页面之中除存在操作失败的失败页面和与所述失败页面相邻的页面之外的页面的信息。
19.根据权利要求17所述的方法,其中在生成所述回收信息时,针对所述坏块表中记录的、除了由于所述擦除操作的失败而导致的坏块所属的组中的存储块之外的坏块生成所述回收信息。
20.根据权利要求17所述的方法,进一步包括:基于所述回收信息来指示对页面执行编程操作。
CN202010931246.6A 2020-03-09 2020-09-07 存储器控制器及其操作方法 Withdrawn CN113377687A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0029236 2020-03-09
KR1020200029236A KR20210113905A (ko) 2020-03-09 2020-03-09 메모리 컨트롤러 및 그 동작 방법

Publications (1)

Publication Number Publication Date
CN113377687A true CN113377687A (zh) 2021-09-10

Family

ID=77554827

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010931246.6A Withdrawn CN113377687A (zh) 2020-03-09 2020-09-07 存储器控制器及其操作方法

Country Status (3)

Country Link
US (1) US11481272B2 (zh)
KR (1) KR20210113905A (zh)
CN (1) CN113377687A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114385084A (zh) * 2022-01-13 2022-04-22 合肥沛睿微电子股份有限公司 坏块表继承方法及其存储装置
CN115495025A (zh) * 2022-11-18 2022-12-20 合肥康芯威存储技术有限公司 一种管理异常存储块的方法和装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113823350B (zh) * 2021-09-23 2024-03-12 山东华芯半导体有限公司 一种固态存储设备坏块表的生成与维护方法
US11704211B1 (en) * 2021-12-08 2023-07-18 Amazon Technologies, Inc. Error avoidance in memory device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130078973A (ko) 2012-01-02 2013-07-10 삼성전자주식회사 메모리 장치의 불량 저장 영역 관리 방법 및 이를 이용한 저장 장치
KR102015053B1 (ko) 2013-02-20 2019-08-27 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 데이터 처리 방법
KR102291507B1 (ko) 2014-05-20 2021-08-20 삼성전자주식회사 메모리 컨트롤러의 동작 방법
US9406396B2 (en) * 2014-12-04 2016-08-02 Sandisk Technologies Llc Intrinsic memory block health monitoring
US10503431B2 (en) * 2014-12-22 2019-12-10 Sandisk Technologies Llc Trade-off adjustments of memory parameters based on memory wear or data retention
KR102435873B1 (ko) * 2015-12-18 2022-08-25 삼성전자주식회사 스토리지 장치 및 그것의 리드 리클레임 방법
US9646721B1 (en) * 2016-03-31 2017-05-09 EMC IP Holding Company LLC Solid state drive bad block management
US10552288B2 (en) * 2016-12-12 2020-02-04 International Business Machines Corporation Health-aware garbage collection in a memory system
US10564886B2 (en) * 2018-02-20 2020-02-18 Western Digital Technologies, Inc. Methods and apparatus for controlling flash translation layer recycle from host
US11132247B2 (en) * 2018-07-30 2021-09-28 Micron Technology, Inc. Selective bad block untag and bad block reuse
US10956058B2 (en) * 2018-08-03 2021-03-23 Western Digital Technologies, Inc. Tiered storage system with tier configuration by peer storage devices
US11150825B2 (en) * 2019-12-05 2021-10-19 Microsoft Technology Licensing, Llc Adaptive spare block usage in solid state drives

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114385084A (zh) * 2022-01-13 2022-04-22 合肥沛睿微电子股份有限公司 坏块表继承方法及其存储装置
CN114385084B (zh) * 2022-01-13 2023-09-19 合肥沛睿微电子股份有限公司 坏块表继承方法及其存储装置
CN115495025A (zh) * 2022-11-18 2022-12-20 合肥康芯威存储技术有限公司 一种管理异常存储块的方法和装置

Also Published As

Publication number Publication date
US11481272B2 (en) 2022-10-25
KR20210113905A (ko) 2021-09-17
US20210279132A1 (en) 2021-09-09

Similar Documents

Publication Publication Date Title
US11481272B2 (en) Memory controller and method of operating the same
US11194712B2 (en) Memory controller and operating method for performing garbage collection operation in memory devices
US11543986B2 (en) Electronic system including host, memory controller and memory device and method of operating the same
CN111352855B (zh) 具有提高的映射更新速度的存储装置及其操作方法
CN113688066A (zh) 存储器控制器及其操作方法
CN112988049A (zh) 存储装置及其操作方法
CN114860622A (zh) 存储装置及操作存储装置的方法
CN113096708B (zh) 存储器装置及其操作方法
US11880274B2 (en) Host device, memory controller, and computing system including the same
CN113223573A (zh) 存储器控制器及其操作方法
CN115588451A (zh) 存储装置及其操作方法
CN114356209A (zh) 存储装置及其操作方法
US11836370B2 (en) Storage device and operating method thereof
US11636899B2 (en) Memory device and method of operating the same
US11625324B2 (en) Storage device for moving valid data to an open memory block based on a valid page list and operating method thereof
US11474723B2 (en) Storage device and operating method thereof
US20210334173A1 (en) Storage device and method of operating the same
CN115509957A (zh) 主机装置、存储装置及其操作方法
CN114968080A (zh) 存储器控制器及操作存储器控制器的方法
CN114582399A (zh) 存储器装置及其操作方法
CN114489467A (zh) 存储器控制器及其操作方法
CN114360593A (zh) 存储装置及其操作方法
CN113342708A (zh) 存储器控制器及其操作方法
CN112199037A (zh) 存储器控制器及其操作方法
US11500768B2 (en) Storage device performing garbage collection and method of operating the same

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20210910