CN110865948A - 存储系统及其操作方法 - Google Patents
存储系统及其操作方法 Download PDFInfo
- Publication number
- CN110865948A CN110865948A CN201910693626.8A CN201910693626A CN110865948A CN 110865948 A CN110865948 A CN 110865948A CN 201910693626 A CN201910693626 A CN 201910693626A CN 110865948 A CN110865948 A CN 110865948A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- state
- controller
- target die
- 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
Images
Classifications
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/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
- 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/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
-
- 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/5641—Multilevel memory having cells with different number of storage levels
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及存储系统及其操作方法。例如,一种存储系统,包括:控制器,适于提供第一数据、对应于第一数据的高速缓存编程命令、第二数据和对应于第二数据的正常编程命令;以及存储设备,适于根据高速缓存编程命令将第一数据编程到目标裸片,在完成第一数据的编程操作之后将目标裸片设置为正常状态,并且根据正常编程命令将第二数据编程到目标裸片。
Description
相关申请的交叉引用
本申请根据35 U.S.C.§119要求2018年8月27日提交的韩国专利申请第10-2018-0100119号的优先权,其全部内容通过引证并入本文。
技术领域
示例性实施例涉及存储系统及其操作方法,并且更具体地,涉及能够有效地执行高速缓存编程操作的存储系统及其操作方法。
背景技术
计算机环境范式已转向无处不在的计算,使得计算系统能够随时随地使用。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子设备的使用迅速增加。这些便携式电子设备通常使用具有一个或多个存储设备的存储系统来存储数据。存储系统可以被用作便携式电子设备的主存储设备或辅助存储设备。
与硬盘设备相比,存储系统具有良好的稳定性、耐用性、高信息访问速度和低功耗,因为它们没有移动部件。具有这些优点的存储系统的示例包括通用串行总线(USB)存储设备、具有各种接口的存储卡和固态驱动器(SSD)。
发明内容
各种实施例的目的在于能够有效地执行高速缓存编程操作的存储系统及其操作方法。
根据本发明的一个实施例,提供了一种处理高速缓存编程命令和正常编程命令的存储系统,该存储系统包括:控制器,适于提供第一数据、对应于第一数据的高速缓存编程命令、第二数据以及对应于第二数据的正常编程命令;以及存储设备,适于根据高速缓存编程命令将第一数据编程到目标裸片,在完成第一数据的编程操作之后将目标裸片设置为正常状态,以及根据正常编程命令将第二数据编程到目标裸片。
根据本发明的一个实施例,提供了一种处理高速缓存编程命令和正常编程命令的存储系统的操作方法,该操作方法包括:通过控制器向存储设备提供第一数据和对应于第一数据的高速缓存编程命令;根据高速缓存编程命令将第一数据编程到目标裸片;将目标裸片设置为正常状态;通过控制器向存储设备提供第二数据和对应于第二数据的正常编程命令;以及根据正常编程命令将第二数据编程到目标裸片。
根据本发明的一个实施例,一种存储系统包括:存储设备;以及控制器,被配置为控制存储设备,以在高速缓存编程操作期间请求正常编程操作时,在完成高速缓存编程操作之后执行正常编程操作,其中存储设备在完成高速缓存编程操作之后自动地变为准备好进行正常编程操作。
附图说明
图1A是示出根据本公开一个实施例的包括存储系统的数据处理系统的框图;
图1B是示出根据一个实施例的状态管理表的示图。
图2是示出根据本公开一个实施例的存储系统的存储设备的示意图。
图3是示出根据本公开一个实施例的存储设备中的存储块的存储单元阵列的电路图。
图4是示出根据本公开一个实施例的存储设备的三维结构的示意图。
图5A是示出根据一个实施例的数据传输路径的概念图。
图5B是示出根据一个实施例的高速缓存编程操作的示图。
图5C是示出根据一个实施例的正常编程操作的示图。
图6A至图6E是示出根据一个实施例的存储系统的操作的示图。
图7是示出根据一个实施例的存储系统的操作的流程图。
图8至图16是示出根据本发明的各种实施例的数据处理系统的示例性应用的示意图。
具体实施方式
下文参考附图更详细地描述本发明的各种实施例。然而,本发明的元件和特征可以被配置或布置为形成其他实施例,其可以是任何公开实施例的修改或变型。因此,本发明不限于本文所述的实施例。相反,提供所述实施例以使本公开是彻底和完整的,并且完全将本发明传达给本发明所属领域的技术人员。贯穿本公开,类似的参考标号表示本公开的各个附图和示例的类似部分。应注意,提及“一个实施例”等并不一定意味着仅一个实施例,并且对任何这种措辞的不同提及不一定是针对同一实施例。
应理解,尽管本文可以使用术语“第一”、“第二”、“第三”等来识别各种元件,但这些元件不受这些术语的限制。这些术语用于区分一个元件与具有相同或相似名称的另一元件。因此,一种情况下的第一元件可以在另一情况下称为第二或第三元件,而在不脱离本发明的精神和范围。
附图不一定按比例绘制,并且在一些情况下,为了清楚地示出实施例的特征,比例可能被夸大。
还应理解,当一个元件被称为“连接至”或“耦合至”另一元件时,其可以直接连接或耦合至另一元件,或者可以存在一个或多个中间元件。此外,还应理解,当一个元件被称为在两个元件“之间”时,其可以是两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。无论两个元件是直接还是间接连接/耦合,除非另有说明或上下文另有说明,否则两个元件之间的通信可以是有线或无线的。
本文所用的术语用于描述特定实施例的目的而不用于限制本发明。
如本文所使用的,单数形式用于包括复数形式,反之亦然,除非上下文另有明确说明。
还应理解,当在本说明书中使用术语“包括”和“包含”时,指定所提及元件的存在,并且并不排除一个或多个其他元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关列出项目的任何和所有组合。
除非另有定义,否则本文使用的包括技术和科学术语的所有术语具有本发明所属领域的普通技术人员根据本公开普遍理解的相同含义。还应理解,术语(诸如常用字典中定义的术语)应当解释为具有与它们在本公开的上下文和相关技术中的含义一致的含义,并且除非本文明确定义,否则不应以理想化或过于正式的意义进行解释。
在下文的描述中,阐述了多个具体细节以提供对本发明的完整理解。可以在不具有这些具体细节中的一些或所有的情况下实践本发明。在其他情况下,已知工艺结构和/或工艺没有详细描述,从而不会不必要地模糊本发明。
还应注意,在一些情况下,如相关领域的技术人员所理解的,结合一个实施例描述的特征或元件可以单独使用或者与另一实施例的其他特征或元件组合,除非另有明确指定。
图1A是示出根据本发明实施例的数据处理系统100的框图。
参考图1A,数据处理系统100可以包括操作性地耦合至存储系统110的主机102。
例如,主机102可以包括各种便携式电子设备(诸如移动电话、MP3播放器和笔记本电脑)或电子设备(诸如台式计算机、游戏机、电视(TV)、投影机)等中的任一种。
存储系统100可以响应于来自主机102的请求操作或执行特定功能或操作,并且具体地,可以存储将被主机102访问的数据。存储系统110可以被用作主机102的主存储系统或辅助存储系统。根据主机接口的协议,存储系统110可以利用各种类型的存储设备中的任一种来实施,其可以与主机102电耦合。适当存储设备的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、缩减尺寸的MMC(RS-MMC)和微MMC、安全数字(SD)卡、迷你SD和微SD、通用串行总线(USB)存储设备、通用闪存(UFS)设备、紧凑式闪存(CF)卡、智能媒体(SM)卡、存储棒等。
用于存储系统110的存储设备可以利用易失性存储设备(诸如动态随机存取存储器(DRAM)和/或静态RAM(SRAM))和/或非易失性存储设备(诸如只读存储器(ROM)、掩膜ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM或ReRAM)和/或闪存)来实施。
存储系统110可包括控制器130和存储设备150。存储设备150可以存储将被主机102访问的数据。控制器130可以控制存储设备150中的数据的存储。
控制器130和存储设备150可集成到单个半导体器件中,其可以包括在如上文例示的各种类型的存储系统的任一种中。
例如,存储系统110可以被配置为计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板电脑、台式机、无线电话、移动电话、智能手机、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒子、数码相机、数字多媒体广播(DMB)播放器、3维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储、能够在无线环境下发射和接收信息的设备、配置家庭网络的各种电子设备中的一种、配置计算机网络的各种电子设备中的一种、配置远程信息处理网络的各种电子设备中的一种、射频识别(RFID)设备或者配置计算系统的各种部件中的一种的一部分。
存储设备150可以是非易失性存储设备,其即使在不提供电能的情况下也能保持存储在其中的数据。存储设备150可通过写入操作存储从主机102提供的数据,并且通过读取操作向主机102提供存储在其中的数据。
存储设备150可包括耦合至多个通道中的每一个的多个裸片。每个裸片可以包括多个存储块。每个存储块可包括多个页面。多个页面中的每个页面可包括耦合至字线的多个存储单元。在一个实施例中,存储设备150可以是具有三维(3D)堆叠结构的闪存。
稍后将参考图2至图4更加详细地描述包括其三维堆叠结构的存储设备150的结构。
控制器130可响应于来自主机102的请求来控制存储设备150。例如,控制器130可提供从存储设备150读取到主机102的数据,并将从主机102提供的数据存储到存储设备150中。对于该操作,控制器130可控制存储设备150的读、写、编程和擦除操作。
具体地,控制器130可包括主机接口(I/F)132、处理器134、存储器I/F 142、存储器144和状态管理器146。
主机接口132可处理主机102的命令和数据。主机接口132可通过一个或多个不同的接口协议(诸如通用串行总线(USB)、多媒体卡(MMC)、外围部件互连express(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串行连接的SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小盘接口(ESDI)和集成驱动电子设备(IDE))与主机102通信。主机接口132可经由固件(即,用于与主机102交换数据的主机接口层(HIL))驱动。
存储器接口142可用作控制器130和存储设备150之间的存储器/存储接口,使得控制器130可响应于来自主机102的请求控制存储设备150。
存储器144可用作存储系统110和控制器130的工作存储器,并且存储用于驱动存储系统110和控制器130的数据。
存储器144可以是易失性存储器。例如,存储器144可以是静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。存储器144可设置在控制器130内部或外部。图1示出了设置在控制器130内的存储器144。在一个实施例中,存储器144可以是具有用于在存储器144和控制器130之间传送数据的存储器接口的外部易失性存储器。
如上所述,存储器144可存储在主机102和存储设备150之间执行数据写入和读取操作所需的一些数据以及控制器130和存储设备150执行这些操作所需的其他数据。根据本实施例的存储器144可临时存储从主机102提供的写入数据。例如,当主机102向存储系统110提供写入命令时,存储器144可临时存储与在处理器134的控制下从主机102提供的写入命令相对应的写入数据。存储器144可包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存和映射缓冲器/高速缓存。
响应于主机102的写入请求或读取请求,处理器134可控制存储系统110的整体操作以及存储设备150的编程或读取操作。
为了控制存储系统110的整体操作,处理器134可使用固件来控制存储系统110的整体操作。固件可以被称为闪存转换层(FTL)。处理器134可以用微处理器或中央处理单元(CPU)实施。
因此,处理器134可驱动固件以将与从主机102提供的写入数据相对应的逻辑地址映射到指示将实际存储写入数据的位置的物理地址。
处理器134可控制存储设备150,以将存储器144中临时存储的写入数据编程到与写入数据相对应的物理地址。
具体地,处理器134可以向存储设备150提供编程命令和写入数据,以将写入数据编程到存储设备150。具体地,处理器134可根据写入数据的特性向存储设备150提供正常的编程命令或高速缓存编程命令。例如,当顺序数据需要被编程到存储设备150时,处理器134可以向存储设备150提供高速缓存编程命令。另一方面,当非顺序数据需要被编程到存储设备150时,处理器134可以向存储设备150提供正常的编程命令。
存储设备150可基于从处理器134提供的编程命令对写入数据进行编程。存储设备150中包括的多个裸片通常可以被设置为可根据正常编程命令执行正常编程操作的状态(下文称为正常状态)。然而,接收高速缓存编程命令的存储设备150可以将写入数据将被编程到其中的裸片(以下称为目标裸片)设置为可执行高速缓存编程操作的状态(以下称为高速缓存状态)。此外,在高速缓存编程操作完成之后,存储设备150可自动地将目标裸片设置为正常状态。
将参考图5A至图5C描述基于高速缓存编程命令的编程操作和基于正常编程命令的编程操作。
例如,控制器130可通过处理器134(其被实施为微处理器、CPU等)执行存储设备150中的主机102所请求的操作。此外,控制器130可通过处理器134(其可以实现为微处理器或CPU)在存储设备150上执行后台操作。在存储设备150上执行的后台操作可包括垃圾收集(GC)操作、磨损均衡(WL)操作、映射刷新操作或坏块管理操作。
状态管理器146可以在处理器134的控制下管理存储设备150中包括的多个裸片的操作状态。状态管理器146可存储状态管理表148,并且在改变相应裸片的操作状态时更新状态管理表148。将参考图1B描述状态管理器146。
图1B是示出根据本实施例的状态管理表148的概念图。为了便于描述,图1B可基于四个裸片耦合至每个通道的假设。
状态管理器146可检查每个裸片是否正在执行编程操作。状态管理器146可确定正在执行编程操作的裸片处于“忙碌”状态,而不正在执行编程操作的裸片处于“准备”状态。参考图1B所示的状态管理表148,耦合至第一通道的第一和第二裸片的操作状态可以被检查为“准备”状态。此外,耦合至第一通道的第三和第四裸片的操作状态可以被检查为“忙碌”状态。
状态管理器146可更新相应裸片的操作状态。例如,当将要被编程到已保持“准备”状态的裸片的写入数据被提供给存储设备150时,状态管理器146可以将裸片的操作状态从“准备”状态更新为“忙碌”状态。另一方面,当没有向保持“忙碌”状态的裸片提供附加写入数据时,状态管理器146可将裸片的操作状态从“忙碌”状态更新为“准备”状态。
如图1B所示的状态管理表148示出了此时在第一裸片中没有执行编程操作。然而,当稍后在第一裸片中执行编程操作时,第一裸片的操作状态可以从“准备”状态更新为“忙碌”状态。另一方面,当编程操作此时正在第三裸片中执行但稍后结束时,第三裸片的操作状态可以从“忙碌”状态更新为“准备”状态。
返回参考图1A,控制器130可进一步包括未示出的纠错码(ECC)电路和电源管理单元(PMU)。
ECC电路可校正由存储设备150处理的数据的错误位,并且包括ECC编码器和ECC解码器。
ECC编码器可通过对要被编程到存储设备150的数据执行纠错编码来生成添加有奇偶校验位的数据,并且添加有奇偶校验位的数据可以被存储在存储设备150中。当读取存储在存储设备150中的数据时,ECC解码器可检测并校正从存储设备150读取的数据中包含的错误。
ECC电路可使用编码调制来执行纠错,诸如低密度奇偶校验(LDPC)码、玻色-乔赫里-霍克文黑姆(BCH)码、Turbo码、里德-索罗门码、卷积码、递归系统码(RSC)、格码调制(TCM)或块编码调制(BCM)。然而,本实施例并不限于此。ECC电路可包括用于纠错的所有电路、模块、系统或设备。
PMU可提供和管理控制器130的电源。即,PMU可提供和管理控制器130中包括的部件的电源。
参考图2至图4更详细地描述根据本发明实施例的存储系统中的存储设备。
图2是示出存储设备(例如,存储设备150)的示意图。图3是示出存储设备150中的存储块330的存储单元阵列的配置的电路图。图4是示出存储设备150的3D结构的示意图。
参考图2,存储设备150可包括多个存储块BlOCK0(210)至BLOCKN-1(240),其中N是大于1的整数。块BlOCK0到块BlOCKN-1中的每一个可包括多个页面,例如,2M或M个页面,其数量可根据电路设计而变化,M是大于1的整数。每一页面可包括耦合至多条字线WL的多个存储单元。
此外,相应存储块BlOCK0至BlOCKN-1中的存储单元可以是存储1位数据的单级单元(SLC)存储块或存储2位数据的多级单元(MLC)存储块中的一个或多个。因此,存储设备150可包括SLC存储块或MLC存储块,这取决于可在存储块的每个存储单元中表示或存储的位数。SLC存储块可包括多个由存储单元实施的页面,每个页面存储1位数据。与MLC存储块相比,SLC存储块通常可具有更高的数据计算性能和更高的耐久性。MLC存储块可包括由存储多位数据(例如,2位或更多位)的存储单元实施的多个页面。与SLC存储块相比,MLC存储块通常可具有更大的数据存储空间,即,更高的集成密度。在另一实施例中,存储设备150可包括多个三级单元(TLC)存储块。在又一实施例中,存储设备150可包括多个四级单元(QLC)存储块。TCL存储块可包括由能够存储3位数据的存储单元实施的多个页面。QLC存储块可包括由能够存储4位数据的存储单元实施的多个页面。
与SLC存储块相比,存储设备150可在MLC存储块中存储更大量的数据。然而,当使用SLC存储块时,存储设备150处理数据的速度可比使用MLC存储块时更快。即,SLC存储块和MLC存储块可具有不同的优缺点。因此,当需要快速处理数据时,处理器134可控制存储设备150以将数据编程到SLC存储块。另一方面,当需要较大的存储空间时,处理器134可控制存储设备150以将数据编程到MLC存储块。因此,处理器134可根据情况决定将要存储数据的存储块的类型。
代替非易失性存储器,存储设备150可通过相变随机存取存储器(PCRAM)、电阻随机存取存储器(RRAM(ReRAM))、铁电随机存取存储器(FRAM)和自旋转移力矩磁性随机存取存储器(STT-RAM(STT-MRAM))中的任何一种来实施。
存储块210、220、230、240可存储通过编程操作从主机102传送的数据,并且可以通过读取操作将存储在其中的数据传送到主机102。
接下来,参考图3,包括在存储系统110的存储设备150中的多个存储块可包括多个单元串340,这些单元串340被实施为存储单元阵列330并且分别耦合至位线BL0至BLm-1。每列的单元串340可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在漏极和源极选择晶体管DST和SST之间,多个存储单元MC0至MCn-1可串联耦合。在一个实施例中,存储单元晶体管MC0至MCn-1中的每一个都可由能够存储多位的数据信息的MLC实施。每个单元串340可电耦合至多条位线BL0至BLm-1中的对应位线。
图3示出了由NAND闪存单元组成的存储单元阵列330。然而,包括在根据本实施例的存储设备150中的多个存储块不仅限于NAND闪存,而是可以实施为NOR型闪存、混合两种或两种以上类型的存储单元的混合闪存或者具有嵌入在存储芯片中的控制器的一个NAND闪存。
根据操作模式,存储设备150的电压供应电路310可提供将分别提供给字线的字线电压(例如,编程电压、读取电压、通过电压等)和将要提供给形成存储单元的块(例如,阱区)的电压。此时,可以在控制电路(未示出)的控制下执行电压供应电路310的电压生成操作。此外,电压供应电路310可生成多个可变读取电压,以生成多个读取数据,响应于控制电路的控制选择存储单元阵列中的一个存储块(或扇区)并且选择所选存储块的一条字线,以及分别向所选字线和未被选择的字线提供字线电压。
存储设备150可包括被控制电路控制的读/写电路320。在验证/正常读取操作期间,读/写电路320可操作为用于从存储单元阵列读取(感测和放大)数据的感测放大器。在编程操作期间,读/写电路320可操作为写入驱动器,用于根据将被存储在存储单元阵列中的数据向位线提供电压或电流。在编程操作期间,读/写电路320可从缓冲器(未示出)接收将被存储在存储单元阵列中的数据,并根据所接收的数据驱动位线。读/写电路320可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器322至326。页面缓冲器322至326中的每一个都可以包括多个锁存器(未示出)。
存储设备150可实施为二维或三维存储设备。具体地,如图4所示,存储设备150可实施为具有三维堆叠结构的非易失性存储设备。当存储设备150被实施为具有三维堆叠结构的非易失性存储设备时,存储设备150可包括多个存储块BLK0至BLKN-1。图4是示出图1A所示的存储设备150的存储块的框图,并且每个存储块都可以实施为具有三维结构(或垂直结构)的存储块。例如,每个存储块可包括沿第一至第三方向(例如,x轴方向、y轴方向和z轴方向)延伸的结构,因此具有三维结构。
包括在存储设备150中的每个存储块330可包括在第二方向上延伸的多个NAND串NS以及在第一方向和第三方向上延伸的多个NAND串NS。这里,每个NAND串NS可耦合至位线BL、至少一条串选择线SSL、至少一条接地选择线GSL、多条字线WL、至少一条伪字线DWL和公共源极线CSL,并且每个NAND串NS可包括多个晶体管结构TS。
即,包括在存储设备150的多个存储块中的每个存储块中的每个存储单元阵列330可耦合至多条位线BL、多条串选择线SSL、多条接地选择线GSL、多条字线WL、多条伪字线DWL和多条公共源极线CSL,因此包括多个NAND串NS。在每个存储单元阵列330中,多个NAND串NS可耦合至一条位线BL,使得多个晶体管可在一个NAND串NS中实施。此外,相应NAND串NS的串选择晶体管SST可耦合至对应的位线BL,并且相应NAND串NS的接地选择晶体管GST可耦合至公共源极线CSL。存储单元MC可设置在相应NAND串NS的串选择晶体管SST和接地选择晶体管GST之间。即,多个存储单元可以在存储设备150的多个存储块中的每个存储单元阵列330中实施。
以下,将参考图5A至图5C描述根据本实施例的写入数据的编程操作。为了便于描述,图5A至图5C不考虑状态管理器146的操作。
图5A是示出根据一个实施例的写入数据的传送路径的概念图。图5A所示的写电路320可与图3所示的读/写电路320相同。因为图5A至图5C不考虑读取操作,所以图3的读/写电路320可以表示为写电路320。为了便于描述,图5A至图5C仅示出了本实施例的核心部件。
首先,主机102可以向控制器130提供写入命令和写入数据。此外,主机102可以向控制器130提供与写入数据相对应的逻辑地址以及写入数据。
控制器130可通过主机I/F 132接收写入数据和与写入数据相对应的逻辑地址。在处理器134的控制下,写入数据可临时存储在存储器144中。处理器134可分配写入数据被实际存储的物理地址。指定的物理地址可包括裸片信息、存储块信息和页面信息。
处理器134可通过存储器I/F 142向存储设备150提供存储在存储器144中的写入数据和编程命令。此外,考虑到目标裸片的操作状态和编程命令的类型,处理器134可以向存储设备150提供写入数据和编程命令。
从控制器130提供的写入数据可缓冲在存储设备150中所包含的写电路320内的一个或多个页面缓冲器中。写电路320可根据从控制器130提供的编程命令,将写入数据编程到与写入数据相对应的物理地址。在图5A中,物理地址可以仅显示为存储单元阵列330。
图5B是示出根据一个实施例的高速缓存编程操作的概念图。为了便于描述,假设第一数据和第二数据是顺序数据。此外,假设目标裸片在初始阶段处于“正常”状态。
首先,控制器130可以向存储设备150提供第一数据和高速缓存编程命令,以将第一数据编程到目标裸片。此时,存储设备150可以将第一数据缓冲在一个或多个页面缓冲器中。存储设备150可以将目标裸片的状态从“正常”状态改为“高速缓存”状态。然后,存储设备150可将第一数据编程到目标裸片。
在第一数据被编程到目标裸片时,控制器130可以向存储设备150提供第二数据和高速缓存编程命令,以编程第二数据。存储设备150可以在一个或多个页面缓冲器中缓冲第二数据,同时将第一数据编程到目标裸片。由于目标裸片目前处于“高速缓存”状态,因此存储设备150可以不执行单独的状态改变操作。
在完成第一数据的编程操作后,存储设备150可以将第二数据编程到目标裸片。在第二数据被编程时,编程命令和数据可以不从控制器130分开提供。因此,在完成第二数据的编程操作后,存储设备150可自动地将目标裸片的状态从“高速缓存”状态变为“正常”状态。
图5C是示出根据本实施例的正常编程操作的概念图。为了便于描述,假设第3数据和第4数据是非顺序数据。此外,假设目标裸片在初始阶段处于“正常”状态。
首先,控制器130可以向存储设备150提供第三数据和正常编程命令,以将第三数据编程到目标裸片。此时,存储设备150可将第三数据缓冲在一个或多个页面缓冲器中。由于目标裸片此时处于“正常”状态,因此存储设备150可以不执行单独的状态改变操作。然后,存储设备150可将第三数据编程到目标裸片。
在完成第三数据的编程操作之后,控制器130可以向存储设备150提供第四数据和正常编程命令,以将第四数据编程到目标裸片。此时,存储设备150可以将第四数据缓冲在一个或多个页面缓冲器中。由于目标裸片此时处于“正常”状态,因此存储设备150可以不执行单独的状态改变操作。然后,存储设备150可将第四数据编程到目标裸片。
如此,根据本实施例的存储系统110可使用不同的命令对数据进行编程。此后,将描述能够更有效地使用上述编程命令对数据进行编程的方法。
图6A至图6E是示出根据一个实施例的存储系统110的数据编程操作的概念图。在图6A至图6E中,控制器130可将存储在存储器144中的第一至第三数据data1至data3编程到存储设备150。将在下文描述的控制器130的所有操作都可在处理器134的控制下。为了便于描述,第一数据data1和第二数据data2是顺序数据,而第三数据data3是非顺序数据。此外,目标裸片是第一裸片650,并且目标裸片的初始状态是“准备”状态和“正常”状态。此外,第一至第三数据data1至data3被编程到第一裸片650中包括的第一存储块655。然而,这只是一个示例,本实施例并不限于此。
首先,参考图6A,控制器130可以向存储设备150提供第一数据data1,以将存储在存储器144中的第一数据data1编程到第一裸片650的第一存储块655。此外,控制器130可向存储设备150提供高速缓存编程命令和第一数据data1,以便编程第一数据data1。
存储设备150可将从控制器130接收的第一数据data1缓冲在写电路320内的一个或多个页面缓冲器中。然后,存储设备150可将第一裸片650的状态从“正常”状态变为“高速缓存”状态。
此时,控制器130可更新存储在状态管理器146中的状态管理表148内的第一裸片650的操作状态。具体地,控制器130可将第一裸片650的状态为“准备”状态的第一状态表610更新为第一裸片650的状态为“忙碌”状态的第二状态表615。
参考图6B,存储设备150可基于高速缓存编程命令将第一数据data1编程到第一存储块655。
在对第一数据data1进行编程时,控制器130可以向存储设备150提供存储在存储器144中的第二数据data2,以将第二数据data2编程到第一存储块655。此外,控制器130可向存储设备150提供高速缓存编程命令和第二数据data2,以编程第二数据data2。
在将第一数据data1编程到第一存储块655的同时,存储设备150可将从控制器130接收的第二数据data2缓冲在写电路320内的一个或多个页面缓冲器中。
参考图6C,当第一数据data1的编程操作完成时,存储设备150可顺序地将第二数据data2编程到第一存储块655。然后,存储设备150可完成第二数据data2的编程操作。由于在完成第二数据data2的编程操作时没有向存储设备150提供新数据,因此存储设备150可自动地将第一裸片650的状态从“高速缓存”状态变为“正常”状态。
控制器130可检查在存储设备150中完成第二数据data2的编程操作的时间点。此时,控制器130可将第一裸片650的操作状态被记录为“忙碌”状态的第二状态表615更新为第一裸片650的操作状态记录为“准备”状态的第三状态表620。
与上述示例不同,当在执行第二数据data2的编程操作的同时从控制器130提供带有高速缓存编程命令的新数据时,存储设备150可以在第二数据data2被编程之后对新数据进行编程。
另一方面,参考图6D,控制器130可检查第一裸片650的状态,然后将第三数据data3提供给存储设备150,因为第三数据data3是与之前编程的第一和第二数据data1和data2不同的非顺序数据。具体地,控制器130可检查记录在第三状态表620中的第一裸片650的操作状态是否为“准备”状态,并且向存储设备150提供第三数据data3。此外,控制器130可使用第三数据data3向存储设备150提供正常编程命令。
存储设备150可将从控制器130接收的第三数据data3缓冲在写电路320内的一个或多个页面缓冲器中。然后,存储设备150可使第一裸片650保持在“正常”状态。
此时,控制器130可将第一裸片650的状态为“准备”状态的第三状态表620更新为第一裸片650的状态为“忙碌”状态的第四状态表625。
参考图6E,存储设备150可将第三数据data3编程到第一存储块655。然后,存储设备150可完成第三数据data3的编程操作。
控制器130可检查第三数据data3的编程操作在存储设备150中完成的时间点。此时,控制器130可将第一裸片650的操作状态被记录为“忙碌”状态的第四状态表625更新为第一裸片650的操作状态被记录为“准备”状态的第五状态表630。
如上所述,当在将高速缓存编程命令提供给存储设备150之后提供正常编程命令时,存储设备150可自动地将目标裸片的状态从“高速缓存”状态切换到“正常”状态。因此,控制器130可以节省由使用高速缓存编程而引起的单独管理成本。
图7是示出根据一个实施例的存储系统110的操作处理的流程图。图7示出了基于图6A至图6C的存储系统110的操作处理。
首先,在步骤S701中,控制器130可以向存储设备150提供存储在存储器144中的第一数据和高速缓存编程命令。
在步骤S703中,存储设备150可将从控制器130接收的第一数据缓冲在写电路320内的页面缓冲器中。
在步骤S705中,存储设备150可将目标数据的状态从“正常”状态变为“高速缓存”状态。
在步骤S707中,控制器130可将目标裸片的操作状态从“准备准备”状态更新为“忙碌”状态。
在步骤S709中,写电路320可将第一数据编程到目标裸片中包括的一个或多个存储块。
此时,在步骤S711中,在执行第一数据的编程操作时,控制器130可以向存储设备150提供存储在存储器144中的第二数据和高速缓存编程命令。
在步骤S713中,在执行第一数据的编程操作时,存储设备150可将第二数据缓冲在写电路320内的页面缓冲器中。
在步骤S715中,在完成第一数据的编程操作之后,写电路320可将第二数据编程到目标裸片中包括的一个或多个存储块。
在完成第二数据的编程操作之后,在步骤S717中,控制器130可将目标裸片的操作状态从“忙碌”状态更新为“准备”状态。这是因为在完成第二数据的编程操作之前没有向存储设备150提供新数据。
在步骤S719中,存储设备150可将目标裸片的状态从“高速缓存”状态变为“正常”状态。
在步骤S721中,控制器130可以向存储设备150提供存储在存储器144中的第三数据和正常编程命令。
在步骤S723中,存储设备150可以将从控制器130接收的第三数据缓冲在写电路320内的页面缓冲器中。
在步骤S725中,控制器130可将目标裸片的操作状态从“准备”状态更新为“忙碌”状态。
在步骤S727中,写电路320可将第三数据编程到目标裸片中包括的一个或多个存储块。
在完成第三数据的编程操作之后,在步骤S729中,控制器130可将目标裸片的操作状态从“忙碌”状态更新为“准备”状态。
在执行高速缓存编程操作之后,根据本实施例的存储系统110可以自动地将目标裸片的状态切换为“正常”状态而没有附加操作,诸如提供单独命令的操作。因此,存储系统100可有效地执行编程操作。
下面参考图8至图16更加详细地描述应用根据本实施例的参考图1A至图8描述且包括存储设备150和控制器130的存储系统110的数据处理系统和电子设备。
图8是示意性示出根据一个实施例的包括存储系统的数据处理系统的另一示例的示图。图8示意性示出了可应用存储系统的存储卡系统。
参考图8,存储卡系统6100可包括存储控制器6120、存储设备6130和连接器6110。
具体地,存储控制器6120可电连接至由非易失性存储器实施的存储设备6130并被配置为访问存储设备6130。例如,存储控制器6120可被配置为控制存储设备6130的读取、写入、擦除和后台操作。存储控制器6120可被配置为在存储设备6130和主机之间提供接口,并使用固件控制存储设备6130。即,存储控制器6120可对应于参考图1A描述的存储系统110的控制器130,并且存储设备6130可对应于参考图1A描述的存储系统110的存储设备150。
因此,存储控制器6120可包括RAM、处理器、主机接口、存储器接口和纠错部件。
存储控制器6120可通过连接器6110与外部设备(例如,图1A的主机102)通信。例如,如参考图1A所描述的,存储控制器6120可被配置为通过一个或多个各种通信协议(诸如通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围部件互连(PCI)、PCI Express(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小盘接口(EDSI)、集成驱动电子设备(IDE)、固件、通用闪存(UFS)、WIFI和蓝牙)与外部设备通信。因此,存储系统和数据处理系统可应用于包括移动电子设备的有线/无线电子设备。
存储设备6130可由非易失性存储器实施。例如,存储设备6130可由各种非易失性存储设备中的任一种实施,诸如可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪存、NOR闪存、相变RAM(PRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)和自旋转移力矩磁性RAM(STT-RAM)。
存储控制器6120和存储设备6130可集成在单个半导体设备中以形成固态驱动器(SSD)。此外,存储控制器6120和存储设备6130可如此集成以形成存储卡,诸如PC卡(PCMCIA:个人计算机存储卡国际协会)、紧凑式闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆条、多媒体卡(例如,MMC、RS-MMC、MMCmicro和eMMC)、SD卡(例如,SD、miniSD、microSD和SDHC)和/或通用闪存(UFS)。
图9是示意性示出根据一个实施例的包括存储系统的数据处理系统的另一示例的示图。
参考图9,数据处理系统6200可包括具有一个或多个非易失性存储器的存储设备6230和用于控制存储设备6230的存储控制器6220。如参考图1A所描述的,图9所示的数据处理系统6200可用作存储介质,诸如存储卡(CF、SD、micro-SD等)或USB设备。存储设备6230可对应于图1A所示存储系统110中的存储设备150,并且存储控制器6220可对应于图1A所示的存储系统110中的控制器130。
存储控制器6220可响应于主机6210的请求来控制对存储设备6230的读取、写入或擦除操作。存储控制器6220可包括一个或多个CPU 6221、缓冲存储器(诸如RAM 6222)、ECC电路6223、主机接口6224和存储器接口(诸如NVM接口6225)。
CPU 6221可控制存储设备6230的总体操作,例如,读取、写入、文件系统管理和坏页管理操作。RAM 6222可根据CPU 6221的控制进行操作,并被用作工作存储器、缓冲存储器或高速缓存存储器。当RAM 6222被用作工作存储器时,由CPU 6221处理的数据可临时存储在RAM 6222中。当RAM 6222被用作缓冲存储器时,RAM 6222可用于缓冲从主机6210传输到存储设备6230的数据,反之亦然。当RAM 6222被用作高速缓存存储器时,RAM 6222可帮助存储设备6230高速操作。
ECC电路6223可生成ECC(纠错码),用于校正从存储设备6230提供的数据的失败位或错误位。ECC电路6223可以对提供给存储设备6230的数据执行纠错编码,从而形成具有奇偶校验位的数据。奇偶校验位可存储在存储设备6230中。ECC电路6223可以对从存储设备6230输出的数据执行纠错解码。ECC电路6223可使用奇偶校验位校正错误。ECC电路6223可使用LDPC码、BCH码、Turbo码、里德-索罗门码、卷积码、RSC或编码调制(诸如TCM或BCM)校正错误。
存储控制器6220可通过主机接口6224与主机6210交换数据。存储控制器6220可通过NVM接口6225与存储设备6230交换数据。主机接口6224可通过PATA总线、SATA总线、SCSI、USB、PCIe或NAND接口连接至主机6210。存储控制器6220可通过移动通信协议(诸如WiFi或长期演进(LTE))具有无线通信功能。存储控制器6220可连接至外部设备(例如主机6210或另一外部设备),然后与外部设备交换数据。具体地,由于存储控制器6220被配置为根据一种或多种通信协议与外部设备通信,所以存储系统和数据处理系统可应用于有线/无线电子设备,特别是移动电子设备。
图10是示意性示出根据一个实施例的包括存储系统的数据处理系统的另一示例的示图。图10示意性示出了可应用存储系统的SSD。
参考图10,SSD 6300可包括控制器6320和存储设备6340(其包括多个非易失性存储器)。控制器6320可对应于图1A的存储系统110中的控制器130,并且存储设备6340可对应于图1A的存储系统中的存储设备150。
具体地,控制器6320可通过多个通道CH1至CHi连接至存储设备6340。控制器6320可包括一个或多个处理器6321、缓冲存储器6325、ECC电路6322、主机接口6324和存储器接口,例如非易失性存储器接口6326。
缓冲存储器6325可临时地存储从主机6310提供的数据或从存储设备6340中包括的多个闪存NVM提供的数据。此外,缓冲存储器6325可临时地存储多个闪存NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可由各种易失性存储器(诸如DRAM、SDRAM、DDRSDRAM、LPDDR SDRAM和GRAM)或非易失性存储器(诸如FRAM、ReRAM、STT-MRAM和PRAM)中的任一种实施。图10示出了在控制器6320中实施的缓冲存储器6325。然而,缓冲存储器6325可以在控制器6320外部。
ECC电路6322可计算在编程操作期间将被编程到存储设备6340的数据的ECC值,在读取操作期间基于ECC值对从存储设备6340读取的数据执行纠错操作,并且在失败数据恢复操作期间对从存储设备634恢复的数据执行纠错操作。
主机接口6324可提供与外部设备(例如,主机6310)的接口功能,并且非易失性存储器接口6326可提供与通过多个通道连接的存储设备6340的接口功能。
此外,可应用图1A的存储系统110的多个SSD 6300可被设置为实施数据处理系统,例如RAID(独立磁盘冗余阵列)系统。RAID系统可包括多个SSD 6300和用于控制多个SSD6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可根据多个RAID级别(即,从SSD 6300中的主机6310提供的写入命令的RAID级别信息)选择一个或多个存储系统或SSD 6300,并且向所选的SSD 6300输出对应于写入命令的数据。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取命令时,RAID控制器可根据多个RAID级别(即,从SSD 6300中的主机6310提供的读取命令的RAID级别信息)选择一个或多个存储系统或SSD 6300,并且向主机6310提供从所选SSD 6300读取的数据。
图11是示意性示出根据一个实施例的包括存储系统的数据处理系统的另一示例的示图。图11示意性示出了可应用存储系统的嵌入式多媒体卡(eMMC)。
参考图11,eMMC 6400可包括控制器6430和由一个或多个NAND闪存实施的存储设备6440。控制器6430可对应于图1A的存储系统110中的控制器130。存储设备6440可对应于图1A的存储系统110中的存储设备150。
具体地,控制器6430可通过多个通道连接至存储设备6440。控制器6430可包括一个或多个核心6432、主机接口6431和存储器接口(例如,NAND接口6433)。
核心6432可控制eMMC 6400的整体操作,主机接口6431可提供控制器6430和主机6410之间的接口功能,并且NAND接口6433可提供存储设备6440和控制器6430之间的接口功能。例如,主机接口6431可用作并行接口,例如,参考图1A描述的MMC接口。此外,主机接口6431可用作串行接口,例如,UHS((超高速)-I/UHS-II)接口。
图12至图15示意性示出根据实施例的包括存储系统的数据处理系统的其他示例。图12至图15示意性示出了可应用存储系统的UFS(通用闪存)系统。
参考图12至图15,UFS系统6500、6600、6700、6800可分别包括主机6510、6610、6710、6810、UFS设备6520、6620、6720、6820和UFS卡6530、6630、6730、6830。主机6510、6610、6710、6810可用作有线/无线电子设备(特别是移动电子设备)的应用处理器,UFS设备6520、6620、6720、6820可用作嵌入式UFS设备,以及UFS卡6530、6630、6730、6830可用作外部嵌入式UFS设备或可移除UFS卡。
相应UFS系统6500、6600、6700、6800中的主机6510、6610、6710、6810、UFS设备6520、6620、6720、6820和UFS卡6530、6630、6730、6830可通过UFS协议与外部设备(例如,有线/无线电子设备,特别是移动电子设备)通信,并且UFS设备6520、6620、6720、6820和UFS卡6530、6630、6730、6830可通过图1A所示的存储系统110实施。例如,在UFS系统6500、6600、6700、6800中,UFS设备6520、6620、6720、6820可以参考图9至图11描述的数据处理系统6200、SSD 6300或eMMC 6400的形式实施,并且UFS卡6530、6630、6730、6830可以参考图8描述的存储卡系统6100的形式实施。
此外,在UFS系统6500、6600、6700、6800中,主机6510、6610、6710、6810、UFS设备6520、6620、6720、6820和UFS卡6530、6630、6730、6830可通过UFS接口相互通信,例如,MIPI(移动工业处理器接口)中的MIPI M-PHY和MIPI UniPro(统一协议)。此外,UFS设备6520、6620、6720、6820和UFS卡6530、6630、6730、6830可通过除UFS协议以外的各种协议中的任一种(例如,UFD、MMC、SD、mini-SD和micro-SD)相互通信。
在图12所示的UFS系统6500中,主机6510、UFS设备6520和UFS卡6530中的每一个均可以包括UniPro。主机6510可执行切换操作,以与UFS设备6520和UFS卡6530通信。具体地,主机6510可通过链路层切换(例如,UniPro处的L3切换)与UFS设备6520或UFS卡6530通信。UFS设备6520和UFS卡6530可通过主机6510的UniPro处的链路层切换相互通信。在所示实施例中,一个UFS设备6520和一个UFS卡6530连接至主机6510。然而,多个UFS设备和UFS卡可并联连接或者以星形方式连接至主机6410。星形形式是单个设备与多个设备耦合用于集中化操作的布置。多个UFS卡可以并联连接或者以星形方式连接至UFS设备6520,或者串联连接或以链形式连接至UFS设备6520。
在图13所示的UFS系统6600中,主机6610、UFS设备6620和UFS卡6630中的每一个都可以包括UniPro。主机6610可通过执行切换操作的切换模块6640(例如,通过在UniPro处执行链路层切换(例如,L3切换)的切换模块6640)与UFS设备6620或UFS卡6630通信。UFS设备6620和UFS卡6630可通过UniPro处的切换模块6640的链路层切换相互通信。在所示实施例中,一个UFS设备6620和一个UFS卡6630连接至切换模块6640。然而,多个UFS设备和UFS卡可并联连接或以星形方式连接至切换模块6640。多个UFS卡可以串联连接或以链形式连接至UFS设备6620。
在图14所示的UFS系统6700中,主机6710、UFS设备6720和UFS卡6730中的每一个都可以包括UniPro。主机6710可通过执行切换操作的切换模块6740(例如,通过在UniPro处执行链路层切换(例如,L3切换)的切换模块6740)与UFS设备6720或UFS卡6730通信。UFS设备6720和UFS卡6730可通过UniPro处的切换模块6740的链路层切换相互通信。切换模块6740可作为一个模块与UFS设备6720集成在UFS设备6720内部或外部。在所示实施例中,一个UFS设备6720和一个UFS卡6730连接至切换模块6740。然而,多个模块(每个均包括切换模块6740和UFS设备6720)可以并联连接或以星形形式连接至主机6710。在另一示例中,多个模块可以串联连接或以链形式相互连接。此外,多个UFS卡可以并联连接或以星形形式连接至UFS设备6720。
在图15所示的UFS系统6800中,主机6810、UFS设备6820和UFS卡6830中的每一个都可以包括M-PHY和UniPro。UFS设备6820可执行切换操作,以与主机6810和UFS卡6830通信。具体地,UFS设备6820可通过用于与主机6810通信的M-PHY和UniPro模块和用于与UFS卡6830通信的M-PHY和UniPro模块之间的切换操作来与主机6810或UFS卡6830通信,例如通过目标ID(标识符)切换操作。主机6810和UFS卡6830可通过UFS设备6820的M-PHY和UniPro模块之间的目标ID切换彼此通信。在所示实施例中,一个UFS设备6820连接至主机6810,并且一个UFS卡6830连接至UFS设备6820。然而,多个UFS设备可以并联连接或以星形方式连接至主机6810,或者串联连接或以链形式连接至主机6810。多个UFS卡可以并联连接或以星形方式连接至UFS设备6820,或者串联连接或以链形式连接至UFS设备6820。
图16是示意性示出根据本发明一个实施例的包括存储系统的数据处理系统的另一示例的示图。图16是示意性示出可应用存储系统的用户系统的示图。
参考图16,用户系统6900可包括应用处理器6930、存储器模块6920、网络模块6940、存储模块6950和用户界面6910。
具体地,应用处理器6930可驱动用户系统6900中的部件(例如,OS),并且包括控制器、接口和控制用户系统6900中包括的部件的图形引擎。应用处理器6930可设置为芯片上系统(SoC)。
存储器模块6920可用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块6920可包括易失性RAM(诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDR SDARM、LPDDR3SDRAM或LPDDR3SDRAM)或非易失性RAM(诸如PRAM、ReRAM、MRAM或FRAM)。例如,应用处理器6930和存储器模块6920可基于POP(层叠封装)被封装和安装。
网络模块6940可与外部设备通信。例如,网络模块6940不仅支持有线通信,而且还支持各种无线通信协议,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球互通微波访问(WiMax)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI),从而与有线/无线电子设备(特别是移动电子设备)通信。因此,根据本发明的一个实施例,存储系统和数据处理系统可应用于有线/无线电子设备。网络模块6940可包括在应用处理器6930中。
存储模块6950可存储数据(例如,从应用处理器6930接收的数据),然后可以将存储的数据传输至应用处理器6930。存储模块6950可由非易失性半导体存储设备(诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(ReRAM)、NAND闪存、NOR闪存和3D NAND闪存)实施,并且设置为可移除存储介质(诸如存储卡或用户系统6900的外部驱动器)。存储模块6950可对应于参考图1A描述的存储系统110。此外,存储模块6950可实施为参考图10至图15描述的SSD、eMMC和UFS。
用户接口6910可包括用于向应用处理器6930输入数据或命令或者向外部设备输出数据的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像头、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示设备、有源矩阵OLED(AMOLED)显示设备、LED、扬声器和电机的用户输出接口。
此外,当图1A的存储系统110应用于用户系统6900的移动电子设备时,应用处理器6930可控制移动电子设备的整体操作,并且网络模块6940可用作用于控制与外部设备的有线/无线通信的通信模块。用户接口6910可以在移动电子设备的显示/触摸模块上显示被处理器6930处理的数据,或者支持从触摸面板接收数据的功能。
根据本实施例,存储系统可有效地将数据编程到存储设备,而无需附加命令。
尽管出于说明目的已经描述了各种实施例,但本领域技术人员应理解,可以在不背离由所附权利要求限定的本发明的精神和范围的情况下进行各种更改和修改。
Claims (20)
1.一种存储系统,处理高速缓存编程命令和正常编程命令,所述存储系统包括:
控制器,适于提供第一数据、对应于所述第一数据的所述高速缓存编程命令、第二数据以及对应于所述第二数据的所述正常编程命令;以及
存储设备,适于根据所述高速缓存编程命令将所述第一数据编程到目标裸片,在完成用于所述第一数据的编程操作之后将所述目标裸片设置为正常状态,并且根据所述正常编程命令将所述第二数据编程到所述目标裸片。
2.根据权利要求1所述的存储系统,其中所述存储设备根据所述高速缓存编程命令将所述目标裸片设置为高速缓存状态。
3.根据权利要求1所述的存储系统,其中所述存储设备包括适于在一个或多个页面缓冲器中缓冲所述第一数据和所述第二数据并且将所述第一数据和所述第二数据编程到所述目标裸片的写入电路。
4.根据权利要求1所述的存储系统,其中所述控制器包括:
存储器,适于存储所述第一数据和所述第二数据;
状态管理器,适于检查所述存储设备中包括的多个裸片的操作状态;以及
处理器,适于控制所述存储设备。
5.根据权利要求4所述的存储系统,其中当所述目标裸片的初始操作状态为“准备”状态并且所述第一数据被提供给所述存储设备时,所述控制器将所述目标裸片的操作状态更新为“忙碌”状态。
6.根据权利要求5所述的存储系统,其中当完成用于所述第一数据的编程操作时,所述控制器将所述目标裸片的操作状态更新为所述“准备”状态。
7.根据权利要求6所述的存储系统,其中所述控制器检查所述目标裸片的操作状态为所述“准备”状态,然后向所述存储设备提供所述第二数据和所述正常编程命令。
8.根据权利要求7所述的存储系统,其中当所述第二数据被提供给所述存储设备时,所述控制器将所述目标裸片的操作状态更新为所述“忙碌”状态。
9.根据权利要求8所述的存储系统,其中当完成用于所述第二数据的编程操作时,所述控制器将所述目标裸片的操作状态更新为所述“准备”状态。
10.根据权利要求1所述的存储系统,其中所述控制器检查用于所述第一数据和所述第二数据的编程操作被完成的时间点。
11.一种用于存储系统的操作方法,所述存储系统处理高速缓存编程命令和正常编程命令,所述操作方法包括:
通过控制器,向存储设备提供第一数据和对应于所述第一数据的所述高速缓存编程命令;
根据所述高速缓存编程命令将所述第一数据编程到目标裸片;
将所述目标裸片设置为正常状态;
通过所述控制器,向所述存储设备提供所述第二数据和对应于所述第二数据的所述正常编程命令;以及
根据所述正常编程命令将所述第二数据编程到所述目标裸片。
12.根据权利要求11所述的操作方法,还包括:根据所述高速缓存编程命令将所述目标裸片设置为高速缓存状态。
13.根据权利要求11所述的操作方法,还包括:在一个或多个页面缓冲器中缓冲所述第一数据和所述第二数据。
14.根据权利要求11所述的操作方法,还包括:
在存储器中存储所述第一数据和所述第二数据;以及
检查所述存储设备中包括的多个裸片的操作状态。
15.根据权利要求14所述的操作方法,还包括:当所述目标裸片的初始操作状态为“准备”状态并且所述第一数据被提供给所述存储设备时,将所述目标裸片的操作状态更新为“忙碌”状态。
16.根据权利要求15所述的操作方法,还包括:当完成用于所述第一数据的编程操作时,将所述目标裸片的操作状态更新为所述“准备”状态。
17.根据权利要求16所述的操作方法,还包括:检查所述目标裸片的操作状态为所述“准备”状态,然后向所述存储设备提供所述第二数据和所述正常编程命令。
18.根据权利要求17所述的操作方法,还包括:当所述第二数据被提供给所述存储设备时,将所述目标裸片的操作状态更新为所述“忙碌”状态。
19.根据权利要求18所述的操作方法,还包括:当完成用于所述第二数据的编程操作时,将所述目标裸片的操作状态更新为所述“准备”状态。
20.根据权利要求11所述的操作方法,还包括:检查用于所述第一数据和所述第二数据的编程操作被完成的时间点。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0100119 | 2018-08-27 | ||
KR1020180100119A KR20200023758A (ko) | 2018-08-27 | 2018-08-27 | 메모리 시스템 및 그것의 동작방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110865948A true CN110865948A (zh) | 2020-03-06 |
CN110865948B CN110865948B (zh) | 2023-03-07 |
Family
ID=69587078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910693626.8A Active CN110865948B (zh) | 2018-08-27 | 2019-07-30 | 存储系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10964392B2 (zh) |
KR (1) | KR20200023758A (zh) |
CN (1) | CN110865948B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113391763A (zh) * | 2020-03-13 | 2021-09-14 | 美光科技公司 | 存储器裸片资源管理 |
CN114328304A (zh) * | 2020-09-29 | 2022-04-12 | 成都忆芯科技有限公司 | 存储介质的操作方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060126390A1 (en) * | 2004-12-14 | 2006-06-15 | Gorobets Sergey A | Pipelined programming of non-volatile memories using early data |
US7463521B2 (en) * | 2005-04-01 | 2008-12-09 | Sandisk Corporation | Method for non-volatile memory with managed execution of cached data |
US20100023674A1 (en) * | 2008-07-28 | 2010-01-28 | Aviles Joaquin J | Flash DIMM in a Standalone Cache Appliance System and Methodology |
US20100106893A1 (en) * | 2008-10-25 | 2010-04-29 | Luca Fasoli | Page buffer program command and methods to reprogram pages without re-inputting data to a memory device |
US20100174846A1 (en) * | 2009-01-05 | 2010-07-08 | Alexander Paley | Nonvolatile Memory With Write Cache Having Flush/Eviction Methods |
US20150067261A1 (en) * | 2013-08-30 | 2015-03-05 | Think Silicon Ltd | Device and Method for Eliminating Complex Operations in Processing Systems based on Caching |
US20160179385A1 (en) * | 2014-12-19 | 2016-06-23 | SK Hynix Inc. | Memory system and operating method thereof |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5007485B2 (ja) | 2004-08-26 | 2012-08-22 | ソニー株式会社 | 半導体記憶装置およびそのアクセス方法、並びにメモリ制御システム |
US7206230B2 (en) * | 2005-04-01 | 2007-04-17 | Sandisk Corporation | Use of data latches in cache operations of non-volatile memories |
US7652918B2 (en) * | 2006-12-28 | 2010-01-26 | Sandisk Corporation | Retention margin program verification |
JP2011154547A (ja) * | 2010-01-27 | 2011-08-11 | Toshiba Corp | メモリ管理装置及びメモリ管理方法 |
KR101212739B1 (ko) | 2010-12-21 | 2012-12-14 | 에스케이하이닉스 주식회사 | 비휘발성 메모리장치 및 이의 동작방법 |
US20130138884A1 (en) * | 2011-11-30 | 2013-05-30 | Hitachi, Ltd. | Load distribution system |
-
2018
- 2018-08-27 KR KR1020180100119A patent/KR20200023758A/ko not_active Application Discontinuation
-
2019
- 2019-07-05 US US16/504,023 patent/US10964392B2/en active Active
- 2019-07-30 CN CN201910693626.8A patent/CN110865948B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060126390A1 (en) * | 2004-12-14 | 2006-06-15 | Gorobets Sergey A | Pipelined programming of non-volatile memories using early data |
US7463521B2 (en) * | 2005-04-01 | 2008-12-09 | Sandisk Corporation | Method for non-volatile memory with managed execution of cached data |
US20100023674A1 (en) * | 2008-07-28 | 2010-01-28 | Aviles Joaquin J | Flash DIMM in a Standalone Cache Appliance System and Methodology |
US20100106893A1 (en) * | 2008-10-25 | 2010-04-29 | Luca Fasoli | Page buffer program command and methods to reprogram pages without re-inputting data to a memory device |
US20100174846A1 (en) * | 2009-01-05 | 2010-07-08 | Alexander Paley | Nonvolatile Memory With Write Cache Having Flush/Eviction Methods |
US20150067261A1 (en) * | 2013-08-30 | 2015-03-05 | Think Silicon Ltd | Device and Method for Eliminating Complex Operations in Processing Systems based on Caching |
US20160179385A1 (en) * | 2014-12-19 | 2016-06-23 | SK Hynix Inc. | Memory system and operating method thereof |
Non-Patent Citations (1)
Title |
---|
董振兴: ""星载存储器吞吐率瓶颈与高速缓存并行缓存机制"", 《哈尔滨工业大学学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113391763A (zh) * | 2020-03-13 | 2021-09-14 | 美光科技公司 | 存储器裸片资源管理 |
CN114328304A (zh) * | 2020-09-29 | 2022-04-12 | 成都忆芯科技有限公司 | 存储介质的操作方法和装置 |
CN114328304B (zh) * | 2020-09-29 | 2023-11-14 | 成都忆芯科技有限公司 | 存储介质的操作方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110865948B (zh) | 2023-03-07 |
KR20200023758A (ko) | 2020-03-06 |
US20200066348A1 (en) | 2020-02-27 |
US10964392B2 (en) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10861581B2 (en) | Memory system for accessing recovered super block and operating method thereof | |
CN107491396B (zh) | 存储器系统及其操作方法 | |
US20170322731A1 (en) | Memory system and operating method thereof | |
CN110750207B (zh) | 存储器系统及其操作方法 | |
CN111309638B (zh) | 存储器系统及其操作方法 | |
CN109656470B (zh) | 存储器系统及其操作方法 | |
US10885992B2 (en) | Memory system and operating method thereof | |
CN110045914B (zh) | 存储器系统及其操作方法 | |
KR20190040598A (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
CN111241002A (zh) | 存储器系统及其操作方法 | |
US20190347193A1 (en) | Memory system and operating method thereof | |
CN111078583A (zh) | 存储器系统及其操作方法 | |
CN111145818B (zh) | 存储器系统及其操作方法 | |
CN111090596B (zh) | 存储器系统及其操作方法 | |
CN110968521B (zh) | 存储器系统及其操作方法 | |
CN110795359B (zh) | 存储器系统及该存储器系统的操作方法 | |
CN110865948B (zh) | 存储系统及其操作方法 | |
CN111241001B (zh) | 数据处理系统及其操作方法 | |
US10528465B2 (en) | Memory system and operating method thereof | |
CN111176555A (zh) | 存储器系统及其操作方法 | |
CN111258920A (zh) | 存储器系统、存储器系统的操作方法和控制器 | |
US20180074711A1 (en) | Memory system and method for operating the same | |
CN111198652B (zh) | 存储器系统及其操作方法 | |
US20190221279A1 (en) | Memory system and operating method thereof | |
KR20190078134A (ko) | 메모리 시스템 및 그것의 동작방법 |
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 |