IP Library Granted Patent US 10,248,587
Granted Patent B2
US 10,248,587 · App. 14/075,905 · Granted Apr 2, 2019

Reduced host data command processing

Inventors: Shay Benisty (Beer Sheva, IL); Tal Sharifie (Lehavim, IL); Girish Desai (Cuppertino, CA); Oded Karni (Sunnyvale, CA)
Assignee: SanDisk Technologies LLC
G06F13/1673G06F13/28
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,248,587
App. No.
14/075,905
Granted
Apr 2, 2019
Kind
B2
Abstract

Methods and systems are provided that execute reduced host data commands. A reduced host data command may be a write command that includes or is received with an indication of host data instead of the host data. The reduced host data command may be executed with a Direct Memory Access (DMA) circuit independently of a processor that executes administrative commands. In the execution of the reduced host data command, host data may be generated, metadata may be generated, and the generated host data and/or metadata may be copied into backend memory with the DMA circuit independently of the processor.

Claims (54)

1. A storage system comprising:

a buffer configured to store host data responsive to the host data being received from a host over a bus;

a backend memory for data storage;

a processor; and

a Direct Memory Access (DMA) circuit configured to copy data to the backend memory independently of the processor, the DMA circuit comprising:

a data generator configured to generate the host data responsive to the host data not being received from the host, wherein the DMA circuit is configured to:

copy the host data generated by the data generator to the backend memory independently of the processor responsive to the host data not being received from the host; and

copy the host data in the buffer to the backend memory independently of the processor responsive to the host data being received from the host; and

a metadata generator configured to:

generate the metadata from the host data that is in the buffer responsive to the host data being received from the host; and

generate the metadata from the host data that is generated by the data generator responsive to the host data not being received from the host.

2. The storage system of claim 1 , wherein the data generator is further configured to generate a pattern in the host data, the pattern indicated by a bus protocol command received from the host over the bus.

3. The storage system of claim 2 , wherein:

the bus protocol command is a write zeros command; and

the pattern generated comprises zeros.

4. The storage system of claim 1 , wherein the data generator is further configured to generate the host data as uncompressed data responsive to compressed host data being received from the host over the bus.

5. The storage system of claim 1 , wherein the metadata generated by the metadata generator comprises data integrity check information.

6. The storage system of claim 1 , wherein:

the processor is configured to execute logic included in firmware, the logic executable to perform a bus protocol command responsive to the bus protocol command being any of a first set of commands;

the bus protocol command is received from the host over the bus; and

the DMA circuit is further configured to copy data to the backend memory independently of the processor responsive to the bus protocol command being any of a second set of commands.

7. The storage system of claim 6 , wherein the bus protocol command complies with a Non Volatile Memory Express (NVME) standard.

8. A bus controller comprising:

a buffer configured to store host data responsive to the host data being received over a bus;

a data generator configured to generate the host data responsive to an indication of host data being received over the bus instead of the host data;

a metadata generator configured to:

generate metadata based on the host data in the buffer responsive to the host data being received over the bus; and

generate the metadata based on the host data generated by the data generator responsive to the indication of host data being received over the bus instead of the host data; and

a Direct Memory Access (DMA) circuit configured to write at least one of the metadata and the host data, which is generated by the data generator or received over the bus, into a backend memory.

9. The bus controller of claim 8 , wherein the DMA circuit includes the metadata generator.

10. The bus controller of claim 8 further comprising an input selector, wherein:

the input selector is configured to selectively output the host data generated by the data generator or the host data received over the bus depending on whether the host data is generated by the data generator or received over the bus; and

the DMA circuit copies the host data outputted by the input selector to the backend memory.

11. The bus controller of claim 8 , wherein the DMA circuit is further configured to write the metadata and the host data to the backend memory in response to receipt of a reduced host data command that includes the indication of host data or in response to a host data command that includes or is received with the host data.

12. The bus controller of claim 8 , wherein the indication of host data is a pseudo write command.

13. The bus controller of claim 8 , wherein:

the indication of host data is encrypted host data; and

the data generator is further configured to decrypt the encrypted host data.

14. The bus controller of claim 8 further comprising a processor, wherein the DMA circuit is configured to write the metadata and the host data into the backend memory independently of the processor.

15. A method to process reduced host data commands, the method comprising:

executing a reduced host data command with a Direct Memory Access (DMA) circuit independently of a processor that executes administrative commands, wherein the reduced host data command is received over a bus, and wherein executing the reduced host data command comprises:

generating host data based on an indication of host data received over the bus;

generating metadata based on the generated host data responsive to the host data not being received over the bus;

generating the metadata based on the host data responsive to the host data being received over the bus; and

writing at least one of the generated host data and the generated metadata into a backend memory with the DMA circuit.

16. The method of claim 15 , wherein generating the host data comprises generating a pattern indicated by the indication of host data.

17. The method of claim 15 , wherein the indication of host data includes the reduced host data command.

18. The method of claim 15 , wherein generating the metadata comprises generating the metadata with the DMA circuit.

19. The method of claim 15 , wherein generating the host data comprises unencrypting decrypted data included in the indication of host data.

20. A system for executing a reduced host data command with a Direct Memory Access (DMA) circuit independently of a processor that executes administrative commands, wherein the reduced host data command is received over a bus, the system comprising:

means for generating host data based on an indication of host data received over the bus;

means for generating metadata based on the generated host data responsive to the host data not being received over the bus;

means for generating the metadata based on the host data responsive to the host data being received over the bus; and

means for writing at least one of the generated host data and the generated metadata into a backend memory with the DMA circuit.

Assignments (6)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2014
From: BENISTY, SHAY; SHARIFIE, TAL; DESAI, GIRISH; KARNI, ODED
To: SANDISK IL LTD.
Reel/Frame 033177/0696 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2014
From: SANDISK IL LTD.
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 033177/0760 →
Continuity (1)
Related Publication 20150134871A1 · May 14, 2015