IP Library Granted Patent US 9,184,787
Granted Patent B2
US 9,184,787 · App. 13/800,167 · Granted Nov 10, 2015

Preamble detection using vector processors

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,184,787
App. No.
13/800,167
Granted
Nov 10, 2015
Kind
B2
Abstract

In one embodiment, a programmable vector processor performs preamble detection in a wireless communication network. Implementation of preamble detection in the vector processor is made possible by a set of vector instructions that include (i) a circular load instruction for loading vectors of received data, (ii) a correlation instruction for correlating the vectors of received data with vectors of the scrambling code to concurrently generate a plurality of complex correlations, (iii) a partial-transpose instruction for arranging vectors of the complex correlations for use by a Fast Hadamard Transform (FHT) processor, and (iv) an FHT instruction for performing FHT processing on a vector of complex correlations. Implementing preamble detection in the vector processor allows more of the received data to be processed concurrently. As a result, preamble detectors of the disclosure may detect preambles using fewer clock cycles than that of comparable preamble detectors implemented using hardware accelerators.

Claims (270)

1. A processor-implemented method for detecting a preamble in a data signal transmitted from a transmitter and received at a receiver after a propagation delay, the method comprising:

generating a vector of correlation values based on a sub-vector of the received-data signal and a sub-vector of a scrambling code, wherein:

the vector of correlation values comprises at least first and second correlation values; and

the at least first and second correlation values correspond to at least first and second possible propagation delays, respectively, of a set of different possible propagation delays;

updating at least two profile values based on the vector of correlation values, wherein each profile value corresponds to a different combination of (i) a possible preamble of a set of different possible preambles and (ii) a possible propagation delay of the set of different possible propagation delays; and

detecting the preamble based on the at least two profile values.

2. The method of claim 1 , wherein generating a vector of correlation values based on a sub-vector of the received-data signal and a sub-vector of a scrambling code comprises:

correlating a first set of received-data values from the sub-vector of the received-data signal with the sub-vector of the scrambling code to generate the first correlation value corresponding to the first possible propagation delay; and

correlating a second set of received-data values from the sub-vector of the received-data signal with the sub-vector of the scrambling code to generate the second correlation value corresponding to the second possible propagation delay.

3. The method of claim 2 , wherein the receiver concurrently generates the at least first and second correlation values.

4. The method of claim 2 , wherein generating a vector of correlation values based on a sub-vector of the received-data signal and a sub-vector of a scrambling code further comprises generating an additional vector of correlation values based on an additional sub-vector of the received-data signal and an additional sub-vector of the scrambling code, wherein generating the additional vector of correlation values comprises:

correlating a first set of received-data values from the additional sub-vector of the received-data signal with the additional sub-vector of the scrambling code to generate a first correlation value in the additional vector of correlation values, wherein the first correlation value corresponds to the first possible propagation delay; and

correlating a second set of received-data values from the additional sub-vector of the received-data signal with the additional sub-vector of the scrambling code to generate a second correlation value in the additional vector of correlation values, wherein the second correlation value in the additional vector of correlation values corresponds to the second possible propagation delay; and

wherein updating at least two profile values based on the vector of correlation values comprises updating the at least two profile values based on both the vector of correlation values and the additional vector of correlation values.

5. The method of claim 1 , wherein updating at least two profile values based on the vector of correlation values comprises:

applying Fast Hadamard Transform processing to the correlation values corresponding to the first possible propagation delay to update profile values corresponding to one or more signature codes at the first possible propagation delay; and

applying Fast Hadamard Transform processing to the correlation values corresponding to the second possible propagation delay to update profile values corresponding to one or more signature codes at the second possible propagation delay.

6. The method of claim 1 , wherein generating a vector of correlation values based on a sub-vector of the received-data signal and a sub-vector of a scrambling code comprises:

de-interleaving the received-data signal into k vectors of the received-data signal, where k>1;

storing each vector of the received-data signal in a different row of memory;

generating, for each row of the memory, a first vector of correlation values based on a first sub-vector of the received-data signal retrieved from the row, wherein each first vector of the correlation values corresponds to a first subset of possible propagation delays; and

generating, for each row of the memory, a second vector of correlation values based on a second sub-vector of the received-data signal retrieved from the row, wherein each second vector of the correlation values corresponds to a second subset of possible propagation delays, different from the first subset of possible propagation delays; and

wherein updating at least two profile values based on the vector of correlation values comprises:

updating a first subset of profile values based on the vector correlation values corresponding to the first subset of possible propagation delays;

updating a second subset of profile values, different from the first subset of profile values, based on the vector correlation values corresponding to the second subset of possible propagation delays; and

wherein detecting the preamble based on the at least two profile values comprises detecting the preamble based on the first and second subsets of profile values.

7. The method of claim 6 , wherein:

the scrambling code is de-interleaved into k vectors of scrambling code, where k>1;

each vector of the scrambling code is stored in a different row of memory; and

each vector of correlation values is proportional to:

l

=

0

31

x

16

l

+

k

+

j

sm

16

a

+

16

l

+

k

,

l

=

0

31

x

16

(

l

+

1

)

+

k

+

j

sm

16

a

+

16

l

+

k

,

,

l

=

0

31

x

16

(

l

+

31

)

+

k

+

j

sm

16

a

+

16

l

+

k

 where x is a received-data value, sin is a scrambling code value, j is an index corresponding to each subset of possible propagation delays for the received-data signal, and a is an index corresponding to each subset of possible propagation delays for the scrambling code.

8. The method of claim 1 , wherein generating a vector of correlation values based on a sub-vector of the received-data signal and a sub-vector of a scrambling code comprises:

de-interleaving a chunk of the received-data signal into k vectors of the received-data signal, wherein k>1 and a size of the chunk of the received-data signal is smaller than a size of an access slot;

storing each vector of the chunk in a different row of memory; and

generating a plurality of vectors of correlation values based on sub-vectors of the received-data signal retrieved from the rows of the memory;

wherein updating at least two profile values based on the vector of correlation values comprises updating a subset of profile values based on the plurality of vector of correlation values, wherein the subset of profile values corresponds to a subset of possible propagation delays; and

wherein said generating and updating are repeated for a subsequent chunk of the received-data signal, wherein for the subsequent chunk, updating the at least two profile values based on the vector of correlation values comprises updating a subsequent subset of profile values corresponding to a subsequent subset of possible propagation delays, different from the subset of possible propagation delays.

9. The method of claim 1 , wherein the method is implemented by a programmable vector processor.

10. The method of claim 1 , wherein generating a vector of correlation values based on a sub-vector of the received-data signal and a sub-vector of a scrambling code comprises:

de-interleaving the received-data signal into k vectors of the received-data signal, where k>1;

storing each vector of the received-data signal in a different row of memory;

retrieving, from each row of the memory, a first sub-vector of the received-data signal, wherein each first sub-vector has fewer received-data values than the corresponding vector; and

retrieving, from each row of the memory, a second sub-vector of the received-data signal;

wherein each second sub-vector has fewer received-data values than the corresponding vector; and

wherein the second sub-vector retrieved from each row is different from the first sub-vector taken from the corresponding row.

11. An apparatus adapted to detect a preamble in a data signal transmitted from a transmitter and received at a receiver after a propagation delay, the apparatus comprising:

a vector correlator adapted to generate a vector of correlation values based on a sub-vector of the received-data signal and a sub-vector of a scrambling code, wherein:

the vector of correlation values comprises at least first and second correlation values; and

the at least first and second correlation values correspond to at least first and second possible propagation delays, respectively, of a set of different possible propagation delays; and

a profile updater adapted to update at least two profile values based on the vector of correlation values, wherein each profile value corresponds to a different combination of (i) a possible preamble of a set of different possible preambles and (ii) a possible propagation delay of the set of different possible propagation delays,

wherein the apparatus is adapted to detect the preamble based on the at least two profile values.

12. The apparatus of claim 11 , wherein the vector correlator is adapted to:

correlate a first set of received-data values from the sub-vector of the received-data signal with the sub-vector of the scrambling code to generate the first correlation value corresponding to the first possible propagation delay; and

correlate a second set of received-data values from the sub-vector of the received-data signal with the sub-vector of the scrambling code to generate the second correlation value corresponding to the second possible propagation delay.

13. The apparatus of claim 12 , wherein the apparatus concurrently generates the at least first and second correlation values.

14. The apparatus of claim 12 , further comprising an additional vector correlator adapted to generate an additional vector of correlation values based on an additional sub-vector of the received-data signal and an additional sub-vector of the scrambling code, wherein generating the additional vector of correlation values comprises:

correlating a first set of received-data values from the additional sub-vector of the received-data signal with the additional sub-vector of the scrambling code to generate a first correlation value in the additional vector of correlation values, wherein the first correlation value corresponds to the first possible propagation delay; and

correlating a second set of received-data values from the additional sub-vector of the received-data signal with the additional sub-vector of the scrambling code to generate a second correlation value in the additional vector of correlation values, wherein the second correlation value in the additional vector of correlation values corresponds to the second possible propagation delay; and

wherein the profile updater is adapted to update the at least two profile values based on both the vector of correlation values and the additional vector of correlation values.

15. The apparatus of claim 14 , wherein the profile updater comprises a Fast Hadamard Transform processor adapted to:

