IP Library Granted Patent US 10,444,998
Granted Patent B1
US 10,444,998 · App. 14/673,392 · Granted Oct 15, 2019

Data storage device providing data maintenance services

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 10,444,998
App. No.
14/673,392
Granted
Oct 15, 2019
Kind
B1
Abstract

Systems and methods are disclosed for performing data maintenance and/or other data operations within a data storage device. A data storage device is disclosed including a device controller, non-volatile data storage, an interface for receiving data storage commands from a host system, a framework including a memory for storing xenocode code received from the host system, and a processor for executing the xenocode. The device controller is configured to write user data received from the host system to a first partition of the non-volatile data storage in response to a storage command received via the interface from the host system. The xenocode, when executed, causes the processor to read the user data from the first partition of the non-volatile data storage, perform data operations on the read user data, and write results associated with the data operations in a second partition of the non-volatile data storage.

Claims (38)

1. A data storage device comprising:

non-volatile data storage;

an interface for receiving data storage commands from a host system; and

a framework including a memory for storing xenocode received from the host system and a processor for executing the xenocode, wherein the xenocode comprises executable code configured by the host system, and wherein the configured executable code is further compiled by the host system prior to the memory storing the xenocode received from the host system;

wherein the data storage device is configured to write user data received from the host system to a first partition of the non-volatile data storage in response to a storage command received via the interface from the host system; and

wherein the xenocode, when executed, causes the processor to:

read the user data from the first partition of the non-volatile data storage without using the interface;

perform data operations on the read user data; and

write results associated with the data operations in a second partition of the non-volatile data storage without using the interface.

2. The data storage device of claim 1 , wherein the xenocode further cause the data storage device to provide at least a portion of the results to the host system.

3. The data storage device of claim 2 , wherein said providing the at least a portion of the results to the host system is performed in response to a request from the host system.

4. The data storage device of claim 2 , wherein said providing the at least a portion of the results to the host system is performed according to a predetermined schedule.

5. The data storage device of claim 1 , wherein the xenocode comprises a non-native software application.

6. The data storage device of claim 1 , wherein the first and second partitions of the non-volatile data storage are physical partitions.

7. The data storage device of claim 1 , wherein the first and second partitions of the non-volatile data storage are logical partitions.

8. The data storage device of claim 1 , wherein the data storage device is configured to determine a low-duty period of time and cause said data operations to be performed at least partially during the low-duty period of time.

9. The data storage device of claim 1 , wherein the data storage device is configured to cause the data operations to be performed in coordination with execution of firmware of the data storage device.

10. The data storage device of claim 1 , wherein the data operations include one or more of indexing, data de-duplication, virus searching, and statistical analysis.

11. The data storage device of claim 1 , wherein the data storage device is further configured to prevent the host system from writing to the second partition.

12. The data storage device of claim 1 , wherein the processor is part of a device controller.

13. A method of performing data operations in a data storage device comprising non-volatile data storage and a memory, the method comprising:

receiving xenocode comprising processor executable instructions from a host system, wherein the xenocode comprises executable code configured by the host system, and wherein the configured executable code is further compiled by the host system;

storing the xenocode in a memory of a framework for storing and executing the xenocode in a data storage device, wherein storing the xenocode in the memory occurs after the configured executable code is compiled by the host system;

receiving a storage command from the host system over a communication interface;

writing user data associated with the storage command and received from the host system to a first partition of a non-volatile data storage of the data storage device in response to receiving the storage command;

executing the xenocode to cause a processor of the framework to:

read the user data from the first partition of the non-volatile data storage without using the communication interface;

perform data operations on the read user data; and

write results associated with the data operations in a second partition of the non-volatile data storage without using the communication interface.

14. The method of claim 13 , further comprising providing at least a portion of the results to the host system.

15. The method of claim 14 , wherein said providing the at least a portion of the results to the host system is performed in response to a request from the host system.

16. The method of claim 14 , wherein said providing the at least a portion of the results to the host system is performed according to a predetermined schedule.

17. The method of claim 13 , wherein the xenocode comprises a non-native virtual software application.

18. The method of claim 13 , wherein the first and second partitions of the non-volatile data storage are physical partitions.

19. The method of claim 13 , wherein the first and second partitions of the non-volatile data storage are logical partitions.

20. The method of claim 13 , further comprising determining a low-duty period of time and performing said data operations at least partially during the low-duty period of time.

21. The method of claim 13 , wherein the data operations include one or more of indexing, data de-duplication, virus searching, and statistical analysis.

22. The method of claim 13 , further comprising preventing the host system from writing to the second partition.

Assignments (13)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2015
From: OBUKHOV, DMITRY S.; BOMBET, MARC A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 035292/0017 →