IP Library Granted Patent US 11,755,254
Granted Patent B2
US 11,755,254 · App. 17/589,886 · Granted Sep 12, 2023

Network storage gateway

Inventors: Yang Seok Ki (Palo Alto, CA); Yangwook Kang (San Jose, CA)
G06F3/0679G06F3/0613G06F3/0659G06F13/4282G06F2213/0026
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 11,755,254
App. No.
17/589,886
Granted
Sep 12, 2023
Kind
B2
Abstract

A Solid State Drive (SSD) is disclosed. The SSD may include ports to receive requests from a host and to send requests to a second storage device. The SSD may include flash storage for data. An SSD controller may process the requests received from the host and generate the requests sent to the second storage device. The SSD may act as a cache for the second storage device.

Claims (49)

1. A storage device, comprising:

a receiver to receive a first request from a host and to receive a first response from a second storage device;

a transmitter to send a second request to the second storage device and to send a second response the host;

flash storage for a data; and

a controller to generate the second request based at least in part on the first request and to generate the second response based at least in part on the first response,

wherein the storage device is used as a cache for the data stored on the second storage device.

2. The storage device according to claim 1 , wherein the storage device includes:

a Peripheral Component Interconnect Express (PCIe) port; or

an Ethernet port; or

a combination thereof.

3. The storage device according to claim 1 , further comprising a storage-related processing unit (SPU) to manage storage of the data on the second storage device.

4. The storage device according to claim 1 , further comprising a general data processing unit (DPU).

5. The storage device according to claim 1 , wherein the storage device includes a cache namespace.

6. A storage device according to claim 1 , wherein:

the host includes the storage device; and

the storage device communicates with the second storage device across a network.

7. The storage device according to claim 4 , wherein the DPU is configured to execute instructions of an application.

8. The storage device according to claim 5 , wherein the storage device includes a first queue and a second queue for the cache namespace.

9. The storage device according to claim 8 , wherein the cache namespace includes:

a cache manager to manage a third request received via the first queue and to issue a fourth request via the second queue; and

a persistent memory to store the data based on the third request and the fourth request.

10. The storage device according to claim 9 , wherein the cache namespace further includes a processing unit (PU) buffer for data assembly and disassembly.

11. A method comprising:

receiving a first write request for a data from a host at a first storage device;

generating a second write request based at least in part on the first write request;

sending the second write request for the data from the first storage device to a second storage device;

receiving a write result from the second storage device at the first storage device; and

sending the write result from the first storage device to the host.

12. The method according to claim 11 , wherein sending the second write request for the data from the first storage device to the second storage device includes sending the second write request for the data from the first storage device to the second storage device and a third storage device.

13. The method according to claim 11 , wherein:

sending the second write request for the data from the first storage device to the second storage device includes sending a Key-Value (KV) write request for the data from the first storage device to a KV storage device; and

receiving a write result from the second storage device at the first storage device includes receiving the write result from the KV storage device at the first storage device.

14. The method according to claim 12 , wherein sending the second write request for the data from the first storage device to the second storage device and the third storage device includes:

disassembling the data into a first portion of the data and a second portion of the data;

sending the first portion of the data from the first storage device to the second storage device; and

sending the second portion of the data from the first storage device to the third storage device.

15. The method according to claim 13 , further comprising generating the KV write request based at least in part on the first write request.

16. A method, comprising:

receiving a first read request for a data from a host at a first storage device;

sending a second read request for the data from the first storage device to a second storage device based at least in part on the data not being stored on the first storage device; and

receiving the data from the second storage device at the first storage device; and

sending the data from the first storage device to the host.

17. The method according to claim 16 , wherein sending the second read request for the data from the first storage device to the second storage device includes sending the second read request for the data from the first storage device to the second storage device and a third storage device.

18. The method according to claim 16 , further comprising applying an acceleration function to the data before sending the data from the first storage to the host.

19. The method according to claim 17 , wherein receiving the data from the second storage device at the first storage device includes receiving the data from the second storage device at the first storage device and from the third storage device at the first storage device.

20. The method according to claim 19 , wherein receiving the data from the second storage device at the first storage device and from the third storage device at the first storage device includes:

receiving a first portion of the data from the second storage device at the first storage device;

receiving a second portion of the data from the third storage device at the first storage device; and

reassembling the data from the first portion of the data and the second portion of the data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2023
From: KI, YANG SEOK; KANG, YANGWOOK
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 063901/0148 →
Continuity (3)
Continuation 16846256 · Apr 10, 2020
Provisional Application 62948794 · Dec 16, 2019
Related Publication 20220156016A1 · May 19, 2022
Cited By (1)
US 12,399,656