IP Library Granted Patent US 8,750,365
Granted Patent B1
US 8,750,365 · App. 14/099,229 · Granted Jun 10, 2014

System and method for multi-threaded OFDM channel equalizer with coprocessor

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,750,365
App. No.
14/099,229
Granted
Jun 10, 2014
Kind
B1
Abstract

A system for an orthogonal frequency division multiplexed (OFDM) equalizer, said system comprising a program memory, a program sequencer and a processing unit connected to each other, wherein the processing unit comprises an input selection unit, an arithmetic logic unit (ALU), a coprocessor and an output selection unit; further wherein the program sequencer schedules the processing of one or more symbol-carrier pairs input to said OFDM equalizer using multiple threads; retrieves, for each of the one or more symbol-carrier pairs, multiple program instructions from said program memory; generates multiple expanded instructions corresponding to said retrieved multiple program instructions; and further wherein said ALU performs said processing of the one or more symbol-carrier pairs using the multiple threads across multiple pipeline stages, wherein said processing comprises said ALU executing arithmetic operations to process said expanded instructions using said multiple threads across the multiple pipeline stages.

Claims (126)

1. A system for an orthogonal frequency division multiplexed (OFDM) equalizer, said OFDM equalizer comprising one or more inputs and one or more outputs, said system comprising a program memory, a program sequencer and a processing unit connected to each other, wherein:

the processing unit comprises

an input selection unit,

an arithmetic logic unit (ALU) having one or more inputs and an output,

wherein said ALU is pipelined and has a plurality of pipeline stages,

a coprocessor and

an output selection unit;

further wherein the program sequencer

schedules the processing of one or more symbol-carrier pairs input to said OFDM equalizer using a plurality of threads,

retrieves, for each of the one or more symbol-carrier pairs, a plurality of program instructions from said program memory, and

generates a plurality of expanded instructions corresponding to said retrieved plurality of program instructions; and

further wherein

said ALU performs said processing of the one or more symbol-carrier pairs using the plurality of threads across said plurality of pipeline stages,

wherein said processing comprises

said ALU executing one or more arithmetic operations to process said expanded instructions using said plurality of threads across said plurality of pipeline stages, said arithmetic operations comprising

 addition of two or more complex numbers,

 multiplication of two or more complex numbers,

 sign change of a complex number,

 complex conjugation of a complex number, and

 scaling of a complex number; and

said coprocessor executing division of one by the square root of a real number.

2. The system of claim 1 , wherein one of the one or more inputs to the OFDM equalizer is coupled to an output from a fast Fourier transform (FFT) processing system connected to an output memory of the FFT processing system, and the one or more symbol-carrier pairs are input to the OFDM equalizer from the output memory of the FFT processing system.

3. The system of claim 2 , wherein

a first subset of the one or more symbol-carrier pairs is associated with a first symbol, and a second subset of the one or more symbol-carrier pairs is associated with a second symbol;

said first subset comprising one or more first data carriers and one or more first pilot carriers, and said second subset comprising one or more second data carriers and one or more second pilot carriers;

wherein both the first and the second subset are stored in the output FFT memory, further wherein the first subset is stored in the output FFT memory before storing the second subset; and

said processing unit

commences processing of the first data carriers,

stops processing of the first data carriers, and commences processing of the second pilot carriers when the second subset is available to be read from the output FFT memory, and

returns to processing the first data carriers after completion of processing the second pilot carriers.

4. The system of claim 1 , wherein the number of threads equals or exceeds the number of pipeline stages.

5. The system of claim 1 , wherein

the one or more symbol-carrier pairs comprise a plurality of pilot carriers,

the ALU further includes an accumulator to allow said plurality of pilot carriers to be processed in parallel in consecutive threads.

6. The system of claim 1 , wherein

each of the one or more symbol-carrier pairs has an associated symbol index and an associated carrier index;

each of the plurality of threads has an associated thread index; and

