IP Library › Granted Patent US 10,756,816
Granted Patent B1
US 10,756,816 · App. 16/370,527 · Granted Aug 25, 2020

Optimized fibre channel and non-volatile memory express access

Inventor: Roland Dreier (Mountain View, CA)
Assignee: Pure Storage, Inc.
H04B10/25G06F3/0604G06F3/0659G06F3/0679G06F9/545G06F9/546G06F13/38H04L49/357G06F2213/0026G06F2213/0036
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,756,816
App. No.
16/370,527
Granted
Aug 25, 2020
Kind
B1
Abstract

A storage controller includes a plurality of submission queues corresponding to an initiator device and a processing device, the processing device to receive a Fibre Channel Protocol (FCP) command from the initiator device and send the FCP command to a first submission queue of the plurality of submission queues, the first submission queue being reserved for use by a kernel space of the storage controller. The processing device further to receive a Non-Volatile Memory Express over Fibre Channel (NVMe/FC) command from the initiator device. The processing device further to send the NVMe/FC command to a second submission queue of the plurality of submission queues without routing the NVMe/FC command through the kernel space, the second submission queue being reserved for direct access by the initiator device to a user space of the storage controller.

Claims (29)

1. A system comprising:

a storage controller comprising a plurality of submission queues corresponding to an initiator device and a processing device, the processing device to:

send a Fibre Channel Protocol (FCP) command to a first submission queue of the plurality of submission queues, the first submission queue being reserved for use by a kernel space of the storage controller; and

send a Non-Volatile Memory Express over Fibre Channel (NVMe/FC) command to a second submission queue of the plurality of submission queues without routing the NVMe/FC command through the kernel space, the second submission queue being reserved for direct access by the initiator device to a user space of the storage controller.

2. The system of claim 1 , wherein the processing device is to instruct a Fibre Channel Host Bus Adapter (FC HBA) of the storage controller to route the FCP command to the first submission queue and the NVMe/FC command to the second submission queue.

3. The system of claim 2 , wherein the FCP command from the initiator device is received by the FC HBA via a Small Computer System Interface (SCSI) of the storage controller and wherein the NVMe/FC command is received by the FC HBA via a fiber-channel non-volatile memory express (FC NVMe) interface of the storage controller.

4. The system of claim 1 , wherein the first submission queue and the second submission queue are to communicate concurrently with the initiator device.

5. The system of claim 1 , the processing device further to:

receive a new NVMe/FC command from the initiator device, wherein the new NVMe/FC command is to be routed through the kernel space; and

send the new NVMe/FC command to a third submission queue of the plurality of submission queues.

6. The system of claim 1 , wherein the FCP command is to be routed through an FCP stack in the kernel space and wherein the NVMe/FC command is to be routed through an NVMe/FC stack in the user space.

7. A method comprising:

sending, by a processing device, a first command to a first submission queue of a plurality of submission queues, the first submission queue being reserved for use by a kernel space of a storage controller; and

sending, by the processing device, a second command to a second submission queue of the plurality of submission queues without routing the second command through the kernel space, the second submission queue being reserved for direct access by an initiator device to a user space of the storage controller.

8. The method of claim 7 , wherein the first command corresponds to a first communication protocol and wherein the second command corresponds to a second communication protocol.

9. The method of claim 8 , wherein the first communication protocol corresponds to Fibre Channel Protocol (FCP) and wherein the second communication protocol corresponds to Non-Volatile Memory Express over Fibre Channel (NVMe/FC).

10. The method of claim 7 , further comprising instructing a Fibre Channel Host Bus Adapter (FC HBA) to route the first command to the first submission queue and the second command to the second submission queue.

11. The method of claim 7 , wherein the first submission queue and the second submission queue are to communicate concurrently with the initiator device.

12. The method of claim 10 , wherein the first command from the initiator device is received by the FC HBA via a Small Computer System Interface (SCSI) of the storage controller and wherein the second command is received by the FC HBA via a fiber-channel non-volatile memory express (FC NVMe) interface of the storage controller.

13. The method of claim 7 , wherein the first command is to be routed through an FCP stack in the kernel space and wherein the second command is to be routed through an NVMe/FC stack in the user space.

14. A non-transitory computer readable storage medium storing instructions, which when executed, cause a processing device to:

send, by the processing device, a first command to a first submission queue of a plurality of submission queues, the first submission queue being reserved for use by a kernel space of a storage controller; and

send, by the processing device, a second command to a second submission queue of the plurality of submission queues without routing the second command through the kernel space, the second submission queue being reserved for direct access by an initiator device to a user space of the storage controller.

15. The non-transitory computer readable storage medium of claim 14 , wherein the first command corresponds to a first communication protocol and wherein the second command corresponds to a second communication protocol.

16. The non-transitory computer readable storage medium of claim 15 , wherein the first communication protocol corresponds to Fibre Channel Protocol (FCP) and wherein the second communication protocol corresponds to Non-Volatile Memory Express over Fibre Channel (NVMe/FC).

17. The non-transitory computer readable storage medium of claim 14 , wherein the processing device is further to instruct a Fibre Channel Host Bus Adapter (FC HBA) to route the first command to the first submission queue and the second command to the second submission queue.

18. The non-transitory computer readable storage medium of claim 14 , wherein the first submission queue and the second submission queue are to communicate concurrently with the initiator device.

19. The non-transitory computer readable storage medium of claim 17 , wherein the first command from the initiator device is received by the FC HBA via a Small Computer System Interface (SCSI) of the storage controller and wherein the second command is received by the FC HBA via a fiber-channel non-volatile memory express (FC NVMe) interface of the storage controller.

20. The non-transitory computer readable storage medium of claim 14 , wherein the first command is to be routed through an FCP stack in the kernel space and wherein the second command is to be routed through an NVMe/FC stack in the user space.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2019
From: DREIER, ROLAND
To: PURE STORAGE, INC.
Reel/Frame 048763/0416 →
Continuity (2)
Continuation In Part 15416990 · Jan 26, 2017
Provisional Application 62403868 · Oct 4, 2016
Cited By (2)
US 12,255,830 US 12,547,481