CN107291634A - 存储设备中委托的介质转换层 - Google Patents

存储设备中委托的介质转换层 Download PDF

Info

Publication number
CN107291634A
CN107291634A CN201610496812.9A CN201610496812A CN107291634A CN 107291634 A CN107291634 A CN 107291634A CN 201610496812 A CN201610496812 A CN 201610496812A CN 107291634 A CN107291634 A CN 107291634A
Authority
CN
China
Prior art keywords
physical location
memory module
mapping
request
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610496812.9A
Other languages
English (en)
Other versions
CN107291634B (zh
Inventor
迈克尔·W.·夏皮罗
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.)
EMC Corp
Original Assignee
EMC Corp
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 EMC Corp filed Critical EMC Corp
Publication of CN107291634A publication Critical patent/CN107291634A/zh
Application granted granted Critical
Publication of CN107291634B publication Critical patent/CN107291634B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/1072Decentralised address translation, e.g. in distributed shared memory 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/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/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

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)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一般而言,本技术的实施例涉及将数据写入到存储设备和从中读取数据。更具体而言,本技术的实施例描述了在将具体转换活动委托给特定的存储介质装置的情况下,可以由其建立全局控制机制的方法和系统。

Description

存储设备中委托的介质转换层
技术领域
本发明涉及存储设备领域,尤其涉及由存储设备服务请求的方法以及存储设备。
背景技术
存储设备包括存储介质,并且提供使客户端能够将数据写入到存储介质并从中读取数据的机制。在一些常规实现中,逻辑到物理地址的转换层被包含在每个存储介质装置中。在其它的常规实现中,逻辑到物理地址的转换层通过全局控制机制跨所有存储介质装置被实现。
发明内容
本发明提出一种用于由存储设备服务请求的方法,包括:由存储设备中的控制模块分配存储设备中的存储池中的一组物理位置;由控制模块将与所述一组物理位置相关联的逻辑布局信息限定到可操作地连接到存储设备的客户端;由控制模块将第一映射发送到存储池中的第一存储模块,其中所述一组物理位置中的至少一个物理位置位于第一存储模块上;由第一存储模块从客户端接收第一请求,其中第一请求包括至少部分地基于逻辑布局信息的信息;及由第一存储模块利用第一映射服务第一请求。
本发明还提出另一种用于由存储设备服务请求的方法,包括:由存储设备中的控制模块分配存储设备中的存储池中的一组物理位置;由控制模块将与所述一组物理位置相关联的逻辑布局信息发送到可操作地连接到存储设备的客户端,其中逻辑布局信息与对象标识符(ID)相关联;由控制模块将第一映射发送到存储池中的第一存储模块,其中所述一组物理位置中的至少一个物理位置位于第一存储模块上,其中第一映射与映射标识符(ID)相关联;由控制模块将第二映射发送到存储池中的第二存储模块,其中所述一组物理位置中的至少一个物理位置位于第二存储模块上,其中第二映射与所述映射ID相关联;由第一存储模块从客户端接收包括逻辑地址的第一请求,其中逻辑地址包括对象ID和第一偏移;及由第一存储模块利用第一映射服务第一请求,其中第一请求是选自由读请求和写请求组成的组的一个请求,其中利用对象ID识别第一映射;由第二存储模块从客户端接收包括第二逻辑地址的第二请求,其中第二逻辑地址包括对象ID和第二偏移;及由第二存储模块利用第二映射服务第二请求,其中利用对象ID识别第二映射。
本发明还提出一种存储设备,包括:架构;存储池,其可操作地连接到架构并且包括多个物理存储模块,及控制模块,其可操作地连接到架构并且被编程为:分配存储池中的一组物理位置;利用架构将与所述一组物理位置相关联的逻辑布局信息发送到可操作地连接到存储设备的客户端;利用架构将映射发送到所述多个存储模块中的存储模块,其中所述一组物理位置中的至少一个物理位置位于存储模块上;存储模块,其被编程为:从架构接收来自客户端的请求,其中请求是选自由读请求和写请求组成的的组的一个请求;利用请求的至少一部分和存储模块中的对象描述符表获得映射;及利用映射服务请求。
附图说明
图1A和1B示出了根据本技术的一种或多种实施例的系统。
图2示出了根据本技术的一种或多种实施例的逻辑布局信息的表示。
图3-7示出了根据本技术的一种或多种实施例的流程图。
图8A-8G示出了根据本技术的一种或多种实施例的例子。
具体实施方式
现在将参考附图详细描述本技术的具体实施例。为了一致性,各个图中相同的元素用相同的标号表示。
在以下对本技术的实施例的详细描述中,阐述了各种具体细节,以便提供对本技术的更透彻理解。但是,对本领域普通技术人员将显然,本技术没有这些具体细节也可以被实践。在其它情况下,众所周知的特征没有被详细描述,以避免不必要地使描述复杂化。
贯穿本申请,序数词(例如,第一、第二、第三等)可以用作元素(即,本申请中的任何名词)的形容词。除非明确地公开,诸如通过术语“在…之前”、“在…之后”、“单个”以及其它这种术语的使用,否则序数词的使用并不暗示或建立元素的任何特定次序,也不将任何元素限制为只是单个元素。而是,使用序数词是为了在元素之间进行区分。作为例子,第一元素不同于第二元素,并且第一元素可以包含多于一个元素并且在元素的次序中在第二元素的后面(或前面)。
在以下图1A-8G的描述中,在本技术的各种实施例中关于图所描述的任何部件,可以等效于关于任何其它图所描述的一个或多个相同名称的部件。为简洁起见,这些部件的描述将不对每个图进行重复。因此,每个图的部件的每个实施例都通过引入被结合并且被假定为可选地存在于具有一个或多个相同名称的部件的每个其它图中。此外,根据本技术的各种实施例,图中的部件的任何描述应当被解释为可以作为关于在任何其它图中对应的相同名称部件所描述的实施例的附加、与其结合、或者代替其来实现的可选实施例。
一般而言,本技术的实施例涉及将数据写入到存储设备和从中读取数据。更具体而言,本技术的实施例描述了在将具体转换活动委托给特定的存储介质装置的情况下,可以由其建立全局控制机制的方法和系统。更具体而言,本技术的实施例针对提供委托的介质转换层(MTL)。特别地,本技术的实施例向客户端提供逻辑布局信息(例如,关于客户端可以向其写入数据或者客户端可以从其读取数据的存储池中的逻辑位置的信息)和向存储池内的存储模块提供一个或多个映射以将由客户端发出的读和写请求中的逻辑位置转换为存储池内的对应物理位置。
图1A和1B示出了根据本技术的一种或多种实施例的系统。参考图1A,该系统包括可操作地连接到存储设备(100)的一个或多个客户端(客户端A(160A)-客户端M(160M))。
在本技术的一种实施例中,客户端(160A-160M)可以是包括向存储设备(100)发出读请求和/或向存储设备(100)发出写请求的功能的任何类型的物理系统。虽然在图1A中没有示出,但是每个客户端(160A-160M)可以包括客户端处理器(未示出)、客户端存储器(未示出)、以及实现本技术的一种或多种实施例所需的任何其它软件和/或硬件。
在本技术的一种实施例中,客户端(160A-160M)被配置为执行包括文件系统的操作系统(OS)。文件系统提供用于在存储设备(100)中存储和从中检索文件的机制。更具体而言,文件系统包括功能来执行向存储设备(100)发出读请求和写请求所需的动作。文件系统也可以提供编程接口,以使得能够创建和删除文件、读取和写入文件、执行文件内搜索、创建和删除目录、管理目录内容,等等。此外,文件系统还提供创建和删除文件系统的管理接口。在本技术的一种实施例中,为了访问文件,操作系统(经由文件系统)通常提供文件操纵接口来进行每个文件的打开、关闭、读取和写入数据和/或操纵对应的元数据。在本技术的另一种实施例中,客户端被配置为执行用来访问存储设备的块驱动程序。在本技术的另一种实施例中,客户端被配置为执行使客户端能够访问存储设备的应用编程接口(API)。
在本技术的一种实施例中,客户端(160A-160M)与存储设备(100)的架构(fabric,140)接口,以与存储设备(100)进行通信,如下面进一步描述的。
在本技术的一种实施例中,存储设备(100)是包括诸如固态存储器的持久性储存器的系统,并且被配置为服务来自一个或多个客户端(160A-160M)的读请求和/或写请求。
根据本技术的一种或多种实施例,存储设备(100)包括组织成存储阵列(110)的一个或多个存储模块(120A-120N)、控制模块(150)、以及使(一个或多个)存储模块(120A-120N)与客户端(160A-160M)和控制模块(150)接口的架构(140)。这些部件中的每一个在下面进行描述。
根据本技术的实施例,存储阵列(110)容纳一个或多个存储模块(120A-120N)。存储阵列可以启用存储设备的模块化构造,其中存储模块可以根据需要或者期望被添加到存储设备(100)或者从中去除。根据本技术的实施例,存储模块(120)在下面参考图1B进行描述。
继续存储设备(100)的讨论,存储设备包括架构(140)。架构(140)可以利用以下协议中的一个或多个提供客户端(160A-160M)、(一个或多个)存储模块(120A-120N)以及控制模块(150)之间的物理连接性:外围部件互连(PCI)、PCI-高速(PCI-Express,PCIe)、PCI-扩展(PCI-eXtended,PCI-X)、非易失性存储器高速(NVMe)、PCI-高速架构上的非易失性存储器高速(NVMe)、以太网架构上的非易失性存储器高速(NVMe)、以及无限带宽架构上的非易失性存储器高速(NVMe)。本领域技术人员将理解,本技术不限于以上提到的协议。
此外,在本技术的一种或多种实施例中,存储设备(100)包括控制模块(150)。一般而言,控制模块(150)是可以被配置为执行管理任务的硬件模块,管理任务诸如分配和取消分配存储模块(120A-120N)中的区域,以及使已分配的存储器区域让客户端(160A-160M)可访问。在本技术的一种实施例中,这些功能(例如,在图3中描述的步骤中的一个或多个步骤)由控制模块(150)执行。
控制模块(150)与架构(140)接口,以便与(一个或多个)存储模块(120A-120N)和/或客户端(160A-160M)进行通信。控制模块可以支持以下通信标准中的一个或多个:PCI、PCIe、PCI-X、以太网(包括,但不限于,根据IEEE 802.3a-802.3bj定义的各种标准)、无限带宽、以及融合以太网(RoCE)上的远程直接存储器访问(RDMA)、或者与架构(140)接口所需的任何其它通信标准。
图1B示出了根据本技术的一种或多种实施例的存储模块。存储模块(120)包括持久性存储数据的固态存储器(122)。在本技术的一种实施例中,存储模块(120)的固态存储器(122)可以包括但不限于,自旋扭矩磁性RAM(ST-MRAM)、相变存储器(PCM)、NAND闪存和NOR闪存。此外,NAND闪存和NOR闪存可以包括单级单元(SLC)、多级单元(MLC)或三级单元(TLC)。通常,固态存储器(122)可以对应于具有有限数量的程序擦除周期的任何类型的存储器。在本技术的一种或多种实施例中,有限数量的程序擦除周期或写周期需要使用方法来避免向固态存储器的同一区域过度写入,以便防止数据丢失,如下面详细描述的。本领域技术人员将理解,本技术不限于固态存储器;而是,本技术的实施例可以利用任何类型的持久性存储器来实现。
继续在图1B中示出的存储模块(120)的讨论,根据本技术的一种或多种实施例,存储模块(120)还包括存储模块控制器(124)。在本技术的一种实施例中,存储模块控制器(124)被配置为接收和服务从固态存储器(122)读数据的请求和/或向固态存储器(122)写数据的请求。这些请求可以源自客户端(160A-160M)或控制模块(150),并且可以经由架构(140)被传送到存储模块控制器(124)。此外,存储模块控制器(124)可以执行或者可以支持包括图3、5和7中所描述的方法的管理任务。
在本技术的一种实施例中,存储模块控制器(124)包括处理器(128)(例如,一个或多个内核,或被配置为执行指令的处理器的微核)、一个或多个硬件寄存器(132)、以及存储器(130)(例如,易失性存储器,其可以是,但不限于,动态随机存取存储器(DRAM)、同步DRAM、SDR SDRAM和DDR SDRAM),用于执行图3、5和7中所描述的步骤中的至少一个步骤。可替代地或附加地,存储模块控制器(124)可以包括现场可编程门阵列(FPGA)(和/或专用集成电路(ASIC))(126)。在包括FPGA(和/或ASIC)和处理器的存储模块控制器中,FPGA和/或ASIC可以主要服务读请求和写请求,而处理器可以处理或支持管理任务,包括与例如损耗均衡相关的那些管理任务。
本领域技术人员将认识到,系统的体系架构不限于图1A和1B中所示出的部件。例如,存储设备(100)的部件可以包括任何数量的存储模块(120A-120N)。此外,在不脱离本技术的情况下,存储模块(120)的存储模块控制器(124)和存储设备(100)的控制模块(150)可以配备有中央处理单元(CPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)和/或任何其它类型的处理器。此外,在不脱离本技术的情况下,架构可以基于除以上所讨论的那些之外的其它通信标准。
图2示出了根据本技术的一种或多种实施例的逻辑布局信息的表示。在本技术的一种实施例中,存储设备包括分配存储池的部分的功能(参见例如图3)。作为分配的一部分,控制模块生成随后提供给客户端的逻辑布局信息。
逻辑布局提供了存储模块介质中的物理地址和由客户端使用的逻辑地址之间的间接/抽象层。逻辑布局信息包括可以被客户端使用来用作以下的信息:(i)选择哪个(些)存储模块从其读取或写入数据;(ii)在选定的(一个或多个)存储模块中,选择特定的(一个或多个)逻辑位置,其中每个逻辑位置对应于选定的(一个或多个)存储模块中的物理位置;(iii)将请求(例如,读请求或写请求)直接(即,没有控制模块的介入)发送到选定的(一个或多个)存储模块。(参见例如,图4、6、8E)。
转到图2中示出的逻辑布局信息(200),逻辑布局信息包括对象标识符(ID)(202)、一对或多对存储模块ID(204A,204B)以及存储模块中对应的逻辑位置(206A,206B)。这些部件中的每一个在下面进行描述。
在本技术的一种实施例中,对象ID(202)是唯一地识别用于对象的逻辑布局信息(200)的值(例如,数字值或字母数字值)。布局对应于每个存储模块中的定义由客户端使用的逻辑存储地址和存储模块的介质内对应的物理存储地址之间的关系的映射(或一组映射)。
在本技术的一种实施例中,存储模块ID(204A,204B)唯一地识别存储池中的存储模块。存储模块ID对应于可以被客户端使用来直接与特定的存储模块进行通信的一条或多条信息。存储模块(206A,206B)中的逻辑位置对应于特定存储模块中的具体物理位置。
在本技术的一种实施例中,每个客户端可以包括零组、一组或更多组逻辑布局信息,其中每组逻辑布局信息包括在图2中示出的信息(参见例如,下面的例子1)。可替代地,每个客户端可以包括单组逻辑布局信息,其中该单组逻辑布局信息包括逻辑布局信息的多个实例(参见例如,下面的例子2)。以下是根据本技术的一种或多种实施例的逻辑布局信息的两个非限制性例子。
例子1
逻辑布局信息:对象ID:0;SM 1:[0,1,2];SM 2:[3,4,5]
在这个例子中,利用“对象ID:0”唯一地识别逻辑布局信息。此外,逻辑布局信息包括与两个不同存储模块(即,存储模块SM1和SM 2)中的逻辑位置(其中每个对应于物理位置)相关的信息。此外,对于每个存储模块(例如,SM 1,SM 2),存在逻辑位置的列表。更具体而言,在SM 1中,逻辑位置是0、1和2,而SM 2中的逻辑位置是3、4和5。基于以上提到的逻辑布局信息,包括这种逻辑布局信息的客户端可以从SM 1中的三个逻辑位置之一和/或从SM2中的三个逻辑位置之一读取数据或者将数据写入到其。
例子2
逻辑布局信息:
[对象ID:0;SM 1:[0,1,2];SM 2:[3,4,5]]
[对象ID:1;SM 1:[0,1,2];SM 3:[3,4,5]]
在这个例子中,逻辑布局信息包括两组逻辑布局信息—即,利用“对象ID:0”唯一识别的第一组逻辑布局信息和利用“对象ID:1”唯一识别的第二组逻辑布局信息。在这个例子中,客户端可以利用包括在逻辑布局信息中的信息从与SM 1、SM 2和/或SM 3相关联的12个位置读和/或写。
图3-7示出了根据本技术的一种或多种实施例的流程图。
虽然流程图中的各个步骤被顺序地呈现和描述,但是普通技术人员将理解,这些步骤中的一些或全部可以以不同的次序执行、可以被组合或省略、并且步骤中的一些或全部可以被并行地执行。在本技术的一种实施例中,在不脱离本技术的情况下,在图3-7中示出的步骤可以与在图3-7中示出的任何其它步骤并行地执行。
图3示出了根据本技术的一种或多种实施例的用于分配存储池中的空间的方法。
在步骤300中,控制模块经由架构从客户端接收分配请求。分配请求可以包括客户端请求分配的空间量。例如,客户端可以请求分配50GB的空间。在不脱离本技术的情况下,客户端可以请求任何数量的空间。
此外,分配请求也可以包括可被控制模块使用来在存储池中选择要分配的具体物理位置的附加信息。例如,分配请求可以指示客户端想要能够在存储池中镜像它存储的数据。在另一个例子中,分配请求可以指示客户端想利用RAID(独立磁盘冗余阵列)机制(例如,RAID-4,RAID-5等)保护存储在存储池中的数据。本技术不限于以上提到的例子。
继续图3的讨论,在步骤302中,控制模块基于在分配请求中提供的信息选择要分配的物理位置。在本技术的一种实施例中,如果分配请求只指定存储的量,则控制模块可以使用任何机制在存储池中选择足够数量的空闲(或未分配)物理位置。相应地,最终被选择的物理位置可以位于一个或多个存储模块中和/或可以是连续的或非连续的。
在本技术的另一种实施例中,如果客户端提供了一些附加信息(例如,客户端指示其想要镜像它们的数据),则控制模块可以考虑所需的存储量和附加信息两者来选择物理位置。例如,如果客户端请求了50GB的空间并且指示它们的数据要被镜像,则控制模块可以从第一存储模块中选择25GB和从第二存储模块中选择对应的25GB。类似地,如果客户端请求了50GB的空间并且指示它们的数据要利用RAID-4来保护,则控制模块可以在五个不同存储模块中的每一个中选择10GB的空间。
在本技术的一种实施例中,控制模块包括跟踪存储池中哪些物理位置已被分配和哪些物理位置未分配(或空闲)的全局分配映射(参见例如,图8A-8G)。
在步骤304中,在步骤302中识别的物理位置与对象标识符(ID)以及用于包括物理位置中的至少一个物理位置的每个存储模块的映射ID相关联。在本技术的一种实施例中,对象ID、(一个或多个)映射ID以及这组物理位置之间的关联由控制模块来跟踪并且可选地存储在全局分配映射中。
在步骤306中,控制模块生成对应于在步骤302中选择的这组物理位置的逻辑布局信息,其中逻辑布局信息与对象ID相关联。逻辑布局信息在以上关于图2进行了描述。
在步骤308中,逻辑布局信息经由架构被发送到客户端(即,发出在步骤300中被接收到的分配请求的客户端)。
在步骤310中,与选定组的物理位置相关联的存储模块被选择。例如,如果逻辑布局信息如下:对象ID:0;SM 1:[0,1,2];SM 2:[3,4,5],则存储模块1(SM 1)可以被选择。
在步骤312中,为选定的存储模块(即,在步骤310中选定的存储模块)生成存储模块特定的映射(也被称为“映射”)。在步骤312中生成的映射被用来将逻辑地址转换为对应的物理地址,其中物理地址对应于在存储模块中的物理位置。换句话说,映射提供了用于逻辑布局信息中指定的、在选定的存储模块中具有对应的物理位置的逻辑位置的一部分的介质转换层(MTL)的功能。例如,如果逻辑布局信息是对象ID:0;SM 1:[0,1,2];SM 2:[3,4,5],则使用用于SM 1的映射将逻辑位置[0,1,2]转换为对应的物理位置。在本技术的一种实施例中,映射不包括转换SM 2中的逻辑位置[3,4,5]的信息。
在本技术的一种实施例中,映射被实现为采用逻辑地址作为输入并且返回对应的物理地址作为输出的函数。可替代地,映射被实现为一个或多个查找表,其中给定的逻辑地址被用来定位在(一个或多个)查找表中的对应条目,其中对应的条目包括对应于逻辑地址的物理地址。在不脱离本技术的情况下,映射可以利用其它机制来实现。
在步骤314中,对象ID(其可以被包括在映射内)和在步骤312中生成的映射(其可以包括映射ID)经由架构被发送到在步骤310中选定的存储模块。存储模块在接收到映射时存储该映射。其中映射被存储的具体位置可以基于实现而不同。例如,映射可以被存储在存储器、硬件寄存器和/或在固态存储器中。此外,如果映射是函数,则存储映射还可以包括编程FPGA(或ASIC)来实现该函数。
在步骤316中,做出关于是否存在与还没有为其创建映射的这组物理位置(在步骤302中所确定的)相关联的任何附加存储模块的确定。如果存在任何这种附加存储模块,则过程前进到步骤310;否则,该过程结束。
在图3中示出的过程可以在每次客户端请求在存储池中分配空间时执行。对于连接到存储设备的多个客户端,可以同时执行图3中示出的过程的全部或一部分同时执行。
在本技术的一种实施例中,在图3中示出的过程导致每个客户端具有其自己独特的一组逻辑位置信息。换句话说,每个客户端只包括用于它被分配的存储池中的空间的逻辑位置信息。因此,虽然控制模块可以包括关于存储池的各个部分如何被分配给各个客户端的信息,但是特定的客户端可能只知道它们被分配的存储的部分。此外,每个存储模块只包括用于已分配的其固态存储器的部分的(一个或多个)映射。但是,给定存储模块可以不包括关于其它固态模块的其它部分如何已被分配的任何信息。
在本技术的一种实施例中,每个存储模块维护提供对象ID和映射ID之间的映射的其自己的对象描述符表。对象描述符表可以在每次存储模块接收到映射ID和对应的映射时被更新。在本技术的另一种实施例中,映射ID被包含在映射中并且对象描述符表可以在每次存储模块接收到映射时被更新。
在本技术的一种实施例中,在图3中示出的过程完成之后,客户端(利用逻辑位置信息)包括可被用来生成要包括在读和/或写请求中的逻辑地址的信息(参见例如,图4和6)。此外,包括对应于逻辑地址的物理位置的存储器模块包括将以上提到的请求中的逻辑地址转换为对应的物理地址的功能(即,一个或多个映射)。
图4示出了根据本技术的一种或多种实施例的用于由客户端发出写请求到存储设备的方法。
在步骤400中,客户端在存储池中选择其中要写入数据的逻辑位置。在本技术的一种实施例中,逻辑布局信息被用来选择逻辑位置。例如,如果逻辑布局信息是:对象ID:0;SM1:[0,1,2];SM 2:[3,4,5]并且逻辑布局信息指示数据要跨这两个SM被条带化,则客户端可以从六个逻辑位置之一中选择。
在步骤402中,客户端生成指定逻辑位置和写入到该逻辑位置的数据的写请求。在本技术的一种实施例中,逻辑位置可以在写请求中被指定为逻辑地址。在这种实施例中,逻辑地址可以唯一地识别对应于逻辑位置的物理位置所位于其中的特定存储模块内的逻辑位置(参见例如,图8A-8G中的例子)。
在步骤404中,写请求经由架构从客户端发送到对应于逻辑位置的物理位置所位于其中的特定存储模块。继续以上例子,写请求被直接发到存储模块1。如以上所讨论的,逻辑布局信息可以包括诸如存储模块ID的信息(参见例如,图2),其可以被用来直接将写请求发送到适当的存储模块。在本技术的一种实施例中,写请求可以包括,例如,选定的存储模块ID、引用逻辑布局信息的对象ID、要被写入的逻辑位置(例如,逻辑地址和/或偏移)、要被写入的数据的长度、以及新数据在客户端的存储器中的地址。存储模块随后接收写请求并且根据图5服务写请求。
图5示出了用于由存储设备服务写请求的方法。在步骤500中,写请求从客户端被接收到。在一种实施例中,写请求经由架构被接收到。
在步骤502中,写请求中的逻辑地址利用映射被转换为物理地址。更具体而言,写请求中的对象ID被用来利用存储在存储模块中的对象描述符表查找对应的映射ID。对应于映射ID的映射然后被用来将写请求中的逻辑地址转换为对应的物理地址。在本技术的一种实施例中,如果存储模块包括多个映射,则逻辑地址、写请求中的其它信息(或从写请求中的其它信息得到的信息)、和/或利用逻辑地址的至少一部分确定的信息可以被用来选择适当的映射。一旦适当的映射被选择,以上提到的转换就被执行。
在本技术的一种实施例中,映射被实现为函数。在这种情况下,逻辑地址被作为输入提供到函数并且应用该函数到逻辑地址的结果是对应的物理地址。
在本技术的一种实施例中,映射被实现为查找表。在这种情况下,逻辑地址(或利用逻辑地址的全部或部分得到的值,例如,逻辑地址的哈希值)被用来识别查找表中的条目,其中条目包括对应于逻辑地址的物理地址。
在步骤504中,写请求中指定的数据被写入到存储模块中的物理位置(其对应于物理地址)。
图6示出了根据本技术的一种或多种实施例的用于由客户端发出读请求到存储设备的方法。
在步骤600中,客户端在存储池中选择从其读取数据的逻辑位置,并且然后生成对应的读请求。在本技术的一种实施例中,逻辑布局信息被用来选择逻辑位置。例如,如果逻辑布局信息是:对象ID:0;SM 1:[0,1,2];SM 2:[3,4,5]并且逻辑布局信息指示数据要跨这两个SM被条带化,则客户端可以从六个逻辑位置之一中选择。客户端然后生成指定逻辑位置的读请求。在本技术的一种实施例中,逻辑位置可以在读请求中被指定为逻辑地址。在这种实施例中,逻辑地址可以唯一地识别对应于逻辑位置的物理位置所位于其中的特定存储模块内的逻辑位置(参见例如,图8A-8G中的例子)。
在步骤602中,读请求经由架构从客户端发送到对应于逻辑位置的物理位置所位于其中的特定存储模块。更具体而言,读请求中的对象ID被用来利用存储在存储模块中的对象描述符表查找对应的映射ID。对应于映射ID的映射然后被用来将读请求中的逻辑地址转换为对应的物理地址。继续以上例子,读请求被直接发到存储模块1。如以上所讨论的,逻辑布局信息可以包括诸如存储模块ID的信息(参见例如,图2),其可以被用来直接将读请求发送到适当的存储模块。存储模块随后接收读请求并且根据图6服务读请求。
图7示出了根据本技术的一种或多种实施例的用于由存储设备服务读请求的方法。
在步骤700中,读请求从客户端被接收到。在一种实施例中,读请求经由架构被接收到。
在步骤702中,读请求中的逻辑地址利用映射被转换为物理地址。在本技术的一种实施例中,如果存储模块包括多个映射,则逻辑地址、写请求中的其它信息(或从写请求中的其它信息得到的信息)、和/或利用逻辑地址的至少一部分确定的信息可以被用来选择适当的映射。一旦适当的映射被选择,以上提到的转换就被执行。
在本技术的一种实施例中,映射被实现为函数。在这种情况下,逻辑地址被作为输入提供到函数并且应用该函数到逻辑地址的结果是对应的物理地址。
在本技术的一种实施例中,映射被实现为查找表。在这种情况下,逻辑地址(或利用逻辑地址的全部或部分得到的值,例如,逻辑地址的哈希值)被用来识别查找表中的条目,其中条目包括对应于逻辑地址的物理地址。
在步骤704中,读请求中指定的数据被写入到存储模块中的物理位置(其对应于物理地址)。
示例用例
下面描述的用例场景旨在提供本技术的各种实施例的例子。本技术不限于以下用例场景。更具体而言,本领域技术人员将认识到,在图3-7中描述的方法不限于下面描述的用例场景,而是普遍适用于宽广范围的、不同构造、复杂度和尺寸的存储设备。
参考图8A,考虑其中存在经由架构可操作地连接到控制模块和两个存储模块(存储模块A、存储模块B)的两个客户端(客户端A、客户端B)的场景。在某个时间点,客户端A向控制模块发出分配请求(S1)。
参考图8B,响应于接收到分配请求,控制模块在存储模块中选择以下一组物理位置:(i)存储模块A:物理位置A、物理位置C和物理位置D以及(ii)存储模块B:物理位置G、物理位置H和物理位置J。
参考图8C和8D,在选择以上提到的一组物理位置之后,控制模块更新全局分配映射以反映这些物理位置已被分配。此外,控制模块将对象ID(即,对象ID=0)关联到该组物理位置,并且然后生成逻辑布局信息A。逻辑布局信息A指定对应于该组选定的物理位置的逻辑位置。相应地,在这个例子中,逻辑布局信息A指定以下:对象ID=0;SM A:[0,1,2];SMB:[3,4,5]。
此外,控制模块生成用于存储模块A的映射(即,映射A)和用于存储模块B的映射(即,映射B)。在这个例子中,映射A被用来将对应于逻辑位置0、1和2的逻辑地址分别转换为对应于存储模块A中的物理位置A、C和D的物理地址。此外,映射B被用来将对应于逻辑位置3、4和5的逻辑地址分别转换为对应于存储模块B中的物理位置G、H和J的物理地址。
控制模块随后经由架构将逻辑布局信息A发送到客户端A(参见图8C,S2)、将映射A发送到存储模块A(参见图8D,S3)、以及将映射B发送到存储模块B(参见图8D,S4)。
参考图8E,在S1-S4已被执行之后的某个点处,客户端A生成并发出(经由架构)读请求(参见图8E,S5)到存储模块A。在这个例子中,读请求是针对存储模块A中的逻辑位置1(其对应于逻辑地址1)。
在S6中,存储模块A接收包含对象ID 0的读请求、确定对象ID 0由映射A表示。映射A随后被用来将逻辑地址1转换为存储模块A中的对应的物理地址C。在S7中,位于物理位置C处的数据随后从固态存储器A中被读取并且(经由架构)发送到客户端A。
参考图8F,在S1-S7已被执行之后,假设客户端B向控制模块发出分配请求。在这个例子中,控制模块在存储模块B中选择以下一组物理位置:物理位置F和物理位置I。
参考图8G,在选择以上提到的这组物理位置之后,控制模块更新全局分配映射以反映这些物理位置已被分配。此外,控制模块将对象ID(即,对象ID=1)和映射ID(即,在这个例子中的映射C)关联到该组物理位置,并且然后生成逻辑布局信息B。逻辑布局信息B指定对应于该组选定的物理位置的逻辑位置。相应地,在这个例子中,逻辑布局信息指定以下:对象ID=1;SM B:[0,1]。
此外,控制模块生成用于存储模块B的映射(即,映射C)。在这个例子中,映射C被用来将对应于逻辑位置0和1的逻辑地址分别转换为对应于物理位置F和I的物理地址。控制模块随后经由架构将逻辑布局信息B发送到客户端B和经由架构将映射C发送到存储模块B。
用于执行本技术实施例的计算机可读程序代码形式的软件指令可以全部或部分地、临时或永久地存储在非临时性计算机可读介质上,诸如CD、DVD、存储设备、软盘、带、闪存存储器、物理存储器,或任何其它计算机可读存储介质。具体而言,软件指令可以对应于计算机可读程序代码,当其被(一个或多个)处理器执行时,被配置为执行本技术的实施例。
虽然本技术已经关于有限数量的实施例进行了描述,但是受益于本公开内容的本领域技术人员将认识到,可以设计出不背离如本文所公开的技术范围的其它实施例。因此,本技术的范围应当只由所附权利要求来限定。