said generation of expanded instructions comprises concatenation of at least the

retrieved program instruction,

the associated thread index,

one or more least significant bits of the associated symbol index, and

the associated carrier index.

7. The system of claim 6 , wherein said processing unit comprises

one or more per-thread register banks,

one or more per-carrier register banks, and

one or more per-symbol register banks.

8. The system of claim 7 ,

each of the one or more per-thread register banks having an associated per-thread register bank address, said associated per-thread register bank address formed by concatenation of one or more bits in the program instruction with said associated thread index;

each of the one or more per-carrier register banks having an associated per-carrier register bank address, said associated per-carrier register bank address formed by concatenation of one or more bits in the program instruction with said associated carrier index; and

each of the one or more per-symbol register banks having an associated per-symbol register bank address, said associated per-symbol register bank address formed by concatenation of one or more bits in the program instruction with said one or more least significant bits from the associated symbol index.

9. The system of claim 8 , wherein

the input to the OFDM equalizer is coupled to the output of a fast Fourier transform (FFT) processing system;

the one or more symbol-carrier pairs are input to the OFDM equalizer from an output memory of the FFT processing system; and

the FFT output memory having one or more associated addresses, each associated address formed by concatenation of the said associated carrier index with said one or more least significant bits from the associated symbol index.

10. The system of claim 8 , wherein the output from the OFDM equalizer is connected to a slicer, wherein said associated carrier index is passed to the slicer, and used by the slicer to calculate signal-to-noise ratio (SNR) for the carrier associated with the carrier index.

11. The system of claim 1 , wherein a subset of the one or more symbol-carrier pairs is associated with a symbol;

the subset comprising one or more data carriers and one or more pilot carriers; and

wherein said program sequencer schedules processing of the one or more pilot carriers within the subset before processing the one or more data carriers within the subset.

12. The system of claim 1 , wherein each input to the ALU is connected to an associated pre-processor,

each said pre-processor performs one or more pre-processing operations comprising

negation,

conjugation,

generating the real number one, and

zeroing the imaginary part of the complex number input.

13. The system of claim 1 , further wherein the ALU executes a multiply-add operation.

14. The system of claim 1 , further wherein the ALU executes a multiply-double-add operation.

15. The system of claim 1 , wherein the said coprocessor uses an iterative algorithm to execute the said division of one by the square root of a real number.

16. A method of processing one or more symbol-carrier pairs in an OFDM equalizer, said OFDM equalizer comprising a program memory, a program sequencer and a processing unit connected to each other, wherein the processing unit comprises an input selection unit, an arithmetic logic unit (ALU) having one or more inputs and one output, wherein said ALU is pipelined and has a plurality of pipeline stages, a coprocessor and an output selection unit, said method comprising:

scheduling the processing of one or more symbol-carrier pairs using a plurality of threads;

retrieving, for each of the one or more symbol-carrier pairs, a plurality of program instructions from said program memory;

generating a plurality of expanded instructions corresponding to said retrieved plurality of program instructions; and

processing the one or more symbol-carrier pairs using the plurality of threads across said plurality of pipeline stages, said processing comprising

executing one or more arithmetic operations to process said expanded instructions using said plurality of threads across said plurality of pipeline stages, said arithmetic operations comprising

adding two or more complex numbers,

multiplying two or more complex numbers,

changing the sign of a complex number,

complex conjugating of a complex number,

scaling of a complex number, and

dividing one by the square root of a real number,

said dividing performed by said coprocessor.

17. The method of claim 16 , wherein one of the one or more inputs to the OFDM equalizer is coupled to an output from a fast Fourier transform (FFT) processing system connected to an output memory of the FFT processing system, and the one or more symbol-carrier pairs are input to the OFDM equalizer from the output memory of the FFT processing system.

18. The method of claim 17 , wherein

a first subset of the one or more symbol-carrier pairs is associated with a first symbol, and a second subset of the one or more symbol-carrier pairs is associated with a second symbol;

