IP Library Granted Patent US 10,719,473
Granted Patent B2
US 10,719,473 · App. 15/828,229 · Granted Jul 21, 2020

Library for seamless management of storage devices

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,719,473
App. No.
15/828,229
Granted
Jul 21, 2020
Kind
B2
Abstract

An approach for using a storage library to translate commands from one command language into a different command language. The approach includes receiving a storage request in a command language from an application. The storage request is directed to a target storage device that uses a different command language. The storage request is translated into the different command language of the target storage device using a storage library of command languages and the storage request is performed.

Claims (52)

1. A method comprising:

receiving, by a client device, a storage request in a first command language from an application;

determining, by the client device, a storage path connecting a storage controller directly to a target storage device based on the storage request, wherein:

the target storage device is accessible via the storage controller and the storage controller is one of a plurality of storage controllers configured to be coupled to the client device; and

each of the plurality of storage controllers is configured to be accessed using a different command language;

identifying, by the client device, a second command language to access the storage controller;

translating, by the client device, the storage request from the first command language into the second command language by accessing a storage library of command languages; and

sending, by the client device, the storage request in the second command language to the storage controller to perform the storage request by accessing the target storage device via the storage controller.

2. The method of claim 1 , wherein the storage request is received via an application program interface provided by the storage library.

3. The method of claim 1 , wherein the target storage device is connected using a protocol specification selected from one of Small Computer System Interface (SCSI), AT Attachment (ATA), Serial ATA (SATA), Serial Attached SCSI (SAS), or Non-Volatile Memory express (NVMe).

4. The method of claim 1 , wherein:

the plurality of storage controllers includes a first storage controller and a second storage controller;

the first storage controller is configured to be accessed using the second command language; and

the second storage controller is configured to be accessed using a third command language.

5. The method of claim 1 , wherein the storage library is a collection of manufacturer specific command languages for accessing storage devices from different manufacturers.

6. The method of claim 1 , wherein the storage request is a command for updating firmware of the target storage device.

7. The method of claim 1 , wherein the storage request is a command to retrieve SMART (Self-Monitoring, Analysis and Reporting Technology) statistics.

8. The method of claim 1 , wherein the storage request is a command to format one or more sectors.

9. A system comprising:

one or more processors; and

a memory storing instructions that, when executed by the one or more processors, cause the system to:

receive, by a client device, a storage request in a first command language from an application;

determine, by the client device, a storage path connecting a storage controller directly to a target storage device based on the storage request, wherein:

the target storage device is accessible via the storage controller and the storage controller is one of a plurality of storage controllers configured to be coupled to the client device; and

each of the plurality of storage controllers is configured to be accessed using a different command language;

identify, by the client device, a second command language to access the storage controller;

translate, by the client device, the storage request from the first command language into the second command language by accessing a storage library of command languages; and

send, by the client device, the storage request in the second command language to the storage controller to perform the storage request by accessing the target storage device via the storage controller.

10. The system of claim 9 , wherein the storage request is received via an application program interface provided by the storage library.

11. The system of claim 9 , wherein:

the plurality of storage controllers includes a first storage controller and a second storage controller;

the first storage controller is configured to be accessed using the second command language; and

the second storage controller is configured to be accessed using a third command language.

12. The system of claim 9 , wherein the storage library is a collection of manufacturer specific command languages for accessing storage devices from different manufacturers.

13. The system of claim 9 , wherein the target storage device is connected using a protocol specification selected from one of Small Computer System Interface (SCSI), AT Attachment (ATA), Serial ATA (SATA), Serial Attached SCSI (SAS), or Non-Volatile Memory express (NVMe).

14. The system of claim 9 , wherein the storage request is a command to format one or more sectors.

15. A system comprising:

means for receiving, by a client device, a storage request in a first command language from an application;

means for determining, by the client device, a storage path connecting a storage controller directly to a target storage device based on the storage request, wherein:

the target storage device is accessible via the storage controller and the storage controller is one of a plurality of storage controllers configured to be coupled to the client device; and

each of the plurality of storage controllers is configured to be accessed using a different command language;

means for identifying, by the client device, a second command language to access the storage controller;

means for translating, by the client device, the storage request from the first command language into the second command language by accessing a storage library of command languages; and

means for sending, by the client device, the storage request in the second command language to the storage controller to perform the storage request by accessing the target storage device via the storage controller.

16. The system of claim 15 , wherein the storage request is received via an application program interface provided by the storage library.

17. The system of claim 15 , wherein the target storage device is connected using a protocol specification selected from one of Small Computer System Interface (SCSI), AT Attachment (ATA), Serial ATA (SATA), Serial Attached SCSI (SAS), or Non-Volatile Memory express (NVMe).

18. The system of claim 15 , wherein:

the plurality of storage controllers includes a first storage controller and a second storage controller;

the first storage controller is configured to be accessed using the second command language; and

the second storage controller is configured to be accessed using a third command language.

19. The system of claim 15 , wherein the storage library is a collection of manufacturer specific command languages for accessing storage devices from different manufacturers.

20. The system of claim 15 , wherein the storage request is a command to format one or more sectors.

Assignments (11)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2020
From: VAISHNAV, YATINDRA
To: HGST NETHERLANDS B.V.
Reel/Frame 052011/0352 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2020
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 052090/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →