Software implementation of matrix inversion in a wireless communication system
AssigneeQUALCOMM Incorporated
InventorsMihai Sima, Daniel Iancu, Hua Ye, Mayan Moudgill
Life of this patent
Estimating the term…
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.
Claims11
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.
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.
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.
Dependencies are inferred from the claim text.