IP Library Granted Patent US 11,294,576
Granted Patent B2
US 11,294,576 · App. 16/506,628 · Granted Apr 5, 2022

Object transformation in a solid state drive

Inventors: Jawad B. Khan (Portland, OR); Kelvin D. Green (Hillsboro, OR); Vasanthi Jagatha (Hillsboro, OR)
Assignee: Intel Corporation
G06F3/0619G06F3/0643G06F3/0679
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,294,576
App. No.
16/506,628
Granted
Apr 5, 2022
Kind
B2
Abstract

A device transmits the capabilities of the device for performing transformations on offloaded objects, to a host. The device receives an object definition command from the host, where the object definition command indicates one or more transformations to apply to an object. One or more transformations are performed on the object to generate one or more transformed objects. A completion command is transmitted to the host to indicate completion of the one or more transformations on the object.

Claims (61)

1. A method, comprising:

receiving, by a memory device, an object definition command from a host that indicates one or more transformations to apply to a data object;

causing the one or more transformations on the data object at the memory device to generate one or more transformed data objects;

storing the one or more transformed data objects in memory at the memory device, the memory associated with one or more namespaces identified in the object definition command;

storing a completion log at a memory address at the memory device, the memory address to correspond to a log address pointer, the completion log to include completion information associated with the one or more transformations; and

sending a completion indication to the host that includes the log address pointer to enable the host to access the completion log at the memory address to obtain completion information.

2. The method of claim 1 , comprising:

sending capabilities for performing transformations on data objects to the host prior to receiving the object definition command.

3. The method of claim 2 , the capabilities comprising encryption, image processing, or deduplication.

4. The method of claim 2 , the memory associated with the one or more namespaces identified in the object definition command comprises non-volatile memory.

5. The method of claim 1 , the method further comprising:

determining a location of the data object based on a pointer included in the object definition command, the location at the host;

causing the data object to be copied from the location and stored to a buffer at the memory device, prior to causing the one or more transformations on the data object.

6. The method of claim 5 , comprising the buffer including volatile memory.

7. The method of claim 1 , comprising:

receiving the data object in a buffer at the memory device via a write operation from the host, prior to causing the one or more transformations on the object.

8. A memory device, comprising:

a non-volatile memory; and

a controller coupled to the non-volatile memory, the controller to:

receive an object definition command from a host that indicates one or more transformations to apply to a data object and indicates an address pointer to store a completion log that includes completion information associated with the one or more transformations;

cause the one or more transformations on the data object at the memory device to generate one or more transformed data objects;

store the one or more transformed data objects in a portion of the non-volatile memory associated with one or more namespaces identified in the object definition command;

store a completion log at a memory address at the memory device, based on the memory address to correspond to a log address pointer, the completion log to include completion information associated with the one or more transformations; and

send a completion indication to the host that includes the log address pointer to cans enable the host to access the completion log at the memory address to obtain completion information.

9. The memory device of claim 8 , comprising:

send capabilities to perform transformations on data objects to the host prior to receiving the object definition command.

10. The memory device of claim 9 , the capabilities comprising encryption, image processing, or deduplication.

11. The memory device of claim 8 , further comprising:

a buffer; and

the controller to:

determine a location of the data object based on a pointer included in the object definition command, the location at the host; and

cause the data object to be copied from the location and stored to the buffer prior to causing the one or more transformations on the data object.

12. The memory device of claim 11 , comprising the buffer including volatile memory.

13. The memory device of claim 8 , further comprising:

a buffer; and

the controller to:

receive the data object in the buffer via a write operation from the host, prior to causing the one or more transformations on the data object.

14. The memory device of claim 13 , comprising the buffer including volatile memory.

15. A system, comprising:

a processor at a host; and

a memory device coupled to the processor, the memory device including:

a non-volatile memory; and

a controller coupled to the non-volatile memory, he controller to:

receive an object definition command from a processor that indicates one or more transformations to apply to a data object;

cause the one or more transformations on the data object at the memory device to generate one or more transformed data objects;

store the one or more transformed data objects in a portion of the non-volatile memory associated with one or more namespaces identified in the object definition command;

store a completion log at a memory address at the memory device, the memory address to correspond to a log address pointer, the completion log to include completion information associated with the one or more transformations; and

send a completion indication to the host that includes the log address pointer to enable the host to access the completion log at the memory address to obtain completion information.

16. The system of claim 15 , comprising:

send capabilities to perform transformations on data objects to the processor prior to receiving the object definition command, the capabilities including encryption, image processing, or deduplication.

17. The system of claim 16 , further comprising:

a buffer that includes volatile memory; and

the controller to:

determine a location of the data object based on a pointer included in the object definition command, the location at the host; and

cause the data object to be copied from the location and stored to the buffer prior to causing the one or more transformations on the data object.

18. The system of claim 17 , the volatile memory comprising static random access memory.

19. The system of claim 13 , further comprising:

a buffer that includes volatile memory; and

the controller to:

receive the data object in the buffer via a write operation from the processor, prior to causing the one or more transformations on the data object.

20. The system of claim 19 , the volatile memory comprising static random access memory.

Continuity (2)
Continuation 15391758 · Dec 27, 2016
Related Publication 20200012439A1 · Jan 9, 2020
Cited By (12)
US 12,189,971 US 12,229,425 US 12,265,719 US 12,271,740 US 12,299,307 US 12,299,460 US 12,333,172 US 12,360,802 US 12,393,432 US 12,399,639 US 12,423,117 US 12,443,436