IP Library Granted Patent US 12,086,070
Granted Patent B2
US 12,086,070 · App. 17/579,264 · Granted Sep 10, 2024

Block device interface using non-volatile pinned memory

Inventors: Stuart John Inglis (Cambridge, NZ); Timothy Kelly Dawson (Cambridge, NZ); Xavier Aldren Simmons (Cambridge, NZ); Sheridan John Lambert (Cambridge, NZ); Rafael John Patrick Shuker (Cambridge, NZ); Dominic Joseph Michael Houston Azaris (Cambridge, NZ); Alexander Kingsley St. John (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,086,070
App. No.
17/579,264
Granted
Sep 10, 2024
Kind
B2
Abstract

A method includes receiving, at a block device interface, an instruction to write data, the instruction comprising a memory location of the data; copying the data to pinned memory; performing, by a vector processor, one or more invertible transforms on the data; and writing the data from the pinned memory to one or more storage devices asynchronously. The pinned memory of the data corresponds to a location in pinned memory, the pinned memory being accessible by the vector processor and one or more other processors.

Claims (27)

1. A method comprising:

receiving, at a block device interface, an instruction to write data, the instruction comprising a memory location of the data;

copying the data to pinned memory;

indicating to a sender of the instruction that the data in the pinned memory has been written to one or more storage devices before performing one or more invertible transforms on the data;

performing, by a vector processor, the one or more invertible transforms on the data to generate transformed data;

writing the transformed data to the pinned memory; and

initiating a transfer of the transformed data from the pinned memory to the one or more storage devices in response to a block device driver determining that the transformed data must be moved from the pinned memory to the one or more storage devices,

wherein contents of the pinned memory are accessible by the vector processor and a central processing unit (CPU) directly over a data bus.

2. The method of claim 1 , wherein the pinned memory is configured as a write-back cache.

3. The method of claim 2 , further comprising:

determining that a part of the write-back cache associated with the transformed data is dirty;

writing the transformed data to the one or more storage devices; and

marking the part of the write-back cache as clean.

4. The method of claim 2 , wherein the write-back cache comprises a plurality of partitions, each partition being associated with a source.

5. The method of claim 1 ,

wherein the pinned memory comprises a plurality of memory units, and

wherein the transformed data in the pinned memory is located in each of the plurality of memory units.

6. The method of claim 5 , wherein the plurality of memory units comprises one or more pairs of non-volatile dual in-line memory modules (NV-DIMMs).

7. The method of claim 5 , further comprising:

determining that a first one of the plurality of memory units has been replaced; and

mirroring the data from a second one of the plurality of memory units to the first memory unit.

8. The method of claim 1 , wherein the block device interface comprises a block device interface for a meta-device corresponding to the one or more storage devices.

9. The method of claim 2 ,

wherein receiving an instruction to write data comprises receiving an instruction to modify data stored on the one or more storage devices and reading the data stored on the one or more storage devices to the write-back cache, and

wherein writing the data to a the write-back cache comprises modifying the data in the write-back cache based on the instruction.

10. The method of claim 1 , further comprising providing the block device interface.

11. The method of claim 1 , wherein performing, by the vector processor, the one or more invertible transforms on the data comprises one or more of encryption, encoding, compressing, deduplicating, or logging.

Assignments (8)
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/0693 →
CHANGE OF NAME Recorded Feb 9, 2023
From: NYRIAD LIMITED
To: NYRIAD
Reel/Frame 062698/0757 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2023
From: INGLIS, STUART JOHN; DAWSON, TIMOTHY KELLY; SIMMONS, XAVIER ALDREN; LAMBERT, SHERIDAN JOHN; SHUKER, RAFAEL JOHN PATRICK; AZARIS, DOMINIC JOSEPH MICHAEL HOUSTON
To: NYRIAD LIMITED
Reel/Frame 062514/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2023
From: KINGSLEY ST. JOHN, ALEXANDER
To: NYRIAD LIMITED
Reel/Frame 062487/0425 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2023
From: SIMMONS, XAVIER ALDREN; KINGSLEY ST. JOHN, ALEXANDER
To: NYRIAD LIMITED
Reel/Frame 062487/0834 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2023
From: KINGSLEY ST. JOHN, ALEXANDER
To: NYRIAD LIMITED
Reel/Frame 062487/0597 →
Continuity (5)
Continuation 16556575 · Aug 30, 2019
Provisional Application 62746981 · Oct 17, 2018
Provisional Application 62725703 · Aug 31, 2018
Provisional Application 62725691 · Aug 31, 2018
Related Publication 20220138111A1 · May 5, 2022