IP Library Granted Patent US 8,819,099
Granted Patent B2
US 8,819,099 · App. 12/442,374 · Granted Aug 26, 2014

Software implementation of matrix inversion in a wireless communication system

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,819,099
App. No.
12/442,374
Granted
Aug 26, 2014
Kind
B2
Abstract

A digital signal processor is provided in a wireless communication device, wherein the processor comprises a vector unit, first and second registers coupled to and accessible by the vector unit; and an instruction set configured to perform matrix inversion of a matrix of channel values by coordinate rotation digital computer instructions using the vector unit and the first and second registers.

Claims (30)

1. A digital signal processor in a wireless communication device, the processor comprising:

a vector unit, the vector unit including multiple instances of a CORDIC functional unit as execution stages of a processing pipeline, each CORDIC functional unit configured to perform one iteration of a CORDIC algorithm;

first and second registers coupled to and accessible by the vector unit; and

an instruction set configured to perform singular value decomposition of a matrix of channel values by coordinate rotation digital computer instructions using the vector unit and the first and second registers, the instruction set including:

a first instruction that reads x and y coordinate values from the first register, reads angle z and iteration count n values from the second register, performs M iterations of the CORDIC algorithm using the multiple instances of the CORDIC functional unit, and writes updated x and y values from the M iterations to the first register without writing updated z and n values from the M iterations to the second register;

a second instruction that reads x and y coordinate values from the first register, reads angle z and iteration count n values from the second register, performs M iterations of the CORDIC algorithm using the multiple instances of the CORDIC functional unit, and writes updated z and n values to the second register without writing updated x and y values to the first register.

2. The processor of claim 1 , wherein the processor is a single instruction multiple data processor.

3. The processor of claim 1 , wherein the instruction set includes instructions that perform a Givens rotation.

4. The processor of claim 1 , wherein the processor is a multi-thread, very long word instruction processor and the instructions use the multi-threading.

5. The processor of claim 1 , wherein the first and second registers are in a register file.

6. The processor of claim 1 , wherein instruction set includes:

a third instruction that reads x and z values from the first register, reads y and n values from the second register, performs M iterations of the CORDIC algorithm using the multiple instances of the CORDIC functional unit, and writes updated x and z values from the M iterations to the first register without writing updated y and n values from the M iterations to the second register;

a fourth instruction that reads x and z values from the first register, reads y and n values from the second register, performs M iterations of the CORDIC algorithm using the multiple instances of the CORDIC functional unit, and writes updated y and n values to the second register without writing updated x and z values to the first register.

7. The processor of claim 1 , wherein the matrix channel values are multiple-input multiple-output received values to be converted to single-input single-output values for further processing by the instructions.

8. A process for performing singular value decomposition of a matrix of channel values in a wireless communication device, the process comprising:

providing a processor that includes a vector unit, the vector unit including multiple instances of a CORDIC functional unit as execution stages of a processor pipeline, each CORDIC functional unit configured to perform one iteration of a CORDIC algorithm; and

the vector unit reading and writing to first and second registers included in the processor;

wherein, the matrix inversion of the matrix of channel values is performed by a coordinate rotation digital computer instruction set using the vector unit and the first and second registers, and the instruction set includes instructions that read the first and second registers, perform a coordinate rotation digital computer process and write results of the process to the first and second registers, wherein the process includes:

calling a first instruction of the instruction set that reads x and y coordinate values from the first register, reads angle z and iteration count n values from the second register, performs M iterations of the CORDIC algorithm using the multiple instances of the CORDIC functional unit, and writes updated and x and y values from the M iterations to the first register without writing updated z and n values from the M iterations to the second register;

calling a second instruction of the instruction set that reads x and y coordinate values from the first register, reads angle z and iteration count n values from the second register, performs M iterations of the CORDIC algorithm using the multiple instances of the CORDIC functional unit, and writes updated z and n values to the second register without writing updated x and y values to the first register.

9. The process of claim 8 , further comprising:

calling a third instruction that reads x and z values from the first register, reads y and n values from the second register, performs M iterations of the CORDIC algorithm using the multiple instances of the CORDIC functional unit, and writes updated x and z values from the M iterations to the first register without writing updated y and n values from the M iterations to the second register;

calling a fourth instruction that reads x and z values from the first register, reads y and n values from the second register, performs M iterations of the CORDIC algorithm using the multiple instances of the CORDIC functional unit, and writes updated y and n values to the second register without writing updated x and z values to the first register.

10. The process of claim 8 , wherein the instructions include instructions that perform a Givens rotation.

11. A digital signal processor in a wireless communication device, the processor comprising:

means for vector processing comprising a vector unit including multiple instances of a CORDIC functional unit as execution stages of a processing pipeline, each CORDIC functional unit configured to perform one iteration of a CORDIC algorithm;

first and second storage means coupled to and accessible by the means for vector processing; and

means for singular value decomposition of a matrix of channel values, the means for singular value decomposition comprising an instruction set including:

a first instruction for reading x and y coordinate values from the first storage means, reading angle z and iteration count n values from the second storage means, performing M iterations of the CORDIC algorithm using the multiple instances of the CORDIC functional unit, and writing updated x and y values from the M iterations to the first storage means without writing updated z and n values from the M iterations to the second storage means; and

a second instruction for reading x and y coordinate values from the first storage means, reading angle z and iteration count n values from the second storage means, performing M iterations of the CORDIC algorithm using the multiple instances of the CORDIC functional unit, and writing updated z and n values to the second storage means without writing updated x and y values to the first storage means.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2012
From: ASPEN ACQUISITION CORPORATION
To: QUALCOMM INCORPORATED
Reel/Frame 029388/0394 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2010
From: SANDBRIDGE TECHNOLOGIES, INC.
To: ASPEN ACQUISITION CORPORATION
Reel/Frame 025303/0479 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2009
From: SIMA, MIHAI; IANCU, DANIEL; YE, HUA; MOUDGILL, MAYAN
To: SANDBRIDGE TECHNOLOGIES INC.
Reel/Frame 023496/0555 →