CN110806837B - 数据处理系统及其操作方法 - Google Patents
数据处理系统及其操作方法 Download PDFInfo
- Publication number
- CN110806837B CN110806837B CN201910484887.9A CN201910484887A CN110806837B CN 110806837 B CN110806837 B CN 110806837B CN 201910484887 A CN201910484887 A CN 201910484887A CN 110806837 B CN110806837 B CN 110806837B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- controller
- host
- memory device
- 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
Images
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
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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
-
- 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/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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
-
- 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
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
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
相关申请的交叉引用
本专利申请要求于2018年8月6日提交的申请号为10-2018-0091319的韩国专利申请的优先权,其每一个的全部公开内容通过引用并入本文。
技术领域
本发明的示例性实施例涉及一种数据处理系统,并且更特别地,涉及一种用于包括多个管芯的存储器系统的存储器分配方法。
背景技术
近来,计算机环境范例已经转变成使计算机系统能够随时随地出现的普适计算。诸如移动电话、数码相机、笔记本电脑等的便携式电子装置的使用正在迅速增加。通常,这些便携式电子装置使用或包括使用或嵌入至少一个存储器装置的存储器系统,即数据存储装置。数据存储装置可以用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,使用非易失性半导体存储器装置的数据存储装置的优点在于,它由于不具有机械驱动部件(例如机械臂)而具有优良的稳定性和耐用性、并且具有高信息访问速度以及低功耗。作为具有这些优点的存储器系统的示例,数据存储装置可以包括USB(通用串行总线)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
本公开的实施例可以提供一种存储器系统、数据处理系统和操作进程或方法,其可以通过降低存储器系统的操作复杂性和性能劣化并且提高存储器装置的使用效率来快速且可靠地将数据处理到存储器装置中。
本公开的实施例还提供一种存储器系统、数据处理系统及其操作方法,用于动态控制存储器分配方式以准备具有根据管芯结构的类型信息和包括在存储器装置中的管芯的数量而变化的大小的存储器区域。
在本公开的实施例中,存储器系统可以提供不仅可以分配和使用存储器系统中的存储器区域或部件,还可以分配和使用属于与存储器系统接合的主机的系统存储器区域或部件的装置和方法。
在实施例中,数据处理系统可以包括存储器系统和主机,该存储器系统包括用于存储数据的存储器装置和控制器,控制器用于在存储器装置中执行数据编程操作或数据读取操作,该主机适于向存储器系统请求数据编程操作或数据读取操作。控制器可以执行串行通信以控制第一存储器,该第一存储器布置在存储器系统外部并与主机接合。
串行通信经由MIPI M-PHY、通用异步接收器发送器(UART)、串行外围接口总线(SPI)和内部集成电路(I2C)中的至少一种协议来执行。
在串行通信中,存在两种类型的操作实体:主设备和从设备。通过示例而非限制的方式,在串行通信中,控制器可以充当主设备,并且第一存储器可以充当从设备。
在另一示例中,主机可以包括在串行通信中充当另一主设备的处理器。
在实施例中,存储器装置可以包括非易失性存储器装置,该非易失性存储器装置包括多个管芯,每个管芯包括多个块,每个块包括多个页面,页面包括存储数据的多个单元。控制器可以包括第二存储器,该第二存储器用于加载数据编程操作或数据读取操作所需的操作信息以及存储器装置的映射信息。
操作信息包括管芯结构的类型信息和包括在非易失性存储器装置中的管芯的数量。
例如,第二存储器可以包括用于将块管理信息、擦除计数、有效页面计数和映射表加载在第二存储器中所分配的存储器区域,该所分配的存储器区域可以具有根据操作信息而确定的不同的大小。当所有块管理信息、擦除计数、有效页面计数和映射表没有被全部加载到第二存储器中时,控制器可以分配第一存储器的部分以补充第二存储器的不足,该第二存储器具有基于操作信息所确定的不同的大小。
控制器可以至少基于操作信息将关于非易失性存储器装置的部分的映射信息中的一些加载到第二存储器中,并且将其余映射信息加载到第一存储器中。
通过示例而非限制的方式,管芯结构的类型信息包括单管芯封装(SDP)、双管芯封装(DDP)、四管芯封装(QDP)和八管芯封装(ODP)中的一种。
在另一实施例中,存储器系统可以包括:存储器装置,该存储器装置包括多个管芯,每个管芯包括多个块,每个块包括多个页面,页面包括存储数据的多个单元;以及控制器,适于在存储器装置中执行从主机请求的数据编程操作或数据读取操作,并且包括用于加载数据编程操作或数据读取操作所需的操作信息以及存储器装置的映射信息的第一存储器。在监控第一存储器的可用存储容量之后,控制器可以基于监控结果要求主机使用包括在主机中的额外的存储器区域。控制器可以响应于主机的决定,处置额外的存储器区域作为第一存储器的扩展。
控制器可以经由串行通信控制额外的存储器区域。通过示例而非限制的方式,串行通信可以经由MIPI M-PHY、通用异步接收器发送器(UART)、串行外围接口总线(SPI)和内部集成电路(I2C)中的至少一种协议来执行。
在串行通信中,控制器作为主设备操作,并且额外的存储器区域充当从设备。操作信息可以包括管芯结构的类型信息和包括在存储器装置中的管芯的数量。第一存储器可以包括被分配用于将块管理信息、擦除计数、有效页面计数和映射表加载在第一存储器中的存储器区域,该存储器区域可以具有根据操作信息而确定的不同的大小。
在另一实施例中,一种用于操作存储器系统的方法可以包括:加载关于存储器装置的操作信息,存储器装置包括多个管芯,每个管芯包括多个块,每个块包括多个页面,页面包括存储数据的多个单元;监控控制器中的第一存储器的可用存储容量;基于监控结果要求主机使用额外的存储器区域;并且响应于主机的决定,控制额外的存储器区域作为第一存储器的扩展,其中该额外的存储器区域包括在主机中。
通过示例而非限制的方式,控制额外的存储器区域可以包括控制串行通信以管理第一存储器和额外的存储器区域。串行通信可以经由MIPI M-PHY、通用异步接收器发送器(UART)、串行外围接口总线(SPI)和内部集成电路(I2C)中的至少一种协议来执行。在串行通信中,控制器可以充当主设备,并且额外的存储器区域可以作为从设备操作。
操作信息可以包括管芯结构的类型信息和包括在存储器装置中的管芯的数量。第一存储器可以包括被分配用于将块管理信息、擦除计数、有效页面计数和映射表加载在第一存储器中的存储器区域,该存储器区域可以具有根据操作信息而确定的不同的大小。
在另一实施例中,数据处理系统可以包括:主机,包括第一存储器并且适于提供针对操作的请求;存储器装置,适于存储数据;以及控制器,包括第二存储器并且适于控制存储器装置响应于请求执行操作。控制器将用于操作的数据缓冲在第二存储器中。当第二存储器充满部分数据片段时,控制器将剩余的数据片段存储在第一存储器中。控制器和第一存储器通过串行通信方案彼此通信。
附图说明
本文的描述参照附图,其中相同的附图标记在若干视图中表示相同的部件,其中:
图1是示出根据本公开的实施例的包括存储器系统的数据处理系统的示例的框图,其中存储器系统包括多个管芯;
图2是示出根据本公开的实施例的包括存储器系统的数据处理系统的示例的框图;
图3是示出根据本公开的实施例的存储器系统的示例的框图;
图4和图5是示出根据本公开的实施例的存储器系统执行与多个命令对应的多个命令操作的示例的示图;
图6是示出根据本公开的实施例的数据处理系统的框图;
图7是示出根据本公开的实施例的数据处理系统的操作方法的流程图;
图8是示出根据本公开的实施例的数据处理系统的控制方法的流程图;并且
图9至图17是示意性地示出根据本公开的实施例的包括存储器系统的数据处理系统的其它示例的示图。
具体实施方式
下面参照附图更详细地描述本公开的各个实施例。本公开可以不同的其它实施例、形式或其变型来实现,并且不应被理解为限于本文阐述的实施例。相反,提供描述的实施例使得本公开将彻底且完整,并且将向本发明所属领域的技术人员充分传达本公开。在整个公开中,相同的附图标记在本公开的各个附图和示例中指代相同的部件。注意的是,对“实施例”的参考不一定意味着仅一个实施例,并且对“实施例”的不同参考不一定针对相同的实施例。
将理解的是,虽然本文可以使用术语“第一”、“第二”、“第三”等来描述各个元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另一元件区分开。因此,在不脱离本发明的精神和范围的情况下,下面描述的第一元件也可以被称为第二或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能已经被夸大。当元件被称为连接或联接至另一元件时,应该理解的是,前者可以直接连接或联接至后者,或者通过在其间的中间元件电连接或联接至后者。
将进一步理解的是,当元件被称为“连接至”或“联接至”另一元件时,它可以直接在另一元件上或直接连接或联接至另一元件,或者也可以存在一个或多个中间元件。另外,还将理解的是,当元件被称为在两个元件“之间”时,它可以是两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。
本文使用的术语仅用于描述特定实施例的目的,而不旨在限制本发明。
除非上下文另有明确说明,否则如本文所使用的,单数形式旨在包括复数形式,并且反之亦然。
将进一步理解的是,当在本说明书中使用时,术语“包括”、“包括有”,“包含”和“包含有”指定所陈述元件的存在,而不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括相关所列项目中的一个或多个的任意和所有组合。
除非另有定义,否则本文使用的包括技术和科学术语的全部术语具有与本发明所属领域的技术人员鉴于本公开通常理解的相同的含义。将进一步理解的是,除非本文明确地如此定义,否则诸如常用字典中定义的术语的术语应该被理解为具有与它们在本公开和相关技术的背景下的含义一致的含义,并且将不会以理想化或过于形式化的意义来理解。
在以下描述中,阐述了许多具体细节以便提供对本发明的透彻理解。可以在没有这些具体细节中的一些或全部的情况下实践本发明。在其它情况下,未详细描述公知的进程结构和/或进程,以免不必要地模糊本发明。
还注意的是,在某些情况下,如对于相关领域的技术人员将显而易见的,除非另有明确说明,否则结合一个实施例描述的特征或元件可以单独使用或者与另一实施例的其它特征或元件组合使用。
在下文中,将参照附图详细地描述本公开的实施例。
在图1中,描述了根据本公开的实施例的数据处理系统的示例。数据处理系统包括存储器系统110和主机102。存储器系统110可以包括多个管芯。
参照图1,在数据处理系统中,存在存储器系统110和主机102,该存储器系统110包括非易失性存储器装置,该主机102能够响应于用户的请求使用存储在存储器系统110中的数据。例如,如果主机102是计算装置,则存储器系统110可以是诸如SSD的存储装置。
主机102可以包括至少一个处理器和至少一个存储器。包括在主机102中的至少一个存储器可以包括第一存储器104,该第一存储器104包括易失性存储器单元。通过示例而非限制的方式,第一存储器104可以利用诸如DRAM、SRAM等的存储器装置中的一个来实施。如果主机102是计算装置,则第一存储器104可以被认为是具有大存储容量(例如,几千兆字节)的系统存储器。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以是包括多个管芯的大容量存储装置。控制器130可以使用第二存储器144来提高从主机102传输的指令和数据的操作效率。根据实施例,第二存储器144可以布置在控制器130内部或者可以布置在控制器130外部。
在设计和制造存储器系统110之后增加存储器系统110的存储容量是困难的。例如,虽然存储器装置150具有包括四个管芯的结构,但是当正在使用具有存储器装置150的存储器系统110时,不可能将另外四个管芯添加到存储器装置150中。此外,在制造存储器系统110之后增加第二存储器144的容量也是困难的。然而,在作为一种包括在主机102中的系统存储器的第一存储器104的情况下,当在用户使用数据处理系统时确定需要更多存储容量时,可以增加其存储容量。例如,当主机102是计算装置时,作为系统存储器的第一存储器104可以被设计为可拆卸的、可添加的或可更换的。然而,不可能改变安装在计算装置上的诸如SSD的存储器系统110的内部结构。另外,当与包括在主机102中的第一存储器104的存储容量相比较时,包括在存储器系统110中的第二存储器144的存储容量通常非常小。
当数据处理系统面临响应于用户的请求执行操作的困难时,用户可能希望扩展主机102和存储器系统110的硬件。然而,除非被更换,否则扩展传统的存储器系统的硬件可能很困难。根据本公开的实施例的存储器系统110和主机102可以提供用于允许控制器130使用包括在主机102中的第一存储器104和设置在存储器系统110中的第二存储器144的方法和装置。
控制器130可以以高速接收从主机102传递的命令并且将数据传输至主机102。为此,控制器130和主机102可以支持串行通信。通过示例而非限制的方式,可以通过移动工业处理器接口(MIPI)的M-PHY、通用异步接收器发送器(UART)、串行外围接口总线(SPI)、内部集成电路(I2C)中的至少一个协议来执行或实现串行通信。
当存储器系统110可以支持通用闪存(UFS)和/或嵌入式UFS(eUFS)的规范时,存储器系统110和主机102可以使用定义高速串行数据通信的物理层协议的M-PHY。另外,存储器系统110可以在链路层支持统一协议(UniPro)标准。
在串行通信中,至少两个实体(例如,主设备和从设备)彼此接合。例如,存储器系统110中的控制器130充当主设备,并且主机102中的第一存储器104可以作为从设备操作。
在图2中,描述了根据本公开的实施例的数据处理系统100。参照图2,数据处理系统100可以包括与存储器系统110接合或互锁的主机102。
例如,主机102可以包括,例如诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏机、电视(TV)、投影仪等的电子装置。
主机102还包括至少一个操作系统(OS),其通常可以管理和控制在主机102中执行的功能和操作。OS可以提供与存储器系统110接合的主机102和需要并使用存储器系统110的用户之间的互操作性。OS可以支持对应于用户的请求的功能和操作。通过示例而非限制的方式,根据主机102的移动性,OS可以被分类为通用操作系统和移动操作系统。根据系统需求或用户的环境,通用操作系统可以被划分为个人操作系统和企业操作系统。包括Windows和Chrome的个人操作系统可以接受用于一般用途的支持服务。但是包括WindowsServer、Linux、Unix等的企业操作系统可以专门用于保护和支持高性能。此外,移动操作系统可以包括Android、iOS、Windows Mobile等。移动操作系统可以接受支持服务或移动性的功能(例如,省电功能)。主机102可以包括多个操作系统。主机102可以对应于用户的请求运行与存储器系统110互锁的多个操作系统。主机102可以将对应于用户的请求的多个命令传输至存储器系统110中,从而在存储器系统110内执行对应于命令的操作。下面参照图4和图5描述在存储器系统110中处置多个命令。
存储器系统110可以响应于来自主机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)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器的非易失性存储器装置来实施。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以存储待由主机102访问的数据。控制器130可以控制数据在存储器装置150中的存储。
控制器130和存储器装置150可以被集成到单个半导体装置中,该单个半导体装置可以包括在如上所例示的各种类型的存储器系统中。
通过示例而非限制的方式,控制器130和存储器装置150可以被集成到单个半导体装置中。配置SSD的控制器130和存储器装置150可以被集成到单个半导体装置中,以提高操作速度。当存储器系统110用作SSD时,连接至存储器系统110的主机102的操作速度可以比利用硬盘实施的主机102的操作速度提高更多。另外,集成到一个半导体装置中的控制器130和存储器装置150可以形成存储卡,例如,PC卡(PCMCIA),紧凑型闪存卡(CF),诸如智能媒体卡(SM、SMC)的存储卡,记忆棒,多媒体卡(MMC、RS-MMC、微型MMC)、SD卡(SD、迷你SD、微型SD和SDHC),通用闪速存储器等。
存储器系统110可以被配置为例如下列的一部分:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、3维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下传输和接收信息的装置、构成家庭网络的各种电子装置中的一种、构成计算机网络的各种电子装置中的一种、构成远程信息处理网络的各种电子装置中的一种、射频识别(RFID)装置或构成计算系统的各种组件中的一个。
存储器装置150可以是非易失性存储器装置,并且即使在不供应电力时也可保留其中存储的数据。存储器装置150可以通过写入操作存储从主机102提供的数据,而通过读取操作将存储在其中的数据提供至主机102。存储器装置150可以包括多个存储块152、154、156。存储块152、154、156中的每一个可以包括多个页面。多个页面中的每一个可以包括电联接到多个字线(WL)的多个存储器单元。存储器装置150还包括多个存储器管芯,存储器管芯中的每一个包括多个平面,平面中的每一个包括多个存储块152、154、156。另外,存储器装置150可以是非易失性存储器装置,例如闪速存储器,其中闪速存储器可以是三维堆叠结构。
控制器130可以控制存储器装置150的全部操作,诸如读取操作、写入操作、编程操作和擦除操作。例如,控制器130可以响应于来自主机102的请求来控制存储器装置150。控制器130可以向主机102提供从存储器装置150读取的数据。控制器130可以将由主机102提供的数据存储至存储器装置150中。
控制器130可以包括主机接口(I/F)132、处理器134、错误校正(ECC)电路138、电源管理单元(PMU)140、存储器接口(I/F)142以及存储器144,其全部通过内部总线可操作地联接。
主机接口132可以处理从主机102提供的命令和数据,并且可以通过诸如以下的各种接口协议中的至少一种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。根据实施例,主机接口132是用于与主机102交换数据的部件,该主机接口132可以通过称为主机接口层(HIL)的固件来实施。
ECC 138可以校正待在存储器装置150中处理(例如,从存储器装置150输出)的数据的错误位,该ECC 138可以包括ECC编码器和ECC解码器。此处,ECC编码器可以对待被编程在存储器装置150中的数据执行错误校正编码以生成其中添加了奇偶校验位的经编码数据并且将经编码数据存储在存储器装置150中。当控制器130读取存储在存储器装置150中的数据时,ECC解码器可以检测并校正从存储器装置150读取的数据中包含的错误。换言之,在对从存储器装置150读取的数据执行错误校正解码之后,ECC 138可以确定错误校正解码是否已经成功并且输出指示信号(例如,校正成功信号或校正失败信号)。ECC 138可以使用在ECC编码进程期间生成的奇偶校验位,以校正读取数据的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC 138可不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
ECC 138可以基于诸如低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等的编码调制执行错误校正操作。ECC 138可以包括用于基于上述码中的至少一种来执行错误校正操作的电路、模块、系统或装置中的全部或一些。
PMU 140可以管理在控制器130中提供的电力。
存储器接口142可以用作用于处置在控制器130和存储器装置150之间传送的命令和数据的接口,以允许控制器130响应于从主机102传递的请求来控制存储器装置150。在当存储器装置150是闪速存储器时,特别是当存储器装置150是NAND闪速存储器时的情况下,存储器接口142可以在处理器134的控制下生成用于存储器装置150的控制信号并且可以处理输入至存储器装置150中或从存储器装置150输出的数据。存储器接口142可以提供用于处置控制器130和存储器装置150之间的命令和数据,例如NAND闪存接口的操作,特别是控制器130和存储器装置150之间的操作的接口连接。根据实施例,存储器接口142可以通过作为与存储器装置150交换数据的部件的、称为闪存接口层(FIL)的固件来实施。
存储器144可以支持由存储器系统110和控制器130执行的操作。存储器144可以存储用于存储器系统110和控制器130中的操作的临时或事务数据。控制器130可以响应于来自主机102的请求控制存储器装置150。控制器130可以将从存储器装置150读取的数据传递至主机102。控制器130可以将通过主机102输入的数据存储在存储器装置150内。存储器144可用于存储控制器130和存储器装置150执行诸如读取操作或编程/写入操作的操作所需的数据。
存储器144可以利用易失性存储器来实施。存储器144可以利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或两者来实施。虽然图1例示了设置在控制器130外部的第二存储器144,但是实施例不限于此。也就是说,存储器144可以位于控制器130内部或外部。例如,存储器144可以通过具有存储器接口的外部易失性存储器来实现,该存储器接口传送在存储器144和控制器130之间传送的数据和/或信号。
存储器144可以存储执行由主机102请求的诸如数据写入和数据读取的操作所必需的数据和/或在存储器装置150和控制器130之间传送的、用于如上所述的诸如垃圾收集和损耗均衡的后台操作的数据。根据实施例,为了支持存储器系统110中的操作,存储器144可以包括编程存储器、数据存储器、写入缓冲器/高速缓冲器、读取缓冲器/高速缓冲器、数据缓冲器/高速缓冲器、映射缓冲器/高速缓冲器等。
处理器134可以利用微处理器或中央处理单元(CPU)来实施。存储器系统110可以包括一个或多个处理器134。处理器134可以控制存储器系统110的全部操作。通过示例而非限制的方式,处理器134可以响应于从主机102输入的写入请求或读取请求,来控制存储器装置150的编程操作或读取操作。根据实施例,处理器134可以使用或运行固件以控制存储器系统110的全部操作。此处,固件可以称为闪存转换层(FTL)。FTL可以执行作为主机102和存储器装置150之间的接口连接的操作。主机102可以通过FTL将针对写入操作和读取操作的请求传输至存储器装置150。
FTL可以管理地址映射、垃圾收集、损耗均衡等操作。特别地,FTL可以加载、生成、更新或存储映射数据。因此,控制器130可以通过映射数据对从主机102输入的逻辑地址与存储器装置150的物理地址进行映射。由于地址映射操作,存储器装置150可以看起来像执行读取操作或写入操作的通用存储装置。而且,通过基于映射数据的地址映射操作,当控制器130尝试更新存储在特定页面中的数据时,由于闪速存储器装置的特性,控制器130可以将更新后的数据编程在另一空页面上并且可以使特定页面的旧数据无效(例如,将与更新后的数据的逻辑地址对应的物理地址从先前的特定页面更新至另一新编程的页面)。此外,控制器130可以将新数据的映射数据存储至FTL中。
例如,为了在存储器装置150中执行从主机102请求的操作,控制器130使用在微处理器或中央处理单元(CPU)等中实施的处理器134。与存储器装置150接合的处理器134可以处置与从主机102输入的命令对应的指令或命令。控制器130可以执行作为与从主机102输入的命令对应的命令操作的前台操作,诸如对应于写入命令的编程操作、对应于读取命令的读取操作、对应于擦除/丢弃命令的擦除/丢弃操作以及对应于设置参数命令或设置特征命令相对应的、利用设置命令的参数设置操作。
再如,控制器130可以通过处理器134对存储器装置150执行后台操作。通过示例而非限制的方式,对存储器装置150的后台操作包括将存储在存储器装置150中的存储块152、154、156之中的任意存储块中的数据复制并存储到另一任意存储块的操作(例如,垃圾收集(GC)操作)。后台操作可以包括将存储在存储器装置150中的存储块152、154、156中的至少一个中的数据移动到存储块152、154、156中的至少另一个的操作或者在存储在存储器装置150中的存储块152、154、156中的至少一个中的数据之间进行交换的操作(例如,损耗均衡(WL)操作)。作为后台操作,控制器130使用处理器134以将存储在控制器130中的映射数据存储到存储器装置150中的存储块152、154、156中的至少一个,例如映射清除(flush)操作。用于检查包括在存储器装置150中的多个存储块152、154、156中的坏块的坏块管理操作是由处理器134执行的其它后台操作示例中的一种。
根据实施例,图1中所示的控制器130和第二存储器144可以通过图2中描述的控制器130中的至少一个处理器134和至少一个存储器144来实施。
在存储器系统110中,控制器130执行与从主机102输入的多个命令对应的多个命令操作。例如,当顺序地、随机地或可选地执行对应于多个编程命令的多个编程操作、对应于多个读取命令的多个读取操作和对应于多个擦除命令的多个擦除操作时,控制器130可以确定在用于将控制器130连接至包括在存储器装置150中的多个存储器管芯的多个通道(或路)中哪个/哪些通道(或路)适合或适于执行每个操作。控制器130可以经由确定的通道或路发送或传输数据或指令以执行每个操作。包括在存储器装置150中的多个存储器管芯可以在每个操作完成之后分别经由相同的通道或路传输操作结果。然后,控制器130可以将响应或确认信号传输至主机102。在实施例中,控制器130可以检查每个通道或每个路的状态。响应于从主机102输入的命令,控制器130可以基于每个通道或每个路的状态来选择至少一个通道或路,使得可以经由选择的通道或路来传递指令和/或操作结果以及数据。
通过示例而非限制的方式,控制器130可以识别关于与包括在存储器装置150中的多个存储器管芯相关联的多个通道(或路)的状态。控制器130可以将每个通道或每个路确定为忙碌状态、就绪状态、活动状态、空闲状态、正常状态和/或异常状态中的一种。控制器确定的传递指令(和/或数据)所通过的通道或路可以与物理块地址相关联,例如指令(和/或数据)所传递至的管芯的物理块地址。控制器130可以参考从存储器装置150传递的描述符。描述符可以包括描述关于存储器装置150的事情的块或页面的参数,其是具有预定格式或结构的数据。例如,描述符可以包括装置描述符、配置描述符、单元描述符等。控制器130可以参考或使用描述符来确定经由哪个/哪些通道或路来交换指令或数据。
管理单元(未示出)可以包括在处理器134中。管理单元可以执行存储器装置150的坏块管理。管理单元可以找到包括在存储器装置150中的不满足进一步使用的条件的坏存储块,并且对坏存储块执行坏块管理。当存储器装置150是闪速存储器,例如NAND闪速存储器时,在写入操作期间,例如在编程操作期间,由于NAND逻辑功能的特性可能发生编程失败。在坏块管理期间,编程失败的存储块或坏存储块的数据可以被编程到新的存储块中。坏块可能使具有3D堆叠结构的存储器装置150的利用效率和存储器系统110的可靠性严重恶化。因此,可靠的坏块管理可以增强或提高存储器系统110的性能。
参照图3,详细描述了根据本公开的另一示例的存储器系统中的控制器。控制器130与主机102和存储器装置150协作。控制器130可以包括主机接口单元132、闪存转换层(FTL)单元40、存储器接口单元142和存储器144。
虽然未在图3中示出,但是根据实施例,图2中描述的ECC 138可以包括在闪存转换层(FTL)单元40中。在另一实施例中,ECC 138可以被实施为包括在控制器130中或与控制器130相关联的单独的模块、电路、固件等。
主机接口单元132用于处置从主机102传输的命令、数据等。通过示例而非限制的方式,主机接口单元132可以包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可以顺序地存储从主机102传输的命令、数据等,并且以存储的顺序将它们输出至缓冲器管理器52。缓冲器管理器52可以对从命令队列56传递的命令、数据等进行分类、管理或调整。事件队列54可以顺序地传输用于处理从缓冲器管理器52传输的命令、数据等的事件。
相同特性的多个命令或数据可以从主机102连续传输,或者不同特性的命令和数据可以在混合或混杂之后被传输至存储器系统110。例如,用于读取数据的多个命令(读取命令)可以被传递至存储器系统110,或者用于读取数据的命令(读取命令)和用于编程/写入数据的命令(写入命令)可以被交替地传输至存储器系统110。主机接口单元132可以顺序地将从主机102传输的命令、数据等存储至命令队列56。此后,主机接口单元132可以根据从主机102传输的命令、数据等的特性来估计或预测控制器130将执行的操作的类型。主机接口单元132可以至少基于它们的特性来确定命令、数据等的处理顺序和优先级。根据从主机102传输的命令、数据等的特性,主机接口单元132中的缓冲器管理器52被配置为确定命令、数据等是否被存储在存储器144中,或者命令、数据等是否被传递至闪存转换层(FTL)单元40中。事件队列54接收从缓冲器管理器52输入的、待由存储器系统110或控制器130响应于从主机102传输的命令、数据等在内部运行并处理的事件,以便按照接收的顺序将事件传递至闪存转换层(FTL)单元40中。
根据实施例,图3中描述的主机接口单元132可以执行图1中描述的控制器130的功能。主机接口单元132可以将包括在主机102中的第一存储器104设置为从设备,并且添加第一存储器104作为可由控制器130控制或使用的额外存储空间。
根据实施例,闪存转换层(FTL)单元40可以包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器42和块管理器48。主机请求管理器(HRM)46可以管理从事件队列54输入的事件。映射管理器(MM)44可以处置或控制映射数据。状态管理器42可以执行垃圾收集或损耗均衡。块管理器48可以对存储器装置150中的块运行命令或指令。
通过示例而非限制的方式,主机请求管理器(HRM)46可以使用映射管理器(MM)44和块管理器48以根据从主机接口单元132传递的读取和编程命令和事件来处置或处理请求。主机请求管理器(HRM)46可以将查询请求发送至映射管理器(MM)44,以找出对应于与事件一起输入的逻辑地址的物理地址。主机请求管理器(HRM)46可以将读取请求与物理地址一起发送至存储器接口单元142,以处理读取请求(处置事件)。另一方面,主机请求管理器(HRM)46可以将编程请求(写入请求)发送至块管理器48,以将输入的数据编程至存储器装置150中的未记录(无数据)的特定页面,然后可以将对应于编程请求的映射更新请求传输至映射管理器(MM)44,以更新逻辑-物理地址相互映射的信息中的与被编程数据相关的项目。
此处,块管理器48可以将从主机请求管理器(HRM)46、映射数据管理器(MM)44和/或状态管理器42传递的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或增强存储器系统110(参见图2)的编程或写入性能,块管理器48可以收集编程请求并且将针对多平面编程操作和单触发(one-shot)编程操作的闪存编程请求发送至存储器接口单元142。块管理器48将若干闪存编程请求发送至存储器接口单元142以增强或最大化多通道和多方向闪存控制器的并行处理可能是合理的。
另一方面,块管理器48可以被配置为根据有效页面的数量来管理存储器装置150中的块,当需要空闲块时选择并擦除不具有有效页面的块,并且当确定垃圾收集是必要的时选择包括最低有效页面的块。状态管理器42可以执行垃圾收集以将有效数据移动到空块并且擦除包含被移动的有效数据的块,使得块管理器48可以具有足够的空闲块(没有数据的空块)。如果块管理器48将关于待被擦除的块的信息提供至状态管理器42,则状态管理器42可以检查待被擦除的块的所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可以识别记录在每个页面的带外(OOB)区域中的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将页面的物理地址与从查询请求获得的、映射到逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面将编程请求发送至块管理器48。当编程操作完成时,可以通过映射管理器44的更新来更新映射表。
映射管理器44可以管理逻辑-物理映射表。映射管理器44可以处理由主机请求管理器(HRM)46或状态管理器42生成的请求,诸如查询、更新等。映射管理器44可以将整个映射表存储在存储器装置150(例如,闪存/非易失性存储器)中,并且根据存储器144的存储容量高速缓存映射条目。当在处理查询或更新请求时发生映射高速缓存丢失(miss)时,映射管理器44可以将读取请求发送至存储器接口单元142以加载存储在存储器装置150中的相关映射表。当映射管理器44中的脏高速缓存块的数量超过某个阈值时,可以将编程请求发送至块管理器48,以便创建干净的高速缓存块并且可以将脏映射表存储在存储器装置150中。
另一方面,当执行垃圾收集时,状态管理器42将有效页面复制到空闲块中,并且主机请求管理器(HRM)46可以对页面的相同逻辑地址编程最新版本的数据,并且于当前发出更新请求。当状态管理器42在复制有效页面没有正常完成的状态下请求映射更新时,映射管理器44可以不执行映射表更新。这是因为如果状态管理器42请求映射更新,则映射请求与旧物理信息被一起发出,然后有效页面复制稍后完成。只有在最新映射表仍然指向旧物理地址时,映射管理器44才可以执行映射更新操作以确保准确性。
存储器装置150可以包括多个存储块。根据在一个存储器单元中可以存储或表示的位的数量,多个存储块可以被分类成不同类型的存储块,诸如单层单元(SLC)存储块、多层单元(MLC单元)存储块等。此处,SLC存储块包括由每个存储器单元存储一个数据位的存储器单元实施的多个页面。SLC存储块可以具有高数据I/O操作性能和高耐用性。MLC存储块包括由每个存储器单元存储多位(例如,两位或更多位)数据的存储器单元实施的多个页面。MLC存储块在相同的空间中可以具有比SLC存储块更大的存储容量。从存储容量的角度,MLC存储块可以被高度集成。在实施例中,存储器装置150可以利用诸如MLC存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合的MLC存储块来实施。MLC存储块可以包括由每个存储器单元能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个存储器单元能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可以包括由每个存储器单元能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用包括由每个存储器单元能够存储5位或更多位数据的存储器单元实施的多个页面的块来实施。
在本公开的实施例中,存储器装置150被实现为非易失性存储器,诸如闪速存储器,诸如NAND闪速存储器、NOR闪速存储器等。但是,存储器装置150可以由以下中的至少一种来实施:相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋注入磁性存储器(例如,自旋转移力矩磁性随机存取存储器(STT-RAM)等。
图4和图5示意性地描述了根据本公开的实施例在存储器系统中执行对应于多个命令的多个命令操作的示例。例如,在本公开的实施例中,将对以下情况中的数据处理操作进行详细描述:从主机102接收多个写入命令并且执行对应于写入命令的编程操作的情况,从主机102接收多个读取命令并且执行对应于读取命令的读取操作的情况,从主机102接收多个擦除命令并且执行对应于擦除命令的擦除操作的情况,或者从主机102一起接收多个写入命令和多个读取命令并且执行对应于写入命令和读取命令的编程操作和读取操作的情况。
此外,在本公开的实施例中,将通过将以下情况作为示例来进行描述:与从主机102输入的多个写入命令对应的写入数据被存储在包括在控制器130的存储器144中的缓冲器/高速缓冲器中,将存储在缓冲器/高速缓冲器中的写入数据编程到并且存储在包括在存储器装置150中的多个存储块中,更新对应于多个存储块中所存储的写入数据的映射数据,并且将更新后的映射数据存储在包括在存储器装置150中的多个存储块中。在本公开的实施例中,将通过将执行对应于从主机102输入的多个写入命令的编程操作的情况为示例来进行描述。此外,在本公开的实施例中,将通过将以下情况作为示例来进行描述:从主机102输入针对存储在存储器装置150中的数据的多个读取命令,通过检查与读取命令对应的数据的映射数据来从存储器装置150读取对应于读取命令的数据,读取数据被存储在控制器130的存储器144中包括的缓冲器/高速缓冲器中,并且将存储在缓冲器/高速缓冲器中的数据提供至主机102。换言之,在本公开的实施例中,将通过将执行对应于从主机102输入的多个读取命令的读取操作的情况为示例来进行描述。另外,在本公开的实施例中,将通过将以下情况作为示例来进行描述:从主机102接收针对包括在存储器装置150中的存储块的多个擦除命令,检查对应于擦除命令的存储块,擦除存储在被检查的存储块中的数据,更新对应于被擦除的数据的映射数据,并且将更新后的映射数据存储在包括在存储器装置150中的多个存储块中。也就是说,在本公开的实施例中,将通过将执行对应于从主机102接收的多个擦除命令的擦除操作的情况作为示例来进行描述。
此外,虽然在本公开的实施例中,下面将作为示例描述控制器130在存储器系统110中执行命令操作。但是将注意的是,如上所述,包括在控制器130中的处理器134可以通过例如FTL(闪存转换层)在存储器系统110中执行命令操作。而且,在本公开的实施例中,控制器130将对应于从主机102输入的写入命令的用户数据和元数据编程并存储在包括在存储器装置150中的多个存储块之中的任意存储块中,从包括在存储器装置150中的多个存储块之中的任意存储块读取对应于从主机102接收的读取命令的用户数据和元数据,并将读取的数据提供至主机102,或者从包括在存储器装置150中的多个存储块之中的任意存储块擦除对应于从主机102输入的擦除命令的用户数据和元数据。
元数据可以包括存储在存储块中、对应于编程操作的数据的第一映射数据和第二映射数据,该第一映射数据包括逻辑/物理(L2P:逻辑到物理)信息(在下文中称为“逻辑信息”),该第二映射数据包括物理/逻辑(P2L:物理到逻辑)信息(在下文中称为“物理信息”)。而且,元数据可以包括关于与从主机102接收的命令对应的命令数据的信息、关于与命令对应的命令操作的信息、关于待执行命令操作的存储器装置150的存储块的信息以及关于与命令操作对应的映射数据的信息。换言之,元数据可以包括除了对应于从主机102接收的命令的用户数据之外的所有剩余信息和数据。
在本公开的实施例中,在控制器130从主机102接收多个写入命令的情况下,执行对应于写入命令的编程操作,并且将对应于写入命令的用户数据写入并存储在存储器装置150的存储块之中已经执行擦除操作的空存储块、开放存储块或空闲存储块中。并且,第一映射数据和第二映射数据被写入并存储在存储器装置150的存储块之中的空存储块、开放存储块或空闲存储块中,其中该第一映射数据包括记录了作为存储在存储块中的用户数据的逻辑地址和物理地址之间的映射信息的逻辑信息的L2P映射表或L2P映射列表,该第二映射数据包括记录了作为存储有用户数据的存储块的物理地址和逻辑地址之间的映射信息的物理信息的P2L映射表或P2L映射列表。
此处,在从主机102输入写入命令的情况下,控制器130将对应于写入命令的用户数据写入并存储在存储块中。控制器130将包括存储在存储块中的用户数据的第一映射数据和第二映射数据的元数据存储在其它存储块中。特别地,对应于存储在存储器装置150的存储块中的用户数据的数据段,控制器130生成并更新第一映射数据的L2P段和第二映射数据的P2L段作为元数据的元段之中的映射数据的映射段。控制器130将映射段存储在存储器装置150的存储块中。存储在存储器装置150的存储块中的映射段被加载在包括在控制器130中的存储器144中,并且然后被更新。
此外,在从主机102接收多个读取命令的情况下,控制器130从存储器装置150读取对应于读取命令的读取数据,将读取数据存储在包括在控制器130的存储器144中的缓冲器/高速缓冲器中。控制器130将存储在缓冲器/高速缓冲器中的数据提供至主机102,借此执行对应于多个读取命令的读取操作。
另外,在从主机102接收多个擦除命令的情况下,控制器130检查存储器装置150的与擦除命令对应的存储块,并且然后对存储块执行擦除操作。
当在执行后台操作的同时执行对应于从主机102接收的多个命令的命令操作时,控制器130将对应于后台操作的数据,即元数据和用户数据加载并存储在包括在控制器130的存储器144中的缓冲器/高速缓冲器中,然后将数据,即元数据和用户数据存储在存储器装置150中。在此,通过示例而非限制的方式,后台操作可以包括作为复制操作的垃圾收集操作或读取回收操作、作为交换操作的损耗均衡操作或映射清除操作。例如,对于后台操作,控制器130可以在存储器装置150的存储块中检查对应于后台操作的元数据和用户数据,将存储在存储器装置150的某些存储块中的元数据和用户数据加载并存储在包括在控制器130的存储器144中的缓冲器/高速缓冲器中,然后将元数据和用户数据存储在存储器装置150的某些其它存储块中。
在根据本公开的实施例的存储器系统中,在执行作为前台操作的命令操作,以及作为后台操作的复制操作、交换操作和映射清除操作的情况下,控制器130调度对应于前台操作和后台操作的队列,并且将调度的队列分配给包括在控制器130中的存储器144和包括在主机102中的存储器。在这方面,控制器130针对待在存储器装置150中执行的前台操作和后台操作通过各自的操作分派标识符(ID),并且分别调度与分派有标识符的操作对应的队列。在根据本公开的实施例的存储器系统中,不仅通过对存储器装置150的各自的操作而且通过针对存储器装置150的功能来分派标识符,并且调度与分派有各自的标识符的功能对应的队列。
在根据本公开的实施例的存储器系统中,控制器130管理由各自的功能和待在存储器装置150中执行的操作的标识符调度的队列。控制器130管理由待在存储器装置150中执行的前台操作和后台操作的标识符调度的队列。在根据本公开的实施例的存储器系统中,在将对应于由标识符调度的队列的存储器区域分配给包括在控制器130中的存储器144和包括在主机102中的存储器之后,控制器130管理所分配的存储器区域的地址。控制器130通过使用被调度的队列,在存储器装置150中不仅执行前台操作和后台操作,而且执行各个功能和操作。
参照图4,控制器130执行对应于从主机102输入的多个命令的命令操作,例如,对应于从主机102输入的多个写入命令的编程操作。此时,控制器130将对应于写入命令的用户数据编程并存储在存储器装置150的存储块中。而且,对应于关于存储块的编程操作,控制器130生成并更新用户数据的元数据并且将元数据存储在存储器装置150的存储块中。
控制器130生成并更新包括指示用户数据存储在存储器装置150的存储块中包括的页面中的信息的第一映射数据和第二映射数据。也就是说,控制器130生成并更新作为第一映射数据的逻辑段的L2P段以及作为第二映射数据的物理段的P2L段,然后将逻辑段和物理段存储在存储器装置150的存储块中包括的页面中。
例如,控制器130将对应于从主机102输入的写入命令的用户数据高速缓冲和缓冲在包括在控制器130的存储器144中的第一缓冲器510中。特别地,在将用户数据的数据段512存储在作为数据缓冲器/高速缓冲器的第一缓冲器510中之后,控制器130将存储在第一缓冲器510中的数据段512存储在存储器装置150的存储块中包括的页面中。当对应于从主机102接收的写入命令的用户数据的数据段512被编程至并存储在存储器装置150的存储块中包括的页面中时,控制器130生成并更新第一映射数据和第二映射数据。控制器130将映射数据存储在包括在控制器130的存储器144中的第二缓冲器520中。特别地,控制器130将用于用户数据的第一映射数据的L2P段522和第二映射数据的P2L段524存储在作为映射缓冲器/高速缓冲器的第二缓冲器520中。如上所述,第一映射数据的L2P段522和第二映射数据的P2L段524可以存储在控制器130中的存储器144的第二缓冲器520中。用于第一映射数据的L2P段522的映射列表和用于第二映射数据的P2L段524的另一映射列表可以存储在第二缓冲器520中。控制器130将存储在第二缓冲器520中的第一映射数据的L2P段522和第二映射数据的P2L段524存储在存储器装置150的存储块中包括的页面中。
而且,控制器130执行对应于从主机102接收的多个命令的命令操作,例如,对应于从主机102接收的多个读取命令的读取操作。特别地,控制器130将作为与读取命令对应的用户数据的映射段的第一映射数据的L2P段522和第二映射数据的P2L段524加载在第二缓冲器520中,并且检查L2P段522和P2L段524。然后,控制器130读取存储在存储器装置150的存储块之中的相应存储块的页面中的用户数据,将读取的用户数据的数据段512存储在第一缓冲器510中,然后将数据段512提供至主机102。
此外,控制器130执行对应于从主机102输入的多个命令的命令操作,例如,对应于从主机102输入的多个擦除命令的擦除操作。特别地,控制器130检查存储器装置150的存储块之中对应于擦除命令的存储块以对被检查的存储块执行擦除操作。
在执行作为后台操作的在包括在存储器装置150中的存储块之中复制数据或交换数据的操作,例如垃圾收集操作、读取回收操作或损耗均衡操作的情况下,控制器130将相应用户数据的数据段512存储在第一缓冲器510中,将与用户数据对应的映射数据的映射段522、524加载在第二缓冲器520中,然后执行垃圾收集操作、读取回收操作或损耗均衡操作。在对存储器装置150的存储块执行作为后台操作的针对元数据,例如映射数据的映射更新操作和映射清除操作的情况下,控制器130将相应映射段522、524加载在第二缓冲器520中,然后执行映射更新操作和映射清除操作。
如上所述,在对存储器装置150执行功能和包括前台操作和后台操作的操作的情况下,控制器130通过功能和待对存储器装置150执行的操作来分派标识符。控制器130分别调度分别对应于分派有标识符的功能和操作的队列。控制器130将对应于各个队列的存储器区域分配给包括在控制器130中的存储器144和包括在主机102中的存储器。控制器130管理分派给各个功能和操作的标识符、针对各自的标识符调度的队列以及对应于队列分别分配给控制器130的存储器144和主机102的存储器的存储器区域。控制器130通过分配给控制器130的存储器144和主机102的存储器的存储器区域,对存储器装置150执行功能和操作。
参照图5,存储器装置150包括多个存储器管芯,例如,存储器管芯0、存储器管芯1、存储器管芯2和存储器管芯3,并且存储器管芯中的每一个包括多个平面,例如,平面0、平面1、平面2和平面3。如上面参照图3所述的,包括在存储器装置150中的存储器管芯中的各个平面包括多个存储块,例如,N个块Block 0、Block 1、......、Block N-1。每个块包括多个页面,例如,2M个页面。此外,存储器装置150包括对应于各个存储器管芯的多个缓冲器,例如,对应于存储器管芯0的缓冲器0,对应于存储器管芯1的缓冲器1,对应于存储器管芯2的缓冲器2和对应于存储器管芯3的缓冲器3。
在执行对应于从主机102接收的多个命令的命令操作的情况下,对应于命令操作的数据存储在存储器装置150中包括的缓冲器中。例如,在执行编程操作的情况下,对应于编程操作的数据存储在缓冲器中,然后存储在存储器管芯的存储块中包括的页面中。在执行读取操作的情况下,从存储器管芯的存储块中包括的页面读取的、对应于读取操作的数据存储在缓冲器中,然后通过控制器130被提供至主机102。
在本公开的实施例中,虽然下面将作为示例描述包括在存储器装置150中的缓冲器存在于各自相应的存储器管芯的外部,但是将注意的是,缓冲器可存在于各自相应的存储器管芯内部,并且将注意的是,缓冲器可以对应于各自的存储器管芯中的各个平面或各个存储块。此外,在本公开的实施例中,虽然下面将作为示例描述包括在存储器装置150中的缓冲器是包括在如上面参照图3所述的存储器装置150中的多个页面缓冲器322、324和326,但是将注意的是,缓冲器可以是包括在存储器装置150中的多个高速缓冲器或多个寄存器。
而且,包括在存储器装置150中的多个存储块可以被分组为多个超级存储块,并且可以在多个超级存储块中执行命令操作。超级存储块中的每一个可以包括多个存储块,例如,包括在第一存储块组和第二存储块组中的存储块。在这方面,在第一存储块组包括在某个第一存储器管芯的第一平面中的情况下,第二存储块组可以包括在第一存储器管芯的第一平面中、包括在第一存储器管芯的第二平面中或者包括在第二存储器管芯的平面中。
在本公开的实施例中,数据处理系统可以包括多个存储器系统。多个存储器系统110中的每一个可以包括控制器130和存储器装置150。在数据处理系统中,多个存储器系统110中的一个可以是主设备而其它存储器系统可以是从设备。主设备可以基于多个存储器系统110之间的争用来确定。当在数据处理系统中从主机102传递多个命令时,主设备可以至少基于通道或总线的状态来确定每个命令的目标。例如,可以将第一存储器系统确定为对应于从多个存储器系统传递的信息的、多个存储器系统之中的主存储器系统。如果确定第一存储器系统是主存储器系统,则剩余的存储器系统被认为是从存储器系统。主存储器系统的控制器可以检查联接至多个存储器系统的多个通道(或路、总线)的状态,以选择哪个存储器系统来处置从主机102传递的命令或数据。在实施例中,可以在多个存储器系统之中动态地确定主设备。在另一实施例中,主存储器系统可以周期性地或根据事件与其它从存储器系统中的一个进行改变。
在下文中,将更详细地描述用于在如上所述的包括存储器装置150和控制器130的存储器系统110中传送数据的方法和装置。随着存储在存储器系统110中的数据的量变大,存储器系统110可能需要一次读取或存储大量的数据。然而,用于读取存储在存储器装置150中的数据的读取时间或用于将数据写入在存储器装置150中的编程/写入时间通常可以比控制器130处理数据的处置时间或在控制器130和存储器装置150之间的数据传输时间长。例如,读取时间可以是处置时间的两倍。由于读取时间或编程时间比处置时间或数据传输时间相对长,因此用于在存储器系统110中传递数据的过程或进程可能影响存储器系统110的性能,例如存储器系统110的操作速度和/或结构(例如,缓冲器大小)。
在图6中,描述了根据本公开的实施例的主机20和存储器系统40。主机20、存储器系统40和其它部件可以构成为根据本公开的实施例的数据处理系统。
参照图6,在数据处理系统中示出主机20和存储器系统40。主机20可以请求存储器系统40执行命令操作,诸如数据编程操作或数据读取操作。主机20可以包括存储第一映射表24的第一存储器22。存储器系统40可以包括与存储器装置44执行数据编程操作或数据读取操作的控制器42。存储器装置44能够存储数据。存储器装置44可以包括多个管芯44_1至44_3,管芯中的每一个包括多个存储块。存储器装置44的内部配置可以至少基于存储器装置44的特性、使用存储器系统40的目的、或者主机20所需要的存储器系统40的规范来变化或改变。通过示例而非限制的方式,图1至图5中示出的存储器装置150以及图6中所示的存储器装置44可以包括基本类似的部件。
控制器42可以包括用于存储或加载第二映射表48的第二存储器46。控制器42可以使用第二映射表48来找到或加载数据编程操作或数据读取操作所需的操作信息以及存储器装置44的映射信息。此外,虽然未示出,但是控制器42可以包括至少一个处理器、主机接口和控制器接口。处理器可以用于控制器42内的命令操作。处理器可以类似于嵌入在计算装置中或在计算机装置中使用的CPU。主机接口可以处置存储器系统40和主机20之间的数据通信。控制器接口用于存储器装置44和控制器42之间的数据通信。第二存储器42可以包括缓冲器并且可以在处理器、主机接口和控制器接口的操作期间临时存储所需数据以及操作状态。例如,第二存储器42可以临时存储在存储器装置44和主机20之间传送的输入/输出(I/O)数据。可以基于根据控制器42可以处理或处置的操作、任务等的功能分类来描述上述控制器42的内部配置。
根据实施例,控制器42的配置或结构可以包括若干部件:至少一个处理器、至少一个存储器、至少一个输入/输出端口以及用于部件之间的电连接的导线。
即使存储器装置44的存储容量增加,也可能难以将操作,例如读取、编程和擦除包括在存储器装置44中的多个管芯44_1、44_2、44_3,多个块和多个页面所需的系统信息、映射信息、操作状态信息等存储在控制器42中(特别是存储在第二存储器46中)。因此,将用于诸如读取操作、编程操作、擦除操作等的操作的系统信息、映射信息、操作状态信息等以及用户数据存储在存储器装置44中。控制器42可以临时读取和加载关于多个管芯44_1至44_3的系统信息、映射信息、操作状态信息等中的一些或部分。在完成相应操作之后,控制器42可以将加载的信息再次存储至存储器装置44。
执行操作所需的信息可以包括块管理信息、擦除计数、有效页面计数和映射表。这些信息的大小可以依据包括管芯结构的类型信息和包括在存储器装置44中的管芯的数量的操作信息而变化。当第二存储器46没有足够的容量来存储执行操作所需的信息时,控制器42可能无法根据存储器装置44的操作信息将所有的块管理信息、擦除计数、有效页面计数和映射表加载到第二存储器46中。
在这种情况下,控制器42可以通过串行通信将与主机20链接的第一存储器22作为额外的存储器来控制,以便进一步分配第一存储器22以将所需信息加载于第一存储器22上。换言之,当控制器42无法分配足够的第二存储器46的部分以加载大小根据存储器装置44的操作信息而变化的具有大的尺寸的所有的块管理信息、擦除计数,有效页面计数和映射表时,控制器42可以进一步分配第一存储器22的一部分作为额外容量来存储执行操作所需的信息。然后,控制器42可以根据操作信息,将存储器装置44的映射信息中的一些加载到第二存储器46上。存储器装置44的映射信息的剩余片段可以被加载到第一存储器22上。
对于串行数据通信,主机20和存储器系统40可以使用MIPIM-PHY、通用异步接收器发送器(UART)、串行外围接口总线(SPI)、内部集成电路(I2C)和通用串行总线(USB)中的至少一种协议。串行数据通信通常在至少两个不同的实体之间执行:主设备和从设备。
为了执行串行通信,控制器42可以作为主设备操作,并且第一存储器22可以充当从设备。通常,因为主机20请求存储器系统40执行数据编程操作或数据读取操作(即,存储器系统40响应于主机20的请求而工作),所以主机20被认为是主设备而存储器装置44可以是从设备。然而,在实施例中,控制器42可以根据存储器装置44的操作信息选择性地使用第一存储器22和第二存储器46,使得控制器42可以控制第一存储器22和第二存储器46。因此,在串行通信中,与主机20互锁的第一存储器22可以是从设备。
根据包括在存储器装置44中的管芯的多少,管芯结构的类型信息包括单管芯封装(SDP)、四管芯封装(QDP)和八管芯封装(ODP)中的一种。此处,在存储器装置44中,SDP意为一个管芯,DDP意为两个管芯,QDP意为四个管芯,ODP意为八个管芯。
虽然未示出,但是随着能够在存储器装置44中存储数据的存储器单元的数量的增加,存储器装置44的内部结构变得复杂,如图6中所描述的。控制器42可以根据存储器装置44的内部配置传输或接收连接信息以及数据。例如,在如图6所示,当多个管芯44_1至44_3被包括在存储器装置44中的情况下,在控制器42和存储器装置44之间存在n个通道和m个路(n和m中的每一个是大于1的整数)。可以经由n个通道和m个路传输数据和连接信息。然而,为了使控制器42读取数据或将数据写入至存储器装置44,根据存储器装置44的内部结构,可能需要额外的控制变量或控制信号。当更多的管芯包括在存储器装置44中时,需要用于执行操作的额外的信息。
如上所述,根据实施例的数据处理系统包括向控制器42请求数据编程操作和/或数据读取操作的主机20、存储和输出数据的存储器装置44以及与存储器装置44执行数据编程操作和/或数据读取操作的控制器42。此处,控制器42可以经由串行通信方法控制或使用与主机20互锁并且设置在存储器系统40外部的第一存储器22,以执行数据编程操作和/或数据读取操作。
在图7中,描述了根据本公开的实施例的操作数据处理系统的方法。
参照图7,数据处理系统的操作方法包括:步骤62,加载关于存储器装置44的操作信息;步骤64,监控控制器42中的第二存储器46的可用存储容量;步骤66,基于监控结果请求主机20使用额外的存储器区域;以及步骤68,响应于对主机20提出的请求控制针对第二存储器46的额外的存储器区域,其中该存储器装置44包括多个管芯44_1至44_3,每个管芯包括多个块,每个块包括多个页面,每个页面包括存储数据的多个单元。
在数据处理系统中,存储器系统40可以通过与主机20的交互来处置或处理命令、数据等。为此,存储器系统40中的控制器42可以收集并利用关于包括在存储器系统40中的存储器装置44的操作信息。例如,在步骤62,控制器42可以收集关于存储器装置44的操作信息,并且将收集的信息存储或加载到控制器42内部的第二存储器46中或与控制器42相关联的第一存储器22中。在收集或识别关于存储器装置44或第二存储器46的操作信息(例如,关于可用资源的信息)之后,控制器42可以根据可以由从主机20传输的命令、数据等来确定的操作的特性来分发或分配可用资源以执行操作。当控制器42在第二存储器46内具有足够的可用资源时,对于处置从主机20传输的命令和/或数据的操作可能没有问题。然而,如果控制器42在第二存储器46内没有足够的资源,则控制器42可以从主机20要求或请求额外的资源(例如,存储器区域)。
为了这样的目的,控制器和主机可以支持经由MIPI M-PHY、通用异步接收器发送器(UART)、串行外围接口总线(SPI)、内部集成电路(I2C)等中的至少一种协议执行的串行数据通信。在串行通信中,控制器42可以充当主设备以管理主机20的可用资源。至少作为主机20的系统存储器的一部分的第一存储器22可以作为从设备工作以处置来自控制器42的请求。控制器42保留主机20的系统存储器的一部分,并且可以将其用作处理主机20的命令和数据的资源。
根据实施例,存储器系统40的控制器42和包括在主机20中的处理器二者都可以独立地充当主设备,然后控制器42和处理器可以分别保证所需的资源。在这种情况下,可以根据由串行通信支持的规则(例如,争用)来确定控制器42和主机20的资源管理。
由控制器42收集的操作信息可以包括管芯结构的类型信息和存储器装置44中的管芯的数量。例如,管芯结构的类型信息可以指示存储器装置44利用单管芯封装(SDP)、双管芯封装(DDP)、四管芯封装(QDP)和八管芯封装(ODP)中的一种来实施。基于操作信息,可以确定并改变第二存储器46中的、为加载和存储块管理信息、擦除计数、有效页面计数(VPC)和映射表而分配的存储器区域的大小。
当控制器42无法将具有不同大小的所有的块管理信息、擦除计数、有效页面计数和映射表分配给第二存储器46时,控制器42可以进一步分配第一存储器22中的一些以补充不足部分,其中所有的块管理信息、擦除计数、有效页面计数和映射表的不同大小由控制器42根据操作信息估计。例如,控制器42可以根据操作信息将关于存储器装置44的映射信息中的一些加载到第二存储器46中,而将映射信息中的其它部分加载到主机20的第一存储器22中。
基于所收集的操作信息,控制器42可以估计处置或处理从主机20传送的数据和命令所需的资源。另外,控制器42可以保证内部存储器区域和外部存储器区域(例如,第一存储器22、第二存储器46等)并且基于所收集的操作信息来确定和分配内部存储器区域和外部存储器区域中的一个或多个以用于所收集的操作信息。此时,可以根据数据的特性、存储器系统40中的存储器装置44的结构、存储器系统40的操作状态等来进行确定。
在图8中,描述了根据本公开的另一实施例的数据处理系统的操作方法。数据处理系统可以包括彼此联接的主机20和存储器系统40。存储器系统40可以由控制器46和包括多个管芯44_1至44_3的存储器装置44构成,每个管芯具有多个非易失性存储器单元。
参照图8,操作数据处理系统的方法包括:步骤82,加载存储器装置44的操作信息;步骤84,监控控制器42中的第二存储器46的可用存储空间;以及步骤86,确定第二存储器46的可用空间是否足够响应于命令而执行操作。当确定第二存储器46的可用存储空间足够时,在步骤88中,控制器44可以分配第二存储器46以加载或存储存储器装置的块管理信息、擦除计数,有效页面计数和映射表。然而,当第二存储器46的可用存储空间不足时,在步骤90中,控制器44可以请求主机20分配额外的存储器区域以用于存储器系统40中的操作。基于主机20的确定,在步骤92中,控制器44可以控制将额外的存储器区域(例如,第一存储器22的一些或部分)作为第二存储器46的扩展。在步骤94中,控制器44可以将存储器装置的块管理信息、擦除计数、有效页面计数和映射表中的至少一些加载到第二存储器,并且分配第一存储器22的允许部分来填补第二存储器46的不足。
虽然未示出,但是控制额外的存储器区域(即,主机20的第一存储器22)作为控制器44的第二存储器46的扩展的步骤92可以包括经由串行数据通信控制第二存储器46和第一存储器22。可以在通用异步接收器发送器(UART)、串行外围接口总线(SPI)、内部集成电路(I2C)和通用串行总线(USB)中的至少一个下执行串行数据通信。
根据实施例,操作信息包括在存储器装置44中包括的管芯的数量和管芯结构的类型信息。基于操作信息,在控制器42的第二存储器46中被分配以加载块管理信息、擦除计数、有效页面计数和映射表的存储区或存储器区域可以具有不同的大小。因为执行操作所需的信息,例如块管理信息、擦除计数、有效页面计数和映射表可以基于存储器装置44的结构具有不同的大小,所以待分配的存储器区域的大小可以变化。控制器42可以基于操作信息来估计执行操作所需的信息的大小。控制器42可以监控第二存储器46的状态,并且确定主机20内的第一存储器22的额外存储器区域是否被保证为针对第二存储器46的扩展存储器区域。
例如,控制器42可以根据操作信息将关于存储器装置的映射信息中的一些加载到第二存储器上,并将其它映射信息加载到额外保证的第一存储器22的存储器空间上。
通过示例而非限制的方式,根据管芯的数量,管芯结构的类型信息可以是单管芯封装(SDP)、双管芯封装(DDP)、四管芯封装(QDP)和八管芯封装(ODP)中的一种。
如上所述,存储器装置可以包括多个管芯44_1至44_3。执行前台操作和后台操作必需或所需的信息,诸如关于存储器装置44的块管理信息、擦除计数、有效页面计数和映射表由于存储器装置44的内部结构可以具有不同的大小。基于包括在存储器装置44中包括的管芯44_1至44_3的数量和管芯结构的类型信息的操作信息,控制器42可以估计为加载和存储块管理信息、擦除计数、有效页面计数和映射表而分配的存储器部分的大小。然后,即使第一存储器22不包括在存储器系统40中,而是与主机20相关联或链接,控制器42也可以动态地分配主机20的第一存储器22的一些或一部分以加载所需信息。
在图9中,描述了根据该实施例的包括存储器系统的数据处理系统的另一示例。图9示意性地示出了应用根据实施例的存储器系统的存储卡系统。
参照图9,存储卡系统6100可以包括存储器控制器6120、存储器装置6130和连接器6110。
存储器控制器6120可以连接至通过非易失性存储器实现的存储器装置6130。存储器控制器6120可以被配置成访问存储器装置6130。通过示例而非限制的方式,存储器控制器6120可以被配置成控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可以被配置成提供存储器装置6130和主机之间的接口连接,并使用用于控制存储器装置6130的固件。也就是说,存储器控制器6120可以对应于参照图1和图3描述的存储器系统110的控制器130,并且存储器装置6130可以对应于参照图1和图5描述的存储器系统110的存储器装置150。
因此,存储器控制器6120可以包括RAM、处理单元、主机接口、存储器接口和错误校正单元。存储器控制器6120可以进一步包括图1和图3所示的元件。
存储器控制器6120可以通过连接器6110与例如图1的主机102的外部装置通信。例如,如参照图1至图3所述,存储器控制器6120可以被配置成在诸如以下的各种通信协议中的一种或多种下与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(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-MRAM)。存储器装置6130可以包括如图5的存储器装置150中的多个管芯。
存储器控制器6120和存储器装置6130可被集成至单个半导体装置中。例如,存储器控制器6120和存储器装置6130可以通过被集成至单个半导体装置中来构成固态驱动器(SSD)。而且,存储器控制器6120以及存储器装置6130可以构成诸如以下的存储卡:PC卡(PCMCIA:个人计算机存储卡国际协会)、紧凑型闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、SD卡(例如,SD、迷你SD、微型SD和SDHC)以及通用闪存(UFS)。
图10是示意性地示出根据实施例的包括存储器系统的数据处理系统的另一示例的示图。
参照图10,数据处理系统6200可以包括具有一个或多个非易失性存储器的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。图10中示出的数据处理系统6200可以用作诸如存储卡(CF、SD、微型SD等)或USB装置的存储介质,如参照图1和图2描述的。存储器装置6230可以对应于图1和图5中示出的存储器系统110中的存储器装置150。存储器控制器6220可以对应于图1和图5中示出的存储器系统110中的控制器130。
存储器控制器6220可以响应于对主机6210提出的请求控制对存储器装置6230的读取操作、写入操作或擦除操作。存储器控制器6220可以包括一个或多个CPU 6221、诸如RAM 6222的缓冲存储器、ECC电路6223、主机接口6224以及诸如NVM接口6225的存储器接口。
CPU 6221可以控制对存储器装置6230的全部操作,例如读取操作、写入操作、文件系统管理操作和坏页面管理操作。RAM 6222可以根据CPU 6221的控制来操作。RAM 6222可以用作工作存储器、缓冲存储器或高速缓冲存储器。当RAM 6222用作工作存储器时,由CPU6221处理的数据可以临时存储在RAM 6222中。当RAM 6222用作缓冲存储器时,RAM 6222可以用于缓冲从主机6210传输到存储器装置6230或从存储器装置6230传输到主机6210的数据。当RAM 6222用作高速缓冲存储器时,RAM 6222可以辅助低速存储器装置6230以高速操作。
ECC电路6223可以对应于图1中示出的控制器130的ECC 138。如参照图1所述,ECC电路6223可以生成用于校正从存储器装置6230提供的数据的失效位或错误位的ECC(错误校正码)。ECC电路6223可对被提供给存储器装置6230的数据执行错误校正编码,由此形成具有奇偶校验位的数据。奇偶校验位可被存储在存储器装置6230中。ECC电路6223可以对从存储器装置6230输出的数据执行错误校正解码。这时,ECC电路6223可以使用奇偶校验位来校正错误。例如,如参照图1所述,ECC电路6223可以使用LDPC码、BCH码、turbo码、里德-所罗门码、卷积码、RSC或诸如TCM或BCM的编码调制来校正错误。
存储器控制器6220可以通过主机接口6224向主机6210传输数据/接收来自主机6210的数据。存储器控制器6220可以通过NVM接口6225向存储器装置6230传输数据/接收来自存储器装置6230的数据。主机接口6224可以通过PATA总线、SATA总线、SCSI、USB、PCIe或NAND接口而连接到主机6210。存储器控制器6220可利用诸如WiFi或长期演进(LTE)的移动通信协议具有无线通信功能。存储器控制器6220可以连接到外部装置,例如,主机6210或另一外部装置,然后将数据传输到外部装置/从外部装置接收数据。特别地,由于存储器控制器6220被配置成通过各种通信协议中的一种或多种与外部装置进行通信,因此根据本实施例的存储器系统和数据处理系统可应用于有线/无线电子装置或特别是移动电子装置。
图11是示意性地示出根据实施例的包括存储器系统的数据处理系统的另一示例的示图。图11示意性示出了应用根据实施例的存储器系统的SSD。
参照图11,SSD 6300可以包括控制器6320和包括多个非易失性存储器的存储器装置6340。控制器6320可以对应于图1和图2的存储器系统110中的控制器130。存储器装置6340可以对应于图1和图5的存储器系统中的存储器装置150。
更具体地,控制器6320可以通过多个通道CH1至CHi连接至存储器装置6340。控制器6320可以包括一个或多个处理器6321、缓冲存储器6325、ECC电路6322、主机接口6324和例如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可以临时存储从主机6310提供的数据或从包括在存储器装置6340中的多个闪速存储器NVM提供的数据,或者临时存储多个闪速存储器NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可由诸如DRAM、SDRAM、DDR SDRAM、LPDDRSDRAM和GRAM的易失性存储器实现,或者由诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器实现。图11示出缓冲存储器6325存在于控制器6320中。然而,缓冲存储器6325可以存在于控制器6320的外部。
ECC电路6322可以在编程操作期间计算待被编程到存储器装置6340的数据的ECC值。ECC电路6322可以在读取操作期间基于ECC值对从存储器装置6340读取的数据执行错误校正操作。ECC电路6322可以在失效数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324可以提供与例如主机6310的外部装置的接口功能。非易失性存储器接口6326可以提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可以提供应用图1和图5的存储器系统110的多个SSD 6300来实现数据处理系统,例如,RAID(独立磁盘冗余阵列)系统。此时,RAID系统可以包括多个SSD 6300和用于控制多个SSD 6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可以根据多个RAID级别,即,从SSD 6300中的主机6310提供的写入命令的RAID级别信息,选择一个或多个存储器系统或SSD 6300。RAID控制器可以将对应于写入命令的数据输出到选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取操作时,RAID控制器可以根据多个RAID级别,即,从SSD 6300中的主机6310提供的读取命令的RAID级别信息,选择一个或多个存储器系统或SSD 6300。RAID控制器可以将从所选择的SSD 6300读取的数据提供给主机6310。
图12是示意性地示出根据实施例的包括存储器系统的数据处理系统的另一示例的示图。图12示意性地示出了应用根据实施例的存储器系统的嵌入式多媒体卡(eMMC)。
参照图12,eMMC 6400可以包括控制器6430和通过一个或多个NAND闪速存储器实现的存储器装置6440。控制器6430可以对应于图1和图2的存储器系统110中的控制器130。存储器装置6440可以对应于图1和图5的存储器系统110中的存储器装置150。
更具体地,控制器6430可以通过多个通道连接至存储器装置6440。控制器6430可以包括一个或多个内核6432、主机接口6431和例如NAND接口6433的存储器接口。
内核6432可以控制eMMC 6400的全部操作。主机接口6431可以提供控制器6430和主机6410之间的接口功能。NAND接口6433可以提供存储器装置6440和控制器6430之间的接口功能。例如,主机接口6431可以用作并行接口,例如,如参照图1所描述的MMC接口。此外,主机接口6431可以用作串行接口,例如,UHS((超高速)-I/UHS-II)接口。
图13至图16是示意性地示出根据实施例的包括存储器系统的数据处理系统的其它示例的示图。图13至图16示意性地示出了应用根据实施例的存储器系统的UFS(通用闪存)系统。
参照图13至图16,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可由图1和图5中示出的存储器系统110实现。例如,在UFS系统6500、6600、6700、6800中,UFS装置6520、6620、6720、6820可以参照图13至图16描述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实现,并且UFS卡6530、6630、6730、6830可以参照图9描述的存储卡系统6100的形式来实现。
此外,在UFS系统6500、6600、6700、6800中,主机6510、6610、6710、6810,UFS装置6520、6620、6720、6820以及UFS卡6530、6630、6730、6830可以通过例如MIPI(移动产业处理器接口)中的MIPI M-PHY和MIPI UniPro(统一协议)的UFS接口彼此通信。此外,UFS装置6520、6620、6720、6820与UFS卡6530、6630、6730、6830可以通过除UFS协议以外的各种协议,例如UFD、MMC、SD、迷你-SD和微型-SD彼此通信。
在图13中示出的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卡可并联或以星型形式连接至主机6510。星型形式是单个集中组件联接至多个装置以进行并行处理的布置。多个UFS卡可并联或以星型形式连接至UFS装置6520,或者串联或以链型形式连接至UFS装置6520。
在图14中示出的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。
在图15中示出的UFS系统6700中,主机6710、UFS装置6720和UFS卡6730中的每一个可以包括UniPro,并且主机6710可以通过执行交换操作的交换模块6740,例如通过在UniPro处执行例如L3交换的链路层交换的交换模块6740,来与UFS装置6720或UFS卡6730通信。此时,UFS装置6720和UFS卡6730可以通过交换模块6740在UniPro处的链路层交换来彼此通信,并且交换模块6740可在UFS装置6720内部或外部与UFS装置6720集成为一个模块。在本实施例中,为便于描述,已经例示其中一个UFS装置6720和一个UFS卡6730连接到交换模块6740的配置。然而,每个都包括交换模块6740和UFS装置6720的多个模块可并联或以星型形式连接至主机6710,或者串联或以链型形式彼此连接。此外,多个UFS卡可并联或以星型形式连接至UFS装置6720。
在图16中示出的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模块之间的交换操作,例如通过目标ID(标识符)交换操作,来与主机6810或UFS卡6830通信。此时,主机6810和UFS卡6830可以通过UFS装置6820的M-PHY和UniPro模块之间的目标ID交换来彼此通信。在本实施例中,为便于描述,已经例示其中一个UFS装置6820连接到主机6810和一个UFS卡6830连接到UFS装置6820的配置。然而,多个UFS装置可并联或以星型形式连接至主机6810,或者串联或以链型形式连接至主机6810,并且多个UFS卡可并联或以星型形式连接至UFS装置6820,或者串联或以链型形式连接至UFS装置6820。
图17是示意性地示出根据本发明的实施例的包括存储器系统的数据处理系统的另一示例的示图。图17是示意性地示出了应用根据实施例的存储器系统的用户系统的示图。
参照图17,用户系统6900可以包括应用处理器6930、存储器模块6920、网络模块6940、存储模块6950和用户接口6910。
更具体地,应用处理器6930可以驱动包括在例如OS的用户系统6900中的组件,并且包括控制包括在用户系统6900中的组件的控制器、接口和图形引擎。应用处理器6930可被设置为片上系统(SoC)。
存储器模块6920可以用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块6920可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2SDRAM或LPDDR3SDRAM的易失性RAM,或者诸如PRAM、ReRAM、MRAM或FRAM的非易失性RAM。例如,可基于POP(堆叠封装)来封装和安装应用处理器6930和存储器模块6920。
网络模块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闪存,并且存储模块6950可被设置为诸如用户系统6900的存储卡或外部驱动器的可拆卸存储介质。存储模块6950可以对应于参照图1和图5描述的存储器系统110。此外,存储模块6950可被实现为如上参照图11至图16所描述的SSD、eMMC和UFS。
用户接口6910可以包括用于将数据或命令输入到应用处理器6930或将数据输出到外部装置的接口。例如,用户接口6910可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监控器的用户输出接口。
此外,当图1和图5的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可以控制移动电子装置的全部操作。网络模块6940可以用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6910可以在移动电子装置的显示/触摸模块上显示由处理器6930处理的数据。此外,用户接口6910可以支持从触摸面板接收数据的功能。
根据以上描述的实施例,存储器系统的控制器可以根据包括在存储器装置中的管芯的数量和存储器单元的单元类型信息中的至少一个来动态地控制存储器分配。控制器可以与系统存储器区域或与主机互锁的装置执行串行通信。当确定布置在控制器中的存储器中的可用存储器空间不足以执行操作时,控制器可以利用系统存储器区域或互锁的装置以向操作分配额外的存储器空间。
本公开公开了一种控制器或控制方法,用于克服包括在与主机协作的存储器系统中的存储器的存储容量限制,使得可以执行快速且稳定的操作。
虽然已经针对具体实施例描述了本公开,但是对于本领域技术人员将显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可进行各种改变和修改。
Claims (17)
1.一种数据处理系统,包括:
存储器系统,包括用于存储数据的存储器装置和控制器,所述控制器在所述存储器装置中执行数据编程操作或数据读取操作;以及
主机,向所述存储器系统请求所述数据编程操作或所述数据读取操作,
其中所述控制器执行串行通信以控制第一存储器,所述第一存储器布置在所述存储器系统外部并与所述主机接合,
其中所述存储器装置包括多个非易失性存储器管芯,
其中所述存储器系统包括第二存储器,所述第二存储器用于加载所述数据编程操作或所述数据读取操作所需的操作信息以及所述存储器装置的映射信息,以及
其中所述操作信息包括管芯结构的类型信息和包括在所述存储器装置中的非易失性存储器管芯的数量。
2.根据权利要求1所述的数据处理系统,其中所述串行通信经由下列中的至少一种协议来执行:MIPI M-PHY;通用异步接收器发送器,即UART;串行外围接口总线,即SPI;和内部集成电路,即I2C。
3.根据权利要求2所述的数据处理系统,其中在所述串行通信中,所述控制器充当主设备,并且所述第一存储器充当从设备。
4.根据权利要求3所述的数据处理系统,其中所述主机包括在所述串行通信中充当另一主设备的处理器。
5.根据权利要求1所述的数据处理系统,
其中所述多个非易失性存储器管芯中的每一个包括多个块,每个所述块包括多个页面,每个所述页面包括存储所述数据的多个单元。
6.根据权利要求5所述的数据处理系统,其中所述第二存储器包括用于将块管理信息、擦除计数、有效页面计数和映射表加载在所述第二存储器中所分配的存储器区域,所述所分配的存储器区域具有根据所述操作信息而确定的不同的大小。
7.根据权利要求6所述的数据处理系统,其中,当所述块管理信息、擦除计数、有效页面计数和映射表没有被全部加载到所述第二存储器中时,所述控制器分配所述第一存储器的一部分来补充所述第二存储器的不足,所述第二存储器根据所述操作信息而具有不同的大小。
8.根据权利要求5所述的数据处理系统,其中所述控制器至少基于所述操作信息,将关于所述非易失性存储器装置的部分映射信息中的一些加载到所述第二存储器中并且将所述映射信息的剩余部分加载到所述第一存储器中。
9.根据权利要求5所述的数据处理系统,其中所述管芯结构的类型信息包括下列中的一种:单管芯封装,即SDP;双管芯封装,即DDP;四管芯封装,即QDP;和八管芯封装,即ODP。
10.一种存储器系统,包括
存储器装置,包括多个非易失性存储器管芯,每个所述非易失性存储器管芯包括多个块,每个所述块包括多个页面,所述页面包括存储数据的多个单元;以及
控制器,在所述存储器装置中执行从主机请求的数据编程操作或数据读取操作,并且包括用于加载所述数据编程操作或所述数据读取操作所需的操作信息以及所述存储器装置的映射信息的第一存储器,
其中所述控制器监控所述第一存储器的可用存储容量,基于监控结果请求所述主机使用包括在所述主机中的额外的存储器区域,并且控制所述额外的存储器区域作为所述第一存储器的扩展,
其中所述操作信息包括管芯结构的类型信息和包括在所述存储器装置中的非易失性存储器管芯的数量。
11.根据权利要求10所述的存储器系统,
其中所述控制器经由串行通信控制所述额外的存储器区域,
其中所述串行通信经由下列中的至少一种协议来执行:MIPI M-PHY;通用异步接收器发送器,即UART;串行外围接口总线,即SPI;和内部集成电路,即I2C。
12.根据权利要求11所述的存储器系统,其中在所述串行通信中,所述控制器充当主设备,并且所述额外的存储器区域充当从设备。
13.根据权利要求10所述的存储器系统,其中所述第一存储器包括被分配用于将块管理信息、擦除计数、有效页面计数和映射表加载到所述第一存储器中的存储器区域,所述存储器区域具有根据所述操作信息而确定的不同的大小。
14.一种操作存储器系统的方法,所述方法包括:
加载关于存储器装置的操作信息,所述存储器装置包括多个非易失性存储器管芯,每个所述非易失性存储器管芯包括多个块,每个所述块包括多个页面,所述页面包括存储数据的多个单元;
监控控制器中第一存储器的可用存储容量;
基于监控结果请求主机使用额外的存储器区域;并且
控制所述额外的存储器区域作为所述第一存储器的扩展,所述额外的存储器区域包括在所述主机中,
其中所述操作信息包括管芯结构的类型信息和包括在所述存储器装置中的非易失性存储器管芯的数量。
15.根据权利要求14所述的方法,
其中控制所述额外的存储器区域包括控制串行通信以管理所述第一存储器和所述额外的存储器区域,
其中所述串行通信经由下列中的至少一种协议来执行:MIPI M-PHY;通用异步接收器发送器,即UART;串行外围接口总线,即SPI;和内部集成电路,即I2C。
16.根据权利要求15所述的方法,其中在所述串行通信中,所述控制器充当主设备,并且所述额外的存储器区域充当从设备。
17.根据权利要求14所述的方法,其中所述第一存储器包括被分配用于将块管理信息、擦除计数、有效页面计数和映射表加载在所述第一存储器中的存储器区域,所述存储器区域具有根据所述操作信息而确定的不同的大小。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180091319A KR20200016074A (ko) | 2018-08-06 | 2018-08-06 | 데이터 처리 시스템 및 그의 동작 방법 |
KR10-2018-0091319 | 2018-08-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110806837A CN110806837A (zh) | 2020-02-18 |
CN110806837B true CN110806837B (zh) | 2023-07-14 |
Family
ID=69227492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910484887.9A Active CN110806837B (zh) | 2018-08-06 | 2019-06-05 | 数据处理系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (4) | US10877909B2 (zh) |
KR (1) | KR20200016074A (zh) |
CN (1) | CN110806837B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11699683B2 (en) * | 2020-08-20 | 2023-07-11 | Global Unichip Corporation | Semiconductor device in 3D stack with communication interface and managing method thereof |
CN112925485B (zh) * | 2021-05-11 | 2021-08-03 | 湖南博匠信息科技有限公司 | 嵌入式Linux的多通道高速数据传输存储方法及系统 |
US20220404997A1 (en) * | 2021-06-21 | 2022-12-22 | Pure Storage, Inc. | Intelligent Block Allocation In A Heterogeneous Storage System |
CN114238158A (zh) * | 2021-12-17 | 2022-03-25 | 合肥沛睿微电子股份有限公司 | 数据存储管理方法和存储装置 |
US11977758B2 (en) * | 2022-08-12 | 2024-05-07 | Micron Technology, Inc. | Assigning blocks of memory systems |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9229854B1 (en) * | 2013-01-28 | 2016-01-05 | Radian Memory Systems, LLC | Multi-array operation support and related devices, systems and software |
CN105653202A (zh) * | 2014-09-26 | 2016-06-08 | Hgst荷兰有限公司 | 一种用于逻辑存储管理的多级方案 |
CN107015760A (zh) * | 2016-01-14 | 2017-08-04 | 爱思开海力士有限公司 | 存储器系统和存储器系统的操作方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560471B1 (en) * | 2001-01-02 | 2003-05-06 | Therasense, Inc. | Analyte monitoring device and methods of use |
US9104315B2 (en) | 2005-02-04 | 2015-08-11 | Sandisk Technologies Inc. | Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage |
WO2008046101A2 (en) * | 2006-10-13 | 2008-04-17 | Ariel Silverstone | Client authentication and data management system |
US8285895B2 (en) * | 2007-08-06 | 2012-10-09 | Winbond Electronics Corporation | Handshake free sharing in a computer architecture |
JP5028381B2 (ja) | 2008-10-22 | 2012-09-19 | 株式会社日立製作所 | ストレージ装置およびキャッシュ制御方法 |
US8392614B2 (en) | 2009-07-27 | 2013-03-05 | Sandisk Il Ltd. | Device identifier selection |
US20140025890A1 (en) | 2012-07-19 | 2014-01-23 | Lsi Corporation | Methods and structure for improved flexibility in shared storage caching by multiple systems operating as multiple virtual machines |
US20140108705A1 (en) | 2012-10-12 | 2014-04-17 | Sandisk Technologies Inc. | Use of High Endurance Non-Volatile Memory for Read Acceleration |
US9244629B2 (en) * | 2013-06-25 | 2016-01-26 | Advanced Micro Devices, Inc. | Method and system for asymmetrical processing with managed data affinity |
KR20150030036A (ko) | 2013-09-11 | 2015-03-19 | 삼성전자주식회사 | 분산 처리 방법, 마스터 서버 및 분산 클러스터 |
US9396065B2 (en) * | 2014-06-25 | 2016-07-19 | Intel Corporation | Extensible memory hub |
US10031679B2 (en) * | 2014-11-21 | 2018-07-24 | Security First Corp. | Gateway for cloud-based secure storage |
US9632704B2 (en) * | 2015-02-09 | 2017-04-25 | International Business Machines Corporation | Management of physical extents for space efficient storage volumes |
KR102406457B1 (ko) | 2015-03-30 | 2022-06-10 | 삼성전자주식회사 | 메모리 장치간 명령 및 정보를 공유할 수 있는 반도체 메모리 장치, 상기 반도체 메모리 장치를 포함하는 메모리 시스템 및 상기 메모리 시스템의 동작 방법 |
-
2018
- 2018-08-06 KR KR1020180091319A patent/KR20200016074A/ko not_active Application Discontinuation
-
2019
- 2019-03-28 US US16/367,974 patent/US10877909B2/en active Active
- 2019-06-05 CN CN201910484887.9A patent/CN110806837B/zh active Active
-
2020
- 2020-12-15 US US17/122,461 patent/US11294834B2/en active Active
-
2022
- 2022-04-04 US US17/713,001 patent/US11645213B2/en active Active
-
2023
- 2023-04-11 US US18/298,386 patent/US20230244616A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9229854B1 (en) * | 2013-01-28 | 2016-01-05 | Radian Memory Systems, LLC | Multi-array operation support and related devices, systems and software |
CN105653202A (zh) * | 2014-09-26 | 2016-06-08 | Hgst荷兰有限公司 | 一种用于逻辑存储管理的多级方案 |
CN107015760A (zh) * | 2016-01-14 | 2017-08-04 | 爱思开海力士有限公司 | 存储器系统和存储器系统的操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20230244616A1 (en) | 2023-08-03 |
KR20200016074A (ko) | 2020-02-14 |
CN110806837A (zh) | 2020-02-18 |
US20200042470A1 (en) | 2020-02-06 |
US11294834B2 (en) | 2022-04-05 |
US11645213B2 (en) | 2023-05-09 |
US10877909B2 (en) | 2020-12-29 |
US20220222188A1 (en) | 2022-07-14 |
US20210097008A1 (en) | 2021-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110825319B (zh) | 基于块状态确定可用性的存储器系统及操作方法 | |
CN110928807B (zh) | 用于检查存储器系统中的有效数据的设备和方法 | |
CN110806837B (zh) | 数据处理系统及其操作方法 | |
US10963175B2 (en) | Apparatus and method for searching valid data in memory system | |
CN110825659B (zh) | 用于检查存储器系统中的块中的有效数据的设备和方法 | |
CN110895448B (zh) | 用于管理存储器系统中的有效数据的设备和方法 | |
CN108733616B (zh) | 包括多处理器的控制器及其操作方法 | |
CN110895449B (zh) | 用于在存储器系统中管理有效数据的装置和方法 | |
CN110781023A (zh) | 用于在存储器系统中处理数据的设备和方法 | |
CN110780810B (zh) | 用于彼此接合多个存储器系统以存储数据的设备和方法 | |
CN110781097A (zh) | 用于控制元数据以接合多个存储器系统的设备和方法 | |
CN111435334B (zh) | 在存储器系统中检查有效数据的设备和方法 | |
CN110806983B (zh) | 存储器系统及其操作方法 | |
CN110895447B (zh) | 控制器及其操作方法 | |
CN109426448B (zh) | 存储器系统及其操作方法 | |
CN109407968B (zh) | 存储器系统及其操作方法 | |
CN113050881A (zh) | 提高存储器系统输入/输出吞吐量的设备和方法 | |
CN111309518A (zh) | 存储器系统和存储器系统的操作方法 | |
CN111857565A (zh) | 存储器系统、数据处理系统及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |