IP Library Granted Patent US 12,235,772
Granted Patent B2
US 12,235,772 · App. 18/463,256 · Granted Feb 25, 2025

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: Daedalus Cloud LLC
G06F12/10G06F3/0607G06F3/065G06F9/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 12,235,772
App. No.
18/463,256
Granted
Feb 25, 2025
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 (34)

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

instructing, by the vector processor, one or more storage devices to store the data, wherein instructing one or more storage devices to store the data comprises instructing the one or more storage devices to store the data without the mediation of a central processing unit (CPU); and

receiving, by the vector processor, an acknowledgment from the one or more storage devices that m of the data fragments have been stored, in which k≤m<n.

2. The method of claim 1 , wherein performing, by the vector processor, one or more transforms on the data comprises 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 the 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 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 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 instructing one or more storage device to store the data comprises instructing a plurality of the one or more storage devices to store the data in parallel.

10. A system comprising:

one or more vector processors; and

a memory comprising 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 .

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

12. A method comprising:

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

broadcasting, by the first vector processor, instructions to retrieve a plurality of data fragments associated with the data, wherein the instructions are received by a second vector processor and one or more storage devices in communication with the first vector processor;

in response to receipt of the instructions from the first vector processor, broadcasting, by the second vector processor, the instructions to retrieve the plurality of data fragments associated with the data, wherein the instructions are received by one or more storage devices in communication with the second vector processor;

receiving, by the first vector processor, the data fragments from the one or more storage devices in communication with the first and second vector processors; and

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

13. The method of claim 12 , wherein performing one or more transforms on the data comprises logging a retrieval event associated with the request to retrieve data.

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

15. The method of claim 12 , wherein receiving a request to retrieve data comprises executing a read instruction in a kernel being executed by the first vector processor.

16. A system comprising:

a first and a second vector processor; and

a memory comprising instructions which, when executed by the first and second vector processors, configure the first and second vector processors to perform the method of claim 12 .

