IP Library Granted Patent US 10,628,353
Granted Patent B2
US 10,628,353 · App. 15/821,467 · Granted Apr 21, 2020

Enabling use of non-volatile media-express (NVMe) over a network

Inventors: Venkatesh Prabhakar (San Jose, CA); Amitava Guha (San Jose, CA); Hiral Patel (San Jose, CA); Sunden Chen (San Jose, CA)
Assignee: Diamanti, Inc.
G06F13/28G06F3/061G06F3/067G06F3/0613G06F3/0659G06F3/0664G06F3/0679G06F9/455G06F13/385G06F13/4022G06F13/4282H04L1/009H04L1/189H04L47/36H04L47/39H04L49/9005H04L67/1097H04L67/14H04L69/04G06F2213/0026H04L1/1614H04L1/1848H04L2001/0094
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,628,353
App. No.
15/821,467
Granted
Apr 21, 2020
Kind
B2
Abstract

Enabling a protocol for efficiently and reliably using the NVME protocol over a network, referred to as NVME over Network, or NVMEoN, may include an NVMEoN exchange layer for handling exchanges between initiating and target nodes on a network, a burst transmission protocol that provides guaranteed delivery without duplicate retransmission, and an exchange status block approach to manage state information about exchanges.

Claims (14)

1. A method of using NVME over a network comprising:

maintaining information about layer 2 network exchanges for each NVME command sent between an initiator node and a target node on a network in an exchange status block by an exchange layer executing on at least one node that is accessible over the network, wherein layer 2 network exchanges for each NVME command comprise a plurality of burst transmission protocol layer exchanges between the initiator node and the target node;

encapsulating command packets and data packets for a plurality of PCIe I/O commands for a single target node into a burst packet;

providing guaranteed delivery of each of the encapsulated data packets and the encapsulated command packets in the burst packet between the initiator node and the target node while avoiding retransmission of duplicate packets by one of the initiator node and the target node responding to a request credit message from one of the target node and the initiator node with a grant credit message that includes packet identifiers of packets identified in the request credit message that have been received and those that have not been received; and

transporting PCIe level transactions of NVME commands via the burst packet as at least one of the encapsulated command packets and the encapsulated data packets to a virtual NVME controller executing on the target node over the network, the transporting performed by a proxy NVME controller located on a host node attached to the network.

2. A method of claim 1 , further comprising initiating and closing of a burst window that is configurable based on at least one of a type of data, a type of network and a network condition, wherein the burst transmission protocol facilitates the initiating closing of the burst window.

3. A method comprising:

encapsulating command packets and data packets for a plurality of PCIe input/output commands for a single target device into a NVME message; and

communicating the NVME message through a layer 2 network connection with the target device, the layer 2 network connection for the NVME message comprises a plurality of burst transmission protocol layer exchanges at least one of which comprises a burst packet of at least one of the encapsulated command packets and the encapsulated data packets, wherein the communicating further guarantees that encapsulated information for each of the plurality of PCIe input/output commands is delivered to the target independent of a communication fault condition, the guarantee of delivery being provided by a retransmission protocol operating within the layer 2 network connection, the retransmission protocol comprising the target device responding to a request credit message with a grant credit message that includes packet identifiers of packets identified in the request credit message that have been received and those that have not been received.

4. The method of claim 3 , wherein the target device comprises a NVME controller.

5. The method of claim 3 , wherein a size of a payload of the NVME message is fixed.

6. The method of claim 5 , wherein the fixed size comprises at least one integer multiple of 512 bytes.

7. The method of claim 3 , wherein the retransmission protocol operating with the layer 2 network connection detects NVME messages that do not reach the target and in response thereto performs selective retransmission based on a credit redistribution algorithm.

8. The method of claim 7 , wherein the credit redistribution algorithm manages burst transmission protocol buffers among initiators and targets.

Assignments (2)
SECURITY INTEREST Recorded Aug 14, 2020
From: DIAMANTI, INC.
To: VENTURE LENDING & LEASING IX, INC.
Reel/Frame 053498/0832 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2018
From: PRABHAKAR, VENKATESH; GUHA, AMITAVA; PATEL, HIRAL; CHEN, SUNDEN
To: DIAMANTI, INC.
Reel/Frame 044649/0270 →
Continuity (6)
Continuation PCTUS2016035474 · Jun 2, 2016
Continuation In Part 14640717 · Mar 6, 2015
Continuation In Part 14640717 · Mar 6, 2015
Provisional Application 62170544 · Jun 3, 2015
Provisional Application 61950036 · Mar 8, 2014
Related Publication 20180095915A1 · Apr 5, 2018
Cited By (2)
US 12,301,690 US 12,524,356