IP Library Granted Patent US 10,216,645
Granted Patent B2
US 10,216,645 · App. 14/875,445 · Granted Feb 26, 2019

Memory data transfer method and system

Inventors: Michael Bowler (Ottawa, CA); Neil Hamilton (Kanata, CA)
Assignee: Synopsys, Inc.
G06F12/1081G06F3/065G06F3/0619G06F3/0665G06F3/0689G06F13/28G06F21/85G06F2212/2532Y02D10/14
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,216,645
App. No.
14/875,445
Granted
Feb 26, 2019
Kind
B2
Abstract

A method and apparatus are disclosed for providing a DMA process. Accordingly, a DMA process is initiated for moving data from contiguous first locations to contiguous second locations and to a third location or third locations. Within the DMA process the data from each of the contiguous first locations is retrieved and stored in a corresponding one of the contiguous second locations and in the third location or corresponding one of the third locations. The DMA process is performed absent retrieving the same data a second other time prior to storing of same within the corresponding one of the contiguous second locations and in the third location or corresponding one of the third locations.

Claims (32)

1. A method using one hardware implemented DMA (Direct Memory Access) processor having DMA capability integrated therein, the method comprising:

the one hardware implemented DMA processor moving a first data from a plurality of first locations to an internal memory within the one hardware DMA processor in response to an initial command:

retrieving a subset of the first data from the internal memory within the one hardware implemented DMA processor, the internal memory within the one hardware implemented DMA processor for temporary storage of the retrieved data;

storing the retrieved subset from the internal memory within the one hardware implemented DMA processor to a corresponding one of the plurality of second locations; and

storing the retrieved data from the internal memory to a location of the at least a third location simultaneously and by the same DMA process performed by the one hardware implemented DMA processor,

wherein the plurality of second locations forms a memory buffer having the first data duplicated therein and the at least a third location forms one of a memory buffer having the first data duplicated therein and a memory supporting inline processing of data provided therein.

2. The method according to claim 1 comprising providing a first indicator for addressing each of the plurality of first locations and incrementing the first indicator between data retrieval operations, the first indicator used for addressing each of the plurality of second locations and each of the at least a third location.

3. The method according to claim 1 comprising providing a first indicator for addressing each of the plurality of first locations and incrementing the first indicator between data retrieval operations, and a second indicator for addressing each of the plurality of second locations and incrementing the second indicator between data retrieval operations.

4. The method according to claim 1 comprising providing a first indicator for addressing each of the plurality of first locations and incrementing the first indicator between data retrieval operations, and a second indicator for addressing each of the plurality of second locations and incrementing the second indicator between data retrieval operations, and a third indicator for addressing each of the at least a third location and incrementing the third indicator between data retrieval operations.

5. The method according to claim 1 comprising providing a first indicator for addressing each of the plurality of first locations and incrementing the first indicator between data retrieval operations, the first indicator used for addressing each of the plurality of second locations and other than for addressing each of the at least a third location.

6. The method according to claim 5 where the at least a third location comprises a smaller memory buffer than the plurality of second locations.

7. The method according to claim 6 wherein the at least a third location consists of a single memory location.

8. The method according to claim 1 comprising:

processing of data stored within the plurality of second locations to produce result data, the result data stored in the plurality of first locations.

9. The method according to claim 1 comprising:

processing of data stored within the plurality of second locations to produce result data, the result data stored in the plurality of first locations; and

processing of data stored within the at least a third location to produce third result data, the third result data associated with the result data.

10. The method according to claim 1 wherein the DMA process is initiated with a single command.

11. The method according to claim 1 wherein the DMA process is initiated with from one to three commands.

12. A circuit comprising:

one DMA (Direct Memory Access) transfer circuit configured for, in response to a command, executing a DMA process to transfer data to a plurality of second locations from a plurality of first locations and to transfer the data to at least a third location, the DMA process for other than mirroring the data

the one DMA transfer circuit retrieving a subset of the data from each of the plurality of first locations to a memory within a processor, the memory within the processor for temporary storage of the retrieved data;

the one DMA transfer circuit storing the retrieved subset of the data from the memory within the processor to a corresponding one of the plurality of second locations; and

without retrieving the subset of the data another time therebetween, the one DMA transfer circuit storing the retrieved subset of the data from the memory within the processor to the at least a third location simultaneously and by the same DMA process,

wherein upon completion of the DMA process by the one DMA transfer circuit, the plurality of second locations forms a memory buffer having the first data duplicated therein and the at least a third location forms one of a memory buffer having the first data duplicated therein and a memory supporting inline processing of data provided therein.

13. The circuit according to claim 12 comprising:

a first indicator for addressing each of the plurality of first locations and incrementing the first indicator between data retrieval operations, the first indicator used for addressing each of the plurality of second locations and each of the at least a third location.

14. The circuit according to claim 12 comprising:

a first indicator for addressing each of the plurality of first locations and for being incremented between data retrieval operations, the first indicator used for addressing each of the plurality of second locations and other than for addressing each of the at least a third location.

15. The circuit according to claim 14 wherein the at least a third location comprises a smaller memory buffer than the plurality of second locations.

16. The circuit according to claim 14 wherein the at least a third location forms a memory buffer associated with a result for use in verifying resulting data.

17. The circuit according to claim 15 wherein the at least a third location comprises a single memory location.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2015
From: BOWLER, MICHAEL
To: SYNOPSYS, INC.
Reel/Frame 036957/0488 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2015
From: HAMILTON, NEIL
To: SYNOPSYS, INC.
Reel/Frame 036957/0564 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 8, 2015
From: ELLIPTIC TECHNOLOGIES INC.
To: SYNOPSYS INC.
Reel/Frame 036761/0474 →
Continuity (4)
Continuation 14243960 · Apr 3, 2014
Continuation 13416162 · Mar 9, 2012
Continuation 11185688 · Jul 21, 2005
Related Publication 20160048455A1 · Feb 18, 2016