IP Library Granted Patent US 12,430,077
Granted Patent B2
US 12,430,077 · App. 18/377,821 · Granted Sep 30, 2025

Multiple command format interpretation for SSD

Inventors: Amit Alon (Mishmeret Village, IL); Moshe Karni (Rehovoth, IL); Shay Benisty (Beer Sheva, IL)
Assignee: Sandisk Technologies, Inc.
G06F3/0659G06F3/0658G06F3/0604G06F3/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 12,430,077
App. No.
18/377,821
Filed
Oct 8, 2023
Granted
Sep 30, 2025
Kind
B2
Art Unit
2132
USPC
711/154
Abstract

In addition to transmitting over the ASIC-NAND bus the legacy long command format, a data storage device will be able to use also a compressed/improved command format. The alternate command's format is hidden from most parts of the NAND. The NAND can have a layer that will translate compressed/non standard commands to the legacy (standard) format for use by the rest of the NAND device's logic, as currently implemented. According to selected command format, the Low Level Flow Sequencer (LLFS) sequence generator and the flash interface module (FIM) will know which format to use in order to encode the command's content for transmission to the NAND by the FIM/ASIC/controller. The command is then executed on the NAND side according to the selected command scheme. Changes will be applied in the device controller on the ASIC side—to encode the command, and on the NAND side—to decode the command according to the selected format. The controller on the ASIC side decides on the desired format and is responsible to sync any format change with the NAND before sending a command in a different format than currently agreed between the controller and the NAND.

Claims (57)

1. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the memory device is configured to:

detect that commands received from the controller are either in a compressed or an uncompressed format;

receive an uncompressed command from the controller, wherein the uncompressed format comprises an opcode and address information;

receive a compressed command after the command from the controller, wherein the compressed format comprises an opcode and address information;

decompress the compressed command, wherein the decompressing comprises translating the address information of the compressed command back to the address information of the command; and

execute the decompressed command.

2. The data storage device of claim 1 , wherein the decompressing comprises expanding the decompressed command into an original command size.

3. The data storage device of claim 1 , wherein the decompressed command indicates that data may be written to or read from multiple planes and multiple pages of the memory device.

4. The data storage device of claim 3 , wherein the compressed command includes a single copy of an address to be written to, with a possibility to add indication about a data length that follows.

5. The data storage device of claim 4 , wherein the decompressed command indicates that the data is to be written to multiple pages.

6. The data storage device of claim 1 , wherein the executing comprises writing data across multiple planes and pages of a triple level cell (TLC) memory portion of the memory device.

7. The data storage device of claim 1 , wherein the controller is configured to create the compressed format and wherein the compressed format utilizes less bytes than a same command prior to compressing.

8. The data storage device of claim 1 , wherein the decompressed command indicates that information for execution of the decompressed command has previously been sent to the memory device.

9. The data storage device of claim 1 , wherein the memory device is configured to switch between a first data rate and a second data rate that is different than the first data rate, wherein the switching occurs when receiving a command.

10. The data storage device of claim 9 , wherein the data rate switching occurs less times when receiving a compressed command in comparison to receiving a same command that has not been compressed.

11. The data storage device of claim 1 , wherein the memory device is configured to detect a signal that the command is to be executed in a different mode than a default mode.

12. The data storage device of claim 1 , wherein the memory device is configured to detect a signal that another and/or different operation is to be executed after the received command.

13. The data storage device of claim 1 , wherein the memory device is configured to support default versions of commands and different formats of commands.

14. The data storage device of claim 1 , wherein the memory device is configured to receive a signal format change from the controller.

15. The data storage device of claim 14 , wherein the signal format change is performed using a command or hardware signaling.

16. The data storage device of claim 1 , wherein the memory device is configured to:

select a command format; or

enable/disable specific improvements; or

change format on the fly.

17. A data storage device, comprising:

a memory device; and

a controller coupled to the memory device,

wherein the memory device is configured to:

detect that commands received from the controller are either in a compressed format or an uncompressed format;

receive an uncompressed command from the controller, wherein the uncompressed format comprises an opcode and address information;

receive a compressed command after the command from the controller, wherein the compressed format comprises an opcode and address information;

decompress the compressed command, wherein the decompressing comprises one or more of:

reformatting a portion of the address information of the compressed command back to a corresponding portion of the address information of the command; and

retrieving address information for the compressed command from a location in the memory device; and

executing the decompressed command.

18. The data storage device of claim 17 , wherein the retrieved information is data sent in a previous command.

19. The data storage device of claim 17 , wherein the retrieved information is used for performing an operation upon receipt of the compressed command.

20. The data storage device of claim 17 , wherein the compressed command includes an indication that the command is a compressed command, and wherein the detecting comprises detecting the indication.

21. The data storage device of claim 17 , wherein the memory device is configured to switch between processing compressed commands and commands that have not been compressed.

22. The data storage device of claim 17 , wherein the memory device is configured to perform a sense operation prior to the detecting.

23. A data storage device, comprising:

means to store data, wherein the means to store data is configured to:

detect whether a received command is in a compressed format or a non-compressed format; and

execute the detected command; and

a controller coupled to the means to store data, wherein the controller is configured to:

send commands to the means to store data in the compressed format or the non-compressed format;

detect that address information of a compressed command has already been sent to the means to store data with an non-compressed command; and

remove during a compressing of the compressed command the address information detected to have already been sent with the non-compressed command.

24. The data storage device of claim 23 , wherein the controller comprises a command pattern detector and a command generator.

25. The data storage device of claim 23 , wherein the means to store data comprises a mode detection mechanism and a command interpreter.

26. The data storage device of claim 23 , wherein the controller is further configured to compress a command, the compressing comprises:

determining whether the command contains one or more duplicate values for one or more parameters;

combining the one or more duplicate values for the one or more parameters;

determining whether the command contains unnecessary section markers; and

removing the unnecessary section markers.