17. One or more non-transitory computer readable media comprising instructions which, when executed by a first and a second vector processor, cause the first and second vector processors to perform the method of claim 12 .

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2024
From: ST. JOHN, ALEXANDER KINGSLEY
To: NYRIAD LIMITED
Reel/Frame 069426/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2024
From: ST. JOHN, ALEXANDER KINGSLEY
To: NYRIAD LIMITED
Reel/Frame 069426/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2024
From: SIMMONS, XAVIER ALDREN; ST. JOHN, ALEXANDER KINGSLEY
To: NYRIAD LIMITED
Reel/Frame 069426/0969 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2024
From: INGLIS, STUART JOHN
To: NYRIAD LIMITED
Reel/Frame 069427/0019 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2024
From: NYRIAD
To: NYRIAD, INC.
Reel/Frame 069427/0091 →
CHANGE OF NAME Recorded Nov 27, 2024
From: NYRIAD LIMITED
To: NYRIAD
Reel/Frame 069445/0763 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2024
From: SIMMONS, XAVIER ALDREN; TURPITT, JACK SPENDER; HALE, TYLER WILSON; SHUKER, RAFAEL JOHN PATRICK
To: NYRIAD LIMITED
Reel/Frame 069453/0707 →
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 →
Continuity (6)
Continuation 17590721 · Feb 1, 2022
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 20230418761A1 · Dec 28, 2023
References Cited (109)
US 5282274A · Liu · 1994 [cited by applicant]
US 5459857A · Ludlam et al. · 1995 [cited by applicant]
US 5502836A · Hale et al. · 1996 [cited by applicant]
US 6467016B1 · Kanai · 2002 [cited by applicant]
US 7822856B2 · Zuckerman · 2010 [cited by examiner]
US 9092152B1 · Piszczek et al. · 2015 [cited by applicant]
US 9116621B1 · Pintiysky et al. · 2015 [cited by applicant]
US 9158927B1 · Franklin · 2015 [cited by examiner]
US 9164702B1 · Nesbit et al. · 2015 [cited by applicant]
US 9268640B1 · Foley et al. · 2016 [cited by applicant]
US 9571125B2 · Lee · 2017 [cited by examiner]
US 9639457B1 · Piszczek et al. · 2017 [cited by applicant]
US 9779035B1 · Patiejunas · 2017 [cited by examiner]
US 9811275B2 · Chen et al. · 2017 [cited by applicant]
US 9823968B1 · Fugini et al. · 2017 [cited by applicant]
US 10152376B2 · Danilov · 2018 [cited by examiner]
US 10739996B1 · Ebsen et al. · 2020 [cited by applicant]
US 10783022B2 · Danilov et al. · 2020 [cited by applicant]
US 11115057B2 · Danilov et al. · 2021 [cited by applicant]
US 11263144B2 · Inglis et al. · 2022 [cited by applicant]
US 11263145B2 · Simmons et al. · 2022 [cited by applicant]
US 11347653B2 · Inglis et al. · 2022 [cited by applicant]
US 20040123032A1 · Talagala et al. · 2004 [cited by applicant]
US 20050080990A1 · Mereddy et al. · 2005 [cited by applicant]
US 20060212782A1 · Li · 2006 [cited by examiner]
US 20070168632A1 · Zeevi et al. · 2007 [cited by applicant]
US 20080086620A1 · Morris · 2008 [cited by applicant]
US 20090203430A1 · Peek · 2009 [cited by applicant]
US 20090235014A1 · Yim et al. · 2009 [cited by applicant]
US 20090268903A1 · Bojinov · 2009 [cited by examiner]
US 20100037056A1 · Follis et al. · 2010 [cited by applicant]
US 20110126015A1 · Bennett · 2011 [cited by applicant]
US 20110126045A1 · Bennett · 2011 [cited by applicant]
US 20120268469A1 · Shchepetov et al. · 2012 [cited by applicant]
US 20120311238A1 · Im · 2012 [cited by applicant]
US 20130016109A1 · Garanzha · 2013 [cited by applicant]
US 20130067174A1 · Moss et al. · 2013 [cited by applicant]
US 20140006850A1 · Aliev et al. · 2014 [cited by applicant]
US 20140046908A1 · Patiejunas et al. · 2014 [cited by applicant]
US 20140075104A1 · Buswell · 2014 [cited by applicant]
US 20140281364A1 · Buschardt et al. · 2014 [cited by applicant]
US 20140325117A1 · Canepa et al. · 2014 [cited by applicant]
US 20150205663A1 · Sundaram et al. · 2015 [cited by applicant]
US 20150325315A1 · Rakitzis et al. · 2015 [cited by applicant]
US 20170061566A1 · Min et al. · 2017 [cited by applicant]
US 20170132151A1 · Bakke et al. · 2017 [cited by applicant]
US 20170147516A1 · De · 2017 [cited by applicant]
US 20170206033A1 · Ma et al. · 2017 [cited by applicant]
US 20170228313A1 · Boitei · 2017 [cited by applicant]
US 20170272209A1 · Yanovsky et al. · 2017 [cited by applicant]
US 20180004413A1 · Zhang · 2018 [cited by applicant]
US 20180150347A1 · Vidyapoornachary et al. · 2018 [cited by applicant]
US 20180173420A1 · Li et al. · 2018 [cited by applicant]
US 20180181324A1 · Danilov et al. · 2018 [cited by applicant]
US 20190095123A1 · Lin · 2019 [cited by applicant]
US 20190129834A1 · Purkayastha et al. · 2019 [cited by applicant]
US 20190138445A1 · Lee et al. · 2019 [cited by applicant]
US 20190188079A1 · Kohli · 2019 [cited by examiner]
US 20190266048A1 · Schauer · 2019 [cited by examiner]
US 20190391926A1 · Lin · 2019 [cited by applicant]
US 20200073663A1 · Simmons et al. · 2020 [cited by applicant]
US 20200073818A1 · Inglis et al. · 2020 [cited by applicant]
US 20200073824A1 · Inglis et al. · 2020 [cited by applicant]
US 20220138111A1 · Inglis et al. · 2022 [cited by applicant]
US 20220156200A1 · Simmons et al. · 2022 [cited by applicant]
US 20220253385A1 · Inglis et al. · 2022 [cited by applicant]
CN 104410725A · 2015 [cited by applicant]
CN 107102957A · 2017 [cited by applicant]
WO 2012052800A1 · 2012 [cited by applicant]
WO 2019050418A1 · 2019 [cited by applicant]
Amendment filed Apr. 11, 2024, for U.S. Appl. No. 17/579,264, (filed Jan. 19, 2022), 11 pgs. [cited by applicant]
Amendment filed Apr. 30, 2024, for U.S. Appl. No. 17/731,038, (filed Apr. 27, 2022), 12 pgs. [cited by applicant]
“Virtual memory”, retrieved from: https://web.archive.org/web/20171223141405/https://en. wikipedia.org/wiki/Virtual_memory (Year: 2017), 9 pgs. [cited by applicant]
Final Office Action dated Jul. 28, 2023, for U.S. Appl. No. 17/731,038, (filed Apr. 27, 2022), 29 pgs. [cited by applicant]
Notice of Allowance mailed May 26, 2021, for U.S. Appl. No. 16/556,711, (filed Aug. 30, 2019), 9 pgs. [cited by applicant]
Notice of Allowance mailed Nov. 1, 2021, for U.S. Appl. No. 16/556,711, (filed Aug. 30, 2019), 9 pgs. [cited by applicant]
Office Action dated Nov. 20, 2023, for U.S. Appl. No. 17/579,264, (filed Nov. 20, 2023), 11 pgs. [cited by applicant]
Office Action dated Oct. 15, 2020, for U.S. Appl. No. 16/556,711, (filed Aug. 30, 2019), 15 pgs. [cited by applicant]
Simmons, Xavier Aldren, et al., “Vector Processor Storage,” filed Aug. 30, 2019, U.S. Appl. No. 16/556,711 [NYR045]. [cited by applicant]
Inglis, et al., “Persistent Storage Device Management,” filed Aug. 19, 2019, U.S. Appl. No. 16/544,605 [NYR040]. [cited by applicant]
Inglis, et al., “Block Device Interface Using Non-Volatile Pinned Memory,” filed Aug. 30, 2019, U.S. Appl. No. 16/556,575 [NYR050]. [cited by applicant]
M. L. Curry, “A highly reliable GPU-based RAID system”, (Doctoral dissertation), 2010. [cited by applicant]
R.A. Patel, et al., “Parallel lossless data compression on the GPU” 2012 Innovative Parallel Computer (InPar) 2012. [cited by applicant]
Foreign Communication From a Related Counterpart Application, Extended European Search Report dated Jan. 16, 2020, European Application No. 19194744.9 filed on Aug. 30, 2019. [cited by applicant]
Foreign Communication From a Related Counterpart Application, Partial European Search Report dated Jan. 30, 2020, European Application No. 19194748.0 filed on Aug. 30, 2019. [cited by applicant]
Anujan Varma et al: “Destage algorithms for disk arrays with non-volatile caches”, ACM SIGARCH Computer Architecture News, ACM Special Interest Group on Computer Architecture, 2 Penn Plaza, Suite 701 New York NY 10121-0… [cited by applicant]
Anonymous: “CUDA 2.2 Pinned Memory APIs”, Mar. 1, 2009 (Mar. 1, 2009), XP055655605, Retrieved from the Internet: URL: https://devtalk.nvidia.com/cmd/default/download-comment-attachment/50683/ [retrieved on Jan. 8, 2020]. [cited by applicant]
Foreign Communication From a Related Counterpart Application, Extended European Search Report dated Jan. 27, 2020, European Application No. 19193027.0 filed on Aug. 22, 2019. [cited by applicant]
Office Action dated Mar. 1, 2021, U.S. Appl. No. 16/544,605, filed Aug. 19, 2019 [NYR040]. [cited by applicant]
Final Office Action dated Jul. 8, 2021, U.S. Appl. No. 16/544,605, filed Aug. 19, 2019 [NYR040]. [cited by applicant]
Notice of Allowance dated Jan. 18, 2022, U.S. Appl. No. 16/544,605, filed Aug. 19, 2019 [NYR040]. [cited by applicant]
Notice of Allowance dated Feb. 18, 2021, U.S. Appl. No. 16/556,711, filed Aug. 30, 2019 [NYR045]. [cited by applicant]
Office Action dated Sep. 25, 2020, U.S. Appl. No. 16/556,575, filed Aug. 30, 2019 [NYR050]. [cited by applicant]
Final Office Action dated Jan. 13, 2021, U.S. Appl. No. 16/556,575, filed Aug. 30, 2019 [NYR050]. [cited by applicant]
Office Action dated Apr. 22, 2021, U.S. Appl. No. 16/556,575, filed Aug. 30, 2019 [NYR050]. [cited by applicant]
Notice of Allowance dated Oct. 15, 2021, U.S. Appl. No. 16/556,575, filed Aug. 30, 2019 [NYR050]. [cited by applicant]
Inglis, et al., “Block Device Interface Using Non-Volatile Pinned Memory,” filed Jan. 19, 2022, U.S. Appl. No. 17/579,264 [NYR118]. [cited by applicant]
Office Action dated Jan. 20, 2023, U.S. Appl. No. 17/731,038, filed Apr. 27, 2022 [NYR131]. [cited by applicant]
Office Action dated Oct. 3, 2022, U.S. Appl. No. 17/579,264, filed Jan. 19, 2022 [NYR050]. [cited by applicant]
Inglis, et al., “Persistent Storage Device Management,” filed Apr. 27, 2022, U.S. Appl. No. 17/731,038 [NYR131]. [cited by applicant]
Foreign Communication From a Related Counterpart Application, European Examination Report dated Apr. 21, 2023, European Application No. 19194748.0 filed on Aug. 30, 2019. [cited by applicant]
Simmons, Xavier Aldren, et al., “Vector Processor Storage,” filed Feb. 1, 2022, U.S. Appl. No. 17/590,721 [NYR085]. [cited by applicant]
Office Action dated Dec. 20, 2022, U.S. Appl. No. 17/590,721, filed Feb. 1, 2022 [NYR085]. [cited by applicant]
Notice of Allowance dated Jun. 2, 2023, U.S. Appl. No. 17/590,721, filed Feb. 1, 2022 [NYR085]. [cited by applicant]
Final Office Action dated Jul. 28, 2023, U.S. Appl. No. 17/731,038, filed Apr. 27, 2022 [NYR131]. [cited by applicant]
Final Office Action dated May 1, 2023, U.S. Appl. No. 17/579,264, filed Jan. 19, 2022 [NYR050]. [cited by applicant]
Amendment filed Sep. 6, 2024, for U.S. Appl. No. 17/731,038, (filed Apr. 27, 2022), 9 pgs. [cited by applicant]
Final Office Action dated Jun. 6, 2024, for U.S. Appl. No. 17/731,038, (filed Apr. 27, 2022), 22 pgs. [cited by applicant]
Notice of Allowance mailed Jul. 10, 2024, for U.S. Appl. No. 17/579,264, (filed Jan. 19, 2022), 7 pgs. [cited by applicant]