CN112930520A - 用于使用以太网驱动器及以太网络开放通道驱动器存储数据的系统及方法 - Google Patents

用于使用以太网驱动器及以太网络开放通道驱动器存储数据的系统及方法 Download PDF

Info

Publication number
CN112930520A
CN112930520A CN201980069400.9A CN201980069400A CN112930520A CN 112930520 A CN112930520 A CN 112930520A CN 201980069400 A CN201980069400 A CN 201980069400A CN 112930520 A CN112930520 A CN 112930520A
Authority
CN
China
Prior art keywords
controller
driver
command
ethernet
host device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201980069400.9A
Other languages
English (en)
Other versions
CN112930520B (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.)
Kioxia Corp
Original Assignee
Kioxia 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 Kioxia Corp filed Critical Kioxia Corp
Publication of CN112930520A publication Critical patent/CN112930520A/zh
Application granted granted Critical
Publication of CN112930520B publication Critical patent/CN112930520B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • 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
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • 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/0656Data buffering 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/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/323Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the physical layer [OSI layer 1]
    • 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/1004Compatibility, e.g. with legacy hardware
    • 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
    • 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/154Networked environment
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Bus Control (AREA)

Abstract

本发明提供一种用于读取经存储数据的系统,其可包含一或多个以太网驱动器及控制器,两者经配置以通信地连接到主机装置。所述控制器可从所述主机装置接收第一读取命令,使用所述第一读取命令及映射表来确定所述一或多个以太网驱动器当中的第一驱动器,将所述第一读取命令转译成第二读取命令,且将所述第二读取命令发送到所述第一驱动器。响应于接收到所述第二读取命令,所述第一驱动器可独立于所述控制器将第一远程数据传送指令发送到所述主机装置。所述第一远程数据传送指令可包含从所述第一驱动器读取的经存储数据以致使所述主机装置将从所述第一驱动器读取的所述经存储数据写入到由所述第二读取命令指示的所述主机装置中的一或多个存储器缓冲器。

Description

