CN114579488A - 用于在与直接目标访问桥接的结构上通过非易失性存储器访问主机存储器的方法和系统 - Google Patents
用于在与直接目标访问桥接的结构上通过非易失性存储器访问主机存储器的方法和系统 Download PDFInfo
- Publication number
- CN114579488A CN114579488A CN202210166490.7A CN202210166490A CN114579488A CN 114579488 A CN114579488 A CN 114579488A CN 202210166490 A CN202210166490 A CN 202210166490A CN 114579488 A CN114579488 A CN 114579488A
- Authority
- CN
- China
- Prior art keywords
- memory
- network packet
- rdma
- interface
- volatile memory
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 248
- 239000004744 fabric Substances 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000003860 storage Methods 0.000 claims abstract description 50
- 230000004044 response Effects 0.000 claims description 26
- 230000003139 buffering effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 12
- 239000000872 buffer Substances 0.000 description 9
- 238000013459 approach Methods 0.000 description 6
- 238000001152 differential interference contrast microscopy Methods 0.000 description 4
- 239000003999 initiator Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 239000002775 capsule Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (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)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本文所描述的实施例提供了一种用于使用直接目标访问经由通过结构的非易失性存储器桥接访问主机存储器的方法。被封装在第一网络分组中的第一存储器访问命令从远程直接存储器访问(RDMA)接口经由网络结构在存储器接口单元处被接收。第一存储器访问命令符合第一非易失性存储器接口协议,并且第一网络分组符合第二非易失性存储器接口协议。第一网络分组被拆开以获得第一存储器访问命令。第一存储器访问命令使用工作队列的地址位作为第一存储器访问命令的预设索引被存储在工作队列中。第一存储器访问命令基于预设索引从工作队列被发送以激活第一目标存储设备。
Description
本申请是申请日为2017年4月4日、申请号为201780022196.6、发明名称为“用于使用直接目标访问经由通过结构的非易失性存储器桥接访问主机存储器的方法和系统”的发明专利申请的分案申请。
相关申请的交叉引用
本公开要求均于2016年4月4日提交的美国临时专利申请号62/317,902和62/317,896的35U.S.C.§119(e)的权益,其每一个在此通过引用整体并入本文。
技术领域
本公开涉及通过存储网络结构远程访问存储介质,并且具体地,涉及经由硬件接口经由通过结构的非易失性存储器桥接访问非易失性存储器。
背景技术
本文所提供的背景描述是为了总体上呈现本公开的上下文。本发明人的工作(就工作在本背景技术部分被描述的程度)以及在提交时不作为现有技术的本说明书的各个方面既不明示也不暗示地承认是针对本公开的现有技术。
在计算系统中,为了访问固态驱动器(SSD),主机处理器通常经由非易失性存储器主机控制器接口与SSD控制器通信,该接口通常适用于外围组件互连快速(PCIe)总线。非易失性存储器主机控制器接口采用非易失性存储器快速(NVMe)协议,其定义主机处理器和目标设备之间的通信以用于访问非易失性存储器(NVM)子系统。常规上,主机处理器经由PCIe总线直接与NVM子系统(例如,存储设备)连接。
发明内容
本文所描述的实施例提供了一种用于使用直接目标访问经由通过结构的非易失性存储器桥接访问主机存储器的方法。被封装在第一网络分组中的第一存储器访问命令从远程直接存储器访问(RDMA)接口经由网络结构在存储器接口单元处被接收。第一存储器访问命令符合第一非易失性存储器接口协议,并且第一网络分组符合第二非易失性存储器接口协议。第一网络分组被拆开以获得第一存储器访问命令。第一存储器访问命令使用工作队列的地址位作为第一存储器访问命令的预设索引被存储在工作队列中。第一存储器访问命令基于预设索引从工作队列被发送以激活第一目标存储设备。
在一些实现中,响应于发送第一存储器访问命令,符合第一非易失性存储器接口协议的存储器事务数据在存储器接口单元处并且从第一目标存储设备被接收。存储器接口单元被配置为在符合第二非易失性存储器接口协议的第二网络分组中封装存储器事务数据,并且经由网络结构将第二网络分组发送到RDMA接口。
在一些实现中,存储器事务数据以与第二网络分组的大小基本相似的大小从第一目标存储设备通过存储器接口单元被传递到RDMA接口,而不缓冲事务数据。
在一些实现中,第二网络分组被发送到RDMA接口,作为存储器事务在第一存储设备处被发起的通知。RDMA接口被激活以服务存储器事务。
在一些实现中,RDMA接口通过将存储器事务数据存储到被指定给RDMA接口的响应队列中来激活,并且其中工作队列被指定给第一存储设备。
在一些实现中,当第一存储器访问命令指示读取操作时,符合第一非易失性存储器接口协议的存储器数据在存储器接口单元处并且从第一目标存储设备被接收。存储器接口单元被配置为将存储器数据封装在符合第二非易失性存储器接口协议的第二网络分组中,并且经由网络结构将第二网络分组发送到RDMA接口。
在一些实现中,当第一存储器访问命令包包括写入命令时,被封装在符合第二非易失性存储器接口协议的第二网络分组中的数据在存储器接口单元处并且从RDMA接口被接收。存储器接口单元被配置为拆开第二网络分组以获得符合第一非易失性存储器接口协议的数据,并且将以第二网络分组的大小的数据发送给第一目标存储设备。
在一些实现中,存储第一存储器访问命令的工作队列和存储存储器事务的RDMA响应队列被维持。工作队列与RDMA响应队列配对。
在一些实现中,在第二存储器访问协议下可操作的第二目标存储器设备被连接到存储器接口单元。
在一些实现中,存储器接口单元被配置为从RDMA接口并且经由网络结构接收被封装在第二网络分组中的第二存储器访问命令。第二存储器访问命令符合第一非易失性存储器接口协议,并且第二网络分组符合第二非易失性存储器接口协议。第二网络分组被拆开以获得第二存储器访问命令。第二存储器访问命令使用第二工作队列的地址位作为第二存储器访问命令的预设索引被存储在第二工作队列中。第二存储器访问命令基于预设索引从第二工作队列被发送以激活第二目标存储设备。
附图说明
通过结合附图考虑以下详细描述,本公开的其他特征、其性质和各种优点将变得显而易见,在附图中相同的附图标记始终指代相同的部分,并且在其中:
图1是图示根据本文所描述的一些实施例的采用通过结构的非易失性存储器(NVMeOF,non-volatile memory over facric)网络接口卡(NIC)作为与NVMe存储设备的接口的NVMeOF系统的示例架构的框图;
图2是图示根据本文所描述的一些实施例的采用NVMeOF NIC作为与多个NVMe存储设备的聚合接口的聚合NVMeOF系统200的示例架构的框图;
图3是图示根据本文所描述的一些实施例的图1至图2中所描述的NVMeOF系统的示例结构构造的框图;
图4是图示根据本文所描述的一些实施例的由图1至图3中所描述的NVMeOF系统采用以在网络结构和NVMe存储设备之间对接的NV单元的示例电路结构的框图;
图5至图6是图示根据本文所描述的一些实施例的由图1至图4中所描述的NVMeOF系统执行的示例读取流程的流程图;
图7至图8是图示根据本文所描述的一些实施例的由图1至图4中所描述的NVMeOF系统执行的示例写入流程的流程图;
图9是图示根据本文所描述的一些实施例的由图4中所描述的NV单元执行以在网络结构和NVMe存储设备之间转换数据和控制命令的示例操作的逻辑流程图。
具体实现
本公开描述了用于由主机经由硬件接口经由通过结构的非易失性存储器远程访问非易失性存储器的方法和系统。
通过结构的非易失性存储器(NVMeOF)是用于通过共享网络结构在主机处理器和NVM子系统之间进行通信的协议。NVMeOF架构包括网络侧(例如,存储器访问请求发起者侧)接口,例如与主机处理器交互的远程直接存储器访问(RDMA)接口,以及与NVMe设备和/或子系统交互的NVMeOF接口(例如,目标存储侧)。在实施例中,RDMA接口和NVMeOF接口被连接并且被配置为经由网络结构(例如,以太网等)进行通信。以这种方式,主机处理器被配置为访问远离主机处理器的大量NVMe设备和/或子系统。
实现NVMeOF接口的现有解决方案包括使得执行软件指令的处理器处理NVMe和NVMeOF之间的访问请求和协议转换,例如来自主机处理器的读取或写入请求等,以访问NVMe设备或子系统中的存储器单元。这种基于软件的方法给处理器带来了非常重的负担,并且由于处理器发出和加载符合NVMeOF协议的存储器访问请求的开销时间,因此也增加了读/写延迟。另外,基于软件的方法通常采用存储和转发的方法,例如,针对存储器读取或写入事务的所有存储器访问命令和要被读取或写入的存储器数据被接收并且存储在缓冲器处,然后在NVMe数据被写入目标存储设备或者NVMeOF数据由主机处理器读取之前,存储器命令和数据被转换为合适的协议。使存储器命令和数据被加载到缓冲器中并且在缓冲器处被转换所需的时间也增加了对应的读取或写入操作的延迟。
本文所描述的实施例提供了基于硬件的组件,其被配置为直接与NVMe设备或子系统中的存储器单元读/写数据,并且直接经由共享网络结构与被耦合到主机处理器的RDMA接口(例如,存储器访问请求的主机发起者)通信。具体地,基于硬件的组件包括与网络对接的网络接口卡(NIC)和每个与NVMe设备配对的一个或多个PCIe端口,使得组件的硬件配置允许数据路径通过NVMe设备或子系统与远程主机处理器之间的组件。
以这种方式,与在软件级别上操作的系统相比,从NVMeOF到NVMe或NVMe到NVMeOF的协议转换因此利用显著减少的处理资源在硬件级别上被处理。基于硬件的组件被配置为接收NVMeOF命令包(capsule),其包含被封装在符合NVMeOF的网络分组中的一个或多个NVMe存储器读取或写入命令(或其他存储器访问命令),并且可选地包含来自网络结构的命令数据,基于该命令数据,基于硬件的组件被配置为准备要在目标NVMe设备上被执行的作业的输入/输出队列。另一方面,基于硬件的组件被配置为从NVMe设备或子系统接收NVMe目标存储器事务(例如,在目标存储设备处用于写入或读取操作的存储器操作会话),并且通过经由RDMA接口(例如,RDMA传输层)激活与远程主机的对应的读取和写入功能来服务目标存储器事务。因此,当NVMeOF命令包从网络结构被接收到时,每个NVMeOF命令包由基于硬件的组件拆开以恢复其中所包含的NVMe数据;并且当NVMe存储器事务从目标NVMe设备被接收到时,每个NVMe存储器事务由基于硬件的组件封装成符合NVMeOF。存储器命令或数据以命令包的大小(例如,类似于网络分组的大小)逐个包地从网络结构被传递到目标NVMe设备,或者反之亦然。这样,NVMe设备或子系统被配置为直接服务主机处理器的输入/输出队列,并且在目标存储器单元处实现存储器事务,因为存储器访问命令和存储器数据是在逐个分组的基础上在NVMe设备或子系统与网络结构(以及主机处理器驻留在其中)之间被传送的,而不是通过上述常规的存储和转发的基于软件的方法在存储器事务在目标存储器单元上被实现之前将所有存储器访问命令和存储器数据加载到缓冲器中。以这种方式,NVMeOF接口经由基于硬件的组件被操作,而不会给中央处理器(例如,存储聚合器处理器等)带来沉重的负担,并且存储器访问的延迟得到改善,而没有在常规的存储和转发的方法中的用于发出软件指令的开销处理器发出时间和用于加载存储器事务所需的所有存储器访问命令和数据的缓冲器加载时间。
图1是图示根据本文所描述的一些实施例的采用NVMeOF NIC作为与NVMe存储设备的接口的NVMeOF系统的示例架构的框图。一个或多个计算系统的主机处理器105a-n(在本文中被统称为105)每个分别与RDMA NIC 108a-n(在本文中被统称为108)配对,RDMA NIC108被配置为例如在NVMeOF命令包中向一个或多个NVMe目标设备或子系统115a-n(在本文中被统称为115)发送存储器访问请求。如上所述,存储器访问请求被封装在符合NVMeOF的网络分组中通过网络结构110(例如25G以太网)而被发送。每个NVMe目标设备115配备有NVMeOF NIC 120a-n(在本文中被统称为120),NVMeOF NIC 120被配置为在网络结构110之间进行对接。例如,NVMeOF NIC 120被配置为将从网络结构接收的NVMeOF命令包拆开为与NVMe目标设备115兼容的NVMe命令。或者NVMeOF NIC 120被配置为从NVMe目标设备115接收NVMe存储器事务,并且将NVMe存储器事务数据封装到符合NVMeOF的包中。
NVMeOF NIC 120被配置为经由具有NVMe扩展的PCIe总线125a-n(在本文中被统称为125)与闪存控制器130a-n(在本文中被统称为130)通信。每个闪存控制器130被配置为利用闪存150a-n(在本文中被统称为150)来控制和实现读取或写入操作。
图2是图示根据本文所描述的一些实施例的采用NVMeOF NIC作为与多个NVMe存储设备的聚合接口的聚合NVMeOF系统200的示例架构的框图。代替具有针对每个NVMe目标设备115配备的NVMeOF NIC 120,聚合NVMeOF NIC 120与聚合器121一起被使用,聚合器121具有多个PCIe端口,每个PCIe端口与NVMe目标设备115配对。因此,集中式NVMeOF NIC 120被配置为通过聚合器121处的PCIe端口与NVMe目标设备115对接。以这种方式,硬件配置和升级被简化,而没有对任何现有NVMe目标设备115的附加硬件改变。因此,系统架构200提供可缩放的存储架构,因为只要PCIe端口与聚合器121处的新NVMe目标设备配对,新的NVMe目标设备就可以被添加到系统。因此,系统可以通过添加或移除目标设备、增加或减少端口来线性地缩放,而不限于聚合器121服务更多目标存储设备和更高带宽的能力。另外,利用聚合器121,所有目标设备115作为单个因特网协议(IP)地址被呈现给主机。
图3是图示根据本文所描述的一些实施例的图1至图2中所描述的NVMeOF系统的示例电路构造的框图。高级外围总线(APB)217或AXI互连总线被配置为经由各种配置端口将非易失性单元(NVU)210、主存储器215、PCIe核221、多媒体卡接口核(MCI-C)222、AXI互连总线205、以太网结构110、RDMA接口108、媒体访问控制(MAC)单元213连接在一起。
RDMA接口108(例如,类似于图1至图2中的RDMA NIC 108)被配置为从MAC 213接收存储器访问请求,MAC 213又被配置为经由上层(例如,经由25Gbs安全数字接口214)从主机处理器(例如,图1中的105)接收存储器访问请求。在一个实施例中,MAC 213还被配置为经由来自上层的串行千兆位媒体独立接口(SGMII)212接收多媒体数据,并且将多媒体数据发送到以太网110。
RDMA接口108被配置为经由AXI互连总线205在NVMeOF命令包中向NVU 210发送与NVMe目标设备(例如,图1中的105)有关的存储器访问请求,NVU 210又可以将NVMeOF命令包解析为多个读取或写入任务,并且将读取或写入任务存储在存储器215处的I/O队列中。I/O队列被指定用于特定的NVMe目标设备。
NVU还被配置为向存储器监视系统(MSS)216或从存储器监视系统(MSS)216(例如,类似于图1中的闪存控制器130)接收或发送存储器访问事务。NVU 210还被配置为经由PCIe连接将数据传送到NVMe目标存储器或从NVMe目标存储器传送数据,例如,通过PCIe核221传送到物理层总线125,或者通过MCI端口222传送到MCI总线225。PCIe核221或MCI端口222被配置为与指定的NVMe目标设备或子系统配对。
图4是图示根据本文所描述的一些实施例的由图1至图3中所描述的NVMeOF系统采用以在网络结构和NVMe存储设备之间进行对接的非易失性接口单元(例如,NVU 210)的示例电路结构的框图。NVU 210包括AXI端口,诸如但不限于RDMA AXI 247a-b、存储器AXI 246和存储装置AXI 257、CPU AXI 254等,这些AXI端口被配置为经由AXI互连总线(图3中的217)分别被连接到RDMA(图3中的108)、存储器(图3中的215)、存储装置(例如,经由图3中的PCIe 125)、CPU(如果需要)。
NVU 210包括RDM数据库250,其存储RDMA接口(例如,图3中的108)的标识信息。NVU210进一步包括RDM写入单元253,其被配置为从RDMA接口(例如,图3中的108)接收和处理写入命令,以及RDM读取单元252,其被配置为从RDMA接口(例如,图3中的108)接收和处理读取命令。NVU 210进一步包括存储设备写入单元255,其被配置为传递要被写入到目标存储设备的写入命令和数据,以及存储设备读取单元256,其被配置为传递要从目标存储设备被读取的读取命令和数据。NVMeOF读取或写入命令包的实现的进一步的细节分别结合图5至图6和图7至图8来讨论。
在实施例中,NVU 210被配置为维持多个队列(例如,总共多达256个NVMe队列)以存储多个存储器访问命令(读取或写入),例如,在图3中的存储器215中。在实施例中,所维持的队列数目是可选择的并且通常是预先定义的,例如在制造时或在启动时。例如,每个队列被配置为存储多达128个队列条目,并且每个队列的队列条目数目是预先定义的。在一些实现中,数据以分散收集列表(SGL)的形式被存储在主机存储器中,并且支持封装内数据。
NVU 210中的队列控制器251被配置为控制和管理队列条目,诸如存储要被实现的读取或写入命令的提交队列条目(SQE)、存储已被完成的读取或写入命令的完成队列条目(CQE)、响应于写入或读取命令而存储来自NVMe目标设备的响应的响应队列(RSQ)条目等。因此,NVU 210被配置为通过对SQE进行排队来激活NVMe目标存储设备,并且通过对RSQ进行排队来激活RDMA。SQE使用工作队列的地址位作为用于相应SQE的预设索引被存储在被指定给NVMe目标设备的工作队列中,因为队列控制器251不使用基于软件的方法来生成索引值并且将索引值分配给SQE。因此,当工作队列被访问时,基于由预设索引定义的顺序,每个SQE被发送到被指定给工作队列的相应NVMe目标设备。每个SQE的大小基本上类似于网络分组,并且因此被存储为SQE的NVMe存储器命令在逐个分组的基础上通过工作队列。另外,每个SQE的索引(例如,地址位)被用来将来自目标存储设备的响应、存储器事务等与从RDMA接口108接收的原始读取或写入命令包相关联。以这种方式,RDMA接口(例如,存储器访问命令的原始发起者)、SQE、来自NVMe目标设备的响应和对应的存储器事务都通过索引相关。
在NVU 210处,每当NVMeOF命令包从RDMA接口108被接收到时,包分析(例如,解析、修改、存储等)由NVU硬件执行,并且命令包由NVU硬件转发到目标存储设备(例如SSD)。例如,在一些实现中,输入命令包被配置为通过替换相应SQE的缓冲器地址的最高有效位(MSB)而被修改,以便将来自目标存储设备的存储器事务与原始命令包相关。因此,存储器事务被分配给发送初始命令包的适当RDMA。当命令包被调度用于服务时,门铃中断(例如,配置与命令包被存储为被访问的相应SQE队列相关联的门铃变量的中断消息)将由NVU发送到SSD控制器。命令包的实现的进一步的细节结合图5至图9来讨论。任何RDMA队列(例如,存储来自RDMA的NVMeOF存储器访问命令包的队列)与NVMe队列(例如,将NVMe存储器事务存储到目标存储设备的队列,该队列与NVMeOF规范一致)配对。以这种方式,NVU 210被配置为将NVMeOF命令包拆开到适合于由NVMe目标存储设备使用的NVMe命令。
在一些实现中,从PCIe总线(图3中的125)被接收的存储器事务被配置为由NVU210传播为AXI事务并且由NVU 210服务,NVU 210又通过发起读取或写入操作来激活RDMA以服务于存储器事务。
图5至图6是图示根据本文所描述的一些实施例的由图1至图4中所描述的NVMeOF系统执行的NVMe读取命令的示例实现的流程图。从图6中的301处开始,在一个实施例中,RDMA接口108被配置为生成并且向NVU 210发送符合NVMeOF的存储器访问命令包,存储器访问命令包包括一个或多个NVMe读取命令,例如,还参见图5中的箭头1和2.1。在302处,NVU210被配置为拆开NVMeOF读取命令包以获得并且将一个或多个NVMe读取命令存储在SQE中(例如,还参见图5中的箭头2.2)和/或在存储器215中的SGL中(例如,还参见图5中的箭头2.3)。在303处,NVU 210被配置为经由PCIe总线125将门铃(例如,用于发起对SQE或SGL队列的访问的消息)写入到目标存储设备SSD(例如,还参见图5中的箭头2.4)。在304处,目标SSD被配置为读取存储器215中的SQE和SGL(例如,还参见图5中的箭头3.1和3.2)。在305处,目标SSD被配置为将所请求的读取数据传递给NVU 210(例如,参见图5中的箭头4.1)。在306处,NVU 210被配置为将读取数据封装为NVMeOF分组并且存储在存储器215中(例如,还参见图5中的箭头4.2),并且将与读取数据相关联的控制命令写为提交队列中的写入队列条目(WQE)(例如,还参见图5中的箭头5.1)。
在307处,NVU 210被配置为将读取通知封装在NVMeOF包中并且发送到RDMA接口108(例如,还参见图5中的箭头5.2)。在308处,RDMA接口108被配置为从存储器215接收被封装在NVMeOF分组中的读取数据(例如,还参见图5中的箭头5.3和5.4),并且将读取数据发送到主机处理器(例如,还参见图5中的箭头5.5)。在309处,RDMA接口108被配置为从主机处理器接收读取响应(例如,还参见图5中的箭头5.6)。在310处,RDMA接口108被配置为向NVU210中的完成队列写入读取操作被完成(例如,还参见图5中的箭头5.7)。
在311处,NVU 210被配置为经由PCIe 125从SSD接收读取事务。在312处,NVU 210被配置为向目标SSD发送读取完成状态。在313处,目标SSD被配置为将读取事务写入NVU210的CQE(例如,还参见图5中的箭头6.1)。在314处,NVU 210被配置为将响应包发送到存储器215(例如,还参见图5中的箭头6.2),其又将响应包保存在RSQ中(例如,还参见图5中的箭头6.3)。在315处,NVU 210被配置为向RDMA接口108发送读取通知(例如,还参见图5中的箭头6.4)。在316处,RDMA接口108被配置为读取存储器215中的读取缓冲器和WQE(例如,还参见图5中的箭头6.5和6.6)。在317处,RDMA接口108将响应包发送到主机处理器(例如,参见图5中的箭头6.7)。在318处,RDMA接口108从主机处理器接收确认(例如,还参见图5中的箭头6.8)。在319处,RDMA接口108被配置为向NW 210中的完成队列写入NVMe读取命令被完成。
如图5所示,当NVMeOF读取命令包被接收时,每个NVMeOF读取命令包(例如,2.1)被拆开以在NW 210处获得NVMe命令,并且NVMe命令基于SQE队列的地址位被保存为SQE(例如,2.2)。以这种方式,NVMe命令在内部由地址位索引,并且然后基于由索引定义的顺序经由PCIe 125逐个命令地被实现到目标SSD。然后索引与NVMe读取命令一起被发送到目标SSD。响应于每个NVMeOF读取命令,经由PCIe 125从目标SSD读取的数据在NVU 210处被接收,并且然后通过数据路径4.1和4.2以NVMeOF分组的大小的粒度被封装为NVMeOF分组。由于索引也与读取数据一起被返回到NW 210,索引被用来标识RDMA接口,例如读取命令的发起者,并且因此RDMA接口与NVMeOF分组配对。因此,在具有很少或没有缓冲的情况下,读取数据通过NW 210从目标SSD大致逐个分组地被传递到网络结构,而不是如在常规的存储和转发的基于软件的方法中那样,在读取数据可以开始被传递到网络结构之前,将读取数据加载到缓冲器中,直到所有读取数据被完全加载。
图7至图8是图示根据本文所描述的一些实施例的由图1至图4中所描述的NVMeOF系统执行的NVMe写入命令的示例实现的流程图。从图8中的401处开始,RDMA接口108被配置为生成并且向NVU 210发送符合NVMeOF的存储器访问命令包,存储器访问命令包包括一个或多个NVMe写入命令,例如,还参见图7中的箭头1和2.1。在402处,NW 210被配置为拆开NVMeOF命令包以获得一个或多个NVMe写入命令,并且保存在SQE中(例如,还参见图7中的箭头2.2)和/或保存在存储器215的SGL中(例如,还参见图7中的箭头2.3)。在403处,NVU 210被配置为经由PCIe总线125将门铃(例如,用于发起对SQE或SGL队列的访问的消息)写入到目标存储设备SSD(例如,还参见图7中的箭头2.4)。在404处,目标SSD被配置为读取存储器215中的SQE和SGL(例如,还参见图7中的箭头3.1和3.2)。在405处,目标SSD被配置为经由NVU 210从目标SSD读取要被写入的数据(例如,参见图7中的箭头4.8和4.1)。在406处,NVU210被配置为写入存储器215中的RSQ(例如,还参见图7中的箭头4.2)。
在407处,NVU 210被配置为将写入通知封装为NVMeOF分组,并且将NVMeOF分组发送到RDMA接口108(例如,还参见图7中的箭头4.3)。例如,NVMeOF分组包括来自NVMe目标设备的响应条目,以及表示写入数据的数据块。在408处,RDMA接口108被配置为从存储器215中的WQE读取入数据(例如,还参见图7中的箭头4.4),并且将写入数据发送到主机处理器(例如,还参见图7中的箭头4.5)。在409处,RDMA接口108被配置为从主机处理器接收关于RDMA传输的在RDMA分组级别处的写入确认(例如,还参见图7中的箭头4.6)。在410处,写入操作被完成的完成队列条目被写入NVU 210中(例如,还参见图7中的箭头4.7)。
在411处,目标SSD被配置为利用NVU 210将写入事务写入到CQE(例如,参见图7中的5.1)。在412处,NVU 210被配置为生成NVMeOF响应包并且将其发送到存储器215(例如,参见图7中的5.2),其又将响应包保存在WQE中(例如,参见图7中的5.3)。在413处,NVU 210被配置为将NVMeOF响应包作为写入通知发送到RDMA接口108(例如,参见图7中的5.4)。在414处,RDMA接口108被配置为从存储器215读取写入事务(例如,参见图7中的箭头5.5和5.6),并且将响应传送到主机处理器(例如,参见图7中的5.7)。在415处,RDMA接口108从主机处理器接收确认(例如,参见图7中的5.8)。在416处,RDMA接口108被配置为向NVU 210中的完成队列写入NVMe写入命令已被完成(例如,参见图7中的5.9)。
如图7所示,当NVMeOF读取命令包被接收时,每个NVMeOF写入命令包(例如,2.1)被拆开以在NVU 210处获得NVMe写入命令,例如,通过读取命令标识符和包的任何其他分段描述符来分离命令包中的SQE和附加存储器数据(如果有的话)。NVMe写入命令然后基于SQE工作队列的地址位被保存为工作队列中的SQE(例如,2.2),地址位被用来在内部索引相应的SQE条目。其中通过地址位进行内部索引而被存储为SQE的NVMe写入命令然后基于由索引定义的顺序经由PCIe 125逐个命令地被传送出工作队列,并且在被实现在目标SSD上。响应于每个NVMeOF写入命令,要经由PCIe 125被写入目标SSD的数据在NVU 210处被接收作为NVMeOF分组,并且然后每个NVMeOF分组被拆开以通过数据路径4.8和4.1以NVMeOF写入命令包的大小的粒度(例如分组大小)获得NVMe数据。因此,在具有很少或没有缓冲的情况下,写入数据通过NW 210从网络结构大致逐个分组地被传递到目标SSD,而不是如在常规的存储和转发的基于软件的方法中那样,在写入数据可以开始被传递到目标SSD之前,将写入数据加载到写入缓冲器,直到所有写入数据被完全加载。
图9是图示根据本文所描述的一些实施例的由图4中所描述的NV单元执行的用于在网络结构和NVMe存储设备之间转换数据和控制命令的示例操作的逻辑流程图。在901处,被封装在网络分组(例如,NVMeOF命令包等)中的存储器访问命令(例如,NVMe写入或读取命令)从RDMA接口(例如,图1中的108)经由网络结构(例如,图1中的25G以太网)在存储器接口单元(例如,NVU 210)处被接收。在902处,网络分组被拆开以获得存储器访问命令。在903处,存储器访问命令使用I/O队列的地址位作为多个存储器访问任务的内部索引被存储在工作队列中,例如作为I/O队列中的SQE(例如,还参见图5中的2.2)。在904处,存储器访问命令基于预设索引从工作队列被发送以激活目标存储设备。
结合图1至图9被讨论的各种实施例由一个或多个电子电路的各种电子组件执行,诸如但不限于集成电路等。贯穿本公开所讨论的各种组件(诸如但不限于NVoF NIC 120、RDMA NIC 108、NVU 210、FEC编码器102、存储器215、MSS 216等)被配置为包括一组电子电路组件,并且可通信地在一个或多个电子电路上操作。每个电子电路被配置为包括但不限于逻辑门、存储器单元、放大器、滤波器等中的任何一个。本文所公开的各种实施例和组件被配置为至少部分地由被存储在一个或多个暂时性或非暂时性处理器可读介质上的处理器可执行指令来操作和/或实现。
虽然本公开的各种实施例已经在本文中被示出和描述,但是这些实施例仅作为示例被提供。在不脱离本公开的情况下,与本文所描述的实施例有关的许多变化、改变和替换是可应用的。应该注意,本文所描述的本公开的实施例的替代方案可以在实践本公开时被采用。以下权利要求旨在限定本公开的范围,并且这些权利要求及其等同物的范围内的方法和结构由此被覆盖。
虽然操作在附图中以特定顺序被描绘,但是这不应该被解释为要求这些操作以所示的特定顺序或按连续顺序来执行,或者所有被图示的操作被执行以实现期望的结果。
本说明书的技术主题已经根据特定方面进行了描述,但是其他方面可以被实现并且这些方面在所附权利要求的范围内。例如,权利要求中所记载的动作可以以不同的顺序被执行并且仍然实现期望的结果。作为一个示例,图9中所描绘的过程不一定要求以所示的特定顺序或连续顺序来实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。其他变化在所附权利要求的范围内。
Claims (20)
1.一种用于在与直接目标访问桥接的结构上通过非易失性存储器访问主机存储器的方法,所述方法包括:
在目标存储设备的存储器控制器处通过网络连接接收符合第一非易失性存储器接口协议的第一网络分组;
由所述存储器控制器从所述第一网络分组取回符合第二非易失性存储器接口协议的第一存储器访问命令,所述第一存储器访问命令在远程直接存储器访问RDMA接口处被封装在所述第一网络分组中,其中所述第二非易失性存储器接口协议不同于所述第一非易失性存储器接口协议,并且其中所述第一存储器访问命令被封装在所述第一网络分组中而不修改所述第一存储器访问命令;
在所述存储器控制器处将所述第一存储器访问命令存储在工作队列中;以及
由所述存储器控制器根据所述工作队列处的存储顺序执行所述第一存储器访问命令。
2.根据权利要求1所述的方法,进一步包括:
在所述目标存储设备处生成符合所述第二非易失性存储器接口协议的存储器事务数据;
由所述存储器控制器将所述存储器事务数据封装在符合所述第一非易失性存储器接口协议的第二网络分组中;以及
通过所述网络连接向所述RDMA接口发送所述第二网络分组。
3.根据权利要求2所述的方法,进一步包括:
在所述存储器控制器处标识从其接收到所述第一网络分组的设备;以及
将所述第二网络分组寻址到所标识的所述设备。
4.根据权利要求2所述的方法,进一步包括:
以与所述第二网络分组的大小基本相似的大小向所述存储器控制器传递所述存储器事务数据,而不缓冲所述事务数据。
5.根据权利要求2所述的方法,进一步包括:
向所述RDMA接口发送所述第二网络分组,作为存储器事务在所述目标存储设备处被发起的通知,
其中所述RDMA接口被激活以服务于所述存储器事务。
6.根据权利要求1所述的方法,其中所述RDMA接口通过以下方式被激活:
将所述存储器事务数据存储到被指定给所述RDMA接口的响应队列中,并且其中所述工作队列被指定给所述目标存储设备。
7.根据权利要求1所述的方法,其中所述第一存储器访问命令指示读取操作,所述方法进一步包括:
在所述存储器控制器处接收符合所述第二非易失性存储器接口协议的存储器数据;
由所述存储器控制器将所述存储器数据封装在符合所述第一非易失性存储器接口协议的第二网络分组中;以及
通过所述网络连接向所述RDMA接口发送所述第二网络分组。
8.根据权利要求7所述的方法,进一步包括:
在所述存储器控制器处标识从其接收到所述第一网络分组的设备;以及
将所述第二网络分组寻址到所标识的所述设备。
9.根据权利要求1所述的方法,其中所述第一存储器访问命令指示写入命令,所述方法进一步包括:
在所述存储器控制器处接收符合所述第一非易失性存储器接口协议的、被封装在第二网络分组中的数据;
由所述存储器控制器从所述第二网络分组取回符合所述第二非易失性存储器接口协议的被封装的所述数据;以及
以所述第二网络分组的大小向非易失性存储器传递所述数据。
10.根据权利要求1所述的方法,进一步包括:
维护存储所述第一存储器访问命令的所述工作队列和存储存储器事务的RDMA响应队列,其中所述工作队列与所述RDMA响应队列配对。
11.一种用于在与直接目标访问桥接的结构上通过非易失性存储器访问主机存储器的系统,所述系统包括:
非易失性存储器;以及
存储器控制器,所述存储器控制器被配置为:
通过所述网络连接接收符合第一非易失性存储器接口协议的第一网络分组;
从所述第一网络分组取回符合第二非易失性存储器接口协议的第一存储器访问命令,所述第一存储器访问命令被封装在所述第一网络分组中的远程直接存储器访问RDMA接口处,其中所述第二非易失性存储器接口协议不同于所述第一非易失性存储器接口协议,并且其中所述第一存储器访问命令被封装在所述第一网络分组中而不修改所述第一存储器访问命令;
在所述存储器控制器处将所述第一存储器访问命令存储在工作队列中;以及
由所述存储器控制器按照所述工作队列处的存储顺序执行所述第一条存储器访问命令。
12.根据权利要求11所述的系统,其中所述存储器控制器进一步被配置为:
生成符合所述第二非易失性存储器接口协议的存储器事务数据;
将所述存储器事务数据封装在符合所述第一非易失性存储器接口协议的第二网络分组中;以及
通过所述网络连接向所述RDMA接口发送所述第二网络分组。
13.根据权利要求12所述的系统,其中所述存储器控制器进一步被配置为:
在所述存储器控制器处标识从其接收到所述第一网络分组的设备;以及
将所述第二网络分组寻址到所标识的所述设备。
14.根据权利要求12所述的系统,其中在不缓冲所述事务数据的情况下所述存储器事务数据的大小与所述第二网络分组的大小基本相似。
15.根据权利要求12所述的系统,其中所述存储器控制器进一步被配置为:
向所述RDMA接口发送所述第二网络分组,作为存储器事务在所述目标存储设备处被发起的通知,
其中所述RDMA接口被激活以服务于所述存储器事务。
16.根据权利要求11所述的系统,其中所述RDMA接口通过如下方式被激活:
将所述存储器事务数据存储到被指定给所述RDMA接口的响应队列中,并且其中所述工作队列被指定给所述目标存储设备。
17.根据权利要求11所述的系统,其中所述第一存储器访问命令指示读取操作,并且其中所述存储器控制器进一步被配置为:
从所述非易失性存储器接收符合所述第二非易失性存储器接口协议的存储器数据;
将所述存储器数据封装在符合所述第一非易失性存储器接口协议的第二网络分组中;以及
通过所述网络连接向所述RDMA接口发送所述第二网络分组。
18.根据权利要求17所述的系统,其中所述存储器控制器进一步被配置为:
标识从其接收到所述第一网络分组的设备;以及
将所述第二网络分组寻址到所标识的所述设备。
19.根据权利要求11所述的系统,其中所述第一存储器访问命令指示写入命令,并且其中所述存储器控制器进一步被配置为:
接收被封装在符合所述第一非易失性存储器接口协议的第二网络分组中的数据;
从所述第二网络分组取回符合所述第二非易失性存储器接口协议的被封装的所述数据;以及
以所述第二网络分组的大小向所述非易失性存储器传递所述数据。
20.根据权利要求11所述的系统,其中所述存储器控制器进一步被配置为:
维护存储所述第一存储器访问命令的所述工作队列和存储存储器事务的RDMA响应队列,其中所述工作队列与所述RDMA响应队列配对。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662317896P | 2016-04-04 | 2016-04-04 | |
US201662317902P | 2016-04-04 | 2016-04-04 | |
US62/317,896 | 2016-04-04 | ||
US62/317,902 | 2016-04-04 | ||
CN201780022196.6A CN108885597B (zh) | 2016-04-04 | 2017-04-04 | 用于使用直接目标访问经由通过结构的非易失性存储器桥接访问主机存储器的方法和系统 |
PCT/US2017/025970 WO2017176775A1 (en) | 2016-04-04 | 2017-04-04 | Methods and systems for accessing host memory through non-volatile memory over fabric bridging with direct target access |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780022196.6A Division CN108885597B (zh) | 2016-04-04 | 2017-04-04 | 用于使用直接目标访问经由通过结构的非易失性存储器桥接访问主机存储器的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114579488A true CN114579488A (zh) | 2022-06-03 |
Family
ID=58549287
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780022196.6A Active CN108885597B (zh) | 2016-04-04 | 2017-04-04 | 用于使用直接目标访问经由通过结构的非易失性存储器桥接访问主机存储器的方法和系统 |
CN202210166490.7A Pending CN114579488A (zh) | 2016-04-04 | 2017-04-04 | 用于在与直接目标访问桥接的结构上通过非易失性存储器访问主机存储器的方法和系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780022196.6A Active CN108885597B (zh) | 2016-04-04 | 2017-04-04 | 用于使用直接目标访问经由通过结构的非易失性存储器桥接访问主机存储器的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10769098B2 (zh) |
EP (2) | EP4202705A1 (zh) |
CN (2) | CN108885597B (zh) |
WO (1) | WO2017176775A1 (zh) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10397233B2 (en) * | 2015-04-20 | 2019-08-27 | Bomgar Corporation | Method and apparatus for credential handling |
US11861326B1 (en) * | 2016-04-06 | 2024-01-02 | Xilinx, Inc. | Flow control between non-volatile memory storage and remote hosts over a fabric |
US10762023B2 (en) * | 2016-07-26 | 2020-09-01 | Samsung Electronics Co., Ltd. | System architecture for supporting active pass-through board for multi-mode NMVe over fabrics devices |
US10891253B2 (en) * | 2016-09-08 | 2021-01-12 | Microsoft Technology Licensing, Llc | Multicast apparatuses and methods for distributing data to multiple receivers in high-performance computing and cloud-based networks |
US11102294B2 (en) * | 2017-06-09 | 2021-08-24 | Samsung Electronics Co., Ltd. | System and method for supporting energy and time efficient content distribution and delivery |
US10880204B1 (en) * | 2017-09-26 | 2020-12-29 | Amazon Technologies, Inc. | Low latency access for storage using multiple paths |
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 |
US10992967B2 (en) | 2017-12-05 | 2021-04-27 | Sony Interactive Entertainment LLC | Ultra high-speed low-latency network storage |
WO2019127018A1 (zh) | 2017-12-26 | 2019-07-04 | 华为技术有限公司 | 存储系统访问方法及装置 |
US11307778B2 (en) | 2018-03-09 | 2022-04-19 | Kioxia Corporation | Power management for solid state drives in a network |
TWI666901B (zh) * | 2018-03-27 | 2019-07-21 | 緯穎科技服務股份有限公司 | 資料傳輸方法與使用此方法的主機系統 |
US11288187B2 (en) * | 2018-03-28 | 2022-03-29 | SK Hynix Inc. | Addressing switch solution |
KR102637166B1 (ko) * | 2018-04-17 | 2024-02-16 | 삼성전자주식회사 | 대용량 데이터를 저장하는 네트워크 스토리지 장치 |
CN108897491B (zh) * | 2018-05-30 | 2021-07-23 | 郑州云海信息技术有限公司 | 一种异构混合内存快速访问优化方法及系统 |
KR102646616B1 (ko) * | 2018-06-15 | 2024-03-11 | 삼성전자주식회사 | 판독 명령 실행을 위한 NVMeoF RAID 구현 방법 |
KR102471219B1 (ko) * | 2018-06-30 | 2022-11-25 | 후아웨이 테크놀러지 컴퍼니 리미티드 | NVMe 기반의 데이터 판독 방법, 장치, 및 시스템 |
EP3792743A4 (en) | 2018-06-30 | 2021-06-30 | Huawei Technologies Co., Ltd. | NVME-BASED DATA WRITING PROCESS, DEVICE AND SYSTEM |
WO2020000483A1 (zh) | 2018-06-30 | 2020-01-02 | 华为技术有限公司 | 数据处理的方法和存储系统 |
US11614986B2 (en) | 2018-08-07 | 2023-03-28 | Marvell Asia Pte Ltd | Non-volatile memory switch with host isolation |
US11544000B2 (en) * | 2018-08-08 | 2023-01-03 | Marvell Asia Pte Ltd. | Managed switching between one or more hosts and solid state drives (SSDs) based on the NVMe protocol to provide host storage services |
US10977199B2 (en) * | 2018-08-08 | 2021-04-13 | Marvell Asia Pte, Ltd. | Modifying NVMe physical region page list pointers and data pointers to facilitate routing of PCIe memory requests |
US11016911B2 (en) * | 2018-08-24 | 2021-05-25 | Samsung Electronics Co., Ltd. | Non-volatile memory express over fabric messages between a host and a target using a burst mode |
US10908841B2 (en) | 2018-09-24 | 2021-02-02 | Cisco Technology, Inc. | Increasing throughput of non-volatile memory express over fabric (NVMEoF) via peripheral component interconnect express (PCIe) interface |
US11366610B2 (en) | 2018-12-20 | 2022-06-21 | Marvell Asia Pte Ltd | Solid-state drive with initiator mode |
KR20200087052A (ko) * | 2019-01-10 | 2020-07-20 | 삼성전자주식회사 | NVMe-SSD 저장 장치 및 NVMe-oF 호스트 유닛 사이의 통신 관리 시스템 및 방법 |
CN111641566B (zh) | 2019-03-01 | 2021-10-22 | 华为技术有限公司 | 数据处理的方法、网卡和服务器 |
KR102659832B1 (ko) * | 2019-03-05 | 2024-04-22 | 삼성전자주식회사 | 데이터 저장 장치 및 시스템 |
US11294602B2 (en) | 2019-03-14 | 2022-04-05 | Marvell Asia Pte Ltd | Ethernet enabled solid state drive (SSD) |
US11275698B2 (en) | 2019-03-14 | 2022-03-15 | Marvell Asia Pte Ltd | Termination of non-volatile memory networking messages at the drive level |
US11200193B2 (en) | 2019-03-14 | 2021-12-14 | Marvell Asia Pte, Ltd. | Transferring data between solid state drives (SSDs) via a connection between the SSDs |
US11656992B2 (en) | 2019-05-03 | 2023-05-23 | Western Digital Technologies, Inc. | Distributed cache with in-network prefetch |
WO2020242474A1 (en) * | 2019-05-30 | 2020-12-03 | Hewlett Packard Enterprise Development Lp | Routing nvme-over-fabric packets |
US11777804B2 (en) | 2019-06-11 | 2023-10-03 | Hewlett Packard Enterprise Development Lp | Automatic system provisioning for NVME-over-fabric storage |
CN113994321A (zh) | 2019-06-25 | 2022-01-28 | 慧与发展有限责任合伙企业 | 使用虚拟输出队列映射结构上nvme分组 |
CN112579311B (zh) * | 2019-09-30 | 2023-11-10 | 华为技术有限公司 | 访问固态硬盘的方法及存储设备 |
US11099786B2 (en) * | 2019-12-30 | 2021-08-24 | Advanced Micro Devices, Inc. | Signaling for heterogeneous memory systems |
CN111367721A (zh) * | 2020-03-06 | 2020-07-03 | 西安奥卡云数据科技有限公司 | 一种基于非易失性存储器的高效远程复制系统 |
US11765250B2 (en) | 2020-06-26 | 2023-09-19 | Western Digital Technologies, Inc. | Devices and methods for managing network traffic for a distributed cache |
US11675706B2 (en) | 2020-06-30 | 2023-06-13 | Western Digital Technologies, Inc. | Devices and methods for failure detection and recovery for a distributed cache |
US11079939B1 (en) | 2020-07-30 | 2021-08-03 | Hewlett Packard Enterprise Development Lp | Distributing I/O Q-connections of subsytems among hosts |
US11736417B2 (en) * | 2020-08-17 | 2023-08-22 | Western Digital Technologies, Inc. | Devices and methods for network message sequencing |
US11334507B2 (en) * | 2020-08-21 | 2022-05-17 | Samsung Electronics Co., Ltd. | Method and system for communicating data packets in remote direct memory access networks |
US11604743B2 (en) | 2020-08-31 | 2023-03-14 | International Business Machines Corporation | Input/output queue hinting for resource utilization |
CN114518833B (zh) * | 2020-10-30 | 2024-05-03 | 伊姆西Ip控股有限责任公司 | 用于存储管理的方法、电子设备和计算机程序产品 |
US11687365B2 (en) | 2020-12-21 | 2023-06-27 | Eidetic Communications Inc. | Method and apparatus for controlling a computational storage processor |
US11451493B2 (en) * | 2021-01-06 | 2022-09-20 | Mellanox Technologies, Ltd. | Connection management in a network adapter |
US11940935B2 (en) * | 2021-04-19 | 2024-03-26 | Mellanox Technologies, Ltd. | Apparatus, method and computer program product for efficient software-defined network accelerated processing using storage devices which are local relative to a host |
US11960419B2 (en) | 2022-07-19 | 2024-04-16 | Samsung Electronics Co., Ltd. | Systems and methods for data prefetching for low latency data read from a remote server |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130198312A1 (en) * | 2012-01-17 | 2013-08-01 | Eliezer Tamir | Techniques for Remote Client Access to a Storage Medium Coupled with a Server |
CN103929415A (zh) * | 2014-03-21 | 2014-07-16 | 华为技术有限公司 | Rdma下数据读写的方法、装置和网络系统 |
US8966164B1 (en) * | 2013-09-27 | 2015-02-24 | Avalanche Technology, Inc. | Storage processor managing NVME logically addressed solid state disk array |
US20150261434A1 (en) * | 2014-03-17 | 2015-09-17 | Mellanox Technologies Ltd. | Storage system and server |
US20160085718A1 (en) * | 2013-06-26 | 2016-03-24 | Cnex Labs, Inc. | Nvm express controller for remote access of memory and i/o over ethernet-type networks |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6977939B2 (en) * | 2001-01-26 | 2005-12-20 | Microsoft Corporation | Method and apparatus for emulating ethernet functionality over a serial bus |
US7493424B1 (en) * | 2004-04-30 | 2009-02-17 | Netapp, Inc. | Network storage system with shared software stack for LDMA and RDMA |
US8948173B2 (en) | 2007-02-14 | 2015-02-03 | Marvell International Ltd. | Control protocol encapsulation |
US8775718B2 (en) * | 2008-05-23 | 2014-07-08 | Netapp, Inc. | Use of RDMA to access non-volatile solid-state memory in a network storage system |
US8611352B2 (en) | 2010-04-20 | 2013-12-17 | Marvell World Trade Ltd. | System and method for adapting a packet processing pipeline |
US9311230B2 (en) * | 2013-04-23 | 2016-04-12 | Globalfoundries Inc. | Local direct storage class memory access |
US9298648B2 (en) * | 2013-05-08 | 2016-03-29 | Avago Technologies General Ip (Singapore) Pte Ltd | Method and system for I/O flow management using RAID controller with DMA capabilitiy to directly send data to PCI-E devices connected to PCI-E switch |
US9785356B2 (en) * | 2013-06-26 | 2017-10-10 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over ethernet-type networks |
US9311110B2 (en) * | 2013-07-08 | 2016-04-12 | Intel Corporation | Techniques to initialize from a remotely accessible storage device |
CN104346742A (zh) | 2013-08-09 | 2015-02-11 | 聚游互动(北京)科技发展有限公司 | 对网络游戏中的虚拟物品提供交易参考价格的方法及装置 |
US10628353B2 (en) * | 2014-03-08 | 2020-04-21 | Diamanti, Inc. | Enabling use of non-volatile media-express (NVMe) over a network |
EP3155531A4 (en) * | 2014-06-10 | 2018-01-31 | Hewlett-Packard Enterprise Development LP | Replicating data using remote direct memory access (rdma) |
US9565269B2 (en) * | 2014-11-04 | 2017-02-07 | Pavilion Data Systems, Inc. | Non-volatile memory express over ethernet |
-
2017
- 2017-04-04 US US15/479,005 patent/US10769098B2/en active Active
- 2017-04-04 CN CN201780022196.6A patent/CN108885597B/zh active Active
- 2017-04-04 CN CN202210166490.7A patent/CN114579488A/zh active Pending
- 2017-04-04 WO PCT/US2017/025970 patent/WO2017176775A1/en active Application Filing
- 2017-04-04 EP EP23154953.6A patent/EP4202705A1/en not_active Withdrawn
- 2017-04-04 EP EP17718261.5A patent/EP3440553A1/en not_active Withdrawn
-
2020
- 2020-09-04 US US17/013,080 patent/US11397703B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130198312A1 (en) * | 2012-01-17 | 2013-08-01 | Eliezer Tamir | Techniques for Remote Client Access to a Storage Medium Coupled with a Server |
CN104246742A (zh) * | 2012-01-17 | 2014-12-24 | 英特尔公司 | 用于远程客户端访问存储设备的命令验证的技术 |
US20160085718A1 (en) * | 2013-06-26 | 2016-03-24 | Cnex Labs, Inc. | Nvm express controller for remote access of memory and i/o over ethernet-type networks |
US8966164B1 (en) * | 2013-09-27 | 2015-02-24 | Avalanche Technology, Inc. | Storage processor managing NVME logically addressed solid state disk array |
US20150261434A1 (en) * | 2014-03-17 | 2015-09-17 | Mellanox Technologies Ltd. | Storage system and server |
CN103929415A (zh) * | 2014-03-21 | 2014-07-16 | 华为技术有限公司 | Rdma下数据读写的方法、装置和网络系统 |
Non-Patent Citations (1)
Title |
---|
JOHN KIM等: "How Ethernet RDMA Protocols iWARP and RoCE Support NVMe over Fabrics", pages 5 - 29, Retrieved from the Internet <URL:https://www.snia.org/sites/default/files/ESF/ How_Ethernet_RDMA_Protocols_Support_NVMe_over_Fabrics_Final.pdf> * |
Also Published As
Publication number | Publication date |
---|---|
US10769098B2 (en) | 2020-09-08 |
WO2017176775A1 (en) | 2017-10-12 |
EP3440553A1 (en) | 2019-02-13 |
CN108885597A (zh) | 2018-11-23 |
CN108885597B (zh) | 2022-02-25 |
US20200401551A1 (en) | 2020-12-24 |
US11397703B2 (en) | 2022-07-26 |
EP4202705A1 (en) | 2023-06-28 |
US20170286363A1 (en) | 2017-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108885597B (zh) | 用于使用直接目标访问经由通过结构的非易失性存储器桥接访问主机存储器的方法和系统 | |
US11184439B2 (en) | Communication with accelerator via RDMA-based network adapter | |
US20220231962A1 (en) | System and method for facilitating data request management in a network interface controller (nic) | |
US10152441B2 (en) | Host bus access by add-on devices via a network interface controller | |
US10521283B2 (en) | In-node aggregation and disaggregation of MPI alltoall and alltoallv collectives | |
EP3503507B1 (en) | Network interface device | |
US10880204B1 (en) | Low latency access for storage using multiple paths | |
US8873550B2 (en) | Task queuing in a multi-flow network processor architecture | |
US11750418B2 (en) | Cross network bridging | |
US11909642B2 (en) | Offload of acknowledgements to a network device | |
CN116018790A (zh) | 基于接收方的精密拥塞控制 | |
US20120192190A1 (en) | Host Ethernet Adapter for Handling Both Endpoint and Network Node Communications | |
US20180181421A1 (en) | Transferring packets between virtual machines via a direct memory access device | |
CN113924766A (zh) | 经由固态驱动器(ssd)之间的连接在ssd之间传输数据 | |
CN111459417A (zh) | 一种面向NVMeoF存储网络的无锁传输方法及系统 | |
US10305772B2 (en) | Using a single work item to send multiple messages | |
CN114930283A (zh) | 利用可编程网络接口进行分组处理 | |
WO2023109891A1 (zh) | 组播传输方法、装置和系统 | |
CN116471242A (zh) | 基于rdma的发送端、接收端、数据传输系统及方法 | |
WO2012126352A1 (zh) | 在pcie总线上传输报文的方法、设备和系统 | |
US11520718B2 (en) | Managing hazards in a memory controller | |
US12007921B2 (en) | Programmable user-defined peripheral-bus device implementation using data-plane accelerator (DPA) | |
JP2023150880A (ja) | ストレージ装置及びそのプロトコル変換方法 | |
CN116722884A (zh) | 一种支持远程数据直接访问协议的网络接口 |
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 |