CN114168502A - 存储器控制器、存储器设备和存储装置 - Google Patents
存储器控制器、存储器设备和存储装置 Download PDFInfo
- Publication number
- CN114168502A CN114168502A CN202110881497.2A CN202110881497A CN114168502A CN 114168502 A CN114168502 A CN 114168502A CN 202110881497 A CN202110881497 A CN 202110881497A CN 114168502 A CN114168502 A CN 114168502A
- Authority
- CN
- China
- Prior art keywords
- block
- programming
- die
- erase
- super
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/107—Programming all cells in an array, sector or block to the same state prior to flash erasing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control 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/10—Programming or data input 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/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching 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/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
- 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/32—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/24—Nonvolatile memory in which programming can be carried out in one memory bank or array whilst a word or sector in another bank or array is being erased simultaneously
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)
- Read Only Memory (AREA)
Abstract
本公开涉及存储器控制器、存储器设备和存储装置。存储器控制器包括接口和控制模块。接口与包括多个裸片的存储器设备接口连接,多个裸片中的每个裸片包括多个块。控制模块将包括在不同裸片中的多个块分组并且将多个块作为超级块进行管理。控制模块执行调度以交替地执行对第N超级块的一部分的编程和对第N+1超级块的分阶段擦除,其中N为自然数,并且控制模块在对第N+1超级块开始编程之前完成对第N超级块的编程和对第N+1超级块的擦除。
Description
相关申请的交叉引用
本专利申请要求于2020年9月10日向韩国知识产权局提交的韩国专利申请No.10-2020-0116067的优先权,其内容通过引用整体并入本文。
技术领域
在本文中描述的发明构思涉及存储器控制器、存储器设备和存储装置。
背景技术
通过配置存储装置使得多个NAND(与非)裸片(die)并行操作,可以增强写入性能的一致性。例如,包括在彼此不同的NAND裸片中的多个块可以通过超级块管理进行分组和控制。
为了对NAND裸片的特定块进行编程,需要在编程之前对特定块进行擦除。当NAND裸片执行擦除操作时,可能无法执行NAND裸片所需的编程。如果超级块管理以这种方式控制的多个NAND裸片全部具有正在被擦除的块,则多个NAND裸片可能都无法执行主机请求的编程。即,在多个NAND裸片全部具有正在被擦除的块的时段(section)中,吞吐量(主机写入吞吐量)可以是0。
发明内容
根据本公开的一方面,存储器控制器和存储器设备能够改进由超级块管理控制的多个NAND裸片的擦除,从而增强写入性能的一致性。根据本公开的另一方面,包括存储器控制器和存储器设备的存储装置能够改进由超级块管理控制的多个NAND裸片的擦除,从而增强写入性能的一致性。
然而,在本文中描述的发明构思的方面不限于在本文中阐述的那些。通过参考下面提供的本公开的详细描述,在本文中描述的发明构思的其他方面对于本公开所属领域的普通技术人员将变得更加容易理解。
根据本公开的一方面,存储器控制器包括接口和控制模块。所述接口被提供用于与包括第一裸片和第二裸片的存储器设备通信。所述第一裸片包括第一块和第二块,并且所述第二裸片包括第三块和第四块。所述控制模块以第一超级块或第二超级块为单位管理所述存储器设备。所述第一超级块包括所述第一块和所述第三块,并且所述第二超级块包括所述第二块和所述第四块。所述控制模块在开始所述第二超级块的编程之前使所述第一超级块的编程和所述第二超级块的擦除完成。所述第二超级块的擦除分多步执行。完成对所述第一超级块的编程和对所述第二超级块的擦除包括:在对所述第一块的第一部分进行编程之后执行所述第二块的第一步擦除;在所述第二块的所述第一步擦除之后对所述第一块的第二部分进行编程;以及在对所述第一块的第二部分进行编程之后,执行所述第二块的第二步擦除。
根据本公开的另一方面,存储器控制器包括接口和控制模块。所述接口与包括多个裸片的存储器设备接口连接,所述多个裸片中的每个裸片包括多个块。所述控制模块将包括在不同裸片中的多个块进行分组并且将多个块作为超级块进行管理。所述控制模块执行调度以交替地执行第N超级块的一部分的编程和第N+1超级块的分阶段擦除,其中N为自然数。所述控制模块在开始对所述第N+1超级块的编程之前使对所述第N超级块的编程和对所述第N+1超级块的擦除完成。
根据本公开的另一方面,存储器设备包括第一裸片和第二裸片。所述第一裸片包括第一块和第二块。所述第二裸片包括第三块和第四块。所述存储器设备以第一超级块和第二超级块为单位被控制,所述第一超级块包括所述第一块和所述第三块,并且所述第二超级块包括所述第二块和所述第四块。在开始所述第二超级块的编程之前,完成所述第一超级块的编程和所述第二超级块的擦除,并且分多步执行所述第二超级块的擦除。完成对所述第一超级块的编程和对所述第二超级块的擦除包括:在对所述第一块的第一部分进行编程之后,执行所述第二块的第一步擦除;在所述第二块的所述第一步擦除之后,对所述第一块的第二部分进行编程;以及在对所述第一块的所述第二部分进行编程之后,执行所述第二块的第二步擦除。
根据本公开的一方面,存储装置包括存储器设备和控制器。所述存储器设备包括第一裸片和第二裸片。所述第一裸片包括第一块和第二块,并且所述第二裸片包括第三块和第四块。所述控制器通过第一超级块或第二超级块来管理所述存储器设备。所述第一超级块包括所述第一块和所述第三块,并且所述第二超级块包括所述第二块和所述第四块。所述控制器在开始对所述第二超级块的编程之前完成对所述第一超级块的编程和对所述第二超级块的擦除,并且分多步执行所述第二超级块的擦除。所述第一超级块的编程和所述第二超级块的擦除包括:在对所述第一块的第一部分进行编程之后,执行所述第二块的第一步擦除;在所述第二块的所述第一步擦除之后,对所述第一块的第二部分进行编程;以及在对所述第一块的第二部分进行编程之后,执行所述第二块的第二步擦除。
根据本公开的一方面,存储器控制器包括接口和控制模块。所述接口被提供用于与包括第一裸片和第二裸片的存储器设备通信。所述第一裸片包括第一块和第二块,并且所述第二裸片包括第三块和第四块。所述控制模块以第一超级块或第二超级块为单位管理所述存储器设备。所述第一超级块包括所述第一块和所述第三块,并且所述第二超级块包括所述第二块和所述第四块。所述控制模块在开始所述第二超级块的编程之前使所述第一超级块的编程和所述第二超级块的擦除完成,并且所述控制模块进行控制使得所述第一裸片的所述第二块的擦除时段和所述第二裸片的所述第四块的擦除时段仅部分重叠以擦除所述第二超级块。
根据本公开的另一方面,存储器控制器包括接口和控制模块。所述接口被提供用于与包括第一裸片和第二裸片的存储器设备通信。所述第一裸片包括第一块和第二块,并且所述第二裸片包括第三块和第四块。所述控制模块以第一超级块或第二超级块为单位管理所述存储器设备。所述第一超级块包括所述第一块和所述第三块,并且所述第二超级块包括所述第二块和所述第四块。所述控制模块在开始所述第二超级块的编程之前完成对所述第二超级块的擦除。所述第二超级块的擦除包括:开始所述第一裸片的所述第二块的擦除;当所述第一裸片的所述第二块的擦除开始时,将总令牌从初始数目减少预定消耗令牌;当总令牌的数目达到阈值令牌的数目时,随着擦除进度时间增加总令牌的数目并且开始所述第二裸片的所述第四块的擦除。
根据本公开的一方面,存储器设备包括第一裸片和第二裸片。所述第一裸片包括第一块和第二块。所述第二裸片包括第三块和第四块。所述存储器设备以第一超级块或第二超级块为单位被控制。所述第一超级块包括所述第一块和所述第三块,并且所述第二超级块包括所述第二块和所述第四块。在开始所述第二超级块的编程之前,完成所述第一超级块的编程和所述第二超级块的擦除,并且通过控制来对所述第二超级块进行擦除,使得所述第一裸片的所述第二块的擦除时段和所述第二裸片的所述第四块的擦除时段仅部分重叠。
根据本公开的一方面,存储器设备包括存储器设备和控制器。所述存储器设备包括第一裸片和第二裸片。所述第一裸片包括第一块和第二块,并且所述第二裸片包括第三块和第四块。所述控制器通过第一超级块或第二超级块管理所述存储器设备。所述第一超级块包括所述第一块和所述第三块,并且所述第二超级块包括所述第二块和所述第四块。所述控制器在开始所述第二超级块的编程之前完成对所述第一超级块的编程和对所述第二超级块的擦除,并且所述控制器进行控制使得所述第一裸片的所述第二块的擦除时段和所述第二裸片的所述第四块的擦除时段仅部分重叠以对所述第二超级块进行擦除。
其他实施例的具体事项被包括在具体实施方式和附图中。
附图说明
通过参考附图详细描述本发明构思的示例性实施例,在本文中描述的本发明构思的这些和其他方面和特征将变得更加容易理解,在附图中:
图1是图示了根据本公开的一些实施例的包括存储装置的系统的框图;
图2是图示了图1中的系统的存储器设备的框图;
图3是用于说明图1中的系统的存储器控制器中使用的队列和作业调度器的图;
图4是用于说明根据本公开的一些实施例的存储器控制器的操作的概念图;
图5和图6是用于说明根据本公开的一些实施例的存储器控制器的操作的图;
图7、图8、图9和图10是用于说明交替地执行对第N超级块的一部分的编程和第N+1超级块的分阶段擦除的实现方法的图;
图11是用于说明根据本公开的一些实施例的存储器控制器的操作的流程图;
图12是用于说明根据本公开的一些实施例的存储器控制器的操作的另一流程图;
图13是用于说明根据本公开的一些实施例的存储器控制器的操作的另一流程图;
图14是用于说明根据本公开的一些其他实施例的存储器控制器的操作的图;
图15和图16是用于说明通过引入令牌概念以使得裸片的擦除时段重叠最小的控制的图;和
图17和图18是用于说明根据本公开的一些其他实施例的存储器控制器的操作的流程图。
具体实施方式
在以下详细描述中,出于说明而非限制的目的,阐述公开具体细节的代表性实施例以提供对根据本教导的实施例的透彻理解。可以省略对已知系统、设备、材料、操作方法和制造方法的描述,以避免模糊代表性实施例的描述。尽管如此,在本领域普通技术人员的视界内的系统、设备、材料和方法也在本教导的范围内并且可以根据代表性实施例使用。应当理解的是,这里使用的术语仅用于描述特定实施例的目的,而不是限制性的。所定义的术语是本教导的技术领域中普遍理解和接受的所定义术语的技术和科学含义之外。
将理解的是,虽然术语第一、第二、第三等可在本文中用于描述各种元件或组件,但这些元件或组件不应受这些术语的限制。这些术语仅用于将一个元件或组件与另一元件或组件进行区分。因此,在不脱离本发明构思的教导的情况下,下面讨论的第一元件或组件可以被称为第二元件或组件。
在本文中使用的术语仅用于描述特定实施例的目的,并不旨在进行限制。如在说明书和所附权利要求中使用的,除非上下文另有明确规定,否则术语“一”、“一个”和“该”的单数形式旨在包括单数形式和复数形式二者。此外,当在本说明书中使用时,术语“包括”和/或“包含”和/或类似术语指存在所述的特征、元件和/或组件,但不排除存在或添加一个或更多个其他特征、元件、组件和/或它们的组。如在本文中所用的,术语“和/或”包括相关联的所列项目的一个或更多个的任何和所有组合。
除非另有说明,当元件或组件被称为“连接到”、“耦接(couple)到”或“邻近”另一元件或组件时,将理解的是,该元件或组件可以直接连接或耦接到另一元件或组件,或者可以存在中间元件或组件。即,这些术语和类似术语涵盖可以采用一个或更多个中间元件或组件来连接两个元件或组件的情况。然而,当元件或组件被称为“直接连接”到另一元件或组件时,这仅包括两个元件或组件彼此连接而没有任何中间或过渡元件或组件的情况。
因此,通过本公开各个方面、实施例和/或特定特征或子组件中的一个或更多个,本公开旨在带来如下具体指出的一个或更多个优点。出于说明而非限制的目的,阐述公开具体细节的示例实施例以提供对根据本教导的实施例的透彻理解。然而,与在本文中公开的具体细节相偏离但与本公开一致的其他实施例仍然在所附权利要求的范围内。此外,可以省略公知的装置和方法的描述,以免模糊示例实施例的描述。此类方法和设备在本公开的范围内。
在下文中,将参考附图说明本公开的各种实施例。
图1是图示了根据本公开的一些实施例的包括存储装置的系统的框图。图2是图示了图1中的系统的存储器设备的框图。
图1的系统可以是移动系统,诸如移动电话、智能手机、膝上型计算机、平板PC(平板个人计算机)、可穿戴设备、医疗保健设备或IOT(物联网)设备。然而,图1的系统不必限于移动系统,而是还可以是个人计算机、工作站计算机、服务器、媒体播放器或诸如导航控制器的汽车设备。
参考图1,存储装置100可以在主机10的请求下与主机10通信以写入或读取数据。主机10可以与存储装置100物理地分离,并且可以经由有线接口或无线接口连接到存储装置100。然而,主机10和存储装置100也可以或可替代地是集成系统的组件,甚至可以容纳在公共壳体内。
存储装置100用作非易失性存储装置,该非易失性存储装置与电源无关地存储数据。参考图1,存储装置100包括存储器控制器110和在存储器控制器110的控制下存储数据的存储器设备150。
存储器控制器110可以包括布置的电路和/或其他组件,包括通过总线119彼此连接的存储器接口(I/F)141、主机接口142、控制模块120和存储器130。控制模块120通过主机接口142与主机10通信,并且通过存储器接口141控制存储器设备150。控制模块120执行归属于本文的存储器控制器110的方法的一些或所有方面,诸如要参考图4至图18进行说明的擦除控制方法。控制模块120可以是或包括处理器,诸如微处理器,其执行来自存储器130的指令以实现归属于本文的控制模块120的方法的一些或所有方面。控制模块120还可以或可替代地是或包括专用集成电路(ASIC)。
主机接口142提供可以向主机10发送数据和从主机10接收数据的连接,并且可以例如符合各种接口标准、协议和/或约定,诸如ATA(高级技术附件)、SATA(串行ATA)、e-SATA(外部SATA)、SCSI(小型计算机小型接口)、SAS(串行连接SCSI)、PCI(外围组件互连)、PCIe(PCI极速)、NVMe(NVM极速)、IEEE 1394、USB(通用串行总线)、SD(安全数字)卡、MMC(多媒体卡)、eMMC(嵌入式多媒体卡)、UFS(通用闪存)、eUFS(嵌入式通用闪存)或CF(紧凑型闪存)。存储器接口141可以被实现为符合标准约定,诸如Toggle或ONFI。主机接口142和/或存储器接口141的示例包括端口、适配器、插座、连接器、驱动器和符合一种或更多种上述类型的标准、协议和/或约定的其他类型的物理接口。
存储器130可以用作临时存储在主机10请求写入时提供的数据的缓冲存储器。此外,存储器130还可以用作队列,在该队列中顺序存储与存储器设备150的操作相关的任务的命令和信息(例如,编程命令、读取命令和刷新命令)。此外,存储器130可以是但不限于诸如SRAM(静态随机存取存储器)和/或DRAM(动态随机存取存储器)的易失性存储器。
存储器设备150可以包括但不限于2D(2维)或3D(3维)结构的V-NAND闪存。如上所述,存储装置100可以与主机10物理地分离,并且还可以或可替代地可以与主机10实现在同一封装件中。
参考图2,存储器设备150可以包括从DIE0至DIE3(即,DIE0、DIE1、DIE2和DIE3)的多个裸片(die)。
裸片DIE0至DIE3中的每一个裸片可以包括多个块BLK0至BLKa(这里,a是自然数)。超级块SPBLK0至SPBLKa各自是包括在不同裸片DIE0至DIE3中的多个块BLK0至BLKa的不同组。任何特定超级块的多个块BLK0至BLKa可以由存储器控制器110同时选择。例如,在本文中描述的许多实施例中,第一裸片可以是DIE0并且可以至少包括第一块(例如,BLK0)和第二块(例如,BLK1),并且第二裸片可以是DIE1并且可以包括第三块(例如,BLK0)和第四块(例如,BLK1)。
虽然在图2中,作为示例,属于超级块SPBLK0的多个块被示出为每个裸片DIE0至DIE3的BLK0,但本公开不限于此。例如,属于超级块SPBLK0的多个块可以是裸片DIE0中的BLK0,可以是另一裸片DIE1中的BLK1,并且可以是又一个裸片DIE2中的BLK2。即,可以具有各种将不同裸片DIE0至DIE3的多个块与超级块SPBLK0至SPBLKa中的任何一个超级块绑定的方法,并且任何超级块的每个DIE中的BLK的相对顺序可以变化。
图3是用于说明图1中的系统的存储器控制器中使用的队列和作业调度器的图。
参考图3,存储器控制器110的存储器130包括多个队列131和132。控制模块120可以包括基于存储在存储器130的队列131和132中的命令来调度任务的作业调度器121。例如,作业调度器121可以检查编程命令和擦除命令并执行调度操作。存储器130的队列131和132以及其他队列可以彼此物理地和/或逻辑地分开并且与存储器130的其他组件物理地和/或逻辑地分开。队列131和132也可以专用于作为持久性的队列的功能,以便即使在其中或其上没有存储任务时,仍保持为队列131和132。
多个队列131和132中的每一个队列可以各自对应于多个裸片中的一个裸片。例如,图3中的队列131对应于裸片DIE0,并且顺序地存储与要在裸片DIE0中执行的任务相关的命令。此外,图3中的队列132对应于裸片DIE1,并且顺序地存储与裸片DIE1要执行的任务相关的命令。
特别地,如图3所示,可以在DIE的不同队列中的每个队列内单独地管理编程命令(PGM)和擦除命令(ERS)。在图3中,多个编程命令按任务顺序被顺序地存储在一个队列中(例如,如图3中每个DIE的第二队列)。多个擦除命令按任务顺序被顺序地存储在另一队列中(例如,如图3中每个DIE的第三队列)。此外,多个读取命令可以按照任务顺序被顺序地存储在另一队列中(例如,图3中每个DIE的第一队列)。图3中每个DIE的第一队列、第二队列和第三队列的标签是任意的,使得对于每个DIE(例如,DIE0、DIE1、DIE2和DIE3),第一队列可以为多个DIE中的每一个DIE存储相应DIE的编程命令,并且与第一队列不同的第二队列可以为多个DIE中的每一个DIE存储相应DIE的擦除命令。
当以这种方式管理队列时,控制模块120可以检查命令,并且执行调度操作以调度多个不同类型的待决任务。例如,以图3中布置的方式使用多个队列,在同时考虑第N超级块(其中,N为自然数)的编程操作和第N+1超级块的擦除操作的情况下,可以有效地执行调度操作。下面将参考图4到图18说明调度方法。
图4是用于说明根据本公开的一些实施例的存储器控制器的操作的概念图。
参考图4,假设存储器控制器110控制对第N超级块(其中,N为自然数)的编程的执行和对第N+1超级块的编程的执行。即,假设存储器控制器110中的控制模块120控制对第N超级块(其中,N为自然数)的编程的执行和对第N+1超级块的编程的执行。
这里,对第N+1超级块的擦除先于对第N+1超级块的编程的开始。
当对第N超级块的编程、对第N+1超级块的擦除和对第N+1超级块的编程被顺序地执行时,吞吐量(即,主机写入吞吐量)在对第N+1超级块执行擦除的时段的至少一部分中可以为0。原因是,如果与第N+1超级块相对应的所有裸片都有正在被擦除的块,则与第N+1超级块相对应的所有裸片都可能无法执行主机10所请求的编程。
具体地,在由主机10提供的编程数据被存储在诸如图1中的存储器130的缓冲存储器中时,主机写入吞吐量可以被保持在0以上。然而,从主机10提供的编程数据的量变得大于缓冲存储器(即,存储器130)的存储容量的时刻起,由于缓冲存储器可能不再接收由主机10提供的任何编程数据,所以主机写入吞吐量变为0。在具有第N+1超级块中包括的块的所有裸片都具有正在被擦除的块期间,需要大量的缓冲存储器来存储主机10提供的所有编程数据。然而,由于大容量的缓冲存储器的尺寸相当大,因此难以采用大容量的缓冲存储器。
以这种方式,当吞吐量在一个时段中变为0时,存储装置100的方案吞吐量(solution throughput)只能下降。这是因为方案吞吐量被计算为编程时段的吞吐量和擦除时段的吞吐量的平均值。
即使存储器设备150的最大(MAX)吞吐量大于主机接口最大写入吞吐量,当吞吐量变为0的此种时段出现时,方案吞吐量变得小于主机接口最大写入吞吐量。因此,为了使方案吞吐量实现主机接口最大写入吞吐量,需要改进对第N+1超级块的擦除方式。
如图4所示,在本公开的一些实施例中,在S10的预定时间t1内完成对第N超级块的编程和对第N+1超级块的擦除,之后,在S20的时间t2内执行对第N+1超级块的编程。对第N+1超级块的编程可以被保持直到预定时间t1已经过去为止,和/或直到对第N超级块的编程和对第N+1超级块的擦除完成为止。
在图4中,在对第N超级块的编程需要被完成的时间(即,t1)内,对第N+1超级块的擦除不是一次性完成的,而是对第N+1超级块的擦除可以被分为多步。即,对第N+1超级块的擦除可以被分为多步,并且一次执行的擦除时段可以被调整为更短。当对第N+1超级块的擦除被分为各自具有较短持续时间的多步时,由于主机10提供的数据可以在擦除时段期间被存储在缓冲存储器中,而不会显著地增加缓冲存储器的存储容量,所以主机写入吞吐量不会变为0。下面将参考图5至图13说明这种种擦除方法。
可替代地,可以执行控制使得裸片的擦除时段在需要完成对第N超级块的编程的时间(即,t1)内重叠最小。通过这种控制,由于可以防止所有裸片同时执行擦除操作的情况,所以主机写入吞吐量不会变为0。下面将参考图14至图18说明这种擦除方法。
将参考图5至图13说明执行被分为多步的超级块的擦除的方法。
图5和图6是用于说明根据本公开的一些实施例的存储器控制器的操作的图。
首先,参考图5,对第N超级块的一部分的编程PGM1至PGM3和对第N+1超级块的分阶段擦除ERS1至ERS4被交替地执行预定时间t1,使得开始对第N+1超级块的编程之前,完成对第N超级块的编程PGM1至PGM3和对第N+1超级块的擦除ERS1至ERS4(请注意S10)。
使用第N超级块中包括的第一裸片(例如,DIE0)的第一块(例如,BLK0)和第N+1超级块中包括的第一裸片DIE0的第二块(例如,BLK1)来说明图5。
第二块BLK1的第一步擦除ERS1被执行时间t11。擦除被以块为单位执行。对第二块BLK1的擦除根据预定规则(或根据预定标准)被执行,然后被暂停。第一步擦除ERS1是从对第二块BLK1的擦除开始之后直到暂停的擦除操作。
随后,对第一块BLK0的第一部分的编程PGM1被执行时间t21。由于编程是以字线为单位执行的,所以连接到第一块BLK0中包括的一些字线的NAND闪存单元被编程时间t21。本实施例中第一块BLK0的“部分”的含义可以是连接到属于第一块BLK0的至少一条字线的NAND闪存单元。
随后,第二块BLK1的第二步擦除ERS2被执行时间t12。根据预定规则(或根据预定标准),第二块BLK1被暂停的擦除被恢复,被执行,然后再次被暂停。第二步擦除ERS2是从第二块BLK1的擦除被恢复开始直到擦除操作被再次暂停为止的擦除操作。
随后,对第一块BLK0的第二部分的编程PGM2被执行时间t22。
随后,第二块BLK1的第三步擦除ERS3被执行时间t13。类似地,第三步擦除ERS3是从对被暂停的第二块BLK1的擦除被恢复直到擦除操作被再次暂停为止的擦除操作。
随后,对第一块BLK0的第三部分的编程PGM3被执行时间t23。
随后,第二块BLK1的第四步擦除ERS4被执行时间t14,从而完成对第二块BLK1的擦除。类似地,第四步擦除ERS4是从第二块BLK1的擦除被恢复直到擦除被完成为止的擦除操作。
为了便于说明,虽然图5说明了通过四步擦除完成对第二块BLK1的擦除,但是基于图5的实施例不限于此。虽然,第一块BLK0的编程被说明为分为三步,但是基于图5的实施例不限于此。
参考图6,对具有第N超级块中包括的块的多个裸片(例如,DIE0至DIE3)的编程PGM1至PGM3和对具有第N+1超级块中包括的块的多个裸片(例如,DIE0至DIE3)的擦除ERS1至ERS4被交替地执行。
如图所示,在第一步擦除ERS1时段中,具有第N+1超级块中包括的块的每个裸片(例如,DIE0至DIE3)的第一块BLK0的第一步擦除(参见,附图标记“N+1.first”)可以被执行。因此,总共有四个块经受步擦除操作,并且被擦除的块是具有第N+1超级块中包括的块的四个DIE中的每一个DIE的一个块(即,第一块BLK0)。
随后,在编程PGM1时段中,具有第N超级块中包括的块的每个裸片(例如,DIE0至DIE3)的第二块BLK1的编程被执行。与图5所示的编程不同,这里总共四个块被编程,并且被编程的块是具有第N超级块中包括的块的四个DIE中的每一个DIE的一个块(即,第二块BLK1)。
随后,在第三步擦除ERS3时段中,具有第N+1超级块中包括的块的每个裸片(例如,DIE0至DIE3)的第一块BLK0的n-1步擦除(参见,附图标记“N+1.n-1”)可以被执行。这里,再次,总共四个块经受步擦除操作,并且被擦除的块是具有第N+1超级块中包括的块的四个DIE中的每一个DIE的一个块(即,再次是第一块BLK0)。
随后,在编程PGM3时段中,具有第N超级块中包括的块的每个裸片(例如,DIE0至DIE3)的第二块BLK1的编程被执行。这里,再次,总共四个块被编程,并且被编程的块是具有第N超级块中包括的块的四个DIE中的每一个DIE的一个块(即,再次是第二块BLK1)。
随后,在第四步擦除ERS4时段中,具有第N+1超级块中包括的块的每个裸片(例如,DIE0至DIE3)的第一块BLK0的n步擦除(参见,附图标记“N+1.n”)被执行。这里,再次,总共四个块经受步擦除操作,并且被擦除的块是具有第N+1超级块中包括的块的四个DIE中的每一个DIE的一个块(即,再次是第一块BLK0)。
如图所示,具有第N+1超级块中包括的块的每个裸片(例如,DIE0至DIE3)的多步擦除(ERS1至ERS4)时段可以彼此重叠。然而,由于与对每个裸片(例如,DIE 0至DIE3)的第一块BLK0执行擦除操作且在完成之前不停止相比,每步的步擦除(ERS1至ERS4)时段更短,所以主机10提供的数据可以在每步的擦除(ERS1至ERS4)时段期间被存储在缓冲存储器中,而不会显著地增加缓冲存储器(例如,存储器130)的存储容量,并且主机写入吞吐量不会变为0。
在下文中,作为示例,将参考图7至图10来说明交替地执行对第N超级块的一部分的编程和对第N+1超级块的分阶段擦除的实现方法。为了便于说明,图7至图10主要说明第一裸片DIE0的操作。
图7、图8和图9是指示当前吞吐量(Current_throughput)的图。在图7、图8和图9的每一者中,x轴指示时间,并且y轴指示吞吐量。TH1指示阈值吞吐量,并且MAX1指示第一裸片的最大吞吐量。
如图7、图8和图9所示,并且如下所说明的,当执行块(例如,BLK0)的编程时,包括该块的裸片(例如,DIE0)的当前吞吐量增加,而当执行块(例如,BLK1)的擦除时,包括该块的裸片(例如,DIE0)的当前吞吐量降低。因此,对于第一裸片,在执行第一裸片的第一块的编程时,第一裸片的当前吞吐量增加,而当执行第一裸片的第二块的擦除时,第一裸片的当前吞吐量降低。首先,参考图7,执行对第一裸片DIE0的第一块BLK0的第一编程PGM1。当执行第一编程PGM1时,当前吞吐量不断增加并且可以达到最大吞吐量MAX1(参见,附图标记P1)。
当第一编程PGM1被完成时,可以执行第二块BLK1的第一步擦除ERS1。如果在第一编程PGM1完成时第一裸片DIE0的当前吞吐量大于阈值吞吐量TH1,则可以执行第二块BLK1的第一步擦除ERS1。这里,由于在擦除操作期间不执行编程操作,所以当前吞吐量从最大吞吐量MAX1减小到阈值吞吐量TH1(参见,附图标记B1)。在当前吞吐量变得等于或小于阈值吞吐量TH1时,确认编程任务是否在队列中等待。如果编程任务在等待,则擦除操作被暂停。
随后,执行正在等待的编程任务(即,第二编程PGM2)。在执行第二编程PGM2时,当前吞吐量不断增加并且可以达到最大吞吐量MAX1。
当第二编程PGM2完成时,可以恢复擦除以执行第二块BLK1的第二步擦除ERS2。如果在第二编程PGM2完成时第一裸片DIE0的当前吞吐量大于阈值吞吐量TH1,则可以执行第二块BLK1的第二步擦除ERS2。当前吞吐量从最大吞吐量MAX1减小到阈值吞吐量TH1。如果当前吞吐量变得等于或小于阈值吞吐量TH1并且编程任务在等待,则擦除操作再次被暂停。
然后,执行正在等待的编程任务(即,第三编程PGM3)。即,执行正在等待被执行的编程任务。
以这种方式,可以交替地执行对第一块BLK0的编程和对第二块BLK1的擦除,使得当前吞吐量被控制在阈值吞吐量TH1与最大吞吐量MAX1之间。
参考图8,执行对第一裸片DIE0的第一块BLK0的第一编程PGM1。在执行第一编程PGM1时,当前吞吐量不断增加并且可以达到最大吞吐量MAX1(参见,附图标记P1)。
当第一编程PGM1完成时,执行第二块BLK1的第一步擦除ERS1。由于在擦除操作期间不执行编程操作,所以当前吞吐量可以从最大吞吐量MAX1减小到阈值吞吐量TH1(参见,附图标记B2)。在当前吞吐量达到阈值吞吐量TH1时,确认编程任务是否在队列中等待。如果没有正在等待的编程任务,则继续第一步擦除ERS1。由于没有主机10请求的编程,所以即使继续第一步擦除ERS1,当前吞吐量仍保持阈值吞吐量TH1。
当有来自主机10的编程请求时,擦除ERS1被暂停,并且执行对第一裸片DIE0的第一块BLK0的第二编程PGM2。
参考图9和图10,最大吞吐量MAX1和MAX2可以根据第一块BLK0中发生编程的位置而不同地设置。
例如,在图10中,当编程第一块BLK0的开始处的一些字线(例如,WL0至WL2)时,最大吞吐量可以被设置为MAX1,并且当编程位于第一块BLK0中间的一些字线(例如,WL3至WL6)时,最大吞吐量可以被设置为比MAX1大的MAX2。此外,当编程位于第一块末尾的一些字线(例如,WLb)时,最大吞吐量可以从MAX2减小到MAX1。
可以按照布置的字线的顺序(即,按照WL0至WLb的顺序)执行第一块BLK0的编程。
执行对第一裸片DIE0的第一块BLK0的第一编程PGM1。这里,可以对字线WL0至WL2执行第一编程PGM1。在正在执行第一编程PGM1时,当前吞吐量不断增加,并且可以达到最大吞吐量MAX1(参见,附图标记P1)。
当第一编程PGM1完成时,执行第二块BLK1的第一步擦除ERS1。当前吞吐量从最大吞吐量MAX1减小到阈值吞吐量TH1(参见,附图标记B1)。因为编程任务在队列中等待,所以擦除被暂停。
接下来,执行正在等待的编程任务(即,第二编程PGM2)。这里,可以对字线WL3至WL6执行第二编程PGM2。在正在执行第二编程PGM2时,当前吞吐量不断增加,并且可以达到最大吞吐量MAX2(参见,附图标记P3)。
当第二编程PGM2完成时,恢复擦除并且执行第二块BLK1的第二步擦除ERS2。当前吞吐量从最大吞吐量MAX2减小到阈值吞吐量TH1(参见,附图标记B3)。当编程任务在等待时,擦除被暂停。
第二步擦除ERS2的持续时间比第一步擦除ERS1的持续时间长。由于最大吞吐量MAX2大于最大吞吐量MAX1,所以从最大吞吐量MAX2到阈值吞吐量TH1所花费的时间(即,第二步擦除ERS2的持续时间)变得比从最大吞吐量MAX1到阈值吞吐量TH1所花费的时间(即,第一步擦除ERS1的持续时间)长。
接下来,执行正在等待的编程任务(即,第三编程PGM3)。可以对字线WLb执行第三编程PGM3。在正在执行第三编程PGM3时,当前吞吐量逐渐增加,并且可以达到最大吞吐量MAX1(参见,附图标记P4)。虽然未单独示出,但是第三步擦除ERS3在第三编程PGM3之后执行,并且第三步擦除ERS3被执行直到当前吞吐量从最大吞吐量MAX1达到阈值吞吐量TH1为止。因此,第三步擦除ERS3的持续时间短于第二步擦除ERS2的持续时间。
以这种方式,可以通过根据编程操作在第一块BLK0中的位置不同地设置最大吞吐量MAX1和MAX2,来调整分阶段擦除ERS1和ERS2的持续时间。
图11、图12和图13是用于说明根据本公开的一些实施例的存储器控制器的操作的流程图。
首先,参考图11,假设对第N超级块的编程和对第N+1超级块的擦除二者都在队列中等待。
图11的过程通过在S310从所有裸片当中选择一个裸片(nand_die)开始。例如,可以根据轮询调度(round robin)程序来选择裸片。通过轮询调度程序进行选择可以指在没有优先级的情况下从所有裸片当中选择一个裸片。所有裸片都可以通过轮询调度程序进行选择,并且裸片可以在多个选择中使用轮询调度程序单独地被选择。
接下来,图11的过程包括在S320确认所选择的裸片是否正在被擦除。
当裸片正在被擦除时(S320=是),从当前时间(current_time)减去擦除开始时间(erase_start_time)来计算擦除处理时间(erase_processing_time)。擦除处理时间在图12所示的S332被计算。
接下来,在图12所示的S334计算当前吞吐量(Current_throughput)的当前值。从当前吞吐量的先前值中减去所选择的裸片的吞吐量(Die_throughput)乘以擦除处理时间(erase_processing_time)得到的值,来确定当前吞吐量的当前值。
随后,在图12中的S336,通过将在S334中计算的值与阈值吞吐量(threshold_throughput)进行比较来确定最终当前吞吐量(Current_throughput)。最终当前吞吐量(Current_throughput)不会低于阈值吞吐量(threshold_throughput)。如图8所说明的,当没有正在等待的编程任务时,即使继续擦除操作而没有暂停,当前吞吐量也保持阈值吞吐量TH1。
接下来,在图12中的S338,擦除开始时间(erase_start_time)被记录为当前时间(current_time)。
再次参考图11,在图12中的S338之后,在S340,检查当前吞吐量(Current_throughput)是否等于或小于阈值吞吐量(threshold_throughput)。
如果当前吞吐量(Current_throughput)等于或小于阈值吞吐量(threshold_throughput)(S340=是),则在S350检查是否存在正在等待的编程(program_q[nand_die].size()>0)。
如果存在正在等待的编程(S350=是),则在S360暂停擦除,并且在S362开始编程操作。接下来,在S370将编程开始时间(program_start_time)记录为当前时间。
如果在步骤S350中没有正在等待的编程(S350=否),则过程在S391结束并且可以返回到开始。或者,如果在步骤S340中当前吞吐量(Current_throughput)大于阈值吞吐量(threshold_throughput)(S340=否),则过程在S391结束并且可以返回到开始。
另一方面,如果在步骤S320没有擦除操作正在被执行(S320=否),则在S322检查是否有编程操作被执行。
如果编程操作被执行(S322=是),则从当前时间(current_time)减去编程开始时间(program_start_time)来计算编程处理时间(program_processing_time),如图13的S382所示。
接下来,在图13的S384计算当前吞吐量(Current_throughput)的当前值。将当前吞吐量的先前值加到将裸片的吞吐量(Die_throughput)乘以编程处理时间(program_processing_time)得到的值,来确定当前吞吐量的当前值。
随后,通过将在S384计算的值与裸片的吞吐量(Die_throughput)进行比较来确定最终当前吞吐量(Current_throughput),如图13的S386所示。最终当前吞吐量(Current_throughput)不会超过裸片的吞吐量(Die_throughput)(即,裸片的最大吞吐量)。这是因为当前吞吐量不可能超过裸片的吞吐量,即使在中间没有擦除只继续编程。
接下来,在图13的S388,编程开始时间(program_start_time)被记录为当前时间(current_time)。
再次参考图11,在图13中的S338之后,过程在S391结束并且可以返回到开始。
另一方面,如果在步骤S322中编程操作未被执行(S322=否),则检查是否存在暂停的擦除(S324)。
如果存在暂停的擦除(S324=是),则在S392再次恢复擦除。
接下来,在S394,擦除开始时间(erase_start_time)被记录为当前时间(current_time)。
另一方面,如果在步骤S324中没有暂停的擦除(S324=N),则在S326确认与所选择的裸片对应的队列中是否存在擦除任务(Erase_q[nand_die].size()>0)。
如果在队列中有擦除任务(S326=时),则擦除在S392开始,如果在队列中没有擦除任务(S326=否),则过程返回到S310的开始。
在下文中,将参考图14至图18说明用于进行控制使得裸片的擦除时段在需要完成对第N超级块的编程的时间(即,t1)内重叠最小的方法。
图14是用于说明根据本公开的一些其他实施例的存储器控制器的操作的图。
在图14中,如本文的许多其他实施例,第一裸片可以是DIE0并且可以至少包括第一块(例如,BLK0)和第二块(例如,BLK1),并且第二裸片可以是DIE1并且可以包括第三块(例如,BLK0)和第四块(例如,BLK1)。参考图14,裸片DIE0、DIE1、DIE2和DIE3的擦除时段ERS10、ERS11、ERS12和ERS13被设置成在预定时间t1内彼此不重叠。例如,当裸片DIE0执行第N+1超级块的擦除ERS10时,其他裸片DIE1、DIE2和DIE3不执行第N+1超级块的擦除ERS11、ERS12和ERS13。因此,例如,在图14中,DIE0的第二块的第一擦除时段和DIE1的第四块的第一步擦除时段根本不重叠。类似地,在图14中,如果第三裸片可以是DIE2并且可以至少包括第五块(例如,BLK0)和第六块(例如,BLK1),则DIE1的第四块的第一擦除时段和DIE2的第六块的第一擦除时段完全不重叠。此外,在图14中,如果第四裸片可以是DIE3并且可以至少包括第七块(例如,BLK0)和第八块(例如,BLK1),则DIE2的第六块的第一擦除时段和DIE3的第八块的第一擦除时段完全不重叠。
具体地,如果第N超级块的编程需要100ms完成,则第N+1超级块的擦除也需要在100ms内完成。例如,如果假设存储器设备包括四个裸片并且一个裸片执行擦除操作所花费的时间是25ms,则四个裸片可以在完全不重叠的情况下执行擦除,因为每个25ms的4个时段总计为100ms。
然而,如果一个裸片执行擦除操作所花费的时间是30ms,则四个裸片不能执行完全不重叠的擦除,因为每个30ms的4个时段总计为120ms,因此超过了100ms的完成时间。将编程时间(100ms)与总擦除时间(120ms)进行比较时,四个裸片的擦除重叠至少20%(=20ms/100ms)。
以这种方式,可以考虑第N超级块的编程时间和每个裸片的擦除时间(即,擦除每个裸片上的第N+1超级块中包括的块的时间)来确定重叠擦除时段。
图15和图16示出了通过引入令牌概念(token concept)使得裸片的擦除时段重叠最小的控制。
在本文中描述的令牌概念可以被认为类似于计时器,诸如沙漏,用于在步擦除期间从总令牌的初始数目开始计数,并且在每个步擦除开始时为0或从0开始的偏移量。总令牌的初始数目和增加率二者都可以基于擦除时段的长度(例如,第二超级块的第二块和第四块的步擦除的持续时间)和/或基于编程时间的长度(例如,第一超级块的第一块和第三块的编程操作的持续时间)。
参考图15,例如,总令牌的初始数目可以被给定为10。总令牌的初始数目可以考虑第N超级块的编程时间和每个裸片的擦除时间(即,擦除每个裸片上的第N+1超级块中包括的块的时间)来确定。
在时间t21,第一裸片DIE0的第N+1超级块中包括的块被擦除。当DIE0擦除开始时,初始数目减少预定消耗的令牌。因为初始数目是10,并且预定消耗的令牌数目是10,所以总令牌在时间t21变为0(∵10-10=0)。
如果擦除进行,则总令牌的数目随着擦除进行时间逐渐增加。
或者,不仅考虑到擦除进行时间而且考虑到正在执行擦除操作的裸片的数目,总令牌的数目可以增加。即,可以建立“擦除进行时间×擦除操作裸片的数目=增加的令牌的数目”。例如,如果一个裸片执行擦除特定时间,则总令牌的数目可以增加1(∵1×1=1)。然而,如果两个裸片执行擦除特定时间,则总令牌的数目可以增加2(∵1×2=2)。在下文中,将说明考虑到擦除进行时间和正在执行擦除操作的裸片的数目来增加总令牌的数目的情况。
在时间t22,考虑到擦除进行时间和执行擦除操作的裸片的数目,总令牌的数目变为5(∵5×1=5)。由于总令牌的数目未达到阈值令牌数目(例如,10),所以不擦除第二裸片DIE1的第N+1超级块中包括的块。
在时间t23,考虑到擦除进行时间和执行擦除操作的裸片的数目,总令牌的数目变为10。由于总令牌的数目已达到阈值令牌的数目(例如,10),所以擦除第二裸片DIE1的第N+1超级块中包括的块。当DIE1擦除开始时,总令牌减少预定消耗的令牌,并且变为0(∵10-10=0)。
在时间t24,总令牌的数目变为5。
在时间t25,总令牌的数目变为10。由于总令牌的数目已达到阈值令牌的数目(例如,10),所以擦除第三裸片DIE2的第N+1超级块中包括的块。当DIE2擦除开始时,总令牌减少预定消耗的令牌,并且变为0(10-10=0)。
在时间t26,总令牌的数目变为5。
在时间t27,由于总令牌的数目变为10,所以擦除第四裸片DIE3的第N+1超级块中包括的块。
在时间t28,总令牌的数目变为5。
在时间t29,由于总令牌的数目达到了10,虽然未单独示出,但是对第N+1超级块中包括的块的擦除已完成,并且第一裸片DIE0的第N+2超级块中包括的块可以被擦除。
图16中说明的方法与图15中说明的方法之间的最大区别是总令牌的初始数目不同。参考图16,例如,总令牌的初始数目可以被给定为15。总令牌的初始数目是考虑了第N超级块的编程时间和每个裸片的擦除时间(即,擦除每个裸片上的第N+1超级块中包括的块的时间)来确定。在图16中,如本文的许多其他实施例,第一裸片可以是DIE0并且可以至少包括第一块(例如,BLK0)和第二块(例如,BLK1),并且第二裸片可以是DIE1并且可以包括第三块(例如,BLK0)和第四块(例如,BLK1)。如下面说明的,在图16中,例如,DIE0的第二块的第一擦除时段与DIE1的第四块的第一步擦除时段仅部分重叠。类似地,在图16中,如果第三裸片可以是DIE2并且可以至少包括第五块(例如,BLK0)和第六块(例如,BLK1),则DIE1的第四块的第一擦除时段和DIE2的第六块的第一擦除时段仅部分重叠。此外,在图16中,如果第四裸片可以是DIE3并且可以至少包括第七块(例如,BLK0)和第八块(例如,BLK1),则DIE2的第六块的第一擦除时段和DIE3的第八块的第一擦除时段仅部分重叠。
参考图16,在时间t21,第一裸片DIE0的第N+1超级块中包括的块被擦除。当DIE0擦除开始时,总令牌从初始数目15减少预定消耗的令牌10,并且在时间t21变为5(∵15-10=5)。
考虑到擦除进行时间和执行擦除操作的裸片的数目,总令牌的数目增加。
在时间t22,考虑到擦除进行时间和执行擦除操作的裸片的数目,总令牌增加5(∵5×1=5),并且总令牌的数目变为10。由于总令牌的数目已达到阈值令牌的数目(例如,10),所以擦除第二裸片DIE1的第N+1超级块中包括的块。由于擦除开始,所以总令牌减少了预定消耗的令牌10,并且变为0(∵10-10=0)。在时间t22,在第一裸片DIE0的擦除没有结束的情况下,可以知道第二裸片DIE1的擦除开始。
在时间t23,考虑到擦除进行时间和执行擦除操作的裸片的数目,总令牌增加10(∵5×2=10),并且总令牌的数目变为10。由于总令牌的数目已达到阈值令牌的数目(例如,10),所以擦除第三裸片DIE2的第N+1超级块中包括的块。由于擦除开始,所以总令牌减少了预定消耗的令牌10,并且变为0(∵10-10=0)。在时间t23,在第二裸片DIE1的擦除没有结束的情况下,可以知道第三裸片DIE2的擦除开始。
在时间t24,考虑到擦除进行时间和执行擦除操作的裸片的数目,总令牌增加10(∵5×2=10),并且总令牌的数目变为10。擦除第四裸片DIE3的第N+1超级块中包括的块。擦除开始,并且同时,总令牌减少预定消耗的令牌10,并且变为0(∵10-10=0)。
类似地,在时间t25,总令牌变为10,并且擦除第一裸片DIE0的第N+2超级块中包括的块。
在时间t26,总令牌变为10,并且擦除第二裸片DIE1的第N+2超级块中包括的块。
在时间t27,总令牌变为10,并且擦除第三裸片DIE2的第N+2超级块中包括的块。
在时间t28,总令牌变为10,并且擦除第四裸片DIE3的第N+2超级块中包括的块。
如使用图15和图16说明的,通过考虑了总令牌的初始数目、擦除开始时消耗的令牌数目和擦除进行时间中的至少一者,来将令牌的数目设置为增加,可以控制多个裸片的擦除时段的重叠程度。例如,如下面说明的,当第一裸片包括第一块和第二块并且第二裸片包括第三块和第四块时,重叠时段的相对和/或绝对重叠量改变或可以被改变。相对和/或绝对重叠量的改变可以是基于例如第一超级块的编程时间、第一裸片的第二块的擦除时段的长度以及第二裸片的第四块的擦除时段的长度(例如,当第一裸片的第二块和第二裸片的第四块被包括在第二超级块中时)。步擦除开始时的总令牌的数目可以基于诸如此类的因素而改变或被改变。
例如,如图15所示,通过将总令牌的初始数目设置为10,并且将擦除开始时消耗的令牌的数目设置为10,可以执行控制使得两个裸片(例如,DIE0和DIE1)的擦除时段不重叠。可以执行控制使得第一裸片DIE0的擦除结束,并且同时,第二裸片DIE1的擦除开始。
如图16所示,通过将总令牌的初始数目设置为15,并且将擦除开始时消耗的令牌的数目设置为10,可以执行控制使得两个裸片(例如,DIE0和DIE1)的擦除时段彼此重叠大约50%。
作为又一示例,当总令牌的初始数目被设置为12,并且在擦除开始时消耗的令牌的数目被设置为10时,可以执行控制使得两个裸片(例如,DIE0和DIE1)的擦除时段彼此重叠大约20%。
作为又一示例,当总令牌的初始数目被设置为8,并且在擦除开始时消耗的令牌的数目被设置为10时,可以执行控制使得擦除空闲时段(不对任何裸片执行擦除的时段)位于两个裸片(例如,DIE0和DIE1)的擦除时段之间。
图17和图18是用于说明根据本公开的其他实施例的存储器控制器的操作的流程图。
首先参考图17,假设对第N超级块的编程和对第N+1超级块的擦除正在队列中等待。
在S410检查是否正在执行擦除操作。
如果正在执行擦除操作(S410=是),则在图18的S422计算所有正在执行擦除操作的裸片(progressing_erase_die)的经过时间(elapsed_time)。经过时间(elapsed_time)是从当前时间(current_time)减去检查时间(check_time)。
接下来,在图18的S424计算剩余令牌(remain_tokens)(即,总令牌)的数目。
剩余令牌(remain_tokens)的先前值被加到与经过时间(elapsed_time)成比例增加的令牌的数目以确定剩余令牌(remain_tokens)的当前值。
具体地,增加令牌的数目可以是通过将在擦除开始的同时消耗的令牌(erase_consume_token)乘以经过时间(elapsed_time)和擦除时间(erase_time)的比率而获得的值。即,如果在擦除开始的同时消耗的令牌(erase_consume_token)为10,擦除时间(erase_time)为25ms,并且经过时间(elapsed_time)为5ms,则增加令牌的数目为2(∵2=10×5/25)。
然后,在图18的S426,当前时间(current_time)被记录为检查时间(check_time)。
再次参考图17,在S430检查是否有要被执行的剩余擦除。
如果有要被执行的剩余擦除(S340=是),则在S440选择没有执行擦除的记录(即,擦除计数(die_erase_count)小于1)的裸片。
接下来,在S450检查剩余令牌(Remain_tokens)(总令牌)是否等于或大于消耗的令牌(erase_consume_token)。
如果剩余令牌等于或大于消耗的令牌(S450=是),则在S460从剩余令牌的初始值中减去消耗的令牌来计算剩余令牌的当前值。
接下来,在S470擦除操作开始。
接下来,在S480当前时间(current_time)被记录为检查时间(check_time)。接下来,过程返回到S430。
另一方面,在步骤S430中如果没有要被执行的剩余擦除(S430=否),或者在步骤S450中如果剩余令牌小于消耗的令牌(S450=否),则过程结束。
另一方面,虽然已经说明了被分为多步的对第N+1超级块执行擦除的方法(参见图5至图13),以及用于控制使得裸片的擦除时段重叠最小的方法(参见图14至图18),但是这些方法可以相互组合使用。
例如,虽然图6示出了属于第一步擦除ERS1的第一裸片DIE0的擦除时段(N+1.first)与第二裸片DIE0的擦除时段(N+1.first)彼此重叠,但是属于第一步擦除ERS1的第一裸片DIE0的擦除时段(N+1.first)和第二裸片DIE0的擦除时段(N+1.first)可以彼此仅部分重叠或不完全重叠。或者,属于一些其他步擦除(例如,ERS4)的第一裸片DIE0的擦除时段(N+1.n)和第二裸片DIE1的擦除时段(N+1.n)可以彼此仅部分重叠或可以不完全重叠。
另一方面,在本公开的一些实施例中,存储器设备150的最大吞吐量(Max吞吐量)大于主机接口最大写入吞吐量。因此,即使不采用大容量的缓冲存储器,也可以以与上述方法相同的方式来控制擦除时段,并且可以使存储装置100的方案吞吐量达到主机接口的最大写入吞吐量。
虽然上面已经参考附图说明了与在本文中描述的发明构思相关的实施方式的示例,但是在本文中描述的发明构思不限于这些示例,并且可以以各种不同的方式产生或以其他方式表现出来。本领域技术人员将理解的是,在不改变在本文中描述的发明构思的技术思想和基本特征的情况下,可以以其他具体形式来实施这些示例。因此,在本文中描述的发明构思的公开优选实施例仅以一般和描述的意义使用,而不是出于限制的目的。
Claims (20)
1.一种存储器控制器,所述存储器控制器包括:
接口,所述接口用于与包括第一裸片和第二裸片的存储器设备通信,所述第一裸片包括第一块和第二块,并且所述第二裸片包括第三块和第四块;以及
控制模块,所述控制模块以第一超级块或第二超级块为单位管理所述存储器设备,所述第一超级块包括所述第一块和所述第三块,并且所述第二超级块包括所述第二块和所述第四块,
其中,所述控制模块在开始对所述第二超级块的编程之前完成对所述第一超级块的编程和对所述第二超级块的擦除,并且分多步执行对所述第二超级块的擦除,并且
其中,完成对所述第一超级块的编程和对所述第二超级块的擦除包括:
在对所述第一块的第一部分进行编程之后,执行所述第二块的第一步擦除,
在所述第二块的所述第一步擦除之后,对所述第一块的第二部分进行编程,以及
在对所述第一块的所述第二部分进行编程之后,执行所述第二块的第二步擦除。
2.根据权利要求1所述的存储器控制器,其中,完成对所述第一超级块的编程和对所述第二超级块的擦除还包括:
在对所述第三块的第三部分进行编程之后,执行所述第四块的第一步擦除,
在所述第四块的所述第一步擦除之后,对所述第三块的第四部分进行编程,以及
在对所述第三块的所述第四部分进行编程之后,执行所述第四块的第二步擦除。
3.根据权利要求2所述的存储器控制器,其中,所述第二块的第一步擦除时段与所述第四块的第一步擦除时段仅部分重叠或彼此不重叠。
4.根据权利要求1所述的存储器控制器,所述存储器控制器还包括:
第一队列,所述第一队列存储所述第一裸片的编程命令,以及
第二队列,所述第二队列存储所述第一裸片的擦除命令并且与所述第一队列不同。
5.根据权利要求4所述的存储器控制器,所述存储器控制器还包括:
第三队列,所述第三队列存储所述第二裸片的编程命令,以及
第四队列,所述第四队列存储所述第二裸片的擦除命令并且与所述第三队列不同。
6.根据权利要求1所述的存储器控制器,其中,执行所述第二块的所述第一步擦除包括:
在对所述第一块的所述第一部分进行编程之后,当所述第一裸片的当前吞吐量大于阈值吞吐量时,执行所述第二块的所述第一步擦除。
7.根据权利要求6所述的存储器控制器,其中,对所述第一块的所述第二部分进行编程包括:
在所述第一步擦除期间,当所述第一裸片的当前吞吐量变得等于或小于所述阈值吞吐量时,对所述第一块的所述第二部分进行编程。
8.根据权利要求1所述的存储器控制器,其中,当执行所述第一块的编程时,所述第一裸片的当前吞吐量增加,并且当执行所述第二块的擦除时,所述第一裸片的当前吞吐量降低,并且
其中,完成对所述第一超级块的编程和对所述第二超级块的擦除包括:
交替地执行对所述第一块的编程和对所述第二块的擦除以便所述第一裸片的当前吞吐量位于阈值吞吐量与最大吞吐量之间。
9.根据权利要求1所述的存储器控制器,其中,所述第一步擦除的第一持续时间比所述第二步擦除的第二持续时间短。
10.根据权利要求9所述的存储器控制器,其中,完成对所述第一超级块的编程和对所述第二超级块的擦除还包括:
在所述第二块的所述第二步擦除之后,对所述第一块的第三部分进行编程;以及
在对所述第一块的所述第三部分进行编程之后,执行所述第二块的第三步擦除,
其中,所述第二步擦除的所述第二持续时间比所述第三步擦除的第三持续时间长。
11.根据权利要求9所述的存储器控制器,其中,当执行所述第一块的编程时,所述第一裸片的当前吞吐量增加,并且当执行所述第二块的擦除时,所述第一裸片的当前吞吐量降低,
所述控制模块设置与所述第一块的所述第一部分相对应的第一最大吞吐量和与所述第一块的所述第二部分相对应的第二最大吞吐量,使得所述第二最大吞吐量高于所述第一最大吞吐量,
当所述第一块的所述第一部分被编程时,所述第一裸片的当前吞吐量变为所述第一最大吞吐量,并且当所述第二块开始所述第一步擦除时,所述第一裸片的当前吞吐量从所述第一最大吞吐量减少,并且
当所述第一块的所述第二部分被编程时,所述第一裸片的当前吞吐量变为所述第二最大吞吐量,并且当所述第二块开始所述第二步擦除时,所述第一裸片的当前吞吐量从所述第二最大吞吐量减少。
12.根据权利要求1所述的存储器控制器,其中,所述存储器设备的最大吞吐量大于主机接口最大写入吞吐量。
13.一种存储器设备,所述存储器设备包括:
第一裸片,所述第一裸片包括第一块和第二块;以及
第二裸片,所述第二裸片包括第三块和第四块,
其中,所述存储器设备以第一超级块或第二超级块为单位被控制,所述第一超级块包括所述第一块和所述第三块,并且所述第二超级块包括所述第二块和所述第四块,
在开始对所述第二超级块的编程之前,完成对所述第一超级块的编程和对所述第二超级块的擦除,并且分多步执行对所述第二超级块的擦除,并且
其中,完成对所述第一超级块的编程和对所述第二超级块的擦除包括:
在对所述第一块的第一部分进行编程之后,执行所述第二块的第一步擦除,
在所述第二块的所述第一步擦除之后,对所述第一块的第二部分进行编程,以及
在对所述第一块的所述第二部分进行编程之后,执行所述第二块的第二步擦除。
14.根据权利要求13所述的存储器设备,其中,所述第一步擦除的第一持续时间比所述第二步擦除的第二持续时间短。
15.一种存储装置,所述存储装置包括:
存储器设备,所述存储器设备包括第一裸片和第二裸片,所述第一裸片包括第一块和第二块,并且所述第二裸片包括第三块和第四块;以及
控制器,所述控制器通过第一超级块或第二超级块管理所述存储器设备,所述第一超级块包括所述第一块和所述第三块,并且所述第二超级块包括所述第二块和所述第四块,
其中,所述控制器在开始对所述第二超级块的编程之前,完成对所述第一超级块的编程和对所述第二超级块的擦除,并且分多步执行对所述第二超级块的擦除,并且
其中,对所述第一超级块的编程和对所述第二超级块的擦除包括:
在对所述第一块的第一部分进行编程之后,执行所述第二块的第一步擦除,
在所述第二块的所述第一步擦除之后,对所述第一块的第二部分进行编程,以及
在对所述第一块的所述第二部分进行编程之后,执行所述第二块的第二步擦除。
16.根据权利要求15所述的存储装置,其中,对所述第一超级块的编程和对所述第二超级块的擦除还包括:
在对所述第三块的第三部分进行编程之后,执行所述第四块的第一步擦除,
在所述第四块的所述第一步擦除之后,对所述第三块的第四部分进行编程,以及
在对所述第三块的所述第四部分进行编程之后,执行所述第四块的第二步擦除,并且
其中,所述第二块的第一步擦除时段与所述第四块的第一步擦除时段仅部分重叠或彼此不重叠。
17.根据权利要求15所述的存储装置,其中,所述控制器还包括:
第一队列,所述第一队列存储所述第一裸片的编程命令,以及
第二队列,所述第二队列存储所述第一裸片的擦除命令并且与所述第一队列不同,
其中,所述控制器检查所述编程命令和所述擦除命令并且执行调度操作。
18.根据权利要求15所述的存储装置,其中,执行所述第二块的所述第一步擦除包括:在对所述第一块的所述第一部分进行编程之后,当所述第一裸片的当前吞吐量大于阈值吞吐量时,执行所述第二块的所述第一步擦除,并且
对所述第一块的所述第二部分进行编程包括:在所述第一步擦除期间,当所述第一裸片的当前吞吐量变得等于或小于所述阈值吞吐量时,对所述第一块的所述第二部分进行编程。
19.根据权利要求15所述的存储装置,其中,对所述第一超级块的编程和对所述第二超级块的擦除还包括:
在所述第二块的所述第二步擦除之后,对所述第一块的第三部分进行编程;以及
在对所述第一块的所述第三部分进行编程之后,执行所述第二块的第三步擦除,并且
其中,所述第二步擦除的第二持续时间比所述第一步擦除的第一持续时间和所述第三步擦除的第三持续时间长。
20.根据权利要求15所述的存储装置,其中,当对所述第一块执行编程时,所述第一裸片的当前吞吐量增加,并且当对所述第二块执行擦除时,所述第一裸片的当前吞吐量降低,
所述控制器设置与所述第一块的所述第一部分相对应的第一最大吞吐量和与所述第一块的所述第二部分相对应的第二最大吞吐量,使得所述第二最大吞吐量高于所述第一最大吞吐量,
当所述第一块的所述第一部分被编程时,所述第一裸片的当前吞吐量变为所述第一最大吞吐量,并且当所述第二块开始所述第一步擦除时,所述第一裸片的当前吞吐量从所述第一最大吞吐量减少,并且
当所述第一块的所述第二部分被编程时,所述第一裸片的当前吞吐量变为所述第二最大吞吐量,并且当所述第二块开始所述第二步擦除时,所述第一裸片的当前吞吐量从所述第二最大吞吐量减少。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0116067 | 2020-09-10 | ||
KR1020200116067A KR20220033784A (ko) | 2020-09-10 | 2020-09-10 | 메모리 컨트롤러, 메모리 장치 및 스토리지 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114168502A true CN114168502A (zh) | 2022-03-11 |
Family
ID=77738950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110881497.2A Pending CN114168502A (zh) | 2020-09-10 | 2021-08-02 | 存储器控制器、存储器设备和存储装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11468952B2 (zh) |
EP (1) | EP3968329A1 (zh) |
KR (1) | KR20220033784A (zh) |
CN (1) | CN114168502A (zh) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4364384B2 (ja) | 2000-02-01 | 2009-11-18 | 富士通マイクロエレクトロニクス株式会社 | 短時間でイレーズ動作を行う不揮発性メモリ |
KR100907028B1 (ko) | 2007-09-28 | 2009-07-10 | 주식회사 휴원 | 플래시 메모리의 멀티뱅크 소거연산 관리방법 |
US8364888B2 (en) | 2011-02-03 | 2013-01-29 | Stec, Inc. | Erase-suspend system and method |
KR101264019B1 (ko) | 2011-04-26 | 2013-05-13 | 에스케이하이닉스 주식회사 | 반도체 장치의 동작 방법 |
KR101262788B1 (ko) | 2012-03-07 | 2013-05-09 | (주)피델릭스 | 소거 신뢰성이 향상되는 플래시 메모리 장치 및 그의 소거방법 |
KR102147988B1 (ko) | 2013-04-09 | 2020-08-26 | 삼성전자주식회사 | 불휘발성 저장 장치 및 그것의 데이터 저장 방법 |
US9431113B2 (en) * | 2013-08-07 | 2016-08-30 | Sandisk Technologies Llc | Data storage system with dynamic erase block grouping mechanism and method of operation thereof |
KR20190031693A (ko) | 2017-09-18 | 2019-03-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102611345B1 (ko) | 2018-07-31 | 2023-12-08 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11030094B2 (en) * | 2018-07-31 | 2021-06-08 | SK Hynix Inc. | Apparatus and method for performing garbage collection by predicting required time |
KR102559549B1 (ko) * | 2018-09-12 | 2023-07-26 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 블록 상태를 관리하는 방법 및 장치 |
-
2020
- 2020-09-10 KR KR1020200116067A patent/KR20220033784A/ko active Search and Examination
-
2021
- 2021-03-03 US US17/191,412 patent/US11468952B2/en active Active
- 2021-08-02 CN CN202110881497.2A patent/CN114168502A/zh active Pending
- 2021-09-10 EP EP21196171.9A patent/EP3968329A1/en active Pending
-
2022
- 2022-09-07 US US17/939,012 patent/US20230005547A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230005547A1 (en) | 2023-01-05 |
US11468952B2 (en) | 2022-10-11 |
EP3968329A1 (en) | 2022-03-16 |
KR20220033784A (ko) | 2022-03-17 |
US20220076755A1 (en) | 2022-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11435908B2 (en) | Geometry-aware command scheduling | |
US10296231B2 (en) | Data-storage device and data maintenance method thereof | |
US8769318B2 (en) | Asynchronous management of access requests to control power consumption | |
JP6743010B2 (ja) | 3dメモリに対するアクセス動作のための階層モードに係るメモリデバイス、メモリコントローラ、システム、方法、装置 | |
US8966163B2 (en) | Non-volatile memory device and method for programming the same | |
US10838653B2 (en) | Electronic device and operating method thereof | |
US10628081B2 (en) | Managing internal command queues in solid state storage drives | |
JP2020155182A (ja) | メモリシステム及び不揮発性メモリ | |
US20140032821A1 (en) | Nonvolatile memory device and method of operating the same | |
US20210216239A1 (en) | Host controlled garbage collection in a solid state drive | |
CN107741913A (zh) | 用来管理一记忆装置的方法、记忆装置与控制器 | |
CN110047547A (zh) | 数据储存装置、其操作方法和非易失性存储器件 | |
KR20200015190A (ko) | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
CN104346288A (zh) | 用来管理一记忆装置的方法以及记忆装置与控制器 | |
US10127984B2 (en) | Method for operating storage device determining wordlines for writing user data depending on reuse period | |
US20190354483A1 (en) | Controller and memory system including the same | |
TW201033806A (en) | Solid state storage system for uniformly using memory area and method controlling the same | |
EP4320508A1 (en) | Method and apparatus to reduce nand die collisions in a solid state drive | |
CN114168502A (zh) | 存储器控制器、存储器设备和存储装置 | |
US9423961B2 (en) | Method to enhance programming performance in multilevel NVM devices | |
US11954366B2 (en) | Data storage device with multi-commands | |
US10387076B2 (en) | Methods for scheduling data-programming tasks and apparatuses using the same | |
CN118020063A (zh) | 固态驱动器中的主机控制的垃圾收集 | |
JP2023553681A (ja) | メモリシステムの電力管理 |
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 |