用于使用以太网驱动器及以太网络开放通道驱动器存储数据 的系统及方法
技术领域
本发明大体上涉及用于存储数据的系统及方法,包含实施以太网驱动器及以太网开放通道驱动器的可扩展部署的存储系统及方法。
背景技术
传统固态驱动器(SSD)装置维持旧有硬盘驱动器(HDD)规格以实现向后兼容性。例如,此类旧有HDD规格包含机械规格(例如,形状因子)、电气规格(例如,串行附接SCSI(SAS)及串行高级技术附件SATA)总线)及软件规格(例如,驱动器)。这种向后兼容性实现在各个区段中快速部署SSD。
同时,开放通道装置维持低级NAND管理,例如,错误校正(ECC),且公开例如编程、读取及擦除的NAND API,从而将快闪管理卸载到上层。因此,在高层级中操作的池级快闪转译层(FTL)可提供更大灵活性及更高效率。根据NVMe(NVM Express)标准,架构上的NVMe(NVMeoF)输送可通过快速媒体(例如,远程直接存储器存取(RDMA)、光纤通道(FC)、无限带宽(IB))存取远程装置,由此以低延时存取分类磁盘。
发明内容
在根据第一方面的一或多个实施例中,一种用于读取经存储数据的系统可包含:一或多个以太网驱动器,其经配置以通信地连接到主机装置;及控制器,其与所述主机装置及所述一或多个以太网驱动器进行通信。所述控制器可从所述主机装置接收第一读取命令,所述第一读取命令包含第一组一或多个输入参数及指示所述主机装置中的一或多个存储器缓冲器的第一组一或多个输出参数。所述控制器可使用所述一或多个输入参数中的至少一者及映射表来确定所述一或多个以太网驱动器当中的第一驱动器。所述控制器可将所述第一读取命令转译成第二读取命令,所述第二读取命令包含指示所述主机装置中的一或多个存储器缓冲器的第二组一或多个输出参数。所述控制器可将所述第二读取命令发送到所述第一驱动器。响应于接收到所述第二读取命令,所述第一驱动器可独立于所述控制器将第一远程数据传送指令发送到所述主机装置。所述第一远程数据传送指令可包含从所述第一驱动器读取的经存储数据以致使所述主机装置将从所述第一驱动器读取的所述经存储数据写入到由所述第二组一或多个输出参数指示的所述一或多个存储器缓冲器。
在根据第二方面的一或多个实施例中,一种用于存储数据的系统可包含:一或多个以太网驱动器,其经配置以通信地连接到主机装置;及控制器,其与所述主机装置及所述一或多个以太网驱动器进行通信。所述控制器可从所述主机装置接收第一写入命令。所述第一写入命令可包含第一组一或多个输入参数及指示所述主机中的一或多个存储器缓冲器的第一组一或多个输出参数。所述控制器可使用所述一或多个输入参数中的至少一者及映射表来确定所述一或多个以太网驱动器当中的第一驱动器。所述控制器可将所述第一写入命令转译成第二写入命令。所述第二写入命令可包含指示所述主机装置中的一或多个存储器缓冲器的第二组一或多个输出参数。所述控制器可将所述第二写入命令发送到所述第一驱动器。响应于接收到所述第二写入命令,所述第一驱动器可独立于所述控制器将第一远程数据传送指令发送到所述主机装置。所述第一远程数据传送指令可致使所述主机装置从由所述第二组一或多个输出参数指示的所述一或多个存储器缓冲器读取数据且远程地将来自所述一或多个存储器缓冲器的所述读取数据写入到所述第一驱动器。
在根据第三方面的一或多个实施例中,一种用于读取经存储数据的方法可包含通过与主机装置及一或多个以太网驱动器进行通信的存储系统的控制器,从所述主机装置接收第一读取命令。所述第一读取命令可包含第一组一或多个输入参数及指示所述主机装置中的一或多个存储器缓冲器的第一组一或多个输出参数。可使用所述一或多个输入参数中的至少一者及映射表来确定与所述主机装置进行通信的一或多个以太网驱动器当中的第一驱动器。可将所述第一读取命令转译成第二读取命令。所述第二读取命令可包含指示所述主机装置中的一或多个存储器缓冲器的第二组一或多个输出参数。可将所述第二读取命令发送到所述第一驱动器。响应于接收到所述第二读取命令,可通过所述第一驱动器独立于所述控制器将第一远程数据传送指令发送到所述主机装置。所述第一远程数据传送指令可包含从所述第一驱动器读取的经存储数据以致使所述主机装置将从所述第一驱动器读取的所述经存储数据写入到由所述第二组一或多个输出参数指示的所述一或多个存储器缓冲器。
在根据第四方面的一或多个实施例中,一种用于存储数据的方法可包含通过与主机装置及一或多个以太网驱动器进行通信的控制器,从所述主机装置接收第一写入命令。所述第一写入命令可包含第一组一或多个输入参数及指示所述主机中的一或多个存储器缓冲器的第一组一或多个输出参数。可使用所述一或多个输入参数中的至少一者及映射表来确定与所述主机装置进行通信的所述一或多个以太网驱动器当中的第一驱动器。可将所述第一写入命令转译成第二写入命令。所述第二写入命令可包含指示所述主机装置中的一或多个存储器缓冲器的第二组一或多个输出参数。可将所述第二写入命令发送到所述第一驱动器。响应于接收到所述第二写入命令,可独立于所述控制器将第一远程数据传送指令发送到所述主机装置。所述第一远程数据传送指令可致使所述主机装置从由所述第二组一或多个输出参数指示的所述一或多个存储器缓冲器读取数据且远程地将来自所述一或多个存储器缓冲器的所述读取数据写入到所述第一驱动器。
在根据第五方面的一或多个实施例中,一种用于在具有多个开放通道驱动器的存储系统中进行废弃项目收集的方法包含通过存储系统的控制器,执行废弃项目收集命令,所述废弃项目收集命令包含识别一或多个以太网驱动器当中的第一驱动器的第一驱动器识别符。所述方法进一步包含:通过所述控制器,使用映射表在一或多个以太网驱动器当中的目的地驱动器中的目的地地址处分配自由块;通过所述控制器,使用所述映射表以所述第一驱动器识别符识别所述第一驱动器中的源地址;及通过所述控制器,将移动命令发送到所述第一驱动器,所述移动命令包含所述源地址、所述目的地地址及所述目的地驱动器。所述方法进一步包含:响应于接收到所述移动命令,可通过所述第一驱动器从所述第一驱动器中的所述经识别源地址读取数据;及通过所述第一驱动器将编程命令发送到所述目的地驱动器且致使所述目的地驱动器将从所述经识别源地址读取的所述数据复制到所述目的地驱动器中的所述目的地地址处的所述自由块。
在根据第六方面的一或多个实施例中,一种用于在具有多个开放通道驱动器的存储系统中解除分配资源的方法包含通过存储系统的控制器,接收包含第一地址的解除分配命令。所述方法进一步包含通过所述控制器,使用映射表在一或多个以太网驱动器中的目的地驱动器中的所述第一地址处解除分配资源。所述方法进一步包含响应于解除分配所述资源,通过所述控制器,更新所述映射表以将所述第一地址处的所述资源指示为不再含有有效数据或无效。
在根据另一方面的一或多个实施例中,本文中所描述的一或多个实施例涉及用于使用以太网驱动器或以太网开放通道驱动器的部署及管理来存储数据的系统及方法。响应于从主机装置接收的命令,存储系统的控制器可控制一或多个以太网驱动器远程地从所述主机装置读取数据或将数据写入到所述主机装置。所述控制器还可使用以太网开放通道驱动器来执行快闪转译层(FTL)管理且控制一或多个以太网开放通道驱动器自主地或在主计算机指导下执行废弃项目收集。这可提供NAND存储的高效、高性能、大规模部署。
在根据另一方面的一或多个实施例中,一种用于存储数据的系统包含经配置以通信地连接到主机装置的一或多个以太网驱动器及控制器。所述控制器经配置以从所述主机装置接收包含第一地址及内含所述主机装置的存储器空间中的地址的第一描述符的第一读取命令,使用映射表以所述第一地址识别所述一或多个以太网驱动器当中的第一驱动器及所述经识别第一驱动器中的第二地址,且将包含所述第一描述符及所述经识别第二地址的第二读取命令发送到所述经识别第一驱动器。所述经识别第一驱动器经配置以响应于接收到所述第二读取命令,从所述经识别第一驱动器中的所述经识别第二地址读取数据,且使用第一远程数据传送指令(例如,使用远程DMA写入命令)将数据发送到所述主机装置并致使所述主机装置将从所述经识别第二地址读取的所述数据写入到包含在所述第一描述符中的所述主机装置的所述存储器空间中的所述地址。
在根据另一方面的一或多个实施例中,一种用于存储数据的方法包含:通过存储系统的控制器,从主机装置接收第一读取命令,所述第一读取命令包含第一地址及内含所述主机装置的存储器空间中的地址的第一描述符;通过所述控制器,使用映射表以所述第一地址识别一或多个以太网驱动器当中的第一驱动器及所述经识别第一驱动器中的第二地址;及通过所述控制器,将所述第二读取命令发送到所述经识别第一驱动器,所述第二读取命令包含所述第一描述符及所述经识别第二地址。所述方法进一步包含:响应于接收到所述第二读取命令,通过所述经识别第一驱动器从所述经识别第一驱动器中的所述经识别第二地址读取数据;及通过所述经识别第一驱动器,使用第一远程数据传送指令(例如,使用远程DMA写入命令)将数据发送到所述主机装置并致使所述主机装置将从所述经识别第二地址读取的所述数据写入到包含在所述第一描述符中的所述主机装置的所述存储器空间中的所述地址。
在根据另一方面的一或多个实施例中,一种用于存储数据的方法包含:通过存储系统的控制器,从主机装置接收第一写入命令,所述第一写入命令包含第一地址及内含所述主机装置的存储器空间中的地址的第一描述符;通过所述控制器,使用映射表以所述第一地址识别一或多个以太网驱动器当中的第一驱动器及所述经识别第一驱动器中的第二地址;及通过所述控制器,将第二写入命令发送到所述经识别第一驱动器,所述第二写入命令包含所述第一描述符及所述经识别第二地址。所述方法进一步包含响应于接收到所述第二写入命令,通过以下操作读取数据:通过所述经识别第一驱动器将第一远程数据传送指令(例如,使用远程DMA读取命令)发送到所述主机装置并致使所述主机装置从包含在所述第一描述符中的所述主机装置的所述存储器空间中的所述地址读取数据及远程地在所述经识别第一驱动器中的所述经识别第二地址处写入从包含在所述第一描述符中的所述主机装置的所述存储器空间中的所述地址读取的所述数据。所述方法进一步包含:通过所述控制器,使用所述映射表以所述第一地址及所述第一描述符识别所述一或多个以太网驱动器当中的第二驱动器、所述经识别第二驱动器中的第三地址及包含在所述主机装置的所述存储器空间的地址中的第二描述符;及通过所述控制器,将第三写入命令发送到所述经识别第二驱动器,所述第三写入命令包含所述第二描述符及所述经识别第三地址。所述方法进一步包含响应于接收到所述第三写入命令,通过以下操作读取数据:通过所述经识别第二驱动器将第二远程数据传送指令(例如,使用远程DMA读取命令)发送到所述主机装置并致使所述主机装置从包含在所述第二描述符中的所述主机装置的所述存储器空间中的所述地址读取数据及远程地在所述经识别第二驱动器中的所述经识别第三地址处写入从包含在所述第二描述符中的所述主机装置的所述存储器空间中的所述地址读取的所述数据。
附图说明
图1A展示根据本发明的一或多个实施例的以太网驱动器的框图。
图1B展示根据本发明的一或多个实施例的经由内插器的以太网驱动器的框图。
图1C展示根据本发明的一或多个实施例的数据存储系统的框图。
图1D展示根据本发明的一或多个实施例的包含存储器空间的地址的描述符的框图。
图2A到图2D展示说明根据本发明的一或多实施例的数据存储系统的操作的框图。
图3A展示根据本发明的一或多个实施例的以太网开放通道驱动器的框图。
图3B展示根据本发明的一或多个实施例的经由内插器的以太网开放通道驱动器的框图。
图3C展示根据本发明的一或多个实施例的数据存储系统的框图。
图4展示根据本发明的一或多个实施例的数据存储系统的框图。
图5A到5D展示说明根据本发明的一或多个实施例的数据存储系统的操作的框图。
图6A到图6B展示说明根据本发明的一或多个实施例的数据存储系统的废弃项目收集操作的框图。
图7A展示根据本发明的一或多个实施例的用于从以太网驱动器读取数据的方法。
图7B展示根据本发明的一或多个实施例的用于从以太网驱动器读取数据的方法。
图8A展示根据本发明的一或多个实施例的用于将数据写入到以太网驱动器的方法。
图8B展示根据本发明的一或多个实施例的用于将数据写入到以太网驱动器的方法。
图9展示根据本发明的一或多个实施例的用于废弃项目收集的方法。
图10展示根据本发明的一或多个实施例的用于资源解除分配的方法。
具体实施方式
本文中所描述的实施例提供某些改进,包含提供高效资源利用及以太网驱动器或启用以太网的驱动器的可扩展部署。本文中所提供的一或多个实施例实施用于以太网驱动器或以太网开放通道驱动器的可扩展部署的架构,从而以物理磁盘到块存储池的简单且灵活的抽象化实现多个驱动器的聚合带宽,同时保留直接附接非易失性数据存储装置(例如,NVMe SSD)的高性能。
一般来说,为了符合HDD向后兼容性,SSD装置通常包含内部控制器,所述内部控制器实施快闪转译层(FTL),将逻辑块地址(LBA)映射到物理NAND页面,执行废弃项目收集(GC)等等。此架构带来低效率的资源利用。此外,在传统“磁盘簇(JBOD)”或“快闪簇(JBOF)”中,通常实施用于远程存取的磁盘打包使得控制器将传输层分组(例如,NVMeoF分组)解封到本地附接磁盘中。这种架构是方便的,然而其利用复杂的计算及存储器机制来进行高性能转译。此外,由于旧有计算机形状因子(例如,2U外壳),其需要较大空间体积。
在本文中所描述的一或多个实施例中,控制器可从主机装置接收包含主机装置的存储器空间的第一地址及第一描述符(参见图1D)的读取命令,将第二读取命令发送到以太网驱动器(或以太网开放通道驱动器)使得以太网驱动器可在没有来自控制器的进一步干预的情况下将远程数据传送指令(例如,远程DMA写入命令)发送到主机装置且致使主机装置将从以太网驱动器读取的数据写入到由第一描述符所描述的主机装置的存储器空间中的地址(参见图1D)。类似地,在本发明的一或多个实施例中,控制器经配置以从主机装置接收包含第二地址及描述主机装置的存储器空间的第二描述符的写入命令,将第二写入命令发送到以太网驱动器(或以太网开放通道驱动器)使得以太网驱动器可在没有来自控制器的进一步干预的情况下将远程数据传送指令(例如,远程DMA读取命令)发送到主机装置且致使主机装置读取从由第二描述符描述的主机装置的存储器空间中的地址读取数据及远程地将所述数据写入到以太网驱动器。利用这种配置,联网的以太网存储装置可将输送处理(例如,NVMeoF输送处理)从存储装置控制器卸载到其本地存储驱动器上且经由以太网协议与主机装置进行通信使得可在没有存储装置控制器的干预的情况下在主机与本地存储驱动器之间直接传送数据。因此,主机装置可在没有存储装置控制器进行协议转译及数据传送处理所要的计算及存储器资源的开销的情况下直接存取以太网驱动器。主机还可实现经由驱动器上的个别网络控制器的较高聚合带宽,而非经由存储控制器的单个网络控制器(其表示瓶颈)在自身与本地以太网驱动器之间进行数据传送的益处。此外,在不受限于存储装置控制器的旧有计算机形状因子的情况下,外壳可仅为机械元件及电力单元,从而节省空间体积。以太网开放通道驱动器的使用还可实现有高效的大规模部署,由此实现本地连接性体验,同时允许可扩展的池管理(例如,动态预配置及横向扩展)。
在本文中所描述的一或多个实施例中,存储系统可包含控制器及多个以太网驱动器(或以太网开放通道驱动器)。控制器可执行包含识别目的地以太网驱动器(或以太网开放通道驱动器)的驱动器识别符的废弃项目收集命令(在主机的指导下或由控制器自主地生成),在目的地驱动器中的目的地地址处分配自由块,识别目的地驱动器中的源地址,及将包含源地址、目的地地址及目的地驱动器的移动命令发送到目的地驱动器。目的地驱动器可将编程命令发送到目的地驱动器且致使目的地驱动器将从源地址读取的数据复制到目的地驱动器中的目的地地址处的自由块。利用这种配置,可经由以太网驱动器(或以太网开放通道驱动器)之间的连接性实施全局池级废弃项目收集,由此提供NAND装置在池中的高效部署。
图1A及图1B各自展示根据本发明的一或多个实施例的以太网驱动器。现在参考图1A,以太网驱动器112可经由封装支持NVMe块功能性,例如逻辑块地址(LBA)的读取及写入,由此对NVMe装置提供以太网连接性。例如,以太网驱动器112可接收或发射封装在NVMeoF分组中的NVMe读取及写入。
如图1A中所展示,以太网驱动器112包含以太网NIC 104、经配置用于NVMeoF的控制器106、控制器快闪转译层(FTL)108及NAND型存储器110。以太网NIC 104可为以太网驱动器102与主机(例如,主计算机或装置)之间的接口。因此,主机可直接存取以太网驱动器102。为了实施这一点,控制器106可经配置用于NVMeoF功能性。控制器106可使用控制器FTL108,所述控制器FTL 108将主机侧或文件系统逻辑块地址映射到NAND型存储器100的物理地址。因此,可将NVMeoF输送协议处理卸载到以太网驱动器112本身,且主机可在没有协议转译及数据传送所要的单独存储控制器中的计算开销的情况下直接存取以太网驱动器112。
现在参考图1B,以太网驱动器162包含具有网络内插器153的NVMe驱动器160。网络内插器153可包含用作以太网驱动器162与主机之间的接口的以太网NIC 104、经配置用于NVMeoF协议的控制器150及PCIe接口152。NVMe驱动器160包含经配置以与网络内插器的PCIe接口152进行通信的另一PCIe接口152、经配置以实施PCIe 154的控制器、控制器FTL156及NAND型存储器158。因此,NVMe驱动器160可经实施有网络内插器153,其使主机可直接与以太网驱动器162进行通信。因此可利用NVMeoF(架构上的NVMe)来实施读取及写入功能性。
在根据本发明的一或多个实施例的以太网驱动器中,以太网适配器(例如,以太网NIC 104)可提供通过任何以太网协议(例如,RDMA、TCP、UDP)的IP连接性。因此,NVMeoF协议实现从连接到网络的任何主机对以太网驱动器的远程存取,且RDMA网络实现从以太网装置到主机/从主机到以太网装置的高带宽且低延时的数据传送。根据本发明的一或多个实施例,以太网驱动器112及162可具有启动器功能性以及目标功能性。因此,作为启动器的每一以太网驱动器都可将命令发送到另一以太网驱动器且启动到/来自那个驱动器的数据传送。
图1C展示根据本发明的一或多个实施例的实例数据存储系统302。参考图1C,数据存储系统302是JBOF存储系统,其中以太网驱动器312经组织在一或多个JBOF外壳中。在一或多个实施例中,数据存储系统302包含映射控制器304、映射表306、以太网交换机308及多个以太网驱动器312。其它实施例含有比图1C中所展示更多或更少的组件。以太网交换机308可聚合从以太网驱动器经由上行链路数据路径310到上TOR交换机(未展示)的连接性。利用这种配置,远程主机可以所述驱动器的以太网NIC的全带宽连接到每一以太网驱动器(上行链路数据路径310配置有足够带宽以容纳在全带宽下个别地运行的所有驱动器)。此外,带宽是可扩展的且可实现多个驱动器的全聚集。映射控制器304可在以太网驱动器JBOF中提供虚拟化层功能性。根据本发明的一或多个实施例,映射控制器304可将物理LBA映射到虚拟逻辑单元号(LUN)内的虚拟LBA或反之亦然。
在一或多个实施例中,映射控制器304具有基于大型DRAM的LBA到物理页面的全局映射,从而实施从远程主机对任何以太网装置的快速存取。映射控制器304可经配置以从主机或以太网驱动器接收命令。通过控制器304接收的命令可包含NVMe管理命令及NVMe I/O命令(例如,读取、写入、刷新等)。此类NVMe命令可包含LBA作为参数(例如,命令特定Dword字段)。映射控制器304可经配置以参考及管理映射表306(例如,其是存储在控制器304可存取的计算机存储器中的数据结构)以确定对应于NVMe命令中所含的LBA的物理页面的地址。例如,当映射控制器304从主机接收含有LBA(SLBA)作为待读取的数据的起始地址的读取命令时,其可确定对应于SLBA的地址(目的地LBA、目的地LUN),其中(目的地LBA、目的地LUN)表示以太网驱动器的LUN内的寻址待读取的数据的物理位置的LBA。
在一或多个实施例中,以太网驱动器312可各自包含以太网NIC 314、控制器316及NAND型存储器318。以太网NIC 314可经配置以用作以太网驱动器312与以太网交换机308之间的接口。控制器316可执行本地功能,包含对NAND型存储器318的读取/写入功能。在一或多个实施例中,以太网驱动器312可经配置以在彼此之间进行通信及/或传送数据(例如,通过以太网交换机308)。尽管当前所描述的实施例实施以太网驱动器312及以太网交换机308,但可结合控制器304来实施其它类型的驱动器及交换机。例如,以太网驱动器312可包含以太网驱动器112(参见图1A)或以太网驱动器162(参见图1B)。
图1D展示根据本发明的一或多个实施例的包含存储器空间的地址的描述符的框图。在一或多个实施例中,当控制器(例如,图1C中的映射控制器304)从主机接收命令(例如,读取、写入、废弃项目收集等)以控制一或多个以太网驱动器(例如,图1C中的以太网驱动器312)时,所述命令可包含一或多个输入参数(例如,作为到以太网驱动器的输入的数据的地址或长度)及一或多个输出参数(例如,作为来自以太网驱动器的输出的数据的地址或长度)。
在一或多个实施例中,输入参数或输出参数可包含描述主机或以太网驱动器的存储器空间的地址的描述符。参考图1D,在一或多个实施例中,用于描述存储器空间的地址的描述符450可包含描述符识别符(ID)451、存储器空间地址452及存储器空间长度453(或存储在存储器空间中的数据的长度)。例如,从主机(通过控制器)接收的读取命令可包含用于描述主机中的存储器缓冲器的描述符作为输出参数,使得主机可从一或多个以太网驱动器读取数据且将数据写入到包含在描述符中的(主机中的存储器缓冲器的)地址。在一或多个实施例中,命令可包含用于描述主机或以太网驱动器中的多个存储器空间的多个描述符。
在一或多个实施例中,描述符450可为用于描述物理区域指针(PRP)的描述符。在一或多个实施例中,描述符450可为分散聚集列表(SGL)描述符,其可指向列表中的其它SGL描述符。在一或多个实施例中,从主机接收的命令可包含用于描述主机中的多个分散存储器缓冲器的SGL描述符的分散聚集列表作为输出参数。在本发明中所描述的任何实施例中,“描述符”可被理解为表示PRP描述符或SGL,但不限于此。
图2A到图2D展示说明根据本发明的一或多个实施例的用于存储数据的系统的实例操作的图。图2A展示以太网驱动器JBOD或JBOF(例如,图1C中的数据存储系统302)中的单个LBA的实例读取命令流。图2A中的以太网驱动器JBOD包含经配置以通信地连接到主机402(例如,主计算机或装置)的一或多个以太网驱动器312及经配置以通信地连接到主机402的映射控制器304。以太网驱动器312可包含封装有NVMeoF的支持NVMe I/O命令(例如,LBA的读取及写入)的至少一个驱动器。图2A到图2B中的图中所说明的系统及方法包使用NVMeoF输送,然而所述系统及方法可应用于其它输送,例如因特网小型计算机系统接口(iSCSI)、RDMA的iSCSI扩展(iSER)、光纤通道(FC)、以太网光纤通道(FCoE)或其它任何输送方式。
在一或多个实施例中,映射控制器304可经配置以从主机402接收第一读取命令,且第一读取命令可包含主机的存储器空间的第一地址(例如,LBA)及第一描述符。第一读取命令可为架构上的高速非易失性存储器(NVMeoF)读取命令。例如,参考图2A,远程主机402①通过NVMeoF输送将NVMe读取命令发送到映射控制器304。在一或多个实施例中,所述主机具有标准NVMeoF驱动器。对于图2A中所说明的读取操作,不需要主机级的任何软件适配。所述读取命令可包含具有以下项的NVMe队列条目(QE):(1)输入参数,其包含待从其读取数据的LBA及待读取的数据的长度;及(2)输出参数,其包含内含主机存储器空间中的待读取的数据待写入在其处的地址的描述符(例如,图1D中的描述符450)。在一或多个实施例中,所述描述符可为图1D中的描述符450。
在一或多个实施例中,映射控制器304可经配置以使用映射表以第一地址识别以太网驱动器312当中的目的地驱动器及经识别目的地驱动器中的目的地地址(例如,LUN中的LBA偏移)。例如,参考图2A,映射控制器304可②确定以太网驱动器中的对应于这个LBA的位置。在一或多个实施例中,使用映射表306,映射控制器304可确定(目的地LBA、目的地LUN)作为以太网驱动器的LUN内的寻址待读取的数据的物理位置的目的地的LBA偏移。在一或多个实施例中,映射表306是将物理LBA映射到虚拟LBA及虚拟LUN的查找表(LUT)。
在一或多个实施例中,映射控制器304可经配置以将第二读取命令发送到经识别目的地驱动器,且第二读取命令可包含第一描述符及经识别目的地地址。第二读取命令可为NVMe读取命令。例如,参考图2A,映射控制器304可③将具有目的地LBA、目的地LUN及包含在主机的存储器空间中的地址的描述符的读取命令发送到目的地以太网驱动器。在一或多个实施例中,发送到目的地以太网驱动器的读取命令是NVMe读取命令。
在一或多个实施例中,经识别目的地驱动器可经配置以响应于接收到第二读取命令,从经识别目的地驱动器中的经识别目的地地址读取数据。经识别目的地驱动器可经配置以将第一远程数据传送指令(例如,经由RDMA写入命令)发出到主机且致使主机将从经识别第二地址读取的数据写入到包含在第一描述符中的主机的存储器空间的地址。第一远程数据传送指令可为RDMA写入命令。例如,参考图2A,目的地以太网驱动器从目的地LBA读取数据且④对主机执行RDMA写入以将从所述驱动器读取的数据传送到由所述描述符所描述的主机存储器空间。这种数据传送可在不利用主机CPU的情况下,例如经由启用RDMA的NIC(RNIC)执行。
参考图2A,一旦到主机的数据传送完成,目的地以太网驱动器⑤便将确认发送到映射控制器304。接着,映射控制器304⑥将NVMeoF状态封包发送到主机402。在一或多个实施例中,NVMeoF状态封包是含有格式化为完成队列条目的响应的NVMeoF响应封包。在图2A中所说明的操作流程中,数据传送可由以太网驱动器来执行,因此实现可扩展部署,这是因为不存在由于带内控制所致的瓶颈,其中单个JBOF控制器可处置所有主机读取/写入请求及到/来自主机的数据传送。
图2B展示根据本发明的一或多个实施例的另一实例读取操作。更特定来说,图2B展示存取以太网驱动器JBOD(例如,图1C中的数据存储系统)中的多个LBA的读取命令流。例如,参考图2B,在远程主机402①通过NVMeoF输送将NVMe读取命令(包含(1)输入参数,例如,待从其读取数据的LBA及待读取的数据的长度,及(2)输出参数,例如,描述符(例如,图1D中的描述符450),其包含主机存储器空间中的待从驱动器读取的数据待写入在其处的地址)发送到映射控制器304之后,映射控制器304可②确定以太网驱动器中的对应于这个LBA的多个位置。在一或多个实施例中,使用映射表306,映射控制器304可确定(或识别)第一目的地以太网驱动器的地址(目的地LBA1、目的地LUN1),所述地址寻址待读取的数据的第一部分(Data1)的物理位置,且确定(或识别)第二目的地以太网驱动器的地址(目的地LBA2、目的地LUN2),所述地址寻址待读取的数据的第二部分(Data2)的物理位置。映射控制器304还可将NVMe读取命令转译成包含第一描述符(Descriptor1)的第一读取命令及包含第二描述符(Descriptor2)的第二读取命令。第一描述符(Descriptor1)及第二描述符(Descriptor2)可分别包含主机的存储器空间中的对应于经确定的两个目的地地址的两个地址,使得可将待从所述两个目的地地址读取的数据存储分别在主机存储器空间中的由第一描述符及第二描述符描述的地址位置处。接着,映射控制器304可③将具有目的地LBA1、目的地LUN1及第一描述符的第一读取命令发送到第一目的地以太网驱动器,且还将具有目的地LBA2、目的地LUN2及第二描述符的第二读取命令发送到第二目的地以太网驱动器。第一目的地以太网驱动器可从目的地地址(LBA1)读取数据(Data1)且④对主机执行RDMA写入以将读取数据(Data1)传送到包含在第一描述符中的主机存储器空间中的地址(Address1)。类似地,第二目的地以太网驱动器可从目的地地址(LBA2)读取数据(Data2)且④对主机执行RDMA写入以将读取数据(Data2)传送到包含在第二描述符中的主机存储器空间中的地址(Address2)。一旦到主机的数据传送完成,那么第一目的地以太网驱动器及第二目的地以太网驱动器中的每一者⑤便将确认发送到映射控制器304。在从两个以太网驱动器接收到确认之后,映射控制器304可⑥将NVMeoF状态封包发送到主机402。
虽然图2B说明跨越两个驱动器的读取命令,但可应用任何数目个驱动器,例如,条带(RAID-0)、镜像(RAID-1)或甚至更复杂布局,例如RAID-5/6及擦除码。利用图2B的配置,所述映射控制器可将多个读取命令发送到以太网驱动器且每一驱动器可经由RDMA将适当数据传送到主机。因此,可聚集带宽且可并行处理命令。此外,数据路径中可不存在瓶颈。
参考图2C,其展示根据本发明的一或多个实施例的实例写入操作。更特定来说,图2C展示以太网驱动器JBOD或JBOF(例如,图1C中的数据存储系统302)中的单个LBA的实例写入命令流。
在一或多个实施例中,控制器304可经配置以从主机402接收第一写入命令,且第一写入命令可包含第一地址(例如,LBA)及包含主机的存储器空间的第一描述符。第一写入命令可为NVMeoF写入命令。例如,参考图2C,远程主机402①通过NVMeoF输送将NVMe写入命令发送到映射控制器304。写入命令可包含NVMe队列条目(QE),所述NVMe队列条目具有(1)输入参数,例如LBA及(2)输出参数,例如,包含主机存储器空间的地址的描述符(例如,图1D中的描述符450)。
在一或多个实施例中,映射控制器304可经配置以使用映射表以第一地址识别以太网驱动器312当中的目的地驱动器及经确定目的地驱动器中的目的地地址(例如,LUN中的LBA偏移)。例如,参考图2C,映射控制器304可②确定以太网驱动器中的对应于这个LBA的位置。在一或多个实施例中,使用映射表306,映射控制器304可确定(目的地LBA、目的地LUN)作为目的地以太网驱动器的LUN内的寻址待写入的数据的物理位置的LBA偏移。
在一或多个实施例中,映射控制器304可经配置以将第二写入命令发送到经识别目的地驱动器,且第二写入命令可包含内含主机的存储器空间中的地址及经识别目的地地址的描述符。第二写入命令可为NVMeoF写入命令。例如,参考图2C,映射控制器304可③将具有目的地LBA、目的地LUN及主机存储器空间中的地址的描述符的写入命令发送到目的地以太网驱动器。在一或多个实施例中,发送到目的地以太网驱动器的写入命令是NVMe写入命令。
在一或多个实施例中,经识别目的地驱动器可经配置以响应于接收到第二写入命令,将远程数据传送指令发送到主机且致使主机从包含在描述符中的主机存储器空间中的地址读取数据及远程地在经识别目的地驱动器中的经识别目的地地址处写入从包含在描述符中的地址读取的数据。在一或多个实施例中,远程数据传送指令是RDMA读取命令。例如,参考图2C,目的地以太网驱动器④对主机执行RDMA读取以远程地从经识别目的地驱动器中的目的地地址处的主机存储器空间中的地址(Address)(包含在描述符中)读取数据(Data),或致使主机402远程地写入从经识别目的地驱动器中的目的地地址处的主机存储器空间中的地址(包含在描述符中)读取的数据。如图2A及图2C中所展示,在读取命令及写入命令两者中,可直接执行从以太网驱动器到主机的存储器的数据传送。因此,I/O带宽可跨所有磁盘扩展。
参考图2C,一旦到主机的数据传送完成,目的地以太网驱动器⑤便将确认发送到映射控制器304。接着,映射控制器304⑥可将NVMeoF状态封包发送到主机402。
参考图2D,其展示根据本发明的一或多个实施例的另一实例写入操作。更特定来说,图2D展示存取以太网驱动器JBOD(例如,图1C中的数据存储系统)中的多个LBA的写入命令流。例如,参考图2D,在远程主机402①通过NVMeoF输送将NVMe写入命令(包含(1)输入参数,例如数据待写入在其处的LBA,及待写入的数据的长度,及(2)输出参数,例如包含主机存储器空间中的待从其读取数据的地址的描述符(例如,图1D中的描述符450))发送到映射控制器304之后,映射控制器304可②确定以太网驱动器中的对应于这个LBA的多个位置。在一或多个实施例中,使用映射表306,映射控制器304可确定(或识别)第一目的地以太网驱动器的第一地址(目的地LBA1、目的地LUN1),所述第一地址是数据的第一部分(Data1)待写入在其处的地址,且确定(或识别)第二目的地以太网驱动器的第二地址(目的地LBA2、目的地LUN2),所述第二地址是数据的第二部分(Data2)待写入在其处的地址。映射控制器304还可将NVMe写入命令转译成包含第一描述符(Descriptor1)的第一写入命令及包含第二描述符(Descriptor2)的第二写入命令。第一描述符及第二描述符可分别包含主机的存储器空间中的对应于经确定的两个目的地地址的两个地址,使得可分别将待从第一描述符(Descriptor1)及第二描述符(Descriptor2)所指向的地址读取的数据存储在第一目的地地址(LBA1、LUN1)及第二目的地地址(LBA2、LUN2)处。接着,映射控制器304可③将具有目的地LBA1、目的地LUN1及第一描述符(Descriptor1)的第一写入命令发送到第一目的地以太网驱动器,且还将具有目的地LBA2、目的地LUN2及第二描述符(Descriptor2)的第二写入命令发送到第二目的地以太网驱动器。第一目的地以太网驱动器可④对主机执行RDMA读取以传送包含在从第一目的地地址(LBA1)处的主机存储器空间中的第一描述符(Address1)中的地址读取的数据(Data1)。类似地,第二目的地以太网驱动器可④对主机执行RDMA读取以传送从包含在第二目的地地址(LBA2)处的主机存储器空间中的第二描述符(Address2)中的地址读取的数据(Data2)。一旦到主机的数据传送完成,第一目的地以太网驱动器及第二目的地以太网驱动器中的每一者⑤便将确认发送到映射控制器304。在从两个以太网驱动器接收到确认之后,映射控制器304可⑥将NVMeoF状态封包发送到主机402。
图3A及图3B各自展示根据本发明的一或多个实施例的以太网开放通道驱动器。现在参考图3A,以太网驱动器212可支持开放通道功能性,例如对页面进行编程、读取页面及擦除块。可支持进一步功能性,例如检索装置几何形状或任何其它开放通道扩展功能性。
如图3A中所展示,以太网驱动器212包含以太网NIC 204、控制器206及NAND型存储器210。在一或多个实施例中,与图1A中的以太网驱动器112相比,以太网驱动器212不包含控制器快闪转译层(FTL)。以太网NIC 104可为以太网驱动器102与主机(例如,主计算机或装置)之间的接口。因此,主机可直接存取以太网驱动器102。控制器206包含错误校正码(ECC)管理器207及NAND控制器208。NAND控制器208可支持例如编程、读取及擦除的NANDAPI。在没有FTL映射的情况下,以太网开放通道驱动器212可将快闪管理卸载到上层(参见图3C)。因此,在高层级中操作的池级FTL可提供更大灵活性及更高效率。
现在参考图3B,以太网开放通道驱动器272包含具有网络内插器250的PCIe开放通道驱动器262。网络内插器250可包含用作以太网开放通道驱动器262与主机之间的接口的以太网NIC 204及PCIe接口252。PCIe开放通道驱动器262包含经配置以与网络内插器的PCIe接口252进行通信的另一PCIe接口252、控制器256及NAND型存储器260。控制器256包含错误校正码(ECC)管理器257及NAND控制器258。NAND控制器258可支持例如编程、读取及擦除的NAND API。在一或多个实施例中,与图1B中的以太网驱动器160相比,以太网开放通道驱动器262可不包含控制器快闪转译层(FTL),因为那个功能性可由主计算机或单独控制器来提供。以太网开放通道驱动器272可经实施有网络内插器250,其使主机可直接与PCIe开放通道驱动器162进行通信。
在一或多个实施例中,以太网开放通道驱动器212及272可发送或接收通过NVMe协议命令背负的开放通道命令(例如,读取、写入、擦除)。以太网适配器(例如,以太网NIC204)可为任何网络及输送协议—IP上的RDMA、RoC E(融合以太网上的RDMA)、iWARP(因特网广域RDMA协定)、TCP、UDP、IP等提供物理及数据链路层连接性。一或多个实施例中,架构上的NVMe协议实现从连接到网络的任何主机对以太网开放通道驱动器的远程存取,且RDMA网络实现从以太网开放通道装置到主机的高带宽且低延时的数据传送。根据本发明的一或多个实施例,以太网开放通道驱动器212及272可具有启动者功能性以及目标。因此,作为启动器的每一以太网开放通道驱动器可将命令发送到另一以太网开放通道驱动器。
图3C展示根据本发明的一或多个实施例的实例数据存储系统352。参考图3C,数据存储系统352是JBOF存储系统,其中以太网开放通道驱动器360经组织在一或多个JBOF外壳中。在一或多个实施例中,数据存储系统352包含映射控制器354、快闪转译层(FTL)映射356、以太网交换机308及多个以太网开放通道驱动器360。其它实施例含有比图3C中所展示更多或更少的组件。以太网交换机358可聚合从以太网开放通道驱动器经由上行链路数据路径359到上TOR交换机(未展示)的连接性。因此,远程主机可以所述驱动器的以太网NIC的全带宽连接到每一以太网开放通道驱动器(上行链路数据路径359配置有足够带宽以容纳在全带宽下个别地运行的所有驱动器)。此外,带宽是可扩展的且可实现多个以太网开放通道驱动器的全聚合。映射控制器354可在以太网开放通道驱动器JBOF中提供虚拟化层功能性。根据本发明的一或多个实施例,映射控制器354可将LBA映射到NAND中的地址(例如,块号、页面号、驱动器号等)或反之亦然。因此,以太网开放通道JBOF中的映射控制器354可提供JBOF的全局FTL管理,从而实现从上层进行块存取。
在一或多个实施例中,映射控制器354具有基于大型DRAM的LBA到物理页面的全局映射,从而实现从远程主机对任何以太网装置的快速存取。映射控制器354可经配置以从主机或以太网驱动器接收命令。通过控制器304接收的命令可包含NVMe管理命令及NVMe I/O命令(例如,读取、写入、刷新等)。此类NVMe命令可包含LBA作为参数(例如,命令特定Dword字段)。映射控制器354可经配置以参考及管理FTL映射356(例如,其是存储在控制器354可存取的计算机存储器中的数据结构或查找表(LUT))以确定对应于NVMe命令中所含的LBA的物理块及页面的地址。FTL映射356可将主机侧或文件系统逻辑块地址映射到NAND型存储器(例如,NAND 368)的物理地址。例如,当映射控制器354从主机接收含有LBA(SLBA)作为待读取的数据的起始地址的读取命令时,其可确定对应于寻址待读取的数据的物理位置的SLBA的物理地址(目的地块号、目的地页面号、目的地驱动器号)。
在一或多个实施例中,开放通道以太网驱动器360可各自包含以太网NIC 372、控制器362及NAND型存储器368。以太网NIC 372可经配置以用作以太网驱动器360与以太网交换机358之间的接口。控制器362可包含ECC管理器364与支持例如编程、读取及擦除的NANDAPI的NAND控制器366。在一或多个实施例中,以太网驱动器360可经配置以在彼此之间进行通信及/或传送数据(例如,通过以太网交换机358)。虽然当前所描述的实施例实施以太网驱动器360及以太网交换机358,但可结合控制器354来实施其它类型的驱动器及交换机。例如,以太网开放通道驱动器360可包含以太网开放通道驱动器212(参见图3A)或以太网开放通道驱动器272(参见图3B)。
图4展示根据本发明的一或多个实施例的数据存储系统的框图。图4中所展示的数据存储系统包含TOR交换机380、多个计算节点382(例如,计算机或计算装置)、包含FTL映射386的映射控制器384及多个JBOF 388。计算节点382可存取多个JBOF 388经由TOR交换机380的聚合连接性。映射控制器384可在多个JBOF 388中提供虚拟化层功能性。根据本发明的一或多个实施例,映射控制器384可将LBA映射到多个JBOF 388当中的NAND中的地址(例如,块号、页面号、驱动器号等)或反之亦然。
图5A到图5D展示说明根据本发明的一或多个实施例的用于存储数据的系统的实例操作的图。图5A到图5D中所说明的操作流程与图2A到图2D中所说明的操作流程类似,除了映射控制器304、映射表306及以太网驱动器312被映射控制器354、FTL映射356及以太网开放通道驱动器360替换之外。因此,将仅描述与图2A到图2D中所说明的实施例的不同之处,且将省略冗余描述。
图5A展示以太网开放通道驱动器JBOD或JBOF(例如,图3C中的数据存储系统352)中的单个LBA的实例读取命令流。图5A中的以太网开放通道驱动器JBOD包含经配置以通信地连接到主机502(例如,主计算机或装置)的一或多个以太网开放通道驱动器360及本身也经配置以通信地连接到主机502的映射控制器354。以太网开放通道驱动器360可发送或接收通过NVMe协议命令背负的开放通道命令(例如,读取、写入、擦除)。以太网开放通道驱动器360可包含支持页面的开放通道编程及读取与块的开放通道擦除的至少一个以太网开放通道驱动器。
在一或多个实施例中,参考图5A,远程主机502①通过NVMeoF输送将NVMe读取命令发送到映射控制器354。读取命令可包含NVMe队列条目(QE),所述NVMe队列条目具有(1)输入参数,例如,待从其读取数据的LBA及待读取的数据的长度,及(2)输出参数,例如,包含主机存储器空间中的待读取的数据待写入在其处的地址的描述符(例如,图1D中的描述符450)。
在一或多个实施例中,参考图5A,映射控制器354可②确定以太网开放通道驱动器中的对应于这个LBA的位置。在一或多个实施例中,使用FTL映射356,映射控制器354可确定对应于寻址待读取的数据的物理位置的LBA的(目的地块号、目的地页面号、目的地驱动器号)。目的地块号、目的地页面号、目的地驱动器号可分别识别目的地块、目的地页面及目的地以太网开放通道驱动器。
在一或多个实施例中,参考图5A,映射控制器354可③将具有目的地块号、目的地页面号及包含主机存储器空间中的地址的描述符的读取命令发送到目的地以太网开放通道驱动器。在一或多个实施例中,读取命令是开放通道读取命令。
在一或多个实施例中,参考图5A,目的地以太网开放通道驱动器从目的地块及目的地页面读取数据,且④对主机执行RDMA写入以将读取数据(Data)传送到包含在描述符中的主机存储器空间中的地址(Address)。参考图5A,一旦到主机的数据传送完成,目的地以太网开放通道驱动器便可⑤将确认发送到映射控制器354。接着,映射控制器354可⑥将NVMeoF状态封包发送到主机502。
图5B展示根据本发明的一或多个实施例的另一实例读取操作。更特定来说,图5B展示存取以太网开放通道驱动器JBOD(例如,图3C中的数据存储系统)中的多个LBA的读取命令流。例如,参考图5B,在远程主机502①通过NVMeoF输送将NVMe读取命令(包含(1)输入参数,例如,待从其读取数据的LBA,及待读取的数据的长度,及(2)输出参数,例如,包含主机存储器空间中的待从数据存储系统读取的数据待写入在其处的地址的描述符(例如,图1D中的描述符450))发送到映射控制器354之后,映射控制器354可②确定以太网开放通道驱动器中的对应于这个LBA的多个位置。在一或多个实施例中,使用FTL映射356,映射控制器354可确定(或识别)第一目的地以太网开放通道驱动器的地址(目的地Block1、目的地Page1、目的地Drive1),所述地址寻址待读取的数据的第一部分(Data1)的物理位置,且确定(或识别)第二目的地以太网开放通道驱动器的地址(目的地Block2、目的地Page2、目的地Drive2),所述地址寻址待读取的数据的第二部分(Data2)的物理位置。映射控制器354还可将NVMe读取命令转译成包含第一描述符(Descriptor1)的第一读取命令及包含第二描述符(Descriptor2)的第二读取命令。第一描述符及第二描述符可分别包含主机的存储器空间中的对应于经确定的两个目的地地址的两个地址,使得可分别将待从所述两个目的地地址读取的数据存储在包含在主机存储器空间的第一描述符及第二描述符中的地址处。接着,映射控制器354可③将具有目的地Block1、目的地Page1及第一描述符的第一读取命令发送到第一目的地以太网开放通道驱动器(由Drive1识别),且还将具有目的地Block2、目的地Page2及第二描述符的第二读取命令发送到第二目的地以太网开放通道驱动器(由Drive2识别)。第一目的地以太网开放通道驱动器可从目的地地址(Block1、Page1)读取数据(Data1)且④对主机执行RDMA写入操作以将读取数据(Data1)传送到包含在主机存储器空间中的第一描述符中的地址(Address1)。类似地,第二目的地以太网开放通道驱动器可从目的地地址(Block2、Page2)读取数据(Data2)且④对主机执行RDMA写入操作以将读取数据(Data2)传送到包含在主机存储器空间中的第二描述符中的地址(Address2)。一旦到主机的数据传送完成,第一目的地以太网开放通道驱动器及第二目的地以太网开放通道驱动器中的每一者便可⑤将确认发送到映射控制器354。在从两个以太网开放通道驱动器接收到确认之后,映射控制器354可⑥将NVMeoF状态封包发送到主机502。
参考图5C,其展示根据本发明的一或多个实施例的实例写入操作。更特定来说,图5C展示以太网开放通道驱动器JBOD或JBOF(例如,图3C中的数据存储系统352)中的单个LBA的实例写入命令流。
在一或多个实施例中,参考图5C,远程主机502①通过NVMeoF输送将NVMe写入命令发送到映射控制器354。写入命令可包含NVMe队列条目(QE),所述NVMe队列条目(QE)具有(1)输入参数,例如LBA及(2)输出参数,例如包含主机存储器空间的地址中的地址的描述符(例如,图1D中的描述符450)(Descriptor)。
在一或多个实施例中,参考图5C,映射控制器354可确定以太网开放通道驱动器中的对应于这个LBA的位置,例如,待写入的数据的物理位置的地址(目的地块号、目的地页面号、目的地驱动器号)。替代地,映射控制器354可②根据块分配策略(例如,从自由块当中的先进先出(FIFO)、用于延长快闪存储器的使用寿命或更好地利用存储装置的策略)来分配新块且确定经分配块的地址(目的地块号、目的地页面号、目的地驱动器号)作为待写入的数据的物理位置。所述地址(目的地块号、目的地页面号、目的地驱动器号)识别目的地块、目的地页面及目的地以太网开放通道驱动器。
在一或多个实施例中,参考图5C,映射控制器354可③将具有目的地块号、目的地页面号、驱动器号及包含主机存储器空间中的地址的描述符的开放通道编程命令发送到目的地以太网开放通道驱动器。目的地以太网开放通道驱动器④对主机执行RDMA读取以远程地从包含在目的地地址(在目的地以太网开放通道驱动器中)的主机存储器空间中的描述符中的地址(Address)读取数据(Data),或致使主机502远程地写入从包含在目的地地址(在目的地以太网开放通道驱动器中)的主机存储器空间中的描述符中的地址(Address)读取的数据(Data)。
参考图5C,一旦到主机的数据传送完成,目的地以太网开放通道驱动器便可⑤将确认发送到映射控制器354。映射控制器354可⑥用新位置(例如,新块及页面)更新FTL映射356。例如,映射控制器354可使旧位置无效且设置新位置。接着,映射控制器354可⑦将NVMeoF状态封包发送到主机502。
参考图5D,其展示根据本发明的一或多个实施例的另一实例写入操作。更特定来说,图5D展示存取以太网驱动器JBOD(例如,图3C中的数据存储系统)中的多个LBA的写入命令流。例如,参考图5D,在远程主机502①通过NVMeoF输送将NVMe写入命令(包含(1)输入参数,例如数据待写入在其处的LBA,及待写入的数据的长度,及(2)输出参数,例如,包含主机存储器空间中的待从其读取数据的地址的描述符(例如,图1D中的描述符450))发送到映射控制器354之后,映射控制器354可确定以太网开放通道驱动器中的对应于这个LBA的多个位置。在一或多个实施例中,使用FTL映射356,映射控制器354可确定(或识别)第一目的地以太网开放通道驱动器的第一地址(目的地Block1、目的地Page1、目的地Drive1),所述第一地址是数据的第一部分(Data1)待写入在其处的地址,且确定(或识别)第二目的地以太网开放通道驱动器的第二地址(目的地Block2、目的地Page2、目的地Drive2),所述第二地址是数据的第二部分(Data2)待写入在其处的地址。映射控制器354还可将NVMe写入命令转译成包含第一描述符(Descriptor1)的第一开放通道编程命令及包含第二描述符(Descriptor2)的第二开放通道编程命令。第一描述符及第二描述符可分别包含主机的存储器空间中的对应于经确定的两个目的地地址的两个地址,使得可分别将待从包含在第一描述符(Descriptor1)及第二描述符(Descriptor2)中的地址读取的数据存储在第一目的地地址(Block1、Page1、Drive1)及第二目的地地址(Block2、Page2、Drive2)处。替代地,映射控制器354可②根据块分配策略(例如,FIFO、用于延长快闪存储器的使用寿命或更好地利用存储装置的策略)来分配两个新块,且确定经分配块的地址(Block1、Page1、Drive1)及(Block2、Page2、Drive2)作为待写入的数据的物理位置。
参考图5D,接着,映射控制器304可③将具有Block1、Page1、Drive1及第一描述符(Descriptor1)的第一开放通道编程命令发送到第一目的地以太网开放通道驱动器(由驱动器1识别),且还将具有Block2、Page2、Drive2及第二描述符(Descriptor2)的第二开放通道编程命令发送到第二目的地以太网驱动器(由驱动器2识别)。第一目的地以太网开放通道驱动器可④对主机执行RDMA读取以传送从包含在第一目的地地址(Block1、Page1、Drive1)处的主机存储器空间中的第一描述符中的地址(Address1)读取的数据(Data1)。类似地,第二目的地以太网开放通道驱动器可④对主机执行RDMA读取以传送从包含在第二目的地地址(Block2、Page2、Drive2)处的主机存储器空间中的第二描述符中的地址(Address2)读取的数据(Data2)。一旦到主机的数据传送完成,第一目的开放通道以太网驱动器及第二目的开放通道以太网驱动器中的每一者⑤便可将确认发送到映射控制器354。在从两个以太网开放通道驱动器接收到确认之后,映射控制器354可⑥用新位置(例如,含有这些LBA的新块及页面)更新FTL映射356。接着,映射控制器354可⑦将NVMeoF状态封包发送到主机502。
在本发明的一或多个实施例中,一种用于读取经存储数据的系统(例如,图1C中的数据存储系统302)可包含:一或多个以太网驱动器(例如,图2A到图2B中的一或多个以太网驱动器312或图5A到图5B中的一或多个以太网开放通道驱动器360),其经配置以通信地连接到主机装置(例如,图2A到图2B中的主机402或图5A到图5B中的主机502);及控制器(例如,图2A到图2B中的映射控制器304、图5A到图5B中的映射控制器354),其与主机装置及一或多个以太网驱动器进行通信。控制器可从主机装置接收第一读取命令(例如,图2B或图5B中的NVMeF读取命令),所述第一读取命令包含第一组一或多个输入参数(例如,待从其读取数据的LBA,及待读取的数据的长度;参见图2B或图5B);及指示主机装置中的一或多个存储器缓冲器的第一组一或多个输出参数(例如,包含主机存储器空间中的待从数据存储系统读取的数据待写入在其处的地址;参见图2B或图5B)。控制器可使用一或多个输入参数中的至少一者及映射表(例如,图2B中的映射表306或图5B中的FTL映射356)来确定一或多个以太网驱动器当中的第一驱动器(例如,图2B中的第一目的以太驱动器或图5B中的Drive1)。控制器可将第一读取命令(例如,图2B或图5B中的NVMeF读取命令)转译成第二读取命令(例如,图2B中的Read(LBA1、LUN1、Descriptor1)或图5B中的Read(Block1、Page1、Drive1、Descriptor1)),所述第二读取命令包含指示主机装置中的一或多个存储器缓冲器的第二组一或多个输出参数(例如,图2B或图5B中的Descriptor1)。控制器可将第二读取命令发送到第一驱动器。响应于接收到第二读取命令,第一驱动器可独立于控制器将第一远程数据传送指令(例如,图2B或图5B中的RDMA Write(Data1、Address1))发送到主机装置。第一远程数据传送指令可包含从第一驱动器读取的经存储数据(例如,图2B或图5B中的Data1)以致使主机装置将从第一驱动器读取的经存储数据写入到由第二组一或多个输出参数(例如,图2B或图5B中的Descriptor1)指示的一或多个存储器缓冲器(例如,图2B或图5B中的Address1)。
在本发明的一或多个实施例中,第一组输出参数及第二组输出参数可彼此相同(例如,在图2A中,NVMeF读取命令的“Descriptor”与到以太网驱动器的读取命令的“Descriptor”相同)。
在本发明的一或多个实施例中,控制器可将第一读取命令(例如,图2B或图5B中的NVMeF读取命令)转译成第三读取命令(例如,图2B中的Read(LBA2、LUN2、Descriptor2)或图5B中的Read(Block2、Page2、Drive2、Descriptor2)),所述第三读取命令包含指示主机装置中的一或多个存储器缓冲器的第三组一或多个输出参数(例如,图2B或图5B中的Descriptor2)。控制器可使用一或多个输入参数中的至少一者及映射表来确定一或多个以太网驱动器当中的第二驱动器(例如,图2B中的第二目的地以太网驱动器或图5B中的Drive2)。控制器可将第三读取命令发送到第二驱动器。响应于接收到第三读取命令,第二驱动器可独立于控制器将第二远程数据传送指令(例如,图2B或图5B中的RDMA Write(Data2、Address2))发送到主机装置。第二远程数据传送指令可包含从第二驱动器读取的数据(例如,图2B或图5B中的Data2)以致使主机装置将从第二驱动器读取的数据写入到由第三组一或多个输出参数(例如,图2B或图5B中的Descriptor2)指示的一或多个存储器缓冲器(例如,图2B或图5B中的Address2)。
在本发明的一或多个实施例中,第一组输出参数、第二组输出参数及第三组输出参数可彼此不同(例如,在图2B中,NVMeF读取命令的“Descriptor”、第一读取命令的“Descriptor1”及第二读取命令的“Descriptor2”彼此不同)。第一组输出参数可包含第一存储器缓冲器描述符(例如,图1D中的描述符450),所述第一存储器缓冲器描述符包含主机装置中的第一存储器缓冲器地址(例如,图1D中的地址452)及第一数据长度(例如,图1D中的长度453)。第二组输出参数可包含第二存储器缓冲器描述符(例如,图1D中的描述符450),所述第二存储器缓冲器描述符包含主机装置中的第二存储器缓冲器地址及第二数据长度。第三组输出参数可包含第三存储器缓冲器描述符(例如,图1D中的描述符450),所述第三存储器缓冲器描述符包含主机装置中的第三存储器缓冲器地址及第三数据长度。
在本发明的一或多个实施例中,第一组输出参数及第二组输出参数可包含存储器缓冲器描述符的分散聚集列表(例如,图1D中的描述符450可为分散聚集列表(SGL)描述符,其可指向分散聚集列表中的其它SGL描述符)。
在本发明的一或多个实施例中,第一读取命令可为架构上的高速非易失性存储器(NVMeoF)读取命令(参见图2A、图2B、图5A及图5B)。第一远程数据传送指令可为远程直接存储器存取(RDMA)写入命令(参见图2A、图2B、图5A及图5B)。
在本发明的一或多个实施例中,一种用于存储数据的系统(例如,图1C中的数据存储系统302)可包含:一或多个以太网驱动器(例如,图2C到图2D中的一或多个以太网驱动器312或图5C到图5D中的一或多个以太网开放通道驱动器360),其经配置以通信地连接到主机装置(例如,图2C到图2D中的主机402或图5C到图5D中主的机502);及控制器(例如,图2C到图2D中的映射控制器304,图5C到图5D中的映射控制器354),其与主机装置及一或多个以太网驱动器进行通信。控制器可从主机装置接收第一写入命令(例如,图2D或图5D中的NVMeF写入命令)。第一写入命令可包含第一组一或多个输入参数(例如,数据待写入到其的LBA,及待写入的数据的长度;参见图2D或图5D)及指示主机中的一或多个存储器缓冲器的第一组一或多个输出参数(例如,包含主机存储器空间中的待从其读取数据的地址的描述符;参见图2D或图5D)。控制器可使用一或多个输入参数中的至少一者及映射表(例如,图2D中的映射表306或图5D中的FTL映射356)来确定一或多个以太网驱动器当中的第一驱动器(例如,图2D中的第一目的以太驱动器或图5D中的Drive1)。控制器可将第一写入命令(例如,图2D或图5D中的NVMeF写入命令)转译成第二写入命令(例如,图2D中的Write(LBA1、LUN1、Descriptor1)或图5D中的Program(Block1、Page1、Drive1、Descriptor1)。第二写入命令可包含指示主机装置中的一或多个存储器缓冲器的第二组一或多个输出参数(例如,图2D或图5D中的Descriptor1)。控制器可将第二写入命令发送到第一驱动器。响应于接收到第二写入命令,第一驱动器可独立于控制器将第一远程数据传送指令(例如,图2D或图5D中的RDMA Read(Data1、Address1))发送到主机装置。第一远程数据传送指令可致使主机装置从由第二组一或多个输出参数(例如,图2D或图5D中的Descriptor1)指示的一或多个存储器缓冲器(例如,图2D或图5D中的Address1)读取数据(例如,图2D或图5D中的Data1)且远程地将读取数据从一或多个存储器缓冲器写入到第一驱动器。
在本发明的一或多个实施例中,第一写入命令可为NVMeoF写入命令(参见图2C、图2D、图5C及图5D)。第一远程数据传送指令可为RDMA读取命令(参见图2C、图2D、图5C及图5D)。
图6A展示说明根据本发明的一或多个实施例的用于存储数据的系统的实例废弃项目收集操作的图。参考图6A,以太网开放通道驱动器JBOD包含映射控制器606、FTL映射608与两个以太网开放通道驱动器601及602。映射控制器606可在以太网开放通道驱动器JBOF中提供虚拟化层功能性。以太网开放通道JBOF中的映射控制器606可提供JBOF的全局FTL管理,从而实现从上层进行块存取。映射控制器606可经配置以参考及管理FTL映射608(例如,其是存储在控制器606可存取的计算机存储器中的数据结构或查找表(LUT))以确定对应于逻辑地址的物理块及页面的地址。FTL映射608可将主机侧或文件系统逻辑块地址映射到NAND型存储器(例如,映射控制器606的NAND)的物理地址。
在一或多个实施例中,存储系统的控制器可经配置以执行用以请求启动废弃项目收集的命令,所述命令包含识别一或多个以太网驱动器当中的源驱动器的源驱动器识别符。在正常操作期间,当最初与页面相关联的LBA的数据被覆写时,那个页面将变为无效。在其中NAND存储器不支持就地覆写数据的情况下,可替代地用新数据写入新页面(其可能在新块中)且可将含有先前数据的旧页面标记为无效。在一或多个实施例中,不时地,无效页面的堆积可通过废弃项目收集来“清理”,所述废弃项目收集可整理块中的剩余有效页面且将其复制到新块,从而将原始有效页面标记为无效。在一或多个实施例中,一旦块中的所有页面均无效,便可擦除所述块且将其返回到自由块池。在一或多个实施例中,SSD可在没有来自主机的交互或控制的情况下自主地执行废弃项目收集。在一或多个实施例中,开放通道驱动器可提供主机启动废弃项目收集的能力,其在此进行描述。主机可选择哪个(些)驱动器执行废弃项目收集,因为废弃项目收集操作可能干扰及削弱所述驱动器的性能能力(例如,读取及写入延时及吞吐量)。通过选择特定驱动器,主机可在任何时间控制哪些驱动器可执行废弃项目收集,由此优化性能。例如,主机可使用擦除码,所述擦除码可使数个驱动器能够执行废弃项目收集而其余驱动器可为有效的且可执行读取/写入请求服务没有性能损失。
例如,参考图6A,映射控制器606①从主机或以太网驱动器或以太网开放通道驱动器接收废弃项目收集命令。废弃项目收集命令可包含识别需要对其进行废弃项目收集的第一以太网开放通道驱动器601的驱动器号或索引。在开放通道部署(例如,图3C中的以太网开放通道驱动器JBOD或JBOF)中,废弃项目收集命令可致使以太网开放通道驱动器JBOD执行全局废弃项目收集(例如,用于SSD的RAID阵列的全局协调废弃项目收集机制)。
在一或多个实施例中,控制器可经配置以使用映射表来在一或多个以太网驱动器当中的目的地驱动器中的目的地地址处分配自由块。控制器可经配置以使用映射表以源驱动器识别符识别源驱动器中的源地址。例如,参考图6A,映射控制器606可使用FTL映射608以废弃项目收集命令中所含的逻辑地址确定以太网开放通道驱动器中的对应于这个LBA的源位置,例如待擦除的数据的物理位置的地址(源块号、源页面号、源驱动器号)。映射控制器606可②根据块分配策略(例如,FIFO、用于延长快闪存储器的使用寿命或更好地利用存储装置的策略)来分配新块且确定经分配块的地址(目的地块号、目的地页面号、目的地驱动器号)。
在一或多个实施例中,控制器可经配置以将移动命令发送到目的地驱动器。移动命令可包含源地址、目的地地址及目的地驱动器。移动命令可为开放通道移动命令。例如,参考图6A,映射控制器606可③将具有源块号、源页面号、目的地块号、目的地页面号及目的地驱动器号的开放通道移动命令发送到源以太网开放通道驱动器601(由源驱动器号识别)。
在一或多个实施例中,源驱动器可经配置以响应于接收到移动命令,从目的地驱动器中的经识别源地址读取数据。源驱动器可经配置以将编程命令发送到目的地驱动器且致使目的地驱动器将从经识别源地址读取的数据复制到目的地驱动器中的目的地地址处的自由块。编程命令可为开放通道编程命令。例如,参考图6A,源以太网开放通道驱动器601可从源块(由源块号及页面号识别)读取有效数据且④将开放通道编程命令作为启动器与目的地块号、目的地页面及从源块读取的数据一起发送到目的地以太网开放通道驱动器602(由目的地驱动器号识别)。这个编程命令可将有效数据从源块复制到新块(由目的地块号及页面号识别)。以这种方式,以太网开放通道驱动器601的启动器功能性可用于提供高带宽且没有瓶颈流。
在一或多个实施例中,源驱动器可经配置以响应于完成将数据复制到自由块,将确认命令发送到控制器。例如,参考图6A,一旦到目的地以太网开放通道驱动器601中的新块的数据复制完成,源以太网开放通道驱动器601便可⑤将确认发送到映射控制器606。
在一或多个实施例中,控制器可经配置以响应于从源驱动器接收到确认命令,用目的地地址更新映射表。控制器可经配置以响应于完成用目的地地址更新映射表,将擦除命令发送到源驱动器且致使源驱动器擦除第一驱动器中的经识别源地址处的数据。擦除命令可为开放通道擦除命令。例如,参考图6A,接着,映射控制器606可⑥用新位置(例如,新块及页面)更新FTL映射608。例如,映射控制器606可使旧位置无效且设置新位置。接着,映射控制器606可⑦擦除源开放通道驱动器601中的源块。因此,可在没有任何带内瓶颈的情况下执行全局废弃项目收集。
图6B展示说明根据本发明的一或多个实施例的用于存储数据的系统的实例解除分配操作(也称为修整或取消映射操作)的图。参考图6B,以太网开放通道驱动器JBOD或JBOF 610包含映射控制器606、FTL映射608与两个以太网开放通道驱动器601及602。映射控制器606可在以太网开放通道驱动器JBOF中提供虚拟化层功能性。以太网开放通道JBOF中的映射控制器606可提供JBOF的全局FTL管理,从而允许从上层进行块存取。映射控制器606可经配置以参考及管理FTL映射608(例如,其是存储在控制器606可存取的计算机存储器中的数据结构或查找表(LUT))以确定对应于逻辑地址的物理块及页面的地址。FTL映射608可将主机侧或文件系统逻辑块地址映射到NAND型存储器(例如,映射控制器606的NAND)的物理地址。
在一或多个实施例中,存储系统的控制器可经配置以接收解除分配(或修整或取消映射)命令以请求与逻辑地址或逻辑地址范围相关联的资源的解除分配。例如,参考图6B,映射控制器606①从主机(例如,图6B中的主机620)或以太网驱动器或以太网开放通道驱动器(例如,图6B中的以太网开放通道驱动器601)接收解除分配命令。解除分配命令可包含待擦除或释放的块的逻辑地址或逻辑地址范围(例如,LBA或(若干)LBA或LBA范围,例如其中所述范围可被表示为起始LBA及终止LBA,或起始LBA及长度)。
在一或多个实施例中,映射控制器606可经配置以响应于接收到包含LBA的解除分配命令,②解除分配分配给LBA的资源(例如,页面或块)。在一或多个实施例中,映射控制器606可通过将分配给LBA的块返回到自由块池来解除分配所述块。例如,参考图6B,接着,映射控制器606可③更新FTL映射608且使对应于LBA的旧位置无效。例如,FTL映射608中的条目可被标记为不再含有有效数据或无效。在一或多个实施例中,可从FTL映射608删除FTL映射608中包含LBA的条目。在一或多个实施例中,主机可通知用于存储数据的存储系统不再需要的且存储系统可针对其解除分配资源的存储位置(LBA)以辅助并改进任何后续废弃项目收集操作的效率。
图7A展示根据本发明的一或多个实施例的用于从以太网驱动器读取数据的方法。在简要概述中,所述方法包含步骤702到712。在步骤702,存储系统的控制器从主机装置接收第一读取命令。在步骤704,控制器识别一或多个以太网驱动器当中的第一驱动器及经识别第一驱动器中的第二地址。在步骤706,控制器将第二读取命令发送到经识别第一驱动器。在步骤708,经识别第一驱动器从经识别第一驱动器中的经识别第二地址读取数据。在步骤710,经识别第一驱动器将第一远程数据传送指令发送到主机装置且致使主机装置将从经识别第二地址读取的数据写入到包含第一描述符的地址。在步骤712,响应于完成将数据写入到主机装置的存储器空间中的包含在第一描述符中的地址,经识别第一驱动器将确认命令发送到控制器且控制器将状态响应发送到主机装置。其它实施例含有比图7A中所展示更多或更少的步骤。
更详细地,在步骤702,存储系统(例如,图1C中的数据存储系统302、图3C中的数据存储系统352)的控制器(例如,图2A中的映射控制器304、图5A中的映射控制器354)可从主机装置(例如,图2A中的主机402、图5A中的主机502)接收第一读取命令。第一读取命令可包含第一地址及内含主机装置的存储器空间中的地址的第一描述符。第一读取命令可为NVMeoF读取命令。在一或多个实施例中,存储系统可包含一或多个以太网驱动器(例如,图2B中的以太网驱动器312),所述以太网驱动器包含封装有NVMeoF的支持逻辑块地址(LBA)的NVMe读取及写入的至少一个驱动器。在一或多个实施例中,存储系统可包含一或多个以太网驱动器(例如,图5B中的以太网开放通道驱动器360),所述以太网驱动器包含支持页面的开放通道编程及读取与块的开放通道擦除的至少一个以太网开放通道驱动器。
在步骤704,控制器可使用映射表以第一地址识别一或多个以太网驱动器当中的第一驱动器及经识别第一驱动器中的第二地址。例如,第二地址可为以太网驱动器312中的(LBA、LUN)(参见图2A)或以太网开放通道驱动器360中的(Block、Page、Drive)(参见图5A)。在一或多个实施例中,映射表可为将物理LBA映射到虚拟LBA及虚拟LUN的查找表(LUT)(例如,图2A中的映射表306)。在一或多个实施例中,映射表可为确定对应于LBA的物理块及页面的地址的查找表(LUT)(例如,图5A中的FTL映射356)。
在一或多个实施例中,控制器可使用映射表以第一地址及第一描述符进一步识别一或多个以太网驱动器当中的第二驱动器、经识别第二驱动器中的第三地址及主机装置的存储器空间中的第二描述符(图2B及图5B中的Descriptor2)。例如,第三地址可为以太网驱动器312中的(LBA2、LUN2)(参见图2B)或以太网开放通道驱动器360中的(Block2、Page2、Drive2)(参见图5B)。
在步骤706,控制器可(例如,图2B中的映射控制器304、图5B中的映射控制器354)将第二读取命令发送到经识别第一驱动器。第二读取命令可包含第一描述符及经识别第二地址。在一或多个实施例中,第二读取命令可为NVMe读取命令(例如,图2A中的Read(LBA、LUN、Descriptor)。在一或多个实施例中,第二读取命令可为开放通道读取命令(例如,图5A中的Read(Block、Page、Drive、Descriptor))。
在一或多个实施例中,控制器可进一步将第三读取命令发送到经识别第二驱动器,第三读取命令包含第二描述符及经识别第三地址。在一或多个实施例中,第三读取命令可为NVMe读取命令。在一或多个实施例中,第三读取命令可为开放通道读取命令。在一或多个实施例中,参考图2B,第三读取命令可为NVMe Read(LBA2、LUN2、Descriptor2)。在一或多个实施例中,参考图5B,第三读取命令可为Open-Channel Read(Block2、Page2、Drive2、Descriptor2)。
在步骤708,响应于接收到第二读取命令,经识别第一驱动器可从经识别第一驱动器中的经识别第二地址(例如,图2A中的以太网驱动器312中的(LBA、LUN)中或图5A中的以太网开放通道驱动器360中的(Block、Page、Drive))读取数据。在一或多个实施例中,响应于接收到第三读取命令,经识别第二驱动器可从经识别第二驱动器中的经识别第三地址(例如,图2B中的以太网驱动器312中的(LBA2、LUN2)或图5B中的以太网开放通道驱动器360中的(Block2、Page2、Drive2))读取数据。
在步骤710中,经识别第一驱动器可将第一远程数据传送指令发送到主机装置且致使主机装置将从经识别第二地址读取的数据(图2A及图5A中的Data)写入到主机装置的存储器空间中的包含在第一描述符(图2A及图5A中的Descriptor)中的地址。第一远程数据传送指令可为RDMA写入命令。例如,参考图2A及图5A,第一远程数据传送指令是RDMA Write(Data、Address)。
在一或多个实施例中,经识别第二驱动器(例如,图2B中的以太网驱动器312、图5B中的以太网开放通道驱动器360)可将第二远程数据传送指令发送到主机装置且致使主机装置将从经识别第三地址读取的数据(图2B及图5B中的Data2)写入到主机装置的存储器空间中的包含在第二描述符中的地址(图2B及图5B中的Address2)。第二远程数据传送指令可为RDMA写入命令。例如,参考图2B及图5B,第二远程数据传送指令是RDMA Write(Data2、Address2)。
在步骤712,响应于完成将数据写入到主机装置的存储器空间中的包含在第一描述符中的地址(例如,图2A及图5A中的RDMA Write(Data、Address)),经识别第一驱动器可将确认命令(例如,图2A及图5A中的Acknowledgement)发送到控制器。响应于从经识别第一驱动器接收到确认命令,控制器可将状态响应(例如,图2A及图5A中的NVMeoF状态封包)发送到主机装置。
在一或多个实施例中,响应于完成将数据写入到主机装置的存储器空间中的包含在第二描述符中的地址(例如,图2B及图5B中的RDMA Write(Data2、Address2)),经识别第二驱动器可将确认命令(例如,图2B及图5B中的Acknowledgement)发送到控制器。响应于从经识别第一驱动器接收到确认命令及从经识别第二驱动器接收到确认命令,控制器可将状态响应(例如,图2B及图5B中的NVMeoF状态封包)发送到主机装置。
图7B展示根据本发明的一或多个实施例的用于从以太网驱动器读取经存储数据的方法。在简要概述中,所述方法包含步骤752到760。在步骤752,与主机装置及一或多个以太网驱动器进行通信的存储系统的控制器可从主机装置接收第一读取命令。在步骤754,控制器可确定与主机装置进行通信的一或多个以太网驱动器当中的第一驱动器。在步骤756,控制器可将第一读取命令转译成第二读取命令。在步骤758,控制器可将第二读取命令发送到第一驱动器。在步骤760,第一驱动器可独立于控制器将第一远程数据传送指令发送到主机装置。其它实施例含有比图7B中所展示更多或更少的步骤。
更详细地,在步骤752,与主机装置(例如,图2A到图2B中的主机402或图5A到图5B中的主机502)及一或多个以太网驱动器(例如,图2B中的以太网驱动器312、图5B中的以太网开放通道驱动器360)进行通信的存储系统(例如,图1C中的数据存储系统302)的控制器(例如,图2A到图2B中的映射控制器304、图5A到图5B中的映射控制器354)可从主机装置接收第一读取命令(例如,图2B或图5B中的NVMeF读取命令)。第一读取命令可包含第一组一或多个输入参数(例如,待从其读取数据的LBA,及待读取的数据的长度;参见图2B或图5B)及指示主机装置中的一或多个存储器缓冲器的第一组一或多个输出参数(例如,包含主机存储器空间中的待从数据存储系统读取的数据待写入在其处的地址;参见图2B或图5B)。在一或多个实施例中,第一读取命令可为架构上的高速非易失性存储器(NVMeoF)读取命令(参见图2A、图2B、图5A及图5B)。
在步骤754,可使用一或多个输入参数中的至少一者及映射表(例如,图2B中的映射表306或图5B中的FTL映射356)来确定与主机装置进行通信的一或多个以太网驱动器当中的第一驱动器(例如,图2B中的第一目的以太驱动器或图5B中的Drive1)。
在步骤756,可将第一读取命令(例如,图2B或图5B中的NVMeF读取命令)转译成第二读取命令(例如,图2B中的Read(LBA1、LUN1、Descriptor1)或图5B中的Read(Block1、Page1、Drive1、Descriptor1)。第二读取命令可包含指示主机装置中的一或多个存储器缓冲器的第二组一或多个输出参数(例如,图2B或图5B中的Descriptor1)。在一或多个实施例中,第一组输出参数及第二组输出参数可彼此相同(例如,在图2A中,NVMeF读取命令的“Descriptor”与到以太网驱动器的读取命令的“Descriptor”相同)。在一或多个实施例中,第一组输出参数及第二组输出参数可包含存储器缓冲器描述符的分散聚集列表(例如,图1D中的描述符450可为分散聚集列表(SGL)描述符,其可指向分散聚集列表中的其它SGL描述符)。
在一或多个实施例中,可将第一读取命令(例如,图2B或图5B中的NVMeF读取命令)转译成第三读取命令(例如,图2B中的Read(LBA2、LUN2、Descriptor2)或图5B中的Read(Block2、Page2、Drive2、Descriptor2))。第三读取命令可包含指示主机装置中的一或多个存储器缓冲器的第三组一或多个输出参数(例如,图2B或图5B中的Descriptor2)。可使用一或多个输入参数中的至少一者及映射表来确定一或多个以太网驱动器当中的第二驱动器(例如,图2B中的第二目的以太驱动器或图5B中的Drive2)。可将第三读取命令发送到第二驱动器。
在一或多个实施例中,第一组输出参数、第二组输出参数及第三组输出参数可彼此不同(例如,在图2B中,NVMeF读取命令的“Descriptor”、第一读取命令的“Descriptor1”及第二读取命令的“Descriptor2”彼此不同)。第一组输出参数可包含第一存储器缓冲器描述符(例如,图1D中的描述符450),所述第一存储器缓冲器描述符包含主机装置中的第一存储器缓冲器地址(例如,图1D中的地址452)及第一数据长度(例如,图1D中的长度453)。第二组输出参数可包含第二存储器缓冲器描述符(例如,图1D中的描述符450),所述第二存储器缓冲器描述符包含主机装置中的第二存储器缓冲器地址及第二数据长度。第三组输出参数可包含第三存储器缓冲器描述符(例如,图1D中的描述符450),所述第三存储器缓冲器描述符包含主机装置中的第三存储器缓冲器地址及第三数据长度。
在步骤758,可将第二读取命令发送到第一驱动器。
在步骤760,响应于接收到第二读取命令,通过第一驱动器可独立于控制器将第一远程数据传送指令(例如,图2B或图5B中的RDMA Write(Data1、Address1))发送到主机装置。第一远程数据传送指令可包含从第一驱动器读取的经存储数据(例如,图2B或图5B中的Data1)以致使主机装置将从第一驱动器读取的经存储数据写入到由第二组一或多个输出参数(例如,图2B或图5B中的Descriptor1)指示的一或多个存储器缓冲器(例如,图2B或图5B中的Address1)。在一或多个实施例中,第一远程数据传送指令可为远程直接存储器存取(RDMA)写入命令(参见图2A、图2B、图5A及图5B)。
在一或多个实施例中,响应于接收到第三读取命令,可独立于控制器将第二远程数据传送指令(例如,图2B或图5B中的RDMA Write(Data2、Address2))发送到主机装置。第二远程数据传送指令可包含从第二驱动器读取的数据(例如,图2B或图5B中的Data2)以致使主机装置将从第二驱动器读取的数据写入到由第三组一或多个输出参数(例如,图2B或图5B中的Descriptor2)指示的一或多个存储器缓冲器(例如,图2B或图5B中的Address2)。
图8A展示根据本发明的一或多个实施例的用于将数据写入到以太网驱动器的方法。在简要概述中,所述方法包含步骤802到816。在步骤802,存储系统的控制器从主机装置接收第一写入命令。在步骤804,控制器识别一或多个以太网驱动器当中的第一驱动器及经识别第一驱动器当中的第二地址。在步骤806,控制器可根据块分配策略来分配新块。在步骤808,控制器将第二写入命令发送到经识别第一驱动器。在步骤810,经识别第一驱动器将第一远程数据传送指令发送到主机装置且致使主机装置从主机装置的存储器空间中的包含在第一描述符中的地址读取数据及远程地在经识别第一驱动器中的经识别第二地址处写入从包含在第一描述符中的地址读取的数据。在步骤812,响应于完成从包含在第一描述符中的地址读取数据,经识别第一驱动器将确认命令发送到控制器。在步骤814,控制器可用新位置更新映射表。在步骤816,响应于从经识别第一驱动器接收到确认命令,控制器将状态响应发送到主机装置。其它实施例含有比图8A中所展示更多或更少的步骤。
更详细地,在步骤802,存储系统(例如,图1C中的数据存储系统302、图3C中的数据存储系统352)的控制器(例如,图2C中的映射控制器304、图5C中的映射控制器354)可从主机装置(例如,图2C中的主机402、图5C中的主机502)接收第一写入命令。第一写入命令可包含第一地址(例如,图2C及图5C中的LBA)及对主机装置的存储器空间中的地址的第一描述符(例如,图2C及图5C中的Descriptor)。第一写入命令可为NVMeoF写入命令。在一或多个实施例中,存储系统可包含一或多个以太网驱动器(例如,图2D中的以太网驱动器312),所述以太网驱动器包含封装有NVMeoF的支持逻辑块地址(LBA)的NVMe读取及写入的至少一个驱动器。在一或多个实施例中,存储系统可包含一或多个以太网驱动器(例如,图5D中的以太网开放通道驱动器360),所述以太网驱动器包含支持页面的开放通道编程及读取与块的开放通道擦除的至少一个以太网开放通道驱动器。
在步骤804,控制器可使用映射表以第一地址识别一或多个以太网驱动器当中的第一驱动器及经识别第一驱动器中的第二地址。例如,第二地址可为以太网驱动器312中的(LBA、LUN)(参见图2C)或以太网开放通道驱动器360中的(Block、Page、Drive)(参见图5C)。在一或多个实施例中,映射表可为将物理LBA映射到虚拟LBA及虚拟LUN的查找表(LUT)(例如,图2C中的映射表306)。在一或多个实施例中,映射表可为确定对应于LBA的物理块及页面的地址的查找表(LUT)(例如,图5C中的FTL映射356)。
在一或多个实施例中,控制器可进一步使用映射表以第一地址及第一描述符识别一或多个以太网驱动器当中的第二驱动器、经识别第二驱动器中的第三地址及包含主机装置的存储器空间中的地址的第二描述符(图2D及图5D中的Descriptor2)。例如,第三地址可为以太网驱动器312中的(LBA2、LUN2)(参见图2D)或以太网开放通道驱动器360中的(Block2、Page2、Drive2)(参见图5D)。
在步骤806,控制器(例如,图5C中的映射控制器354)可根据块分配策略(例如,自由块当中的先进先出(FIFO)、用于延长快闪存储器的使用寿命或更好地利用存储装置的策略)来分配新块且确定经分配块的地址作为待写入的数据的物理位置。控制器可使用映射表(例如,FTL映射356)以经分配块的地址识别一或多个以太网驱动器当中的第一驱动器及经识别第一驱动器中的第二地址(例如,图5C中的以太网开放通道驱动器360中的(Block、Page、Drive、Descriptor))。
在步骤808,控制器可将第二写入命令发送到经识别第一驱动器。第二写入命令可包含第一描述符及经识别第二地址。在一或多个实施例中,第二写入命令可为NVMe写入命令(例如,图2C中的Write(LBA、LUN、Descriptor))。在一或多个实施例中,第二写入命令可为开放通道编程命令(例如,图5C中的Program(Block、Page、Drive、Descriptor))。
在一或多个实施例中,控制器可进一步将第三写入命令发送到经识别第二驱动器。第三写入命令可包含第二描述符及经识别第三地址。在一或多个实施例中,第三写入命令可为NVMe写入命令。在一或多个实施例中,第三写入命令可为开放通道编程命令。在一或多个实施例中,参考图2D,第三写入命令可为NVMe Write(LBA2、LUN2、Descriptor2)。在一或多个实施例中,参考图5D,第三写入命令可为Open-Channel Program(Block2、Page2、Drive2、Descriptor2)。
在步骤810,响应于接收到第二写入命令,经识别第一驱动器(例如,图2C中的以太网驱动器312、图5C中的以太网开放通道驱动器360)可将第一远程数据传送指令发送到主机装置且致使主机装置从主机装置的存储器空间中的包含在第一描述符中的地址(图2C及图5C中的Address)读取数据(图2C及图5C中的Data)及远程地在经识别第一驱动器中的经识别第二地址处写入从主机装置的存储器空间中的包含在第一描述符中的地址读取的数据。第一远程数据传送指令可为RDMA读取命令。例如,参考图2C及图5C,第一远程数据传送指令是RDMA Read(Data、Address)。
在一或多个实施例中,响应于接收到第三写入命令,经识别第二驱动器(例如,图2D中的以太网驱动器312、图5D中的以太网开放通道驱动器360)可将第二远程数据传送指令发送到主机装置且致使主机装置从主机装置的存储器空间中的包含在第二描述符中的地址(图2D及图5D中的Address2)读取数据(图2D及图5D中的Data2)及远程地在经识别第二驱动器中的经识别第三地址处写入从主机装置的存储器空间中的包含在第二描述符中的地址读取的数据。第二远程数据传送指令可为RDMA读取命令。例如,参考图2D及图5D,第二远程数据传送指令是RDMA Read(Data2、Address2)。
在步骤812,响应于完成从主机装置的存储器空间中的包含在第一描述符中的地址读取数据(例如,图2C及图5C中的RDMA Read(Data、Address)),经识别第一驱动器可将确认命令(例如,图2C及图5C中的Acknowledgement)发送到控制器。在一或多个实施例中,响应于完成从主机装置的存储器空间中的包含在第二描述符中的地址读取数据(例如,图2D及图5D中的RDMA Read(Data2、Address2)),经识别第二驱动器可将确认命令(例如,图2D及图5D中的Acknowledgement)发送到控制器。
在步骤814,控制器(例如,图5C中的映射控制器354)可用新位置(例如,新块及页面)更新映射表(例如,图5C中的FTL映射356)。例如,映射控制器354可使旧位置无效且设置新位置。
在步骤816,响应于从经识别第一驱动器接收到确认命令,控制器可将状态响应(例如,图2C及图5C中的NVMeoF状态封包)发送到主机装置。在一或多个实施例中,响应于从经识别第一驱动器接收到确认命令及从经识别第二驱动器接收到确认命令,控制器可将状态响应(例如,图2D及图5D中的NVMeoF状态封包)发送到主机装置。
图8B展示根据本发明的一或多个实施例的用于将数据写入到以太网驱动器的方法。在简要概述中,所述方法包含步骤852到860。在步骤852,与主机装置及一或多个以太网驱动器进行通信的控制器可从主机装置接收第一写入命令。在步骤854,控制器可确定一或多个以太网驱动器当中的第一驱动器。在步骤856,控制器可将第一写入命令转译成第二写入命令。在步骤858,控制器可将第二写入命令发送到第一驱动器。在步骤860,第一驱动器可将第一远程数据传送指令发送到主机装置。其它实施例含有比图8B中所展示更多或更少的步骤。
更详细地,在步骤852,与主机装置(例如,图2C到图2D中的主机402或图5C到图5D中的主机502)及一或多个以太网驱动器(例如,图5C到图5D中的以太网驱动器312、图5C到图5D中的以太网开放通道驱动器360)进行通信的控制器(例如,图2C到图2D中的映射控制器304、图5C到图5D中的映射控制器354)可从主机装置接收第一写入命令(例如,图2D或图5D中的NVMeF写入命令)。在一或多个实施例中,第一写入命令可包含第一组一或多个输入参数(例如,数据待写入到其的LBA,及待写入的数据的长度;参见图2D或图5D)及指示主机中的一或多个存储器缓冲器的第一组一或多个输出参数(例如,包含主机的存储器空间中的待从其读取数据的地址的描述符;参见图2D或图5D)。在一或多个实施例中,第一写入命令可为NVMeoF写入命令(参见图2C、图2D、图5C及图5D)。
在步骤854,可使用一或多个输入参数中的至少一者及映射表(例如,图2D中的映射表306或图5D中的FTL映射356)来确定与主机装置进行通信的一或多个以太网驱动器当中的第一驱动器(例如,图2D中的第一目的以太驱动器或图5D中的Drive1)。
在步骤856,可将第一写入命令(例如,图2D或图5D中的NVMeF写入命令)转译成第二写入命令(例如,图2D中的Write(LBA1、LUN1、Descriptor1)或图5D中的Program(Block1、Page1、Drive1、Descriptor1)。在一或多个实施例中,第二写入命令可包含指示主机装置中的一或多个存储器缓冲器的第二组一或多个输出参数(例如,图2D或图5D中的Descriptor1)。
在步骤858,可将第二写入命令发送到第一驱动器。
在步骤860,响应于接收到第二写入命令,可独立于控制器将第一远程数据传送指令(例如,图2D或图5D中的RDMA Read(Data1、Address1))发送到主机装置。在一或多个实施例中,第一远程数据传送指令可致使主机装置从由第二组一或多个输出参数(例如,图2D或图5D中的Descriptor1)指示的一或多个存储器缓冲器(例如,图2D或图5D中的Address1)读取数据(例如,图2D或图5D中的Data1)且远程地将从一或多个存储器缓冲器读取的数据写入到第一驱动器。在一或多个实施例中,第一远程数据传送指令可为RDMA读取命令。
图9展示根据本发明的一或多个实施例的用于废弃项目收集的方法。在简要概述中,所述方法包含步骤902到916。在步骤902,存储系统的控制器接收废弃项目收集命令,所述废弃项目收集命令包含识别一或多个以太网驱动器当中的第一驱动器的第一驱动器识别符。在步骤904,控制器在一或多个以太网驱动器当中的目的地驱动器中的目的地地址处分配自由块。在步骤906,控制器可识别第一驱动器中的源地址。在步骤908,控制器将移动命令发送到第一驱动器。在步骤910,第一驱动器从第一驱动器中的经识别源地址读取数据。在步骤912。在步骤914,响应于完成将数据复制到自由块,第一驱动器可将确认命令发送到控制器。在步骤916,响应于从第一驱动器接收到确认命令,控制器用目的地地址更新映射表。在步骤918,控制器将擦除命令发送到第一驱动器且致使第一驱动器擦除经识别源地址处的数据。其它实施例含有比图9中所展示更多或更少的步骤。
更详细地,在步骤902,存储系统的控制器(例如,图6A中的映射控制器606)可执行废弃项目收集命令,所述废弃项目收集命令包含识别一或多个以太网驱动器(例如,图6A中的以太网开放通道驱动器601及602)当中的第一驱动器(例如,图6A中的以太网开放通道驱动器601)的第一驱动器识别符。一或多个以太网驱动器可包含支持页面的开放通道编程及读取与块的开放通道的移动及擦除的至少一个以太网开放通道驱动器。
在步骤904,控制器可使用映射表(例如,图6A中的FTL映射608)在一或多个以太网驱动器当中的目的地驱动器(例如,图6A中的以太网开放通道驱动器602)中的目的地地址(例如,目的地块号、目的地页面号、目的地驱动器号)处分配自由块。
在步骤906,控制器可使用映射表以第一驱动器识别符识别第一驱动器中的源地址(例如,源块号、源页面号、源驱动器号)。
在步骤908,控制器可将移动命令发送到第一驱动器(例如,图6A中的以太网开放通道驱动器601)。移动命令可包含源地址、目的地地址及识别目的地驱动器的识别符。移动命令可为开放通道移动命令。
在步骤910,响应于接收到移动命令,第一驱动器可从第一驱动器中的经识别源地址读取数据。
在步骤912,第一驱动器(例如,图6A中的以太网开放通道驱动器601)可将编程命令发送到目的地驱动器(例如,图6A中的以太网开放通道驱动器602)且致使目的地驱动器将从经识别源地址读取的数据复制到目的地驱动器中的目的地地址处的自由块。编程命令可为开放通道编程命令。在一或多个实施例中,第一驱动器将开放通道编程命令作为启动器与目的地块号、目的地页面及从源块读取的数据一起发送到目的地驱动器。
在步骤914,响应于完成将数据复制到自由块,第一驱动器可将确认命令发送到控制器(例如,图6A中的映射控制器606)。
在步骤916,响应于从第一驱动器接收到确认命令,控制器可用目的地地址更新映射表(例如,图6A中的FTL映射608)。例如,映射控制器606可使旧位置无效且设置新位置。
在步骤918,响应于完成用目的地地址更新映射表,控制器可将擦除命令发送到第一驱动器且致使第一驱动器擦除第一驱动器中的经识别源地址处的数据。擦除命令可为开放通道擦除命令。在一或多个实施例中,可在擦除后在映射表中标记经擦除块。
图10展示根据本发明的一或多个实施例的用于资源解除分配的方法。在简要概述中,所述方法包含步骤1002到10066。在步骤1002,存储系统的控制器接收包含第一地址的解除分配命令。在步骤1004,控制器在一或多个以太网驱动器当中的驱动器当中的第一地址处解除分配资源。在步骤1006,响应于解除分配资源,控制器更新映射表以将第一地址处的资源指示为不再含有有效数据或无效。其它实施例含有比图10中所展示更多或更少的步骤。
更详细地,在步骤1002,存储系统(例如,图6B中的以太网开放通道驱动器JBOD或JBOF 610)的控制器(例如,图6B中的映射控制器606)接收包含第一地址(例如,图6B中的LBA)的解除分配命令。在一或多个实施例中,存储系统的控制器可从主机(例如,图6B中的主机620)、以太网驱动器(例如,图1C中的以太网驱动器312)或以太网开放通道驱动器(例如,图6B中的以太网开放通道驱动器601、602)中的一者接收解除分配命令。在一或多个实施例中,解除分配命令可为用以请求解除分配与逻辑地址或逻辑地址范围相关联的资源的修整命令或取消映射命令。
在步骤1004,控制器使用映射表(例如,图6B中的FTL映射608)在一或多个以太网驱动器当中的驱动器中的第一地址处解除分配资源。在一或多个实施例中,资源可为待擦除或释放的块。在一或多个实施例中,第一地址可为与待擦除或释放的块相关联的逻辑地址或逻辑地址范围。例如,解除分配命令可包含待擦除或释放的块的逻辑地址或逻辑地址范围(例如,LBA或(若干)LBA或LBA范围,例如其中所述范围可被表示为例如起始LBA及终止LBA,或起始LBA及长度)。在一或多个实施例中,一或多个以太网驱动器可包含至少一个以太网开放通道驱动器。在一或多个实施例中,第一地址处的资源可通过将所述资源返回到自由资源池(例如,自由块池)来解除分配。
在步骤1004,响应于解除分配资源,控制器可更新映射表以将第一地址处的资源指示为不再含有有效数据或无效。在一或多个实施例中,可通过将映射表中的条目的标记为不再含有有效数据或无效来更新映射表。在一或多个实施例中,可通过从映射表删除包含经解除分配的块LBA的条目来更新映射表。
虽然本发明已参考其特定实施例进行描述及说明,但这些描述及说明并非限制性的。所属领域的技术人员应理解,可在不脱离如由所附权利要求书界定的本发明的真实精神及范围的情况下进行各种改变且可用等效物替换。附图可能不一定按比例绘制。由于制造工艺及公差,本发明中的艺术表现形式与实际设备之间可能存在区别。可能存在未具体地说明的本发明的其它实施例。说明书及附图应被认为是说明性的而非限制性的。可进行修改以使特定情况、材料、物质组合物、方法或过程适应于本发明的目的、精神及范围。所有此类修改意在落入所附权利要求书的范围内。虽然已参考以特定顺序执行的特定操作描述本文中所揭示的方法,但将理解,可在不脱离本发明的教示的情况下将这些操作进行组合、细分或重新排序以形成等效方法。因此,除非本文中具体地指示,否则所述操作的顺序及分组并非限制性的。

Claims (20)

1.一种用于读取经存储数据的系统,其包括:
一或多个以太网驱动器,其经配置以通信地连接到主机装置;及
控制器,其与所述主机装置及所述一或多个以太网驱动器进行通信,所述控制器经配置以:
从所述主机装置接收第一读取命令,所述第一读取命令包含第一组一或多个输入参数及指示所述主机装置中的一或多个存储器缓冲器的第一组一或多个输出参数;
使用所述一或多个输入参数中的至少一者及映射表来确定所述一或多个以太网驱动器当中的第一驱动器;
将所述第一读取命令转译成第二读取命令,所述第二读取命令包含指示所述主机装置中的一或多个存储器缓冲器的第二组一或多个输出参数;及
将所述第二读取命令发送到所述第一驱动器,
其中所述第一驱动器经配置以
响应于接收到所述第二读取命令,独立于所述控制器将第一远程数据传送指令发送到所述主机装置,所述第一远程数据传送指令包含从所述第一驱动器读取的经存储数据以致使所述主机装置将从所述第一驱动器读取的所述经存储数据写入到由所述第二组一或多个输出参数指示的所述一或多个存储器缓冲器。
2.根据权利要求1所述的系统,其中所述第一组输出参数及所述第二组输出参数是彼此相同的。
3.根据权利要求1所述的系统,其中所述控制器进一步经配置以:
将所述第一读取命令转译成第三读取命令,所述第三读取命令包含指示所述主机装置中的一或多个存储器缓冲器的第三组一或多个输出参数;
使用所述一或多个输入参数中的至少一者及所述映射表来确定所述一或多个以太网驱动器当中的第二驱动器;且
将所述第三读取命令发送到所述第二驱动器,
其中所述第二驱动器经配置以:
响应于接收到所述第三读取命令,独立于所述控制器将第二远程数据传送指令发送到所述主机装置,所述第二远程数据传送指令包含从所述第二驱动器读取的数据以致使所述主机装置将从所述第二驱动器读取的所述数据写入到由所述第三组一或多个输出参数指示的所述一或多个存储器缓冲器。
4.根据权利要求3所述的系统,
其中所述第一组输出参数、所述第二组输出参数及所述第三组输出参数是彼此不同的,
所述第一组输出参数包含第一存储器缓冲器描述符,所述第一存储器缓冲器描述符包括所述主机装置中的第一存储器缓冲器地址及第一数据长度,
所述第二组输出参数包含第二存储器缓冲器描述符,所述第二存储器缓冲器描述符包括所述主机装置中的第二存储器缓冲器地址及第二数据长度,且
所述第三组输出参数包含第三存储器缓冲器描述符,所述第三存储器缓冲器描述符包括所述主机装置中的第三存储器缓冲器地址及第三数据长度。
5.根据权利要求1所述的系统,其中所述第一组输出参数及所述第二组输出参数包含存储器缓冲器描述符的分散聚集列表。
6.根据权利要求1所述的系统,其中
所述第一读取命令是架构上的高速非易失性存储器NVMeoF读取命令,且
所述第一远程数据传送指令是远程直接存储器存取RDMA写入命令。
7.一种用于存储数据的系统,其包括:
一或多个以太网驱动器,其经配置以通信地连接到主机装置;及
控制器,其与所述主机装置及所述一或多个以太网驱动器进行通信,所述控制器经配置以:
从所述主机装置接收第一写入命令,所述第一写入命令包含第一组一或多个输入参数及指示所述主机中的一或多个存储器缓冲器的第一组一或多个输出参数;
使用所述一或多个输入参数中的至少一者及映射表来确定所述一或多个以太网驱动器当中的第一驱动器;
将所述第一写入命令转译成第二写入命令,所述第二写入命令包含指示所述主机装置中的一或多个存储器缓冲器的第二组一或多个输出参数;且
将所述第二写入命令发送到所述第一驱动器,
其中所述第一驱动器经配置以
响应于接收到所述第二写入命令,独立于所述控制器将第一远程数据传送指令发送到所述主机装置,所述第一远程数据传送指令用以致使所述主机装置从由所述第二组一或多个输出参数指示的所述一或多个存储器缓冲器读取数据且远程地将来自所述一或多个存储器缓冲器的所述读取数据写入到所述第一驱动器。
8.根据权利要求7所述的系统,其中
所述第一写入命令是NVMeoF写入命令,且
所述第一远程数据传送指令是RDMA读取命令。
9.一种用于读取经存储数据的方法,其包括:
通过与主机装置及一或多个以太网驱动器进行通信的存储系统的控制器,从所述主机装置接收第一读取命令,所述第一读取命令包含第一组一或多个输入参数及指示所述主机装置中的一或多个存储器缓冲器的第一组一或多个输出参数;
通过所述控制器,使用所述一或多个输入参数中的至少一者及映射表来确定与所述主机装置进行通信的一或多个以太网驱动器当中的第一驱动器;
通过所述控制器,将所述第一读取命令转译成第二读取命令,所述第二读取命令包含指示所述主机装置中的一或多个存储器缓冲器的第二组一或多个输出参数;
通过所述控制器,将所述第二读取命令发送到所述第一驱动器;及
响应于接收到所述第二读取命令,通过所述第一驱动器独立于所述控制器将第一远程数据传送指令发送到所述主机装置,所述第一远程数据传送指令包含从所述第一驱动器读取的经存储数据以致使所述主机装置将从所述第一驱动器读取的所述经存储数据写入到由所述第二组一或多个输出参数指示的所述一或多个存储器缓冲器。
10.根据权利要求9所述的方法,其中所述第一组输出参数及所述第二组输出参数是彼此相同的。
11.根据权利要求9所述的方法,其进一步包括:
通过所述控制器,将所述第一读取命令转译成第三读取命令,所述第三读取命令包含指示所述主机装置中的一或多个存储器缓冲器的第三组一或多个输出参数;
通过所述控制器,使用所述一或多个输入参数中的至少一者及所述映射表来确定所述一或多个以太网驱动器当中的第二驱动器;
通过所述控制器,将所述第三读取命令发送到所述第二驱动器;及
响应于接收到所述第三读取命令,通过所述控制器,独立于所述控制器将第二远程数据传送指令发送到所述主机装置,所述第二远程数据传送指令包含从所述第二驱动器读取的数据以致使所述主机装置将从所述第二驱动器读取的所述数据写入到由所述第三组一或多个输出参数指示的所述一或多个存储器缓冲器。
12.根据权利要求11所述的方法,
其中所述第一组输出参数、所述第二组输出参数及所述第三组输出参数是彼此不同的,
所述第一组输出参数包含第一存储器缓冲器描述符,所述第一存储器缓冲器描述符包括所述主机装置中的第一存储器缓冲器地址及第一数据长度,
所述第二组输出参数包含第二存储器缓冲器描述符,所述第二存储器缓冲器描述符包括所述主机装置中的第二存储器缓冲器地址及第二数据长度,且
所述第三组输出参数包含第三存储器缓冲器描述符,所述第三存储器缓冲器描述符包括所述主机装置中的第三存储器缓冲器地址及第三数据长度。
13.根据权利要求9所述的方法,其中所述第一组输出参数及所述第二组输出参数包含存储器缓冲器描述符的分散聚集列表。
14.根据权利要求9所述的方法,其中
所述第一读取命令是架构上的高速非易失性存储器NVMeoF读取命令,且
所述第一远程数据传送指令是远程直接存储器存取RDMA写入命令。
15.一种用于存储数据的方法,其包括:
通过与主机装置及一或多个以太网驱动器进行通信的控制器,从所述主机装置接收第一写入命令,所述第一写入命令包含第一组一或多个输入参数及指示所述主机中的一或多个存储器缓冲器的第一组一或多个输出参数;
通过所述控制器,使用所述一或多个输入参数中的至少一者及映射表来确定与所述主机装置进行通信的所述一或多个以太网驱动器当中的第一驱动器;
通过所述控制器,将所述第一写入命令转译成第二写入命令,所述第二写入命令包含指示所述主机装置中的一或多个存储器缓冲器的第二组一或多个输出参数;
通过所述控制器,将所述第二写入命令发送到所述第一驱动器,
响应于接收到所述第二写入命令,通过所述控制器,独立于所述控制器将第一远程数据传送指令发送到所述主机装置,所述第一远程数据传送指令用以致使所述主机装置从由所述第二组一或多个输出参数指示的所述一或多个存储器缓冲器读取数据且远程地将来自所述一或多个存储器缓冲器的所述读取数据写入到所述第一驱动器。
16.根据权利要求15所述的方法,其中
所述第一写入命令是NVMeoF写入命令,且
所述第一远程数据传送指令是RDMA读取命令。
17.一种用于在存储系统中进行废弃项目收集的方法,其包括:
通过存储系统的控制器,执行废弃项目收集命令,所述废弃项目收集命令包含识别一或多个以太网驱动器当中的第一驱动器的第一驱动器识别符;
通过所述控制器,使用映射表以所述第一驱动器识别符在一或多个以太网驱动器当中的目的地驱动器中的目的地地址处分配自由块;
通过所述控制器,使用所述映射表以所述第一驱动器识别符识别所述第一驱动器中的源地址;
通过所述控制器,将移动命令发送到所述第一驱动器,所述移动命令包含所述源地址、所述目的地地址及所述目的地驱动器;
响应于接收到所述移动命令,通过所述第一驱动器从所述第一驱动器中的所述经识别源地址读取数据;及
通过所述第一驱动器将编程命令发送到所述目的地驱动器且致使所述目的地驱动器将从所述经识别源地址读取的所述数据复制到所述目的地驱动器中的所述目的地地址处的所述自由块。
18.根据权利要求17所述的方法,其中
所述一或多个以太网驱动器包含至少一个以太网开放通道驱动器,所述以太网开放通道驱动器支持页面的开放通道编程及读取以及块的开放通道移动及擦除,
所述移动命令是开放通道移动命令,且
所述编程命令是开放通道编程命令。
19.根据权利要求17所述的方法,其进一步包括:
响应于完成将所述数据复制到所述自由块,通过所述第一驱动器将确认命令发送到所述控制器;
响应于从所述第一驱动器接收到所述确认命令,通过所述控制器,用所述目的地地址更新所述映射表;及
响应于完成用所述目的地地址更新所述映射表,通过所述控制器,将擦除命令发送到所述第一驱动器且致使所述第一驱动器擦除所述第一驱动器的所述经识别源地址处的所述数据。
20.根据权利要求19所述的方法,其中所述擦除命令是开放信道擦除命令。
CN201980069400.9A 2018-09-13 2019-09-09 用于使用以太网驱动器及以太网络开放通道驱动器存储数据的系统及方法 Active CN112930520B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/130,729 2018-09-13
US16/130,729 US11188496B2 (en) 2018-09-13 2018-09-13 System and method for storing data using ethernet drives and ethernet open-channel drives
PCT/IB2019/057594 WO2020053744A1 (en) 2018-09-13 2019-09-09 System and method for storing data using ethernet drives and ethernet open-channel drives

Publications (2)

Publication Number Publication Date
CN112930520A true CN112930520A (zh) 2021-06-08
CN112930520B CN112930520B (zh) 2023-08-15

Family

ID=69774102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980069400.9A Active CN112930520B (zh) 2018-09-13 2019-09-09 用于使用以太网驱动器及以太网络开放通道驱动器存储数据的系统及方法

Country Status (4)

Country Link
US (2) US11188496B2 (zh)
CN (1) CN112930520B (zh)
TW (1) TWI810363B (zh)
WO (1) WO2020053744A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200085967A (ko) * 2019-01-07 2020-07-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US11240061B2 (en) * 2019-06-03 2022-02-01 Progress Rail Locomotive Inc. Methods and systems for controlling locomotives
US10958527B2 (en) * 2019-06-12 2021-03-23 International Business Machines Corporation Transaction fencing in a multi-domain network
US11487690B2 (en) * 2019-06-28 2022-11-01 Hewlett Packard Enterprise Development Lp Universal host and non-volatile memory express storage domain discovery for non-volatile memory express over fabrics
KR20210017401A (ko) * 2019-08-08 2021-02-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법과, 이를 위한 컨트롤러
CN112988623B (zh) * 2019-12-17 2021-12-21 北京忆芯科技有限公司 加速sgl处理的方法与存储设备
US11733918B2 (en) * 2020-07-28 2023-08-22 Samsung Electronics Co., Ltd. Systems and methods for processing commands for storage devices
US11789634B2 (en) 2020-07-28 2023-10-17 Samsung Electronics Co., Ltd. Systems and methods for processing copy commands
US11561698B2 (en) * 2021-04-20 2023-01-24 EMC IP Holding Company LLC NVMEoF flow control from initiator based on transaction latency
US20220391348A1 (en) * 2021-06-04 2022-12-08 Microsoft Technology Licensing, Llc Userspace networking with remote direct memory access
US11809711B2 (en) * 2022-01-18 2023-11-07 Silicon Motion, Inc. Flash memory scheme capable of decreasing waiting time of trim command
US20230385228A1 (en) * 2022-05-27 2023-11-30 Nvidia Corporation Remote promise and remote future for downstream components to update upstream states

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102439576A (zh) * 2009-04-09 2012-05-02 美光科技公司 存储器控制器、存储器系统、固态驱动器及用于处理若干个命令的方法
CN103502926A (zh) * 2011-04-29 2014-01-08 美国网域存储技术有限公司 基于扩展区的存储架构
CN105024777A (zh) * 2015-07-29 2015-11-04 上海新时达电气股份有限公司 基于EtherCAT实时以太网的伺服驱动器同步方法
CN105049309A (zh) * 2015-07-29 2015-11-11 上海新时达电气股份有限公司 基于powerlink实时以太网的伺服驱动器同步方法
US20160127468A1 (en) * 2014-11-04 2016-05-05 Pavilion Data Systems, Inc. Virtual non-volatile memory express drive
CN106575271A (zh) * 2014-06-23 2017-04-19 谷歌公司 管理存储设备
US20170131751A1 (en) * 2015-11-05 2017-05-11 Henkel IP & Holding GmbH Compositions having a matrix and encapsulated phase change materials dispersed therein, and electronic devices assembled therewith
US20170357610A1 (en) * 2016-06-14 2017-12-14 Kazan Networks Corporation Split nvme ssd implementation using nvme over fabrics protocol

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009282678A (ja) 2008-05-21 2009-12-03 Hitachi Ltd フラッシュメモリモジュール及びストレージシステム
WO2017131751A1 (en) 2016-01-29 2017-08-03 Hewlett Packard Enterprise Development Lp Remote direct memory access
US9934173B1 (en) * 2016-02-24 2018-04-03 Xilinx, Inc. Pseudo cut-through architecture between non-volatile memory storage and remote hosts over a fabric
US10379745B2 (en) * 2016-04-22 2019-08-13 Samsung Electronics Co., Ltd. Simultaneous kernel mode and user mode access to a device using the NVMe interface
JP2018041153A (ja) * 2016-09-05 2018-03-15 東芝メモリ株式会社 ストレージシステムおよび入出力処理方法
US20180173619A1 (en) * 2016-12-21 2018-06-21 Sandisk Technologies Llc System and Method for Distributed Logical to Physical Address Mapping
US10296473B2 (en) * 2017-03-24 2019-05-21 Western Digital Technologies, Inc. System and method for fast execution of in-capsule commands
US10282094B2 (en) * 2017-03-31 2019-05-07 Samsung Electronics Co., Ltd. Method for aggregated NVME-over-fabrics ESSD
US20190087111A1 (en) * 2017-09-15 2019-03-21 Seagate Technology Llc Common logical block addressing translation layer for a storage array
US10719474B2 (en) * 2017-10-11 2020-07-21 Samsung Electronics Co., Ltd. System and method for providing in-storage acceleration (ISA) in data storage devices
US10884849B2 (en) * 2018-04-27 2021-01-05 International Business Machines Corporation Mirroring information on modified data from a primary storage controller to a secondary storage controller for the secondary storage controller to use to calculate parity data
US11422726B1 (en) * 2018-05-01 2022-08-23 Amazon Technologies, Inc. Efficient storage device data move operation based on priority of garbage collection command
US10564872B2 (en) * 2018-06-29 2020-02-18 Western Digital Technologies, Inc. System and method for dynamic allocation to a host of memory device controller memory resources

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102439576A (zh) * 2009-04-09 2012-05-02 美光科技公司 存储器控制器、存储器系统、固态驱动器及用于处理若干个命令的方法
CN103502926A (zh) * 2011-04-29 2014-01-08 美国网域存储技术有限公司 基于扩展区的存储架构
CN106575271A (zh) * 2014-06-23 2017-04-19 谷歌公司 管理存储设备
US20160127468A1 (en) * 2014-11-04 2016-05-05 Pavilion Data Systems, Inc. Virtual non-volatile memory express drive
CN105024777A (zh) * 2015-07-29 2015-11-04 上海新时达电气股份有限公司 基于EtherCAT实时以太网的伺服驱动器同步方法
CN105049309A (zh) * 2015-07-29 2015-11-11 上海新时达电气股份有限公司 基于powerlink实时以太网的伺服驱动器同步方法
US20170131751A1 (en) * 2015-11-05 2017-05-11 Henkel IP & Holding GmbH Compositions having a matrix and encapsulated phase change materials dispersed therein, and electronic devices assembled therewith
US20170357610A1 (en) * 2016-06-14 2017-12-14 Kazan Networks Corporation Split nvme ssd implementation using nvme over fabrics protocol

Also Published As

Publication number Publication date
US11188496B2 (en) 2021-11-30
WO2020053744A1 (en) 2020-03-19
CN112930520B (zh) 2023-08-15
TW202021318A (zh) 2020-06-01
US20200089648A1 (en) 2020-03-19
TWI810363B (zh) 2023-08-01
US20220083497A1 (en) 2022-03-17
US11726948B2 (en) 2023-08-15

Similar Documents

Publication Publication Date Title
CN112930520B (zh) 用于使用以太网驱动器及以太网络开放通道驱动器存储数据的系统及方法
US10073640B1 (en) Large scale implementation of a plurality of open channel solid state drives
US10949108B2 (en) Enhanced application performance in multi-tier storage environments
US20180173632A1 (en) Storage device and method for controlling storage device
US9292431B2 (en) Allocating storage using calculated physical storage capacity
KR101841997B1 (ko) 순응적 존속을 위한 시스템, 방법 및 인터페이스
US9122579B2 (en) Apparatus, system, and method for a storage layer
US10542089B2 (en) Large scale implementation of a plurality of open channel solid state drives
JP5816303B2 (ja) フラッシュメモリを含むストレージシステム、及び記憶制御方法
US10684947B2 (en) Increasing high performance data storage utilization by reducing write operations
WO2015162758A1 (ja) ストレージシステム
US20110082950A1 (en) Computer system and computer system input/output method
TW202333059A (zh) 有序訪問塊修改記憶體中的資料的系統和方法及儲存裝置
US11768628B2 (en) Information processing apparatus
KR20210142863A (ko) 데이터 처리 시스템의 동작 효율성을 높이기 위한 장치 및 방법
JPWO2015025363A1 (ja) ストレージ装置及びデータ入出力方法
US11620079B2 (en) Log structured array offloaded data transfer migrations
US20240168876A1 (en) Solving submission queue entry overflow using metadata or data pointers
KR20240006450A (ko) 스토리지 장치에서 리클레임 유닛 형성 및 선택을 위한시스템들, 방법들 및 장치
KR20230166803A (ko) 높은 퍼지 성능을 제공하는 스토리지 장치 및 그것의 메모리 블록 관리 방법
WO2019021415A1 (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