CN107980126A - 多裸芯储存装置的调度方案 - Google Patents
多裸芯储存装置的调度方案 Download PDFInfo
- Publication number
- CN107980126A CN107980126A CN201680015734.4A CN201680015734A CN107980126A CN 107980126 A CN107980126 A CN 107980126A CN 201680015734 A CN201680015734 A CN 201680015734A CN 107980126 A CN107980126 A CN 107980126A
- Authority
- CN
- China
- Prior art keywords
- scheduling scheme
- memory
- scheduling
- scheme
- data
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- 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/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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7206—Reconfiguration of flash memory system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种可以由数据储存装置进行的方法包括将数据储存装置配置为使用第一调度方案并且,响应于检测触发事件,将数据储存装置配置为使用第二调度方案。第一调度方案和第二调度方案的一个用于在数据储存装置的存储器的多个裸芯处调度具有相同操作类型的存储器操作的性能。第一调度方案和第二调度方案的另外一个用于择机地调度存储器操作。
Description
技术领域
本公开通常涉及多裸芯储存装置的(多个)调度方案。
背景技术
数据储存装置可以配置为从存取装置接收读取命令和/或写入命令,以在数据储存装置的存储器(例如,闪存)的多个裸芯处进行。作为说明性的非限制性示例,除了进行从存取装置接收的读取命令和/或写入命令之外,数据储存装置可以进行管理操作,诸如逻辑到物理的表的读取和/或写入操作、垃圾收集操作、擦除操作和/或验证操作(例如,验证操作以确认写入存储器的数据不包括错误)。从存取装置接收的命令(例如,读取命令和/或写入命令)的调度,与调度一个或多个管理操作相结合,可以导致具有“空闲”时期和“忙碌”时期的不同的存储器装置。空闲时期可以减少存储器利用率,其可以对应于减少数据储存装置的性能(例如,读取性能和/或写入性能)。
附图说明
图1是***的特定说明性实施例的方框图,该***配置为在数据储存装置的存储器处进行的调度操作;
图2A-2B是说明操作的示例的定时图,该操作可以在图1的数据储存装置处进行;
图3是说明操作的示例的另一个定时图,该操作可以在图1的数据储存装置处进行;
图4是说明图1的数据储存装置的操作方法的特定示例的流程图;
图5是说明图1的数据储存装置的操作方法的另一个特定示例的流程图;
图6是说明图1的数据储存装置的操作方法的另一个特定示例的流程图;
图7是说明图1的数据储存装置的操作方法的另一个特定示例的流程图;以及
图8是说明图1的数据储存装置的操作方法的另一个特定示例的流程图。
具体实施方式
特定实现方式将参考附图进行描述。在描述中,共同的特征由贯穿附图的共同的附图标记指定。如本文所使用的,用于修饰诸如结构、组件、操作等元素的序数项(例如,“第一”、“第二”、“第三”等)其自身不表明元素相对于另一个元素的任何优先权或者顺序,而只是将元素与具有相同名字(但是用于序数项)的另一个元素区分。
参照图1,描绘了***的特定说明性实施例,该***通常指定为100。***100包括数据储存装置102和存取装置150。数据储存装置102包括控制器120和耦接于控制器120的存储器104,诸如非易失性存储器。存储器104包括多个存储器裸芯103。
控制器120可以配置为调度要在多个存储器裸芯103处执行的操作(例如,存储器操作)。操作可以包括从存取装置150接收的操作(例如,读取操作和/或写入操作)和由数据储存装置102产生的管理操作。作为说明性的非限制性示例,例如,管理操作可以包括读取管理操作、写入管理操作、垃圾收集操作、擦除操作(例如,区块擦除操作)和验证操作(例如,检验操作)。
可以进行读取管理操作和写入管理操作以使用和/或维持一个或多个表和/或映射,诸如多个存储器裸芯103的逻辑到物理的映射(例如,逻辑到物理的映射表)、物理到逻辑的映射(例如,物理到逻辑的映射表)、自由区块列表等。由于一个或多个表和/或映射的大小,一个或多个表和/或映射可以储存在存储器104中。为了使用特定的表和/或映射,控制器120可以从存储器104读取特定的表和/或映射的部分,并且可以在诸如随机存取存储器(RAM)(例如,高速缓存存储器)的控制器120的存储器(例如,如本文所描述的第二存储器160)处储存该部分。
可以进行垃圾收集操作以创建自由区块。例如,垃圾收集操作可以包括读取和写入操作,以从一个或多个区块移动和合并数据至单个区块中。擦除操作可以配置为擦除数据的区块。擦除操作可以比写入操作更长。作为说明性的非限制性示例,例如,执行擦除操作可以比执行单级单元(SLC)的写入操作多花费至少十倍的时间。验证操作可以配置为验证写入多个存储器裸芯103的数据(例如,以确定新编程的数据是否没有错误)。例如,验证操作可以包括读取之前写入多个存储器裸芯103的特定裸芯的数据并且确定读取数据是否包括错误。
根据对应于第一调度方案的第一调度模式或者根据对应于第二调度方案的第二调度模式,控制器120可以配置为调度一个或多个操作。在一些实现方式中,第一调度模式可以与机会型的调度方案相关联,并且第二调度模式可以与流水线式的调度方案(例如,固定的调度方案)相关联。机会型的调度方案可以配置为择机地调度一个或多个操作。例如,基于“下一个可用裸芯”的判优(arbitration)(例如,基于裸芯成为可用于接收和/或执行操作的顺序而将操作调度至多个裸芯的方案)和/或基于要被调度的多个操作的优先级,机会型的调度方案可以配置为用于调度不同类型的操作和/或具有不同持续时间的多个操作,机会型的调度方案可以配置为以独立的方式对待多个存储器裸芯103的每个裸芯,并且独立于在多个存储器裸芯103的其他裸芯处调度(或执行)的操作,在一个裸芯处调度操作。
流水线式的调度方案(例如,固定的调度方案)可以配置为在多个存储器裸芯103处调度具有诸如擦除类型、验证类型、读取类型、写入类型等的相同操作类型的存储器操作的集合。例如,流水线式的调度方案可以配置为用于根据预定顺序(例如,固定顺序)的调度操作。例如,预定顺序可以表明调度不同类型的操作的顺序。为了说明,可以调度擦除操作的集合,接下来是验证操作的集合。此外或者可替代地,流水线式的调度方案可以配置为用于同时调度相同类型的操作至多个存储器裸芯103的每个裸芯,例如,多个存储器裸芯103的多个裸芯处的操作的每一个的执行可以至少适时地部分重叠。
在一些实现方式中,控制器120可以调度序列写入操作,以在多个存储器裸芯103处进行。作为说明性的非限制性示例,例如,控制器120可以检测到,序列写入操作将基于对应于被写入存储器104的数据的一个或多个写入地址、基于被写入存储器104的数据的大小、或者其结合来进行。如果序列写入由控制器120调度并且在多个存储器裸芯103处进行,则使用单个调度模式(例如,单个调度方案)以调度与进行序列写入操作相关联的序列写入操作和管理操作可以导致多个存储器裸芯103的一个或多个裸芯的空闲时期,其可以减少存储器104的存储器利用率。
例如,如果第一调度模式(对应于机会型的调度方案)用于调度序列写入,则擦除操作可以在多个存储器裸芯103的特定裸芯上进行,同时写入操作在多个存储器裸芯103的其他裸芯上进行。如果机会型的调度方案配置为以循环的方式(例如,轮循(round robin)方法)将操作调度至多个存储器裸芯,则其他裸芯可以在等待擦除操作完成时经历空闲时段,因为擦除操作比在其他裸芯处执行的写入操作更长。作为另一个示例,如果第一调度模式(对应于机会型的调度方案)用于调度序列写入,则验证操作可以在多个存储器裸芯103的特定裸芯处进行,同时在若干写入操作后的写入操作在特定裸芯处进行。验证操作可以包括从特定裸芯读取数据,该特定裸芯需要发送读取命令至特定裸芯并且在控制器120的储存位置(例如,缓冲器)处储存读取数据。在特定裸芯处进行读取操作以及经由在控制器120和存储器104之间的总线通信读取数据可以引起可以进行写入操作(作为序列写入的部分)的其他裸芯的空闲时期。
作为另一个示例,如果第二调度模式(对应于流水线式的调度方案)用于调度序列写入操作,则控制器120可以进行管理操作,该管理操作使得控制器120进行读取操作,从多个存储器裸芯103的特定裸芯读取数据。例如,控制器120可以读取(例如,取出)对应于表和/或映射或者由控制器120执行的代码的数据,以进行序列写入操作。在特定裸芯处进行读取操作以及经由在控制器120和存储器104之间的总线通信读取数据可以引起可以进行写入操作(作为序列写入的部分)的其他裸芯的空闲时期。
控制器120可以配置为在对应于第一调度方案的第一调度模式和对应于第二调度方案的第二调度模式之间切换调度模式(例如,选择的调度方案)。在一些实现方式中,控制器120可以基于一个或多个触发事件改变调度模式。作为说明性的非限制性示例,例如,一个或多个触发事件可以基于写入操作、擦除操作和/或验证操作的计数。作为另一个示例,一个或多个触发事件可以与写入数据至(多个存储器裸芯103的)裸芯的区块的最后页相关联。在一些实现方式中,触发事件可以对应于被满足的条件(例如,触发条件),诸如若干写入操作满足阈值。
选择的调度模式(对应于选择的调度方案)可以用于调度在存储器104处进行的一个或多个操作。例如,调度和/或进行在第一调度模式中的诸如擦除操作和/或验证操作的某一操作可以导致一个或多个裸芯是空闲的,这可以减少数据储存装置102的存储器利用率。使用第二调度模式以调度此类操作可以减少空闲周期的发生和/或持续时间,这可以改善数据储存装置102的存储器利用率。为了说明,控制器120可以基于确定擦除操作将被调度来从第一调度模式切换至第二调度模式,并且可以根据第二调度方案来调度擦除操作,如参考图2A-2B所述。作为另一个示例,控制器120可以基于确定验证操作(例如,验证操作)将被调度来从第一调度模式切换至第二调度模式,并且可以根据第二调度方案来调度验证操作,如参考图3所述。此外或者可替代地,控制器120可以基于检测一个或多个触发事件来从第二调度模式切换到第一调度模式,如本文所述。
响应于检测触发事件,可以选择(并且应用)多个调度方案的特定调度方案。例如,如果触发事件与被调度的诸如特定管理操作的特定操作相关联,则特定调度方案可以基于被调度的特定操作选择。在特定操作被调度后,可以选择不同的调度方案,诸如在特定调度方案或默认调度方案之前应用的调度方案。在多个调度方案之间切换可以使能采用管理操作从存取装置150接收的读取/写入操作(和/或其他操作以使能从存取装置接收读取/写入操作)的调度执行,以导致与使用单个调度方案的数据储存装置相比,有较高的存储器利用率。
数据储存装置102和存取装置150可以经由诸如总线或无线连接的连接(例如,通信路径110)可操作地耦接。例如,数据储存装置102可以包括存取接口108,该存取接口108经由在数据储存装置102和存取装置150之间的通信路径110使能通信,诸如当存取接口108通信地耦接于存取装置150时。在一些实现方式中,数据储存装置102可以嵌入存取装置150内,诸如根据联合电子设备工程委员会(JEDEC)固态技术协会通用闪存存储(UFS)配置。或者,数据储存装置102可以是从存取装置可移除的(即,“可移除地”耦接至存取装置150)。作为示例,根据可移除的通用串行总线(USB)配置,数据储存装置102可以是移除的耦接至存取装置150。在一些实现方式中,数据储存装置102可以包括或对应于可以包括在存取装置150中的或者与存取装置150不同(并且可存取于存取装置150)的固态驱动器(SSD)。作为说明性的非限制性示例,例如,数据储存装置可以包括或对应于SSD,其可以用作嵌入式储存驱动器(例如,移动嵌入式储存驱动器)、企业储存驱动器、客户储存驱动器或者云储存驱动器。在一些实现方式中,数据储存装置102可以间接地耦接至存取装置150,例如经由网络。例如,数据储存装置102可以是数据中心储存***、企业储存***或储存区域网络的网络连接储存(NAS)装置或组件(例如,固态驱动器(SSD)装置)。
在一些实现方式中,数据储存装置102可以配置为作为嵌入式存储器耦接至存取装置150,诸如(JEDEC固态科技联盟的商标,阿林顿,弗吉尼亚州)和eSD,作为说明性示例。为了说明,数据储存装置102可以对应于eMMC(嵌入式多媒体卡)装置。作为另一个示例,数据储存装置102可以对应于存储器卡,诸如安全数字卡、卡、miniSDTM卡(SD-3C LLC的商标,威尔明顿,特拉华州)、MultiMediaCardTM(MMCTM)卡(JEDEC固态科技联盟的商标,阿林顿,弗吉尼亚州)或(CF)卡(晟碟公司的商标,米尔皮塔斯,加利福尼亚州)。数据储存装置102可以按照JEDEC工业规范操作。例如,数据储存装置102可以按照JEDEC eMMC规范、JEDEC通用闪存储存(UFS)规范、一个或多个其他规范、或其结合来操作。
作为说明性的非限制性示例,在一些实现方式中,数据储存装置102和存取装置150可以配置为使用一个或多个协议进行通信,诸如eMMC协议、通用闪存储存(UFS)协议、通用串行总线(USB)协议、串行高级技术附件(SATA)协议和/或其他协议。一个或多个协议可以包括标准化协议和/或非标准化协议,诸如专有协议。在一些实现方式中,数据储存装置102和存取装置150可以配置为使用双通道通信进行通信(例如,两个装置可以发出和接收来自其他装置的命令)。
存取装置150可以包括存储器接口(未示出),并且可以配置为经由存储器接口与数据储存装置102进行通信,以从数据储存装置的存储器104读取数据并且写入数据至数据储存装置的存储器104。例如,存取装置150可以按照联合电子设备工程委员会(JEDEC)工业规范操作,诸如通用闪存储存(UFS)存取控制器接口规范。作为说明性的非限制性示例,作为其他示例,存取装置150可以按照一个或多个其他规范来操作,诸如安全数字(SD)存取控制器规范。存取装置150可以根据任何其他适合的通信协议与存储器104通信。
存取装置150可以包括处理器和存储器。存储器可以配置为可以由处理器执行的储存数据和/或指令。存储器可以是单个存储器,或者可以包括多个存储器,诸如一个或多个非易失性存储器、一个或多个易失性存储器、或其结合。存取装置150可以向数据储存装置102发出一个或多个命令,诸如用于擦除数据的一个或多个请求、从数据储存装置102的存储器104读取数据、或者写入数据至数据储存装置102的存储器104。例如,存取装置150可以配置为提供诸如用户数据132的数据,以在存储器104处储存或者请求从存储器104读取的数据。作为说明性的非限制性示例,存取装置150可以包括移动电话、音乐播放器、视频播放器、游戏控制台、电子书阅读器、个人数字助理(PDA)、诸如膝上型计算机或笔记本计算机的计算机、网络计算机、服务器、任何其他电子装置或其任何结合。
数据储存装置102的存储器104可以包括非易失性存储器。存储器104可以具有二维(2D)存储器配置。或者,存储器104可以具有另一个配置,诸如三维(3D)存储器配置。例如,存储器104可以包括三维(3D)存储器配置,该三维存储器配置在具有沉积在硅衬底之上有源区的存储器单元的阵列的一个或多个物理级别中单片地形成。在一些实现方式中,存储器104可以包括与存储器单元的操作相关联的电路(例如,储存元件)。
存储器104包括多个存储器裸芯103。例如,多个存储器裸芯103可以包括第一裸芯141、第二裸芯142、第三裸芯143、第四裸芯144。即使多个存储器裸芯103被描绘为包括四个裸芯,但是在其他实现方式中,多个存储器裸芯103可以包括多于或少于四个裸芯。在一些实现方式中,裸芯141-144的每一个可以包括储存元件的一个或多个组。储存元件的每个组可以包括多个储存元件(例如,存储器单元),并且可以配置作为页或者字线。
多个存储器裸芯103的裸芯的集合可以被逻辑地分组为元平面130。例如,裸芯的集合可以包括裸芯141-144。元区块可以包括位于一起处理的相同元平面的存储器裸芯中的多个区块的组,犹如其是单个的大区块。即使元平面130被示为具有四个裸芯,但是在其他实现方式中,元平面可以包括多于四个裸芯或者少于四个裸芯。此外或者可替代地,即使多个存储器裸芯103被示为包括一个元平面130,但是在其他实现方式中,多个存储器裸芯可以包括与对应的裸芯的集合各自相关联的多个元平面。
存储器104可以包括支持电路,诸如读取/写入电路140,以支持多个存储器裸芯103的操作。即使描绘为单个组件,但是读取/写入电路140可以被分割为存储器104的分离的组件,诸如读取电路和写入电路。读取/写入电路140可以外置于存储器104的多个存储器裸芯103的一个或多个裸芯。或者,多个存储器裸芯103的一个或多个单独的存储器裸芯可以包括对应的读取/写入电路,独立于在任意其他存储器裸芯处的任何其他的读取和/或写入操作,该读取/写入电路可操作为从在单独的存储器裸芯内的储存元件读取数据和/或写入数据至在单独的存储器裸芯内的储存元件。
控制器120经由总线106、接口(例如,诸如存储器接口109的接口电路)、另一个结构或者其结合,耦接至存储器104。例如,总线106可以包括多个不同的通道以使能控制器120与多个存储器裸芯103的每一个通信,平行于并且独立于与多个存储器裸芯103的其他存储器裸芯的通信。作为说明性的非限制性示例,在一些实现方式中,存储器104可以是闪存。
控制器120配置为从存取装置150接收数据和指令并且发送数据至存取装置150。例如,控制器120可以经由存取接口108发送数据至存取装置150,并且控制器120可以经由存取接口108从存取装置150接收数据。控制器120配置为发送数据和命令至存储器104并且从存储器104接收数据。例如,控制器120配置为发送数据和写入命令以引起存储器104将数据储存至存储器104的指定地址。写入命令可以指定存储器104的部分的物理地址(例如,存储器104的裸芯141-144的一个的字线的物理地址),该物理地址用于储存数据。作为说明性的非限制性示例,控制器120也可以配置为发送数据和命令至与背景扫描操作、垃圾收集操作和/或均匀磨损操作等相关联的存储器104。控制器120配置为发送读取命令至存储器104以从存储器104的指定地址存取数据。读取命令可以指定存储器104的部分的物理地址(例如,存储器104的裸芯141-144的一个的字线的物理地址)。
控制器120可以包括第二存储器160、错误校正码(ECC)引擎179、触发检测器180、缓冲随机存取存储器(BRAM)188和调度器190。第二存储器160可以包括固件162、一个或多个阈值170、调度方案164和一个或多个计数器172。一个或多个阈值170可以包括由触发检测器180和/或调度器190使用的一个或多个阈值,如本文进一步描述的。固件162可以包括或者对应于可以由控制器120执行的可执行指令,诸如包括在控制器120中的处理器。响应于上电数据储存装置102,固件162可以在第二存储器160处存取和/或在储存在第二存储器160中(例如,从另一个存储器接收的,诸如存储器104,并且储存在第二存储器160中)。例如,固件162可以储存在另一个存储器中(例如,存储器104、控制器120的只读存储器(ROM)、存取装置150的存储器或者另一个存储器),并且可以响应于数据储存装置102的上电,被加载到第二存储器160中。
多个调度方案164可以包括第一调度方案166和第二调度方案168。第一调度方案166可以包括或对应于机会型的调度方案。基于“下一个可用裸芯”的判优(例如,基于裸芯成为可用于接收和/或执行操作的顺序而将操作调度至多个裸芯的方案)和/或基于被调度的多个操作,机会型的调度方案可以配置为用于调度不同类型的操作和/或具有不同持续时间的多个操作。机会型的调度方案可以配置为以独立的方式处理多个存储器裸芯103的每个裸芯,并且独立于在多个存储器裸芯103的其他裸芯处调度(或执行)的操作,在一个裸芯处调度操作。机会型的调度方案的第一示例是轮循方法,其中操作以圆形的方式调度至多个存储器裸芯103。为了说明,第一操作可以调度至第一裸芯141,第二操作可以调度至第二裸芯142,第三操作可以调度至第三裸芯143,第四操作可以调度至第四裸芯144,第五操作可以调度至第一裸芯141等。机会型的调度方案的第二示例可以使用时间估计方法,其中操作被调度至被预测为空闲的下一个裸芯。为了说明,对于每个裸芯,控制器120可以估计持续时间,以完成由裸芯正在执行的操作。基于为特定裸芯确定的估计的持续时间(相较于估计在其他裸芯处进行的操作的持续时间),在多个存储器裸芯103的其他裸芯之前,控制器120可以调度操作至被预测为空闲的特定裸芯。
第二调度方案168可以包括或对应于流水线式的调度方案(例如,固定的调度方案)。流水线式的调度方案可以配置为用于根据预定顺序的调度操作。例如,预定顺序可以表明调度不同类型的操作的顺序。为了说明,可以调度擦除操作的集合,接下来是验证操作的集合。此外或者可替代地,流水线式的调度方案可以配置为用于同时调度相同类型的操作至多个存储器裸芯103的每一个,例如,多个存储器裸芯103处的操作的每一个的执行可以至少适时地部分重叠。在一些实现方式中,流水线式的调度方案可以使用轮循方法以调度相同类型的操作至多个存储器裸芯103的每一个。
除了储存多个调度方案164(例如,第一调度方案166和第二调度方案168),第二存储器160包括一个或多个计数器172。一个或多个计数器172可以配置为维持与存储器104的诸如第一裸芯141的裸芯相关联的写入操作的计数。在一些实现方式中,由一个或多个计数器172计数的每个写入操作可以与页写入操作相关联。一个或多个计数器172可以包括第一计数器174和第二计数器176。第一计数器174和第二计数器176的每一个可以配置为计数与第一裸芯141相关联的若干写入操作。例如,与第一裸芯141相关联的写入操作可以包括或对应于在第一裸芯141处调度、初始化或者执行的写入操作。为了说明,在第一裸芯141处调度、初始化或者执行诸如擦除操作的第一特定存储器操作后,第一计数器174可以配置为计数在第一裸芯141处调度(或进行或执行)的写入操作。
在第一裸芯141处调度、初始化或者执行诸如验证操作的第二特定存储器操作后,第一计数器176可以配置为计数在第一裸芯处调度(或进行或执行)的写入操作。在一些实现方式中,一个或多个计数器172可以包括用于多个存储器裸芯103的每个裸芯的至少一个计数器。例如,一个或多个计数器172可以包括用于(多个存储器裸芯103的)每个裸芯的计数器,该每个裸芯配置为如参考第一计数器174所述进行操作。或者,一个或多个计数器可以包括用于(多个存储器裸芯103的)每个裸芯的第二计数器,该每个裸芯配置为如参考第二计数器176所述进行操作。
调度器190可以配置为选择多个调度方案164的调度方案,并且使用选择的调度方案以调度在存储器104处进行的一个或多个操作。调度器190可以包括方案选择器191、模式寄存器192和存储器操作队列195。模式寄存器192可以包括(例如,储存)表明调度方案的模式值194,该调度方案由调度器190使用以调度在存储器104处进行的一个或多个操作。作为说明性的非限制性示例,第一模式值(例如,零值)可以对应于第一调度方案166,并且第二调度值(例如,一值)可以对应于第二调度方案168。方案选择器191可以配置为基于模式值194选择多个调度方案164的一个。存储器操作195可以包括表明被调度以进行的一个或多个操作的数据。一个或多个操作可以包括从存取装置150接收的一个或多个读取/写入操作、一个或多个管理操作或者其结合。
作为说明性的非限制性示例,可以由调度器190调度的操作可以包括擦除操作、压缩操作(例如,垃圾收集操作)、验证操作(例如,验证操作,诸如写入后读取(RBAX)操作或增强型写入后读取(EPWR)错误检查操作)、单级单元(SLC)写入操作、多级单元(MLC)写入操作(配置为每个单元写入2位(BPC)、每单元写入3位或每单元写入多于3位)、折叠操作、SLC读取操作、MLC读取操作、背景操作、均匀磨损操作、刷洗(scrubbing)操作、刷新操作、逻辑到物理的页读取/写入操作或另一个操作。作为说明性的非限制性示例,背景操作可以包括或对应于数据加扰操作、列替换操作、处理写入中止和/或程序故障的操作、坏块和/或备用块管理操作、错误检测码(EDC)操作、加密操作、错误恢复操作和/或地址映射操作(例如,逻辑到物理区块的映射)。在一些实现方式中,除了从存取装置150接收的读取/写入操作的操作可以分类为(例如,被称为)管理操作。
在写入操作期间,数据可以写入存储器104。在读取操作期间,数据可以从存储器104读取。在折叠操作期间,内部传送可以在存储器104处发生,其中储存在SLC页处的数据在一个或多个MLC页处读取和储存。在磨损均衡操作和垃圾收集操作期间,数据可以在存储器104内传送,为了均衡存储器104的不同区域的磨损和/或为了收集碎片整理的数据至存储器104的一个或多个合并的区域中。在擦除操作期间,数据可以从存储器104擦除。在验证操作(例如,检验操作)期间,写入存储器104的数据可以被检验精确度。例如,写入存储器104的数据可以被读取,并且解码操作和/或错误校正操作可以在解码的数据上进行。在BRAX操作或EPWR错误检查操作期间,写入存储器104的数据,诸如SLC数据和/或MLC数据,可以被检验精确度。
在刷洗操作期间,数据可以从存储器104读取,并且可以进行校正动作以补偿储存级别的干扰,诸如程序干扰、读取干扰和/或擦除干扰。在刷新操作期间,可以维持在存储器的部分处的数据储存级别以补偿电压移位和以校正不正确的数据值。在逻辑到物理的页读取/写入操作期间,数据可以从数据结构读取或写入至数据结构,该数据结构储存逻辑到物理的页信息,诸如逻辑到物理的表。
控制器120还包括触发检测器180。触发检测器180可以配置为检测一个或多个触发事件。例如,一个或多个触发事件可以包括第一触发事件181、第二触发事件182、第三触发事件183和第四触发事件184。即使一个或多个触发事件被描述为包括四个触发事件,但是在其他实现方式中,一个或多个触发事件可以包括多于或少于四个触发事件。即使触发检测器180被描绘为从调度器190分离,但是在其他实现方式中,触发检测器180可以包括在调度器190中。
一个或多个触发事件的每一个可以与改变选择的调度方案相关联。响应于检测触发事件的触发检测器180,触发检测器180可以发送模式改变数据186(例如,模式改变信号)至调度器190。模式改变数据186可以表明在模式寄存器192处储存的模式值194。
第一触发事件181可以与使用第二调度方案169的调度擦除操作相关联。例如,在与特定裸芯相关联的第一编号的写入操作(例如,页写入操作)后,擦除操作可以被调度为在特定裸芯处执行。例如,作为说明性的非限制性示例,在接着在特定裸芯上进行的最近进行的擦除操作后在特定裸芯上已经进行128个写入操作后,擦除操作可以被调度为在特定裸芯处执行。在一些实现方式中,第一触发事件181可以与第一计数器174的第一计数相关联。触发检测器180可以基于满足一个或多个阈值170的第一阈值的第一计数器174的第一计数,检测第一触发事件181。例如,如果第一计数器174响应于在第一裸芯141处进行(例如,调度、初始化、执行)的写入操作进行增量,则如果第一计数大于或等于第一阈值,则可以满足第一阈值。如果第一计数器174响应于在第一裸芯141处进行(例如,调度、初始化、执行)的写入操作进行减量,则如果第一计数小于或等于第一阈值,则可以满足第一阈值。响应于检测的第一触发事件181,触发检测器180可以产生模式改变数据186以表明第二调度方案168,这可以引起调度方案191选择(或维持)第二调度方案168。通过选择第二调度方案168,第二调度模式168可以用于调度在裸芯141-144处进行的擦除操作(例如,擦除操作的集合)。
在使用第二调度方案168来调度擦除操作(例如,擦除操作的集合)后,第二触发事件182可以与选择(例如,切换回)第一调度方案相关联。例如,在调度、为执行初始化或执行擦除操作后,第一调度方案166可以用于调度一个或多个操作。触发检测器180可以根据第二调度方案168,响应于调度、初始化或执行的擦除操作,检测第二触发事件182。响应于检测的第二触发事件182,触发检测器180可以产生模式改变数据186以表明第一调度方案166。此外或者可替代地,作为说明性的非限制性示例,响应于检测第二触发事件182,触发检测器180可以配置为引起第一计数器174被设定为诸如零的初始值(例如,默认值)。通过选择第一调度方案166,第一调度方案166可以用于以机会型的方式调度一个或多个操作。相应地,检测第一触发181接下来检测第二触发182可以使能调度器190,用以从第一调度方案166切换至第二调度方案168以调度擦除操作的集合,并且用以在调度擦除操作的集合后切换回第一调度方案166。与使用第一调度方案166相反,使用第二调度方案168以调度擦除操作的集合可以通过减少空闲周期改善数据储存装置102的存储器利用率,如果第一调度方案166用于调度擦除操作的集合,则该空闲周期可以发生。
第三触发事件183可以与使用第二调度方案168的调度验证操作相关联。例如,在与特定裸芯相关联的第二编号的写入操作(例如,页写入操作)后,验证操作可以被调度为在特定裸芯处执行。例如,作为说明性的非限制性示例,在接着在特定裸芯上进行的最近进行的验证操作后在特定裸芯上已经进行20个写入操作后,验证操作可以被调度为在特定裸芯处执行。在一些实现方式中,第三触发事件183可以与第二计数器176的第二计数相关联。触发检测器180可以基于满足一个或多个阈值170的第二阈值的第二计数器176的第二计数,检测第三触发事件183。例如,如果第二计数器176响应于在第一裸芯141处进行(例如,调度、初始化、执行)的写入操作进行增量,则如果第二计数176大于或等于第二阈值,则可以满足第二阈值。如果第二计数器响应于在第一裸芯141处进行(例如,调度、初始化、执行)的写入操作进行减量,则如果第二计数小于或等于第二阈值,则可以满足第二阈值。响应于检测的第三触发事件183,触发检测器180可以产生模式改变数据186以表明第二调度方案168,这可以引起调度方案191选择(或维持)第二调度方案168。通过选择第二调度模式168,第二调度方案168可以用于调度在裸芯141-144处进行的擦除操作(例如,擦除操作的集合)。
在使用第四调度方案168来调度验证操作(例如,验证操作的集合)后,第二触发事件184可以与选择(例如,切换回)第一调度方案相关联。例如,在调度、为执行初始化或执行验证操作(例如,验证操作)后,第一调度方案166可以用于调度一个或多个操作。触发检测器180可以根据第四调度方案180,响应于调度、初始化或执行的验证操作,检测第二触发事件184。响应于检测的第四触发事件184,触发检测器180可以产生模式改变数据186以表明第一调度方案166。此外或者可替代地,作为说明性的非限制性示例,响应于检测第四触发事件184,触发检测器180可以配置为引起第二计数器176被设定为诸如零的初始值(例如,默认值)。通过选择第一调度方案166,第一调度方案166可以用于以机会型的方式调度一个或多个操作。相应地,检测第三触发183接下来检测第四触发184可以使能调度器190,用以从第一调度方案166切换至第二调度方案168以调度验证操作的集合,并且用以在调度擦除操作的集合后切换回第一调度方案166。与使用第一调度方案166相反,使用第二调度方案168以调度验证操作的集合可以通过减少空闲周期改善数据储存装置102的存储器利用率,如果第一调度方案166用于调度验证操作的集合,则该空闲周期可以发生。
ECC引擎179可以配置为接收诸如用户数据132的数据,并且配置为基于数据产生一个或多个错误校正码(ECC)码字(例如,包括数据部分和奇偶部分)。例如,ECC引擎179可以接收用户数据132并且可以产生码字。为了说明,ECC引擎179可以包括配置为使用ECC编码技术来编码数据的编码器。作为说明性的非限制性示例,ECC引擎179可以包括里德-所罗门(Reed-Solomon)编码器、博斯-乔赫里-霍克文黑姆(Bose-Chaudhuri-Hocquenghem,BCH)编码器、低密度奇偶校验(LDPC)编码器、涡轮编码器、配置为根据一个或多个其它ECC技术编码数据的编码器或其结合。
ECC引擎179可以包括配置为解码从存储器104读取的数据的解码器,以检测和校正可以在数据中出现的位错误。例如,取决于由ECC引擎179使用的ECC技术的错误校正能力,ECC引擎179可以校正若干位错误。由ECC引擎179识别的若干错误可以由控制器120跟踪,诸如由ECC引擎179。
缓冲随机存取存储器(BRAM)188可以配置为缓冲在存取装置150和存储器104之间传送的数据。例如,从存取装置150接收的数据可以在写入存储器104之前储存在BRAM 188处。在一些实现方式中,可以在储存在BRAM 188之前编码从存取装置150接收的数据。例如,可以由ECC引擎179编码数据。作为另一个示例,从存储器104读取的数据可以在写入存取装置150之前储存在BRAM 188处。在一些实现方式中,可以在储存在BRAM 188之前解码从存储器104读取的数据。例如,可以由ECC引擎179解码数据。
在操作期间,数据储存装置102可以上电(例如,可以初始化上电事件)。响应于上电事件,固件162可以加载到第二存储器160中和/或从第二存储器160存取。作为上电事件的部分或者上电事件的以下完成,控制器120可以配置为将一个或多个计数器172的每一个设定为对应的初始化值。此外或者可替代地,作为上电事件的部分或者上电事件的以下完成,控制器120可以配置为从多个调度方案164选择默认的调度方案。如本文所述,第一调度方案166可以是默认的调度方案;但是,在其他实现方式中,第二调度方案168可以是默认的调度方案。
控制器120可以根据第一调度方案166调度一个或多个第一存储器操作134,并且可以发送一个或多个第一存储器操作134至存储器104用于执行。如果一个或多个第一存储器操作134包括对应于第一裸芯141的一个或多个写入操作,则可以更新一个或多个计数器172。例如,更新特定计数器可以包括增量特定计数器或者,可替代地,更新特定计数器可以包括减量特定计数器。
控制器120可以检测第一触发事件181,并且可以响应于检测第一触发事件181选择第二调度方案168。例如,调度器190可以基于检测的第一触发事件181,从使用第一调度方案166改变(例如,切换)为使用第二调度方案168。
在选择第二调度方案168后,控制器120可以根据第二调度方案168调度一个或多个第二存储器操作136,并且可以发送一个或多个第二存储器操作136至存储器104用于执行。如果一个或多个第二存储器操作136包括对应于第一裸芯141的一个或多个写入操作,则可以更新一个或多个计数器172以跟踪在第一裸芯141处进行的写入操作的计数。
控制器120可以检测第二触发事件182(或第四触发事件184)并且可以响应于检测第二触发事件182(或第四触发事件184)来选择第一调度方案166。例如,调度器190可以基于检测的第二触发事件182(或者第四触发事件184),从使用第二调度方案168改变(例如,切换)为使用第一调度方案166。
在从第二调度方案168切换至第一调度方案166后,控制器120可以根据第一调度方案166调度一个或多个第三存储器操作138,并且可以发送一个或多个第三存储器操作138至存储器104用于执行。如果一个或多个第三存储器操作138包括对应于第一裸芯141的一个或多个写入操作,则可以更新(例如,增量或减量)一个或多个计数器172。
在一些实现方式中,在第一调度方案166和第二调度方案168之间的切换之前,调度器190可以确定一个或多个操作是否将使用选择的调度方案进行调度,如参考图5所述的。例如,当选择的调度方案是第一调度方案166时,调度器190可以确定切换至第二调度方案168。在切换至第二调度方案168之前,调度器190可以识别存储器操作队列195是否表明一个或多个第一操作,该一个或多个操作可以根据第一调度方案166进行调度。如果存储器操作队列195表明一个或多个第一操作,则在切换至第二调度方案168之前,调度器190可以根据第一调度方案166调度一个或多个第一操作。通过在从第一调度方案166切换至第二调度方案168之前根据第一调度方案166来调度被调度的可用操作,可以根据第一调度方案166调度可用操作,而不必等待使用第二调度方案168所调度的其他操作。
在一些实现方式中,控制器120可以检测第三触发事件183,并且可以响应于检测第三触发事件183来选择第二调度方案168。在选择第二调度方案168后,控制器120可以根据第二调度方案168调度一个或多个第二存储器操作136,并且可以发送一个或多个第二存储器操作136至存储器104用于执行。控制器120可以检测第四触发事件184,并且可以响应于检测第四触发事件184选择第一调度方案166。
作为另一个示例,当选择的调度方案是第二调度方案168时,调度器190可以确定切换至第一调度方案166。在切换至第一调度方案166之前,调度器190可以识别存储器操作队列195是否表明一个或多个第二操作,该一个或多个操作可以使用第二调度方案168进行调度。如果存储器操作队列195表明该一个或多个第二操作,则在切换至第一调度方案166之前,调度器190可以根据第二调度方案168调度一个或多个第二操作。通过在从第二调度方案168切换至第一调度方案166之前根据第二调度方案168来调度被调度的可用操作,可以根据第二调度方案168调度可用操作,而不必等待根据第一调度方案166所调度的其他操作。
在一些实现方式中,调度器190可以选择第二调度方案168,并且可以将第二调度方案168应用于一个或多个操作以调度一个或多个操作。例如,调度器190可以使用第二调度方案168以调度从存取装置150接收的写入操作(例如,长的写入命令)。在一些实现方式中,调度器190可以调度多个写入操作(例如,多个页写入操作)以满足从存取装置150接收的长的写入命令。在长的写入操作(例如,多个写入操作)的调度和/或执行期间,触发检测器180可以检测触发事件。例如,触发事件可以包括或对应于检测将调度读取操作(例如,短的读取操作)。读取操作可以与通过获取储存在存储器104处的代码填充高速缓存存储器(未示出)相关联。响应于检测触发事件,触发检测器180可以产生模式改变数据186,以引起方案选择器191选择第一调度方案166。方案选择器191可以从第二调度方案168改变为第一调度方案166,并且调度器190可以根据第一调度方案166调度读取操作。触发检测器180可以检测对应于被调度、用于执行的初始化或者执行的读取操作的另一个触发事件。响应于其他触发事件,方案选择器191可以从第一调度方案166切换至第二调度方案168。在一些实现方式中,第二调度方案168可以是数据储存装置102的默认的调度方案。
在一些实现方式中,响应于检测将在和/或正在存储器104处进行的序列写入操作,调度器190(例如,方案选择器191)可以配置为(使能为)在第一调度方案166和第二调度方案168之间切换。例如,作为说明性的非限制性示例,调度器190可以基于对应于要被写入存储器104的数据的一个或多个写入地址、基于被要写入存储器104的数据的大小、或者其结合,检测序列写入操作。在一些实现方式中,响应于检测序列写入操作,可以基于模式值194(例如,基于模式改变数据186)使能方案选择器191,以在第一调度方案166和第二调度方案168之间切换。在一些实现方式中,如果未检测到序列写入操作,则,无论模式值194(例如,模式改变数据186)如何,方案选择器191可能不可以在第一调度方案166和第二调度方案168之间切换。在此类情况中,调度器190可以使用(例如,持续使用)选择的调度方案,诸如默认的调度方案。
在一些实现方式中,一个或多个计数器172可以包括对应于第一裸芯141的特定计数器。特定计数器可以配置为计数在第一裸芯141处进行的写入操作(例如,页写入操作)。响应于在第一裸芯141处进行的擦除操作,特定计数器的第一值可以在第二存储器160处储存。可以基于由特定计数器和第一值表明的计数(例如,电流计数)确定在擦除操作后调度、用于执行的初始化或者执行的写入操作的计数。触发检测器180可以将在擦除操作后调度、用于执行的初始化或者执行的写入操作写入操作的计数与第一阈值比较。此外或者可替代地,响应于在第一裸芯141处进行的验证操作,特定计数器的第二值可以在第二存储器160处储存。可以基于由特定计数器和第二值表明的计数(例如,电流计数)确定在验证操作后调度、用于执行的初始化或者执行的写入操作的计数。触发检测器180可以将在验证操作后调度、用于执行的初始化或者执行的写入操作的计数与第二阈值比较。
在一些实现方式中,调度方案164可以包括多于两个调度方案,诸如第一调度方案166、第二调度方案168和第三调度方案。第三调度方案可以对应于机会型的调度方案或者对应于流水线式的调度方案。例如,如果第三调度方案和第一调度方案166是机会型的调度方案,则第三调度方案可以使用轮循方法并且第一调度方案166可以使用时间估计方法。作为另一个示例,如果第三调度方案和第二调度方案168是机会型的调度方案,则第三调度方案可以与调度不同类型的操作的第一顺序(例如,调度写入型操作接下来是擦除型操作接下来是验证型操作)相关联,并且第二调度方案166可以与调度不同类型的操作的第二顺序(例如,调度写入型操作接下来是验证型操作接下来是擦除型操作)相关联。如果调度方案164包括多于两个调度方案,则触发检测器180可以包括用于多个调度方案164的每一个的触发事件。例如,第一特定触发可以与选择第一调度方案166相关联,第二特定触发事件可以与选择第二调度方案168相关联,并且第三特定触发可以与选择第三调度方案相关联。即使第一调度方案166已经被描述为机会型的调度方案并且第二调度方案168已经被描述为流水线式的调度方案,但是在其他实现方式中,第一调度方案166可以是流水线式的调度方案并且第二调度方案168可以是机会型的调度方案。
在一些实现方式中,数据储存装置102可以包括逻辑到物理的映射数据,诸如逻辑到物理的映射表。例如,逻辑到物理的映射数据可以储存在数据储存装置102的存储器104和/或第二存储器160处。此外或者可替代地,逻辑到物理的映射数据可以储存在存取装置150的存储器处。
即使存储器操作队列195被描绘为包括在调度器190中,但是在其他实现方式中,作为说明性的非限制性示例,存储器操作队列195可以被包括在存取接口108、存储器104、第二存储器160或者存取装置150中。例如,数据储存装置102和存取装置150的每一个可以包括对应的存储器操作队列。由存取装置150维持的存储器操作队列可以使能存取装置150跟踪从存取装置150发送至数据储存装置的存储器操作。
在一些实现方式中,固件162、一个或多个阈值170、多个调度方案164、一个或多个计数器172、或者其结合可以储存在存储器104处。在其他实现方式中,控制器120可以包括或者可以耦接于特定存储器(例如,第二存储器160),诸如随机存取存储器(RAM),该特定存储器配置为储存固件162、一个或多个阈值170、多个调度方案164、一个或多个计数器172、或其结合。或者,或者此外,控制器120可以包括或者可以耦接于另一个存储器(未示出),诸如非易失性存储器、RAM或者只读存储器(ROM)。其他存储器可以是单个存储器组件、多个不同的存储器组件、和/或可以表明多个不同类型(例如,易失性存储器和/或非易失性)的存储器组件。在一些实施例中,其他存储器可以被包括在存取装置150中。
即使数据储存装置102的一个或多个组件已经被描述为与控制器120相关,但是在其他实现方式中,某些组件可以被包括在存储器104中。例如,第二存储器160、EEC引擎179、触发检测器180、BRAM 188和/或调度器190的一个或多个可以被包括在存储器104中。或者,或者此外,如上所述的参考控制器120的一个或多个功能可以在存储器104处进行,或者由存储器104进行。例如,第二存储器160、EEC引擎179、触发检测器180、BRAM 188和/或调度器190的一个或多个功能可以由包括在存储器104中的组件和/或电路进行。或者,或者此外,数据储存装置102的一个或多个组件可以被包括在存取装置150中。例如,第二存储器160、EEC引擎179、触发检测器180、BRAM 188和/或调度器190的一个或多个可以被包括在存取装置150中。或者,或者此外,如上所述的参考控制器120的一个或多个功能可以在存取装置150处进行,或者由存取装置150进行。作为说明性的非限制性示例,响应于检测一个或多个触发事件,存取装置150可以配置为检测一个或多个触发事件并且配置为发送模式改变数据185至数据储存装置102的调度器190。
通过检测一个或多个触发事件(例如,一个或多个触发条件),数据储存装置102可以在第一调度方案166和第二调度方案168之间动态地切换。例如,在性能(例如,调度、初始化和/或执行)序列写入操作期间,数据储存装置102可以在第一调度方案166和第二调度方案168之间动态地切换。与利用单个选择方案的储存装置相比,通过动态地切换选择的调度模式,可以选择性地使用(例如,应用)第二调度方案168(和/或第一调度方案166)率。
参考图2A,描绘了在***100处进行的操作的第一定时图的特定说明性实施例,该第一定时图通常指定为200。例如,第一定时图200说明了经由存储器接口(MI)109从控制器120传送至存储器104的数据和在存储器裸芯141-144处进行的操作。定时图200包括对应于第一时期(TI)的第一部分和对应于第二时期(T2)的第二部分。第一时期(T1)可以在第二时期(T2)之前发生。
在第一时期(T1)期间,调度器190可以根据诸如机会型的调度方案的第一调度方案166来调度一个或多个第一操作。一个或多个第一操作可以包括或对应于图1的一个或多个存储器操作134。如第一定时图200中所说明的,裸芯141-144可以根据第一调度方案166执行所调度的一个或多个第一操作。
在第二时期(T2)期间,调度器190可以调度一个或多个第二操作。一个或多个第二操作可以包括或对应于图1的一个或多个第一存储器操作134。如第一定时图200中所说明的,裸芯141-144可以执行根据第二调度方案166所调度的一个或多个第一操作。在第二时期期间,触发检测器180可以检测第一触发事件181。例如,可以响应于被调度为在第三裸芯(D2)143处执行的写入操作,增量对应于第三裸芯(D2)143的计数器。
响应于第一触发事件181的检测,方案选择器191可以选择第二调度方案168,诸如流水线式的调度方案。调度器190可以调度在裸芯141-144处进行的擦除操作的集合。例如,第一擦除操作290可以被调度为在第四裸芯(D3)处执行,第二擦除操作292可以被调度为在第一裸芯(D0)141处执行,第三擦除操作294可以被调度为在第二裸芯(D1)142处执行,并且第四擦除操作296可以被调度为在第三裸芯(D2)143处执行。擦除操作的集合可以包括或对应于图1的一个或多个第二存储器操作136。如第一定时图200中所说明的,在根据第二调度方案168调度擦除操作的集合之前,根据第一调度方案,第一读取操作可以在第四裸芯(D3)144处调度并且第二读取操作可以166在第二裸芯(D1)142处调度。
触发检测器180可以检测与擦除操作的集合相关联的第二触发事件182。例如,第二触发事件182可以对应于被调度、用于执行的初始化、或者执行的擦除操作的集合。作为说明性的非限制性示例,为了说明,第二触发事件182可以对应于被调度的第四擦除操作296、被初始化的第一擦除操作290、被初始化的第四擦除操作296、完成的第一擦除操作290的执行、或者完成的第四擦除操作296的执行。
响应于第二触发事件182的检测,方案选择器193可以选择第一调度方案166并且调度器190可以调度一个或多个第三操作。一个或多个第三操作可以包括或对应于图1的一个或多个第三存储器操作138。如第一定时图200中所说明的,在擦除操作的集合(根据第二调度方案168进行调度)后,裸芯141-144可以执行根据第一调度方案166所调度的一个或多个第三操作。
参考图2B,描绘了在***100处进行的操作的第二定时图的特定说明性实施例,该第二定时图通常指定为297。例如,第二定时图297说明了经由存储器接口(MI)109从控制器120传送至存储器104的数据和在存储器裸芯141-144处进行的操作。
第二定时图297描绘了相较于图2A的第一定时图200的替代实施例。在图2A的第一定时图200中,当在第一调度方案166和第二调度方案168之间切换时,裸芯141-144的一个或多个根据第一调度方案166进行操作,同时其他裸芯根据第二调度方案同时地进行操作。相应地,第一定时图200说明了允许至少一个裸芯根据第一调度方案166进行操作,同时另一个裸芯根据第二调度方案168进行操作。
在图2B的第二定时图297中,裸芯141-144的每一个可以说明为在第一调度方案166和第二调度方案168之间同时地切换。例如,在第一时间T(A)298时,裸芯141-144已经根据第一调度方案166完成了操作。在第一时间T(A)298后,裸芯141-144的每一个根据第二调度方案168进行操作。在第二时间T(B)299时,裸芯141-144已经根据第二调度方案168完成了操作。在第二时间T(B)299后,裸芯141-144的每一个根据第一调度方案166进行操作。相应地,第二定时图297说明了所有裸芯141-144在第一调度方案166和第二调度方案168之间同时地切换。
参考图3,描绘了在***100处进行的操作的第三定时图的特定说明性实施例,该第三定时图通常指定为300。例如,第三定时图300说明了经由存储器接口(MI)109从控制器120传送至存储器104的数据和在存储器裸芯141-144处进行的操作。
调度器190可以根据诸如机会型的调度方案的第一调度方案166来调度一个或多个第一操作。一个或多个第一操作可以包括或对应于图1的一个或多个存储器操作134。如第三定时图300中所说明的,裸芯141-144可以执行根据第一调度方案166所调度的一个或多个第一操作。
触发检测器180可以基于一个或多个第一操作的执行,检测第三触发事件183。例如,响应于在第一裸芯141处执行的写入操作的完成,可以增量第二计数器176。触发检测器180可以将第二计数器176比较于第二阈值,并且响应于满足第二阈值的计数可以检测第三触发事件183。
响应于第三触发事件183的检测,方案选择器191可以选择第二调度方案168,诸如流水线式的调度方案。调度器190可以调度在裸芯141-144处进行的验证操作的集合。验证操作的集合可以包括在裸芯141-144的每一个处进行的多个验证操作。例如,包括第一验证操作321的多个验证操作的第一组可以被调度为在第一裸芯(D0)141处进行,包括第二验证操作322的多个验证操作的第二组可以被调度为在第二裸芯(D1)142处进行,包括第三验证操作323的多个验证操作的第三组可以被调度为在第三裸芯(D2)143处进行,并且包括第四验证操作324的多个验证操作的第四组可以被调度为在第四裸芯(D3)144处进行。即使多个验证操作的每个组被描绘为包括十个验证操作,但是在其他实现方式中,多个验证操作的每个组可以包括多于或少于十个验证操作。验证操作的集合可以包括或对应于图1的一个或多个第二存储器操作136。
触发检测器180可以检测与验证操作的集合相关联的第四触发事件184。例如,第四触发事件184可以对应于被调度、用于执行的初始化、或者执行的验证操作的集合。为了说明,作为说明性的非限制性示例第四触发事件184可以对应于被调度的第四验证操作324、被初始化的第一验证操作321、被初始化的第四验证操作操作324、完成的第一验证操作321的执行、或者完成的第四验证操作324的执行,。
响应于第四触发事件184的检测,方案选择器193可以选择第一调度方案166并且调度器190可以调度一个或多个第三操作。一个或多个第三操作可以包括或对应于图1的一个或多个第三存储器操作138。如第三定时图300中所说明的,在验证操作的集合(根据第二调度方案168进行调度)后,裸芯141-144可以执行根据第一调度方案166所调度的一个或多个第三操作。
因此,定时图200、297和300各自说明了在第一调度方案166和第二调度方案168之间的切换。通过在第一调度方案166和第二调度方案168之间切换,可以改善(存储器104的)存储器利用率。
参考图4,描绘了方法的特定说明性实施例,该方法通常指定为400。作为说明性的非限制性示例,方法400可以在数据储存装置102处进行,诸如通过调度器190、控制器120、配置为执行图1的固件162的处理器或电路、存取装置150、或者其结合。
方法400可以包括在402处选择第一调度方案。第一调度方案可以包括图1的第一调度方案166或者第二调度方案168。在一些实现方式中,第一调度方案可以是数据储存装置的默认的调度方案。例如,可以响应于数据储存装置的上电,选择第一调度方案作为默认的调度方案。
在404处,方法400可以包括根据(例如,使用)第一调度方案调度一个或多个操作。例如,一个或多个操作可以包括或对应于图1的一个或多个第一存储器操作134。
在406处,方法400可以包括确定第一类型的操作是否将在裸芯处被调度。例如,裸芯可以包括数据储存装置的任意多个裸芯,诸如图1的裸芯141-144。在一些实现方式中,第一类型的操作可以包括或对应于擦除操作。如果未在裸芯处调度第一类型的操作,则方法400可以继续进行至414。或者,如果在裸芯处调度第一类型的操作,则方法400可以继续进行至408。
在408处,方法400可以包括选择第二调度方案。第二调度方案可以不同于第一调度方案。例如,如果第一调度方案是机会型的调度方案,则第二调度方案可以是固定的调度方案(例如,流水线式的调度方案)。作为另一个示例,如果第一调度方案是固定的调度方案(例如,流水线式的调度方案),则第二调度方案可以是机会型的调度方案。在一些实现方式中,如果第一类型的操作是擦除操作,则第二调度方案可以包括或对应于图1的第二调度方案168(例如,流水线式的调度方案)。
在410处,方法400可以包括调度第一类型的操作的第一集合。第一类型的操作的第一集合可以包括用于数据储存装置的多个裸芯的每个裸芯的一个操作。或者,第一类型的操作的第一集合可以包括若干操作,该操作的数量小于包括在数据储存装置中的裸芯的数量。例如,第一类型的操作的第一集合可以包括数据储存装置的多个元平面的第一元平面的每个裸芯的操作。在一些实现方式中,第一类型的操作的第一集合可以包括或对应于图1的一个或多个第二存储器操作136。
在412处,方法400可以包括确定是否检测到第一触发事件(例如,第一触发条件)。例如,第一触发事件可以包括或者对应于图1的触发事件181-184的一个,诸如图1的第二触发事件182。如果未检测到第一触发事件,则方法400在413处可以包括调度使用第二调度方案的一个或多个附加的操作,并且然后继续进行至412。如果检测到第一触发事件,则方法400可以继续进行至414。
在414处,方法400可以包括确定第二类型的操作是否将在裸芯处被调度。在一些实现方式中,第二类型的操作可以包括或对应于验证操作。如果未在裸芯处调度第二类型的操作,则方法400可以继续进行402并且可以选择第一调度方案。或者,如果调度第二类型的操作,则方法400可以继续进行至416。
在416处,方法400可以包括选择第二调度方案。如果第二调度方案是先前的(例如,最近选择的)调度方案,则选择第二调度方案可以包括维持第二调度方案作为选择的调度方案
在418处,方法400可以包括调度第二类型的操作的第二集合。第二类型的操作的第二集合可以包括用于数据储存装置的多个裸芯的每个裸芯的一个操作。或者,第二类型的操作的第二集合可以包括若干操作,该操作的数量小于包括在数据储存装置中的裸芯的数量。例如,第二类型的操作的第二集合可以包括数据储存装置的多个元平面的第一元平面的每个裸芯的操作。在一些实现方式中,第二类型的操作的第二集合可以包括或对应于图1的一个或多个第二存储器操作136。
在420处,方法400可以包括确定是否检测到第二触发事件(例如,第二触发条件)。例如,第二触发事件可以包括或者对应于图1的触发事件181-184的一个,诸如图1的第四触发事件184。在一些实现方式中,第二触发事件可以不同于第一触发事件。如果未检测到第二触发事件,则方法400在421处可以包括调度使用第二调度方案的一个或多个附加的操作,并且然后继续进行420。如果检测到第二触发事件,则方法400可以继续进行402。
通过选择性地使用第二调度方案以调度一个或多个操作(例如,具有第一类型和/或第二类型的操作),可以改善数据储存装置的存储器利用率。例如,数据储存装置可以在第一调度方案和第二调度方案之间动态地切换,以有效地调度为调度操作。
参考图5,描绘了方法的特定说明性实施例,该方法通常指定为500。作为说明性的非限制性示例,方法500可以在数据储存装置102处进行,诸如通过调度器190、控制器120、配置为执行图1的固件162的处理器或电路、或其结合。
在502处,方法500可以包括进行机会型的调度。进行机会型的调度可以包括或对应于使用图1的第一调度方案166,以调度至少一个操作。
在504处,方法可以包括确定擦除操作是否将在裸芯处被调度。裸芯可以包括在数据储存装置的存储器中,诸如图1的数据储存装置102的存储器104。例如,存储器可以包括多个裸芯,该多个裸芯包括裸芯。裸芯可以被包括在与多个裸芯的元平面(例如,元平面130)相关联的裸芯的组中。在一些实现方式中,存储器可以包括多个元平面,诸如包括裸芯的第一元平面和第二元平面。如果没有擦除操作将被调度,则方法500可以继续进行到520。或者,如果存在被调度的擦除操作,则方法500可以前进到506。
在506处,方法500可以包括确定存取装置命令是否可用于执行。例如,一个或多个存取装置命令可以是可用的并且储存在图1的存储器操作队列195中。可以在诸如图1的存取装置150的数据储存装置处从存取装置接收一个或多个存取装置命令。如果没有存取装置命令是可用的,则在508处,方法500可以包括选择流水线式的调度。流水线式的调度可以包括或对应于图1的第二调度方案168。或者,在前进到508之前,如果存在被执行的一个或多个存取装置命令,则在510处,方法500可以(根据机会型的调度)调度一个或多个存取装置命令。
在508处选择流水线式的调度后,在512处,方法500可以包括调度擦除操作的集合。擦除操作的集合可以包括或对应于图1的一个或多个第二存储器操作136。
在514处,方法500可以包括确定擦除触发事件是否发生。参照图1,擦除触发事件可以由图1的触发检测器180检测,并且可以包括或者对应于图1的触发事件181-184的一个,诸如图1的第二触发事件182。如果擦除触发事件未发生,则在514处,方法500可以继续监控,以检测和确定擦除触发事件是否发生。如果擦除触发事件发生,则方法500可以继续进行至516。
在520处,方法500可以包括确定验证操作(例如,验证操作)是否将在裸芯处被调度。如果没有验证操作将被调度,则方法500可以继续进行至502。或者,如果存在被调度的擦除操作,则方法500可以前进到522。
在522处,方法500可以包括确定存取装置命令是否可用于执行。如果没有存取装置命令是可用的,则在524处,方法500可以包括选择流水线式的调度。或者,在前进到524之前,如果存在被执行的一个或多个存取装置命令,则在526处,方法500可以(根据机会型的调度)调度一个或多个存取装置命令。
在524处选择流水线式的调度后,在528处,方法500可以包括调度验证操作的集合。验证操作的集合可以包括或对应于图1的一个或多个第二存储器操作136。
在530处,方法500可以包括确定验证触发事件(例如,验证触发条件)是否发生。参考图1,验证触发事件可以由图1的触发检测器180检测,并且可以包括或者对应于图1的触发事件181-184的一个,诸如图1的第四触发事件184。如果验证触发事件未发生,则在530处,方法500可以继续监控,以检测和确定验证触发事件是否发生。如果验证触发事件发生,则方法500可以继续进行至516。
在516处,方法500可以包括确定是否将调度附加的流水线式的操作。如果将调度附加的流水线式的操作,则方法500可以继续进行在512或528处的调度操作。例如,如果附加的流水线式的操作确定为擦除操作,则方法500可以继续进行至512。作为另一个示例,如果附加的流水线式的操作确定为验证操作,则方法500可以继续进行至528。或者,在前进至502之前,如果没有流水线式的操作被调度至裸芯,则在518处,方法500可以包括选择机会型的调度。
通过在机会型的调度方案和流水线式的调度方案之间动态地切换,可以改善数据储存装置的存储器利用率。此外,通过检查以确定在动态地切换至另一个调度方案之前操作是否可用于使用现在的调度方案进行调度,可以有效地调度(并且不会延迟)操作。通过在切换之前调度可用的操作,可以减少在一段的较短时间内的在机会型的调度方案和流水线式的调度方案之间重复切换的实例。
参考图6,描绘了方法的特定说明性实施例,该方法通常指定为600。作为说明性的非限制性示例,方法600可以在数据储存装置102处进行,诸如通过调度器190、控制器120、配置为执行图1的固件162的处理器或电路、或其结合。
在602处,方法600包括配置数据储存装置以使用第一调度方案。在一些实现方式中,可以通过更新诸如图1的模式寄存器192的模式寄存器为对应于第一调度方案166的第一值,设定(例如,选择)第一模式。在一些实现方式中,可以通过更新诸如图1的模式寄存器192的模式寄存器为对应于第一调度方案166的第二值,设定(例如,选择)第二模式。参考图1,响应于模式改变数据186,调度器190(例如,方案选择器191)可以配置为切换(例如,改变)调度方案。在一些实现方式中,第一模式可以是数据储存装置的默认模式。
在604处,响应于检测触发事件,方法600包括将数据储存装置配置为使用第二调度方案。第一调度方案和第二调度方案的一个用于在多个裸芯处调度具有相同操作类型的存储器操作的性能,并且第一调度方案和第二调度方案的另外一个用于择机地调度存储器操作。参考图1,触发事件可以包括或对应于由图1的触发检测器180所检测的触发事件181-184的一个。例如,触发事件可以与擦除操作或者验证操作相关联。在一些实现方式中,触发事件可以与一个或多个操作相关联,该一个或多个操作包括或对应于图1的一个或多个第一存储器操作134、一个或多个第二存储器操作136、或者一个或多个第三存储器操作138。在一些实现方式中,可以基于写入操作的计数检测触发事件。在其他实现方式中,可以基于写入裸芯的区块中的最后页检测触发事件。响应于检测触发事件,触发检测器180可以配置为将模式改变数据186发送至图1的调度器190。
在606处,方法600包括根据第二调度方案调度存储器操作。在608处,方法600也可以包括执行存储器操作。参考图1,调度器190可以根据第二调度方案168来调度操作。作为说明性的非限制性示例,操作可以包括或对应于擦除操作、验证操作、或者读取操作。可以在图1的裸芯141-144的一个处执行存储器操作。
在一些实现方式中,第一调度方案可以包括机会型的调度方案,诸如图1的第一调度方案166,并且第二调度方案可以包括流水线式的调度方案(例如,固定的调度方案),诸如图1的第二调度方案168。流水线式的调度方案可以使用轮循方法,以在数据储存装置的存储器的多个裸芯处调度操作,诸如在图1的数据储存装置102的存储器104的裸芯141-144处。在特定说明性的非限制性示例中,机会型的调度方案可以是数据储存装置的默认操作方案。在其他实现方式中,第一调度方案可以包括流水线式的调度方案并且第二调度方案可以包括机会型的方案。在特定说明性的非限制性示例中,流水线式的调度方案可以是数据储存装置的默认操作方案。
在一些实现方式中,方法600可以包括检测第二触发事件同时数据储存装置配置为以第二模式操作,并且,响应于检测第二触发事件,将数据储存装置配置为以第一模式操作。作为说明性的非限制性示例,第二触发事件可以与存储器操作相关联。例如,第二触发事件可以对应于调度存储器操作、初始化存储器操作的执行、或者完成存储器操作的执行。在一些实现方式中,方法600可以包括根据第一调度方案来调度第二存储器操作,并执行第二存储器操作。
通过检测触发条件(例如,触发事件),数据储存装置可以从第一调度方案动态地切换至第二调度方案。相应地,数据储存装置可以基于数据储存装置的一个或多个操作条件,能够选择多个调度方案的特定的调度方案。在多个调度方案之间动态地切换可以平衡不同类型的操作的执行,并且可以导致与使用单个调度方案的数据储存装置相比更高的存储器利用率。
参考图7,描绘和了方法的特定说明性实施例,该方法通常指定为700。作为说明性的非限制性示例,方法700可以在数据储存装置102处进行,诸如通过调度器190、控制器120、配置为执行图1的固件162的处理器或电路、或其结合。
在702处,方法700包括调度在多个裸芯的第一裸芯处进行的第一写入操作,该第一写入操作根据第一调度方案进行调度。例如,第一写入操作可以包括或对应于图1的一个或多个第一存储器操作134。在一些实现方式中,第一写入操作可以是第一页的写入操作。多个裸芯可以包括或对应于图1的数据储存装置102的多个存储器裸芯103。第一调度方案可以包括或对应于图1的第一调度方案166。在一些实现方式中,第一调度方案可以是机会型的调度方案。
在704处,方法700还包括,在第一裸芯处调度第一写入操作后,确定在第一裸芯处进行的写入操作的计数满足阈值,该计数对应于一个或多个写入操作。例如,阈值可以包括或者对应于图1的阈值或多个阈值170。在一些实现方式中,在(第一裸芯处进行的)特定的存储器操作的进行后,计数可以对应于在第一裸芯处进行的一个或多个写入操作。作为说明性的非限制性示例,特定的存储器操作可以包括或对应于擦除操作或验证操作。在一些实现方式中,写入操作的每一个可以是页写入操作。
在706处,方法700也包括基于满足阈值的计数来选择第二调度方案。例如,第二调度方案可以包括或对应于图1的第二调度方案168。在一些实现方式中,第二调度方案可以是流水线式的调度方案。
在708处,方法700还包括根据第二调度方案来调度在多个裸芯处进行的操作的集合。例如,操作的第二集合可以包括或对应于图1的一个或多个第二存储器操作136。
在一些实现方式中,在调度第一写入操作之前,方法700可以包括基于多个未调度的操作的地址,检测在存储器处进行的序列写入操作。响应于检测序列写入操作,第一调度方案(例如,机会型的调度方案)可以被选择为用于调度在包括多个裸芯的存储器处进行的操作。例如,存储器可以包括或者对应于图1的存储器104。
在一些实现方式中,响应于在第一裸芯处进行第一写入操作,可以更新对应于第一裸芯的计数器的计数。例如,计数可以对应于和/或表明写入操作的数量。为了说明,更新计数可以包括增量计数器。如果计数器对应于进行第一写入操作进行增量,则如果计数大于或等于阈值,则可以满足阈值。作为另一个示例,更新计数可以包括减量计数器。如果计数器对应于进行第一写入操作进行减量,则如果计数小于或等于阈值,则可以满足阈值。
在一些实现方式中,数据储存装置可以包括多个计数器。多个计数器可以包括或对应于图1的一个或多个计数器172。在一些实现方式中,多个计数器的每个计数器可以对应于多个裸芯的不同裸芯,并且可以配置为计数在对应的裸芯处进行的写入操作。响应于确定由多个计数器的特定计数器表明的写入操作的特定计数满足阈值,方法700可以包括将多个计数器的每一个设定为初始值。
在一些实现方式中,如果特定存储器操作包括擦除操作,则操作的集合可以包括擦除操作的集合。在调度擦除操作的集合后,方法700可以包括检测触发事件,该触发事件对应于在多个裸芯处的擦除操作的集合的性能。例如,触发事件可以对应于擦除操作的集合的特定擦除操作的完成,该擦除操作具有最长的调度的执行周期。作为另一个示例,触发事件可以对应于擦除操作的集合的初始化调度的擦除操作的完成。方法700也可以包括基于检测触发事件(对应于擦除操作的集合的执行),从第二调度方案改变至第一调度方案。
在其他实现方式中,如果特定存储器操作包括验证操作(例如,验证操作),则操作的集合包括验证操作的集合(例如,验证操作的集合)。在调度验证操作的集合后,方法700可以包括检测触发事件,该触发事件对应于在多个裸芯处的验证操作的集合的执行。例如,触发事件可以对应于验证操作的集合的最终验证操作的执行的初始化。作为另一个示例,触发事件可以对应于验证操作的集合的最终验证操作的执行的完成。方法700也可以包括基于检测触发事件(对应于验证操作的集合的执行),从第二调度方案改变至第一调度方案。
在一些实现方式中,在确定满足阈值后以及在应用第二调度方案之前,方法700可以包括识别一个或多个未调度的操作,并且调度一个或多个未调度的操作的一个或多个操作,用于在(根据第二调度方案)调度操作的集合之前执行。一个或多个未调度的操作可以被包括在(例如,储存在)在数据储存装置处维持的队列。例如,队列可以包括或者对应于图1的存储器操作队列195。或者,一个或多个未调度的操作可以被包括在(例如,储存在)队列中,该队列在耦接于数据储存装置的存取装置处维持,诸如由耦接于图1的数据储存装置102的存取装置150维持的队列。
在一些实现方式中,在调度操作的集合后,方法700可以包括检测触发事件,该触发事件对应于在多个裸芯处的操作的集合的性能。响应于检测触发事件,在从第二调度方案改变为第一调度方案之前,方法700可以包括确定在存储器处进行的操作的第二集合是否是未调度的。响应于确定操作的第二集合是未调度的,可以根据第二调度方案(在从第二调度方案改变为对应于检测触发事件的第一调度方案之前)调度操作的第二集合。为了说明,队列状态包括数据,该数据表明存取装置是否包括在数据储存装置(102)的存储器处进行的操作,该操作可以从耦接于数据储存装置的存取装置(例如,存取装置150)接收。基于队列状态,操作的第二集合可以确定为未调度的,并且可以根据第二调度方案进行调度。
通过基于是否满足阈值选择性地应用不同的调度方案,可以改善数据储存装置的存储器利用率。例如,选择性地应用不同的调度方案可以平衡从存取装置接收的读取/写入操作连同管理操作,以导致与使用单个调度方案的数据储存装置相比更高的存储器利用率。
参考图8,描绘了方法的特定说明性实施例,该方法通常指定为800。作为说明性的非限制性示例,方法800可以在数据储存装置102处进行,诸如通过调度器190、控制器120、配置为执行图1的固件162的处理器或电路、或其结合。
在802处,方法800包括,响应于确定与多个裸芯的第一裸芯相关联的写入操作的计数满足第一阈值,从第一调度方案改变为第二调度方案。多个裸芯可以包括或对应于图1的数据储存装置102的多个存储器裸芯103。在一些实现方式中,在(第一裸芯处进行的)特定的存储器操作的性能后,计数可以对应于在第一裸芯处进行的写入操作。在一些实现方式中,写入操作的每一个可以是页写入操作。第一调度方案和第二调度方案可以包括或分别对应于图1的第一调度方案166和第二调度方案168。在一些实现方式中,第一调度方案可以包括机会型的调度方案并且第二调度方案可以包括流水线式的调度方案。在其他实现方式中,第一调度方案可以是流水线式的调度方案并且第二调度方案可以是机会型的调度方案。
在804处,方法800也包括根据第二调度方案来调度在多个裸芯处进行的操作的集合。例如,操作的第二集合可以包括或对应于图1的一个或多个第二存储器操作136。如果特定的存储器操作是擦除操作,则操作的集合的每个操作可以是擦除操作。或者,如果特定的存储器操作是验证操作,则操作的集合的每个操作可以是验证操作。
在一些实现方式中,方法800可以包括,在确定计数满足第一阈值之前,基于调度为在第一裸芯处进行的第一写入操作来更新计数器,以表明计数。例如,第一写入操作可以包括或对应于图1的一个或多个第一存储器操作134。在一些实现方式中,第一写入操作可以是第一页的写入操作。计数器可以响应于调度第一写入操作、初始化第一写入操作的执行或者完成第一写入操作的执行来进行更新。作为说明性的非限制性示例,特定的存储器操作可以包括或对应于擦除操作或验证操作。
在一些实现方式中,方法800可以包括基于第一写入操作更新第二计数。在第二特定存储器操作的性能之后,第二计数可以与调度为在第一裸芯处进行的写入操作相关联。为了说明,参考图1,计数可以对应于图1的第一计数器174(表明在特定擦除操作之后的写入操作的计数),并且第二计数可以对应于图1的第二计数器176(表明在特定验证操作之后的写入操作的计数)。或者,计数可以对应于第二计数器176并且第二计数可以对应于第一计数器174。响应于满足第二阈值的第二计数,方法800可以包括从第一调度方案改变为第二调度方案;并且应用第二调度方案以调度在多个裸芯处进行的操作的第二集合。例如,如果第二计数对应于(和/或表明)在特定擦除操作之后的写入操作的计数,则操作的第二集合可以包括擦除操作的集合。作为另一个示例,如果第二计数对应于(和/或表明)在特定验证操作之后的写入操作的计数,则操作的第二集合可以包括验证操作的集合。
作为说明性的非限制性示例,特定存储器操作可以包括擦除操作并且第二特定存储器操作可以包括验证操作。响应于第二计数满足第二阈值,方法800可以包括从第一调度方案改变为第二调度方案,并且应用第二调度方案以调度在多个裸芯处进行的操作的第二集合。在一些实现方式中,第一阈值可以对应于第一阈值值并且第二阈值可以对应于第二阈值值。第一阈值值可以大于或等于第二阈值值。或者,第一阈值值可以小于第二阈值值。
在一些实现方式中,可以在包括多个裸芯的存储器处进行存储器操作的集合。例如,存储器可以包括或者对应于图1的存储器104。响应于进行操作的集合,方法800可以包括将计数器设定为初始值。为了说明,作为说明性的非限制性示例,初始值可以是零(0)。
在一些实现方式中,可以检测对应于多个裸芯的操作的集合的至少一个操作的执行的触发事件。方法800可以包括基于检测触发事件,从第二调度方案改变为第一调度方案。
通过跟踪在特定裸芯处进行的写入操作的计数,数据储存装置可以识别一个或多个触发条件(例如,一个或多个触发事件)。响应于特定触发事件,数据储存装置可以动态地切换(和选择性地应用)多个调度方案的特定调度方案。动态地切换至(例如,动态地选择)特定调度方案可以导致与使用单个调度方案相比更高的存储器利用率。
图4的方法400、图5的方法500、图6的方法600、图7的方法700、和/或图8的方法800可以由专用集成电路(ASIC)、诸如中央处理单元(CPU)的处理单元、控制器、另一个硬件装置、固件装置、现场可编程门阵列(FPGA)装置、或者其任何结合进行初始化或者控制。作为示例,图4的方法400、图5的方法500、图6的方法600、图7的方法700、和/或图8的方法800可以由一个或多个处理器进行初始化或者控制,诸如包括在或耦接于图1的数据储存装置102和/或存取装置150的控制器的一个或多个处理器。配置为进行图4的方法400、图5的方法500、图6的方法600、图7的方法700、和/或图8的方法800的控制器可以能够在第一调度方案和第二调度方案之间选择以调度用于储存装置的操作。作为示例,图4-8的一个或多个方法可以单独地或结合地由图1的控制器120进行。为了说明,图4-8的方法的一个的部分可以与图4-8的方法的一个的第二部分相结合。此外,参考图4-8所描述的一个或多个操作可以是可选的,可以在至少部分地同时进行,和/或可以以与示出的或描述的操作的不同顺序进行。
在说明性示例中,可以编程处理器,以使用第一调度方案和第二调度方案,以调度用于储存装置的操作。例如,处理器可以执行指令,以根据第一调度方案来调度在多个裸芯的第一裸芯处进行的第一写入操作。处理器还可以执行指令,以在第一裸芯处进行第一写入操作后确定在第一裸芯处进行的写入操作的计数满足阈值。作为说明性的非限制性示例,在特定存储器操作的性能后,写入操作可以在第一裸芯处进行诸如擦除操作或者验证操作。处理器还可以基于阈值被满足,执行指令以选择第二调度方案,并且根据第二调度方案来调度在多个裸芯处进行的操作的集合。
在另一个说明性示例中,可以编程处理器以在不同的调度方案之间改变,以调度用于数据储存装置的操作。例如,处理器可以执行指令,以响应于在多个裸芯的第一裸芯处进行的第一写入操作来更新计数。作为说明性的非限制性示例,在诸如擦除操作或者验证操作的特定存储器操作的执行后,计数可以与在第一裸芯处进行的写入操作的计数相关联。响应于满足阈值的计数,处理器还可以执行指令以从第一调度方案改变为第二调度方案。处理器还可以执行指令以应用第二调度方案,以调度在多个裸芯处进行的操作的集合。
即使图1的数据储存装置102和/或存取装置150的各种组件在本文被描绘为区块组件并且以一般术语描述,这样的组件可以包括一个或多个微处理器、状态机或者配置为使能各种组件进行本文所描述的操作的其他电路。可以使用编程为进行本文所描述的操作的微处理器或者微控制器来实现各种组件的一个或多个方面,本文所描述的操作诸如图4的方法400、图5的方法500、图6的方法600、图7的方法700、和/或图8的方法800的一个或多个操作。在特定实现方式中,图1的控制器120、存储器104、第二存储器160和/或存取装置150的每一个包括处理器或者执行储存在存储器处的指令,诸如图1的数据储存装置102或存取装置150的非易失性存储器。可替代地或者此外,由处理器执行的可执行的指令可以储存在不是非易失性存储器的部分的分离的存储器位置,诸如在图1的存取装置150的数据储存装置102的只读存储器(ROM)。
结合图1-8的所描述的方面的一个或多个,设备包括在存储器处储存数据的装置。例如,用于储存数据的装置可以包括或对应于存储器104、图1的存储器裸芯103、一个或多个其他结构、装置、电路或者其任何结合。设备还可以包括用于控制用于储存数据的装置的装置。例如,用于控制的装置可以包括或对应于图1的控制器120、触发检测器180、调度器190、方案选择器191、模式寄存器192,一个或多个其他结构、装置、电路、模块或用于控制用于储存数据的装置的指令、或者其任何结合。
参考图1,数据储存装置102可以附属于或嵌入一个或多个存取装置内,诸如在通信装置(例如,存取装置150)的外壳内。例如,数据储存装置102可以集成在设备内,该设备诸如移动电话、计算机(例如,笔记本电脑、平板电脑或笔记本电脑)、音乐播放器、视频播放器、游戏装置或控制台、电子书籍阅读器、个人数字助理(PDA)、便携式导航装置或其他使用非易失性存储器的装置。但是,在其他实施例中,数据储存装置102可以实现在配置为选择性地耦接于一个或多个外置存取装置的便携式装置中。在其他实施例中,数据储存装置102可以是网络可存取数据储存***的组件(例如,固态驱动器(SSD)),诸如企业数据***、网络附加储存***、云数据储存***等。
作为说明性示例,为了进一步说明,数据储存装置102可以被配置为作为嵌入式存储器耦接至存取装置150,诸如与嵌入式多媒体卡(JEDEC固态科技联盟的商标,阿林顿,弗吉尼亚州)配置结合。数据储存装置102可以对应于eMMC装置。作为另一个示例,数据储存装置102可以对应于存储器卡,诸如安全数字卡、卡、miniSDTM卡(SD-3C LLC的商标,威尔明顿,特拉华州)、MultiMediaCardTM(MMCTM)卡(JEDEC固态科技联盟的商标,阿林顿,弗吉尼亚州)或(CF)卡(晟碟公司的商标,米尔皮塔斯,加利福尼亚州)。数据储存装置102可以按照JEDEC工业规范操作。例如,数据储存装置102可以按照JEDEC eMMC规范、JEDEC通用闪存储存(UFS)规范、一个或多个其他规范、或其结合来操作。在另一个实现方式中,数据储存装置102可以间接地耦接至存取装置150,例如经由网络。例如,数据储存装置102可以是数据中心储存***、企业储存***或储存区域网络的网络连接储存(NAS)装置或组件(例如,固态驱动器(SSD)装置)。
图1的存储器104和/或第二存储器160可以包括电阻随机存取存储器(ReRAM)、三维(3D)存储器、闪速存储器(例如,NAND存储器、NOR存储器、单级单元(SLC)闪速存储器、多级单元(MLC)闪存、分割位线NOR(DINOR)存储器、AND存储器、高电容耦接比(HiCR)装置、非对称非接触晶体管(ACT)装置或另一个闪存)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、一次性可编程存储器(OTP)或其结合。可替代地或此外,存储器104和/或第二存储器160可以包括另一个类型的存储器。图1的存储器104和/或第二存储器160可以包括半导体存储器装置。
半导体存储器设备包含易失性存储器设备,诸如动态随机存取存储器(dynamicrandom access memory,“DRAM”)或静态随机存取存储器(static random access memory,“SRAM”)设备,非易失性存储器设备,诸如磁阻随机存取存储器(magnetoresistive randomaccess memory,“MRAM”)、电阻式随机存取存储器(resistive random access memory,“ReRAM”)、电可擦除可编程只读存储器(electrically erasable programmable readonly memory、“EEPROM”)、闪存(其也可以被认为是EEPROM的子集)、铁电随机存取存储器(ferroelectric random access memory,“FRAM")和其他能够存储信息的半导体元件。存储器设备的每种类型可以具有不同的配置。例如,快闪存储器设备可以被配置在NAND或NOR配置中。
存储器设备可以由无源和/或有源元件以任何组合形成。通过非限制性的示例,无源半导体存储器元件包括ReRAM装置元件,在一些实施例中其包括电阻率转换储存元件,诸如反熔丝、相变材料等,并且可选地包括导向元件,诸如二极管等。还由非限制性的示例,有源半导体存储器元件包括EEPROM和闪存装置元件,其在一些实施例中包括含有电荷储存区域的元件,诸如浮置栅极、导电纳米颗粒、或者电荷储存电介质材料。
可以配置多个存储器元件,使得其串联连接或者使得每个元件可单独地存取。通过非限制性的示例,NAND配置中的闪存装置(NAND存储器)代表性地含有串联连接的存储器元件。可以配置NAND存储器阵列,使得阵列由存储器的多个串组成,其中串由分享单一位线的多个存储器元件组成并且作为组进行存取。或者,可以配置存储器元件,使得每个元件分别进行存取,例如,NOR存储器阵列。NAND和NOR存储器的配置是典型的,并且存储器元件可以以其它方式进行配置。
位于衬底内和/或衬底上的半导体存储器元件可以被布置为二维或三维,诸如二维存储器结构或三维存储器结构。在二维存储器结构中,半导体存储器元件被布置在单个平面或单个存储器装置级中。典型地,在二维存储器结构中,存储器元件被布置在大体上平行延伸至支撑存储器元件的衬底的主要表面的平面中(例如,在x-z方向的平面)。衬底可以是晶圆,存储器元件的层形成在晶圆上或晶圆中,或者衬底可以是载体衬底,在形成存储器元件之后载体衬底被附接至存储器元件。作为非限制性的示例,衬底可以包含诸如硅的半导体。
存储器元件可能以有序阵列被布置在诸如多个行和/或列的单个存储器装置级中。但是,存储器元件可以排列成非正规或非正交的配置。每个存储器元件可以具有两个或多个电极或者诸如位线和字线的接触线。
布置三维存储器阵列,使得存储器元件占据多个平面或多个存储器装置级,从而形成三维的结构(即,在x、y和z方向,其中y方向大体上垂直于衬底的主要表面,且x方向和y方向大体上平行于衬底的主要表面)。作为非限制性的示例,三维存储器结构可以被垂直地布置成多个二维存储器装置级的堆叠。作为另一个非限制性的示例,三维存储器阵列可以布置为多个垂直列(例如,列延伸至大体垂直于衬底的主表面,即在y方向),每个列具有在每个列中的多个存储器元件。列可以布置在二维配置中,例如,在x-z平面中,导致具有在多个垂直堆叠的存储器平面上的元件的存储器元件的三维布置。在三维中的存储器元件的其它配置也可以构成三维存储器阵列。
通过非限制性的示例,在三维NAND存储器阵列中,存储器元件可以一起耦接,以形成在单个水平(例如,x-z)存储器装置级内的NAND串。或者,存储器元件可以一起耦接,以形成穿越多个水平存储器装置级的垂直的NAND串。可以设想其他的三维配置,其中一些NAND串在单个存储器级中含有存储器元件,而其他字符串含有跨越穿过多个存储器级的存储器元件。三维存储器阵列也可以被设计在NOR配置中和ReRAM配置中。
典型地,在单片三维存储器阵列中,一个或多个存储器装置级形成在单个衬底上。可选地,单片三维存储器阵列也可以具有在单个衬底内的一个或多个存储器层。作为非限制性的示例,衬底可以包含诸如硅的半导体。在单片三维阵列中,构成阵列的每个存储器装置级的层典型地形成在阵列的底层存储器装置级的层上。但是,单片三维存储器阵列的相邻的存储器装置级的层可以被共享或者具有在存储器装置级之间的中介层。
或者,二维阵列可以单独形成,然后封装在一起以形成具有存储器的多个层的非单片存储器装置。例如,非单片堆叠可以通过在单独的衬底上形成存储器级然后在彼此的顶上堆叠存储器级来构建。衬底在堆叠前可以变薄或者从存储器装置级移除,但是随着存储器装置级最初在单独的衬底上形成,产生的存储器阵列不是单片三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片或非单片)可以在分别的芯片上形成然后封装在一起以形成堆叠芯片存储器装置。
相关联的电路典型地用于存储器元件的操作且与存储器元件通信。作为非限制性的示例,存储器装置可以具有用于控制和驱动存储器元件以完成诸如编程和读取的功能的电路。该相关联的电路可以与存储器元件在相同的衬底上和/或在分别的衬底上。例如,用于存储器读取-写入操作的控制器可以位于单独的控制器芯片上和/或与存储器元件在相同的衬底上。
本领域技术人员将认识到,本公开不限于所描述的二维和三维说明性结构,而是覆盖如本文所描述并且如本领域技术人员所理解的本公开范围内的所有相关存储器结构。本文所描述的实施例的图示旨在提供对各种实施例的通常理解。可以从本公开中利用和导出其他实施例,这样使得可以在不脱离本公开的范围的情况下进行结构和逻辑的替换和改变。本公开旨在覆盖各种实施例的任何和所有随后的调整或变化。本领域技术人员将认识到这样的修改在本公开的范围内。
以上公开的主题将被认为是说明性的而不是限制性的,并且所附权利要求旨在覆盖落入本公开的范围内的所有这样的修改、增强和其他实施例。因此,在法律允许的最大范围内,本公开的范围由所附权利要求及其等同物的最广泛的允许解释来确定,并且不受前述详细描述的限制或限制。
Claims (20)
1.一种方法,包括:
在包括存储器的数据储存装置处,所述存储器包括多个裸芯,进行:
配置所述数据储存装置以使用第一调度方案;
响应于检测触发事件,将所述数据储存装置配置为使用第二调度方案,其中所述第一调度方案和所述第二调度方案中的一个用于在所述多个裸芯处调度具有相同操作类型的存储器操作的性能,并且其中所述第一调度方案和所述第二调度方案中的另外一个用于择机调度存储器操作;
根据所述第二调度方案调度存储器操作;以及
执行所述存储器操作。
2.如权利要求1所述的方法,其中所述第一调度方案对应于机会型的调度方案,并且其中所述第二调度方案对应于流水线式的调度方案。
3.如权利要求1所述的方法,其中所述第一调度方案对应于流水线式的调度方案,并且其中所述第二调度方案对应于机会型的调度方案。
4.如权利要求1所述的方法,其中所述触发事件与擦除操作相关联。
5.如权利要求1所述的方法,其中所述触发事件与验证操作相关联。
6.如权利要求1所述的方法,还包括基于写入操作的计数检测所述触发事件。
7.如权利要求1所述的方法,还包括基于写入所述多个裸芯的裸芯的区块中的最后页来检测触发事件。
8.如权利要求1所述的方法,还包括:
检测第二触发事件,而所述数据储存装置配置为使用所述第二调度方案;以及
响应于检测所述第二触发事件,配置所述数据储存装置以使用所述第一调度方案。
9.如权利要求8所述的方法,其中所述第二触发事件与存储器操作相关联。
10.如权利要求9所述的方法,其中所述第二触发事件对应于调度所述存储器操作、初始化所述存储器操作的执行、或者完成所述存储器操作的执行。
11.如权利要求8所述的方法,还包括响应于检测所述第二触发事件:
根据所述第一调度方案来调度第二存储器操作;以及
执行所述第二存储器操作。
12.一种数据储存装置,包括:
包含多个裸芯的存储器;以及
耦接于所述存储器的控制器,其中所述控制器配置为选择第一调度方案,并且,响应于检测触发事件,从所述第一调度方案改变为第二调度方案,其中所述第一调度方案和所述第二调度方案中的一个用于在所述多个裸芯处调度具有相同操作类型的存储器操作的性能,并且所述第一调度方案和所述第二调度方案中的另外一个用于择机调度存储器操作,其中所述控制器还配置为根据所述第二调度方案来调度存储器操作,并且配置为初始化所述存储器操作的执行。
13.如权利要求12所述的数据储存装置,其中所述第一调度方案对应于机会型的调度方案,并且其中所述第二调度方案对应于流水线式的调度方案。
14.如权利要求13所述的数据储存装置,其中所述第一调度方案是所述数据储存装置的默认调度方案。
15.如权利要求13所述的数据储存装置,其中所述第二调度方案是所述数据储存装置的默认调度方案。
16.如权利要求12所述的数据储存装置,其中所述第一调度方案对应于流水线式的调度方案,并且其中所述第二调度方案对应于机会型的调度方案。
17.如权利要求16所述的数据储存装置,其中所述第一调度方案是所述数据储存装置的默认调度方案。
18.一种设备,包括:
用于在存储器处储存数据的构件,所述存储器包括多个裸芯;以及
用于控制所述用于储存的构件的构件,用于控制的所述构件配置为选择第一调度方案,并且,响应于检测触发事件,从所述第一调度方案改变为第二调度方案,其中所述第一调度方案和所述第二调度方案中的一个用于在所述多个裸芯处调度具有相同操作类型的存储器操作的性能,并且所述第一调度方案和所述第二调度方案中的另外一个用于择机调度存储器操作,其中用于控制的所述构件还配置为根据所述第二调度方案来调度存储器操作,并且配置为初始化所述存储器操作的执行。
19.如权利要求18所述的设备,其中所述第一调度方案包括机会型的调度方案,并且其中所述第二调度方案包括流水线式的调度方案。
20.如权利要求18所述的设备,其中所述第一调度方案包括流水线式的调度方案,并且其中所述第二调度方案包括机会型的调度方案。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562171857P | 2015-06-05 | 2015-06-05 | |
US62/171,857 | 2015-06-05 | ||
US14/749,498 US10289327B2 (en) | 2015-06-05 | 2015-06-24 | Scheduling scheme(s) for a multi-die storage device |
US14/749,498 | 2015-06-24 | ||
PCT/US2016/035783 WO2016196971A1 (en) | 2015-06-05 | 2016-06-03 | Scheduling scheme / schemes for a multi-die storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107980126A true CN107980126A (zh) | 2018-05-01 |
CN107980126B CN107980126B (zh) | 2021-10-15 |
Family
ID=56148678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680015734.4A Active CN107980126B (zh) | 2015-06-05 | 2016-06-03 | 用于调度多裸芯储存装置的方法、数据储存装置及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10289327B2 (zh) |
CN (1) | CN107980126B (zh) |
DE (1) | DE112016000696B4 (zh) |
WO (1) | WO2016196971A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010446A (zh) * | 2019-12-19 | 2021-06-22 | 美光科技公司 | 具有内部操作管理机制的设备 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170007958A (ko) * | 2015-07-13 | 2017-01-23 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
US10740042B2 (en) * | 2016-12-30 | 2020-08-11 | Western Digital Technologies, Inc. | Scheduling access commands for data storage devices |
US10635352B2 (en) * | 2018-05-10 | 2020-04-28 | Western Digital Technologies, Inc. | Distributed flash interface module processing |
US11907573B2 (en) * | 2021-06-21 | 2024-02-20 | Western Digital Technologies, Inc. | Performing background operations during host read in solid state memory device |
US11797228B2 (en) * | 2021-06-24 | 2023-10-24 | Western Digital Technologies, Inc. | Efficient handling of background operations for improving sustained performance of host reads and writes |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030033493A1 (en) * | 2001-08-09 | 2003-02-13 | Cismas Sorin C. | Random access memory controller with out of order execution |
US20060161728A1 (en) * | 2005-01-20 | 2006-07-20 | Bennett Alan D | Scheduling of housekeeping operations in flash memory systems |
CN101278267A (zh) * | 2005-08-03 | 2008-10-01 | 桑迪士克股份有限公司 | 具有经调度回收操作的非易失性存储器 |
US20090006720A1 (en) * | 2007-06-27 | 2009-01-01 | Shai Traister | Scheduling phased garbage collection and house keeping operations in a flash memory system |
CN101587461A (zh) * | 2008-05-20 | 2009-11-25 | 上海奇码数字信息有限公司 | 存储器访问调度装置、调度方法与存储器访问控制*** |
CN102279802A (zh) * | 2010-06-13 | 2011-12-14 | 中兴通讯股份有限公司 | 提高同步动态随机存储控制器的读操作效率的方法和装置 |
CN102831076A (zh) * | 2011-06-14 | 2012-12-19 | 三星电子株式会社 | 具有多位存储设备的数据存储***及其片上缓冲编程方法 |
CN102907145A (zh) * | 2010-03-19 | 2013-01-30 | 瑞典爱立信有限公司 | 用于多载波通信***中的自动增益控制的技术 |
US20130138912A1 (en) * | 2011-11-30 | 2013-05-30 | International Business Machines Corporation | Scheduling requests in a solid state memory device |
CN103226383A (zh) * | 2010-02-25 | 2013-07-31 | 莫塞德技术公司 | 具有多个存储器管芯和控制器管芯的半导体存储装置 |
CN103348314A (zh) * | 2010-09-15 | 2013-10-09 | 净睿存储股份有限公司 | Ssd环境中的i/o的调度 |
CN103370686A (zh) * | 2010-09-15 | 2013-10-23 | 净睿存储股份有限公司 | 存储环境中重建i/o读取操作的调度 |
CN103811050A (zh) * | 2012-11-02 | 2014-05-21 | 台湾积体电路制造股份有限公司 | 存储电路及操作存储电路的方法 |
US20150154108A1 (en) * | 2013-12-02 | 2015-06-04 | SanDisk Technologies, Inc. | Multi-die write management |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0971361B1 (en) | 1998-06-23 | 2003-12-10 | SanDisk Corporation | High data rate write process for non-volatile flash memories |
JP4129381B2 (ja) | 2002-09-25 | 2008-08-06 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置 |
US20050144516A1 (en) | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
US7395404B2 (en) | 2004-12-16 | 2008-07-01 | Sandisk Corporation | Cluster auto-alignment for storing addressable data packets in a non-volatile memory array |
US7280398B1 (en) | 2006-08-31 | 2007-10-09 | Micron Technology, Inc. | System and memory for sequential multi-plane page memory operations |
US8364918B1 (en) | 2007-04-06 | 2013-01-29 | Marvell International Ltd. | Sensed opportunistic garbage collection in memory components |
US8484407B2 (en) * | 2007-12-21 | 2013-07-09 | Rambus Inc. | Flash memory timing pre-characterization |
US8621137B2 (en) | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Metadata rebuild in a flash memory controller following a loss of power |
US8040744B2 (en) | 2009-01-05 | 2011-10-18 | Sandisk Technologies Inc. | Spare block management of non-volatile memories |
US8634240B2 (en) | 2009-10-28 | 2014-01-21 | SanDisk Technologies, Inc. | Non-volatile memory and method with accelerated post-write read to manage errors |
US8725935B2 (en) | 2009-12-18 | 2014-05-13 | Sandisk Technologies Inc. | Balanced performance for on-chip folding of non-volatile memories |
US8555095B2 (en) | 2010-07-26 | 2013-10-08 | Apple Inc. | Methods and systems for dynamically controlling operations in a non-volatile memory to limit power consumption |
US8819328B2 (en) | 2010-12-30 | 2014-08-26 | Sandisk Technologies Inc. | Controller and method for performing background operations |
TWI446345B (zh) | 2010-12-31 | 2014-07-21 | Silicon Motion Inc | 用來進行區塊管理之方法以及記憶裝置及控制器 |
US8918595B2 (en) * | 2011-04-28 | 2014-12-23 | Seagate Technology Llc | Enforcing system intentions during memory scheduling |
TWI479491B (zh) * | 2011-07-05 | 2015-04-01 | Phison Electronics Corp | 記憶體控制方法、記憶體控制器與記憶體儲存裝置 |
US8726104B2 (en) | 2011-07-28 | 2014-05-13 | Sandisk Technologies Inc. | Non-volatile memory and method with accelerated post-write read using combined verification of multiple pages |
US8954816B2 (en) | 2011-11-28 | 2015-02-10 | Sandisk Technologies Inc. | Error correction coding (ECC) decode operation scheduling |
US9355929B2 (en) | 2012-04-25 | 2016-05-31 | Sandisk Technologies Inc. | Data storage based upon temperature considerations |
US8566671B1 (en) | 2012-06-29 | 2013-10-22 | Sandisk Technologies Inc. | Configurable accelerated post-write read to manage errors |
US9734911B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
US9032165B1 (en) * | 2013-04-30 | 2015-05-12 | Amazon Technologies, Inc. | Systems and methods for scheduling write requests for a solid state storage device |
US9772777B2 (en) * | 2015-04-27 | 2017-09-26 | Southwest Research Institute | Systems and methods for improved access to flash memory devices |
-
2015
- 2015-06-24 US US14/749,498 patent/US10289327B2/en active Active
-
2016
- 2016-06-03 WO PCT/US2016/035783 patent/WO2016196971A1/en active Application Filing
- 2016-06-03 CN CN201680015734.4A patent/CN107980126B/zh active Active
- 2016-06-03 DE DE112016000696.9T patent/DE112016000696B4/de active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030033493A1 (en) * | 2001-08-09 | 2003-02-13 | Cismas Sorin C. | Random access memory controller with out of order execution |
US20060161728A1 (en) * | 2005-01-20 | 2006-07-20 | Bennett Alan D | Scheduling of housekeeping operations in flash memory systems |
CN101278267A (zh) * | 2005-08-03 | 2008-10-01 | 桑迪士克股份有限公司 | 具有经调度回收操作的非易失性存储器 |
US20090006720A1 (en) * | 2007-06-27 | 2009-01-01 | Shai Traister | Scheduling phased garbage collection and house keeping operations in a flash memory system |
CN101587461A (zh) * | 2008-05-20 | 2009-11-25 | 上海奇码数字信息有限公司 | 存储器访问调度装置、调度方法与存储器访问控制*** |
CN103226383A (zh) * | 2010-02-25 | 2013-07-31 | 莫塞德技术公司 | 具有多个存储器管芯和控制器管芯的半导体存储装置 |
CN102907145A (zh) * | 2010-03-19 | 2013-01-30 | 瑞典爱立信有限公司 | 用于多载波通信***中的自动增益控制的技术 |
CN102279802A (zh) * | 2010-06-13 | 2011-12-14 | 中兴通讯股份有限公司 | 提高同步动态随机存储控制器的读操作效率的方法和装置 |
CN103348314A (zh) * | 2010-09-15 | 2013-10-09 | 净睿存储股份有限公司 | Ssd环境中的i/o的调度 |
CN103370686A (zh) * | 2010-09-15 | 2013-10-23 | 净睿存储股份有限公司 | 存储环境中重建i/o读取操作的调度 |
CN102831076A (zh) * | 2011-06-14 | 2012-12-19 | 三星电子株式会社 | 具有多位存储设备的数据存储***及其片上缓冲编程方法 |
US20130138912A1 (en) * | 2011-11-30 | 2013-05-30 | International Business Machines Corporation | Scheduling requests in a solid state memory device |
CN103811050A (zh) * | 2012-11-02 | 2014-05-21 | 台湾积体电路制造股份有限公司 | 存储电路及操作存储电路的方法 |
US20150154108A1 (en) * | 2013-12-02 | 2015-06-04 | SanDisk Technologies, Inc. | Multi-die write management |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010446A (zh) * | 2019-12-19 | 2021-06-22 | 美光科技公司 | 具有内部操作管理机制的设备 |
CN113010446B (zh) * | 2019-12-19 | 2024-05-07 | 美光科技公司 | 具有内部操作管理机制的设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107980126B (zh) | 2021-10-15 |
US20160357471A1 (en) | 2016-12-08 |
WO2016196971A1 (en) | 2016-12-08 |
DE112016000696B4 (de) | 2023-02-23 |
US10289327B2 (en) | 2019-05-14 |
DE112016000696T5 (de) | 2017-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10572169B2 (en) | Scheduling scheme(s) for a multi-die storage device | |
US10394706B2 (en) | Non-volatile storage with adaptive command prediction | |
US10372603B2 (en) | Handling of unaligned writes | |
CN107980126A (zh) | 多裸芯储存装置的调度方案 | |
US9530517B2 (en) | Read disturb detection in open blocks | |
US9542344B2 (en) | Datapath management in a memory controller | |
US20160162215A1 (en) | Meta plane operations for a storage device | |
CN108139970A (zh) | 用于直接写入多级单元存储器的***和方法 | |
US9886341B2 (en) | Optimizing reclaimed flash memory | |
US20160179399A1 (en) | System and Method for Selecting Blocks for Garbage Collection Based on Block Health | |
WO2019094117A1 (en) | Adaptive device quality of service by host memory buffer range | |
US10402117B2 (en) | Memory health monitoring | |
CN106663046A (zh) | 用于刷新存储器设备中的数据的***和方法 | |
WO2017044167A1 (en) | Proxy wordline stress for read disturb detection | |
CN107787486A (zh) | 命令授权的***和方法 | |
US10629260B2 (en) | Dynamic management of programming states to improve endurance | |
US9824760B2 (en) | Systems and methods of generating shaped random bits | |
US9658790B2 (en) | Memory system and method for power-based operation scheduling | |
CN107810533A (zh) | 使用位线缺陷信息解码数据 | |
US20160163397A1 (en) | Intrinsic memory block health monitoring | |
CN110010185A (zh) | 存储器***及其操作方法 | |
US20160109926A1 (en) | Modified write process based on a power characteristic for a data storage device | |
US11720280B2 (en) | Storage system and method for improving utilization of a communication channel between a host and the storage system | |
US11334256B2 (en) | Storage system and method for boundary wordline data retention handling | |
CN108132895A (zh) | 配置为与主机执行双向通信的存储装置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |