IP Library Granted Patent US 10,768,816
Granted Patent B2
US 10,768,816 · App. 15/959,875 · Granted Sep 8, 2020

Method and apparatus to manipulate customer data without using the host interface

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,768,816
App. No.
15/959,875
Granted
Sep 8, 2020
Kind
B2
Abstract

A method is disclosed for changing data within a solid state drive without using a host interface, comprising issuing a write buffer command with a code to the solid state drive, receiving the code at the solid state drive, storing the code at the solid state drive, transmitting a command to run the code at the solid state drive, running the code with a processor in a virtual machine arranged within the solid state drive, wherein the running of the code alters data within the solid state drive and altering at least one memory arrangement in the solid state drive such that the memory arrangement records the altered data.

Claims (62)

1. A method for changing data within a solid state drive without using a host interface, comprising:

issuing a write buffer command with a code to the solid state drive;

receiving the code at the solid state drive;

storing the code at the solid state drive;

transmitting a command to run the code at the solid state drive;

executing the code with a processor in a virtual machine arranged within the solid state drive, wherein the running of the code alters data within the solid state drive, and wherein the executing the code with the processor is performed in a background environment of the solid state drive; and

altering at least one memory arrangement in the solid state drive such that the memory arrangement records the altered data.

2. The method according to claim 1 , further comprising:

activating the solid state drive to retrieve the altered data within the solid state drive; and

transmitting the altered data to a host.

3. The method according to claim 1 , wherein the processor also controls solid state drive functions other than running the code.

4. The method according to claim 1 , wherein the storing the code at the solid state drive is in a buffer memory of the processor.

5. The method according to claim 1 , wherein the executing of the code to alter the data within the solid state drive is through a write command.

6. The method according to claim 1 , wherein the executing the code with the processor in the virtual machine comprises:

providing a fixed number of virtual registers.

7. The method according to claim 1 , wherein the executing the code with the processor in the virtual machine comprises:

providing a fixed number of logical based address slots.

8. The method according to claim 1 , wherein the executing the code with the processor in the virtual machine comprises:

providing an application programing interface to query drive characteristics.

9. The method according to claim 8 , wherein the query drive characteristics are one of a maximum number of logical based addresses, a drive format type, and a drive capacity.

10. The method according to claim 1 , the executing the code with the processor in the virtual machine further comprises:

executing a program to create an application programming interface to read logical based addresses from a media to a slot.

11. The method according to claim 10 , wherein the application programming interface is configured to further write data from the slot to the media.

12. The method according to claim 1 , wherein the executing the code with the processor in the virtual machine comprises:

executing a program to create an application programming interface to establish a unit attention on all initiators.

13. The method according to claim 1 , wherein the executing the code with the processor in the virtual machine comprises:

allotting an amount of memory within the solid state drive to a stack for processing.

14. A method for changing data within a solid state drive without using a host interface, comprising:

issuing a write buffer command with a code to the solid state drive;

receiving the code at the solid state drive;

storing the code at the solid state drive;

transmitting a command to run the code at the solid state drive; executing the code with a processor in a virtual machine arranged within the solid state drive, wherein the running of the code alters data within the solid state drive, and wherein the executing the code with the processor in the virtual machine comprises providing a fixed number of virtual registers; and

altering at least one memory arrangement in the solid state drive such that the memory arrangement records the altered data.

15. The method according to claim 14 , further comprising:

activating the solid state drive to retrieve the altered data within the solid state drive; and

transmitting the altered data to a host.

16. The method according to claim 14 , wherein the processor also controls solid state drive functions other than running the code.

17. The method according to claim 14 , wherein the storing the code at the solid state drive is in a buffer memory of the processor.

18. A method for changing data within a solid state drive without using a host interface, comprising:

issuing a write buffer command with a code to the solid state drive;

receiving the code at the solid state drive;

storing the code at the solid state drive;

transmitting a command to run the code at the solid state drive;

executing the code with a processor in a virtual machine arranged within the solid state drive, wherein the running of the code alters data within the solid state drive, and wherein the executing the code with the processor in the virtual machine comprises allotting an amount of memory within the solid state drive to a stack for processing; and

altering at least one memory arrangement in the solid state drive such that the memory arrangement records the altered data.

19. The method according to claim 18 , wherein the executing of the code to alter the data within the solid state drive is through a write command.

20. The method according to claim 18 , wherein the executing the code with the processor in the virtual machine comprises:

providing a fixed number of logical based address slots.

21. The method according to claim 18 , wherein the executing the code with the processor in the virtual machine comprises:

providing an application programing interface to query drive characteristics.

22. A method for changing data within a solid state drive without using a host interface, comprising:

issuing a write buffer command with a code to the solid state drive;

receiving the code at the solid state drive;

storing the code at the solid state drive;

transmitting a command to run the code at the solid state drive;

executing the code with a processor in a virtual machine arranged within the solid state drive, wherein the running of the code alters data within the solid state drive, and wherein the executing the code with the processor in the virtual machine comprises executing a program to create an application programming interface to establish a unit attention on all initiators; and

altering at least one memory arrangement in the solid state drive such that the memory arrangement records the altered data.

23. The method according to claim 22 , wherein the executing the code with the processor in the virtual machine comprises:

providing an application programing interface to query drive characteristics, wherein the query drive characteristics are one of a maximum number of logical based addresses, a drive format type, and a drive capacity.

24. The method according to claim 22 , the executing the code with the processor in the virtual machine further comprises:

executing a program to create an application programming interface to read logical based addresses from a media to a slot.

25. The method according to claim 24 , wherein the application programming interface is configured to further write data from the slot to the media.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2018
From: ROESER, MACKENZIE; HILL, ROBERT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045990/0330 →