Claims (20)

1.一种用于由存储设备服务请求的方法,包括:
由存储设备中的控制模块分配存储设备中的存储池中的一组物理位置;
由控制模块将与所述一组物理位置相关联的逻辑布局信息限定到可操作地连接到存储设备的客户端;
由控制模块将第一映射发送到存储池中的第一存储模块,其中所述一组物理位置中的至少一个物理位置位于第一存储模块上;
由第一存储模块从客户端接收第一请求,其中第一请求包括至少部分地基于逻辑布局信息的信息;及
由第一存储模块利用第一映射服务第一请求。
2.如权利要求1所述的方法,还包括:
在分配所述一组物理位置之前:
由控制模块从客户端接收分配请求,其中分配请求指定待在存储池中分配的空间量。
3.如权利要求1所述的方法,其中逻辑布局信息包括对象标识符(ID),其中对象ID与所述一组物理位置相关联。
4.如权利要求3所述的方法,其中逻辑布局信息还包括对应于所述一组物理位置中的至少一个物理位置的偏移。
5.如权利要求1所述的方法,其中所述一组物理位置包括存储池中的第二存储模块上的至少一个物理位置。
6.如权利要求5所述的方法,还包括:
将第二映射发送到存储池中的第二存储模块,其中所述一组物理位置中的所述至少一个物理位置位于第二存储模块上。
7.如权利要求6所述的方法,还包括:
从客户端接收第二请求;及
利用第二映射服务第二请求,其中第二请求指定对象ID,其中对象ID与所述一组物理位置相关联。
8.如权利要求1所述的方法,其中第一请求包括逻辑地址,并且其中服务第一请求包括利用第一映射将逻辑地址转换为物理地址,其中物理地址对应于第一存储模块上的物理位置,其中物理位置在所述一组物理位置中。
9.如权利要求8所述的方法,其中逻辑布局信息包括对象标识符(ID),其中对象ID与所述一组物理位置相关联。
10.如权利要求1所述的方法,其中逻辑布局信息包括多个偏移,其中所述多个偏移中的每个偏移与所述一组物理位置中的物理位置相关联。
11.如权利要求1所述的方法,其中第一请求是选自由读请求和写请求构成的组的一个请求。
12.如权利要求1所述的方法,其中第一映射是查找表。
13.如权利要求1所述的方法,其中第一映射是将第一请求中的逻辑地址转换为与第一存储模块中的物理位置相关联的物理地址的函数。
14.一种用于由存储设备服务请求的方法,包括:
由存储设备中的控制模块分配存储设备中的存储池中的一组物理位置;
由控制模块将与所述一组物理位置相关联的逻辑布局信息发送到可操作地连接到存储设备的客户端,其中逻辑布局信息与对象标识符(ID)相关联;
由控制模块将第一映射发送到存储池中的第一存储模块,其中所述一组物理位置中的至少一个物理位置位于第一存储模块上,其中第一映射与映射标识符(ID)相关联;
由控制模块将第二映射发送到存储池中的第二存储模块,其中所述一组物理位置中的至少一个物理位置位于第二存储模块上,其中第二映射与所述映射ID相关联;
由第一存储模块从客户端接收包括逻辑地址的第一请求,其中逻辑地址包括对象ID和第一偏移;及
由第一存储模块利用第一映射服务第一请求,其中第一请求是选自由读请求和写请求构成的组的一个请求,其中利用对象ID识别第一映射;
由第二存储模块从客户端接收包括第二逻辑地址的第二请求,其中第二逻辑地址包括对象ID和第二偏移;及
由第二存储模块利用第二映射服务第二请求,其中利用对象ID识别第二映射。
15.如权利要求14所述的方法,其中第一映射不同于第二映射。
16.如权利要求14所述的方法,其中第一映射只包括与位于第一存储模块上的所述一组物理位置中的物理位置相关联的信息,并且其中第二映射只包括与位于第二存储模块上的所述一组物理位置中的物理位置相关联的信息。
17.一种存储设备,包括:
架构;
存储池,其可操作地连接到架构并且包括多个物理存储模块,及
控制模块,其可操作地连接到架构并且被编程为:
分配存储池中的一组物理位置;
利用架构将与所述一组物理位置相关联的逻辑布局信息发送到可操作地连接到存储设备的客户端;
利用架构将映射发送到所述多个存储模块中的存储模块,其中所述一组物理位置中的至少一个物理位置位于存储模块上;
存储模块,其被编程为:
从架构接收来自客户端的请求,其中请求是选自由读请求和写请求构成的组的一个请求;
利用请求的至少一部分和存储模块中的对象描述符表获得所述映射;及
利用映射服务请求。
18.如权利要求17所述的存储设备,其中存储模块包括固态存储器。
19.如权利要求17所述的存储设备,其中存储模块包括多个映射,其中所述映射是所述多个映射中的一个映射,其中请求包括对象ID,并且其中服务请求包括利用对象ID识别映射。
20.如权利要求17所述的存储设备,其中请求包括逻辑地址,并且其中映射用于将逻辑地址转换为对应于存储模块上的物理位置的物理地址。
CN201610496812.9A 2016-03-31 2016-06-29 存储设备中委托的介质转换层 Active CN107291634B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/087,794 2016-03-31
US15/087,794 US9875190B2 (en) 2016-03-31 2016-03-31 Delegated media translation layer in a storage appliance

