IP Library Granted Patent US 8,898,212
Granted Patent B2
US 8,898,212 · App. 12/288,955 · Granted Nov 25, 2014

Methods and apparatus for reordering data

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 8,898,212
App. No.
12/288,955
Granted
Nov 25, 2014
Kind
B2
Abstract

A data reordering system for determining addresses associated with a vector of transformed data and corresponding method of reordering transformed data, where the data reordering system includes: a first transform function coupled to a data vector and operable to provide the vector of transformed data; a reordering function, including a plurality of counters, that is operable to determine a plurality of offset addresses, with a, respective, offset address for each element in the vector of transformed data; and an adder operable to add a base address that corresponds to the first address to the each, respective, offset address to provide a sequence of addresses suitable for accessing the vector of transformed data to provide a re-sequenced vector of transformed data.

Claims (61)

1. A method of reordering transformed data, the method comprising:

providing a sequence of transformed data;

determining, using a plurality of counters suitably arranged and selectively configured each with a programmable step size and programmable maximum value, an address for each element of the sequence of transformed data, the address defining an address relative to a first address for a first element of the sequence of transformed data, the address used to reorder the transformed data; and

using the sequence of transformed data in accordance with the address for each element of the sequence of transformed data,

wherein the determining an address further comprises concatenating the plurality of counters and wherein, when one counter reaches its corresponding maximum value, another counter begins to count to provide a count, and

wherein an output of the one counter is a sequence corresponding in part to the address for each element of the sequence of transformed data.

2. The method of claim 1 wherein the sequence of transformed data includes a sequence of Fast Fourier transform (FFT) coefficients from a mixed radix FFT and wherein the determining an address further comprises configuring each of the plurality of counters with a, respective, step size and maximum value each depending on a radix corresponding to each respective counter.

3. The method of claim 2 wherein the concatenating the plurality of counters occurs in an order based on a corresponding stage of transformation, and wherein, when a first counter reaches its corresponding maximum value, a second counter begins to count to provide a second count, the second count used to reinitialize the first counter, and

wherein an output of the first counter is a sequence of addresses comprising the address for each element of the sequence of transformed data.

4. The method of claim 1 wherein:

the providing a sequence of transformed data comprises providing a N point sequence of Fast Fourier transform (FFT) coefficients from a mixed radix FFT algorithm using R sequential radix r_i stages, the product of all r_i equal to N;

the determining an address further comprises concatenating R counters, with each counter programmed to have a step size and a maximum value that is a function of one or more of the r_i; and

when a given counter reaches its maximum value, a subsequent counter begins to count to provide a subsequent count that is used to reinitialize all earlier counters, and when an Rth counter reaches its maximum value, the method is complete and an output of a first counter is a sequence of addresses comprising the address for each element of the sequence of transformed data.

5. The method of claim 1 wherein the determining an address further comprises:

using a first counter to provide a pointer address;

using the pointer address to retrieve a first value from a lookup table (LUT);

using a second counter to provide a second value; and

combining the first value and the second value to provide the address.

6. The method of claim 5 further comprising bit reversing an output of the second counter to provide the second value and wherein the combining the first value and the second value further comprises adding the first value and the second value to provide the address.

7. The method of claim 5 wherein:

the providing a sequence of transformed data comprises providing a sequence of Fast Fourier transform (FFT) coefficients from a mixed radix FFT algorithm; and

the determining an address further comprises configuring the first counter with a first maximum value and configuring the second counter with a second maximum value.

8. The method of claim 7 wherein:

the configuring the first counter with a first maximum value further includes programming the first counter with a first maximum value that is based on a product of non radix 2 stages in the mixed radix FFT algorithm; and

the configuring the second counter with a second maximum value further comprises programming the second counter with a second maximum value based on a product of radix 2 stages in the mixed radix FFT algorithm.

9. The method of claim 7 further comprising loading the LUT with a number of entries based on the first limit value.

10. The method of claim 7 further comprising:

counting with the first counter from an initial value to the first maximum value; and

when the first counter reaches the first maximum value, triggering the second counter for a count and resetting the first counter to the initial value.

11. A data reordering system including circuitry for determining addresses associated with a vector of transformed data, the data reordering system comprising:

a first transform function coupled to a data vector and operable to provide the vector of transformed data;

a reordering function including a plurality of counters selectively configured each with a programmable step size and programmable maximum value, the reordering function operable to determine a plurality of offset addresses, with a, respective, offset address for each element in the vector of transformed data, each, respective, offset address defining an address relative to a first address for a first element in the vector of transformed data; and