apply a Fast Hadamard Transform to the correlation values corresponding to the first possible propagation delay to update profile values corresponding to one or more signature codes at the first possible propagation delay; and

apply the Fast Hadamard Transform to the correlation values corresponding to the second possible propagation delay to update profile values corresponding to one or more signature codes at the second possible propagation delay.

16. The apparatus of claim 11 , further comprising:

a de-interleaver adapted to de-interleave the received-data signal into k vectors of the received-data signal, where k>1;

memory adapted to store each vector of the received-data signal in a different row of memory; and

at least one vector correlator adapted to:

generate, for each row of the memory, a first vector of correlation values based on a first sub-vector of the received-data signal retrieved from the row, wherein each first vector of the correlation values corresponds to a first subset of possible propagation delays; and

generate, for each row of the memory, a second vector of correlation values based on a second sub-vector of the received-data signal retrieved from the row, wherein each second vector of the correlation values corresponds to a second subset of possible propagation delays, different from the first subset of possible propagation delays; and

wherein the profile updater is further adapted to:

update a first subset of profile values based on the vector correlation values corresponding to the first subset of possible propagation delays; and

update a second subset of profile values, different from the first subset of profile values, based on the vector correlation values corresponding to the second subset of possible propagation delays, wherein the apparatus detects the preamble based on the first and second subsets of profile values.

17. The apparatus of claim 16 , wherein:

the scrambling code is de-interleaved into k vectors of scrambling code, where k>1;

each vector of the scrambling code is stored in a different row of memory; and each vector of correlation values is proportional to:

l

=

0

31

x

16

l

+

k

+

j

sm

16

a

+

16

l

+

k

,

l

=

0

31

x

16

(

l

+

1

)

+

k

+

j

sm

16

a

+

16

l

+

k

,

,

l

=

0

31

x

16

(

l

+

31

)

+

k

+

j

sm

16

a

+

16

l

+

k

where x is a received-data value, sm is a scrambling code value, j is an index corresponding to each subset of possible propagation delays for the received-data signal, and a is an index corresponding to each subset of possible propagation delays for the scrambling code.

18. The apparatus of claim 11 , further comprising:

a de-interleaver adapted to de-interleave a chunk of the received-data signal into k vectors of the received-data signal, wherein k>1 and a size of the chunk of the received-data signal is smaller than a size of an access slot;

memory adapted to store each vector of the chunk in a different row of the memory; and

at least one vector correlator adapted to generate a plurality of vectors of correlation values based on sub-vectors of the received-data signal retrieved from the rows of the memory;

wherein the profile updater is adapted to update a subset of profile values based on the plurality of vector of correlation values, wherein the subset of profile values corresponds to a subset of possible propagation delays; and

wherein the de-interleaver, the memory, the at least one vector correlator, and the profile updater are adapted to process a subsequent chunk of the received-data signal, wherein for the subsequent chunk, the profile updater is adapted to update a subsequent subset of profile values corresponding to a subsequent subset of possible propagation delays, different from the subset of possible propagation delays.

19. The apparatus of claim 11 , wherein the apparatus is a programmable vector processor.

20. The apparatus of claim 19 , wherein:

the programmable vector processor comprises a circular loader, the vector correlator, and the profile updater;

the circular loader implements a circular load instruction to output sub-vectors of the received-data signal to the vector correlator;

the vector correlator implements a vector correlation instruction to generate the at least first and second correlation values; and the profile updater implements a Fast Hadamard Transform instruction to update the at least two profile values.

21. An apparatus for detecting a preamble in a data signal transmitted from a transmitter and received at a receiver after a propagation delay, the apparatus comprising:

means for generating a vector of correlation values based on a sub-vector of the received-data signal and a sub-vector of a scrambling code, wherein:

the vector of correlation values comprises at least first and second correlation values; and

the at least first and second correlation values correspond to at least first and second possible propagation delays, respectively, of a set of different possible propagation delays;

means for updating at least two profile values based on the vector of correlation values, wherein each profile value corresponds to a different combination of (i) a possible preamble of a set of different possible preambles and (ii) a possible propagation delay of the set of different possible propagation delays; and

means for detecting the preamble based on the at least two profile values.

Assignments (5)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 32856/0031 Recorded May 29, 2015
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: LSI CORPORATION
Reel/Frame 035797/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2015
From: LSI CORPORATION
To: INTEL CORPORATION
Reel/Frame 035090/0477 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2013
From: YU, MENG-LIN; CHEN, JIAN-GUO; PETYUSHKO, ALEXANDER ALEXANDROVICH; MAZURENKO, IVAN LEONIDOVICH
To: LSI CORPORATION
Reel/Frame 029986/0217 →