IP Library Patent Application 11952124
Patent Application
App. No. 11/952,124

APPARATUS, SYSTEM, AND METHOD FOR REMOTE DIRECT MEMORY ACCESS TO A SOLID-STATE STORAGE DEVICE

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 None
App. No.
11/952,124
Filed
Dec 6, 2007
Art Unit
2453
USPC
709/212
Abstract

An apparatus, system, and method are disclosed for sharing a device between multiple hosts. The apparatus, system, and method include an RDMA setup module and an RDMA execution module. The RDMA setup module prepares a solid-state storage controller for an RDMA operation to transfer data of a file or of an object between the solid-state storage controller and a requesting device in response to a storage request. The storage request may be substantially free of the data, and the solid-state storage controller may control a solid-state storage via a storage input/output (“I/O”) bus. The solid-state controller controls storage of data in the solid-state storage, and the requesting device is connected to the solid-state controller through a computer network. The RDMA execution module executes the RDMA operation to transfer the data between the requesting device and the solid-state storage controller.

Claims (25)

1 . An apparatus for remote direct memory access (“rdma”) to a solid-state storage:

device, the apparatus comprising:

an RDMA setup module that prepares a solid-state storage controller for an RDMA operation to transfer data of a file or of an object between the solid-state storage controller and a requesting device in response to a storage request, the storage request being substantially free of the data, the solid-state storage controller controlling a solid-state storage via a storage input/output (“I/O”) bus, the solid-state controller controlling storage of data in the solid-state storage, the requesting device connected to the solid-state controller through a computer network; and

an RDMA execution module that executes the RDMA operation to transfer the data between the requesting device and the solid-state storage controller.

2 . The apparatus of claim 1 , wherein the RDMA execution module executes the RDMA operation using native RDMA.

3 . The apparatus of claim 1 , wherein when the storage request comprises a write request the RDMA operation receives the data directly from memory in the requesting device and wherein when the storage request comprises a read request the RDMA operation transmits the data directly to memory in the requesting device.

4 . The apparatus of claim 3 , wherein for a storage request comprising a write request, the RDMA execution module pulls the data from the memory of the requesting device, and for a storage request comprising a read request the RDMA execution module pushes data to the memory of the requesting device.

5 . The apparatus of claim 1 , wherein the solid-state storage controller manages one or more objects stored in the solid-state storage wherein the managed objects appear to the requesting device as objects in one of an object file system and an object file server.

6 . The apparatus of claim 1 , wherein the solid-state storage controller receiving the storage request comprises a first controller in a group of solid-state storage controllers, the first controller in communication with the other solid-state storage controllers, and further comprising a distributed storage module that associates a data segment of the data with each solid-state storage controller of the group and transmits a storage sub-request to each of the solid-state controllers in the group, each storage sub-request comprising information for the receiving solid-state controller to transfer an associated data segment in a RDMA operation between the solid-state controller receiving the storage sub-request and memory of the requesting device.

7 . The apparatus of claim 6 , wherein the first controller comprises a redundant array of independent drives (“RAID”) controller and the distributed storage module further comprises a RAID module that generates a stripe pattern for the data and divides the data into N data segments per stripe consistent with a RAID level and generates a parity data segment for each stripe from the N data segments of the stripe.

8 . The apparatus of claim 1 , wherein the solid-state storage comprises an array of non-volatile, solid-state data storage elements divided into two or more banks.

9 . The apparatus of claim 8 , wherein the solid-state storage and solid-state storage controller are part of a solid-state storage device configured in a dual-inline memory module (“DIMM”).

10 . The apparatus of claim 8 , wherein the solid-state storage comprises flash memory.

11 . The apparatus of claim 1 , wherein the solid-state storage managed by the solid-state storage controller further acts as a cache for a data storage device, the data storage device comprising one or more of a solid-state storage, a hard disk drive, an optical drive, and a tape storage.

12 . The apparatus of claim 11 , wherein the data storage device is one of connected to the solid-state storage controller and integrated with the solid-state storage controller and the solid-state storage.

13 . The apparatus of claim 1 , further comprising a system bus connection that connects to a system bus connected to a host.

14 . The apparatus of claim 13 , wherein the system bus comprises one or more of a peripheral component interconnect express (“PCI-e”) bus, a Serial Advanced Technology Attachment (“serial ATA”) bus, an Ethernet bus, a universal serial bus (“USB”), and an Institute of Electrical and Electronics Engineers (“IEEE”) 1394 bus.

15 . An system for remote direct memory access (“RDMA”) to a solid-state storage device, the system comprising:

a solid-state storage device comprising a solid-state storage controller and a solid-state storage, the storage request being substantially free of the data, the solid-state storage controller controlling a solid-state storage via a storage input/output (“I/O”) bus, the solid-state controller controlling storage of data in the solid-state storage;

an RDMA setup module that prepares the solid-state storage controller for an RDMA operation to transfer data of a file or of an object between the solid-state storage controller and a requesting device in response to a storage request, the requesting device connected to the solid-state storage device through a computer network, the storage request being substantially free of the data; and

an RDMA execution module that executes the RDMA operation to transfer the data between the requesting device and the solid-state storage controller.

16 . The system of claim 15 , further comprising a network interface collocated with the solid-state storage device connected to the solid-state storage controller and to a computer network.

17 . A computer program product comprising a computer readable medium having computer usable program code executable to perform operations for remote direct memory access (“RDMA”) to a solid-state storage device, the operations of the computer program product comprising:

preparing a solid-state storage controller for an RDMA operation to transfer data of a file or of an object between the solid-state storage controller and a requesting device in response to a storage request, the storage request being substantially free of the data, the solid-state storage controller controlling a solid-state storage via a storage input/output (“I/O”) bus, the solid-state controller controlling storage of data in the solid-state storage, the requesting device connected to the solid-state controller through a computer network; and

executing the RDMA operation to transfer the data between the requesting device and the solid-state storage controller.

Assignments (7)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038809/0672 →
RELEASE OF SECURITY INTEREST Recorded May 4, 2016
From: FUSION-IO, INC.
To: SANDISK CORPORATION
Reel/Frame 038748/0880 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2016
From: LONGITUDE ENTERPRISE FLASH SARL
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 038324/0628 →
SECURITY INTEREST Recorded Jul 24, 2014
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: FUSION-IO, INC.
Reel/Frame 033410/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2014
From: FUSION-IO, INC.
To: INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033389/0511 →
CHANGE OF NAME Recorded Jul 9, 2010
From: FUSION MULTISYSTEMS, INC.
To: FUSION-IO, INC.
Reel/Frame 024651/0914 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2008
From: FLYNN, DAVID; ATKISSON, DAVID; LAGERSTEDT, BERT; STRASSER, JOHN; THATCHER, JONATHAN; ZAPPE, MICHAEL
To: FUSION MULTISYSTEMS, INC. DBA FUSION-IO
Reel/Frame 021605/0069 →