an adder operable to add a base address, corresponding to the first address, to the each, respective, offset address to provide a sequence of addresses suitable for accessing the vector of transformed data to provide a re-sequenced vector of transformed data,

wherein the plurality of counters are concatenated in an order and wherein, when one counter reaches a predetermined value, another counter begins to count to provide another count, and

wherein an output of the one counter is a sequence corresponding in part to the address for each element of the sequence of transformed data.

12. The data reordering system of claim 11 further comprising a second transform function suitably configured to access the re-sequenced vector of transformed data and provide a vector of inverse transformed data.

13. The data reordering system of claim 12 further comprising a bit reversing function coupled to the adder and operable such that each of the sequence of addresses includes a bit reversed portion and the vector of inverse transformed data is in a linear order.

14. The data reordering system of claim 11 wherein the first transform function is operable to perform a mixed radix Fast Fourier transform (FFT) on the data vector and provide the vector of transformed data as a vector of Fast Fourier transform (FFT) coefficients and wherein each of the plurality of counters is programmed with a, respective, step size and maximum value.

15. The data reordering system of claim 14 wherein the plurality of counters are concatenated in an order based on a corresponding radix, and wherein, when a first counter reaches its corresponding maximum value, a second counter begins to count to provide a second count, the second count used to reinitialize the first counter, and

wherein an output of the first counter is a sequence of addresses comprising the offset address for each element of the vector of transformed data.

16. The data reordering system of claim 11 further comprising:

a look up table (LUT);

a first counter to provide a sequence of pointer addresses, the sequence of pointer addresses for retrieving a sequence of first values from the LUT; and

a second counter to provide a sequence of second values;

wherein the adder is further operable to combine, respective, first values and second values from the sequence of first values and the sequence of second values to provide the sequence of addresses.

17. The data reordering system of claim 16 further comprising:

a bit reversing function operable to bit reverse outputs of the second counter to provide the sequence of second values; and

wherein the adder is further operable to add, respective, first values and second values from the sequence of first values and the sequence of second values to provide the sequence of addresses.

18. The data reordering system of claim 16 :

wherein the first transform function is operable to perform a mixed radix Fast Fourier transform (FFT) on the data vector and provide the vector of transformed data as a vector of Fast Fourier transform (FFT) coefficients;

wherein the first counter is programmed with a first maximum value based on a product of all non radix 2 stages in the FFT and the second counter is programmed with a second maximum value based on a product of all radix 2 stages in the FFT; and

wherein the LUT comprises a LUT with a number of entries based on the first limit value.

19. The data reordering system of claim 18 wherein the first counter is operable to sequentially count from an initial value to the first maximum value; and

when the first counter reaches the first maximum value, trigger the second counter for a count and reset the first counter to the initial value.

20. A data reordering system including circuitry for determining addresses associated with a vector of transformed data, the data reordering system comprising:

a first transform function coupled to a data vector and operable to perform a mixed radix fast Fourier transform (FFT) to provide a vector of FFT coefficients;

a reordering function including a plurality of counters selectively configured each with a programmable step size and programmable maximum value, the reordering function operable to determine a plurality of offset addresses, with a, respective, offset address for each element in the vector of FFT coefficients, each, respective, offset address defining an address relative to a first address for a first element in the vector of FFT coefficients;

an adder operable to add a base address that corresponds to the first address to the each, respective, offset address to provide a sequence of addresses suitable for accessing the vector of FFT coefficients to provide a re-sequenced vector of FFT coefficients; and

a second transform function operable to access the vector of FFT coefficients in accordance with the sequence of addresses and provide a vector of inverse FFT data that is in monotonically increasing order,

wherein the plurality of counters are concatenated in an order based on a corresponding radix, and wherein, when a first counter reaches its corresponding maximum value, a second counter begins to count to provide a second count, the second count used to reinitialize the first counter, and

wherein an output of the first counter is a sequence of addresses comprising the offset address for each element of the vector of transformed data.

Assignments (27)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE LISTED CHANGE OF NAME SHOULD BE MERGER AND CHANGE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0180. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 12, 2017
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 041354/0148 →
CHANGE OF NAME Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040652/0180 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0807 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded Mar 12, 2009
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 022380/0409 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2008
From: CHEN, NING; DANIELS, CHRISTOPHER J.; DEHNER, LEO G.; NG, GREGORY C.; REED, WENDY F.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 021813/0828 →