CN109976666B - 非易失性存储器装置和系统及其操作执行方法 - Google Patents
非易失性存储器装置和系统及其操作执行方法 Download PDFInfo
- Publication number
- CN109976666B CN109976666B CN201811653997.5A CN201811653997A CN109976666B CN 109976666 B CN109976666 B CN 109976666B CN 201811653997 A CN201811653997 A CN 201811653997A CN 109976666 B CN109976666 B CN 109976666B
- Authority
- CN
- China
- Prior art keywords
- controller
- nonvolatile memory
- data
- memory device
- commands
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- 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
- G06F13/1673—Details of memory controller using buffers
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- 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/0656—Data buffering 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/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/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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1063—Control signal output circuits, e.g. status or busy flags, feedback command signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1066—Output synchronization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1093—Input synchronization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5642—Multilevel memory with buffers, latches, registers at input or output
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5648—Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant
-
- 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/14—Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory
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)
- Software Systems (AREA)
- Read Only Memory (AREA)
Abstract
公开一种非易失性存储器装置和系统及其操作执行方法。一种非易失性存储器装置包括非易失性存储器单元阵列、输入/输出板单元和外围电路。非易失性存储器装置执行由控制器请求的操作。输入/输出板组件提供路径,其中,通过所述路径,与由控制器请求的操作有关的命令和数据被输入到非易失性存储器装置,被请求的操作的执行结果被输出到控制器。外围电路被配置为:加载有由控制器提供的多个命令,临时存储由控制器提供的将被写入在非易失性存储器单元阵列中的编程数据和从非易失性存储器单元阵列读取的数据,基于非易失性存储器装置的内部操作状态,将所述多个命令的执行顺序调整为与控制器异步,并以调整的执行顺序执行所述多个命令。
Description
本申请要求于2017年12月28日提交到韩国知识产权局的第10-2017-0181828号韩国专利申请的优先权,所述韩国专利申请的公开通过引用完整地包含于此。
技术领域
本发明构思的示例性实施例涉及一种半导体集成电路,更具体地讲,涉及一种能够通过异步执行从主机接收的请求来改善性能的非易失性存储器装置,以及一种用于执行非易失性存储器装置的操作的方法。
背景技术
半导体存储器装置可根据当电源中断时存储的数据是被保存还是丢失而被分类为易失性存储器装置或非易失性存储器装置。即使电源关闭,非易失性存储器装置也可保持数据。非易失性存储器装置的典型示例是闪存装置。闪存装置广泛用作大容量数据存储装置,其中,大容量数据存储装置用于存储各种电子装置(诸如,例如,计算机、移动电话、数码相机、便携式摄像机、录音机、MP3播放器、个人数字助理(PDA)、手持PC、游戏机、传真机、扫描机、打印机等)中的程序和数据。
在计算系统中,数据存储装置可包括非易失性存储器装置和控制器。非易失性存储器装置可位于系统的最低层,控制器可位于非易失性存储器装置的上层。非易失性存储器装置可根据从控制器接收的命令被动地执行操作。例如,传统的闪存装置仅能够以控制器给定的顺序被动地执行编程操作、读取操作和擦除操作。由于操作的这种顺序执行,在闪存装置中执行的操作之间频繁产生空闲时间,从而增加了所有操作的执行时间,并且降低了闪存装置的性能以及采用该闪存装置的计算系统的性能。
发明内容
本发明构思的示例性实施例提供一种非易失性存储器装置以及包括所述非易失性存储器装置的非易失性存储器系统,其中,所述非易失性存储器装置能够以如下方式高效管理数据的输入和输出,并且使空闲时间最小化(或减少):将由外部主机或控制器提供的数据和多个命令加载在其中,并根据所述非易失性存储器装置的内部操作状态和/或预定调度策略异步调整操作的执行顺序。
本发明构思的示例性实施例提供一种执行非易失性存储器装置的操作的方法,其中,非易失性存储器装置能以如下方式高效管理数据的输入和输出,并使空闲时间最小化(或减少):将由外部主机或控制器提供的数据和多个命令加载在非易失性存储器装置中,并根据非易失性存储器装置的内部操作状态和/或预定调度策略异步调整操作的执行顺序。
根据本发明构思的示例性实施例,一种非易失性存储器装置包括非易失性存储器单元阵列、输入/输出板组件和外围电路。非易失性存储器单元阵列被配置为存储数据,所述非易失性存储器装置执行由控制器请求的操作。输入/输出板组件被配置为:提供路径,其中,通过所述路径,与由控制器请求的操作有关的命令和数据被输入到非易失性存储器装置,请求的操作的执行结果被输出到控制器。外围电路被配置为:加载由控制器提供的多个命令,临时存储由控制器提供的将被写入在非易失性存储器单元阵列中的编程数据和从非易失性存储器单元阵列读取的数据,将所述多个命令的执行顺序调整为与控制器异步,并以调整的执行顺序来执行所述多个命令。
根据本发明构思的示例性实施例,一种非易失性存储器系统包括:非易失性存储器装置;控制器,被配置为向非易失性存储器装置发送请求以执行操作。非易失性存储器装置包括:非易失性存储器单元阵列,被配置为存储数据;输入/输出板组件;外围电路。输入输出板组件被配置为:提供路径,其中,通过所述路径,与由控制器请求的操作有关的命令和数据被输入到非易失性存储器装置,请求的操作的执行结果被输出到控制器。外围电路被配置为加载由控制器提供的多个命令,临时存储由控制器提供的将被写入在非易失性存储器单元阵列中的编程数据和从非易失性存储器单元阵列读取的数据,将所述多个命令的执行顺序调整为与控制器异步,并以调整的执行顺序执行所述多个命令。
根据本发明构思的示例性实施例,一种在非易失性存储器装置中执行的操作的方法包括:解析由控制器通过非易失性存储器装置的输入/输出板组件提供的命令。非易失性存储器装置包括非易失性存储器单元阵列和外围电路。外围电路包括队列、数据缓冲器和命令解析器。所述方法还包括:将解析的命令加载到队列中;将由控制器通过输入/输出板组件提供的编程数据和从非易失性存储器单元阵列读取的数据中的至少一个临时存储在数据缓冲器的数据区中;使用与存储在数据缓冲器中的数据有关的信息更新数据缓冲器的映射区;将加载到队列的多个命令的执行顺序调整为与控制器异步;以调整的执行顺序执行加载到队列的多个命令。
由于根据本发明构思的示例性实施例的非易失性存储器装置包括能够存储多个命令的队列和能够临时存储大量数据的数据缓冲器,所以使用队列和数据缓冲器来主动和智能地控制由外部主机(或控制器)指示的操作。结果,非易失性存储器装置的空闲时间可被最小化(或减少),因此,改善性能。此外,在外部主机和非易失性存储器装置之间高效管理数据输入和输出,从而改善了性能。
根据本发明构思的示例性实施例,一种非易失性存储器装置包括:非易失性存储器单元阵列,被配置为存储数据,其中,所述非易失性存储器装置执行由控制器请求的操作;输入/输出板组件,被配置为:提供路径,其中,通过所述路径,与由控制器请求的操作有关的命令和数据被输入到所述非易失性存储器装置,请求的操作的执行结果被输出到控制器;外围电路,被配置为:加载由控制器提供的多个命令,临时存储由控制器提供的将被写入在非易失性存储器单元阵列中的编程数据和从非易失性存储器单元阵列读取的数据,将所述多个命令的执行顺序调整为与控制器异步,并以调整的执行顺序执行所述多个命令。
由控制器提供的多个命令中的每个命令包括唯一的任务ID,并且由控制器提供的多个命令基于唯一的任务ID而被彼此区分开来。
非易失性存储器单元阵列包括包含多个层的垂直结构,并且外围电路布置在所述垂直结构的上方或下方。
外围电路包括:页缓冲器,被配置为:存储由控制器提供的将被写入在非易失性存储器单元阵列中的编程数据和从非易失性存储器单元阵列读取的数据;命令解析器,被配置为:解析由控制器通过输入/输出板组件提供的命令;队列,被配置为:临时存储由控制器通过输入/输出板组件提供的多个命令;数据缓冲器,被配置为:临时存储由控制器通过输入/输出板组件提供的编程数据,并将编程数据传送到页缓冲器,或者接收和临时存储从页缓冲器读取的数据,并通过输入/输出板组件将读取的数据传送到控制器,以执行与临时存储在队列中的多个命令对应的操作;调度器,被配置为:将临时存储在队列中的多个命令的执行顺序调整为与由控制器提供的顺序不同,其中,临时存储在队列中的多个命令的执行顺序基于所述非易失性存储器装置的内部操作状态和/或预定调度策略而被调整,并且临时存储在队列中的多个命令以调整的执行顺序被执行。
数据缓冲器包括:数据区,被配置为临时存储编程数据和读取数据,映射区,被配置为存储在数据区中存储的数据的列表和用于管理数据有效性的信息。
队列是循环队列。
外围电路还包括:任务状态寄存器,被配置为存储队列的状态信息值,其中,外围电路被配置为:当临时存储在队列中的多个命令的执行完成时,更新存储在任务状态寄存器中的状态信息值;控制器被配置为:使用更新的状态信息值,确认临时存储在队列中的多个命令的执行的完成。
根据本发明构思的示例性实施例,一种非易失性存储器系统包括:非易失性存储器装置;控制器,被配置为向非易失性存储器装置发送请求以执行操作,其中,非易失性存储器装置包括:非易失性存储器单元阵列,被配置为存储数据;输入/输出板组件,被配置为:提供路径,其中,通过所述路径,与由控制器请求的操作有关的命令和数据被输入到非易失性存储器装置,请求的操作的执行结果被输出到控制器;外围电路,被配置为:加载由控制器提供的多个命令,临时存储由控制器提供的将被写入在非易失性存储器单元阵列中的编程数据和从非易失性存储器单元阵列读取的数据,将所述多个命令的执行顺序调整为与控制器异步,并以调整的执行顺序执行所述多个命令。
外围电路包括:页缓冲器,被配置为:存储由控制器提供的将被写入在非易失性存储器单元阵列中的编程数据和从非易失性存储器单元阵列读取的数据;命令解析器,被配置为:解析由控制器通过输入/输出板组件提供的命令;第一队列,被配置为:临时存储由控制器通过输入/输出板组件提供的多个命令;第一数据缓冲器,被配置为:临时存储由控制器通过输入/输出板组件提供的编程数据,并将编程数据传送到页缓冲器,或者接收和临时存储从页缓冲器读取的数据,并通过输入/输出板组件将从页缓冲器读取的数据传送到控制器,以执行与临时存储在第一队列中的多个命令对应的操作;调度器,被配置为:将临时存储在第一队列中的多个命令的执行顺序调整为与由控制器提供的顺序不同,其中,临时存储在第一队列中的多个命令的执行顺序基于非易失性存储器装置的内部操作状态和/或预定调度策略而被调整,并且临时存储在第一队列中的多个命令以调整的执行顺序被执行。
当控制器通过发出命令或引脚控制来请求将被执行的刷新操作时,非易失性存储器装置通过将临时存储在第一数据缓冲器中的数据之中的特定数据强制编程在非易失性存储器单元阵列的指定位置来执行刷新操作。
非易失性存储器系统支持预取操作,其中,预取操作包括:根据由控制器发出的预取请求或者根据非易失性存储器装置的自确定操作,从预先写入在非易失性存储器单元阵列中的数据中读取存储在顺序读取部分中的数据,并将读取的数据存储在第一数据缓冲器中。
控制器包括:第二数据缓冲器,被配置为:临时存储将被写入在非易失性存储器单元阵列中的编程数据和从非易失性存储器装置传送的读取的数据中的至少一个,其中,编程数据被外部主机请求写入在非易失性存储器单元阵列中;第二队列,被配置为:临时存储由控制器向非易失性存储器装置提供的多个命令,其中,由控制器向非易失性存储器装置提供的多个命令首先被外部主机提供给控制器;核逻辑组件,被配置为:调整传送临时存储在第二队列中的多个命令的顺序,并以调整的顺序将存储在第二队列中的多个命令传送到非易失性存储器装置。
非易失性存储器装置包括第一任务状态寄存器,控制器包括第二任务状态寄存器,其中,第一任务状态寄存器和第二任务状态寄存器被配置为:分别存储第一队列的状态信息值和第二队列的状态信息值,其中,当临时存储在第一队列中的多个命令的执行完成时,存储在第一任务状态寄存器中的第一状态信息值被更新,并且控制器接收更新的第一状态信息值并更新第二任务状态寄存器,以确认相应命令的执行的完成。
控制器向由控制器提供的每个命令添加唯一的任务ID,并将分配有唯一的任务ID的每个命令发送到非易失性存储器装置,其中,唯一的任务ID将由控制器提供的多个命令彼此区分开来。
根据本发明构思的示例性实施例,一种在非易失性存储器装置中执行操作的方法包括:解析由控制器通过非易失性存储器装置的输入/输出板组件提供的命令;其中,非易失性存储器装置包括非易失性存储器单元阵列和外围电路,其中,外围电路包括队列、数据缓冲器和命令解析器;将解析的命令加载到队列中;将由控制器通过输入/输出板组件提供的编程数据和从非易失性存储器单元阵列读取的数据中的至少一个临时存储在数据缓冲器的数据区中;使用与存储在数据缓冲器中的数据有关的信息来更新数据缓冲器的映射区;基于非易失性存储器装置的内部操作状态和/或预定调度策略,将加载到队列的多个命令的执行顺序调整为与控制器异步;以调整的执行顺序执行加载到队列的多个命令。
所述方法还包括:执行刷新操作,其中,刷新操作包括:响应于来自控制器的刷新请求,将临时存储在数据缓冲器的数据之中的特定数据强制编程到非易失性存储器单元阵列中的指定位置,其中,刷新操作在非易失性存储器装置中具有最高优先级。
所述的方法还包括:响应于由控制器发出的预取请求或者根据非易失性存储器装置的自确定操作,执行预取操作,其中,预取操作包括:从预先写入在非易失性存储器单元阵列中的数据中读取存储在顺序读取部分中的数据,并将读取的数据存储在数据缓冲器中。
控制器向每个命令添加唯一的任务ID,并且将分配有唯一的任务ID的每个命令发送到非易失性存储器装置,其中,唯一的任务ID将所述多个命令彼此区分开来。
所述方法还包括:通过非易失性存储器装置管理任务状态信息,其中,任务状态信息指示加载在队列中的多个命令中的每个命令的执行是否完成,其中,控制器通过检查由非易失性存储器装置管理的任务状态信息,确认所述多个命令中的每个命令的执行是否完成。
保持任务状态信息的步骤包括:将队列的状态信息值存储在设置在外围电路中的任务状态寄存器中;当加载到队列的多个命令的执行完成时,由外围电路更新存储在任务状态寄存器中的状态信息值;由控制器使用更新的状态信息值,确认加载到队列的多个命令的执行的完成。
附图说明
通过参照附图对本发明构思的示例性实施例进行详细描述,本发明构思的以上和其它特征将变得更清楚,其中:
图1是示出根据本发明构思的示例性实施例的非易失性存储器装置的配置的框图。
图2是示出包括根据本发明构思的示例性实施例的非易失性存储器装置的非易失性存储器系统的配置的框图。
图3是示出以外围上单元(cell over peripheral,COP)结构构造的根据本发明构思的示例性实施例的非易失性存储器装置的立体图。
图4示出与包括传统的非易失性存储器装置的比较性示例相应的时序图。
图5示出与根据本发明构思的示例性实施例的非易失性存储器装置相应的时序图。
图6是示意性示出根据本发明构思的示例性实施例的非易失性存储器装置执行从外部控制器(主机)接收的命令的过程的流程图。
图7是用于描述设置在根据本发明构思的示例性实施例的非易失性存储器装置中的数据缓冲器中的有效数据映射方法的示图。
图8是用于描述外部控制器(主机)和根据本发明构思的示例性实施例的非易失性存储器装置之间的接口协议的流程图。
图9示出根据本发明构思的示例性实施例的分别设置在外部控制器(主机)和非易失性存储器装置中的任务状态寄存器的表。
图10示出根据本发明构思的示例性实施例的用于外部控制器(主机)将命令传送到非易失性存储器装置并确认执行完成的命令序列。
图11是示出与可在根据本发明构思的示例性实施例的非易失性存储器装置中执行的刷新操作有关的数据和命令的流动的示图。
图12是示出与可在根据本发明构思的示例性实施例的非易失性存储器装置中执行的预取操作有关的数据和命令的流动的示图。
具体实施方式
在下文中将参照附图更充分地描述本发明构思的示例性实施例。贯穿附图,相同的参考标号可表示相同的元件。
将理解,在此使用术语“第一”、“第二”、“第三”等来将一个元件与另一元件区分开来,并且这些元件不受这些术语限制。因此,示例性实施例中的“第一”元件可被描述为另一示例性实施例中的“第二”元件。
图1是示出根据本发明构思的示例性实施例的非易失性存储器装置100的示意配置的框图。
参照图1,在一个示例性实施例中,非易失性存储器装置100包括非易失性存储器单元阵列110(也被称为非易失性存储器阵列110)、输入/输出(I/O)板单元130和外围电路200。输入/输出板单元130是包括多个输入/输出板的组件,其中,多个输入/输出板允许数据被传输到非易失性存储器装置100中或被传输到非易失性存储器装置100之外。非易失性存储器装置100可响应于从外部主机或控制器接收的数据读取或写入请求而执行数据读取或写入操作。这里,主机或控制器可位于非易失性存储器装置100的外部,并表示生成数据读取和写入请求并将数据读取和写入请求发送到非易失性存储器装置100的装置。控制器可直接或间接地充当外部主机的角色。控制器可被认为是主机的一部分或示例。因此,下面提到的控制器也可被认为是相对于非易失性存储器装置100的外部主机。
非易失性存储器单元阵列110可以是例如记录介质,其中,数据被最终存储在记录介质上,并且非易失性存储器单元阵列110可包括不管电源是接通还是断开都能够保持记录的数据的多个非易失性存储器单元。多个存储器单元可以以矩阵的形式布置并连接到多条字线和多条位线。非易失性存储器单元可以是整体被布置在一个平面中的平面结构。可选择地,全部非易失性存储器单元可分布在多个平面上。图1示出所有的非易失性存储器单元(例如,全部的非易失性存储器单元)分布在第一平面112A和第二平面112B上的示例性实施例。非易失性存储器单元阵列110可以是第一平面112A和第二平面112B共面的二维阵列(或平面)结构。可选择地,非易失性存储器单元阵列110可以是三维垂直阵列结构。所有的非易失性存储器单元分布的平面的数量可以是三或更多,并且这些平面可具有上下布置关系。
根据示例性实施例,非易失性存储器单元可属于NAND闪存单元阵列。在其他示例性实施例中,非易失性存储器单元可以是相变随机存取存储器(PRAM)单元、电阻随机存取存储器(RRAM)单元、纳米浮栅存储器(NFGM)单元、聚合物随机存取存储器(PoRAM)单元、磁随机存取存储器(MRAM)单元、铁电随机存取存储器(FRAM)单元等中的任何一个。
输入/输出板单元130是传输命令和数据的路径。例如,输入/输出板单元130可接收与由外部主机或外部控制器请求的操作有关的命令(例如,包括地址、控制信号等)和数据,并可将请求的操作的数据、地址和执行结果输出到外部主机或控制器。输入/输出板单元130可包括多个DQ 132,其中,每个DQ 132是双向的输入和输出板(pad)。输入/输出板可连接到外部主机或控制器。进入到输入/输出板单元130的命令可被发送到命令解析单元250(也被称为命令解析器250)或队列270。进入到输入/输出板单元130的写入数据可被传送到数据缓冲器210,这将在下面进一步详细地描述。存储在数据缓冲器210中的读取数据可经由输入/输出板单元130被传送到外部主机或控制器。例如,输入/输出板单元130可用作将命令解析单元250和数据缓冲器210连接到外部主机或控制器的接口。
根据本发明构思的示例性实施例,如下详细所述,外围电路200以与传统外围电路不同的方式将由外部主机或外部控制器提供的多个命令加载到自身上。外围电路200可临时存储由控制器提供的将被写入在非易失性存储器单元阵列110中的数据和从非易失性存储器单元阵列110读取的数据。外围电路200可与控制器异步地执行多个命令。例如,外围电路200可以以与主机或控制器提供命令的顺序不同的顺序来执行多个命令。例如,可基于非易失性存储器装置100内部的操作状态,以能使空闲时间最小化(或减少)的顺序来调整命令的执行顺序。
根据示例性实施例,外围电路200包括数据缓冲器210、页缓冲器230、命令解析单元250、队列270和调度器290。
页缓冲器230可通过多条位线连接到非易失性存储器单元阵列110。页缓冲器230可包括多个页缓冲器。在一个示例性实施例中,一条位线可连接到一个页缓冲器。在另一示例性实施例中,两条或更多条位线可结合到一个页缓冲器。页缓冲器230可连接到数据缓冲器210。页缓冲器230可响应于编程操作中的列地址,从数据缓冲器210接收将被写入(或编程)在非易失性存储器单元阵列110的选择的页中的编程数据,并可临时存储编程数据,直到编程数据被写入到非易失性存储器单元阵列110的指定地址为止。页缓冲器230也可在读取操作期间临时存储从非易失性存储器单元阵列110的选择的页感测的读取数据,直到读取数据被传送到数据缓冲器210为止。因此,页缓冲器230可根据非易失性存储器装置100的操作模式,作为写入驱动器或作为感测放大器进行操作。此外,页缓冲器230可用作能临时存储数据的临时存储区。页缓冲器230可具有等于页大小的数据存储空间。页缓冲器230可被实现为例如动态随机存取存储器(DRAM)。在NAND闪存中,页大小可以是例如16K比特。
命令解析单元250可解析由外部主机或控制器通过输入/输出板单元130提供的命令序列。命令解析单元250可连接到输入/输出板单元130,以从外部主机或控制器接收命令。命令解析单元250可访问队列270,并可将解析的命令传送到队列270。
队列270可将由外部主机或控制器经由输入/输出板单元130提供的多个命令临时加载到自身上。队列270可连接到命令解析单元250。因此,队列270可通过命令解析单元250接收命令。可选择地,队列270可连接(例如,直接连接)到输入/输出板单元130。因此,在一个示例性实施例中,队列270可直接接收并存储由外部主机或控制器经由输入/输出板单元130提供的命令序列,而不需要经过命令解析单元250。命令解析单元250可在命令序列被加载到队列270中之后访问队列270,并解析命令。
队列270可被实现为循环队列。根据示例性实施例,队列270可被实现为循环缓冲器或循环寄存器。可选择地,队列270可被实现为逻辑电路。队列270的深度可对应于将被加载的命令的数量。例如,如果队列270的深度(即,存储元素的数量)是八,则八条命令可被存储。通过使队列270的深度更深,可检查更多将被执行的命令,然后可确定命令的执行顺序。在这种情况下,队列270利用了更多的空间,但执行命令的操作的效率可被提高。
参照非易失性存储器装置以提供的顺序同步执行从外部主机或控制器接收的命令的比较示例,非易失性存储器装置不包括队列和数据缓冲器。由于非易失性存储器装置以提供的顺序执行命令,所以在比较示例中可能导致空闲时间。相比之下,本发明构思的示例性实施例通过将多个命令加载到队列270中并将加载的命令的执行顺序调整为与由控制器提供的命令的输入顺序异步,来使空闲时间最小化(或减少)。因此,根据示例性实施例,用于临时存储和保持与执行存储在队列270中的命令有关的大量数据的存储空间(即,数据缓冲器210)被利用。
数据缓冲器210可设置在页缓冲器230和输入/输出板单元130之间。数据缓冲器210可连接到输入/输出板单元130以用于数据传送。数据缓冲器210可临时存储从外部主机或控制器通过输入/输出板单元130传送的编程数据,并将将被写入到非易失性存储器单元阵列110中的数据传送到页缓冲器230,以执行加载在队列270中的预定命令的操作。数据缓冲器210可从页缓冲器230接收从非易失性存储器单元阵列110读取的数据,临时存储这些数据,然后通过输入/输出板单元130将这些数据发送到外部主机或控制器。
数据缓冲器210可包括数据区210A和映射区210B。数据区210A是用于临时存储编程数据和/或读取数据的区域。映射区210B是用于存储临时存储在数据区210A中的数据(例如,存储地址、数据大小、相关操作信息等)和用于管理数据有效性的信息的列表的区域。
根据示例性实施例,由于数据缓冲区210可足以用作临时数据存储空间,所以数据缓冲器210可被实现为具有高的数据写入和读取速度的DRAM。由于数据缓冲器210缓冲大量数据,所以非易失性存储器装置100的性能可被改善。因此,数据缓冲器210可被调整为具有足够大的大小的存储空间,以便展现期望的性能。在示例性实施例中,数据缓冲器210具有比页缓冲器230的存储空间更大的存储空间。
数据缓冲器210可设置在非易失性存储器装置100中,但可设置在除了现有外围电路被布置在一起的区域之外的第三区域中。在示例性实施例中,外围电路200的区域是指包括现有外围电路区域和第三区域二者的区域。例如,本公开的示例性实施例中的外围电路200的区域可被定义为与非易失性存储器装置100的除了非易失性存储器单元阵列110的区域和输入/输出板单元130的区域之外的剩余区域对应的区域。
调度器290可包括执行加载在队列270中的多个命令的逻辑电路。逻辑电路可基于非易失性存储器装置100的操作状态和/或非易失性存储器装置100的预定调度策略,调整执行顺序。在示例性实施例中,非易失性存储器装置100的操作状态是指例如当前正在非易失性存储器装置100中执行的命令和随后将在非易失性存储器装置100中执行的命令。例如,操作状态可指当前正在执行的命令的类型(例如,非易失性存储器装置是处于空闲状态、读取操作还是编程操作)、随后将被执行的命令的类型、每个命令的预期执行时间等。逻辑电路可根据非易失性存储器装置100的预定调度策略来调整执行顺序。调度器290可访问队列270。调度器290可确定应结合加载在队列270中的所有命令而执行的所有操作。由于将被执行的命令的操作是已知的,所以调度器290可基于它的调度策略确定将使性能最大化的最佳执行顺序。调度策略的目标点是使非易失性存储器装置100的空闲时间最小化(或减少),并使数据输入/输出管理的效率最大化(或增加)。在示例性实施例中,由调度器290调整的命令执行顺序与由外部主机或控制器提供的命令执行顺序不同。例如,在示例性实施例中,调度器290改变原始的执行顺序,使得加载在队列270中的多个命令在不与由外部主机或控制器提供的顺序同步的情况下被执行。例如,在示例性实施例中,命令的执行顺序被调整以使空闲时间最小化(或减少),并提高数据输入/输出管理的效率。调度器290可保持并管理用于管理队列270的状态的第一任务状态寄存器(TSR)292,这将在下面进一步详细描述。
外围电路200还可包括地址解码器240。地址解码器240可通过串选择线、多条字线和地选择线连接到存储器单元阵列110。在向非易失性存储器单元阵列110编程的操作或从非易失性存储器单元阵列110读取的操作期间,地址解码器240可基于从外部控制器提供的行地址,将多条字线中的一条确定为选择的字线,并可将多条字线中除选择的字线之外剩余的字线确定为未选择的字线。非易失性存储器装置100的操作所需的字线电压可经由地址解码器240施加到多条字线。字线电压可由电压生成器基于从外部控制器提供的控制信号而生成。
外围电路200还可包括以上没有描述的其他外围电路。它们的示例可包括控制电路和电压生成电路等,其中,控制电路被配置为基于命令和地址控制存储器单元阵列110的数据编程(写入)/读取/擦除操作,电压生成电路被配置为基于电源电压生成将被供应给地址解码器240的非易失性存储器装置100的操作所需的字线电压VWL。
根据示例性实施例,外围电路200可应用于在基底平面结构上以二维结构(或平面结构)形成非易失性存储器单元阵列110的情况,或者在一个基底上以三维结构(或垂直结构)形成非易失性存储器单元阵列110的情况。当非易失性存储器阵列110是平面结构时,外围电路200可设置在与非易失性存储器阵列110的区域相同的平面上。在这种情况下,对外围电路200可占据的空间的限制可能相对大。
可选择地,当非易失性存储器单元阵列110是多个层在垂直方向上堆叠的垂直结构时,外围电路200可以以与非易失性存储器阵列110的区域的垂直关系来布置。例如,在示例性实施例中,非易失性存储器单元阵列110是包括多个层的垂直结构,外围电路200以与非易失性存储器单元阵列110的垂直关系物理地布置在垂直结构上方或下方。根据示例性实施例,外围电路200可设置在包括非易失性存储器单元阵列110的区域下方。例如,外围电路200可以以外围上单元(COP)结构设置。图3概念性地示出了以COP结构配置的非易失性存储器装置100。由于当与传统的外围电路相比时,根据本发明构思的示例性实施例的外围电路200还包括诸如数据缓冲器210和队列270的新资源,所以可能需要比传统外围电路的现有的外围区域更宽的外围区域。COP结构可为外围电路200分配整个平面区域。因此,由于COP结构可提供用于容纳外围电路200中的新的逻辑组件的空间,所以COP结构适合于实现本发明构思的示例性实施例的期望的性能改善。
图2示出包括根据本发明构思的示例性实施例的非易失性存储器装置100的非易失性存储器系统500的配置。
参照图2,在一个示例性实施例中,除了上述非易失性存储器装置100之外,非易失性存储器系统500还包括控制器300,其中,控制器300被配置为请求非易失性存储器装置100执行预定操作,并执行用于接收对针对预定操作的请求的响应的控制操作。预定操作可以是由外部主机请求的预定操作。非易失性存储器系统500的典型示例可以是但不限于固态驱动器(SSD),其中,固态驱动器包括多个非易失性存储器装置(诸如,例如,NAND闪存)。
控制器300可经由多个通道结合到非易失性存储器装置100。控制器300可包括例如缓冲器310、队列330和核逻辑组件350(在此也被称为核逻辑电路350)。
缓冲器310可临时存储由外部主机请求的编程数据和从非易失性存储器装置100传送的读取数据。此外,缓冲器310可根据命令通过DQ 132将存储的编程数据发送到非易失性存储器装置100。缓冲器310可临时存储驱动控制器300所需的数据。缓冲器310可被实现为例如DRAM。
队列330可临时存储由外部主机提供的多个命令。根据示例性实施例,队列330可被实现为循环队列。循环队列可被实现为例如循环缓冲器、循环寄存器或逻辑电路。队列330的深度(即,存储元素的数量)可对应于将被加载的命令的数量。根据示例性实施例,队列330可具有与非易失性存储器装置100的队列270相同的深度。
缓冲器310和队列330可经由主机接口连接到外部主机的处理器。此外,缓冲器310和队列330可经由存储器接口结合到非易失性存储器装置100。
在示例性实施例中,核逻辑组件350调整存储在队列330中的命令被传送到非易失性存储器装置100的顺序,并以调整的顺序将命令发送到非易失性存储器装置100。将存储在队列330中的命令提供给非易失性存储器装置100的顺序可与来自外部主机的命令被提供到控制器300的顺序相同或不同。核逻辑组件350可考虑到例如非易失性存储器装置100的操作状态(包括例如存储在队列330中的命令的类型、每个命令的预期执行时间等)和/或非易失性存储器装置100的预定调度策略,来确定命令的执行顺序,使得命令被最高效地处理。命令的执行顺序可基于预定策略来确定。核逻辑组件350可使存储在队列330中的命令以如上确定的顺序被传送到非易失性存储器装置100。根据示例性实施例,核逻辑组件350可包括被配置为管理队列330的状态的第二任务状态寄存器352。将在下面进一步详细地描述第二任务状态寄存器352。
如下面进一步详细地所述,控制器300可根据预定的接口协议与非易失性存储器装置100通信。非易失性存储器装置100可在控制器300的控制下执行诸如例如编程/读取/擦除操作的操作。非易失性存储器装置100可基于页、块和/或垫(mat)来执行预定操作。
图4示出与包括传统的非易失性存储器装置90的比较示例相应的时序图,其中,由外部主机700请求的操作以与外部主机700同步的顺序被执行。传统的非易失性存储器装置90不具有执行顺序调整功能。图5示出与包括非易失性存储器装置100的本发明构思的示例性实施例相应的时序图,其中,由外部主机700请求的操作以与外部主机700异步的顺序被执行。非易失性存储器装置100具有执行顺序调整功能。
参照图1、图2、图4和图5,根据本发明构思的示例性实施例的非易失性存储器装置100和包括非易失性存储器装置100的非易失性存储器系统500利用队列270和数据缓冲器210来使空闲时间最小化(或减少)。结果,输入/输出数据管理的效率根据示例性实施例而被大大提高。
图4中示出的传统的非易失性存储器装置90和图5中示出的非易失性存储器装置100之间的重要差异在于:对于图5中示出的非易失性存储器装置100,由主机700通过控制器300请求的命令操作的执行顺序被调整,而对于图4中示出的传统的非易失性存储器装置90,由主机700通过控制器300请求的命令操作的执行顺序没有被调整。例如,如上所述,图5中示出的非易失性存储器装置100包括队列270和数据缓冲器210。队列270和数据缓冲器210允许由主机700通过控制器300请求的命令操作的执行顺序被调整。相比之下,图4中示出的非易失性存储器装置90不包括队列270和数据缓冲器210,因此,由主机700通过控制器300请求的命令操作的执行顺序不能被调整。
参照图2和图4,主机700可将各种命令发送到控制器300。图4示出主机700将第一编程命令(写入1CMD)、第二编程命令(写入2CMD)、第一读取命令(读取1CMD)和第二读取命令(读取2CMD)顺序地发送到控制器300的情况。控制器300可将由主机700发送的命令加载到队列330中。核逻辑组件350可调整加载在队列330中的命令的执行顺序,并将它们传送到非易失性存储器装置90。
在图4中,核逻辑组件350可将第一读取命令(读取1CMD)的执行顺序调整到第二编程命令(写入2 CMD)之前。非易失性存储器装置90不能够执行调整命令执行顺序的功能。因此,非易失性存储器装置90同步地(即,以与由控制器300提供的执行顺序相同的顺序)执行命令。例如,在控制器300将任何一个命令(例如,第一编程命令(写入CMD 1))提供给非易失性存储器装置90之后,控制器300不能将新的命令(例如,第一读取命令(读取CMD 1))提供给非易失性存储器装置90,直到非易失性存储器装置90完成第一编程命令(写入CMD 1)的执行并且报告执行结果为止。因此,可能产生空闲时间,其中,在该空闲时间中,非易失性存储器装置90不能执行任何命令,直到非易失性存储器装置90将所接收的命令的执行结果报告给控制器300并且从控制器300接收新命令为止。例如,在图4中,从非易失性存储器装置90将第一读取命令(读取CMD 1)的执行结果报告给控制器300的第一时刻到非易失性存储器装置90从控制器300接收新的命令(例如,第二编程命令(写入CMD 2))的第二时刻的持续时间对应于非易失性存储器装置90的空闲时间。如上所述,由于空闲时间频繁发生导致的延迟,非易失性存储器装置90同步地执行从控制器300提供的命令的方法和系统可劣化系统性能。
参照图2和图5,在根据本发明构思的示例性实施例的非易失性存储器装置100中,由控制器300提供的命令存储在队列270中,并且调度器290智能调整命令的执行顺序以使空闲时间最小化(或减小)。在以调整的顺序执行命令时,由于多个命令可被加载在队列270中,所以非易失性存储器装置100在执行任何一个命令操作之后,不需要等待从控制器300接收新的命令,而是可立即开始下一个命令的执行。因此,空闲时间可被最小化(或减小)到可忽略的水平。
此外,可以以例如第一编程命令(写入CMD 1)、第一读取命令(读取CMD 1)、第二编程命令(写入CMD 2)和第二读取命令(读取CMD 2)的顺序将命令加载到队列270中,但命令的执行顺序可被调度器290调整为对于减小空闲时间和高效执行数据输入/输出管理最佳的顺序。图5示出这样的调整的执行顺序,例如,第一编程命令(写入CMD 1)、第一读取命令(读取CMD 1)、第二读取命令(读取CMD 2)和第二编程命令(写入CMD 2)。与控制器300提供的顺序不同,命令的执行顺序可基于非易失性存储器装置100的操作状态被智能调整,以便使空闲时间最小化(或减少)。因此,非易失性存储器装置100可使由于空闲时间产生引起的延迟最小化(或减少)。结果,非易失性存储器系统500的性能可被大大改善。
图6是示意性示出根据本发明构思的示例性实施例的非易失性存储器装置100执行来自外部控制器(主机)的命令的过程的流程图。
参照图2和图6,控制器300可将命令(例如,编程、读取、擦除等)提供给非易失性存储器装置100,以执行由外部主机请求的操作(S100)。
命令可通过输入/输出板单元130的DQ 132来输入,并且可被传送到命令解析单元250。命令解析单元250可解析命令并将命令顺序地加载到队列270中(S102)。
控制器300可将执行命令所需的编程数据提供给非易失性存储器装置100(S104)。
编程数据可通过输入/输出板单元130的DQ 132来输入并存储在数据缓冲器210的数据区中(S106)。
数据缓冲器210可将编程数据存储在数据区210A中,还在映射区210B中执行更新以反映存储的编程数据(例如,关于存储地址、数据量、有关操作的信息等)和用于管理编程数据的有效性的信息的列表(S108)。
调度器290可考虑到诸如例如操作的类型、操作的重要性等因素,基于非易失性存储器装置100的内部操作状态和/或预定调度策略,调整存储在队列270中的命令的执行顺序,并以调整的执行顺序执行命令(S110)。
主机(或控制器300)可通过检查非易失性存储器装置100的状态来确定命令操作的执行是否完成。当通过状态检查确定命令执行完成时,非易失性存储器装置100可将命令执行结果报告给主机(或控制器300)(S112)。
关于非易失性存储器装置100响应于来自控制器300的命令而执行的各种任务的信息可被存储在映射区210B中,并被管理和/或利用。图7是用于描述根据本发明构思的示例性实施例的映射与映射区210B有关的数据缓冲器210中的有效数据的方法的示图。
参照图7,关于将被执行的每个任务的信息(Task Information)可存储在映射区210B中。在图7中,包括TASK 1INFORMATION至TASK 8INFORMATION的八条信息作为示例被示出。每条任务信息可包括例如操作类型的信息、缓冲数据库地址、缓冲数据偏移、NAND起始地址、操作状态、“待定”(TBD)区等。操作类型指示将被执行的操作的类型(例如,编程、读取或擦除),NAND起始地址指示由控制器300指定的非易失性存储器单元阵列110中的提供的编程数据的写入地址。这两条信息可由控制器300提供。缓冲数据库地址指示存储与任务有关的数据的数据区210A的起始点地址。缓冲数据偏移指示与任务有关的数据量,操作状态指示任务的执行状态。这三条信息可以是由非易失性存储器装置100自身生成的信息。操作状态可以以各种代码指示任务的状态。例如,代码值00h可指示编程数据到非易失性存储器单元阵列110的写入操作已成功完成(已编程)的状态或读出的数据已成功传送到控制器300(Dout)的状态。代码值01h可指示编程数据从控制器300被接收(Din)但还未被写入到存储器单元阵列110(未编程)的状态。代码值02h可指示数据已从非易失性存储器单元阵列110读取(取得)但还未输出至控制器300(未Dout)的状态。代码值03h可指示第一队列270的状态信息值已被更新到第一TSR 292的状态。代码值04h可指示当执行任务时发生失败的状态“失败情况1”。除了示出的示例,还可定义需要的任务状态。
图8是示出外部控制器300(主机)和根据本发明构思的示例性实施例的非易失性存储器装置100之间的主机接口协议的流程图。图9示出分别表示存储在第一TSR 292和第二TSR 352中的状态值的第一TSR表294(表(A))和第二TSR表354(表(B))。图10示出根据本发明构思的示例性实施例的用于外部控制器300(主机)将命令传送到非易失性存储器装置100并确认完成命令的执行的命令序列。
将参照图2、图8至图10描述主机接口协议(或排队协议)。
由于非易失性存储器装置100可在队列270中存储由控制器300提供的多个命令,并与控制器300异步地执行它们,所以外部控制器300(或主机)与非易失性存储器装置100之间的响应、请求以及命令的操作和数据传送应当被有效执行而不引起混乱。为了这个目的,示例性实施例可利用主机接口协议或排队协议。
因为非易失性存储器装置100加载并执行队列270中的多个命令,所以它应当能够将多个命令彼此区分开来。为此,可为每个命令添加唯一的名称标签(例如,唯一的任务ID)。由主机请求的命令可存储在控制器300的队列330中,然后被传送到非易失性存储器装置100的队列270。根据示例性实施例,队列270和队列330的深度可以是每1个字节循环的任务ID8深度(DQ0-DQ7)。
队列270和队列330二者的状态信息可被存储和管理,使得控制器300与非易失性存储器装置100之间的命令的传送和执行完成的确认可被高效执行。为此,根据示例性实施例,非易失性存储器装置100和控制器300可分别包括第一任务状态寄存器(TSR)292和第二任务状态寄存器(TSR)352。第一TSR 292和第二TSR 352可分别存储第一队列270和第二队列330的状态信息值。在示例性实施例中,第一TSR 292和第二TSR 352可被任何其他类型的临时存储装置代替。
可考虑到队列270和队列330的大小(深度)来确定第一TSR 292和第二TSR 352的大小。例如,如果队列270和队列330的大小为8深度(DQ0-DQ7),则第一TSR 292和第二TSR352的大小可被设置为1个字节。如果队列270和队列330的深度增加或减少,则第一TSR 292和第二TSR 352的大小可相应改变。图9中示出的第一TSR表294和第二TSR表354假设第一TSR 292和第二TSR 352的大小为1个字节。
根据示例性实施例,第一TSR 292和第二TSR 352可分别设置在例如调度器290和核逻辑组件350中。基于存储在第一TSR 292中的队列270的状态信息值和存储在第二TSR352中的队列330的状态信息值,可确定命令的执行是否完成。当存储在第一队列270中的命令的执行完成时,存储在第一TSR 292中的第一队列270的状态信息值可持续更新。第一TSR292中的更新的状态信息值可被传送到控制器300,以被反映在第二TSR 352上。以这种方式,控制器300可检查由它自身向非易失性存储器装置100请求的命令是否完成。
例如,参照图8,控制器300和非易失性存储器装置100分别分配一个字节的第一TSR 292和一个字节的第二TSR 352,以管理第一队列270和第二队列330的任务状态信息值(S200和S202)。
控制器300可检查状态以确定是否可将命令发送到非易失性存储器装置100。为此,控制器300可检查存储在第二TSR 352的所有位中的状态信息的值是否包括0(S204)。例如,在图9中,由于在存储在第二TSR 352中的所有8位值中,第一队列270的第三存储元素DQ2的值是0,所以第三存储元素DQ2为空。在这种情况下,第一TSR 292的8位值也可等于第二TSR 352的8位值。在存储在第一TSR 292和第二TSR 352中的状态信息值中,状态信息值“0”可指示与其位置对应的队列的存储元素为空的状态,而状态信息值“1”可指示与其位置对应的队列的存储元素为忙碌的状态。
如果作为检查的结果存在值为0的位,则控制器300可向非易失性存储器装置100发送命令。在这种情况下,控制器300可发出预期的命令(例如,擦除、编程或读取命令),同时将1字节周期的任务ID添加到所发出的命令(S206)。结果,每个发出的命令可具有它自己的任务ID以便被识别。在图9所示的示例中,任务ID可使用例如“11011111”的值来发出。
控制器300可将所发出的命令存储在队列330中,并以由核逻辑组件350指定的顺序将命令传送到非易失性存储器装置100(S208)。如图10的序列(A)所示,用于请求编程命令的编程命令序列可包括例如编程命令+任务ID、将被写入的编程数据W-Data以及用于发送完成的确认命令。“编程命令+任务ID”和确认命令可被发送到命令解析单元250,并且将被写入的编程数据W-Data可被发送到数据缓冲器210。
编程命令的操作序列可作为原子操作来执行,其中,原子操作不能从控制器300分离到非易失性存储器装置100的数据缓冲器210。非易失性存储器装置100可独立地执行编程操作,以将W-Data从数据缓冲器210编程到非易失性存储器单元阵列110,而不管控制器300如何。
类似的,如图10的序列(B)所示,用于请求读出命令的读取命令序列可具有类似的格式。读取命令的操作序列也可作为原子操作来执行,其中,原子操作不能从控制器300分离到非易失性存储器装置100的数据缓冲器210。非易失性存储器装置100将向控制器300发送读出数据的时间可根据控制器300再次向非易失性存储器装置100发送命令的方法或预定的优先级来确定。
非易失性存储器装置100的命令解析单元250可解析命令序列,以经由跟随命令的1字节周期的任务ID来识别任务(S210)。命令解析单元250可基于命令的任务ID将所识别的命令存储在第一队列270的对应位置中,并将第一TSR 292的对应位更新为1(S212)。例如,在图9的表(A)中,与第一队列270的第三存储元素DQ2对应的第一TSR 292的状态信息值可从0更新为1。
在非易失性存储器装置100中,加载在第一队列270中的命令可根据上述方法与控制器异步地执行(S214)。
当完成命令的执行时,非易失性存储器装置100可将与该命令对应的第一TSR292的相应位的值更新为0(S216)。这意味着与相应位对应的第一队列270的存储元素为空。也就是说,存储元素处于它可接受新命令的状态。
可反复执行操作S214和S216,并且控制器300可请求非易失性存储器装置100确认命令的执行是否完成(S218)。
根据示例性实施例,可以以向非易失性存储器装置100周期性地发送确认请求的轮询方式执行确认请求。如果控制器300和非易失性存储器装置100之间的接收(Rx)线和发送(Tx)线是分开的线,则即使没有来自作为主机的控制器200的请求的情况下,非易失性存储器装置100也可在完成命令执行时向控制器300发出确认。
根据示例性实施例,控制器300可将读取状态序列发送到非易失性存储器装置100,以用于状态检查来确定命令是否完成。因此,控制器300可接收存储在第一TSR 292中的值(即,第一队列270的状态信息值(命令执行完成))。例如,如图10的序列(C)所示,可以以“读取状态+TSR[x]”的形式来配置控制器300可向非易失性存储器装置100发送以确认命令执行是否完成的读取状态序列。读取状态序列具有请求非易失性存储器装置100发送存储在第一TSR 292中的状态信息值的含义。
响应于该请求,非易失性存储器装置100可将当前存储在第一TSR 292中的值(例如,第一队列270的当前状态信息值)发送到控制器300(S220)。
控制器300可基于从非易失性存储器装置100接收的当前存储在第一TSR 292中的值,检查存储在第一队列270中的命令是否已经完成(S224)。例如,如果从第一TSR292接收的8位值中包括0,则意味着对应于0值的命令已经完成,并且第一队列270的对应存储元素现在为空。
控制器300可用从非易失性存储器装置100接收的第一TSR 292的当前存储值来更新第二TSR 352(S226)。通过这个处理,第一TSR292和第二TSR 352可保持相同的值。因此,控制器300可实时准确地知道非易失性存储器装置100中的第一队列270的当前状态(即,存储在非易失性存储器装置100中的命令的完成状态)。
由于非易失性存储器装置100包括数据缓冲器210,因此非易失性存储器装置100可支持包括例如刷新和预取操作的各种附加操作。
图11示出与可在根据本发明构思的示例性实施例的非易失性存储器装置100中执行的刷新操作有关的数据和命令的流动。
参照图11,在示例性方案中,非易失性存储器装置100接收由请求编程操作的控制器300发送的编程数据,并在没有最初将编程数据写入非易失性存储器单元阵列110中的情况下将编程数据临时存储在数据缓冲器210中。编程数据可以是不允许丢失的关键数据。当电源被断开时,数据缓冲器210可能丢失存储在其中的所有数据。将重要数据立即写入非易失性存储器单元阵列110而不允许它长时间停留在数据缓冲器210中可能是安全的。
当期望将不允许丢失的重要数据写入到非易失性存储器阵列110时,主机700(或控制器300)可向非易失性存储器装置100发出请求,以执行刷新操作。此外,即使当缓存的数据停留在数据缓冲器210中的时间段变得大于特定水平时,也可以请求刷新操作。
根据示例性实施例,可以以控制器300经由输入/输出板单元130的DQ132提供刷新命令的这种方式来进行针对将被执行的刷新操作的请求。用于刷新请求的命令可包括非易失性存储器单元阵列110的地址。当数据缓冲器210从控制器300接收到用于请求刷新的命令时,非易失性存储器装置100的数据缓冲器210可根据包括在用于刷新请求的命令中的地址将临时存储在数据缓冲器210中的数据强制编程在非易失性存储器单元阵列110中。可基于映射区210B的任务信息找到与地址匹配的数据。主机700(或控制器300)也可指示非易失性存储器装置100将临时存储在页缓冲器230中的数据刷新到非易失性存储器单元阵列110中。
根据示例性实施例,刷新请求可通过引脚控制来进行,也就是说,以这种方式进行:输入/输出板单元130设置有用于请求刷新的专用刷新引脚(FLS)135,并且控制器300可操作刷新引脚135来请求刷新。然后,刷新引脚135可强制临时存储在数据缓冲器210中的所有编程数据被编程在非易失性存储器单元阵列110中。
根据示例性实施例,刷新请求可由控制器300的核逻辑组件350进行。可选择地,可在控制器300中设置单独的NAND管理器逻辑单元以进行刷新请求。
在示例性实施例中,刷新请求命令总是具有最高优先级。因此,当接收到刷新请求命令时,非易失性存储器装置100可在其他命令之前立即执行刷新请求命令。
图12示出与可在根据本发明构思的示例性实施例的非易失性存储器装置100中执行的预取操作有关的数据和命令的流动。
通过从非易失性存储器单元阵列110预先读取存储在将被顺序读出的部分中的数据,并将读出的数据临时存储在数据缓冲器210中,可改善系统的性能。
根据示例性实施例,预取操作可通过来自主机700(或控制器300)的命令(请求)来执行。预取命令可包括关于非易失性存储器单元阵列110中的地址和偏移的信息(例如,预取的数据量)。如果控制器300将预取命令发送到非易失性存储器装置100,则命令解析单元250可解析将被存储在队列270中的预取命令。当执行预取命令时,与地址匹配的将被预取的数据可从非易失性存储器单元阵列110读取,并通过页缓冲器230被传送到数据缓冲器210的数据区210A。
根据示例性实施例,可根据非易失性存储器装置100的自确定操作来执行预取操作。这里,以下情况可以是根据非易失性存储器装置100的自确定操作来执行预取操作的情况的示例:预期空闲时间很长的情况,或者当正对多个平面中的任何一个平面112A执行编程操作时可对另一个平面112B执行读取操作的情况等。
例如,根据示例性实施例,非易失性存储器系统支持预取操作,其中,预取操作包括:根据由控制器300发出的预取请求或者根据非易失性存储器装置100的自确定操作,从预先写入在非易失性存储器单元阵列110中的数据中读取存储在顺序读取部分中的数据,并将读取的数据存储在数据缓冲器210中。
预取数据存储在大容量数据缓冲器210中,并且使用预取数据的高效操作可被执行。通常,在从每个单元可存储的位数是1位至3位的单级单元(SLC)到三级单元(TLC)的单元结构中,通过DQ 132将页缓冲器230中的读出数据传送到控制器300所需的时间T1(称为DMA时间)可长于从非易失性存储器单元阵列110读取将被存储到页缓冲器230中的数据所需的时间T2(称为tR时间)。然而,在能够每单元存储4位的四级单元(QLC)结构的情况下,或者在一个单元中能够存储比4位更多的位的另一个单元结构的情况下,tR时间(T2)可比DMA时间(T1)长。在这种情况下,预读取存储在非易失性存储器单元阵列110中的数据的预取功能可以是有用的。
本发明构思的示例性实施例可有效地应用于包括非易失性存储器装置的各种装置和系统,并可具体地应用于各种装置(诸如,例如,计算机、膝上型计算机、蜂窝电话、智能电话、MP3播放器、个人数字助理(PDA)、便携式多媒体播放器、数字TV、数码相机、便携式游戏机、导航装置、可穿戴装置、物联网(IoT)装置、虚拟现实装置、增强现实装置等)。
如在本发明构思的领域中的传统,根据功能块、单元和/或组件来描述并在附图中示出了示例性实施例。本领域技术人员将理解,这些块、单元和/或组件通过可使用基于半导体的制造技术或其他制造技术形成的电子(或光学)电路(诸如,逻辑电路、分立组件、微处理器、硬接线电路、存储器元件、布线连接等)物理地实现。
在本发明构思的示例性实施例中,提供了三维(3D)存储器阵列。3D存储器阵列在存储器单元的阵列的一个或多个物理级中单片地形成,其中,存储器单元的阵列具有设置在硅基板上方的有源区和与这些存储器单元的操作相关联的电路,无论这种相关联的电路是在这种基板上方还是在这种基板内。术语“单片”是指阵列的每个层级的层直接沉积在阵列的每个下面的层级的层上。在本发明构思的示例性实施例中,3D存储器阵列包括垂直定向使得至少一个存储器单元位于另一存储器单元上的垂直NAND串。至少一个存储器单元可包括电荷捕获层。以下通过引用合并于此的专利文献描述了用于三维存储器阵列的合适配置,其中,三维存储器阵列被配置为多个层级,层级之间共享字线和/或位线:第7,679,133号美国专利、第8,553,466号美国专利、第8,654,587号美国专利、第8,559,235号美国专利以及第2011/0233648号美国专利公开。
尽管已经参照本发明构思的示例性实施例具体示出和描述了本发明构思,但是本领域普通技术人员将理解,在不脱离由所附权利要求限定的本发明构思的精神和范围的情况下,可以在形式和细节上进行各种改变。
Claims (20)
1.一种非易失性存储器装置,包括:
非易失性存储器单元阵列,被配置为存储数据,其中,所述非易失性存储器装置执行由控制器请求的操作;
输入/输出板组件,被配置为:提供路径,其中,通过所述路径,与由控制器请求的操作有关的命令和数据被输入到所述非易失性存储器装置,请求的操作的执行结果被输出到控制器;
外围电路,被配置为:加载由控制器提供的多个命令,临时存储由控制器提供的将被写入在非易失性存储器单元阵列中的编程数据和从非易失性存储器单元阵列读取的数据中的至少一个,将所述多个命令的执行顺序调整为与控制器异步,并以调整的执行顺序执行所述多个命令,其中,将所述多个命令的执行顺序调整为与控制器异步的处理包括将所述多个命令的执行顺序调整为与由控制器提供的顺序不同。
2.根据权利要求1所述的非易失性存储器装置,其中,由控制器提供的多个命令中的每个命令包括唯一的任务ID,并且由控制器提供的多个命令基于唯一的任务ID而被彼此区分开来。
3.根据权利要求1所述的非易失性存储器装置,其中,非易失性存储器单元阵列包括包含多个层的垂直结构,并且外围电路布置在所述垂直结构的上方或下方。
4.根据权利要求1所述的非易失性存储器装置,其中,外围电路包括:
页缓冲器,被配置为:存储由控制器提供的将被写入在非易失性存储器单元阵列中的编程数据和从非易失性存储器单元阵列读取的数据;
命令解析器,被配置为:解析由控制器通过输入/输出板组件提供的命令;
队列,被配置为:临时存储由控制器通过输入/输出板组件提供的多个命令;
数据缓冲器,被配置为:临时存储由控制器通过输入/输出板组件提供的编程数据,并将编程数据传送到页缓冲器,或者接收和临时存储从页缓冲器读取的数据,并通过输入/输出板组件将读取的数据传送到控制器,以执行与临时存储在队列中的多个命令对应的操作;
调度器,被配置为:将临时存储在队列中的多个命令的执行顺序调整为与由控制器提供的顺序不同,
其中,临时存储在队列中的多个命令的执行顺序基于所述非易失性存储器装置的内部操作状态和/或预定调度策略而被调整,并且临时存储在队列中的多个命令以调整的执行顺序被执行。
5.根据权利要求4所述的非易失性存储器装置,其中,数据缓冲器包括:
数据区,被配置为临时存储编程数据和读取数据,
映射区,被配置为存储在数据区中存储的数据的列表和用于管理数据有效性的信息。
6.根据权利要求4所述的非易失性存储器装置,其中,队列是循环队列。
7.根据权利要求4所述的非易失性存储器装置,其中,外围电路还包括:
任务状态寄存器,被配置为存储队列的状态信息值,
其中,外围电路还被配置为:当临时存储在队列中的多个命令的执行完成时,更新存储在任务状态寄存器中的状态信息值;控制器被配置为:使用更新的状态信息值,确认临时存储在队列中的多个命令的执行的完成。
8.一种非易失性存储器系统,包括:
非易失性存储器装置;
控制器,被配置为向非易失性存储器装置发送请求以执行操作,
其中,非易失性存储器装置包括:
非易失性存储器单元阵列,被配置为存储数据;
输入/输出板组件,被配置为:提供路径,其中,通过所述路径,与由控制器请求的操作有关的命令和数据被输入到非易失性存储器装置,请求的操作的执行结果被输出到控制器;
外围电路,被配置为:加载由控制器提供的多个命令,临时存储由控制器提供的将被写入在非易失性存储器单元阵列中的编程数据和从非易失性存储器单元阵列读取的数据中的至少一个,将所述多个命令的执行顺序调整为与控制器异步,并以调整的执行顺序执行所述多个命令,其中,将所述多个命令的执行顺序调整为与控制器异步的处理包括将所述多个命令的执行顺序调整为与由控制器提供的顺序不同。
9.根据权利要求8所述的非易失性存储器系统,其中,外围电路包括:
页缓冲器,被配置为:存储由控制器提供的将被写入在非易失性存储器单元阵列中的编程数据和从非易失性存储器单元阵列读取的数据;
命令解析器,被配置为:解析由控制器通过输入/输出板组件提供的命令;
第一队列,被配置为:临时存储由控制器通过输入/输出板组件提供的多个命令;
第一数据缓冲器,被配置为:临时存储由控制器通过输入/输出板组件提供的编程数据,并将编程数据传送到页缓冲器,或者接收和临时存储从页缓冲器读取的数据,并通过输入/输出板组件将从页缓冲器读取的数据传送到控制器,以执行与临时存储在第一队列中的多个命令对应的操作;
调度器,被配置为:将临时存储在第一队列中的多个命令的执行顺序调整为与由控制器提供的顺序不同,
其中,临时存储在第一队列中的多个命令的执行顺序基于非易失性存储器装置的内部操作状态和/或预定调度策略而被调整,并且临时存储在第一队列中的多个命令以调整的执行顺序被执行。
10.根据权利要求9所述的非易失性存储器系统,其中,当控制器通过发出命令或引脚控制来请求将被执行的刷新操作时,非易失性存储器装置通过将临时存储在第一数据缓冲器中的数据之中的特定数据强制编程在非易失性存储器单元阵列的指定位置来执行刷新操作。
11.根据权利要求9所述的非易失性存储器系统,其中,非易失性存储器系统支持预取操作,其中,预取操作包括:根据由控制器发出的预取请求或者根据非易失性存储器装置的自确定操作,从预先写入在非易失性存储器单元阵列中的数据中读取存储在顺序读取部分中的数据,并将读取的数据存储在第一数据缓冲器中。
12.根据权利要求9所述的非易失性存储器系统,其中,控制器包括:
第二数据缓冲器,被配置为:临时存储将被写入在非易失性存储器单元阵列中的编程数据和从非易失性存储器装置传送的读取的数据中的至少一个,其中,编程数据被外部主机请求写入在非易失性存储器单元阵列中;
第二队列,被配置为:临时存储由控制器向非易失性存储器装置提供的多个命令,其中,由控制器向非易失性存储器装置提供的多个命令首先被外部主机提供给控制器;
核逻辑组件,被配置为:调整传送临时存储在第二队列中的多个命令的顺序,并以调整的顺序将存储在第二队列中的多个命令传送到非易失性存储器装置。
13.根据权利要求12所述的非易失性存储器系统,
其中,非易失性存储器装置包括第一任务状态寄存器,控制器包括第二任务状态寄存器,
其中,第一任务状态寄存器和第二任务状态寄存器被配置为:分别存储第一队列的状态信息值和第二队列的状态信息值,
其中,当临时存储在第一队列中的多个命令的执行完成时,存储在第一任务状态寄存器中的第一状态信息值被更新,并且控制器接收更新的第一状态信息值并更新第二任务状态寄存器,以确认相应命令的执行的完成。
14.根据权利要求8所述的非易失性存储器系统,其中,控制器向由控制器提供的每个命令添加唯一的任务ID,并将分配有唯一的任务ID的每个命令发送到非易失性存储器装置,其中,唯一的任务ID将由控制器提供的多个命令彼此区分开来。
15.一种在非易失性存储器装置中执行操作的方法,包括:
解析由控制器通过非易失性存储器装置的输入/输出板组件提供的命令;
其中,非易失性存储器装置包括非易失性存储器单元阵列和外围电路,
其中,外围电路包括队列、数据缓冲器和命令解析器;
将解析的命令加载到队列中;
将由控制器通过输入/输出板组件提供的编程数据和从非易失性存储器单元阵列读取的数据中的至少一个临时存储在数据缓冲器的数据区中;
使用与存储在数据缓冲器中的数据有关的信息来更新数据缓冲器的映射区;
基于非易失性存储器装置的内部操作状态和/或预定调度策略,将加载到队列的多个命令的执行顺序调整为与控制器异步;
以调整的执行顺序执行加载到队列的多个命令。
16.根据权利要求15所述的方法,还包括:
执行刷新操作,其中,刷新操作包括:响应于来自控制器的刷新请求,将临时存储在数据缓冲器的数据之中的特定数据强制编程到非易失性存储器单元阵列中的指定位置,
其中,刷新操作在非易失性存储器装置中具有最高优先级。
17.根据权利要求15所述的方法,还包括:
响应于由控制器发出的预取请求或者根据非易失性存储器装置的自确定操作,执行预取操作,其中,预取操作包括:从预先写入在非易失性存储器单元阵列中的数据中读取存储在顺序读取部分中的数据,并将读取的数据存储在数据缓冲器中。
18.根据权利要求15所述的方法,其中,控制器向每个命令添加唯一的任务ID,并且将分配有唯一的任务ID的每个命令发送到非易失性存储器装置,其中,唯一的任务ID将所述多个命令彼此区分开来。
19.根据权利要求15所述的方法,还包括:
通过非易失性存储器装置管理任务状态信息,其中,任务状态信息指示加载在队列中的多个命令中的每个命令的执行是否完成,
其中,控制器通过检查由非易失性存储器装置管理的任务状态信息,确认所述多个命令中的每个命令的执行是否完成。
20.根据权利要求19所述的方法,其中,确认所述多个命令中的每个命令的执行是否完成的步骤包括:
将队列的状态信息值存储在设置在外围电路中的任务状态寄存器中;
当加载到队列的多个命令的执行完成时,由外围电路更新存储在任务状态寄存器中的状态信息值;
由控制器使用更新的状态信息值,确认加载到队列的多个命令的执行的完成。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0181828 | 2017-12-28 | ||
KR1020170181828A KR102514772B1 (ko) | 2017-12-28 | 2017-12-28 | 비동기적 동작 수행이 가능한 비휘발성 메모리 장치와 이를 포함하는 메모리 시스템, 그리고 이의 동작 수행 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109976666A CN109976666A (zh) | 2019-07-05 |
CN109976666B true CN109976666B (zh) | 2023-09-29 |
Family
ID=67058468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811653997.5A Active CN109976666B (zh) | 2017-12-28 | 2018-12-27 | 非易失性存储器装置和系统及其操作执行方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10790026B2 (zh) |
KR (1) | KR102514772B1 (zh) |
CN (1) | CN109976666B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190371405A1 (en) * | 2018-05-30 | 2019-12-05 | Circuit Blvd., Inc. | Method of filling up data on open-channel solid state drive (ssd) and an apparatus performing the same |
US10990317B2 (en) * | 2019-08-28 | 2021-04-27 | Micron Technology, Inc. | Memory with automatic background precondition upon powerup |
US11144450B2 (en) | 2019-12-19 | 2021-10-12 | Micron Technology, Inc. | Maintaining sequentiality for media management of a memory sub-system |
US10910048B1 (en) | 2020-01-16 | 2021-02-02 | Micron Technology, Inc. | Extended memory communication |
CN113886897A (zh) * | 2020-07-03 | 2022-01-04 | 华邦电子股份有限公司 | 内存装置以及用于控制非易失性内存的操作方法 |
TWI748550B (zh) * | 2020-07-08 | 2021-12-01 | 慧榮科技股份有限公司 | 組態可靠命令的方法及裝置以及電腦程式產品 |
CN113918082B (zh) | 2020-07-08 | 2024-03-08 | 慧荣科技股份有限公司 | 计算机可读取存储介质、配置可靠命令的方法及装置 |
US11449269B2 (en) | 2020-07-22 | 2022-09-20 | Micron Technology, Inc. | Edge compute components under a memory array |
US20220066698A1 (en) * | 2020-08-26 | 2022-03-03 | Micron Technology, Inc. | Efficient command scheduling for multiple memories |
KR20220046211A (ko) * | 2020-10-07 | 2022-04-14 | 에스케이하이닉스 주식회사 | 저항성 메모리 장치를 제어하기 위한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
CN112908379B (zh) * | 2021-01-26 | 2023-05-23 | 北京航空航天大学 | 一种异步电路及系统 |
CN113056790B (zh) | 2021-01-27 | 2023-11-10 | 长江存储科技有限责任公司 | 用于异步多面独立(ampi)存储读取操作的方法和系统 |
US20220318603A1 (en) * | 2021-03-31 | 2022-10-06 | International Business Machines Corporation | Nvm-based high-capacity neural network inference engine |
WO2023141992A1 (zh) * | 2022-01-28 | 2023-08-03 | 长江存储科技有限责任公司 | 存储器、存储器的控制方法及存储器系统 |
CN118656032A (zh) * | 2024-08-19 | 2024-09-17 | 珠海妙存科技有限公司 | 存储器读任务的处理方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103578554A (zh) * | 2012-08-08 | 2014-02-12 | 三星电子株式会社 | 非易失性存储器装置及控制挂起其命令执行的方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101226685B1 (ko) | 2007-11-08 | 2013-01-25 | 삼성전자주식회사 | 수직형 반도체 소자 및 그 제조 방법. |
US8037235B2 (en) * | 2008-12-18 | 2011-10-11 | Mosaid Technologies Incorporated | Device and method for transferring data to a non-volatile memory device |
KR101691092B1 (ko) | 2010-08-26 | 2016-12-30 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8553466B2 (en) | 2010-03-04 | 2013-10-08 | Samsung Electronics Co., Ltd. | Non-volatile memory device, erasing method thereof, and memory system including the same |
US9536970B2 (en) | 2010-03-26 | 2017-01-03 | Samsung Electronics Co., Ltd. | Three-dimensional semiconductor memory devices and methods of fabricating the same |
KR101682666B1 (ko) | 2010-08-11 | 2016-12-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템 |
WO2012050934A2 (en) * | 2010-09-28 | 2012-04-19 | Fusion-Io, Inc. | Apparatus, system, and method for a direct interface between a memory controller and non-volatile memory using a command protocol |
JP2012128644A (ja) | 2010-12-15 | 2012-07-05 | Toshiba Corp | メモリシステム |
US10014282B2 (en) * | 2012-12-22 | 2018-07-03 | Monolithic 3D Inc. | 3D semiconductor device and structure |
KR101481898B1 (ko) * | 2013-06-25 | 2015-01-14 | 광운대학교 산학협력단 | Ssd의 명령어 큐 스케줄링 장치 및 방법 |
CN104641418B (zh) * | 2013-08-19 | 2018-09-28 | 东芝存储器株式会社 | 存储系统 |
US20150067291A1 (en) | 2013-08-30 | 2015-03-05 | Kabushiki Kaisha Toshiba | Controller, memory system, and method |
US9582211B2 (en) | 2014-04-29 | 2017-02-28 | Sandisk Technologies Llc | Throttling command execution in non-volatile memory systems based on power usage |
KR102229970B1 (ko) * | 2014-06-27 | 2021-03-22 | 삼성전자주식회사 | 불휘발성 메모리, 랜덤 액세스 메모리 및 메모리 컨트롤러를 포함하는 솔리드 스테이트 드라이브 |
KR102259943B1 (ko) | 2014-12-08 | 2021-06-04 | 삼성전자주식회사 | 멀티 플래인을 포함하는 불 휘발성 메모리 장치 |
US9626106B2 (en) | 2015-01-13 | 2017-04-18 | Sandisk Technologies Llc | System and method for memory command queue management and configurable memory status checking |
KR20160108052A (ko) | 2015-03-06 | 2016-09-19 | 에스케이하이닉스 주식회사 | 반도체 소자 |
KR20160118836A (ko) * | 2015-04-03 | 2016-10-12 | 에스케이하이닉스 주식회사 | 호스트 커맨드 큐를 포함하는 메모리 컨트롤러 및 그것의 동작 방법 |
US9697145B2 (en) * | 2015-06-12 | 2017-07-04 | Apple Inc. | Memory interface system |
US9679658B2 (en) | 2015-06-26 | 2017-06-13 | Intel Corporation | Method and apparatus for reducing read latency for a block erasable non-volatile memory |
US10120613B2 (en) * | 2015-10-30 | 2018-11-06 | Sandisk Technologies Llc | System and method for rescheduling host and maintenance operations in a non-volatile memory |
US20170123666A1 (en) * | 2015-10-30 | 2017-05-04 | Sandisk Technologies Inc. | System and method for managing maintenance scheduling in a non-volatile memory |
US10254967B2 (en) * | 2016-01-13 | 2019-04-09 | Sandisk Technologies Llc | Data path control for non-volatile memory |
KR102516547B1 (ko) * | 2018-03-08 | 2023-04-03 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
-
2017
- 2017-12-28 KR KR1020170181828A patent/KR102514772B1/ko active IP Right Grant
-
2018
- 2018-10-30 US US16/174,839 patent/US10790026B2/en active Active
- 2018-12-27 CN CN201811653997.5A patent/CN109976666B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103578554A (zh) * | 2012-08-08 | 2014-02-12 | 三星电子株式会社 | 非易失性存储器装置及控制挂起其命令执行的方法 |
Non-Patent Citations (2)
Title |
---|
ARM嵌入式系统在海底大地电磁信号采集中的应用研究初探;杜刚,魏文博,姜景捷,杜松;地球物理学进展(04);全文 * |
辛洁 ; 蔡国飙 ; 宋佳 ; .固液动力探空火箭箭载数据采集系统设计.航空动力学报.2013,(11), * |
Also Published As
Publication number | Publication date |
---|---|
KR102514772B1 (ko) | 2023-03-28 |
US20190206494A1 (en) | 2019-07-04 |
US10790026B2 (en) | 2020-09-29 |
KR20190079831A (ko) | 2019-07-08 |
CN109976666A (zh) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976666B (zh) | 非易失性存储器装置和系统及其操作执行方法 | |
US10379903B2 (en) | Task queues | |
CN110088724B (zh) | 使用控制器存储器缓冲区进行自适应提前完成发布的系统和方法 | |
CN108572933B (zh) | 用于直接存储器存取的数据缓冲器指针找取 | |
US12045168B2 (en) | Timed data transfer between a host system and a memory sub-system | |
US10037167B2 (en) | Multiple scheduling schemes for handling read requests | |
US10956083B2 (en) | Method and system for input-output throttling to improve quality of service in a solid state drive | |
US20200379684A1 (en) | Predictive Data Transfer based on Availability of Media Units in Memory Sub-Systems | |
US12124733B2 (en) | Memory comprising memory controller configured to determine a logical address of a target zone system and method of operating the memory controller | |
JP2011118469A (ja) | メモリ管理装置およびメモリ管理方法 | |
KR102526608B1 (ko) | 전자 장치 및 그것의 동작 방법 | |
CN111414133B (zh) | 操作存储器控制器和存储器系统的方法以及存储器系统 | |
US10713157B2 (en) | Storage system and method for improving read performance using multiple copies of a logical-to-physical address table | |
US12013797B2 (en) | Memory controller, memory system and operating method of the memory system using a channel arbitration circuit | |
KR20190010335A (ko) | 레이턴시 정보를 저장하는 저장 장치, 프로세서 및 컴퓨팅 시스템 | |
US20190370168A1 (en) | Storage System and Method for Soft-Decision-Based Command Execution to Enhance Random Write Performance | |
KR20230142795A (ko) | Zns 디바이스들에서의 상이한 기입 우선순위화 | |
KR20220048303A (ko) | 크레딧을 이용하는 호스트 장치와 스토리지 장치의 동작 방법 | |
US20210382649A1 (en) | Storage System and Method for Using Proactive Device Timeout information | |
US20240370373A1 (en) | Timed data transfer between a host system and a memory sub-system | |
CN118235118A (zh) | 用于存储器裸片状态感知主机命令提交的数据存储设备和方法 | |
CN118092782A (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 |