IP Library Granted Patent US 10,078,614
Granted Patent B2
US 10,078,614 · App. 14/857,136 · Granted Sep 18, 2018

Systems and methods of data transfer

Inventors: Eliad Adi Klein (Sunnyvale, CA); Rotem Sela (Haifa, IL); Miki Sapir (Nes Ziona, IL)
Assignee: SANDISK TECHNOLOGIES LLC
G06F13/4282G06F13/1668Y02D10/14Y02D10/151
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,078,614
App. No.
14/857,136
Granted
Sep 18, 2018
Kind
B2
Abstract

Data transfer between a data storage device and a peripheral device bypasses an application processor that is coupled to the data storage device and to the peripheral device. In one embodiment, the data storage device includes a memory controller configured to receive, from an application processor, a message indicating a set of logical addresses and a data transfer identifier corresponding to the set of logical addresses. The memory controller is responsive to a request for memory access that includes the data transfer identifier and that is received from a peripheral device. The memory controller is configured to respond to the request by performing a memory access operation based on the set of logical addresses.

Claims (50)

1. A data storage device comprising:

a memory; and

a memory controller coupled to the memory, the memory controller having an interface to an application processor and a peripheral device, wherein the memory controller is configured to:

receive, from the application processor, a message indicating a set of logical addresses and a data transfer identifier corresponding to the set of logical addresses; and

responsive to a request for memory access, wherein the request includes the data transfer identifier and is received from the peripheral device, perform a memory access operation based on the set of logical addresses.

2. The data storage device of claim 1 , wherein the set of logical addresses corresponds to data stored in the memory, wherein the request includes a request for read access to the memory, and wherein performing the memory access operation includes reading the data from the memory and sending the data to the peripheral device.

3. The data storage device of claim 2 , wherein the memory controller is coupled to the application processor and to the peripheral device via an interconnect device, and wherein the data is sent to the peripheral device via the interconnect device.

4. The data storage device of claim 3 , wherein the interconnect device comprises a root complex device, and wherein the memory controller is coupled to the interconnect device via a peripheral component interconnect express (PCIe) bus.

5. The data storage device of claim 1 , wherein the set of logical addresses corresponds to one or more locations in the memory allocated for storage of data, wherein the request includes a request for write access to the memory, and wherein performing the memory access operation includes receiving the data from the peripheral device and storing the data into the one or more locations.

6. The data storage device of claim 1 , wherein the memory controller is further configured to receive a lock command from the application processor prior to receiving the request and to enable execution of the request received from the peripheral device in response to the lock command, and wherein the memory controller is further configured to receive a release command from the application processor after performing the memory access operation.

7. A method comprising:

in a data storage device coupled to an application processor and to a peripheral device, the data storage device including a memory and a memory controller coupled to the memory, performing:

receiving, from the application processor, a message indicating a set of logical addresses and a data transfer identifier corresponding to the set of logical addresses; and

responsive to a request for memory access that is received from the peripheral device and that includes the data transfer identifier, performing a memory access operation based on the set of logical addresses.

8. The method of claim 7 , wherein the set of logical addresses corresponds to data stored in the memory, wherein the request includes a read request for read access to the memory, and wherein performing the memory access operation includes reading the data from the memory and sending the data to the peripheral device.

9. The method of claim 8 , further comprising:

storing a first logical address of the set of logical addresses at a second memory of the memory controller;

detecting the data transfer identifier in the request; and

identifying the first logical address stored at the second memory in response to detecting the data transfer identifier in the read request.

10. The method of claim 9 , wherein the request includes an offset value, and further comprising:

adding the offset value to the first logical address to determine a second logical address of the set of logical addresses; and

reading at least a portion of the data from the memory based on the second logical address.

11. A computer readable storage device storing instructions that, when executed by a processor in a data storage device that is coupled to an application processor and to a peripheral device, cause the processor of the data storage device to perform operations including:

receiving, from the application processor, a message indicating a set of logical addresses and a data transfer identifier corresponding to the set of logical addresses; and

responsive to a request for memory access that is received from the peripheral device and that includes the data transfer identifier, performing a memory access operation based on the set of logical addresses.

12. An apparatus comprising:

means for storing logical address information; and

means for receiving the logical address information from the means for storing, for generating, based on the logical address information, a message including information associated with a set of logical addresses corresponding to a storage device and indicating a data transfer identifier, and for sending the message to the storage device, wherein the information enables the storage device to perform a memory access operation responsive to a request for memory access from a peripheral device to the storage device, the request including the data transfer identifier.

13. A peripheral device comprising:

a peripheral controller having an interface to an application processor and a storage device, the peripheral controller configured to:

receive, from the application processor, a message including information associated with a set of logical addresses corresponding to the storage device and connectivity parameters to enable communication with a remote device; and

send, to the storage device, an access request to cause the storage device to perform a memory access operation associated with data, the access request including the information; and

a peripheral memory coupled to the peripheral controller and configured to store the data.

14. The peripheral device of claim 13 , wherein the information comprises at least one logical address of the set of logical addresses.

15. The peripheral device of claim 13 wherein the information comprises a data transfer identifier corresponding to the set of logical addresses.

16. The peripheral device of claim 13 , wherein the information comprises one or more connectivity parameters to enable autonomous communication with the remote device.

17. The peripheral device of claim 13 , wherein the access request includes a data transfer identifier corresponding to the set of logical addresses, at least one logical address of the set of logical addresses, an offset value, or a combination thereof.

18. The peripheral device of claim 13 , wherein the access request comprises a read request or a write request.

19. The peripheral device of claim 13 , wherein the peripheral controller is coupled to the application processor and to the storage device via an interconnect device, and wherein the peripheral controller is further configured to send the access request to the storage device via the interconnect device.

20. The peripheral device of claim 13 , further comprising a transceiver coupled to the peripheral controller.

21. The data storage device of claim 1 , further comprising a second memory of the memory controller, wherein the memory controller is further configured to store a first logical address of the set of logical addresses at the second memory.

22. The data storage device of claim 1 , further comprising a second memory of the memory controller, wherein the memory controller is further configured to identify a first logical address stored at the second memory in response to detecting the data transfer identifier in the request, the first logical address included in the set of logical addresses.

23. The method of claim 7 , further comprising:

prior to receiving the request, receiving a lock command from the application processor; and

executing the request received from the peripheral device in response to the lock command.

24. The method of claim 7 , further comprising receiving a release command from the application processor after performing the memory access operation.

25. The computer readable storage device of claim 11 , wherein the operations further include:

adding an offset value indicated by the request to a first logical address of the set of logical addresses to generate a second logical address; and

reading at least a portion of data from the memory based on the second logical address, the data corresponding to the set of logical addresses.

26. The apparatus of claim 12 , wherein the means for receiving the logical address information is configured to operate during the memory access operation based on one or more of a standby mode or a low-power mode.

Assignments (5)
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 038812/0954 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2015
From: KLEIN, ELIAD ADI; SELA, ROTEM; SAPIR, MIKI
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 036592/0411 →
Continuity (2)
Provisional Application 62203365 · Aug 10, 2015
Related Publication 20170046300A1 · Feb 16, 2017