Publications (2)

Publication Number Publication Date
CN107291634A true CN107291634A (zh) 2017-10-24
CN107291634B CN107291634B (zh) 2021-02-26

Family

ID=59961012

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610496812.9A Active CN107291634B (zh) 2016-03-31 2016-06-29 存储设备中委托的介质转换层

Country Status (2)

Country Link
US (1) US9875190B2 (zh)
CN (1) CN107291634B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947670A (zh) * 2017-12-20 2019-06-28 爱思开海力士有限公司 存储器系统及其操作方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11636041B2 (en) * 2020-10-12 2023-04-25 Seagate Technology Llc Object storage data storage systems and methods
CN117597692A (zh) * 2021-12-02 2024-02-23 英特尔公司 用于多任务学习中的损失平衡的装置、方法、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625627A (zh) * 2009-08-05 2010-01-13 成都市华为赛门铁克科技有限公司 写入数据的方法、磁盘冗余阵列的控制器及磁盘冗余阵列
CN101673243A (zh) * 2009-09-29 2010-03-17 威盛电子股份有限公司 数据储存装置与方法
CN101997918A (zh) * 2010-11-11 2011-03-30 清华大学 异构san环境中的海量存储资源按需分配的实现方法
CN103026346A (zh) * 2010-07-27 2013-04-03 国际商业机器公司 包括固态存储器设备的存储系统中的逻辑到物理地址映射
US20130326136A1 (en) * 2012-06-04 2013-12-05 Spectra Logic Corporation Populating a sparsely allocated memory in a storage array
CN103514249A (zh) * 2013-06-20 2014-01-15 易乐天 一种数据自精简方法和系统及存储装置
CN104426965A (zh) * 2013-08-30 2015-03-18 华为技术有限公司 自管理存储方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407448B1 (en) * 2008-05-06 2013-03-26 Emc Corporation Shared storage I/O elimination through mapping client integration into a hypervisor

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625627A (zh) * 2009-08-05 2010-01-13 成都市华为赛门铁克科技有限公司 写入数据的方法、磁盘冗余阵列的控制器及磁盘冗余阵列
CN101673243A (zh) * 2009-09-29 2010-03-17 威盛电子股份有限公司 数据储存装置与方法
CN103026346A (zh) * 2010-07-27 2013-04-03 国际商业机器公司 包括固态存储器设备的存储系统中的逻辑到物理地址映射
CN101997918A (zh) * 2010-11-11 2011-03-30 清华大学 异构san环境中的海量存储资源按需分配的实现方法
US20130326136A1 (en) * 2012-06-04 2013-12-05 Spectra Logic Corporation Populating a sparsely allocated memory in a storage array
CN103514249A (zh) * 2013-06-20 2014-01-15 易乐天 一种数据自精简方法和系统及存储装置
CN104426965A (zh) * 2013-08-30 2015-03-18 华为技术有限公司 自管理存储方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947670A (zh) * 2017-12-20 2019-06-28 爱思开海力士有限公司 存储器系统及其操作方法
CN109947670B (zh) * 2017-12-20 2023-06-13 爱思开海力士有限公司 存储器系统及其操作方法

