IP Library Granted Patent US 11,263,145
Granted Patent B2
US 11,263,145 · App. 16/556,711 · Granted Mar 1, 2022

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 Limited
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,263,145
App. No.
16/556,711
Granted
Mar 1, 2022
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

directly 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 k of the data fragments are usable to regenerate the data, where k is less than n; and

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

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

directly 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

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

directly 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 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.

7. 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.

8. 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.

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

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

10. A method comprising:

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

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; 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 k of the data fragments are usable to regenerate the data, and k is less than n;

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; and

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

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

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

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

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

decrypting and/or decompressing the data.

13. The method of claim 10 , 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.

14. The method of claim 13 , 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.

15. The method of claim 10 , wherein receiving a request to retrieve data comprises:

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

16. 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 .

17. 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 .

18. 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 10 .

19. 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 10 .

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 Apr 28, 2022
From: NYRIAD
To: NYRIAD, INC.
Reel/Frame 059730/0383 →
CHANGE OF NAME Recorded Apr 14, 2022
From: NYRIAD LIMITED
To: NYRIAD
Reel/Frame 059862/0237 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2022
From: INGLIS, STUART JOHN
To: NYRIAD
Reel/Frame 059521/0721 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2022
From: SIMMONS, XAVIER ALDREN; SHUKER, RAFAEL JOHN PATRICK; TURPITT, JACK SPENCER; HALE, TYLER WILSON
To: NYRIAD LIMITED
Reel/Frame 059807/0864 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2021
From: ST. JOHN, ALEXANDER KINGSLEY
To: NYRIAD LIMITED
Reel/Frame 058381/0447 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2021
From: ST. JOHN, ALEXANDER KINGSLEY
To: NYRIAD LIMITED
Reel/Frame 058381/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2021
From: SIMMONS, XAVIER ALDREN; ST. JOHN, ALEXANDER KINGSLEY
To: NYRIAD LIMITED
Reel/Frame 058381/0133 →
Continuity (4)
Provisional Application 62746981 · Oct 17, 2018
Provisional Application 62725703 · Aug 31, 2018
Provisional Application 62725691 · Aug 31, 2018
Related Publication 20200073663A1 · Mar 5, 2020
Cited By (2)
US 12,229,055 US 12,235,772