IP Library Granted Patent US 9,442,872
Granted Patent B2
US 9,442,872 · App. 14/070,657 · Granted Sep 13, 2016

Methods and apparatus for providing bit-reversal and multicast functions utilizing DMA controller

Inventors: Edwin Franklin Barry (Vilas, NC); Nikos P. Pitsianis (Durham, NC); Kevin Coopman (Redwood City, CA)
Assignee: Altera Corporation
G06F13/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 9,442,872
App. No.
14/070,657
Granted
Sep 13, 2016
Kind
B2
Abstract

Techniques for providing improved data distribution to and collection from multiple memories are described. Such memories are often associated with and local to processing elements (PEs) within an array processor. Improved data transfer control within a data processing system provides support for radix 2, 4 and 8 fast Fourier transform (FFT) algorithms through data reordering or bit-reversed addressing across multiple PEs, carried out concurrently with FFT computation on a digital signal processor (DSP) array by a DMA unit. Parallel data distribution and collection through forms of multicast and packet-gather operations are also supported.

Claims (33)

1. A method for unpacking data for storage in a set of processing element (PE) memories of a processor, the method comprising:

receiving from a direct memory access (DMA) controller a data type value to be supported for unpacking data from a DMA bus in memory interface units (MIUs);

selecting, in the MIUs, a different group of data wires of the DMA bus based on the received data type value and an identification signal unique to each MIU; and

receiving, in the MIUs, data being transmitted on the selected different group of data wires of the DMA bus for storage in the set of PE memories, wherein each PE memory is separately coupled to an associated MIU.

2. The method of claim 1 further comprising:

receiving a PE operation code in the MIUs from the DMA controller to perform a PE unpack-distribute operation in each MIU according to the data type value and the unique identification signal.

3. The method of claim 2 further comprising:

receiving a DMA signal indicating that the DMA data bus contains the PE operation code.

4. The method of claim 1 further comprising:

enabling one or more PEs from a plurality of PEs for participating in the PE unpack-distribute operation according to the data type value and the unique identification signal.

5. The method of claim 1 , wherein a byte size distribute of a 32-bit word over four PEs specifies that each MIU receives a byte of the 32-bit word to be written in a memory associated with the MIU that receives the byte.

6. The method of claim 1 , wherein the unique identification signal comprises a PE physical identification (PID) that is based on a physical placement of a PE within a plurality of PEs.

7. The method of claim 1 , wherein the unique identification signal comprises a PE virtual identification (VID) and each PE VID is configurable to support at least two data distribution and collection patterns.

8. The method of claim 7 , wherein each PE VID is mapped to a PE physical identification (PID) for use in controlling local PE operations and the receiving of data from the selected different group of data wires of the DMA bus.

9. A method for unpacking data for storage in a plurality of memories of a processor, the method comprising:

receiving from a direct memory access (DMA) controller a data type value for use in unpacking data elements of a packed data value received from a DMA bus;

selecting a different group of data wires of the DMA bus based on the received data type value and an identification signal associated with a memory of the plurality of memories; and

receiving data being transmitted on the selected different group of data wires of the DMA bus for storage in the associated memory.

10. The method of claim 9 , wherein the received data type value specifies the number of wires in each different group of data wires of the DMA bus.

11. The method of claim 9 , wherein the received data type value specifies the size of the data elements packed on the DMA bus.

12. The method of claim 11 , wherein each data element packed on the DMA bus is associated with a separate memory and in parallel each data element is stored in an associated separate memory.

13. The method of claim 9 , wherein the identification signal comprises a physical identification (PID) that is based on a physical placement of the plurality of memories and associated processors.

14. The method of claim 9 , wherein the identification signal comprises a virtual identification (VID) that is used to specify a pattern for data distribution.

15. The method of claim 9 , wherein the identification signal comprises a virtual identification (VID) for a memory which is compared with a VID provided on the DMA bus to determine a match for storage of the data from the selected different group of data wires.

16. The method of claim 9 , wherein the identification signal comprises a virtual identification (VID) that is translated to a physical identification (PID) to identify the associated memory.

17. The method of claim 9 , wherein the different group of data wires of the DMA bus are selected in a memory interface unit (MIU) of a plurality of MIUs.

18. The method of claim 9 , wherein the different group of data wires of the DMA bus are selected in a processing element (PE) of a plurality of PEs.

19. A method for unpacking data for storage in a plurality of memories of a processor, the method comprising:

sending a data type value on a direct memory access (DMA) bus, the data type value used to identify data elements of a packed data value received for unpacking from the DMA bus;

selecting a different group of data wires of the DMA bus based on the received data type value and an identification signal associated with a memory of the plurality of memories; and

receiving data on the selected different group of data wires of the DMA bus in a DMA bus receiver for storage in the associated memory.

20. The method of claim 19 , wherein the DMA bus receiver is a memory interface unit (MIU) that provides an interface to the associated memory.

21. The method of claim 19 , wherein each data element packed in the packed data value is associated with a separate memory and in parallel each data element is stored in an associated separate memory.

Continuity (10)
Division 13545067 · Jul 10, 2012
Division 13205269 · Aug 8, 2011
Continuation 13113412 · May 23, 2011
Division 12819302 · Jun 21, 2010
Division 11774833 · Jul 9, 2007
Division 11207280 · Aug 19, 2005
Division 10946261 · Sep 21, 2004
Division 09791940 · Feb 23, 2001
Provisional Application 60184668 · Feb 24, 2000
Related Publication 20140075081A1 · Mar 13, 2014