CN110780809B - 针对多个存储器系统的接合管理元数据的设备和方法 - Google Patents
针对多个存储器系统的接合管理元数据的设备和方法 Download PDFInfo
- Publication number
- CN110780809B CN110780809B CN201910702927.2A CN201910702927A CN110780809B CN 110780809 B CN110780809 B CN 110780809B CN 201910702927 A CN201910702927 A CN 201910702927A CN 110780809 B CN110780809 B CN 110780809B
- Authority
- CN
- China
- Prior art keywords
- memory
- host
- memory system
- metadata
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- 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
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- 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
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/311—In host system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种针对多个存储器系统的接合管理元数据的设备和方法以及系统。该系统用于包括至少一个存储器系统和主机的数据处理系统,该至少一个存储器系统与主机或另一存储器系统可操作地接合并脱离,该主机将命令传送到至少一个存储器系统中。该系统包括:元数据生成器,生成用于可用地址范围的映射表以及用于指示映射表中的可分配地址范围的重新分配表;以及元数据控制器,当至少一个存储器系统可操作地接合至主机或另一存储器系统时,将可分配地址范围分配给至少一个存储器系统,或者当至少一个存储器系统可操作地与主机或另一存储器系统脱离时,释放至少一个存储器系统的分配范围,使得该分配范围变成可分配地址范围。
Description
相关申请的交叉引用
本专利申请分别要求于2018年7月31日提交的申请号为10-2018-0089399和于2018年11月12日提交的申请号为10-2018-0138087的韩国专利申请的优先权,这些韩国专利申请的全部公开内容通过引用并入本文。
技术领域
本发明的各个实施例涉及一种存储器系统和包括存储器系统的数据处理系统,并且更特别地,涉及一种用于控制元数据以使数据处理系统中的多个非易失性存储器系统彼此接合的设备和方法。
背景技术
近来,计算环境范例已经转变成使计算机系统能够随时随地访问的普适计算。因此,诸如移动电话、数码相机和笔记本计算机的便携式电子装置的使用正迅速增加。这种便携式电子装置通常使用或包括使用或嵌入至少一个存储器装置的存储器系统,即数据存储装置。数据存储器装置可以用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,因为使用非易失性半导体存储器装置的数据存储装置不具有机械驱动部件(例如,机械臂),所以它的优点在于具有优异的稳定性和耐用性,并且具有高数据访问速度和低功耗。在具有这些优点的存储器系统的背景下,示例性数据存储装置包括USB(通用串行总线)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
根据用户的需要,支持普适计算的计算装置可以发展成响应于通过普适计算共享或访问的内容的增加量来存储更多数据。作为用于存储更多数据的方法,增加单个存储器系统中的存储容量可能有限,并且具有较大存储容量的单个存储器系统的操作效率可能变得较低。因此,为了处理并存储大量的数据,需要将包括多个非易失性存储器装置的多个存储器系统彼此联接。
发明内容
本公开的实施例可以提供一种通过多个存储器系统的连接建立或接合来配置包括多个存储器系统的数据处理系统的设备和方法。实施例可以提供用于联接多个存储器系统的链路建立方法、用于向每个存储器系统分配标识符或ID(标识)以在计算装置和多个存储器系统之间进行连接的方法。
本公开的实施例可以提供存储器系统、数据处理系统和操作进程或方法,它们可以通过降低存储器系统的操作复杂性和性能劣化来快速且可靠地将数据处理到存储器装置中,从而提高存储器装置的使用效率。
本公开的实施例还提供一种包括多个存储器系统的数据处理系统或一种可以在内部或外部添加或附接至少一个单独的存储器系统的数据处理系统。在实施例中,方法和装置可以针对每个存储器系统给予优先级,并且将用于多个存储器系统的元数据存储在具有最高优先级的存储器系统中,使得数据处理系统可以高效地确定多个存储器系统中的哪个存储器系统将被分配以存储数据或用于存储数据。
在包括多个存储器系统的数据处理系统或可以在内部或外部添加或附接至少一个单独的存储器系统的数据处理系统中,当多个存储器系统之中的至少一个存储器系统被脱离(未联接或接合)或至少一个存储器系统的性能(例如,操作状态)下降到阈值以下时,本公开的实施例可以重置针对多个存储器系统中的每一个给予的优先级,并且将分配给先前具有最高优先级的存储器系统的权限传输至当前具有最高优先级的另一存储器系统,使得数据处理系统可以稳定地或高效地处理大量数据。
在实施例中,一种系统可以用于包括至少一个存储器系统和主机的数据处理系统,该至少一个存储器系统与主机或另一存储器系统可操作地接合并脱离,该主机将命令传送到至少一个存储器系统中。该系统可以包括:元数据生成器,被配置成生成用于可用地址范围的映射表以及用于指示映射表中的可分配地址范围的重新分配表;以及元数据控制器,被配置成当至少一个存储器系统可操作地接合至主机或另一存储器系统时,将可分配地址范围分配给至少一个存储器系统,或者当至少一个存储器系统可操作地与主机或另一存储器系统脱离时,释放至少一个存储器系统的分配范围,使得该分配范围变成可分配地址范围。
通过示例而非限制的方式,系统和至少一个存储器系统可操作地与相同主机接合。系统进一步包括具有比至少一个存储器系统更高优先级的存储器系统。
系统可以包括将读取命令、写入命令或擦除命令传送到至少一个存储器系统的主机。在另一示例中,系统进一步可以包括被配置成基于映射表来执行地址转换的元数据转换器。
映射表可以包括用于将逻辑地址转换成物理地址的映射信息。
系统进一步可以包括被配置成监控至少一个存储器系统是否可操作地与系统接合的接口控制器。
接口控制器可以向至少一个存储器系统提供第一信号以检查至少一个存储器系统是否可操作,或者向至少一个存储器系统提供第二信号以检查至少一个存储器系统是否能够与系统进行数据通信。当对第一信号没有响应至少预定次数时,将第二信号传送到至少一个存储器系统。
可以将第一信号广播到至少一个存储器系统,并且可以将第二信号传送到至少一个存储器系统。
当至少一个存储器系统对第二信号没有响应时,元数据控制器可以被配置成从分配状态释放被分配给至少一个存储器系统的地址范围,使得所分配的地址范围变成可分配地址范围。
元数据控制器被配置成根据可分配地址范围存储在重新分配表中的顺序,按照与至少一个存储器系统的存储容量对应的大小将可分配地址范围分配给至少一个存储器系统。
在另一实施例中,一种存储器系统可以包括:存储器装置,包括存储元数据的第一区域;以及控制器,与主机和至少一个其它存储器系统可操作地接合,并且被配置成将元数据存储在存储器装置中或删除在存储器装置中的元数据。元数据可以由用于可用地址范围的映射表和用于可用地址范围内的可分配地址范围的重新分配表来控制。映射表可以包括在至少一个其它存储器系统中存储的数据的映射信息。
映射信息可以表示逻辑地址和物理地址之间的关系。例如,映射信息可以用于将逻辑地址转换成物理地址。
存储器装置可以包括存储用户数据的第二区域,并且映射表包括针对用户数据的映射信息。
在另一实施例中,一种系统,多个存储器系统与该系统可操作地接合以及多个存储器系统与该系统可操作地分离,该系统可以包括至少一个处理器和至少一个存储器,该至少一个存储器包括计算机程序代码。通过至少一个处理器和至少一个存储器,计算机程序代码使系统:监控多个存储器系统是否与系统可操作地接合;生成用于可用地址范围的映射表以及用于指示映射表中的可分配地址范围的重新分配表;根据监控结果,将对多个存储器系统分配的第一地址范围添加在重新分配表中。
通过至少一个处理器和至少一个存储器,计算机程序代码进一步使系统:对多个存储器系统中的每个分配映射表中的第二地址范围。
通过至少一个处理器好人至少一个存储器,计算机程序代码进一步使系统:基于映射表执行地址转换操作。
通过至少一个处理器和至少一个存储器,计算机程序代码进一步使系统:通过从多个存储器系统中的每一个收集映射信息来生成映射表。通过至少一个处理器和至少一个存储器,计算机程序代码进一步使系统:将可分配地址范围分配给多个存储器系统中的每一个。
通过至少一个处理器和至少一个存储器,计算机程序代码进一步使系统:当被分配第一地址范围的至少一个存储器系统可操作地与系统脱离时,通过从分配状态释放第一地址范围来将第一地址范围添加为重新分配表中的可分配地址范围。
通过至少一个处理器和至少一个存储器,计算机程序代码进一步使系统:检查多个存储器系统之中的至少一个存储器系统是否可操作;并且检查至少一个存储器系统是否能够与系统进行数据通信。
映射表可以包括用于将逻辑地址转换成物理地址的映射信息。
在另一实施例中,一种数据处理系统可以包括存储器系统,该存储器系统电联接到网络,并且每个存储器系统被配置成响应于从主机、与物理地址一起提供的请求来执行存储操作;以及地址管理系统,被配置成向主机提供表示存储器系统的逻辑地址和物理地址之间的关系的总映射数据。地址管理系统进一步被配置成当存储器系统之中的一个或多个存储器系统与网络电分离(electrically de-coupled)时,从总映射数据中删除与电分离的存储器系统对应的部分映射数据。
在另一实施例中,一种管理主机与多个存储器系统接口连接的方法可以包括:监控多个存储器系统是否与系统可操作地接合;生成用于可用地址范围的映射表以及用于指示映射表中的、与多个存储器系统中的至少一个对应的可分配地址范围的重新分配表;根据监控结果,将对多个存储器系统中的至少一个分配的第一地址范围添加为重新分配表中的可分配地址范围。
附图说明
本文的描述参照附图,其中相同的附图标记在所有附图中表示相同的部件,并且其中:
图1示出根据本公开的实施例的包括多个存储器系统的数据处理系统;
图2示出根据本公开的实施例的包括存储器系统的数据处理系统;
图3示出根据本公开的实施例的存储器系统;
图4和图5示出根据本公开的实施例的执行与多个命令对应的多个命令操作的存储器系统;
图6至图11示出提高或增加存储器系统和数据处理系统中的操作效率的示例;
图12示出数据处理系统中的多个存储器系统的配置;
图13和图14示出提高或增加存储器系统和数据处理系统中的操作效率的其它示例;
图15示出用于生成多个存储器系统的元数据的与多个存储器系统可操作接合的主机的示例;
图16示出用于生成多个存储器系统的元数据的与主机接合的多个存储器系统之中的具有最高优先级的存储器系统的示例;
图17和图18示出关于多个存储器系统的元数据的配置的示例。
图19示出至少一个存储器系统与其它存储器系统和主机脱离的情况下的操作;
图20示出更新多个存储器系统的元数据的方法;
图21示出用于控制元数据的重新分配列表;以及
图22示出用于在多个存储器系统与至少一个主机协作的数据处理系统中控制元数据的系统的示例。
具体实施方式
以下参照附图更详细地描述本公开的各个实施例。然而,本公开的元件和特征可以不同地配置或布置以形成其它实施例,该其它实施例可以是所公开实施例中的任意一个的变型。因此,本发明不限于本文阐述的实施例。相反,提供所描述的实施例使得本公开完整且全面,并且将本公开的范围充分地传达给本发明所属领域的技术人员。注意的是,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任意这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然术语“第一”、“第二”、“第三”等可在本文中用于识别各个元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与以另外具有相同或相似名称的另一元件区分开。因此,在不脱离本发明的精神和范围的情况下,一个示例中的第一元件也可在另一示例中被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地示出实施例的特征,比例可能已经被夸大。当一个元件被称为连接或联接到另一元件时,应该理解,前者可以直接连接或联接到后者,或者通过它们之间的中间元件电连接或联接到后者。另外,还将理解的是,当元件被称为在两个元件“之间”时,两个元件之间可以仅有一个元件或也可存在一个或多个中间元件。
本文使用的术语仅用于描述特定实施例的目的,并不旨在限制本发明。如本文使用的,单数形式也旨在包括复数形式并且反之亦然,除非上下文另有清楚地说明。除非另有说明或从上下文清楚地指向单数形式,否则本申请和所附权利要求书中使用的冠词“一”和“一个”通常应被解释为表示“一个或多个”。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意和全部组合。
除非另有限定,否则本文所使用的包括技术术语和科学术语的所有术语具有与本发明所属领域中普通技术人员通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中限定的那些术语的术语应被理解为具有与它们在本公开的上下文和相关领域中的含义一致的含义,并且不以理想化或过于正式的意义来解释,除非本文如此明确地限定。
在下面的描述中,为了提供对本发明的全面理解,阐述了大量具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
也应注意的是,在一些情况下,对相关领域的技术人员显而易见的是,结合一个实施例描述的特征或元件可单独使用或与另一实施例的其它特征或元件结合使用,除非另有明确说明。
现在将参照附图详细描述本公开的实施例,其中相同的标号表示相同的元件。
在图1中,描述根据本公开的实施例的数据处理系统100。数据处理系统100可以包括多个存储器系统110A、110B、110C。响应于从主机102输入的请求,多个存储器系统110A、110B、110C可以存储数据或者输出所存储的数据。
虽然图1示出数据处理系统100包括至少三个存储器系统,然而,数据处理系统100可以包括彼此接合的一个以上的存储器系统。在实施例中,在数据处理系统100中包括的至少一个存储器系统可以是可分离的。
多个存储器系统110A、110B、110C中的每一个可以包括控制器130、存储器144和多个存储器装置152、154、156、158。根据实施例,多个存储器系统110A、110B、110C中的每一个中包括的多个存储器装置152、154、156、158可以是即使在电源被关闭时也能够存储数据的非易失性存储器装置类型。虽然图1描述多个存储器系统110A、110B、110C中的每一个包括四个存储器装置,但是根据实施例的存储器系统可以包括至少一个存储器装置。
虽然未示出,但是存储器装置152、154、156、158中的每一个可以包括至少一个块,并且每个块可以包括多个页面。稍后将参照图2至图5描述存储器装置152、154、156、158中的内部配置和特定操作。
主机102可以包括用户可以使用的计算装置。例如,主机102可以包括台式机、诸如膝上型计算机的个人计算机、诸如蜂窝电话的移动装置或者可以在办公室、学校、实验室等中使用的服务器等等。随着待由用户存储或处理的数据量的增加,数据处理系统中的与主机102相关联或接合的存储器系统110A、110B、110C的数量可能增加。在实施例中,主机102可以被配置成接收从外部装置输入的输入。在实施例中,外部装置可以是不在主机102内部的任何装置。此外,在另一实施例中,外部装置可以包括与主机102可操作地接合的装置,而不管该装置是否被包括在主机102中。主机102可以处置或处理从多个存储器系统110A、110B、110C输出的数据或在多个存储器系统110A、110B、110C中存储的数据。通过示例而非限制的方式,主机102可以读取、写入、擦除数据以及生成或修改数据。
主机102和多个存储器系统110A、110B、110C可以高速地彼此传送和接收命令和数据。为此,多个存储器系统110A、110B、110C和主机102可以支持串行通信方法。例如,串行通信方法可以包括用于下列中的至少一个协议:移动工业处理器接口(MIPI)M-PHY(由MIPI联盟开发的高速数据通信物理层标准)、通用异步收发传输器(UART)、串行外围接口总线(SPI)和内部集成电路(I2C)。
例如,当多个存储器系统110A、110B、110C可以支持或满足通用闪存(UFS)、嵌入式UFS(eUFS)的规范时,多个存储器系统110A、110B、110C和主机102可以使用移动工业处理器接口(MIPI)M-PHY的高速串行通信接口。此处,物理层的M-PHY是一种具有针对移动应用的更高性能和低功率需求而开发的极高带宽能力的嵌入式时钟串行接口技术。另外,多个存储器系统110A、110B、110C可以支持链路层的UniPro标准技术。
与多个存储器系统110A、110B、110C接合的主机102可以分别识别多个存储器系统110A、110B、110C。为了识别,主机102可以将标识符或ID分配给多个存储器系统110A、110B、110C中的每一个。
与主机102接合的多个存储器系统110A、110B、110C可以分别具有不同的优先级。例如,优先级可以被划分为主优先级和次优先级。根据实施例,可以将优先级设置为可以被单独分配给多个存储器系统110A、110B、110C的更多级别或级(stage)。
根据实施例,作为多个存储器系统110A、110B、110C中的一个的第一存储器系统(例如,110A)可以被给予比其它存储器系统(例如,110B、110C)更高的优先级。在这种情况下,第一存储器系统110A可以存储所有多个存储器系统110A、110B、110C的元数据。
根据实施例,在第一存储器系统110A中存储的、所有多个存储器系统110A、110B、110C的元数据可以包括用于识别与逻辑地址对应的物理地址的第一映射信息。第一映射信息用于将由主机102使用的逻辑地址转换成指示多个存储器系统110A、110B、110C中的物理位置的物理地址。
根据实施例,多个存储器系统110A、110B、110C之中、被给予最高优先级的第一存储器系统可以嵌入在主机102中,但是多个存储器系统110A、110B、110C之中的其它存储器系统可以从主机102移除。
另一方面,根据实施例,在多个存储器系统110A、110B、110C之中、被给予最高优先级的第一存储器系统可以不嵌入在主机102中。然而,在向数据处理系统100供应电力时,为了支持与多个存储器系统110A、110B、110C接合的主机102的操作,第一存储器系统应当电连接至主机102。
在下文中,将参照图1描述包括多个存储器系统110A、110B、110C以及与多个存储器系统110A、110B、110C接合的主机102的数据处理系统100中的示例性操作。首先,假设多个存储器系统110A、110B、110C之中的第一存储器系统110A已被给予主优先级并且被内置或嵌入在主机102中。
当主机102检测多个存储器系统110A、110B、110C之中的其它存储器系统110B、110C时,主机102可以将关于其它存储器系统110B和110C的操作信息通信给第一存储器系统110A。
第一存储器系统110A可以在未分配的标识符之中确定其它存储器系统110B、110C中的每一个的逻辑标识符,并且向主机102通知可以被单独分配给其它存储器系统110B、110C的可用逻辑标识符。基于此,主机102可以将逻辑标识符分配给其它存储器系统110B、110C。
在另一示例中,主机102可以在没有第一存储器系统110A的任何支持的情况下识别并分配可用的标识符,并且向第一存储器系统110A通知被分配给其它存储器系统110B、110C的标识符。
此外,根据实施例,第一存储器系统110A或主机102可以确定优先级并且将优先级分配给其它存储器系统110B、110C。如果主机102确定其它存储器系统110B、110C的优先级,则将这些优先级通信到第一存储器系统110A,使得第一存储器系统110A可以存储关于其它存储器系统110B、110C的操作信息。
另一方面,其它存储器系统110B、110C可以存储分配给它们自己的逻辑标识符。每当其它存储器系统与主机102交互时,其它存储器系统110B、110C可以使用所存储的逻辑标识符来传送并且接收数据。
根据实施例,当数据处理系统100包括多个主机102时,多个存储器系统110A、110B、110C可以存储多个逻辑标识符。根据哪个主机102与多个存储器系统110A、110B、110C交互,多个存储器系统110A、110B、110C中的每一个可以使用多个所分配的逻辑标识符之中的不同逻辑标识符。例如,当第二存储器系统110B与主机102交互时,可以使用作为分配给第二存储器系统110B的逻辑标识符中的一个的逻辑标识符“AB”。此外,当第二存储器系统110B与另一主机(未示出)交互时,第二存储器系统110B可以使用另一逻辑标识符“ED”。此处,由多个存储器系统110A、110B、110C使用的、用于与主机102通信的逻辑标识符是一种用于确定数据在数据处理系统中的位置的逻辑地址。根据实施例,可以不同地设置在主机102和多个存储器系统110A、110B、110C之间使用的逻辑标识符。
为了在物理上识别多个存储器系统110A、110B、110C,主机102可以识别多个存储器系统110A、110B、110C中的每一个所拥有的唯一信息。通用唯一标识符(UUID)是可以在主机102和多个存储器系统110A、110B、110C之间使用的示例。通用唯一标识符(UUID)可以包括多个16个八位字节(128位)。在标准格式中,通用唯一标识符(UUID)由通过连字符分隔的、总共36个字符(32个字符和4个连字符)的32个十六进制数字(5组8-4-4-4-12)表示。此处,通用唯一标识符(UUID)与在主机102和多个存储器系统110A、110B、110C之间设置的逻辑标识符一起包括在数据包(packet)的标头中,数据包的格式取决于针对主机102和多个存储器系统110A,110B和110C之间的数据通信而设置的通信协议。
用于主机102与多个存储器系统110A、110B、110C之间的数据通信的标识信息可以存储在具有最高优先级的第一存储器系统110A的特定区域,例如主引导记录(MBR)中。当向主机102和多个存储器系统110A、110B、110C供应电力时,首先执行在第一存储器系统110A的特定区域中存储的数据或固件。因此,可以将用于数据通信的基本信息,诸如在主机102和多个存储器系统110A、110B、110C之间使用的识别信息存储在特定区域中。
在主机102和多个存储器系统110A、110B、110C之间设置并且在主机102和多个存储器系统110A、110B、110C之间设置的通信协议中包括的逻辑标识符可以用于主机102和多个存储器系统110A、110B、110C之间的数据通信。在主机102和多个存储器系统110A、110B、110C之间使用的通信协议可以支持至少一个主设备和至少一个从设备。当通信协议支持一个主设备时,主机102可以是主设备,而多个存储器系统110A、110B、110C可以是从设备。另一方面,当通信协议支持多个主设备时,主机102和由主机102分配的具有最高优先级的第一存储器系统110A可以是主设备,而其它存储器系统110B、110C可以是从设备。
在当主机102新识别另一存储器系统110B、110C的情况下,主机102可以向第一存储器系统110A通知新识别的存储器系统。第一存储器系统110A可以接收在新识别的存储器系统110B、110C中存储的元数据。
在当第一存储器系统110A是主设备的情况下,第一存储器系统110A可以直接向由主机102通知的其它存储器系统110B、110C请求元数据。用作从设备的其它存储器系统110B、110C可以响应于从第一存储器系统110A传递的请求,将它们的元数据传送至第一存储器系统110A。
另一方面,当第一存储器系统110A用作从设备工作时,主机102可以接收其它存储器系统110B、110C的元数据并且将元数据传送至第一存储器系统110A。
第一存储器系统110A将分配给其它存储器系统110B、110C的逻辑标识符添加到从主机102或其它存储器系统110B、110C传递的元数据,使得可以完全准备关于与主机102接合的所有存储器系统110A、110B、110C的元数据。
根据实施例,在将其它存储器系统110B和110C的元数据传送至第一存储器系统110A之后,其它存储器系统110B和110C可以维持或删除所存储的元数据。当其它存储器系统110B、110C维持元数据时,其它存储器系统110B、110C可以用作由第一存储器系统110A控制的元数据的备份。另一方面,当其它存储器系统110B、110C不存储或保持它们的元数据时,其它存储器系统110B、110C可以在与主机102分离之前接收由第一存储器系统110A或主机102控制的元数据。在上述情况下,其它存储器系统110B、110C可以在与主机102分离之后维持用于其它计算系统的最小元数据。
当未识别出联接到主机102的其它存储器系统110B、110C的元数据时,第一存储器系统110A新生成用于其它存储器系统110B、110C的元数据。例如,当其它存储器系统110B、110C处于不具有数据的空状态时,或者如果在其它存储器系统110B、110C中存储的数据不可用或与主机102不兼容,则第一存储器系统110A可以生成针对其它存储器系统110B、110C的元数据。在一些情况下,第一存储器系统110A可以执行垃圾收集以确保用于新生成的元数据的存储空间。
另一方面,第一存储器系统110A可能不再能够作为具有最高优先级的装置而执行操作。例如,第一存储器系统110A可能不再具有存储新元数据的存储空间,或者第一存储器系统110A可能被磨损。在这种情况下,第一存储器系统110A可以将其作为具有最高优先级的装置的状态或权限迁移到其它存储器系统110B、110C中的一个。可以将最高优先级给予至其它存储器系统110B、110C中的一个。
当逻辑标识符以及与主机102接合的多个存储器系统110A、110B、110C的物理识别一起被授予时,主机102可以对存储器系统110A、110B、110C执行读取操作、写入操作或擦除操作。作为主设备,主机102可以向多个存储器系统110A、110B、110C广播命令、数据等。由于作为一对多方案,主机102可以与多个存储器系统110A、110B、110C接合,因此主机102可能不指定特定存储器系统来传送命令或数据。对于主机102来说,向多个存储器系统110A、110B、110C广播命令或数据可能更有效。多个存储器系统110A、110B、110C可以识别包括逻辑标识符和通用唯一标识符中的至少一个的数据包,并且选择性地仅接收与存储器系统对应的数据包。
主机102可以从第一存储器系统110A加载多个存储器系统110A、110B、110C所需的元数据,以便选择多个存储器系统110A、110B、110C中的一个以用于数据传送。例如,可以指定主机102中包括的存储器的特定区域来加载并存储多个存储器系统110A、110B、110C的元数据。
根据实施例,利用主机102中包括的存储器的一部分的方法可以是不同的。稍后将参照图6至图11描述利用主机102中包括的存储器的一部分的方法。
同时,当数据处理系统100中的主机102对多个存储器系统110A、110B、110C执行读取操作、写入操作或擦除操作时,第一存储器系统110A可不用作如上所述的具有最高优先级的装置。在这种情况下,在执行由主机102请求的读取操作、写入操作或擦除操作之前,第一存储器系统110A可以识别与第一存储器系统110A联接的另一存储器系统110B或110C,并且将给予至最高优先级装置(例如,主装置)的权限传送至其它存储器系统110B或110C。该操作可以称为(权限)迁移。例如,当用作主装置的第一存储器系统110A迁移其权限时,第一存储器系统110A可以将数据或信息传送至第二存储器系统110B中,该第二存储器系统110B为具有比主装置的优先级低的优先级的辅助装置。然后,主机102可以从变成主装置的第二存储器系统110B加载元数据。
在图2中,描述根据本公开的实施例的数据处理系统100。参照图2,数据处理系统100可以包括与存储器系统110接合或互锁的主机102。图2中所示的存储器系统110可以对应于图1中所示的多个存储器系统110A、110B、110C中的至少一个。
例如,主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏机、电视(TV)和投影仪等的电子装置。
主机102还包括可以一般地管理并控制在主机102中执行的功能和操作的至少一个操作系统(OS)。OS可以提供与存储器系统110接合的主机102和需要并使用存储器系统110的用户之间的互操作性。OS可以支持与用户请求相对应的功能和操作。通过示例而非限制的方式,根据主机102的移动性,OS可以被分类为通用操作系统和移动操作系统。根据系统的要求或用户的环境,通用操作系统可以被分为个人操作系统和企业操作系统。包括Windows和Chrome的个人操作系统可支持一般用途的服务。但是包括Windows服务器、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)卡、智能媒体卡(SMC)、记忆棒等。
用于存储器系统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可以被集成至单个半导体装置中。控制器130和存储器装置150可以被集成到SSD中以提高操作速度。当存储器系统110用作SSD时,相比于利用硬盘实施的主机102的操作速度,连接至存储器系统110的主机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可以将从存储器装置150读取的数据提供至主机102。控制器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)码、trubo码、里德-所罗门(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可以通过被称为闪速接口层(FIL)的固件而实施为用于与存储器装置150交换数据的组件。
存储器144可以支持由存储器系统110和控制器130执行的操作。存储器144可以存储针对存储器系统110和控制器130中的操作而产生或传递的临时数据或事务数据。控制器130可以响应于来自主机102的请求来控制存储器装置150。控制器130可以将从存储器装置150读取的数据传递至主机102中。控制器130可以将通过主机102输入的数据存储在存储器装置150内。存储器144可以用于存储控制器130和存储器装置150执行诸如读取操作或编程/写入操作的操作所需的数据。
存储器144可以利用易失性存储器来实施。存储器144可以利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或两者来实施。虽然图2例示了设置在控制器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)操作。后台操作可以包括将存储在存储块152、154、156中的至少一个中的数据移动或交换到存储块152、154、156中的至少另一存储块中的操作,例如损耗均衡(WL)操作。在后台操作期间,控制器130可以使用处理器134来将存储在控制器130中的映射数据存储到存储器装置150中的存储块152、154、156中的至少一个,例如映射清除(flush)操作。在存储块152、154、156之中检测或搜索坏块的坏块管理操作是由处理器134执行的后台操作的另一示例。
在存储器系统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,详细地描述根据本公开的另一实施例的存储器系统中的控制器。图3中所示的存储器系统可以对应于图1中所示的多个存储器系统110A、110B、110C中的至少一个。控制器130与主机102和存储器装置150协作。如图所示,控制器130包括主机接口132、闪存转换层(FTL)40以及先前结合图2示出的主机接口132、存储器接口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,或者不同类型的命令和数据可以在由主机102混合或混杂之后从主机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和图2中描述的控制器130的相同功能。主机接口132可以将主机102中的存储器设置为从设备,并且将该存储器添加为控制器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可以收集编程请求并且将用于多平面和单触发编程操作的闪存编程请求发送至存储器接口142。在实施例中,块管理器48可以将若干闪存编程请求发送至存储器接口142以提高或最大化多通道和多向闪速控制器的并行处理。
另一方面,块管理器48可以被配置成根据有效页面的数量来管理存储器装置150中的块,在需要空闲块时选择并擦除不具有有效页面的块,并且在确定需要垃圾收集时选择包括最少数量的有效页面的块。状态管理器42可以执行垃圾收集以将有效数据移动到空块并且擦除包含被移动的有效数据的块,使得块管理器48可以具有足够的空闲块(没有数据的空块)。如果块管理器48将关于待擦除的块的信息提供至状态管理器42,则状态管理器42可以检查待擦除的块的所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可以识别每个页面的带外(OOB)区域中记录的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将页面的物理地址与映射到从查询请求获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面将编程请求发送至块管理器48。当编程操作完成时,映射表可以通过映射管理器44的更新来更新。
映射管理器44可以管理逻辑-物理映射表。映射管理器44可以处理由主机请求管理器(HRM)46或状态管理器42生成的诸如查询、更新等请求。映射管理器44可以将整个映射表存储在存储器装置150(例如,闪存/非易失性存储器)中,并且根据存储器144的存储容量来高速缓存映射条目。当在处理查询请求或更新请求时发生映射高速缓存未命中时,映射管理器44可以将读取请求发送至存储器接口142以加载存储在存储器装置150中的相关映射表。当映射管理器44中的脏高速缓存块的数量超过特定阈值时,编程请求可以被发送至块管理器48,使得形成干净高速缓存块并且脏映射表可以存储在存储器装置150中。
另一方面,当执行垃圾收集时,状态管理器42将有效页面复制到空闲块中,并且主机请求管理器(HRM)46可以针对相同逻辑地址的页面编程最新版本的数据,并且即时发出更新请求。当状态管理器42在有效页面的复制没有正常完成的状态下请求映射更新时,映射管理器44可不执行映射表更新。这是因为如果状态管理器42请求映射更新并且稍后完成有效页面复制,则发出了具有旧物理信息的映射请求。在最新映射表仍然指向旧物理地址时,映射管理器44可执行映射更新操作以确保准确性。
根据实施例,状态管理器42、映射管理器44或块管理器48中的至少一个可以包括用于执行自身操作的至少一个电路。如在本公开中所使用的,术语‘电路’是指以下所有内容:(a)纯硬件电路实施方式(诸如仅在模拟和/或数字电路中的实施方式)和(b)电路和软件(和/或固件)的组合,诸如(如果适用的话):(i)处理器的组合或(ii)处理器的部分/软件的组合(包括一起工作以形成诸如移动电话或服务器的设备以执行各种功能的数字信号处理器、软件和存储器)和(c)电路,诸如需要软件或固件进行操作的微处理器或微处理器的部分,即使软件或固件物理上不存在。‘电路’的这种定义适用于该术语在本申请中的所有应用,包括在任意权利要求中的应用。作为另一示例,如在本申请中所使用的,术语‘电路’还涵盖仅处理器(或多个处理器)或处理器的一部分及其(或它们)附带的软件和/或固件的实施方式。例如,如果适用于特定要求保护元件,则术语‘电路’还涵盖用于存储装置的集成电路。
存储器装置150可以包括多个存储块。根据一个存储器单元中可以存储或表达的位的数量,多个存储块可以是诸如单层单元(SLC)存储块、多层单元(MLC)存储块等的不同类型的存储块中的任意一种。此处,SLC存储块包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块可以具有高数据I/O操作性能和高耐用性。MLC存储块包括由每个存储多位(例如,两位或更多位)数据的存储器单元实施的多个页面。与SLC存储块相比,针对相同的空间,MLC存储块可以具有更大的存储容量。在存储容量方面,MLC存储块可以高度集成。在实施例中,存储器装置150可以利用诸如MLC存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合的MLC存储块来实施。MLC存储块可以包括由每个能够存储两位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个能够存储三位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可以包括由每个能够存储四位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用包括由每个能够存储五位或更多位数据的存储器单元实施的多个页面的块来实施。
在本公开的实施例中,存储器装置150被实施为非易失性存储器,诸如闪速存储器,例如NAND闪速存储器、NOR闪速存储器等。可选地,存储器装置150可以由以下中的至少一个来实施:相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)、自旋转移力矩磁性随机存取存储器(STT-MRAM)等。
图4和图5示意性示出根据本公开的实施例的在存储器系统中执行与多个命令对应的多个命令操作。例如,从主机102接收到多个写入命令并且执行与写入命令对应的编程操作。又例如,从主机102接收多个读取命令并且执行与读取命令对应的读取操作。再例如,从主机102接收多个擦除命令并且执行与擦除命令对应的擦除操作。又例如,从主机102一起接收多个写入命令和多个读取命令并且执行与写入命令对应的编程操作和与读取命令对应的读取操作
在一个实施例中,将与从主机102输入的多个写入命令对应的写入数据存储在控制器130的存储器144中的缓冲器/高速缓存中,存储在缓冲器/高速缓存中的写入数据被编程并存储在存储器装置150中的多个存储块中,映射数据与多个存储块中存储的写入数据相对应地被更新,并且将更新的映射数据存储在多个存储块中。在本公开的另一实施例中,执行与从主机102输入的多个写入命令对应的编程操作。在本公开的另一实施例中,从主机102输入针对存储在存储器装置150中的数据的多个读取命令,通过检查与读取命令对应的数据的映射数据来从存储器装置150读取与读取命令对应的数据,将读取数据存储在控制器130的存储器144中的缓冲器/高速缓存中,并且将存储在缓冲器/高速缓存中的数据提供至主机102。换言之,执行与从主机102输入的多个读取命令对应的读取操作。另外,从主机102接收到针对包括在存储器装置150中的存储块的多个擦除命令,与擦除命令对应地检查存储块,擦除存储在所检查的存储块中的数据,与擦除数据对应地更新映射数据,并且将更新的映射数据存储在存储器装置150中的多个存储块中。也就是说,执行与从主机102接收的多个擦除命令对应的擦除操作。
此外,以下描述了控制器130在存储器系统100中执行命令操作,但是应注意的是,如上所述,控制器130中的处理器134可以通过例如FTL(闪存转换层)来在存储器系统100中执行命令操作。而且,控制器130将与从主机102输入的写入命令对应的用户数据和元数据编程并存储在存储器装置150中的多个存储块之中的被选择存储块中,从被选择存储块读取与从主机102接收的读取命令对应的用户数据和元数据,并且将读取数据提供至主机102,或者从存储器装置150中的多个存储块之中的被选择存储块擦除与从主机102输入的擦除命令对应的用户数据和元数据。
元数据可包括对应于编程操作而存储在存储块中的数据的第一映射数据和第二映射数据,该第一映射数据包括逻辑/物理(L2P:逻辑到物理)信息(逻辑信息),该第二映射信息包括物理/逻辑(P2L:物理到逻辑)信息(物理信息)。而且,元数据可包括关于与从主机102接收的命令对应的命令数据的信息、关于与命令对应的命令操作的信息、关于存储器装置150中的、待被执行命令操作的存储块的信息、以及关于与命令操作对应的映射数据的信息。换言之,元数据可以包括与从主机102接收的命令对应的、除用户数据之外的全部信息和数据。
也就是说,当控制器130从主机102接收多个写入命令时,执行与写入操作对应的编程操作,并且将与写入命令对应的用户数据写入并存储在存储器装置150的存储块之中的已经执行擦除操作的空存储块、开放存储块或空闲存储块中。而且,包括L2P映射表或L2P映射列表的第一映射数据和包括P2L映射表或P2L映射列表的第二映射数据被写入并存储在存储器装置150的存储块之中的空存储块、开放存储块或空闲存储块中,其中第一映射数据中记录有作为用于存储在存储块中的用户数据的、逻辑地址和物理地址之间的映射信息的逻辑信息,第二映射数据中记录有作为用于存储有用户数据的存储块的、物理地址和逻辑地址之间的映射信息的物理信息。
此处,在从主机102输入写入命令的情况下,控制器130将与写入命令对应的用户数据写入并存储在存储块中。控制器130将存储的用户数据的、包括第一映射数据和第二映射数据的元数据存储在另一存储块中。特别地,对应于存储的用户数据的数据段,控制器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的存储块中检查与后台操作对应的元数据和用户数据,将存储在某些存储块中的元数据和用户数据加载并存储在控制器130的存储器144中的缓冲器/高速缓存中,然后将元数据和用户数据存储在其它存储块中。
在根据本公开的实施例的存储器系统中,在执行作为前台操作的命令操作和作为后台操作的复制操作、交换操作和映射清除操作的情况下,控制器130调度与前台操作和后台操作对应的队列,并且将调度的队列分配给控制器130中包括的存储器144和在主机102中包括的存储器。就这方面而言,控制器130将标识符(ID)分配给待在存储器装置150中执行的前台操作和后台操作的各个操作,并且分别调度与分配有标识符的操作对应的队列。在根据本公开的实施例的存储器系统中,不仅以存储器装置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被编程并存储在存储块的页面中时,控制器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存储在第一缓冲器150,然后将数据段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。存储器装置150中的存储器管芯中的各个平面包括多个存储块,例如,N个块Block0、Block1、......、BlockN-1,每个块包括多个页面,例如2M个页面。此外,存储器装置150包括与各个存储器管芯对应的多个缓冲器,例如,与存储器管芯0对应的缓冲器0、与存储器管芯1对应的缓冲器1、与存储器管芯2对应的缓冲器2以及与存储器管芯3对应的缓冲器3。
在执行与从主机102接收的多个命令对应的命令操作的情况下,与命令操作对应的数据被存储在存储器装置150中包括的缓冲器中。例如,在执行编程操作的情况下,将与编程操作对应的数据存储在缓冲器中,然后将该数据存储在存储器管芯的存储块中包括的页面中。在执行读取操作的情况下,从存储器管芯的存储块中的页面读取与读取操作对应的数据,将该数据存储在缓冲器中,然后通过控制器130提供至主机102。
在本公开的实施例中,存储器装置150中的缓冲器设置在其各个存储器管芯的外部。在另一实施例中,缓冲器可以设置在其各个存储器管芯的内部。此外,缓冲器可以对应于其各个存储器管芯中的各个平面或各个存储块。此外,在本公开的实施例中,存储器装置150中的缓冲器是存储器装置150中的多个页面缓冲器。在另一实施例中,缓冲器可以是存储器装置150中包括的多个高速缓存或多个寄存器。
而且,存储器装置150中包括的多个存储块可以被分组为多个超级存储块,并且可以以多个超级存储块来执行命令操作。超级存储块中的每一个可以包括多个存储块的组,例如,在第一存储块组中的存储块可以形成第一超级存储块并且在第二存储块组中的存储块可以形成第二超级存储块。就这方面而言,在第一存储块组包括在第一存储器管芯的第一平面中的情况下,第二存储块组可以包括在第一存储器管芯的第一平面、可以包括在第一存储器管芯的第二平面中或者包括在第二存储器管芯的平面中。
在本公开的实施例中,数据处理系统可以包括多个存储器系统。多个存储器系统110中的每一个可以包括控制器130和存储器装置150。在数据处理系统中,多个存储器系统110中的一个可以主设备,其它存储器系统中的每一个可以是从设备。例如,可以基于多个存储器系统110之间的争用(例如,资源的仲裁、避免冲突或竞争)来确定主设备。当在数据处理系统中从主机102传递多个命令时,主设备可以至少基于通道或总线的状态来确定每个命令的目标。例如,可以对应于从多个存储器系统传递的信息(例如,操作状态)将多个存储器系统之中的第一存储器系统确定为主存储器系统。如果第一存储器系统被确定为主存储器系统,则剩余存储器系统被认为是从存储器系统。主存储器系统的控制器可以检查联接至多个存储器系统的多个通道(或通路、总线)的状态,以选择哪个存储器系统来处理从主机102传递的命令或数据。在实施例中,可以动态地确定多个存储器系统之中的主存储器系统。在另一实施例中,多个存储器系统之中的主存储器系统可以周期性地或根据事件而改变。也就是说,当前主存储器系统稍后可能变成从存储器系统,并且从存储器系统中的一个可能变成主存储器系统。
在下文中,将更详细地描述用于在包括上述存储器装置150和控制器130的存储器系统110中传输数据的方法和设备。随着存储在存储器系统110中的数据量变大,存储器系统110可能需要一次读取或存储大量数据。然而,用于读取存储在存储器装置150中的数据的读取时间或用于将数据写入在存储器装置150中的编程/写入时间通常可能比控制器130处理数据的处理时间或在控制器130和存储器装置150之间的数据传送时间长。例如,读取时间可能是处理时间的两倍。由于读取时间或编程时间明显比处理时间或数据传送时间长,因此在存储器系统110中传递数据的过程或进程可能影响存储器系统110的性能,例如存储器系统110的操作速度和/或存储器系统110的结构,诸如缓冲器大小。
图6至11示出提高存储器系统的操作效率的示例。具体地,图6至图8示出主机中包括的存储器的一部分可以用作高速缓存装置以存储在存储器系统中使用的元数据的情况。图9至图11示出主机中包括的存储器的一部分可以用作缓冲器以临时存储将最终存储在存储器系统中的元数据或用户数据中的任意一个的情况。
参照图6,主机102可以包括处理器104、主机存储器106和主机控制器接口108。存储器系统110可以包括控制器130和存储器装置150。此处,图6中描述的控制器130和存储器装置150可以对应于图1至图5中描述的控制器130和存储器装置150。
在下文中,主要描述图6中所示的控制器130和存储器装置150与图1至图5中所示的控制器130和存储器装置150之间的在技术上可以区分的差异。特别地,控制器130中的逻辑块160可以对应于图3中描述的闪存转换层(FTL)40。然而,根据实施例,控制器130中的逻辑块160可以用作附加角色,并且执行未在图3所示的闪存转换层(FTL)40中描述的附加功能。
主机102可以包括处理器104以及主机存储器106,其中该处理器104具有比存储器系统110的性能更高的性能,该主机存储器106能够比协作主机102的存储器系统110存储更大量的数据。主机102中的处理器104和主机存储器106在空间和升级方面具有优势。例如,处理器104和主机存储器106可以比存储器系统110中的处理器134和存储器144具有更少的空间限制。处理器104和主机存储器106可以是可替换的以便升级它们的性能,这与存储器系统110中的处理器134和存储器144不同。在实施例中,存储器系统110可以利用主机102拥有的资源,以便增大存储器系统110的操作效率。
随着可以在存储器系统110中存储的数据量的增加,与存储器系统110中存储的数据对应的元数据的量也增加。当控制器130的存储器144中的、用于加载元数据的存储容量有限或受到限制时,加载的元数据量的增加可能对控制器130的操作产生操作负担。例如,由于控制器130的存储器144中的、针对元数据所分配的空间或区域的限制,可以加载元数据的一部分但不是全部。如果加载的元数据不包括主机102想要访问的物理位置的特定元数据,则当已经更新了一些加载的元数据时,控制器130必须将加载的元数据存储回存储器装置150中,以及加载主机102想要访问的物理位置的特定元数据。这些操作应当是在控制器130执行主机102所需的读取操作或写入操作时被执行,并且可能劣化存储器系统110的性能。
在主机102中包括的主机存储器106的存储容量可以比控制器130中包括的存储器144的存储容量的大几十倍或几百倍。存储器系统110可以将控制器130使用的元数据166传输至主机102中的主机存储器106,使得存储器系统110可以访问主机102中的主机存储器106的至少一些部分。主机存储器106的至少一部分可以用作高速缓存存储器,以用于将数据写入在存储器系统110中或读取存储器系统110中的数据所需的地址转换。在这种情况下,主机102基于在主机存储器106中存储的元数据166将逻辑地址转换成物理地址,而不是将逻辑地址与请求、命令或指令一起传送至存储器系统110。然后,主机102可以将转换的物理地址与请求、命令或指令一起传送至存储器系统110。接收转换的物理地址与请求、命令或指令的存储器系统110可以跳过将逻辑地址转换成物理地址的内部进程并且基于传输的物理地址访问存储器装置150。在这种情况下,控制器130从存储器装置150加载元数据以用于地址转换的开销(例如,操作负担)可能消失,并且可以提高存储器系统110的操作效率。
另一方面,即使存储器系统110将元数据166传送至主机102,存储器系统110也可以基于元数据166来控制映射信息,诸如元数据生成、擦除、更新等。存储器系统110中的控制器130可以根据存储器装置150的操作状态来执行诸如垃圾收集和损耗均衡的后台操作并且可以确定物理地址,即从主机102传送的数据存储在存储器装置150中的哪个物理位置。由于在存储器装置150中存储的数据的物理地址可能改变并且主机102不知道改变的物理地址,因此存储器系统110可以主动地控制元数据166。
虽然存储器系统110控制用于地址转换的元数据,但是可以确定的是,存储器系统110需要修改或更新先前传送至主机102的元数据166。存储器系统110可以将信号或元数据发送至主机102,以请求更新主机102中存储的元数据166。主机102可以响应于从存储器系统110传递的请求来更新主机存储器106中存储的元数据166。这允许在主机102中的主机存储器106中存储的元数据166保持为最新版本,使得即使主机控制器接口108使用主机存储器106中存储的元数据166,将逻辑地址转换成物理地址并且将转换的物理地址与逻辑地址一起传送至存储器系统110的操作也没有问题。
同时,在主机存储器106中存储的元数据166可以包括用于将逻辑地址转换成物理地址的映射信息。参照图4,将逻辑地址与物理地址相关联的元数据可以包括两个可区分项:用于将逻辑地址转换成物理地址的第一映射信息项;以及用于将物理地址转换成逻辑地址的第二映射信息项。在这两项之中,在主机存储器106中存储的元数据166可以包括第一映射信息项。第二映射信息项可以主要用于存储器系统110的内部操作,但是可能不用于主机102请求将数据存储在存储器系统110中或者从存储器系统110读取与特定逻辑地址对应的数据的操作。根据实施例,存储器系统110可能不将第二映射信息项传送至主机102。
同时,存储器系统110中的控制器130可以控制(例如,产生、删除、更新等)第一映射信息项或第二映射信息项,并且将第一映射信息项或第二映射信息项存储至存储器装置150。因为主机102中的主机存储器106是一种易失性存储器,所以当发生诸如向主机102和存储器系统110的电力供应中断的事件时,在主机存储器106中存储的元数据166可能消失。因此,存储器系统110中的控制器130不仅可以保持在主机102的主机存储器106中存储的元数据166的最新状态,而且也可以将第一映射信息项或第二映射信息项的最新状态存储在存储器装置150中。
参照图6和图7,描述当元数据166存储在主机102的主机存储器106中时,主机102请求读取在存储器系统110中存储的数据的操作。
将电力供应至主机102和存储器系统110,然后主机102和存储器系统110可以彼此接合。当主机102和存储器系统110协作时,在存储器装置150中存储的元数据(L2P MAP)可以被传输至主机存储器106。
当主机102中的处理器104发出读取命令(READ CMD)时,读取命令被传送至主机控制器接口108。在接收到读取命令之后,主机控制器接口108在主机存储器106中存储的元数据(L2P MAP)中搜索与对应于读取命令的逻辑地址对应的物理地址。基于在主机存储器106中存储的元数据(L2P MAP),主机控制器接口108可以识别与逻辑地址对应的物理地址。主机控制器接口108针对与读取命令相关联的逻辑地址执行地址转换。
主机控制器接口108将读取命令(READ CMD)与逻辑地址以及物理地址一起传送至存储器系统110的控制器130中。控制器130可以基于与读取命令一起输入的物理地址来访问存储器装置150。在存储器装置150中的与物理地址对应的位置处存储的数据可以响应于读取命令(READ CMD)而被传输至主机存储器106。
读取在包括非易失性存储器的存储器装置150中存储的数据的操作可能比读取在作为易失性存储器的主机存储器106等中存储的数据的操作花费更多的时间。在用于处理读取命令(READ CMD)的上述操作中,控制器130可以跳过或省略与从主机102输入的逻辑地址对应的地址转换(例如,搜索并识别与逻辑地址相关联的物理地址)。具体地,在地址转换中,当控制器130无法在存储器144中找到用于地址转换的元数据时,控制器130可能不必从存储器装置150加载元数据或替换在存储器144中存储的元数据。这使存储器系统110更快地执行主机102请求的读取操作。
将参照图6至图8描述如何更新先前存储在主机存储器106中的元数据(L2P MAP)。
与主机102电联接的存储器系统110可以执行主机102请求的读取操作、写入操作和删除操作。在存储器系统110执行主机102请求的读取操作、写入操作或者删除操作之后,当存储器装置150中存储的数据的物理位置改变时存储器系统110可以更新元数据。此外,在执行不是主机102请求的后台操作(例如,垃圾收集或损耗均衡)的过程中,存储器系统110可以响应于在存储器装置150中存储的数据的物理位置的改变来更新元数据。存储器系统110中的控制器130可以通过上述操作检测是否更新了元数据。也就是说,控制器130可以检查是否存在通过元数据的生成、更新或删除而导致的脏映射。
当元数据变脏时,控制器130向主机控制器接口108通知需要更新先前存储在主机存储器106中的元数据。主机控制器接口108可以向控制器130请求需要更新的元数据(图8所示的REQUEST MAP INFO.)。控制器130可以响应于从主机控制器接口108输入的请求发送需要更新的元数据(图8所示的SEND MAP INFO.)。然后,主机控制器接口108将传输的元数据传递到主机存储器106中,并且更新主机存储器106中的先前存储的元数据(图8中所示的L2P MAP UPDATE)。
参照图9,与主机102协作的存储器系统110中的控制器130和存储器装置150可以单独地对应于图6中描述的存储器系统110中的控制器130和存储器装置150。然而,根据实施例,图9所示的存储器系统110中的控制器130的内部配置、操作或角色可以在技术上或结构上与图6中描述的控制器130区分开。
主机102还可以包括处理器104、存储器106和主机控制器接口108。图9中所示的主机102可以具有与图6中描述的主机102相似的配置。在主机102中包括的主机存储器106可以包括主机存储器缓冲器。另外,主机控制器接口108可以在配置、操作或角色上包括主机桥。根据实施例,主机控制器接口108可以包括用于控制主机存储器106的存储器控制器或存储器接口。
在图6中的存储器系统110可以使用在主机102中包括的主机存储器106作为用于临时存储元数据166的高速缓存存储器,而图9中描述的存储器系统110可以使用在主机102中包括的主机存储器106作为用于存储用户数据168的缓冲器。参照图9,描述当主机102中包括的主机存储器106存储用户数据168的情况。然而,控制器130也可以将元数据以及用户数据168存储在主机存储器106中。
参照图9,主机102中包括的主机存储器106可以被划分为操作区域和统一区域。此处,主机存储器106的操作区域可以是在通过处理器104执行操作的过程中由主机102用于存储数据或信号的空间。另一方面,主机存储器106的统一区域可以是用于支持存储器系统110的操作而不是主机102的操作的空间。在主机102中包括的主机存储器106可以根据操作时间而用于另一目的,并且可以动态地确定操作区域和统一区域的大小。由于这些特征,在主机102中包括的主机存储器106可以被称为临时存储器或临时存储装置。
主机102可以通过为存储器系统110分配主机存储器106的一部分来提供统一区域。不管存储器系统110如何,主机102可不将统一区域用于在主机102中内部执行的操作。在存储器系统110中,存储器装置150可以包括非易失性存储器,该非易失性存储器比主机102中的作为易失性存储器的主机存储器106花费更多时间来读取、写入或擦除数据。当响应于从主机102输入的请求来读取、写入或擦除数据所花费或需要的时间变长时,在存储器系统110中可能发生延迟(latency)以连续地执行从主机102输入的多个读取命令和写入命令。因此,为了提高或增加存储器系统110的操作效率,主机102中的统一区域可以用作存储器系统110的临时存储装置。
通过示例而非限制的方式,当主机102旨在将大量数据写入存储器系统110时,存储器系统110可能花费很长时间来将大量数据编程到存储器装置150。当主机102尝试将另一数据写入到存储器系统110或从存储器系统110读取另一数据时,因为先前操作,即花费存储器系统110很长时间来将大量数据编程到存储器装置150的操作,所以可能延迟存储器系统110中的与另一数据相关的写入操作或读取操作。在这种情况下,存储器系统110可以请求主机102将大量数据复制到主机存储器106的统一区域,而不将大量数据编程到存储器装置150中。因为将数据从操作区域复制到主机102中的统一区域所需的时间远短于存储器系统110将数据编程到存储器装置150所需的时间,所以存储器系统110可以避免延迟与其它数据相关的写入操作或读取操作。此后,当存储器系统110没有接收从主机102输入的读取、写入或删除数据的命令时,存储器系统110可以将在主机存储器106的统一区域中临时存储的数据传输到存储器装置150中。通过这种方式,用户可能不会意识到由于存储器系统110包括非易失性存储器装置而导致的可能使操作变慢的问题,并且可以相信主机102和存储器系统110高速地处置或处理用户的请求。
存储器系统110中的控制器130可以使用主机102中的主机存储器106的分配部分(例如,统一区域)。主机102可能不涉及存储器系统110执行的操作。主机102可以将诸如读取、写入、删除等的指令与逻辑地址一起传送至存储器系统110。存储器系统110中的控制器130可以将逻辑地址转换成物理地址。当控制器130中的存储器144的存储容量太小而无法加载用于将逻辑地址转换成物理地址的元数据时,控制器130可以将元数据存储在主机102中的主机存储器106的统一区域中。在实施例中,使用在主机存储器106的统一区域中存储的元数据,控制器130可以执行地址转换(例如,识别与从主机102传输的逻辑地址对应的物理地址)。
例如,主机存储器106的操作速度和主机102与控制器130之间的通信速度可以快于控制器130访问存储器装置150并且读取存储器装置150中存储的数据的速度。因此,控制器130可以根据需要快速地从主机存储器106加载元数据,而不是根据需要从存储器装置150加载所存储的元数据。
参照图9和图10,描述当元数据(图10中所示的L2P MAP)存储在主机102中的主机存储器106中时,由主机102请求的读取操作。
在将电力供应至主机102和存储器系统110中之后,主机102和存储器系统110可以彼此接合。当主机102和存储器系统110协作时,在存储器装置150中存储的元数据(L2PMAP)可以被传输至主机存储器106中。主机存储器106的存储容量可以大于存储器系统110中的由控制器130使用的存储器144的存储容量。因此,即使将在存储器装置150中存储的一些或所有元数据(L2P MAP)完全或大部分传输至主机存储器106中,也可能不会对主机102和存储器系统110的操作造成负担。此时,可以将传输至主机存储器106的元数据(L2P MAP)存储在图9中描述的统一区域中。
当主机102中的处理器104发出读取命令(READ CMD)时,读取命令可以被传送至主机控制器接口108。主机控制器接口108可以接收读取命令,然后将读取命令与逻辑地址一起传送至存储器系统110的控制器130。
当存储器133不包括与从主机102输入的逻辑地址相关的元数据时,存储器系统110中的控制器130可以向主机控制器接口108请求与逻辑地址对应的元数据(L2PRequest)。主机控制器接口108可以响应于控制器130的请求,将在主机存储器106中存储的元数据(L2P MAP)的相应部分传送至存储器系统110中。
随着存储器装置150的存储容量增加,逻辑地址的范围可以变宽。例如,逻辑地址的值(例如,LBN1至LBN2*109)可以对应于存储器装置150的存储容量。主机存储器106可以存储与大多数或所有逻辑地址相对应的元数据,而在存储器系统110中包括的存储器144可能没有足够的空间来存储元数据。当控制器130可以确定从主机102、与读取命令一起输入的逻辑地址可能属于特定范围(例如,LBN120至LBN600)时,控制器130可以请求主机控制器接口108发送与特定范围(例如,LBN120至LBN600)或更大范围(例如,LBN100至LBN800)对应的一个或多个元数据。主机控制器接口108可以将由控制器130请求的元数据传送至存储器系统110中,并且传送的元数据(L2P MAP)可以存储在存储器系统110的存储器144中。
控制器130可以基于在存储器144中存储的元数据(L2P MAP)来将从主机102传送的逻辑地址转换成物理地址。控制器130可以使用物理地址来访问存储器装置150并且由主机102请求的数据可以从存储器装置150传输至主机存储器106。此时,可以将响应于读取命令(READ CMD)而将从存储器装置150传送的数据存储在主机存储器106的操作区域中。
如上所述,主机存储器106用作用于存储元数据(L2P MAP)的缓冲器,使得控制器可以不立即从存储器装置150读取或存储元数据(L2P MAP)。因此,可以提高或增加存储器系统110的操作效率。
参照图9和图11,将描述存储器系统110响应于主机102的写入命令而使用主机102中的主机存储器106作为数据缓冲器的示例。在图11中,主机102中的主机存储器106可以被划分为操作区域106A和统一区域106B。
当主机102中的处理器104发出写入命令(Write CMD)时,写入命令被传递至主机控制器接口108。此处,写入命令可以伴随有数据(USER DATA)。与写入命令一起传输的数据的量可以具有与一个页面对应的大小或者更少,与多个页面、多个块对应的大小或者更多。此处,可以假设伴随写入命令的数据具有非常大的体积或大小。
主机控制器接口108向存储器系统110中的控制器130通知写入命令(Write CMD)。此时,控制器130可以请求主机控制器接口108将与写入命令对应的数据(Copy Data)复制到统一区域106B。也就是说,控制器130可以使用统一区域106B作为写入缓冲器,而不是与写入命令一起接收数据并且将数据存储在存储器装置150中。
根据从控制器130输入的请求,主机控制器接口108可以将在操作区域106A中存储的、与写入命令(Write CMD)对应的数据复制到统一区域106B。此后,主机控制器接口108可以响应于从控制器130传递的请求,通知控制器130复制操作完成(Copy Ack)。在识别出主机控制器接口108已经将与写入命令(Write CMD)对应的数据从操作区域106A复制到统一区域106B之后,控制器130可以向写入主机控制器接口108通知完成与写入命令(WriteCMD)对应的写入操作(Write Response)。
当通过上述过程完成涉及大量的数据(例如,大量数据)的写入命令(Write CMD)的操作时,存储器系统110可以准备好执行与从主机102输入的下一命令对应的另一操作。
另一方面,当没有从主机102输入的命令时,存储器系统110可以将在统一区域106B中临时存储的、与写入命令(Write CMD)对应的数据传输并且存储到存储器装置150中。
如上所述,图6至图8和图9至图11中描述的多个实施例可以提高或增加存储器系统110的操作效率。存储器系统110使用在主机102中包括的主机存储器106的一部分作为高速缓存或缓冲器,并且将元数据或用户数据存储在主机存储器106的一部分中。可以克服控制器130使用的存储器144中的存储空间的极限或限制。
图12示出关于与单个主机102(参见图1至图3和图6至图11)接合的多个存储器系统100A、100B、......、100N的配置。多个存储器系统100A、100B、......、100N可以应用于数据处理系统100(参见图1)。
参照图12,多个存储器系统100A、100B、......、100N可以包括具有比其它存储器系统100B、......、100N更高优先级的第一存储器系统100A。可以根据数据处理系统100的配置来确定多个存储器系统100A、100B、......、100N的数量。
多个存储器系统100A、100B、......、100N中的每一个可以包括支持由主机102单独请求的操作的配置或组件。例如,即使第二存储器系统100B在与当前连接的主机102断开连接之后与另一主机电联接,第二存储器系统100B可以执行由另一主机请求的操作。多个存储器系统100A、100B、......、100N中的每一个可以单独地包括能够存储用于与其它装置连接或接合的信息的特定区域(例如,主引导记录(MBR)40_1)。
在实施例中,当多个存储器系统100A、100B、......、100N与主机102协作时,具有比其它存储器系统100B、......、100N更高优先级的第一存储器系统100A可以包括被分配用于存储关于与主机102联接的多个存储器系统100A、100B、......、100N的元数据的元数据块40_2。主机102使用在具有最高优先级的第一存储器系统100A中存储的元数据来确定选择多个存储器系统100A、100B、......、100N中的哪个存储器系统来存储、删除或读取数据。
在实施例中,与存储元数据的第一存储器系统100A不同,其它存储器系统100B、......、100N可以包括存储用户数据而不是元数据的用户数据块40_3。因为其它存储器系统100B、......、100N的元数据存储在第一存储器系统100A中,所以其它存储器系统100B、......、100N可以分配更多空间来存储用户数据。
同时,第一存储器系统100A可以包括存储元数据的元数据块40_2以及用户数据块40_3。随着用于多个存储器系统100A、100B、......、100N的元数据的大小增加,布置在第一存储器系统100A中的元数据块40_2的数量可能增加,但是第一存储器系统100A中的用户数据块40_3的数量可能减少。
具有最高优先级的第一存储器系统100A可以将地址分配给多个存储器系统100A、100B、......、100N、使所分配的地址无效或者重新分配无效的地址。例如,当存储器系统与主机102联接并且由主机102识别时,第一存储器系统100A可以将逻辑标识符分配给所识别的存储器系统。第一存储器系统100A可以确定所识别的存储器系统的逻辑标识符,并且可以在第一存储器系统100A的元数据块40_2中保留相应空间以存储所识别的存储器系统的元数据。而且,第一存储器系统100A可以向主机102通知用于所识别的存储器系统的逻辑标识符。
另一方面,当具有最高优先级的第一存储器系统100A出现问题或被预测为处于问题中时,将分配给第一存储器系统100A的最高优先级和角色迁移到其它存储器系统100B、......、100N之中的一个存储器系统。根据实施例,当第一存储器系统100A是可分离的并且将要与主机断开连接时,第一存储器系统100A能够将特权、角色和数据迁移到其它存储器系统100B、......、100N中的、可以用作其它存储器系统100B、......、100N之中的最高优先级装置的一个存储器系统。
根据实施例,当第一存储器系统110A用作最高优先级装置时,具有比第一存储器系统110A的优先级低的优先级的其它存储器系统100B、......、100N中的至少一个可以与主机断开连接。其它存储器系统100B、......、100N中的、与主机102断开连接的至少一个存储器系统可以与另一主机通信。因此,在中断与主机102的接合之前,可以将与待断开连接的存储器系统相关的元数据从第一存储器系统110A传递到待断开连接的存储器系统。在该进程中,主机102可以将关于其它存储器系统100B、......、100N中的、待断开连接的至少一个存储器系统的信息通信给第一存储器系统110A。第一存储器系统110A可以响应于从主机接收的信息,传递与其它存储器系统100B、......、100N中的、待断开连接的存储器系统对应的元数据。
根据实施例,当第一存储器系统110A可以连接到主机102时,可以使与主机102接合的其它存储器系统100B、......、100N中的至少一个存储器系统电断开。即使分离了其它存储器系统100B、......、100N中的至少一个存储器系统,第一存储器系统110A也可能不删除与其它存储器系统100B、......、100N中的至少一个存储器系统相关联的元数据。这是因为其它存储器系统100B、......、100N中的、已经中断一段时间的至少一个存储器系统可能与相同主机102重新接合。
当满足或符合预定条件时,第一存储器系统110A可以重新配置元数据。例如,当超过预定时段或设定时间,其它存储器系统100B、......、100N中的至少一个不再可用或重新连接时,第一存储器系统110A可以确定维持分配给其它存储器系统100B、......、100N中的至少一个的逻辑标识符并且保留针对关于其它存储器系统100B、......、100N中的至少一个的元数据而分配的空间都会导致资源浪费。因此,当第一存储器系统110A检查是否满足或符合预定条件时,第一存储器系统110A可以执行与存储在第一存储器系统110A中的、用于多个存储器系统100A、100B、......、100N的元数据相关的重新配置(例如,垃圾收集)。根据实施例,可以每隔预定时段(例如,一天、一周或一个月)执行与用于多个存储器系统100A、100B、......、100N的元数据相关的重新配置。
图13和图14示出提高多个存储器系统中的每一个的操作效率的示例。
具体地,图13描述当多个存储器系统110A、110B、110C与单个主机可操作地接合时,将主机存储器106用作高速缓存以增加多个存储器系统110A、110B、110C与单个主机之间的操作效率的示例性情况。
参照图13,可以将在多个存储器系统110A、110B、110C之中、具有最高优先级的第一存储器系统110A中存储的元数据(L2P MAP)传送至主机存储器106。
当读取命令(READ CMD)被输入到主机控制器接口108时,主机控制器接口108使用在主机存储器106中存储的元数据(L2P MAP)来将与读取命令对应的逻辑地址转换成物理地址。
基于物理地址,主机控制器接口108可以指定或识别多个存储器系统110A、110B、110C中的、将响应于读取命令而被访问的特定物理位置。也就是说,主机控制器接口108可以将读取命令与物理地址一起传输到多个存储器系统110A、110B、110C中的一个。
多个存储器系统110A、110B、110C中的、接收从主机控制器接口108传递的物理地址和读取命令的一个存储器系统可以将存储在特定物理位置的数据传输至主机存储器106。
通过上述操作,多个存储器系统110A、110B、110C之中的具有最高优先级的第一存储器系统110A不必执行地址转换,从而在第一存储器系统110A内可以不执行用于地址转换的内部操作。因为可以消除由第一存储器系统110A执行的地址转换和内部操作,所以可以解决可能延迟多个存储器系统110A、110B、110C与主机之间的整体操作的问题。
另一方面,虽然未示出,但是当在多个存储器系统110A、110B、110C中的每一个中可能单独执行了后台操作(例如,垃圾收集或损耗均衡)时,应当修改元数据。具有应当被更新为最新版本的元数据的多个存储器系统110B和110C中的每一个可以通知第一存储器系统110A。在更新元数据之后,第一存储器系统110A可以向主机控制器接口108通知所更新的元数据,使得应当更新先前存储在主机存储器106中的旧元数据。
图14描述当多个存储器系统110A、110B、110C与单个主机可操作地接合时,将主机存储器106用作缓冲器以增加多个存储器系统110A、110B、110C与单个主机之间的操作效率的示例性情况。
参照图14,可以将在多个存储器系统110A、110B、110C之中、具有最高优先级的第一存储器系统110A中存储的元数据(L2P MAP)传送至主机存储器106。
当将读取命令(READ CMD)输入至主机控制器接口108时,主机控制器接口108可以将读取命令与逻辑地址一起传送至第一存储器系统110A。
第一存储器系统110A中的控制器可以尝试基于元数据,将与读取命令对应的逻辑地址转换成物理地址。然而,如果第一存储器系统110A中的控制器没有找到与逻辑地址相关联的元数据,则控制器可以向主机控制器接口108请求与逻辑地址对应的元数据。
主机控制器接口108可以将在主机存储器106中存储的、与逻辑地址对应的元数据的一部分传输至第一存储器系统110A中。第一存储器系统110A可以基于传输的元数据来将逻辑地址转换成物理地址,然后将物理地址转发至主机控制器接口108。
主机控制器接口108可以将物理地址和读取命令传输至多个存储器系统110A、110B、110C中的、可响应于物理地址而被选择的一个存储器系统。
多个存储器系统110A、110B、110C中的、接收物理地址和读取命令的一个存储器系统可以访问与物理地址对应的特定位置,并且将从特定位置输出的数据传输至主机存储器106。
可以将在主机存储器106中存储的元数据从主机传递至第一存储器系统110A,而不是从非易失性存储器装置读取元数据以用于地址转换,其中地址转换可以由多个存储器系统110A、110B、110C之中的具有最高优先级的第一存储器系统110A执行。这具有第一存储器系统110A可以更快速地获得用于地址转换的元数据的优点。
另一方面,虽然未示出,但是当从主机控制器接口108传送写入命令时,像图9和图11中所示的实施例一样,第一存储器系统110A可以使用主机存储器106的一部分(例如,统一区域106B)作为写入缓冲器。
图15示出用于生成多个存储器系统的元数据的、与多个存储器系统可操作接合的主机的示例。
参照图15,在包括主机102和与主机102可操作地接合的多个存储器系统110A、110B、110C的数据处理系统中,多个存储器系统110A、110B、110C可以将多个存储器系统110A、110B、110C的元数据510A、510B、510C存储在主机102中。
主机102可以将从多个存储器系统110A、110B和110C中的每一个传送的多条元数据510A、510B、510C存储在主机存储器106中。主机102可以生成多个存储器系统110A、110B、110C的(整体)元数据。
从多个存储器系统110A、110B、110C传送到主机102的多个元数据510A、510B、510C可以包括用于将逻辑地址转换成物理地址的第一映射信息(L2P映射数据)。
主机102和多个存储器系统110A、110B、110C可以通过串行通信彼此传送并接收数据。在支持主机102和多个存储器系统110A、110B、110C之间的数据传送/接收的串行通信中,存在一个主设备和多个从设备。在这种情况下,主机102是主设备,并且多个存储器系统110A、110B、110C可以用作从设备。多个存储器系统110A、110B、110C可以是响应于从有源装置(即,主机102)输入的请求而操作的一类无源装置,而主机102是可以主动执行操作的有源装置。主机102从可操作地与主机102接合的多个存储器系统110A、110B、110C请求元数据。多个存储器系统110A、110B、110C可以响应于主机102的请求单独地将其元数据传送到主机102。
在主机102向多个存储器系统110A、110B、110C中的每一个请求元数据510A、510B、510C之后,主机102可以将元数据510A、510B、510C彼此组合以生成多个存储器系统110A、110B、110C的元数据。主机102可以将生成的元数据传送到多个存储器系统110A、110B、110C之中的具有最高优先级的存储器系统。具有最高优先级的存储器系统可以存储所接收的元数据,并且当主机102请求时将元数据传送到主机102。
而且,由于具有最高优先级的存储器系统不用作主设备,因此在没有从主机102传递或输入的信息的情况下,具有最高优先级的存储器系统难以更新多个存储器系统110A、110B、110C的元数据。每当主机102更新元数据时,主机102可以向具有最高优先级的存储器系统通知元数据更新。主机102可以将更新的映射信息条传送到具有最高优先级的存储器系统。
图16示出用于生成多个存储器系统的元数据的、与主机接合的多个存储器系统之中的具有最高优先级的存储器系统的示例。
参照图16,数据处理系统可以包括单独能够与至少一个主机交互的多个存储器系统110A、110B、110C。多个存储器系统110A、110B、110C可以被分成具有最高优先级的第一存储器系统110A,以及具有比第一存储器系统110A的优先级低的优先级的第二存储器系统110B和第三存储器系统110C。第二存储器系统110B和第三存储器系统110C可以将第二存储器系统110B和第三存储器系统110C的元数据510B、510C单独地传送到具有比第二存储器系统110B和第三存储器系统110C更高优先级的第一存储器系统110A。
具有比其它存储器系统更高优先级的第一存储器系统110A可以生成多个存储器系统110A、110B、110C的多个元数据510A、510B、510C的(整体)元数据。第一存储器系统110A可以生成元数据,然后将生成的元数据存储在第一存储器系统110A中的存储器装置中。
在实施例中,传送到第一存储器系统110A的多个元数据510A、510B、510C可以包括用于将逻辑地址转换成物理地址的信息(L2P映射数据)。
在实施例中,包括单独地能够与至少一个主机接口连接的多个存储器系统110A、110B、110C的数据处理系统可以由允许多个主设备(例如,两个或多个主设备)的串行通信协议支持。在这种情况下,主机和在多个存储器系统之中的具有较高优先级的第一存储器系统110A可以用作多个主设备,并且其它存储器系统,即具有比第一存储器系统110A更低优先级的第二存储器系统110B和第三存储器系统110C可以用作从设备。作为主设备,具有比其它存储器系统更高优先级的第一存储器系统110A可以向第二存储器系统110B和第三存储器系统110C请求元数据510B、510C。当由于主机与第二存储器系统110B和第三存储器系统110C之间的操作而更新了在第二存储器系统110B和第三存储器系统110C内的映射信息时,第一存储器系统110A可以请求更新的映射信息以更新在第一存储器系统110A中存储的并且由第一存储器系统110A控制的、多个存储器系统110A、110B、110C的(整体)元数据。而且,具有比其它存储器系统更高优先级的第一存储器系统110A可以将(整体)元数据传送到至少一个主机或者向至少一个主机通信已经更新了(整体)元数据。
图17和图18示出关于多个存储器系统的元数据的配置的示例。具体地,图17示出用于组合或整合多条元数据510A、510B、510C的操作,图18示出由图17中描述的操作生成的(整体)元数据的多个示例。
参照图17,将相同量的逻辑地址分配给多个元数据510A、510B、510C中的每一个。由于多个元数据510A、510B、510C具有相同量的逻辑地址,因此分别与多个元数据510A、510B、510C对应的多个存储器系统110A、110B、110C可以具有相同的存储容量。
通过示例而非限制的方式,将范围从1至106(LBN1至LBN106)的逻辑块编号(LBN)分配给多个元数据510A、510B、510C中的每一个。可以按顺序组合包括多个元数据510A、510B、510C的(整体)元数据520。例如,将作为(整体)元数据520的第一部分的1至106的逻辑块编号(LBN)分配给第一元数据510A,并且将作为(整体)元数据510的第二部分的106+1至2*106的逻辑块编号(LBN)分配给第二元数据510B。可以将元数据520的第三部分,即2*106+1至3*106的逻辑块编号分配给第三元数据510C。当多个元数据510A、510B、510C中的每一个具有范围从1至106的逻辑块编号(LBN)时,包括多个元数据510A、510B、510C的整体元数据520可以具有1至3*106的地址范围。
参照图18,图17中所示的整体元数据520可以具有各种形式。
例如,第一类型整体元数据520A被配置成包括顺序添加的多个元数据510A、510B、510C。在第二类型整体元数据520B中,可以将多个元数据510A、510B、510C单独地拆分成两个部分510A-1、510A-2、510B-1、510B-2、510C-1、510C-2,以及依次添加每个元数据510A-1、510B-1、510C-1的第一部分,然后依次添加每个元数据510A-2、510B-2、510C-2的第二部分。在第三类型整体元数据520C中,第一元数据510A和第二元数据520B被拆分成两部分,但是第三元数据510C没有被拆分。
参照图18,多个元数据510A、510B、510C可以以各种方式布置,诸如第一类型整体元数据520A、第二类型整体元数据520B和第三类型整体元数据530C。当在与主机可操作地接合的多个存储器系统没有变化时,可以以预定方式布置或安排多个元数据以生成如图17和图18中所描述的整体元数据。然而,当与主机协作的多个存储器系统可能改变时,用于生成整体元数据的方法可能不同。
图19示出至少一个存储器系统与其它存储器系统和主机脱离的情况下的操作。具体地,多个存储器系统110A、110B、110C中的至少一个暂时与主机脱离。
参照图19,主机控制器接口108可以确定多个存储器系统110A、110B、110C中的每一个是否可操作或者确定多个存储器系统110A、110B、110C中的每一个是否可操作地与主机接合。例如,主机控制器接口108可以将请求信号(Alive)传送到多个存储器系统110A、110B、110C中的每一个以检查多个存储器系统110A、110B、110C中的每一个是否可操作地与主机接合。
图19描述主机控制器接口108单独地将请求信号(Alive)传送到多个存储器系统110A、110B、110C中的每一个的示例。根据实施例,主机控制器接口108可以向多个存储器系统110A、110B、110C广播至少一个请求信号(Alive)。
接收从主机控制器接口108传送的请求信号(Alive)的多个存储器系统110A、110B、110C可以响应于请求信号(Alive)将响应信号(Response)发送到主机控制器接口108。在图19中,第二存储器系统110B尚未响应于从主机控制器接口108传送的请求信号(Alive)来传送响应信号(Response)(No response)。因此,主机控制器接口108可以识别出第二存储器系统110B不可操作或在操作上与主机脱离。
在第二存储器系统110B暂时脱离的情况下,主机控制器接口108可以不向第一存储器系统110A通知第二存储器系统110B的状态。然而,根据实施例,主机控制器接口108可以向第一存储器系统110A通知第二存储器系统110B当前不可操作或者在操作上与主机脱离的状态。
不管主机控制器接口108是否向第一存储器系统110A通知第二存储器系统110B暂时脱离的状态,第一存储器系统110A都不更新元数据(NO UPDATE)。第一存储器系统110A可以在没有更新的情况下将元数据(MAP DATA)传送到主机存储器106。此处,第一存储器系统110A传送的元数据(MAP DATA)可以包括暂时脱离的第二存储器系统110B的多条映射数据。
特定存储器系统被暂时脱离可能存在若干原因。当每当确定存储器系统被暂时脱离就请求主机控制器接口108应当更新元数据时,元数据可能被频繁地更新,但是这种更新操作可能是不必要的。因此,即使主机控制器接口108确定第二存储器系统110B被暂时脱离,也可以假设主机和第二存储器系统110B之间的接合可能很快或在任何时间恢复。
图20示出更新多个存储器系统的元数据的方法。在图20中,多个存储器系统110A、110B、110C中的至少一个存储器系统不能与主机进行数据通信。
参照图20,主机控制器接口108可以传送停用检查信号(Disable)以确认多个存储器系统110A、110B、110C中的一个是否被停用执行数据通信。停用检查信号(Disable)与图19中描述的请求信号(Alive)在技术上可区分开。主机控制器接口108可以周期性地或在预设时间点将请求信号(Alive)传送到多个存储器系统110A、110B、110C,而主机控制器接口108可将停用检查信号(Disable)传送到满足预设条件的特定存储器系统。例如,当在预定时段内,针对从主机控制器接口108传送到特定存储器系统的请求信号(Alive)无响应,或者响应于传送至特定存储器系统的预定数量的请求信号(Alive)无响应时,主机控制器接口108可以将停用检查信号(Disable)传递至特定存储器系统。根据实施例,当多个存储器系统110A、110B、110C中的一个向主机控制器接口108通知它无法执行正常操作时,主机控制器接口108可以传送停用检查信号(Disable)以确认是否无法进行数据通信。
在图20中,第二存储器系统110B不能与主机控制器接口108执行数据通信。当主机控制器接口108通过停用检查信号(Disable)识别出第二存储器系统110B被停用时,主机控制器接口108可以请求第一存储器系统110A重新配置(整体)元数据(Request forReconfig.)。第一存储器系统110A可以响应于主机控制器接口108的请求,使针对第二存储器系统110B分配的逻辑标识符和元数据无效。然后,第一存储器系统110A可以更新(整体)元数据并且将所更新的元数据传递至主机存储器106。
另外,第一存储器系统110A可以撤回、作废或无效针对第二存储器系统110B分配的所有信息,然后将先前针对第二存储器系统110B分配的撤回信息、作废信息或无效信息分配给另一存储器系统(例如,新识别的存储器系统)。
虽然未示出,但是根据实施例,当主机控制器接口108可通过停用检查信号(Disable)识别出第二存储器系统110B被停用时,主机控制器接口108可以对整体元数据执行重新配置,以便排除与第二存储器系统110B对应的元数据。此处,重新配置可以包括用于确定可以删除哪些元数据、可以重新调整或重新组织哪些元数据等的操作。例如,主机控制器接口108可以确定如何撤回、作废或无效针对第二存储器系统110B分配的元数据。在重新配置元数据之后,主机控制器接口108可以向第一存储器系统110A通知重新配置结果。第一存储器系统110A可以基于从主机控制器接口108传送的、与整体元数据相关的重新配置结果来更新整体元数据。然后,第一存储器系统110A可以将更新的元数据转发到主机存储器106。
图21示出用于控制元数据的重新分配列表。
参照图21,多个存储器系统110A、110B、110C之中的具有较高优先级的存储器系统可以包括映射表520D和重新分配表530,该映射表520D包括整体元数据。
具有最高优先级的存储器系统可以建立可用地址范围,该可用地址范围可以被分配给可操作地与至少一个主机接合的多个存储器系统。例如,映射表可以具有与预定可用地址范围对应的空间。映射表可以具有从第一逻辑块编号LBN1至最大逻辑块编号LBN_max的空间,并且可以将最大逻辑块数量LBN_max设置成大于可针对多个存储器系统分配的地址范围。可以保留剩余的逻辑地址范围以用于待与主机接合的新存储器系统,即分配给新接合的存储器系统。
例如,在映射表520D中分配多个元数据510A、510B、510C。最初,可以在映射表520D中顺序地分配多个元数据510A、510B、510C。
参照图20和图21,第二存储器系统110B不再能够与主机进行数据通信。在这种情况下,不再需要将与第二存储器系统110B对应的第二元数据510B包括在映射表520D中。因此,先前针对第二元数据510B分配的106+1至2*106的逻辑块编号(LBN)可以从分配状态(allocation)中被释放并且被包括在重新分配表530中。
此处,重新分配表530可以顺序地将在映射表520D中的当前未使用或未分配的地址区域存储在重新分配表530中。在重新分配表530中存储的当前未使用或未分配的地址区域被称为可分配地址范围。当新存储器系统可操作地与主机接合时,具有最高优先级的存储器系统中的控制器可以顺序地将可分配地址范围中的一部分分配给新接合的存储器系统。
在重新分配表530中收集的可分配地址范围不总是具有相同数量的可分配地址。例如,针对多个存储器系统中的每一个分配的存储区域可能彼此不同。在这种情况下,针对多个存储器系统中的每一个分配的地址范围可以不同,因此从分配状态中释放的可分配地址范围也可能不同。另外,映射表520D中的分配给特定存储器系统的地址范围可以根据相应存储器系统的操作状态而变化。例如,由于坏块等,可能没有执行特定存储器系统的整体操作,或者特定存储器系统的一部分可能不可用。因此,可以由于每个存储器系统的操作状态而释放分配地址的一部分,并且可以将释放的地址作为可分配地址而存储到重新分配表530中。
图22示出用于控制数据处理系统中的元数据的系统的示例,在数据处理系统中多个存储器系统能够可操作地与至少一个主机接合并且能够与至少一个主机脱离。用于控制元数据的系统600可以应用于其中至少一个存储器系统能够可操作地与至少一个主机接合并且能够与至少一个主机脱离的数据处理系统。例如,系统600可以嵌入在主机或可操作地与主机接合的多个存储器系统之中的具有最高优先级的存储器系统中。
参照图22,系统600可以包括元数据生成电路630以及元数据控制电路640,该元数据生成电路630用于生成具有可用地址范围的映射表510D以及用于指示映射表510D中的可分配范围的重新分配表530,该元数据控制电路640根据具有该系统的至少一个存储器系统的操作性接合,将可分配地址范围分配给至少一个存储器系统或释放至少一个存储器系统的可分配范围,使得可分配范围变为可分配地址范围。
根据实施例,可以将映射表510D和重新分配表530存储在至少一个存储器610中。至少一个存储器610可以包括非易失性存储器或易失性存储器中的至少一个。根据实施例,至少一个存储器610可以对应于图2至图3中描述的存储器144或者可以对应于参照图13和图15描述的主机存储器106。
另一方面,根据实施例,系统600可以包括具有比至少一个存储器系统更高的优先级并且可操作地与主机和至少一个存储器系统接合的存储器系统。例如,系统600可以包括图1至图3中描述的存储器系统。
根据实施例,系统600可以包括主机,主机可操作地与至少一个存储器系统接合以用于与主机进行数据通信。例如,系统600可以包括图1至图3中描述的主机。
虽然未示出,但是系统600还可以包括基于映射表执行地址转换的元数据转换电路。根据实施例,元数据转换电路可以对应于图1至图3中描述的执行存储器系统的控制器130中的操作的一部分的模块或电路。此外,根据实施例,如图13所示,元数据转换电路可以包括在主机中。例如,主机控制器接口108可以基于在主机存储器106中存储的元数据而将逻辑地址转换成物理地址。
在存储器610中存储的映射表510D可以包括用于识别与逻辑地址对应的物理地址的第一映射信息。映射表510D可以包括分配给可操作地与至少一个主机接合的至少一个存储器系统的地址范围。
在示例中,系统600还可以包括用于监控至少一个存储器系统与主机的操作性接合的接口控制电路620。接口控制电路620可以生成第一信号和第二信号,该第一信号用于检查至少一个存储器系统是否可操作(即处于响应状态),该第二信号用于检查至少一个存储器系统是否可用,即是否能够与系统600进行数据通信。此处,当多次没有从特定存储器系统传递对第一信号的响应时,可以将第二信号输出到特定存储器系统。
根据实施例,第一信号可以是广播到所有至少一个存储器系统(到未指定主体)的广播类型信号,而第二信号可以是传送到特定装置(或从特定装置接收)的信号,使得至少一个存储器系统中的目标存储器系统可以接收第二信号。
当至少一个存储器系统未对从接口控制电路620传送的第二信号做出响应时,元数据控制电路640可以从接口控制电路620获得至少一个存储器系统不能与系统600进行数据通信的信息,然后从分配状态释放针对相应(非响应)存储器系统先前分配的地址范围,并且将释放的地址范围存储在重新分配表530中。
另外,元数据控制电路640可以根据可分配地址范围存储在重新分配表530中的顺序,将与主机新接合的至少一个存储器系统的存储容量对应的可分配地址范围分配给新接合的存储器系统
在包括与至少一个主机可操作地接合的多个存储器系统的数据处理系统中,可以将不同的优先级单独地给予多个存储器系统,并且具有最高优先级的存储器系统可以控制或管理多个存储器系统的元数据,以提高或增加多个存储器系统与主机之间的交互效率。
本公开的实施例还涉及一种当具有最高优先级的存储器系统可能具有比阈值低的性能或被预期到磨损时控制或管理多个存储器系统的方法。即使移除了多个存储器系统之中的具有不良操作状态的存储器系统,也可通过将其角色、优先级或权限迁移到另一存储器系统来提供可以连续执行交互而不被停止的优点。
本公开的实施例可以提供包括多个存储器系统的数据处理系统,该数据处理系统根据多个存储器系统中的每一个的操作状态来动态地分配或移动用于互锁多个存储器系统的信息。
虽然已经针对具体实施例示出并描述了本公开,但是对于本领域技术人员显而易见的是,根据本公开,在不脱离如所附权利要求中所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (18)
1.一种用于数据处理系统的系统,所述数据处理系统包括至少一个存储器系统和主机,所述至少一个存储器系统与所述主机或另一存储器系统可操作地接合和脱离,所述主机将命令传送到所述至少一个存储器系统中,所述系统包括:
元数据生成器,生成用于可用地址范围的映射表以及用于指示所述映射表中的可分配地址范围的重新分配表;
元数据控制器,当所述至少一个存储器系统可操作地接合至所述主机或另一存储器系统时,将所述可分配地址范围分配给所述至少一个存储器系统,或者当所述至少一个存储器系统可操作地与所述主机或另一存储器系统脱离时,释放所述至少一个存储器系统的分配范围,使得所述分配范围变成所述可分配地址范围;以及
接口控制器,监控所述至少一个存储器系统是否与所述系统可操作地接合,其中所述接口控制器向所述至少一个存储器系统提供第一信号以检查所述至少一个存储器系统是否可操作,或者向所述至少一个存储器系统提供第二信号以检查所述至少一个存储器系统是否能够与所述系统数据通信;
其中当对所述第一信号没有响应预定次数时,将所述第二信号传送到所述至少一个存储器系统。
2.根据权利要求1所述的系统,其中所述系统和所述至少一个存储器系统与相同主机可操作地接合,并且其中所述系统进一步包括具有比所述至少一个存储器系统更高优先级的存储器系统。
3.根据权利要求1所述的系统,其中所述系统包括所述主机,所述主机将读取命令、写入命令或擦除命令传送到所述至少一个存储器系统中。
4.根据权利要求1所述的系统,进一步包括基于所述映射表来执行地址转换的元数据转换器。
5.根据权利要求1所述的系统,其中所述映射表包括用于将逻辑地址转换成物理地址的映射信息。
6.根据权利要求1所述的系统,其中所述第一信号被广播到所述至少一个存储器系统,并且所述第二信号被传送到所述至少一个存储器系统中。
7.根据权利要求1所述的系统,其中当所述至少一个存储器系统对所述第二信号没有响应时,所述元数据控制器从分配状态释放被分配给所述至少一个存储器系统的地址范围,使得所分配的地址范围变成所述可分配地址范围。
8.根据权利要求1所述的系统,其中所述元数据控制器根据所述可分配地址范围存储在所述重新分配表中的顺序,按照与所述至少一个存储器系统的存储容量对应的大小来将所述可分配地址范围分配给所述至少一个存储器系统。
9.一种存储器系统,包括:
存储器装置,包括存储元数据的第一区域;以及
控制器,与主机和至少一个其它存储器系统可操作地接合,并且将所述元数据存储在所述存储器装置中或删除所述存储器装置中的所述元数据,
其中所述元数据由用于可用地址范围的映射表和用于所述可用地址范围内的可分配地址范围的重新分配表来控制,并且
其中所述映射表包括在所述至少一个其它存储器系统中存储的数据的映射信息;
所述控制器向至少一个存储器系统提供第一信号以检查所述至少一个存储器系统是否可操作,或者向所述至少一个存储器系统提供第二信号以检查所述至少一个存储器系统是否能够与所述系统进行数据通信;
其中当对所述第一信号没有响应预定次数时,将所述第二信号传送到所述至少一个存储器系统。
10.根据权利要求9所述的存储器系统,其中所述映射信息表示逻辑地址和物理地址之间的关系。
11.根据权利要求10所述的存储器系统,
其中所述存储器装置进一步包括存储用户数据的第二区域,并且
其中所述映射表包括所述用户数据的映射信息。
12.一种与多个存储器系统可操作地接合和脱离的系统,所述系统包括至少一个处理器和至少一个存储器,所述至少一个存储器包括计算机程序代码,其中通过所述至少一个处理器和所述至少一个存储器,所述计算机程序代码使所述系统:
监控所述多个存储器系统是否与所述系统可操作地接合;
生成用于可用地址范围的映射表以及用于指示所述映射表中的可分配地址范围的重新分配表;并且
根据监控结果,将对所述多个存储器系统分配的第一地址范围添加为所述重新分配表中的所述可分配地址范围。
13.根据权利要求12所述的系统,其中通过所述至少一个处理器和所述至少一个存储器,所述计算机程序代码进一步使所述系统:根据所述监控结果,对所述多个存储器系统中的每个分配所述映射表中的第二地址范围。
14.根据权利要求12所述的系统,其中通过所述至少一个处理器和所述至少一个存储器,所述计算机程序代码进一步使所述系统:基于所述映射表来执行地址转换操作。
15.根据权利要求12所述的系统,
其中通过所述至少一个处理器和所述至少一个存储器,所述计算机程序代码使所述系统:通过从所述多个存储器系统中的每个收集映射信息来生成所述映射表;并且
其中通过所述至少一个处理器和所述至少一个存储器,所述计算机程序代码进一步使所述系统:将所述可分配地址范围分配给所述多个存储器系统中的每个。
16.根据权利要求12所述的系统,其中通过所述至少一个处理器和所述至少一个存储器,所述计算机程序代码使所述系统:当被分配所述第一地址范围的至少一个存储器系统与所述系统可操作地脱离时,通过从分配状态释放所述第一地址范围来将所述第一地址范围添加为所述重新分配表中的所述可分配地址范围。
17.根据权利要求12所述的系统,其中通过所述至少一个处理器和所述至少一个存储器,所述计算机程序代码进一步使所述系统:
检查所述多个存储器系统之中的至少一个存储器系统是否可操作;并且
检查所述至少一个存储器系统是否能够与所述系统数据通信。
18.根据权利要求12所述的系统,其中所述映射表包括用于将逻辑地址转换成物理地址的映射信息。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180089399 | 2018-07-31 | ||
KR10-2018-0089399 | 2018-07-31 | ||
KR10-2018-0138087 | 2018-11-12 | ||
KR1020180138087A KR20200014162A (ko) | 2018-07-31 | 2018-11-12 | 복수의 메모리 시스템의 연동을 위한 메타 데이터의 관리 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110780809A CN110780809A (zh) | 2020-02-11 |
CN110780809B true CN110780809B (zh) | 2023-07-04 |
Family
ID=69228767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910702927.2A Active CN110780809B (zh) | 2018-07-31 | 2019-07-31 | 针对多个存储器系统的接合管理元数据的设备和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11249919B2 (zh) |
CN (1) | CN110780809B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11288196B2 (en) * | 2020-01-15 | 2022-03-29 | EMC IP Holding Company LLC | Efficient data read operation |
CN112631975A (zh) * | 2020-12-09 | 2021-04-09 | 珠海全志科技股份有限公司 | 基于Linux的SPI传输方法 |
CN112558878B (zh) * | 2020-12-16 | 2023-07-04 | 北京华弘集成电路设计有限责任公司 | 一种基于不同类型存储机制的空间调换方法 |
EP4273703A1 (en) * | 2022-05-06 | 2023-11-08 | Samsung Electronics Co., Ltd. | Computing system generating map data, and method of operating the same |
EP4276634A1 (en) * | 2022-05-09 | 2023-11-15 | Samsung Electronics Co., Ltd. | Storage device, computing device including storage device and memory device, and operating method of computing device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2629833A1 (en) * | 2005-11-28 | 2007-05-31 | Commvault Systems, Inc. | Systems and methods for classifying and transferring information in a storage network |
CN102436412A (zh) * | 2010-08-05 | 2012-05-02 | 飞思卡尔半导体公司 | 具有外围设备配置信息错误检测的数据处理系统 |
CN103176752A (zh) * | 2012-07-02 | 2013-06-26 | 晶天电子(深圳)有限公司 | 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器 |
CN106126447A (zh) * | 2015-05-07 | 2016-11-16 | 三星电子株式会社 | 控制存储装置的方法、存储器模块和存储系统 |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5897661A (en) | 1997-02-25 | 1999-04-27 | International Business Machines Corporation | Logical volume manager and method having enhanced update capability with dynamic allocation of storage and minimal storage of metadata information |
US6157991A (en) | 1998-04-01 | 2000-12-05 | Emc Corporation | Method and apparatus for asynchronously updating a mirror of a source device |
US6832303B2 (en) * | 2002-01-03 | 2004-12-14 | Hewlett-Packard Development Company, L.P. | Method and system for managing an allocation of a portion of a memory |
EP1630657A1 (en) | 2004-08-30 | 2006-03-01 | STMicroelectronics S.r.l. | Embedded storage device with integrated data-management functions and storage system incorporating it |
KR20090121631A (ko) * | 2008-05-22 | 2009-11-26 | 삼성전자주식회사 | 반도체 메모리 장치, 메모리 시스템 및 그것의 데이터 복구방법 |
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 |
KR101464338B1 (ko) * | 2007-10-25 | 2014-11-25 | 삼성전자주식회사 | 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템 |
US7978516B2 (en) | 2007-12-27 | 2011-07-12 | Pliant Technology, Inc. | Flash memory controller having reduced pinout |
US8380943B2 (en) * | 2008-01-07 | 2013-02-19 | Rambus Inc. | Variable-width memory module and buffer |
JP2010097563A (ja) | 2008-10-20 | 2010-04-30 | Nec Corp | ネットワークストレージシステム、ディスクアレイ装置、ホスト装置、アクセス制御方法、データアクセス方法 |
US8392614B2 (en) | 2009-07-27 | 2013-03-05 | Sandisk Il Ltd. | Device identifier selection |
US20120159040A1 (en) | 2010-12-15 | 2012-06-21 | Dhaval Parikh | Auxiliary Interface for Non-Volatile Memory System |
US9563555B2 (en) * | 2011-03-18 | 2017-02-07 | Sandisk Technologies Llc | Systems and methods for storage allocation |
US20120303878A1 (en) | 2011-05-26 | 2012-11-29 | International Business Machines Corporation | Method and Controller for Identifying a Unit in a Solid State Memory Device for Writing Data to |
KR20120132820A (ko) * | 2011-05-30 | 2012-12-10 | 삼성전자주식회사 | 스토리지 디바이스, 스토리지 시스템 및 스토리지 디바이스의 가상화 방법 |
US8634267B2 (en) | 2012-05-14 | 2014-01-21 | Sandisk Technologies Inc. | Flash memory chip power management for data reliability and methods thereof |
US9086957B2 (en) * | 2012-08-02 | 2015-07-21 | International Business Machines Corporation | Requesting a memory space by a memory controller |
US9373182B2 (en) | 2012-08-17 | 2016-06-21 | Intel Corporation | Memory sharing via a unified memory architecture |
US20140108705A1 (en) | 2012-10-12 | 2014-04-17 | Sandisk Technologies Inc. | Use of High Endurance Non-Volatile Memory for Read Acceleration |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
WO2014123542A1 (en) | 2013-02-11 | 2014-08-14 | Empire Technology Development Llc | Aggregating cache eviction notifications to a directory |
US9842024B1 (en) | 2013-03-15 | 2017-12-12 | Bitmicro Networks, Inc. | Flash electronic disk with RAID controller |
US9417903B2 (en) | 2013-06-21 | 2016-08-16 | International Business Machines Corporation | Storage management for a cluster of integrated computing systems comprising integrated resource infrastructure using storage resource agents and synchronized inter-system storage priority map |
KR20150006614A (ko) | 2013-07-09 | 2015-01-19 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN104346287B (zh) * | 2013-08-09 | 2019-04-16 | Lsi公司 | 在固态介质中使用多级别映射的修整机制 |
KR20150030036A (ko) | 2013-09-11 | 2015-03-19 | 삼성전자주식회사 | 분산 처리 방법, 마스터 서버 및 분산 클러스터 |
KR102252419B1 (ko) | 2014-01-09 | 2021-05-14 | 한국전자통신연구원 | 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법 |
JP6118285B2 (ja) * | 2014-03-20 | 2017-04-19 | 株式会社東芝 | キャッシュメモリシステムおよびプロセッサシステム |
US20150312337A1 (en) | 2014-04-25 | 2015-10-29 | Netapp Inc. | Mirroring log data |
US9450879B2 (en) | 2014-05-09 | 2016-09-20 | Nexgen Storage, Inc. | Adaptive bandwidth throttling |
US9645749B2 (en) | 2014-05-30 | 2017-05-09 | Sandisk Technologies Llc | Method and system for recharacterizing the storage density of a memory device or a portion thereof |
KR20150140496A (ko) | 2014-06-05 | 2015-12-16 | 삼성전자주식회사 | 실시간 데이터 복구를 위한 리드 리클레임 방법 및 그에 따른 메모리 시스템 |
US8935465B1 (en) | 2014-06-16 | 2015-01-13 | Sandisk Technologies Inc. | System and method of communicating command data in a master-slave environment |
US9904621B2 (en) | 2014-07-15 | 2018-02-27 | Sandisk Technologies Llc | Methods and systems for flash buffer sizing |
US9690675B2 (en) | 2014-07-17 | 2017-06-27 | Cohesity, Inc. | Dynamically changing members of a consensus group in a distributed self-healing coordination service |
KR102277521B1 (ko) | 2015-01-23 | 2021-07-16 | 삼성전자주식회사 | 저장 장치 및 그것의 리드 리클레임 및 읽기 방법 |
US10642507B2 (en) | 2015-01-30 | 2020-05-05 | Nutanix, Inc. | Pulsed leader consensus management |
US10223311B2 (en) | 2015-03-30 | 2019-03-05 | Samsung Electronics Co., Ltd. | Semiconductor memory device for sharing inter-memory command and information, memory system including the same and method of operating the memory system |
KR102406457B1 (ko) | 2015-03-30 | 2022-06-10 | 삼성전자주식회사 | 메모리 장치간 명령 및 정보를 공유할 수 있는 반도체 메모리 장치, 상기 반도체 메모리 장치를 포함하는 메모리 시스템 및 상기 메모리 시스템의 동작 방법 |
CN104881249B (zh) | 2015-05-13 | 2018-07-31 | 深圳芯邦科技股份有限公司 | 一种eMMC的读写方法及装置 |
KR20160148940A (ko) * | 2015-06-17 | 2016-12-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
US10353599B2 (en) | 2015-08-04 | 2019-07-16 | Toshiba Memory Corporation | Storage system that has a plurality of managers among which a master manager is switchable |
US9940040B2 (en) | 2015-08-26 | 2018-04-10 | Toshiba Memory Corporation | Systems, solid-state mass storage devices, and methods for host-assisted garbage collection |
US20170177225A1 (en) | 2015-12-21 | 2017-06-22 | Nimble Storage, Inc. | Mid-level controllers for performing flash management on solid state drives |
US10055343B2 (en) * | 2015-12-29 | 2018-08-21 | Memory Technologies Llc | Memory storage windows in a memory system |
US9910606B2 (en) | 2016-03-23 | 2018-03-06 | Seagate Technology Llc | End of life extension of solid state memory |
US10838620B2 (en) | 2016-05-26 | 2020-11-17 | Nutanix, Inc. | Efficient scaling of distributed storage systems |
KR102651425B1 (ko) | 2016-06-30 | 2024-03-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102545166B1 (ko) * | 2016-07-26 | 2023-06-19 | 삼성전자주식회사 | 파일을 안전하게 삭제하는 호스트, 스토리지 시스템 및 호스트의 동작방법 |
US10503635B2 (en) | 2016-09-22 | 2019-12-10 | Dell Products, Lp | System and method for adaptive optimization for performance in solid state drives based on segment access frequency |
KR102645572B1 (ko) * | 2016-11-29 | 2024-03-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
US10776211B1 (en) | 2016-12-27 | 2020-09-15 | EMC IP Holding Company LLC | Methods, systems, and apparatuses to update point in time journal using map reduce to create a highly parallel update |
US10503412B2 (en) | 2017-05-24 | 2019-12-10 | Western Digital Technologies, Inc. | Priority-based internal data movement |
KR102340287B1 (ko) | 2017-09-20 | 2021-12-20 | 삼성전자주식회사 | 멀티캐스트 통신 프로토콜에 따라 호스트와 통신하는 저장 장치 및 호스트의 통신 방법 |
TWI714830B (zh) * | 2018-02-13 | 2021-01-01 | 緯穎科技服務股份有限公司 | 目錄資料的管理方法與記憶體裝置 |
-
2019
- 2019-07-30 US US16/526,606 patent/US11249919B2/en active Active
- 2019-07-31 CN CN201910702927.2A patent/CN110780809B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2629833A1 (en) * | 2005-11-28 | 2007-05-31 | Commvault Systems, Inc. | Systems and methods for classifying and transferring information in a storage network |
CN102436412A (zh) * | 2010-08-05 | 2012-05-02 | 飞思卡尔半导体公司 | 具有外围设备配置信息错误检测的数据处理系统 |
CN103176752A (zh) * | 2012-07-02 | 2013-06-26 | 晶天电子(深圳)有限公司 | 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器 |
CN106126447A (zh) * | 2015-05-07 | 2016-11-16 | 三星电子株式会社 | 控制存储装置的方法、存储器模块和存储系统 |
Also Published As
Publication number | Publication date |
---|---|
US20200042460A1 (en) | 2020-02-06 |
US11249919B2 (en) | 2022-02-15 |
CN110780809A (zh) | 2020-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110780809B (zh) | 针对多个存储器系统的接合管理元数据的设备和方法 | |
US11294825B2 (en) | Memory system for utilizing a memory included in an external device | |
CN110825319B (zh) | 基于块状态确定可用性的存储器系统及操作方法 | |
CN110780810B (zh) | 用于彼此接合多个存储器系统以存储数据的设备和方法 | |
US20200042225A1 (en) | Apparatus and method for controlling metadata for engagement of plural memory systems | |
CN111258496B (zh) | 动态分配数据路径的装置和方法 | |
CN112445723A (zh) | 用于在存储器系统中的传输映射信息的装置和方法 | |
CN110806837B (zh) | 数据处理系统及其操作方法 | |
CN113900586A (zh) | 存储器系统及其操作方法 | |
CN111752474A (zh) | 控制存储器系统的写入操作的设备和方法 | |
US11822426B2 (en) | Memory system, data processing system and operation method of the same | |
CN110781098B (zh) | 用于彼此接合多个存储器系统的设备和方法 | |
US11550502B2 (en) | Apparatus and method for controlling multi-stream program operations performed in a memory block included in a memory system | |
KR20220090020A (ko) | 비휘발성 메모리 시스템이 생성한 메타데이터를 전송하는 장치 및 방법 | |
US20200250104A1 (en) | Apparatus and method for transmitting map information in a memory system | |
CN111949205A (zh) | 共享存储器系统、数据处理系统或网络服务器的数据属性的设备和方法 | |
KR20200014162A (ko) | 복수의 메모리 시스템의 연동을 위한 메타 데이터의 관리 방법 및 장치 | |
KR20210063814A (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 |