IP Library Granted Patent US 9,015,397
Granted Patent B2
US 9,015,397 · App. 13/767,404 · Granted Apr 21, 2015

Method and apparatus for DMA transfer with synchronization optimization

Inventors: Tal Sharifie (Lehavim, IL); Shay Benisty (Beer Sheva, IL); Yair Baram (Metar, IL)
Assignee: SanDisk Technologies Inc.
G06F13/28G06F11/1076G06F11/108
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 9,015,397
App. No.
13/767,404
Granted
Apr 21, 2015
Kind
B2
Abstract

A DMA optimization circuit transfers data from a single source device to a plurality of destination devices on a computer bus. A first DMA control circuit is configured to transfer a payload of data from the source device to a first destination device where the payload of data divided into a plurality of chunks of data. A second DMA control circuit is configured to transfer the payload of data from the source device to a second destination device, and is further configured to perform a logical operation on the data transferred to the second destination device. A synchronization controller is configured to control each DMA control circuit to independently transfer the chunk of data, and receives a signal indicating that both DMA control circuits have finished transferring the corresponding chunk of data. The synchronization controller then transfers of a next chunk of data only when both DMA control circuits have finished transferring the corresponding chunk of data.

Claims (38)

1. A system for optimizing direct memory access (DMA) data transfer from a single source device to a plurality of destination devices on a computer bus, the system comprising:

a first DMA control circuit configured to transfer a payload of data from the source device to a first destination device, the payload of data divided into a plurality of chunks of data;

a second DMA control circuit configured to transfer the payload of data from the source device to a second destination device, and configured to perform a logical operation on the data transferred to the second destination device;

a synchronization controller operatively coupled to the first DMA control circuit and to the second DMA control circuit, and configured to control each DMA control circuit to independently transfer the chunk of data, wherein the synchronization controller is configured to receive a signal indicating that both DMA control circuits have finished transferring the corresponding chunk of data; and

the synchronization controller configured to facilitate transfer of a next chunk of data only when both DMA control circuits have finished transferring the corresponding chunk of data.

2. The system of claim 1 , wherein the payload of data is divided into a plurality of chunks of data of equal size.

3. The system of claim 2 , wherein the payload of data is divided into one or more chunks of data.

4. The system of claim 1 , wherein the computer bus is a serial data bus.

5. The system of claim 4 , wherein the serial data bus is a PCI Express compatible bus.

6. The system of claim 2 , wherein the payload of data corresponds to a maximum payload size associated with a PCI Express bus protocol.

7. The system of claim 1 , wherein the source device is a memory circuit, a flash memory circuit, a memory interface, or a flash memory interface.

8. The system of claim 1 , wherein the first destination device is a host device or a host interface.

9. The system of claim 1 , wherein the second destination device is buffer into which the transferred data has been processed in accordance with a logical operation.

10. The system of claim 9 , wherein the logical operation is at least one of an XOR operation, an OR operation, a NOR operation, an AND operation, a NAND operation, a parity operation, and a checksum operation.

11. The system of claim 1 , wherein the first DMA control circuit is configured to transfer data at a first data transfer rate, and the second DMA control circuit is configured to transfer data at a second data transfer rate, wherein the first data transfer rate is different than the second data transfer rate.

12. A system for optimizing DMA data transfer on a computer bus, from a single source device to a plurality of destination devices, the system comprising:

a first DMA control circuit configured to transfer data from the source device to a first destination device;

a second DMA control circuit configured to transfer data from the source device to a second destination device, and configured to perform a logical operation on the data transferred to the second destination device;

a synchronization controller operatively coupled to the first DMA control circuit and to the second DMA control circuit, and configured to synchronize transfer of a payload of data from the source device to both the first and second destination devices;

the synchronization controller configured to divide the payload of data into a plurality of chunks of data and control each DMA control circuit to facilitate the transfer of each chunk of data by the respective DMA control circuit;

the synchronization controller configured to initialize each DMA control circuit in an identical manner, and control each DMA control circuit to begin data transfer at the same time such that the first DMA control circuit and the second DMA control circuit transfer the chunk of data without intervention by the synchronization controller, and provide a signals to the synchronization circuit indicating that both DMA control circuits have finished transferring the corresponding chunk of data; and

wherein when both DMA control circuits have finished transferring the corresponding chunk of data, the synchronization controller facilitates transfer of a next chunk of data until all chunks of data of the payload of data have been transferred by the first and second DMA controllers.

13. The system of claim 12 , wherein the computer bus is a serial data bus.

14. The system of claim 13 , wherein the serial data bus is a PCI Express compatible bus.

15. The system of claim 14 , wherein the payload of data corresponds to a maximum payload size associated with a PCI Express bus protocol.

16. The system of claim 12 , wherein the source device is a memory circuit, a flash memory circuit, a memory interface, or a flash memory interface.

17. The system of claim 12 , wherein the first destination device is a host device or a host interface.

18. The system of claim 12 , wherein the second destination device is buffer into which the transferred data has been processed in accordance with a logical operation.

19. The system of claim 18 , wherein the logical operation is at least one of an XOR operation, an OR operation, a NOR operation, an AND operation, a NAND operation, a parity operation, or a checksum operation.

20. The system of claim 12 , wherein the first DMA control circuit is configured to transfer data at a first data transfer rate, and the second DMA control circuit is configured to transfer data at a second data transfer rate, wherein the first data transfer rate is different than the second data transfer rate.

21. The system of claim 12 , wherein the payload of data is divided into one or more chunks of data.

22. A method for optimizing DMA data transfer on a computer bus, from a single source device to a first destination device and a second destination device, the system comprising:

dividing a payload of data into a plurality of chunks of data;

performing a logical operation on the data transferred to the second destination device;

synchronizing, using a synchronizer circuit, a transfer of a payload of data from the source device to both the first and second destination devices by controlling a first DMA control circuit to transfer data from the source device to the first destination device and by controlling a second DMA control circuit to transfer data from the source device to the second destination device;

initializing each DMA control circuit in an identical manner, and directing each DMA control circuit to begin data transfer at the same time such that the first DMA control circuit and the second DMA control circuit transfer the chunk of data;

providing signals to the synchronization circuit indicating that both DMA control circuits have finished transferring the corresponding chunk of data; and

transferring a next chunk of data only when both DMA control circuits have finished transferring the chunk of data, until all chunks of data of the payload of data have been transferred by the first and second DMA controllers.

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 038807/0898 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2013
From: SHARIFIE, TAL; BENISTY, SHAY; BARAM, YAIR
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 030392/0425 →
Continuity (2)
Provisional Application 61731331 · Nov 29, 2012
Related Publication 20140149625A1 · May 29, 2014