said first subset comprising one or more first data carriers and one or more first pilot carriers, and said second subset comprising one or more second data carriers and one or more second pilot carriers;

wherein both the first subset and the second subset are stored in the output FFT memory, further wherein the first subset is stored in the output FFT memory before the second subset; and

wherein said processing comprises,

commencing the processing of the first data carriers,

stopping the processing of the first data carriers, and commencing the processing of the second pilot carriers when the second subset is available to be read from the output FFT memory, and

returning to the processing of the first data carriers after completion of processing of the second pilot carriers.

19. The method of claim 16 , wherein the number of threads equals or exceeds the number of pipeline stages.

20. The method of claim 16 , wherein

the one or more symbol-carrier pairs comprise a plurality of pilot carriers, and

the ALU includes an accumulator to allow said plurality of pilot carriers to be processed in parallel in consecutive threads.

21. The method of claim 16 , wherein

each of the one or more symbol-carrier pairs has an associated symbol index and an associated carrier index;

each of the plurality of threads has an associated thread index; and

said generating of expanded instructions comprises concatenating of the

retrieved program instruction,

associated thread index,

one or more least significant bits of the associated symbol index, and

the associated carrier index.

22. The method of claim 21 , wherein said processing unit comprises

one or more per-thread register banks,

one or more per-carrier register banks, and

one or more per-symbol register banks.

23. The method of claim 22 ,

each of the one or more per-thread register banks having an associated per-thread register bank address, said associated per-thread register bank address formed by concatenation of one or more bits in the program instruction with said associated thread index;

each of the one or more per-carrier register banks having an associated per-carrier register bank address, said associated per-carrier register bank address formed by concatenation of one or more bits in the program instruction with said associated carrier index; and

each of the one or more per-symbol register banks having an associated per-symbol register bank address, said associated per-symbol register bank address formed by concatenation of one or more bits in the program instruction with said one or more least significant bits from the associated symbol index.

24. The method of claim 23 , wherein

the input to the OFDM equalizer is coupled to the output of a fast Fourier transform (FFT) processing system connected to an output memory of the FFT processing system,

the one or more symbol-carrier pairs are input to the OFDM equalizer from the output memory of the FFT processing system; and

the FFT output memory having one or more associated addresses, each associated address formed by concatenation of the said associated carrier index with said one or more least significant bits from the associated symbol index.

25. The method of claim 23 , wherein one of the one or more outputs from the OFDM equalizer is connected to a slicer, wherein the said associated carrier index is passed to the slicer, and used by the slicer to calculate signal-to-noise ratio (SNR) for the carrier associated with the carrier index.

26. The method of claim 16 , wherein a subset of the one or more symbol-carrier pairs is associated with a symbol;

the subset comprising one or more data carriers, and one or more pilot carriers; and

wherein said scheduling comprises scheduling processing of the one or more pilot carriers within the subset before processing the one or more data carriers within the subset.

27. The method of claim 16 , wherein each input to the ALU is connected to an associated pre-processor,

each said pre-processor performs one or more pre-processing operations comprising

negation,

conjugation,

generating the real number one, and

zeroing the imaginary part of the complex number input.

28. The method of claim 16 , further wherein the ALU executes a multiply-add operation.

29. The method of claim 16 , further wherein the ALU executes a multiply-double-add operation.

30. The method of claim 16 , wherein said coprocessor uses an iterative algorithm to execute said dividing of one by the square root of a real number.

Assignments (3)
SECURITY INTEREST Recorded Jan 18, 2024
From: AVIAT NETWORKS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 066351/0322 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2023
From: REDLINE COMMUNICATIONS INC.
To: AVIAT U.S., INC.
Reel/Frame 063754/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2014
From: SARCA, OCTAVIAN VALERIU
To: REDLINE COMMUNICATIONS, INC.
Reel/Frame 031966/0034 →