IP Library Granted Patent US 11,782,844
Granted Patent B2
US 11,782,844 · App. 17/590,721 · Granted Oct 10, 2023

Vector processor storage

Inventors: Xavier Aldren Simmons (Cambridge, NZ); Jack Spencer Turpitt (Cambridge, NZ); Rafael John Patrick Shuker (Cambridge, NZ); Tyler Wilson Hale (Cambridge, NZ); Alexander Kingsley St. John (Cambridge, NZ); Stuart John Inglis (Cambridge, NZ)
Assignee: Nyriad Inc.
G06F12/10G06F3/065G06F3/0607G06F9/30036G06F9/30123G06F9/3877G06F11/1004G06F11/1088G06F12/0246G06F12/0815G06F12/12G06F12/1408G06F3/0679G06F2212/1052G06F2212/657
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,782,844
App. No.
17/590,721
Granted
Oct 10, 2023
Kind
B2
Abstract

A method comprising: receiving, at a vector processor, a request to store data; performing, by the vector processor, one or more transforms on the data; and directly instructing, by the vector processor, one or more storage device to store the data; wherein performing one or more transforms on the data comprises: erasure encoding the data to generate n data fragments configured such that any k of the data fragments are usable to regenerate the data, where k is less than n; and wherein directly instructing one or more storage device to store the data comprises: directly instructing the one or more storage devices to store the plurality of data fragments.

Claims (59)

1. A method comprising:

receiving, at a vector processor, a request to store data;

performing, by the vector processor, one or more transforms on the data; and

instructing, by the vector processor, one or more storage devices to store the data;

wherein performing one or more transforms on the data comprises:

erasure encoding the data to generate n data fragments configured such that any m data fragments are recoverable using k data fragments, where n=m+k; and

wherein instructing one or more storage devices to store the data comprises:

instructing the one or more storage devices to store the plurality of data fragments.

2. The method of claim 1 , wherein performing, by the vector processor, one or more transforms on the data consists of:

performing, by the vector processor, one or more invertible transforms on the data.

3. The method of claim 1 , wherein:

performing one or more transforms on the data further comprises:

calculating a cryptographic hash for the data; and

instructing one or more storage device to store the data comprises:

instructing one or more storage devices to store the cryptographic hash for the data.

4. The method of claim 1 , wherein performing one or more transforms on the data comprises:

logging a storage event associated with the request to store data.

5. The method of claim 1 , wherein performing one or more transforms on the data comprises:

encrypting and/or compressing the data.

6. The method of claim 1 , wherein performing one or more transforms on the data comprises:

identifying one or more plugins configured to be used for the one or more transforms.

7. The method of claim 1 , wherein storing the data fragments at one or more storage devices comprises:

instructing, by the vector processor, a storage device to store at least k of the data fragments, where k is the minimum number of data fragments that can be used to regenerate the data.

8. The method of claim 1 , wherein receiving, at a vector processor, a request to store data comprises:

executing a write instruction in a kernel being executed by the vector processor.

9. The method of claim 1 , further comprising, before directly instructing one or more storage device to store the data:

storing, by the vector processor, the data in non-volatile memory.

10. The method of claim 1 , wherein instructing one or more storage device to store the data comprises:

instructing a plurality of storage device in parallel to store the data.

11. A method comprising:

receiving, at a vector processor, a request to retrieve data;

instructing one or more storage devices to retrieve a plurality of data fragments associated with the data from the one or more storage devices; and

performing, by the vector processor, one or more transforms on the data fragments to obtain the data;

wherein the plurality of data fragments comprises at least k data fragments among n erasure encoded data fragments, where any m data fragments are recoverable using k data fragments, and n=m+k; and

wherein performing one or more transforms on the data fragments to obtain the data comprises:

erasure decoding at least k data fragments to generate the data.

12. The method of claim 11 , wherein performing one or more transforms on the data comprises:

logging a retrieval event associated with the request to retrieve data.

13. The method of claim 11 , wherein performing one or more transforms on the data fragments comprises one or more of:

decrypting and/or decompressing the data; or

identifying one or more plugins configured to be used for the one or more transforms.

14. The method of claim 11 , wherein directly instructing one or more storage devices to retrieve a plurality of data fragments associated with the data from the one or more storage devices comprises:

sending, by the vector processor to the one or more storage devices, a request for a data fragment associated with the data; and

receiving, at the vector processor, at least one data fragment associated with the data in response to one or more of the requests.

15. The method of claim 14 , wherein the request for a data fragment comprises a memory address, and receiving at least one data fragment comprises:

reading a memory associated with the memory address; and

when the data stored in the memory can be used to generate the data, determining that the at least one data fragment has been received.

16. The method of claim 11 , wherein receiving a request to retrieve data comprises:

executing a read instruction in a kernel being executed by the vector processor.

17. A system comprising:

one or more vector processors; and

a memory;

wherein the memory comprises instructions which, when executed by the one or more vector processors, configure the one or more vector processors to perform the method of claim 1 .

18. One or more non-transitory computer readable media comprising instructions which, when executed by one or more vector processors, cause the one or more vector processors to perform the method of claim 1 .

19. A system comprising:

one or more vector processors; and

a memory;

wherein the memory comprises instructions which, when executed by the one or more vector processors, configure the one or more vector processors to perform the method of claim 11 .

20. One or more non-transitory computer readable media comprising instructions which, when executed by one or more vector processors, cause the one or more vector processors to perform the method of claim 11 .

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDRESS OF ASSIGNEE PREVIOUSLY RECORDED ON REEL 66856 FRAME 603. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 25, 2024
From: NYRIAD; NYRIAD, INC.
To: DAEDALUS CLOUD LLC
Reel/Frame 067239/0096 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2024
From: NYRIAD; NYRIAD INC.
To: DAEDALUS CLOUD LLC
Reel/Frame 066856/0603 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2023
From: NYRIAD
To: NYRIAD, INC.
Reel/Frame 062768/0593 →
CHANGE OF NAME Recorded Feb 9, 2023
From: NYRIAD LIMITED
To: NYRIAD
Reel/Frame 062693/0742 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2023
From: SIMMONS, XAVIER ALDREN; TURPITT, JACK SPENCER; HALE, TYLER WILSON; SHUKER, RAFAEL JOHN PATRICK
To: NYRIAD LIMITED
Reel/Frame 062514/0392 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2023
From: INGLIS, STUART JOHN
To: NYRIAD LIMITED
Reel/Frame 062495/0358 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2023
From: KINGSLEY ST. JOHN, ALEXANDER
To: NYRIAD LIMITED
Reel/Frame 062486/0219 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2023
From: SIMMONS, XAVIER ALDREN; KINGSLEY ST. JOHN, ALEXANDER
To: NYRIAD LIMITED
Reel/Frame 062487/0077 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2023
From: KINGSLEY ST. JOHN, ALEXANDER
To: NYRIAD LIMITED
Reel/Frame 062486/0522 →
Continuity (5)
Continuation 16556711 · Aug 30, 2019
Provisional Application 62746981 · Oct 17, 2018
Provisional Application 62725703 · Aug 31, 2018
Provisional Application 62725691 · Aug 31, 2018
Related Publication 20220156200A1 · May 19, 2022