CN106708423B - 多模存储管理系统 - Google Patents

多模存储管理系统 Download PDF

Info

Publication number
CN106708423B
CN106708423B CN201610685502.1A CN201610685502A CN106708423B CN 106708423 B CN106708423 B CN 106708423B CN 201610685502 A CN201610685502 A CN 201610685502A CN 106708423 B CN106708423 B CN 106708423B
Authority
CN
China
Prior art keywords
sue
storage
address space
user data
manager
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
Application number
CN201610685502.1A
Other languages
English (en)
Other versions
CN106708423A (zh
Inventor
安德鲁·汤姆林
贾斯丁·琼斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN106708423A publication Critical patent/CN106708423A/zh
Application granted granted Critical
Publication of CN106708423B publication Critical patent/CN106708423B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation

Abstract

本发明公开了一种多模存储管理系统。一种存储系统包括第一分区具有第一类型接口并且第二分区具有选择性底层暴露(SUE)接口的多个存储装置。在所述存储系统中暴露第二分区的选择的底层方面。所述存储系统还包括指引信息向所述多个存储装置传送的多模存储管理系统。多模存储管理系统包括经由SUE接口和第二分区的选择的底层方面指示第二分区的活动的控制器。

Description

多模存储管理系统
技术领域
本发明涉及信息存储。
背景技术
在商业、科学、教育和娱乐的多数领域中,许多电子技术(例如,数字计算机、计算器、音频装置、视频装备、电话系统等)已提高生产率并且已减少成本。这些电子系统执行涉及信息存储系统的操作。信息存储操作进行的速度和容易度可显著影响信息存储系统的总体性能。然而,对信息存储的传统尝试通常涉及速度和可管理的复杂性之间的反比关系。
信息存储系统涉及可落在两个种类中的一个种类中的操作。一个种类涉及与用户发起的活动关联的存储操作。另一种类涉及由系统发起的管理和维护活动。这些操作进行的速度和容易度与用于存储信息的地址空间的类型关联。
对使用以物理方式寻址的空间的传统尝试在理论上被视为以非常快的速度操作,但对传统的以物理方式寻址的空间中的实际管理和维护操作的尝试非常复杂并且未实际实现。传统逻辑地址空间的管理和维护被视为涉及比物理地址空间低的复杂性。然而,传统逻辑地址空间不像物理地址空间一样快地操作。
尽管传统存储系统可在以前已被视为可接受的级别操作,但这些存储系统越来越不足以满足要求以及长久以来对改进的应用和平台的需求。对实现增长的速度和可管理的复杂性以实现改进的系统开发的传统尝试还未成功。
发明内容
根据本发明的一个实施例,一种存储系统包括第一分区具有第一类型接口并且第二分区具有选择性底层暴露(SUE)接口的多个存储装置。在所述存储系统中暴露第二分区的选择的底层方面。所述存储系统还包括指引信息向所述多个存储装置传送的多模存储管理系统。多模存储管理系统包括经SUE接口和第二分区的选择的底层方面指示第二分区的活动的控制器。
根据本发明的另一实施例,一种用于管理与存储系统关联的存储装置的阵列中的存储介质的计算机实现的方法包括:将用户数据映射到对应于与所述存储系统关联的存储装置的所述阵列中的物理存储区域的代表性几何形状的SUE地址空间中。
根据本发明的另一实施例,一种用于管理与存储系统关联的存储装置的阵列中的存储介质的系统包括:存储器,存储机器指令;处理器,执行所述指令以将用户数据映射到SUE地址空间中。SUE地址空间对应于与所述存储系统关联的存储装置的所述阵列中的物理存储区域的代表性几何形状。
以下在附图和描述中阐述本发明的一个或多个实施例的细节。通过描述和附图,并且通过权利要求,本发明的其他特征、目的和优点将会清楚。
附图说明
为了本发明的原理的示例性说明而包括附图,附图被包含在本说明书中并且形成本说明书的一部分,并且附图并不意图将本发明限制于这里示出的特定实施方式。除非另外具体地指示,否则附图不按照比例绘制。
图1是示出根据一个实施例的具有SUE存储分区的示例性存储装置的方框图。
图2是示出根据一个实施例的示例性多模存储装置的方框图。
图3是示出根据一个实施例的另一示例性多模存储装置的方框图。
图4是示出根据一个实施例的示例性多模固态驱动器(MM-SSD)的方框图。
图5是示出根据一个实施例的将地址空间信息转换成逻辑地址空间信息的示例性过程的方框图。
图6是示出根据一个实施例的示例性系统的方框图。
图7是示出根据一个实施例的系统的方框图。
图8是描述根据一个实施例的驱动多模底层暴露(multimode underlyingexposure)的方法的流程图。
图9是示出示例性多模SSD装置的方框图。
图10是描述根据本发明的实施例的用于在多模存储装置的用户区域中存储的示例性SUE块和对应的SUE页的方框图。
图11是描述根据本发明的实施例的用于在多模存储装置的用户区域中存储的用户存储空间的示例性SUE块和对应的SUE页的方框图。
图12是描述根据本发明的实施例的用于在多模存储装置的用户区域中存储的示例性SUE元页和对应的SUE页的方框图。
图13是描述根据本发明的实施例的用于在多模存储装置的用户区域中存储的示例性SUE元块和对应的SUE元页的方框图。
图14是描述根据本发明的实施例的用于在多模存储装置的用户区域中存储的另一示例性SUE元块和对应的SUE块的方框图。
图15是描述根据本发明的实施例的可由多模存储系统实现以提供从逻辑地址到SUE地址的地址映射的示例性SUE映射方案的方框图。
图16是描述可实现图15的SUE映射方案的示例性存储系统的示意图。
图17是表示根据本发明的实施例的将逻辑地址空间映射到SUE地址空间的示例性方法的流程图。
图18是示出根据本发明的实施例的采用SUE寻址方案以便允许存储系统对存储装置中的逻辑和SUE存储空间进行寻址的示例性多模存储管理系统的示意图。
图19是示出根据本发明的实施例的采用SUE寻址方案以便允许存储系统对存储装置中的逻辑和SUE存储空间进行寻址的另一示例性多模存储管理系统的示意图。
图20是示出根据本发明的实施例的采用SUE寻址方案以便允许存储系统对存储装置中的逻辑和SUE存储空间进行寻址的另一示例性多模存储管理系统的示意图。
图21是示出根据本发明的实施例的可由多模存储管理系统实现的用户区域访问管理器(UAAM)的示意图。
图22是示出根据本发明的实施例的可由多模存储管理系统实现的用户区域映射引擎(UAME)的示意图。
图23是示出根据本发明的实施例的可由多模存储管理系统实现的元块管理器(MBM)的示意图。
图24是示出根据本发明的实施例的可由多模存储管理系统实现的存储装置控制管理器(SCM)的示意图。
图25是示出根据本发明的实施例的可由多模存储管理系统实现的存储装置访问管理器(SAM)的示意图。
图26是示出根据本发明的实施例的可由多模存储管理系统实现的全局状态管理器(GSM)的示意图。
具体实施方式
提供所有上述特征和下面的描述用于帮助对本公开的理解。也就是说,本公开不应该被解释为限于这里阐述的“示例”实施例,并且可被以不同形式实现。下面的实施例仅是用于充分地公开本发明的示例,并且被描述以将本发明构思提供给本领域技术人员。因此,如果存在实现本公开的要素的许多方式,则将会理解,可利用许多方式中的任何一种方式或其任何一种类似事物来实现本公开。
如果在本公开中提及任何配置包括/包含特定组件或者任何处理包括/包含特定操作,则这意味着还可包括其他组件或其他操作。也就是说,这里使用的术语仅意图描述特定示例实施例,而非意图限制本公开的范围。另外,被提供用于帮助对本公开的理解的描述的示例包括它们的补充实施例。
这里使用的术语具有本领域技术人员将会通常理解的含义。常用术语将在本公开的上下文中被解释为一致的含义。另外,除非在这里明确地这样定义,否则这里使用的术语不应该被解释为过于理想或形式的意义。
描述可采用多种不同类型的地址空间和地址空间活动的高效率并且有效的多模存储方案。在一些实施例中,多模选择性底层暴露(SUE)存储装置能够实现存储装置的一些底层方面的选择性暴露,同时不暴露其他底层方面。多模存储和SUE方案可提高性能,同时将复杂性限制于可管理的范围。
在一些示例性实现方式中,可选择性地暴露物理地址空间的底层方面。可实现总体存储分层方案,并且可选择性地将一个分层级别(hierarchical level)的底层方面暴露给另一分层级别。通过地址空间配置和地址空间之间的映射,可发生选择性暴露。选择性地暴露的底层方面可更加高效率地并且有效地实现在与具有暴露的底层方面的分层级别不同的分层级别执行的各种活动。所述各种活动可包括存储管理操作。应该理解,多模存储和SUE方案可包括各种配置和实现方式。
以下,将在下面参照附图描述本公开的示例实施例。
I.多模存储装置
图1是示出根据一个实施例的包括选择性底层暴露(SUE)存储分区101的示例性存储装置100的方框图。SUE存储分区101可包括选择性底层暴露(SUE)接口102和底层存储区域103。
底层存储区域103可存储信息,并且SUE接口102可选择性地将底层存储区域103自身(例如,与维度相关的物理方面、代表性几何形状、管理功能、写操作、擦除操作等)的方面(例如,特性、特征、功能等)暴露给外部组件或存储系统分层级别(未示出)。该暴露可与存储在底层存储区域103中的信息的方面(用户数据和元数据)关联。SUE存储分区101可暴露底层方面的一部分(例如,特性、特征、功能等)。
在暴露底层方面的一部分的一个示例性实现方式中,与未选择性地暴露底层方面的一部分的系统相比,与暴露的方面关联的活动(例如,自由空间管理、自由空间使用的收回和调节、预留空间(over-provisioning)、修剪(trim)操作、功率循环等)可被更高效率(例如,更快、更小带宽和更少功耗)地执行。与暴露更多或全部的底层方面的方案相比,该活动可以以更小的复杂性被执行。
在一些实施例中,可基于速度与复杂性的比较或平衡来确定选择暴露底层方面的哪个部分。应该理解,SUE存储分区101可被包括在具有单个分区的单模存储装置中,或者SUE存储分区101可被包括在具有多个分区的多模存储装置中。
图2是示出根据一个实施例的示例性多模存储装置220的方框图。存储装置220可包括第一分区230和第二分区240。
应该理解,多个模式和对应分区可与各种事物关联或基于各种事物。所述各种事物可包括底层存储区域的不同暴露、不同地址空间(例如,逻辑、虚拟或物理)、不同存储管理模式(例如,内部管理和外部管理)、不同底层存储信息(例如,元数据和用户数据)等等。内部管理和外部管理可包括存储装置管理系统组件和操作(例如,闪存管理系统(FMS)、固态装置管理系统等)。分区和对应组件也可以是不同类型。
多模存储装置220中的分区和对应接口可与不同类型的地址空间(例如,逻辑地址空间和选择性底层暴露(SUE)地址空间)关联。多模存储装置220中的不止一个分区和对应接口也可与相同类型的地址空间关联(例如,多模存储装置220中的不止一个分区和对应接口可与SUE地址空间关联)。
第一分区230可包括第一类型的接口231和底层存储区域233。第二分区240可包括第二类型的接口241和底层存储区域243。在一些实施例中,第一分区230可以是第一类型的地址空间分区(例如,逻辑地址空间分区),并且第二分区240可以是第二类型的地址空间分区(例如,SUE地址空间和虚拟地址空间分区)。应该理解,分区可以是SUE存储分区。
图3是示出根据一个实施例的另一示例性多模存储装置350的方框图。存储装置350可包括第一分区370和第二分区380。
在一些实施例中,第一分区370可以是第一类型的地址空间分区,并且第二分区380可以是SUE地址空间分区。第一分区370可包括第一类型的接口371和底层存储区域373。第二分区380可包括SUE接口381和底层存储区域383。应该理解,一些活动(诸如,第一分区相关的活动372(例如,FMS))可针对一个分区被内部地(例如,在存储装置350中)执行,并且可针对另一分区被外部地(未示出)执行。
不同类型的信息可被存储在不同分区中。在一些实施例中,可存在两种类型的信息,例如,元数据和用户数据。用户数据可主要由用户应用产生,并且元数据可以是与用户数据关联的主要辅助信息(例如,存储系统分层体系中的文件的位置、文件中的内容的大小、访问时间、修改时间、用户ID等)。第一闪存管理系统可专注于管理元数据。元数据转而可被用于管理用户数据的存储。
应该理解,存储系统可按照不同于与管理或维护活动关联的系统操作的方式指导或实现与用户发起的活动关联的操作。例如,从用户角度,用户发起的读或写可指向特定地址或位置,而从系统角度,系统操作可指向物理块和页。
还应该理解,存储装置350可包括各种配置和实现方式。在一些实施例中,存储装置350可以是固态装置。存储装置350可包括闪存组件(例如,NAND类型闪存组件、NOR类型闪存组件等)。
图4是示出根据一个实施例的示例性多模固态驱动器(MM-SSD)400的方框图。多模固态驱动器(SSD)400可以是多模存储装置的一个示例性实现方式。多模固态驱动器400可包括逻辑地址空间分区410、可包括闪存转换逻辑FTL 413的逻辑接口411、底层物理地址空间412、SUE地址空间分区420、SUE接口421和底层物理地址空间423。
逻辑地址空间分区410可接收和存储逻辑地寻址的系统数据(例如,元数据),并且SUE地址空间分区420可接收根据底层暴露地址空间寻址的用户数据(例如,应用数据)。用户数据可被存储在可包括闪存组件(例如,不同类型的浮栅晶体管)的底层物理地址空间423中。闪存组件可按照各种配置和粒度被布置。例如,闪存组件可被布置为多个芯片(dies),并且所述多个芯片之中的芯片470可包括块473和479以及块内的页。
在一些实施例中,SUE接口421可暴露底层物理地址空间423的方面。可通过协调用户数据寻址与MM-SSD 400的底层操作来暴露底层物理地址空间423的选择性方面。该协调可与底层物理地址空间423的管理操作的暴露关联。底层物理存储管理方面可包括被一起管理(例如,在单次操作中、作为单个管理单元、在块集中、在带(band)中以及响应于单个管理命令)的多个底层物理地址块的组(例如,471、472、473和474)。
图5是示出根据一个实施例的将地址空间信息转换成逻辑地址空间信息的示例性过程的方框图。SUE地址块503可包括与各种管理和维护操作关联的信息(例如,505、507和508)。物理地址空间502可包括多个芯片(511、512、513、514、521、522、523、524、531、532、533、534、541、542、543和544)。每个芯片可包括多个物理寻址块(例如,515和519),并且每个物理寻址块可包括多个物理地址页。
物理地址空间502可基于物理块和物理页来访问地址存储位置。SUE接口501可接收SUE地址块503信息,并且可将接收的信息转换或重新配置成与物理地址空间502兼容的配置。SUE地址块503信息可对应于物理管理操作中涉及的信息。
在一些实施例中,管理和维护操作可指向物理地址空间502中的物理块(例如,物理块515、519和539)。管理操作可指向物理地址空间或物理层管理单元。物理层管理单元可包括管理基本上同时被管理的多个地址、页、块等等(例如,响应于管理操作或命令)。例如,擦除操作可指向来自每个芯片的物理块(类似于块515的以黑色示出的物理块)。
因为SUE地址块503被配置为匹配物理块,所以每个对应物理块的每条信息(例如,505、507和508)可被包括在SUE地址块503中。在一些示例性实现方式中,SUE接口501可接收SUE地址块503信息,可将信息505、507和508识别为分别对应于物理块515、517和528,并且可相应地执行对应的管理和维护操作。在一些实施例中,可对多个物理块中的信息执行擦除管理操作,并且可对页中的信息执行写操作。
两个地址空间的几何形状也可以不同。在一些实施例中,逻辑地址空间可以是单维度(例如,逻辑块地址(LBA)偏移如何对齐),并且物理地址空间可以是多维的,包括诸如纠错码(ECC)、物理页、物理块、物理芯片等等(包括它们中的一些或子集)的各种方面。SUE地址空间可以是一维的或者有限数量或减少数量的维度。在SUE地址空间的一些示例性实现方式中,底层物理地址空间的维度可被概括为单维度或减少数量的维度。与底层物理地址空间的管理活动(例如,收回/垃圾回收、功率循环等)关联的选择的维度(例如,块和页)可被概括为SUE地址空间,而底层物理地址空间的其他方面或活动(例如,ECC)可不被概括为SUE地址空间。
应该理解,底层方面的选择性暴露可包括在由总体系统中的其他组件(未示出)而非MM-SSD 400执行的将用户数据传送给MM-SSD 400之前的协调。在一些实施例中,MM-SSD400可被结合到在总体系统分层体系的不同级操作的管理组件。
图6是示出根据一个实施例的系统600的方框图。系统600可包括通信地结合到多模存储管理系统610的多个MM-SSD(例如,620、630、640和650)。
应该理解,一些活动(例如,一些存储管理操作和闪存管理系统操作)可由多模存储管理系统610控制,而其他活动(例如,其他存储管理操作和闪存管理系统操作)可由MM-SSD 620、630、640和650控制。在一些实施例中,MM-SSD 620、630、640和650可分别包括可控制或指示针对MM-SSD 620、630、640和650的一些活动的控制器621、631、641和651,而多模存储管理系统610可包括可控制或指示针对MM-SSD 620、630、640和650的一些活动的控制器611。
在一些示例性实现方式中,控制器621、631、641和651可分别控制或指示MM-SSD620、630、640和650中的第一分区的活动,并且控制器611可控制或指示MM-SSD 620、630、640和650中的第二分区的活动。控制器611可经选择性底层暴露接口控制MM-SSD 620、630、640和650中的活动。
在一些实施例中,系统600可包括多个卷(volume)(例如,671、672和673)。在一些示例性实现方式中,系统600可包括用户空间,用户空间可被映射到多个卷中,并且存储空间可作为所述多个卷被提供给用户。应该理解,卷可具有不同大小。还应该理解,不同大小的SUE可寻址单元可与所述多个卷关联。
图7是示出根据一个实施例的系统700的方框图。系统700可包括通信地结合到器具710中所包括的多模存储管理系统720的多模SSD(MM-SSD)750。器具710可以是各种计算机/电子器具(装置)中的任何一种。应该理解,其他多模SSD可被结合到多模存储管理系统720。系统700可管理元数据730和用户数据740的存储。
多模存储管理系统720可包括控制器745。控制器745可包括闪存管理系统741(用于用户数据)和SUE映射器742。
多模SSD 750可包括逻辑地址空间分区770和SUE地址空间分区780。逻辑地址空间分区770可包括物理地址空间777和控制器775,控制器775可包括闪存管理系统771(用于元数据)。闪存管理系统771可包括逻辑接口772,逻辑接口772可包括FTL 773。物理地址空间777可包括NAND闪存。SUE地址空间分区780可包括SUE接口782和物理地址空间787,物理地址空间787可包括NAND闪存。
可在逻辑地址块791中接收元数据730信息,在逻辑地址块792中转发元数据730信息,并且将元数据730信息从多模管理系统720传送给逻辑地址空间分区770。应该理解,逻辑地址块791和792可以是相同的(例如,逻辑地址块791可以不被改变并且被简单地转发给逻辑地址空间分区770)。
逻辑接口772可将与元数据关联的逻辑块地址(LBA)转换成与物理地址空间777关联的物理地址块793。FMS 771可指示与物理地址空间777关联的存储管理和维护操作。元数据可被存储在物理地址空间777的NAND闪存中。
逻辑地址块797中的用户数据可被转发给FMS 741。因为经SUE接口782暴露物理地址空间787的底层特征和特性,所以FMS 741可指示与物理地址空间787的底层特征和特性关联的闪存管理和维护操作。SUE映射器742可将逻辑地址块797映射到SUE地址块798。
SUE地址块798可转而由选择性底层暴露(SUE)接口782转换成与物理地址空间787中所包括的NAND闪存组件关联的物理地址块799(例如,类似于图5中的517和519)。应该理解,逻辑地址块可具有与SUE地址块不同的大小,SUE地址块转而可具有与物理地址块不同的大小。
与传统方案相比,以上在分层体系级别中执行各种活动促进更加高效率并且方便的管理。传统方案在其处理影响多个层的活动时的灵活性上受到限制。一些传统方案必须在多个级上执行活动,导致对总体性能的指数级不利影响(例如,log-on-log、在驱动级的FMS和在系统级的FMS)。
例如,在raid(独立磁盘冗余阵列)存储系统中,存在既影响上存储分层体系级别(例如,raid系统管理级)又影响下存储分层体系级别(例如,存储驱动级)的需要一起管理的许多项(例如,数据存储和对应奇偶存储)。针对每个级,信息的生命周期可以不同(例如,用户可能想要重写信息,但raid系统可能仍然需要它用于奇偶重新计算),导致驱动级为用户写“新”数据,但系统级仍然为raid系统保持“旧”信息。在没有能力进行修剪的情况下,这导致写放大因子(write amplification factor)。
图8是描述根据一个实施例的驱动多模选择性底层暴露(MM-SUE)的方法的流程图。
具有7%的预留空间的驱动器(例如,SSD)的工作效率是没有驱动预留空间的直接重写系统(例如,HDD)的15倍,并且又是没有系统预留空间的系统的15倍,总共是225(15x15)倍。允许FMS向上移动至上存储分层体系级别的多模存储装置促进减小回落(例如,7%的预留空间在没有预留空间的系统的仅15倍工作效率范围中工作,而28%的预留空间在没有预留空间的系统的仅3倍工作效率范围中工作),导致写放大因子的减小。在一些示例性实现方式中,用于指示来自上存储分层体系级别的管理操作的选择的底层地址块和页可与底层物理级协调或匹配。这允许在用户级的信息的生命周期变得不同于在系统级的信息的生命周期,但从管理角度,这两种生命周期可被对齐为相同(例如,在用户级的生命周期的持续时间和在系统级的生命周期的持续时间可对应于用户空间的使用和擦除)。
在操作810中,装置的第一部分可被配置或指定为用于存储第一类型的信息的第一区域。在一些实施例中,第一区域可以是元数据区域,并且第一类型的信息可以是元数据。纠错码(ECC)大小可变化。
在操作820中,可基于第一地址空间信息执行第一类型接口操作。在一些示例性实现方式中,第一区域可以是元数据区域,并且第一类型的信息可以是元数据。在一些实施例中,第一类型接口可以是逻辑地址空间接口,并且可基于逻辑地寻址的信息执行操作。逻辑接口操作可包括闪存转换逻辑(FTL),包括:接收元数据和逻辑地址;将在系统级配置可见的地址块转换成在物理级配置可见的地址块。
在操作830中,装置的第二部分被配置或指定为用于存储第二类型的信息的第二区域。在一些实施例中,第二区域可以是用户数据区域,并且第二类型的信息可以是用户数据。SUE地址空间可提取或去除与物理地址空间关联的复杂性,同时仍然暴露与底层物理地址空间配置的关系或对应。在一些示例性实现方式中,物理空间维度可被提取为SUE地址页维度和SUE地址块维度。物理地址空间可由SUE地址提取。
在操作840中,可基于第二地址空间信息执行第二类型接口操作,其中,第二类型接口可选择性地暴露底层方面。第二地址空间信息可以是选择性底层暴露(SUE)地址空间信息,其中,SUE地址空间信息可对应于底层方面。底层方面可包括物理地址空间几何形状的代表性几何形状或维度。SUE接口可暴露与底层系统管理操作(例如,自由空间管理、针对自由空间使用的收回和调节)关联的维度。元数据区域中的预留空间的百分比可不同于用户数据区域中的预留空间的百分比。
图9是示出根据一个实施例的示例性多模SSD 920的方框图。在图9中,将多模SSD920与针对逻辑地寻址的SSD 910和物理地寻址的SSD 930的传统尝试进行比较。
逻辑地寻址的SSD 910可包括逻辑接口911、FTL 912和逻辑地址空间913。物理地寻址的SSD 930可包括物理接口931和物理地址空间932。多模SSD 920可包括逻辑接口921、FTL 922、逻辑地址空间923、SUE接口924和物理地址空间925。
多模SSD 920促进驱动器的底层方面的方便的和选择性的暴露。与未足够暴露或具有过度复杂性的传统方案不同,多模SSD 920允许在没有过度的复杂性的情况下的合适的量的暴露。
然而,实际上,传统SSD通常不是很好的线性地址空间,相反地,它们通常具有带有一群闪存芯片的控制器,闪存芯片具有被配置为按照由页构成的块来操作的芯片,页使数据被存储在晶体管的组或串中。物理地寻址的SSD 930试图暴露存储介质的所有的底层物理地址方面,允许被认为是非常快的操作(例如,与逻辑地寻址的SSD 910相比)但引发非常复杂的方案。逻辑地寻址的SSD 910具有被认为是具有隐藏存储介质的方面的所有或几乎所有的底层细节的方案的单线性平坦映射空间,然而试图在许多隐藏的底层细节使系统减慢的情况下将数据最终存储在物理区域中(例如,与物理地寻址的SSD 930相比)。
多模SSD 920促进FMS操作的方便且灵活的配置和实现。多模SSD 920可主要在多模SSD 920的内部控制器(例如,图7的控制器775)中执行针对逻辑地址空间923的FMS操作,同时可主要在多模SSD 920外部的控制器(例如,图7的控制器745)中在系统级执行针对SUE地址空间925的FMS操作。
这种分割或划分多模SSD 920的FMS操作的能力不同于用于不允许FMS操作的分割或划分的SSD 910和SSD 930的FMS操作方案。主要在逻辑地寻址的SSD 910的内部控制器中执行针对逻辑地寻址的SSD 910的FMS操作,而主要在物理地寻址的SSD 930外部的控制器中在系统级执行针对物理地寻址的SSD 930的FMS操作。
在一些实施例中,多模SSD 920可选择性地暴露一些底层地址空间特征,并且逻辑地寻址的SSD 910和物理地寻址的SSD 930不促进一些底层地址空间特征而非其他底层地址空间特征的选择性暴露。在一些实施例中,将底层方面暴露给外部FMS(例如,多模存储管理系统720)可涉及底层方面的选择的暴露的映射。
II.选择性底层暴露(SUE)映射
本发明的另一实施例实现针对存储系统中的用户数据创建从逻辑地址空间到SUE地址空间的映射的选择性底层暴露(SUE)映射方案。SUE映射方案可选择性地暴露底层物理存储介质的显著特征以便允许一些存储介质管理功能在多个存储装置的系统级而非在单个存储装置级被执行。
例如,一些实施例可以能够实现存储器具中的多个NAND闪存非易失性存储装置上的用户地址空间的方面的选择性暴露。SUE映射方案的SUE页和块可与每个物理NAND闪存非易失性存储装置中作为单元共同管理的对应物理页和块对齐。物理NAND闪存非易失性存储装置中的单个芯片在SUE映射方案中不被区分,但在SUE块尺寸中被间接地反映。
存储装置的物理页和块与SUE映射方案的SUE页和块之间的关联允许在存储系统中的所有NAND闪存非易失性存储装置上的系统级协调和实现一些NAND闪存管理功能(诸如,擦除、编程、收回(垃圾回收)、自由空间管理等)。一些存储介质管理功能的系统级实现方式可提供关于存储资源配置的有益的效率。
再一次参照图3,可结合在本公开中描述的SUE映射方案来实现诸如NAND闪存非易失性存储装置的多模存储装置(例如,350、400、620)。例如,在一些实施例中,多模存储装置可以是基于NAND闪存的固态驱动器(SSD)。在一些实施例中,多模存储装置可符合标准化物理形状因数(诸如,标准盘驱动器形状因数或标准存储卡形状因数)。
再一次参照图5,如上所述,多模存储装置可包括具有许多NAND闪存单元的多个芯片511、512、513、514、521、522、523、524、531、532、533、534、541、542、543和544或存储芯片。每个芯片上的NAND闪存单元可被细分为存储单元的多个分立物理块,诸如物理块515、517、519、528和539。
可针对多模存储装置上的一个或多个分立组的芯片上的存储单元的块来执行自由空间的擦除和管理。例如,多模存储装置可包括一百二十八个芯片,并且可针对作为一个组或单元的所述一百二十八个芯片中的每个芯片的一个块来擦除和管理自由空间。替代地,多模存储装置可包括一百二十八个芯片,并且可针对作为一组的芯片的子集(例如,三十二个芯片的组)的一个块来擦除和管理自由空间。
图10是描述根据本发明的实施例的用于在多模存储装置的用户区域中存储的示例性SUE块和对应SUE页的方框图。
现在参照图10,示出形成SUE块1010的物理块1012、1014、1016和1018的序列。存储单元1012、1014、1016和1018的每个物理块还被细分为存储单元的多个分立物理页(例如,1021、1022、1023和1024)。SUE页1030包括来自对应SUE块1010中的每个物理块1012、1014、1016和1018的对应物理页1032、1034、1036和1038。
在本发明的一些实施例中,可创建多模存储装置(例如,350、400或620)中的存储单元的SUE配置。可针对存储装置上的针对编程和擦除而作为单元共同管理的每组芯片来组织SUE页和SUE块。SUE块可被定义为包括物理块的存储单元,从多模存储装置的芯片的子集中所包括的每个芯片分别选择每一个物理块,并且这些物理块可作为单元被共同擦除和管理。SUE页可被定义为包括SUE块的分立部分或片段,并且这些分立部分或片段可被共同编程。
例如,在一些实施例中,多模存储装置可包括一百二十八个芯片,并且可共同擦除和管理每个芯片中所包括的各个物理块上的自由空间。对应SUE块1010可被定义为包括一百二十八个物理块的存储单元,从多模存储装置的一百二十八个芯片分别选择每一个物理块。对应SUE页1030可被定义为包括分别对应于所述一百二十八个物理块的一百二十八个部分或片段。
在另一实施例中,多模存储装置可包括一百二十八个芯片,并且可例如每次共同擦除和管理三十二个芯片的各个物理块上的自由空间。对应SUE块1010可被定义为包括三十二个物理块的存储单元,从多模存储装置的三十二个芯片分别选择每一个物理块。在这种情况下,对应SUE页1030可被定义为包括分别对应于所述三十二个物理块的三十二个部分或片段。
在另一实施例中,多模存储装置可包括被划分为四个平面(plane)的一百二十八个芯片,并且可管理每个芯片中所包括的各个平面的块上的自由空间。对应SUE块1010可被定义为包括存储装置中所包括的各个平面的一百二十八个块的存储单元。在这种情况下,对应SUE页1030可被定义为包括与各个平面的块对应的一百二十八个部分或片段。
图11是描述根据本发明的实施例的用于在多模存储装置的用户区域中存储的用户存储空间的示例性SUE块和对应SUE页的方框图。
现在参照图11,用户存储空间的示例性SUE块(S-Block)1110被表示为方框图。在一些实施例中,SUE块1110可被视为类似于虚拟块(V-Block)。SUE块1110可以是在单个存储装置级的用于存储介质管理的操作的基本单位。SUE块可由多个SUE页(S-Page)组成。在一些示例性实现方式中,SUE页可被视为类似于虚拟页(V-Page)。例如,图11中描述的SUE块1110包括四个SUE页(S-Page)1121、1122、1123和1124。
如图5中所述,被分配给SUE块(S-Block)中的SUE页(S-Page)的物理存储单元可位于单个多模存储装置(例如,350、400或620)中所包括的多个芯片上的对应物理页和物理块中。替代实施例可包括基于多模存储装置的物理擦除块大小和可编程物理页大小之间的关系而被划分为任意数量的页的块。
图12是描述根据本发明的实施例的用于在多模存储装置的用户区域中存储的示例性SUE元页和对应SUE页的方框图。
现在参照图12,示例性元页(MPAGE)1210被表示为方框图。元页1210可由存储系统中的多个存储装置上的多个SUE页(S-Page)组成。例如,图12中描述的元页1210包括五个SUE页(S-Page)1211、1212、1213、1214和1215。替代实施例可包括基于存储系统中的单个多模存储装置的数量和每个多模存储装置中作为单元共同管理的芯片的数量而被划分为任意数量的SUE页的元页。
被分配给每个SUE页的物理存储单元可位于单个多模存储装置(例如,350、400或620)中。被分配给形成元页1210的各种SUE页1211、1212、1213、1214和1215的存储单元可位于与存储系统(例如,存储器具)关联的多个存储装置(例如,620、630、640和650)中。
因此,在SUE页1121、1122、1123和1124的大小或宽度可对应于每个多模存储装置中作为单元共同管理的芯片的数量的同时,元页1210的大小或宽度可对应于存储系统中所包括的多模存储装置的数量。
图13是描述根据本发明的实施例的用于在多模存储装置的用户区域中存储的示例性SUE元块和对应SUE元页的方框图。
参照图13,示例性元块(M-Block)1310被表示为方框图。元块(M-Block)1310可由多个元页1311、1312、1313和1314组成。与元页(M-Page)1210一样,被分配给元块(M-Block)1310的物理存储单元可位于与存储系统关联的多个存储装置中。也就是说,元块(M-Block)1310可包括从存储系统中所包括的每个多模存储装置(例如,620、630、640和650)中作为单元共同管理的芯片的对应子集中所包括的每个芯片选择的各个块。因此,元块1310的大小可对应于在每个多模存储装置(例如,350、400或620)中共同管理的芯片的数量和存储系统中所包括的多模存储装置(例如,620、630、640和650)的数量。
图14是描述根据本发明的实施例的用于在多模存储装置的用户区域中存储的另一示例性SUE元块和对应SUE块的方框图。
参照图14,示例性元块(M-Block)1410可被表示为由多个SUE块(S-Block)1110组成的方框图。元块1410可以是从存储系统中所包括的每个多模存储装置(例如,620、630、640和650)中共同管理的芯片的每个子集选择的各个SUE块1411、1412、1413、1414和1415的聚合体。类似地,元页1210可以是从元块1410中的对应SUE块1411、1412、1413、1414和1415中的每个SUE块选择的对应SUE页(例如,1211、1212、1213、1214和1215)的聚合体。
在本发明的一些实施例中,可在元块级执行一些存储介质管理功能(例如,擦除、编程、收回(垃圾回收)、自由空间管理等)。也就是说,可在存储系统级而不是在单个存储装置级协调这些存储介质管理功能。
为了能够实现期望的系统级存储管理,由例如应用和虚拟机(VM)操作系统寻址的专用于用户数据的逻辑地址空间可被映射到SUE地址空间。因此,可通过底层暴露接口对存储系统中所包括的多模存储装置的用户区域进行寻址。系统级存储映射和管理导致更低的写放大因子,这允许减少的存储区域供应,导致成本节约。
图15是描述根据本发明的实施例的可由多模存储系统实现以提供从逻辑地址到SUE地址的地址映射的示例性SUE映射方案的方框图。
参照图15,示出在本发明的实施例中的SUE映射方案1500,SUE映射方案1500可由存储系统(诸如,图6的多模存储管理系统610)实现以提供从逻辑地址到SUE地址的地址映射。SUE映射方案1500可使逻辑地址空间与SUE地址空间关联。SUE地址空间可揭示底层物理存储介质的显著特征。SUE地址空间可被用于对存储系统中所包括的多个存储装置的聚合物理存储空间进行寻址。
例如,可从主机应用和虚拟机操作系统接收用户数据1502作为输入。主机用户数据可被组织为对应于与本地主机文件系统、接口标准等关联的逻辑块大小(例如,512K字节的信息)的存储单元(例如,逻辑地寻址的块或逻辑块)。可通过逻辑块地址(LBA)来对接收的用户数据的每个逻辑块进行寻址。例如,在一些实施例中,输入逻辑块寻址可与由美国国家标准协会(ANSI)发布的小型计算机系统接口(SCSI)标准关联。
用户数据1502的逻辑地寻址的块可被组合成SUE可寻址单元或混合映射系统(HMS)映射块(HMB)。在一些实施例中,整数数量的逻辑块可被分组以形成SUE可寻址单元。例如,在图15中,八个逻辑块被组合以形成每个SUE可寻址单元。在替代实施例中,任何全部或部分数量的逻辑块可被组合以形成SUE可寻址单元。
在一些实施例中,SUE可寻址单元可具有用于存储系统的映射的最小粒度。在各种实施例中,SUE可寻址单元大小可包括4K字节、8K字节或任何其他合适的大小或大块的信息。
在一些实施例中,存储系统可包括一组卷,并且每个卷可包括一组SUE可寻址单元,并且每个可寻址单元可包括一组逻辑单元。不同卷可分别使用不同SUE可寻址单元大小。应该理解,卷可具有许多特性。卷可对应于:应用、单用户级文件系统、逻辑驱动器、命名空间(例如,与给定命名空间关联的连续逻辑地址的集合)、LUN(逻辑单元号)等等。
在描述的示例性实现方式中:通过逻辑块地址1521、1522、1523、1524、1525、1526、1527和1528进行寻址的逻辑地寻址的块1531、1532、1533、1534、1535、1536、1537和1538被组合成SUE可寻址单元1503;通过逻辑块地址1541、1542、1543、1544、1555、1546、1547和1548进行寻址的逻辑地寻址的块1551、1552、1553、1554、1555、1556、1557和1558被组合成SUE可寻址单元1504;以及通过逻辑块地址1571、1572、1573、1574、1575、1576、1577和1578进行寻址的逻辑地寻址的块1581、1582、1583、1584、1585、1586、1587和1588被组合成SUE可寻址单元1505。逻辑块可跨越可寻址单元。每个可寻址单元可存在多个块。
可以可选地对SUE可寻址单元(例如,1503、1504和1505)中的用户数据1502执行数据压缩算法以产生压缩的SUE可寻址单元(例如,1507、1508和1509)。可对应于每个压缩的SUE可寻址单元(例如,1507、1508和1509)产生头段(例如,1511、1512和1513)。头段可包含例如用于收回和数据恢复活动的信息。
压缩的SUE可寻址单元和头段可被放置在存储装置传输块或SSD传输块(STB)1515和1517中。在描述的示例中,头段1511、1512和1513以及对应的压缩的SUE可寻址单元1507、1508和1509被包括在STB 1515和1517中。在一些实施例中,压缩的SUE可寻址单元以及用户数据1502的封装的逻辑块可被允许跨越两个或更多个存储装置传输块。
整数数量的存储装置传输块可与用于传送给多模存储装置的SUE页1591、1592、1593和1594对齐。在一些实施例中,压缩的SUE可寻址单元以及用户数据1502的封装的逻辑块可被允许跨越两个或更多个SUE页1591、1592、1593和1594。
在一些实施例中,可不在系统级针对用户数据1502执行错误校验(诸如,纠错码(ECC)),而是相反地,必须由单个多模存储装置执行错误校验。
与用户数据关联的元数据可被存储在多模存储装置(例如,350、400或620)的逻辑地寻址的系统区域中。例如,在一些实施例中,使用逻辑块寻址来寻址的多模存储装置中的存储单元的分区可存储可将SUE可寻址单元映射到SUE地址空间中的映射表。例如,映射表可存储指针,每个指针可指向单个SUE可寻址单元。因此,可使用SUE可寻址单元的映射以及逻辑块和SUE可寻址单元的对应偏移来确定SUE地址空间中的用户数据的逻辑块的对应存储位置。
在一些实施例中,信息可被存储在卷(例如,671、672和673)中。可存在多个卷或命名空间,并且不同卷的或命名空间可与不同大小的SUE可寻址单元关联。还应该理解,不同大小的卷或命名空间可与相同大小的SUE可寻址单元关联。
图16是描述可实现图15的SUE映射方案的示例性存储系统的示意图。如图16中所示,示例性存储系统1602可包括处理器1604、存储器1606、网络接口1608、输入/输出(I/O)装置1610、显示装置1612、总线1614和多个非易失性存储装置1616。存储装置1602的各种组件可被本地数据链路1618结合,在各种实施例中,本地数据链路1618包括例如地址总线、数据总线、串行总线、并行总线或这些总线的任何组合。
处理器1604可包括适合于控制存储系统1602的任何通用或专用的数字处理器。存储器1606可包括适合于存储由处理器1604访问的数据和指令的任何数字存储装置。
网络接口1608可包括适合于通信地将存储系统1602连接到通信网络(例如,局域网(LAN)或互联网协议(IP)网络)的任何联网接口。网络接口1608可实现存储联网标准,例如,互联网小型计算机系统接口(iSCSI)协议。
输入/输出装置1610可包括用于向存储系统1602发送数字信息或从存储系统1602接收数字信息的任何合适的装置。显示装置1612可包括用于显示文本或图形用户界面(GUI)的任何合适的装置。
总线1614可包括例如外围组件快速互连(PCIe)总线或用于在存储系统中通信的任何其他合适的高速串行扩展总线。总线1614可使用标准NVM Express(NVMe)或非易失性存储器主机控制器接口规范(NVMHCI)来访问存储系统1602中的存储装置(诸如,非易失性存储装置1616)。非易失性存储装置1616可包括例如基于NAND闪存的固态驱动器(SSD)或任何其他合适的非易失性存储装置。
在替代实施例中,通用计算装置可实现图15的SUE映射方案1500的功能。例如,通用计算装置可包括服务器、工作站、个人计算机等。
存储在计算机可读介质(诸如,非易失性存储装置1616)上的编程代码(诸如,源代码、目标代码或可执行代码)可被加载到工作存储器或操作存储器(例如,存储器1606)中,并且由处理器1604执行以便执行图15的SUE映射方案1500的功能。在替代实施例中,可执行指令可被存储在固件中,或者这些功能可由专用硬件执行。
图17是表示根据本发明的实施例的将逻辑地址空间映射到SUE地址空间的示例性方法的流程图。现在参照图17,示例性处理流程可由例如图16的存储系统1602执行以实现在本公开中描述的用于将逻辑地址空间映射到SUE地址空间以便对存储系统中所包括的多个存储装置的聚合物理存储空间进行寻址的SUE映射方案的实施例。
处理开始于从例如主机应用或虚拟机操作系统接收用户数据的操作1702。可在逻辑块中组织接收的用户数据,并且通过逻辑块地址来对接收的用户数据进行寻址。逻辑块可对应于与本地主机文件系统、数据库等关联的最小可寻址存储单元大小。
在操作1704中,如上所述,逻辑块可被组合成SUE可寻址单元。例如,整数数量的逻辑块可被分组以形成每个SUE可寻址单元。在操作1706中,如以上所解释,可以可选地对SUE可寻址单元中的用户数据执行数据压缩算法。(图17中利用虚线示出的组件是可选的项。)
在操作1708中,可产生头段并且该头段可被添加到每个SUE可寻址单元。如上所述,可将头段产生为包括例如用于收回和数据恢复活动的信息。在操作1710中,如以上所解释,可将压缩的SUE可寻址单元和头段放置在存储装置传输块中。
如以上另外所解释,在操作1712中,整数数量的存储装置传输块可与SUE页结合并且对齐,并且在操作1714中,可将与SUE页对应的存储装置传输块传送给多模存储装置以存储在用户区域中。在操作1716中,如上所述,可将关于SUE页中的用户数据的元数据发送给多模存储装置以存储在系统区域中。
III.多模存储管理系统
在图18中示出本发明的另一实施例,图18示出采用SUE寻址方案以便允许存储系统(诸如,图16的存储系统1602)对存储系统中的逻辑和SUE存储空间进行寻址的示例性多模存储管理系统1802。多模存储管理系统1802可包括SUE存储管理器1804、逻辑存储管理器1806、收回管理器1808和存储阵列管理器1810。
SUE存储管理器1804可提供用户数据存储映射、读和写功能。SUE存储管理器1804可使用SUE地址映射方案将用户数据映射到存储系统的用户区域。SUE存储管理器1804可通过到存储系统的存储装置的SUE接口来访问存储在用户区域中的用户数据。
SUE映射方案可在存储系统和存储装置之间分配逻辑块地址-物理地址映射功能。也就是说,SUE映射方案可组合从逻辑块地址到SUE地址的存储系统级映射或虚拟化与从SUE地址到物理地址的存储装置级映射或转换。
SUE映射方案可将存储装置的一些物理特征或代表性几何形状暴露给存储系统,使得能在多个存储装置上在存储系统级而非在单个存储装置级执行关于用户数据的一些非易失性存储管理功能。这种从单个存储装置级到存储系统级的用户数据管理任务的重新分配可导致系统效率(包括减小的写放大因子),允许减少的资源供应并降低成本。
逻辑存储管理器1806可提供系统数据存储映射、读和写功能。逻辑存储管理器1806可使用逻辑地址映射方案(诸如,逻辑块寻址(LBA))将系统数据映射到存储装置的系统区域。逻辑存储管理器1806可通过到存储装置的逻辑接口来访问存储在系统区域中的系统数据。
因此,在一些实施例中,关联的存储装置或多个关联的存储装置中的每个存储装置的存储空间可被细分或分割成分开的存储区域或地址空间(包括逻辑地寻址的系统区域和SUE寻址的用户区域)。存储装置可包括两个主机接口:可提供对逻辑地寻址的系统区域的访问的逻辑主机接口和可提供对SUE地址用户区域的访问的SUE主机接口。关于系统数据的非易失性存储管理功能可由单个存储装置控制器执行。
关于用户数据,收回管理器1808可在存储系统级提供非易失性存储管理(包括自由空间管理和收回或垃圾回收)功能。因此,存储系统中所包括的单个存储装置可不对用户数据执行本地收回(垃圾回收)。收回管理器1808可实现各种自由空间管理和收回方法。在一些实施例中,收回管理器1808还可执行在本公开中所描述的新的自由空间管理和收回方法。
关于用户数据,存储阵列管理器1810或独立磁盘冗余阵列(RAID)管理器可为存储系统中所包括的多个存储装置的阵列提供存储管理(包括数据恢复功能)。因此,存储系统中所包括的单个存储装置可不对用户数据执行芯片级RAID功能。存储阵列管理器1810可实现各种存储管理和数据恢复方法。在一些实施例中,存储阵列管理器1810还可执行在本公开中所描述的新的存储管理和数据恢复方法。
现在参照图19,示出采用SUE寻址方案以便允许存储系统(诸如,图16的存储系统1602)对存储系统中的逻辑和SUE存储空间进行寻址的另一示例性多模存储管理系统1902。多模存储管理系统1902可包括数据对齐单元(DAU)1904、SUE存储访问管理器1906、数据压缩管理器1908、卷映射引擎1910、缓冲管理器1912、元块管理器1914、收回管理器1916、存储阵列管理器1918和逻辑存储访问管理器2020。
数据对齐单元(DAU)1904可从小型计算机系统接口(SCSI)目标接收逻辑地寻址的介质访问命令(例如,读、写和去映射命令)。所述命令基于由整数索引指示存储块的线性寻址方案来使用逻辑块寻址(LBA)、SCSI存储位置提取标准。在逻辑块寻址中,单整数基地址被用于识别数据的每个逻辑块的开始,并且每个线性基地址与单个逻辑块唯一地关联。因此,逻辑块寻址从操作系统、文件系统、装置驱动器和主机应用隐藏或掩蔽存储装置的具体细节或特征。
在写操作期间,数据对齐单元1904可将从SCSI目标接收的数据的逻辑块组合成SUE映射块。例如,在一些实施例中,整数数量的逻辑块可被分组以形成SUE映射块。数据压缩管理器1908可以可选地对SUE映射块中的用户数据执行数据压缩算法。
在读操作期间,数据对齐单元1904可从SCSI目标接收读命令,并且将读请求传递给SUE存储访问管理器1906。数据对齐单元1904可从SUE存储访问管理器1906接收请求的用户数据,并且将请求的用户数据传送给SCSI目标。
SUE存储访问管理器1906可提供用户数据读和写功能。在写操作期间,SUE存储访问管理器1906可针对每个SUE映射块产生头段。头段可包含例如用于收回和数据恢复活动的信息。SUE存储访问管理器1906可将压缩的SUE映射块与对应头段一起放置在存储装置传输块中。在一些实施例中,压缩的SUE映射块以及用户数据的封装的逻辑块被允许跨越两个或更多个存储装置传输块。
SUE存储访问管理器1906还可将整数数量的存储装置传输块与用于传送给存储装置的SUE页对齐。SUE存储访问管理器1906可将与SUE页对应的存储装置传输块传送给写缓冲器。
在一些实施例中,压缩的SUE映射块以及用户数据的封装的逻辑块被允许跨越两个或更多个SUE页。每个SUE页可对应于存储系统的单个存储装置。在SUE映射方案中,SUE页可以是编程或写操作的基本单位。
在读操作期间,SUE存储访问管理器1906可确定请求的用户数据的位置并且请求将请求的用户数据从关联的存储装置读取到读缓冲器。SUE存储访问管理器1906可将用户数据从读缓冲器传送给数据对齐单元1904。
作为SUE寻址方案的子功能或补充功能,数据压缩管理器1908可对用户数据执行压缩算法。由数据压缩管理器1908执行的数据压缩功能可帮助抵消导致写放大的固有系统因素。
卷映射引擎1910可协调SUE地址映射功能。卷映射引擎1910可维护记录用户数据的当前位置的用户区域映射表。用户区域映射表可包括将逻辑块地址与存储的用户数据的SUE地址关联的映射信息。用户区域映射表可被存储在关联的存储装置的逻辑地寻址的系统区域中。
在写操作期间,卷映射引擎1910可基于针对写入的用户数据而从SUE存储访问管理器1906接收的新的或修改的SUE地址位置来更新用户区域映射表。
在读操作期间,卷映射引擎1910可基于请求的逻辑块地址在用户区域映射表中查找请求的用户数据的SUE地址位置,并且将SUE地址位置提供给SUE存储访问管理器1906。
卷映射引擎1910可将用户数据组织成SUE页、SUE块、元页和元块。SUE块可映射单个存储装置上的许多物理块。在一些实施例中,映射到相同SUE块的物理块可分别位于存储装置的不同芯片上。可在存储装置级将映射到相同SUE块的所有物理块作为单元来擦除和管理。因此,SUE块可对应于针对收回和自由空间管理而在各个芯片上共同管理的物理块的组。等价地,与SUE块对应的芯片上的各个物理块的组可作为存储介质的单元被管理。
每个SUE块可包括许多SUE页,每个SUE页可与被映射到SUE块的各个物理块的物理页对齐。位于存储系统中所包括的所有存储装置上的各个SUE块的对应SUE页可被映射到元页。类似地,位于存储系统中所包括的所有存储装置上的对应SUE块可被映射到元块。
可针对用户数据的元块执行在多模存储管理系统1902级的存储介质管理功能(例如,收回和自由空间管理)。因此,可针对在存储系统中所包括的每个存储装置中共同管理的对应物理块的组执行在多模存储管理系统1902级的存储介质管理功能。
可针对用户数据的元页执行编程操作和读操作。因此,可针对在存储系统中所包括的每个非易失性存储装置中共同管理的对应物理页的组执行编程操作和读操作。
因此,按照将物理存储区域的显著组织或代表性几何形状暴露给多模存储管理系统1902的方式,存储系统中所包括的存储装置可被虚拟化。在单个存储装置中所包括的各个芯片上被共同管理的物理块的组可被提供给多模存储管理系统1902作为SUE块,并且在位于存储系统中所包括的所有存储装置上的各个芯片上被共同管理的物理块的对应的组可被提供给多模存储管理系统1902作为元块。
类似地,在单个存储装置中所包括的各个芯片上被共同编程的物理页的组可被提供给多模存储管理系统1902作为SUE页,并且在位于存储系统中所包括的所有存储装置上的各个芯片上被共同编程的物理页的组可被提供给多模存储管理系统1902作为元页。
缓冲管理器1912可管理一批读缓冲器和写缓冲器。在写操作期间,缓冲管理器1912可在写缓冲器中积累从SUE存储访问管理器1906接收的存储装置传输块,直至在通过存储阵列管理器1918将用户数据分别发送给单个存储装置作为SUE页之前已积累用户数据的近似完整的元页。
在读操作期间,缓冲管理器1912可提供读缓冲器以支持读高速缓存功能。从存储阵列管理器1918接收作为存储装置传输块的用户数据的SUE页可被保存在读缓冲器中,直至被转发给SUE存储访问管理器1906。
元块管理器1914可跟踪在存储装置的用户区域中定义的单个元块的当前状态,例如,已擦除、有效、关闭、收回或擦除。当前状态可被存储在元块信息表中,元块信息表可被存储在存储器中并且在存储装置的系统区域中备份。元块管理器1914还可保持当前在特定状态下的元块的对应列表(诸如,已擦除列表、收回列表和擦除列表)。元块管理器1914可选择用于提交给SUE存储访问管理器1906的特定元块以用于收回活动。
收回管理器1916可服务来自元块管理器1914的收回请求以从指定元块恢复有效用户数据并且将该有效用户数据重新定位到其他元块。收回管理器1916可请求擦除并且收回与指定元块对应的物理存储单元以在存储装置的用户区域中提供自由空间。
存储阵列管理器1918可提供与存储装置的用户区域的SUE接口以及与存储装置的系统区域的逻辑接口。存储阵列管理器1918可提供数据保护功能(诸如,RAID条带化(striping)和奇偶校验)。例如,在一些实施例中,存储装置传输块可被用作RAID元素,并且RAID条带可包括位于元页中的所有SUE页上的存储装置传输块。因此,如果存储系统中的单个存储装置发生故障,则存储阵列管理器1918能够使用反向奇偶计算从故障的存储装置恢复数据。
逻辑存储访问管理器1920可使用逻辑寻址方法提供系统数据读和写功能。逻辑存储访问管理器1920可存储和检索关于用户数据的元数据,包括用户区域映射表、元块信息表、卷表以及存储系统文件、日志文件等。
关于存储在用户区域中的用户数据,单个非易失性存储装置可负责一些存储介质管理功能(例如,读重试、故障物理块映射、纠错码(ECC)、高级增量阶跃脉冲编程(ISPP)等)。关于存储在系统区域中的系统数据,单个非易失性存储装置可负责所有存储介质管理功能(例如,收回、耗损均衡、读和写高速缓存、读重试、故障物理块映射、纠错码(ECC)、高级增量阶跃脉冲编程(ISPP)等)。
现在参照图20,示出采用SUE寻址方案以便允许存储系统对存储装置中的逻辑和SUE存储空间进行寻址的另一示例性多模存储管理系统2002或混合映射系统(HMS)。
多模存储管理系统2002可用作负责关于分布在存储系统中所包括的多个存储装置上的用户区域的非易失性存储介质管理的全局闪存转换层(GFTL)。多模存储管理系统2002可执行非易失性存储介质访问功能、用于将主机应用逻辑地址空间元素映射到与物理非易失性存储位置对齐的SUE地址空间数据结构的地址映射功能、收回和耗损均衡功能。
多模存储管理系统2002可包括数据对齐单元(DAU)2004、用户区域访问管理器(UAAM)2006、用户区域映射引擎(UAME)2008、缓冲管理器(BM)2010、系统区域访问管理器(SAAM)2012、元块管理器(MBM)2014、元块信息管理器(MBI)2016、存储装置控制管理器(SCM)2018、存储装置访问管理器(SAM)2020、全局状态管理器(GSM)2022和全局错误管理器(GEM)2024。多模存储管理系统2002可通信地连接到系统状态管理器2026、系统记录和统计管理器2028、目标装置2030和多个非易失性存储(NVM)装置2032。
全局错误管理器2024可管理在包括多模存储管理系统2002的存储系统中发生的全局错误。系统状态管理器2026可管理多模存储管理系统2002的状态(例如,操作状况)。系统记录和统计管理器2028可基于包括多模存储管理系统2002的存储系统的操作提供系统日志/统计数据。非易失性存储装置2032可包括广泛地使用的任何种类的非易失性存储器。目标装置2030可以是读/写操作的目标的另一存储装置。
数据对齐单元(DAU)2004可从目标装置2030接收逻辑地寻址的介质访问命令(例如,读、写和去映射命令)。数据对齐单元2004可接收逻辑块寻址(LBA)缓冲列表作为输入。在写操作期间,数据对齐单元2004可将从目标装置2030接收的数据的逻辑块组合成SUE映射块或混合映射块(HMB)。例如,在一些实施例中,整数数量的逻辑块可被分组以形成SUE映射块。
数据对齐单元2004可合并从目标装置2030到达的对齐的和未对齐的用户数据通信量,针对未对齐的写通信量执行读/修改/写操作以便使数据与用于将逻辑地址映射到物理地址(SUE映射块)的单元对齐。数据对齐单元2004可将用户数据放置在SUE映射块对齐缓冲列表中。在各种实施例中,SUE映射块可包含固定量的数据(诸如,4KB、8KB、16KB等)。
在读操作期间,数据对齐单元2004可从目标装置2030接收读命令,并且将读请求传递给用户区域访问管理器2006。数据对齐单元2004可从用户区域访问管理器2006接收请求的用户数据,并且将请求的用户数据传送给目标装置2030。
图21是示出根据本发明的实施例的可由多模存储管理系统实现的用户区域访问管理器(UAAM)的示意图。参照图21,用户区域访问管理器(UAAM)2006可包括读管理器(RM)2102、写管理器(WM)2104、数据压缩管理器(DC)2106、数据解压管理器(DD)2108、收回管理器(RC)2110、自由空间账号管理器(FSA)2112、流程控制管理器(FC)2114和服务质量管理器(QoS)2116。
读管理器(RM)2102可从数据对齐单元2004接收读请求,并且服务该读请求。读管理器2102可从用户区域映射引擎(UAME)2008请求相关的映射信息。读管理器2102可将读请求发布到存储装置访问管理器2020。在读操作期间,读管理器2102可从缓冲管理器2010请求读缓冲器中的用户数据的释放。读管理器2102可将关于读请求的用户数据的解压请求发布到数据解压管理器2108。
写管理器(WM)2104可从数据对齐单元2004接收写请求。在写操作期间,写管理器2104可在SUE映射块流上产生元数据头,并且产生关于用户数据的SUE寻址的针对用户区域映射引擎2008的映射信息。写管理器2104可将压缩请求发布到数据压缩管理器2106以调度用户数据压缩命令,并且将写请求发布到存储装置访问管理器2020。写管理器2104可从缓冲管理器2010请求写缓冲器中的用户数据的释放。当写数据的当前元块已变满时,写管理器2104可请求元块管理器(MBM)2014打开新的有效元块。
数据压缩管理器(DC)2106可从写管理器2104接收压缩请求,并且服务该压缩请求。在一些实施例中,数据压缩管理器2106可对SUE映射块中的用户数据实施数据压缩算法。在一些其它实施例中,数据压缩管理器2106可向外部压缩单元(未示出)调度数据压缩任务。
数据解压管理器(DD)2108可从读管理器2102接收解压请求,并且服务该解压请求。在一些实施例中,数据解压管理器2108可对SUE映射块中的用户数据实施数据解压算法。在一些其他实施例中,数据解压管理器2108可向外部解压单元(未示出)调度数据解压任务。
收回管理器(RC)2110可从元块管理器2014接收收回请求,并且服务该收回请求以从指定元块恢复有效数据来收回自由空间。收回管理器2110可从用户区域映射引擎2008请求相关的映射信息,并且将关于指定元块的读请求发布到读管理器2102。收回管理器2110可解析存储装置读数据流中的附随SUE映射块的元数据头,并且将关于指定元块中的剩余的所有有效数据的写请求发布到写管理器2104。收回管理器2110还可服务来自存储装置控制管理器(SCM)2018的请求以收回部分元块数据。
自由空间账号管理器(FSA)2112可在写操作期间从写管理器2104接收映射信息,并且产生关于存储在元块中的过期用户数据的自由空间信息。自由空间账号管理器2112可将自由空间信息发布到元块信息管理器2016以更新对应元块信息表条目。
流程控制管理器(FC)2114可监测系统资源(诸如,读/写缓冲器、压缩缓冲器、存储总线和其他队列深度等)。如果系统级资源供应下降至低于预设界限,则流程控制管理器2114可在服务质量管理器2116中重置节流水平。在一些实施例中,可使用系统管理员命令来建立需要的水平的资源供应。流程控制管理器2114可为系统管理员提供可被用于接口级节流的统计数据。
服务质量管理器(QoS)2116可基于系统资源供应水平和延时测量来定义服务质量策略。服务质量管理器2116可实现多个队列以服务不同的服务质量策略池。关于基于延时的策略,服务质量管理器2116可在队列条目上实现时间戳。服务质量管理器2116可监测各种队列参数,并且选择请求以确保不违反策略。按照流程控制管理器2114的请求,服务质量管理器2116可对基于供应的策略队列上的通信量进行节流。
图22是示出根据本发明的实施例的可由多模存储管理系统实现的用户区域映射引擎(UAME)的示意图。参照图22,用户区域映射引擎(UAME)2008可包括卷管理器(VM)2202、映射页读管理器(MPRM)2204、映射页写管理器(MPWM)2206和映射页高速缓存管理器(MPCM)2208。
卷管理器(VM)2202可提供服务以创建、销毁和管理卷,并且处理多个供应策略。卷管理器2202可在可被存储在存储器中并且在系统区域中备份的卷表中保持相关信息,并且可为卷表中的条目提供访问服务。卷管理器2202可使用系统区域访问管理器2012来备份和恢复卷表。
当由映射页高速缓存管理器2208检测到映射页未命中时,映射页读管理器(MPRM)2204可接收并服务针对不存在的映射页的从映射页高速缓存管理器2208提供的请求。映射页写管理器(MPWM)2206可接收并服务针对映射页收回的来自映射页高速缓存管理器2208的请求。
映射页高速缓存管理器(MPCM)2208可服务从读管理器2102和收回管理器2110提供的映射条目信息请求以及由写管理器2104提供的映射条目更新。当检测到映射页未命中时,映射页高速缓存管理器2208可从映射页读管理器2204请求该不存在的映射页。映射页高速缓存管理器2208可从映射页写管理器2206请求映射页收回。
缓冲管理器(BM)2010可管理一批读缓冲器和写缓冲器。在写操作期间,缓冲管理器2010可分配和释放存储装置传输块以在写缓冲器中积累从写管理器2104接收的用户数据。缓冲管理器2010可在已积累用户数据的近似完整的元页时从写管理器2104接收对写缓冲器中的用户数据的释放的请求,并且将用户数据转发给存储装置访问管理器2020。
在读操作期间,缓冲管理器2010可分配和释放读缓冲器中的存储装置传输块以支持读高速缓存功能。从存储装置访问管理器2020接收的作为存储装置传输块的用户数据的SUE页可最初被保存在读缓冲器中。缓冲管理器2010可从读管理器2102接收对读缓冲器中的用户数据的释放的请求,并且缓冲管理器2010可将存储装置传输块转发给读管理器2102。
系统区域访问管理器(SAAM)2012可服务关于对存储在存储系统中所包括的存储装置的系统区域中的系统数据的访问的请求。系统区域访问管理器2012可接收和服务来自卷管理器2202和元块信息管理器2016的请求以分别备份和恢复卷表和元块信息表。系统区域访问管理器2012可接收和服务来自映射页写管理器2206、映射页读管理器2204和映射页高速缓存管理器2208的请求以访问用户区域映射表。
图23是示出根据本发明的实施例的可由多模存储管理系统实现的元块管理器(MBM)的示意图。参照图23,元块管理器2014可包括收回元块拾取器(RCMBP)2302和元块状态管理器(MBSM)2304。
收回元块拾取器(RCMBP)2302可监测关于用户区域元块的参数(诸如,擦除计数、过期数据水平、停延时间等)。基于监测的参数,收回元块拾取器2302可针对收回或垃圾回收来选择元块。收回元块拾取器2302可实现各种耗损均衡策略。例如,收回元块拾取器2302可尝试使元块擦除计数保持在优选值范围内,并且尝试将相对动态(热)和相对静态(冷)的数据隔离在分开的元块中。
元块状态管理器(MBSM)2304可跟踪用户区域元块的当前状态(例如,有效、关闭、擦除、已擦除、收回或垃圾回收)。元块状态管理器2304可通过更新元块信息表来通过各种状态转换元块。元块状态管理器2304还可保持特定状态下的元块的各种列表,例如,已擦除元块列表、收回元块列表和擦除元块列表。元块状态管理器2304可监测已擦除元块列表以确定准备好被收回(垃圾回收)的单个元块。
元块信息管理器(MBI)2016可保持元块信息表。元块信息管理器2016可针对其他模块提供对元块信息表中的条目的访问服务。元块信息管理器2016可向系统区域访问管理器2012发送请求以备份和恢复元块信息表。
图24是示出根据本发明的实施例的可由多模存储管理系统实现的存储装置控制管理器(SCM)的示意图。参照图24,存储装置控制管理器(SCM)2018或固态装置(SSD)控制管理器(SCM)可包括存储装置记录和统计管理器(SLS)2402、S-Block擦除引擎(SBEE)2404和存储装置错误管理器(SEM)2406。
存储装置记录和统计管理器(SLS)2402可保持存储装置访问历史的日志。
S-Block擦除引擎(SBEE)2404可通过元块管理器2014从收回管理器2110接收擦除请求,并且管理擦除处理。S-Block擦除引擎2404可向存储装置访问管理器2020发送S-Block擦除请求。
存储装置错误管理器(SEM)2406可向收回管理器2110发送请求以收回部分元块数据。
图25是示出根据本发明的实施例的可由多模存储管理系统实现的存储装置访问管理器(SAM)的示意图。参照图25,存储装置访问管理器(SAM)2020可包括逻辑访问管理器(SLA)2502、RAID管理器(RAID)2504、读查找引擎(RLE)2506和存储初始化管理器(SI)2508。
读查找引擎2506可提供/管理读操作查找。存储初始化管理器2508可管理存储系统的初始化操作。
逻辑访问管理器(SLA)2502或SSD逻辑访问管理器可提供针对存储装置的系统区域中的系统数据的访问服务。逻辑访问管理器2502可使用各种逻辑块寻址对存储装置的系统区域中的系统数据进行寻址。逻辑访问管理器2502可使用标准NVM Express(NVMe)或非易失性存储器主机控制器接口规范(NVMHCI),并且可命令访问存储系统中所包括的存储装置或固态驱动器(SSD)。
关于用户数据,RAID管理器(RAID)2504可为存储系统中所包括的多个存储装置的阵列提供存储管理(包括数据恢复功能)。因此,存储系统中所包括的单个存储装置可不针对用户数据执行芯片级RAID功能。RAID管理器2504可实现各种存储管理和数据恢复方法。在一些实施例中,RAID管理器2504还可执行在本公开中描述的新的存储管理和数据恢复方法。
RAID管理器2504可提供与存储装置的用户区域的SUE接口以及与存储装置的系统区域的逻辑接口。RAID管理器2504可提供数据保护功能(诸如,RAID条带化和奇偶校验)。例如,在一些实施例中,存储装置传输块可被用作RAID元素,并且RAID条带可包括位于元页中的所有SUE页上的存储装置传输块。因此,如果存储系统中的单个存储装置发生故障,则RAID管理器2504能够使用反向奇偶计算从故障的存储装置恢复数据。
图26是示出根据本发明的实施例的可由多模存储管理系统实现的全局状态管理器(GSM)的示意图。参照图26,全局状态管理器(GSM)2022可包括电源故障管理器(PFM)2602以及错误和崩溃管理器(PFCM)2604。
电源故障管理器2602可管理与多模存储管理系统2002的电源故障关联的问题。错误和崩溃管理器2604可管理多模存储管理系统2002中发生的错误/崩溃问题。
图18、图19和图20的多模存储管理系统1802、1902和2002的功能可由图16的存储系统1602实现。在替代实施例中,多模存储管理系统1802、1902和2002的功能可由普通计算装置实现或由专用硬件实现。
提供的多模方案包括促进信息的有效的和高效率的存储的各种特征和特性。所述特征和特性可改进与性能关联的许多不同方面。在一些实施例中,描述的分割方案的灵活性允许实现相对快的速度和可管理的复杂性。相对大量的用户数据可被存储在能够实现针对用户数据的非常快的存储和管理操作的SUE地址空间中。而相对少量的元数据可被存储在允许存储系统利用用于减小复杂性的元数据的提取性质的逻辑地寻址的区域中。
另外,增加相对较小的元数据区域的预留空间的灵活性给予帮助加快元数据存储操作并补偿原本将会由于复杂性的增加而发生的速度的减小的更大比例的预留空间影响。与其他存储系统相比,这允许更好的总体分配和更好的预留空间资源的影响。通过允许在两个分区之间重新指定或重新分配不同存储区域的块,该灵活性还可促进改进的生命周期保护。存储在区域中的数据的性质(例如,类型)可指示在该区域中一种类型的数据比另一类型的数据被更少地写入/擦除(例如,与用户数据相比,大多数元数据没有大的改变),并且一个分区中的物理块可被重新指定给另一分区以平滑特定区域上的耗损。通过将功率循环责任上移至系统级,该灵活性还允许功率循环改进。
根据对计算机存储器内的数据位的操作的过程、逻辑块、处理和其他符号表示提供详细描述的一些部分。这些描述和表示是由数据处理领域技术人员通常用于有效地将他们的工作的实质传达给其他本领域技术人员的方式。过程、逻辑块或处理在这里通常被设想为导致期望的结果的前后照应的步骤或指令的序列。所述步骤包括物理量的物理操纵。通常(但不是必要),这些物理量采取能够被存储、传送、组合、比较和在计算机系统中被另外操纵的电、磁、光或量子信号的形式。主要由于常用的原因,已证明将这些信号称为位、值、元素、符号、字符、项、数字等时常是比较方便的。
然而,应该记住的是,所有的这些和类似术语与合适的物理量关联并且仅是应用于这些物理量的方便的标签。除非另外具体地指出,否则从下面的讨论清楚可知,应该理解,贯穿本申请,使用诸如“处理”、“计算”、“确定”、“显示”等的术语的讨论表示操纵和变换被表示为物理(例如,电子)量的数据的计算机系统或类似处理装置(例如,电气、光学或量子计算装置)的动作和处理。所述术语表示将计算机系统的组件(例如,寄存器、存储器、其他这种信息存储、传输或显示装置)内的物理量操纵或变换成被类似地表示为其他组件内的物理量的其他数据的处理装置的动作和处理。
应该仅从概念角度理解每个概念示图中示出的配置。为了帮助理解本公开,在每个概念示图中示出的每个组件的形式、结构和大小已被夸大或减小。实际实现的配置可具有与在每个概念示图中示出的物理形状不同的物理形状。每个概念示图并不意图限制组件的物理形状。
提供在每个方框图中示出的装置配置来帮助理解本公开。每个方框可根据功能由更小的方框形成。替代地,多个方框可根据功能而形成更大的方框。也就是说,本公开的精神或范围不限于方框图中示出的配置。
以上,已基于一些示例实施例描述了本公开。然而,可根据本领域的性质利用与包括本公开的主题的以上示例实施例不同的方式实现本公开的目的。因此,应该理解,以上示例实施例处于描述性和说明性观点,而非限制性观点。也就是说,包括本公开的主题并且可实现本公开的目标的精神或范围应该被包括在本公开的发明构思的精神或范围内。
因此,不脱离本公开的范围或精神的的修改的或改变的技术构思被包括在权利要求的范围中。本公开的范围不限于以上示例实施例。

Claims (20)

1.一种存储系统,包括:
多个存储装置,每个存储装置包括处理基本类型接口的第一分区和处理选择性底层暴露SUE接口的第二分区;和
多模存储管理系统,指引信息向所述多个存储装置传送,
其中,暴露第二分区的被选择的底层方面,以及
其中,多模存储管理系统包括经由SUE接口和第二分区的被选择的底层方面指引第二分区的活动的控制器,
其中,控制器被配置为:将与用户数据关联的多个逻辑地址映射到多个选择性底层暴露SUE地址,使得多个不同的逻辑地址被映射到每个SUE地址,
其中,每个SUE地址指向第二分区中包括的多个芯片中的不同的芯片,每个芯片包括多个物理块。
2.如权利要求1所述的存储系统,其中,第二分区的被选择的底层方面包括底层物理地址空间的代表性几何形状,
其中,基本类型接口包括逻辑接口,
其中,所述多个存储装置包括固态驱动器,
其中,所述多个存储装置包括卷。
3.如权利要求1或2所述的存储系统,其中,多模存储管理系统组合多个逻辑地寻址的块以创建一个或多个SUE可寻址单元。
4.如权利要求3所述的存储系统,其中,所述多个存储装置包括与第一SUE可寻址单元的第一尺寸关联的第一卷和与第二SUE可寻址单元的第二尺寸关联的第二卷,以及
其中,第一SUE可寻址单元的第一尺寸不同于第二SUE可寻址单元的第二尺寸。
5.如权利要求3所述的存储系统,其中,所述多个存储装置包括多个卷,以及
其中,所述多个卷中的第一卷和第二卷与相同尺寸的SUE可寻址单元关联。
6.一种用于管理与存储系统关联的存储装置的阵列中的存储介质的方法,所述方法包括:
利用处理器将用户数据映射到对应于与所述存储系统关联的存储装置的所述阵列中的物理存储区域的代表性几何形状的选择性底层暴露SUE地址空间中,
其中,将用户数据映射到SUE地址空间中的步骤包括:将与用户数据关联的多个逻辑地址映射到SUE地址空间中的多个选择性底层暴露SUE地址,使得多个不同的逻辑地址被映射到每个SUE地址,
其中,所述阵列包括多个存储装置,每个存储装置包括处理基本类型接口的第一分区和处理选择性底层暴露SUE接口的第二分区,
其中,每个SUE地址指向第二分区中包括的多个芯片中的不同的芯片,每个芯片包括多个物理块。
7.如权利要求6所述的方法,其中,将用户数据映射到SUE地址空间中的步骤包括将与用户数据关联的所述多个逻辑地址映射到SUE地址空间中的地址的SUE块中,
其中,所述SUE块对应于在与所述存储系统关联的单个存储装置中作为单元被共同管理的存储单元的多个物理块。
8.如权利要求7所述的方法,其中,将用户数据映射到SUE地址空间中的步骤还包括将与用户数据关联的所述多个逻辑地址的子集映射到所述SUE块中的地址的SUE页中,
其中,所述SUE页对应于存储单元的所述多个物理块中的每个物理块中的物理页。
9.如权利要求6所述的方法,其中,将用户数据映射到SUE地址空间中的步骤包括将与用户数据关联的多个逻辑地址映射到SUE地址空间中的地址的元块中,
其中,所述元块对应于在所述阵列中的每个存储装置中作为单元被共同管理的存储单元的多个物理块,
其中,每个存储装置中的存储单元的所述多个物理块对应于SUE地址空间中的地址的独立的SUE块。
10.如权利要求9所述的方法,其中,将用户数据映射到SUE地址空间中的步骤还包括将与用户数据关联的所述多个逻辑地址的子集映射到所述元块中的地址的元页中,
其中,所述元页对应于所述独立的SUE块的SUE页。
11.如权利要求6-10中的任意一项所述的方法,还包括:
保持存储用户数据和SUE地址空间之间的映射关系的表;
管理SUE地址空间中的自由空间,
其中,管理SUE地址空间中的自由空间的步骤包括基于与SUE地址空间中的地址的元块关联的有效数据的量选择SUE地址空间中的地址的元块以收回,
其中,所述元块对应于在所述阵列中的每个存储装置中作为单元被共同管理的存储单元的多个物理块。
12.如权利要求11所述的方法,其中,管理SUE地址空间中的自由空间的步骤还包括:
重新定位与所述元块关联的有效数据;
请求擦除与所述元块对应的存储单元的所述多个物理块;以及
将所述元块指定为自由空间。
13.如权利要求12所述的方法,其中,管理SUE地址空间中的自由空间的步骤还包括保持当前被指定为自由空间的元块的列表。
14.如权利要求12或13所述的方法,还包括:
访问头以识别逻辑地寻址的块;以及
确定识别的逻辑地寻址的块的逻辑块地址是否与指针关联。
15.如权利要求6-10中的任意一项所述的方法,还包括:存储与SUE地址空间中的地址的元页对应的用户数据,
其中,所述元页对应于在所述阵列中的每个存储装置中作为单元被共同管理的存储单元的多个物理块中的每个物理块中的物理页。
16.如权利要求15所述的方法,还包括:对与所述元页对应的用户数据执行压缩算法。
17.一种用于管理与存储系统关联的存储装置的阵列中的存储介质的系统,所述系统包括:
存储器,存储机器指令;和
处理器,执行机器指令以便将用户数据映射到选择性底层暴露SUE地址空间中,
其中,SUE地址空间对应于与所述存储系统关联的存储装置的所述阵列中的物理存储区域的代表性几何形状,
其中,处理器还执行机器指令以便:将与用户数据关联的多个逻辑地址映射到SUE地址空间中的多个选择性底层暴露SUE地址,使得多个不同的逻辑地址被映射到每个SUE地址,
其中,所述阵列包括多个存储装置,每个存储装置包括处理基本类型接口的第一分区和处理选择性底层暴露SUE接口的第二分区,
其中,每个SUE地址指向第二分区中包括的多个芯片中的不同的芯片,每个芯片包括多个物理块。
18.如权利要求17所述的系统,其中,处理器还执行机器指令以便:
将与在所述阵列中的每个存储装置中作为单元被共同管理的存储单元的多个物理块所对应的用户数据关联的多个逻辑地址映射到SUE地址空间中的SUE地址的元块中;
将与在所述阵列中的每个单独的存储装置中作为单元被共同管理的存储单元的所述多个物理块对应的SUE地址的每个子集映射到与所述元块关联的SUE地址的SUE块中;
将与在所述阵列中的每个单独的存储装置中作为单元被共同管理的存储单元的所述多个物理块中的每个物理块中的各个物理页对应的SUE地址的每个子集映射到与每个SUE块关联的SUE地址的各个SUE页中;以及
将与每个SUE块的各个SUE页对应的SUE地址的每个子集映射到与所述元块关联的地址的元页中。
19.如权利要求17或18所述的系统,其中,处理器还执行机器指令以便保持存储用户数据和SUE地址空间之间的映射关系的表,
其中,所述表被存储在存储装置的逻辑地址空间中。
20.如权利要求17或18所述的系统,其中,处理器还执行机器指令以便:
基于与SUE地址空间中的地址的元块关联的有效数据的量来选择SUE地址空间中的地址的元块以收回,所述元块对应于在所述阵列中的每个存储装置中作为单元被共同管理的存储单元的多个物理块;
重新定位与所述元块关联的有效数据;
请求擦除与所述元块对应的存储单元的所述多个物理块;以及
将所述元块指定为自由空间。
CN201610685502.1A 2015-11-13 2016-08-18 多模存储管理系统 Active CN106708423B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/941,512 US9990304B2 (en) 2015-11-13 2015-11-13 Multimode storage management system
US14/941,512 2015-11-13

Publications (2)

Publication Number Publication Date
CN106708423A CN106708423A (zh) 2017-05-24
CN106708423B true CN106708423B (zh) 2021-08-17

Family

ID=56235655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610685502.1A Active CN106708423B (zh) 2015-11-13 2016-08-18 多模存储管理系统

Country Status (6)

Country Link
US (1) US9990304B2 (zh)
EP (1) EP3168734A1 (zh)
JP (2) JP2017091524A (zh)
KR (1) KR102586805B1 (zh)
CN (1) CN106708423B (zh)
TW (1) TWI716416B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959108B (zh) 2017-05-26 2021-08-24 上海宝存信息科技有限公司 固态硬盘访问方法以及使用该方法的装置
JP6785205B2 (ja) 2017-09-21 2020-11-18 キオクシア株式会社 メモリシステムおよび制御方法
US10437476B2 (en) * 2017-10-23 2019-10-08 Micron Technology, Inc. Namespaces allocation in non-volatile memory devices
JP6982468B2 (ja) 2017-10-27 2021-12-17 キオクシア株式会社 メモリシステムおよび制御方法
JP2019079464A (ja) * 2017-10-27 2019-05-23 東芝メモリ株式会社 メモリシステムおよび制御方法
US11580034B2 (en) 2017-11-16 2023-02-14 Micron Technology, Inc. Namespace encryption in non-volatile memory devices
US11520696B2 (en) * 2018-06-28 2022-12-06 Seagate Technology Llc Segregating map data among different die sets in a non-volatile memory
KR102596964B1 (ko) * 2018-07-31 2023-11-03 에스케이하이닉스 주식회사 맵 캐시 버퍼 크기를 가변시킬 수 있는 데이터 저장 장치
CN109688117B (zh) * 2018-12-11 2021-10-15 国家电网公司信息通信分公司 一种大容量ip地址拦截方法和设备
KR102214697B1 (ko) * 2019-04-17 2021-02-10 주식회사 티맥스티베로 데이터베이스 관리 시스템에서 데이터 저장을 위한 공간 관리를 제공하는 컴퓨터 프로그램
CN111951845B (zh) * 2019-05-15 2022-06-03 上海磁宇信息科技有限公司 一种分级管理冗余存储的mram芯片
US11561713B2 (en) * 2021-03-11 2023-01-24 Western Digital Technologies, Inc. Simplified high capacity die and block management
US20230030168A1 (en) * 2021-07-27 2023-02-02 Dell Products L.P. Protection of i/o paths against network partitioning and component failures in nvme-of environments
TWI820994B (zh) * 2022-11-01 2023-11-01 大陸商星宸科技股份有限公司 指令壓縮方法、指令解壓縮方法及流程壓縮方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101604226A (zh) * 2009-07-14 2009-12-16 浪潮电子信息产业股份有限公司 一种基于虚拟raid构建动态缓存池提高存储系统性能的方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658528B2 (en) 2001-07-30 2003-12-02 International Business Machines Corporation System and method for improving file system transfer through the use of an intelligent geometry engine
US6775751B2 (en) * 2002-08-06 2004-08-10 International Business Machines Corporation System and method for using a compressed main memory based on degree of compressibility
JP2005100262A (ja) * 2003-09-26 2005-04-14 Seiko Epson Corp メモリ管理装置およびメモリ管理プログラム、並びにメモリ管理方法
WO2005124530A2 (en) 2004-06-21 2005-12-29 Kabushiki Kaisha Toshiba Method for controlling memory card and method for controlling nonvolatile semiconductor memory
US7624239B2 (en) * 2005-11-14 2009-11-24 Sandisk Corporation Methods for the management of erase operations in non-volatile memories
JP4362549B1 (ja) * 2006-08-04 2009-11-11 サンディスク コーポレイション 段階的ガーベッジコレクション
JP4895718B2 (ja) * 2006-08-14 2012-03-14 株式会社リコー 画像形成装置、データ復旧方法および記録媒体
KR100809320B1 (ko) 2006-09-27 2008-03-05 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑정보 관리 장치 및 방법
US7685378B2 (en) * 2007-02-15 2010-03-23 Hitachi, Ltd. Methods and apparatus for adjusting a journal area for continuous data protection
JPWO2009153982A1 (ja) 2008-06-20 2011-11-24 パナソニック株式会社 複数区分型不揮発性記憶装置およびシステム
US8094500B2 (en) 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
JP5325637B2 (ja) * 2009-04-01 2013-10-23 株式会社アイ・オー・データ機器 情報処理プログラムおよび情報処理装置
KR20110041843A (ko) * 2009-10-16 2011-04-22 엘지전자 주식회사 하이브리드 저장장치 및 그 동작방법
US9134918B2 (en) 2009-12-31 2015-09-15 Sandisk Technologies Inc. Physical compression of data with flat or systematic pattern
WO2012051600A2 (en) 2010-10-15 2012-04-19 Kyquang Son File system-aware solid-state storage management system
US20120297121A1 (en) * 2011-05-17 2012-11-22 Sergey Anatolievich Gorobets Non-Volatile Memory and Method with Small Logical Groups Distributed Among Active SLC and MLC Memory Partitions
US9176864B2 (en) * 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
KR101356470B1 (ko) * 2011-05-26 2014-01-28 에스코어 주식회사 플래시 파일 시스템
WO2013046464A1 (ja) 2011-09-30 2013-04-04 株式会社日立製作所 不揮発半導体記憶媒体を有するストレージシステム
US8775904B2 (en) * 2011-12-07 2014-07-08 International Business Machines Corporation Efficient storage of meta-bits within a system memory
US8639669B1 (en) 2011-12-22 2014-01-28 Emc Corporation Method and apparatus for determining optimal chunk sizes of a deduplicated storage system
KR20130096881A (ko) * 2012-02-23 2013-09-02 삼성전자주식회사 플래시 메모리 장치
US8954694B2 (en) 2012-11-15 2015-02-10 Western Digital Technologies, Inc. Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
JP2014123254A (ja) * 2012-12-21 2014-07-03 International Business Maschines Corporation メディア上のファイルをユーザ単位で分割管理する方法、プログラム、及びストレージ・システム
US9141532B2 (en) * 2012-12-26 2015-09-22 Western Digital Technologies, Inc. Dynamic overprovisioning for data storage systems
US20140195482A1 (en) * 2013-01-08 2014-07-10 Lyve Minds, Inc. Data synchronization in a storage network
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9141626B2 (en) * 2013-03-14 2015-09-22 Microsoft Technology Licensing, Llc Volume having tiers of different storage traits
US9804960B2 (en) 2013-03-14 2017-10-31 Western Digital Technologies, Inc. Overprovision capacity in a data storage device
US9727255B2 (en) 2013-07-19 2017-08-08 Hitachi, Ltd. Storage apparatus and storage control method
US9535628B2 (en) * 2013-10-10 2017-01-03 Apple Inc. Memory system with shared file system
US9727456B2 (en) * 2014-11-03 2017-08-08 Pavilion Data Systems, Inc. Scheduled garbage collection for solid state storage devices
US9626312B2 (en) 2015-07-17 2017-04-18 Sandisk Technologies Llc Storage region mapping for a data storage device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101604226A (zh) * 2009-07-14 2009-12-16 浪潮电子信息产业股份有限公司 一种基于虚拟raid构建动态缓存池提高存储系统性能的方法

Also Published As

Publication number Publication date
EP3168734A1 (en) 2017-05-17
JP7404442B2 (ja) 2023-12-25
JP2022111153A (ja) 2022-07-29
CN106708423A (zh) 2017-05-24
KR20170056411A (ko) 2017-05-23
KR102586805B1 (ko) 2023-10-11
TWI716416B (zh) 2021-01-21
JP2017091524A (ja) 2017-05-25
TW201723816A (zh) 2017-07-01
US20170139837A1 (en) 2017-05-18
US9990304B2 (en) 2018-06-05

Similar Documents

Publication Publication Date Title
CN106708424B (zh) 对用户数据执行选择性底层暴露映射的设备和方法
CN106708423B (zh) 多模存储管理系统
US11907569B1 (en) Storage deveice that garbage collects specific areas based on a host specified context
US9940028B2 (en) Multimode storage device
US9946642B2 (en) Distributed multimode storage management
US10222984B1 (en) Managing multi-granularity flash translation layers in solid state drives
US9170885B2 (en) Independent management of data and parity logical block addresses
US10997080B1 (en) Method and system for address table cache management based on correlation metric of first logical address and second logical address, wherein the correlation metric is incremented and decremented based on receive order of the first logical address and the second logical address
US11907123B2 (en) Flash memory garbage collection
KR20230166803A (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