Also Published As

Publication number Publication date
US9875190B2 (en) 2018-01-23
CN107291634B (zh) 2021-02-26
US20170286312A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
US11693601B2 (en) Enabling virtual functions on storage media
US10229734B1 (en) Method and system for storing and recovering data from flash memory
JP6385995B2 (ja) テーブル・オブ・コンテンツエントリを使用してデータを格納するためのシステムおよび方法
US10761977B2 (en) Memory system and non-transitory computer readable recording medium
JP6479639B2 (ja) 情報処理装置、プログラム、及び、情報処理システム
US20090210464A1 (en) Storage management system and method thereof
US9178839B2 (en) Sharing buffer space in link aggregation configurations
CN103106150B (zh) 一种实现存储系统自动精简配置和精简分配的方法
US11868246B2 (en) Memory system and non-transitory computer readable recording medium
CN107291634A (zh) 存储设备中委托的介质转换层
US20230281118A1 (en) Memory system and non-transitory computer readable recording medium
US20150234841A1 (en) System and Method for an Efficient Database Storage Model Based on Sparse Files
US11385900B2 (en) Accessing queue data
CN115269450A (zh) 内存协同管理系统和方法
CN109727629A (zh) 使用利用多间隙进度字段的磨损均衡的方法和系统
US10558387B2 (en) Method and system for optimistic flow control for push-based input/output with buffer stealing
JP6313242B2 (ja) メモリシステム及びプログラム
US11086775B2 (en) Information processing device, non-transitory computer readable recording medium, and information processing system
JP6276208B2 (ja) メモリシステム及びプログラム

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