Patent US5299144A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5299144A Expired / Lapsed US ⏱️ 0.0 years remaining

Architecture for covariance matrix generation

Assignee: Samsung Electronics Co Ltd
•
Filing: 1992-06-17
•
Granted: 1994-03-29
•
Expires: 2012-06-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention provides an apparatus and method for generating a covariance matrix. According to one aspect of the invention, an apparatus is provided which generally includes a memory, a circular buffer, a multiply-accumulator, and an arithmetic logic unit. The memory contains an array of values representative of a plurality of samples, and the circular buffer is configured to provide a predetermined number of memory locations. A method for generating the covariance matrix is further provided which uses the architecture listed above to efficiently generate a covariance matrix based on the values in the memory. In one aspect of the invention, the method provides that the memory, the circular buffer, the multiply-accumulator, and the arithmetic logic unit, all operate in parallel to fully exploit the resources provided by the architecture.

Inventors

  • 👤 John G. Bartkowiak
  • 👤 Michael A. Nix

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-10 02:31
CPC Classifications
G; G06; G06F; G06F17/00; G06F17/10; G06F17/16

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 138 words
An apparatus for generating a first row of a covariance matrix, the apparatus comprising: a memory containing an array of values representative of a plurality of samples; a circular buffer coupled to the memory, the circular buffer being configured to provide a predetermined number of memory locations; a multiply-accumulator coupled to the memory and the circular buffer; means for transmitting a sequential subset of the array of values from the memory to the multiply-accumulator to generate a first element of the first row of the covariance matrix; and means for simultaneously transmitting to the multiply-accumulator a first series of sequential subsets of the array of values from the memory, and a second series of sequential subsets of the array of values from the circular buffer, to generate the remaining elements of the first row of the covariance matrix.
Claim 2
Independent Claim 138 words
An apparatus for generating a first row of a covariance matrix, the apparatus comprising: a memory containing an array of values representative of a plurality of samples; a circular buffer coupled to the memory, the circular buffer being configured to provide a predetermined number of memory locations; a multiply-accumulator coupled to the memory and the circular buffer; means for transmitting a sequential subset of the array of values from the memory to the multiply-accumulator to generate a first element of the first row of the covariance matrix; and means for simultaneously transmitting to the multiply-accumulator a first series of sequential subsets of the array of values from the memory, and a second series of sequential subsets of the array of values from the circular buffer, to generate the remaining elements of the first row of the covariance matrix.
Claim 3
Dependent Claim 36 words
The apparatus of claim 1 wherein the circular buffer comprises a dual port register file, the register file comprising a read address generator and a write address generator, the address generators being configured to wrap around.
Claim 4
Independent Claim 251 words
An apparatus for generating an upper or lower triangular portion of a covariance matrix, the apparatus comprising: first and second memories, the first memory containing an array of values representative of a plurality of samples; a circular buffer coupled to the first memory, the buffer being initially configured to provide a first predetermined number of memory locations; a multiply-accumulator coupled to the first and second memories and the circular buffer; an arithmetic logic unit coupled to the second memory and the multiply-accumulator; and means for transmitting a sequential subset of the array of values from the first memory to the multiply-accumulator to generate a first element of the first row of the covariance matrix; means for storing the first element of the first row of the covariance matrix in the second memory; means for simultaneously transmitting to the multiply-accumulator a first series of sequential subsets of the array of values from the first memory, and a second series of sequential subsets of the array of values from the circular buffer, to generate in the output of the multiply-accumulator the remaining elements of the first row of the covariance matrix; means for storing the remaining elements of the first row of the covariance matrix in the second memory; means for generating in the arithmetic logic unit the remaining elements of the upper or lower triangular portion of the covariance matrix; and means for storing in the second memory the remaining elements of the upper or lower triangular portion of the covariance matrix.
Claim 5
Independent Claim 251 words
An apparatus for generating an upper or lower triangular portion of a covariance matrix, the apparatus comprising: first and second memories, the first memory containing an array of values representative of a plurality of samples; a circular buffer coupled to the first memory, the buffer being initially configured to provide a first predetermined number of memory locations; a multiply-accumulator coupled to the first and second memories and the circular buffer; an arithmetic logic unit coupled to the second memory and the multiply-accumulator; and means for transmitting a sequential subset of the array of values from the first memory to the multiply-accumulator to generate a first element of the first row of the covariance matrix; means for storing the first element of the first row of the covariance matrix in the second memory; means for simultaneously transmitting to the multiply-accumulator a first series of sequential subsets of the array of values from the first memory, and a second series of sequential subsets of the array of values from the circular buffer, to generate in the output of the multiply-accumulator the remaining elements of the first row of the covariance matrix; means for storing the remaining elements of the first row of the covariance matrix in the second memory; means for generating in the arithmetic logic unit the remaining elements of the upper or lower triangular portion of the covariance matrix; and means for storing in the second memory the remaining elements of the upper or lower triangular portion of the covariance matrix.
Claim 6
Dependent Claim 33 words
The apparatus of claim 3 wherein the circular buffer comprises a dual port register file having a read address generator and a write address generator, the address generators being configured to wrap around.
Claim 7
Dependent Claim 50 words
The apparatus of claim 3 wherein the means for generating in the arithmetic unit comprises means for selectively applying data from the first memory and the circular buffer file to the multiplier-accumulator and means for selectively applying data from the second memory and the multiplier-accumulator to the arithmetic logic unit.
Claim 8
Dependent Claim 63 words
The apparatus of claim 3 wherein the remaining elements of the upper or lower triangular portion of the covariance matrix are generated in the arithmetic logic unit while the first row of the covariance matrix is being generated, and wherein the means for generating in the arithmetic unit comprises means for selectively applying data from the second memory to the arithmetic logic unit.
Claim 9
Independent Claim 126 words
A method of generating a covariance matrix comprising the steps of: providing a memory containing an array of values representative of a plurality of samples; providing a multiply-accumulator; providing a circular buffer with a predetermined depth; generating a first element of a first row of the covariance matrix in the multiply-accumulator; storing the first element in a second memory; generating the remaining elements of the first row of the covariance matrix; storing the remaining elements of the first row in the second memory; generating, diagonal by diagonal, the remaining elements of the upper or lower triangular portion of the covariance matrix in an arithmetic logic unit; and storing in the second memory the remaining elements of the upper or lower triangular portion of the covariance matrix.
Claim 10
Independent Claim 126 words
A method of generating a covariance matrix comprising the steps of: providing a memory containing an array of values representative of a plurality of samples; providing a multiply-accumulator; providing a circular buffer with a predetermined depth; generating a first element of a first row of the covariance matrix in the multiply-accumulator; storing the first element in a second memory; generating the remaining elements of the first row of the covariance matrix; storing the remaining elements of the first row in the second memory; generating, diagonal by diagonal, the remaining elements of the upper or lower triangular portion of the covariance matrix in an arithmetic logic unit; and storing in the second memory the remaining elements of the upper or lower triangular portion of the covariance matrix.
Claim 11
Dependent Claim 34 words
The method of claim 7 wherein the step of generating a first element of comprises the step of transmitting a sequential subset of the array of values from the first memory to the multiply-accumulator.
Claim 12
Dependent Claim 61 words
The method of claim 7 wherein the step of generating the remaining elements of the first row comprises the step of transmitting a first series of sequential subsets of the array of values from the first memory to the multiply-accumulator, while simultaneously transmitting a second series of sequential subsets of the array of values from the circular buffer to the multiply-accumulator.
Claim 13
Dependent Claim 46 words
The method of claim 7 wherein the step of generating, diagonal by diagonal, the remaining elements of the upper or lower triangular portion of the covariance matrix, is performed simultaneous with the step of generating the remaining elements of the first row of the covariance matrix.
Claim 14
Independent Claim 151 words
A method of generating a first row of elements of a covariance matrix comprising the steps of: providing a first memory containing an array of values representative of a plurality of samples; providing a multiply-accumulator; providing a circular buffer with a predetermined depth; generating a first element of the first row of the covariance matrix in the multiply-accumulator by successively inputting a sequential subset of the array of values from the first memory into the multiply-accumulator; storing the first element in a second memory; generating the remaining elements of the first row of the covariance matrix by successively inputting a first series of sequential subsets of the array of values from the first memory into the multiply-accumulator, while simultaneously inputting a second series of sequential subsets of the array of values from the circular buffer into the multiply-accumulator; and storing the remaining elements of the first row in the second memory.
Claim 15
Independent Claim 151 words
A method of generating a first row of elements of a covariance matrix comprising the steps of: providing a first memory containing an array of values representative of a plurality of samples; providing a multiply-accumulator; providing a circular buffer with a predetermined depth; generating a first element of the first row of the covariance matrix in the multiply-accumulator by successively inputting a sequential subset of the array of values from the first memory into the multiply-accumulator; storing the first element in a second memory; generating the remaining elements of the first row of the covariance matrix by successively inputting a first series of sequential subsets of the array of values from the first memory into the multiply-accumulator, while simultaneously inputting a second series of sequential subsets of the array of values from the circular buffer into the multiply-accumulator; and storing the remaining elements of the first row in the second memory.
Claim 16
Independent Claim 122 words
A method for generating a first row of an upper or lower triangular portion of a covariance matrix comprising the steps of: providing a memory containing an array of values representative of a plurality of samples; providing a multiply-accumulator; providing a circular buffer with a predetermined depth; generating a first element in the first row by simultaneously applying, to the multiply-accumulator and to the circular buffer, a series of the values from the memory; generating each of the remaining elements of the first row by simultaneously executing the steps of: applying to the multiply-accumulator and the circular buffer a first series of the values from the memory; and applying to the multiply-accumulator a second series of the values from the circular buffer.
Claim 17
Independent Claim 122 words
A method for generating a first row of an upper or lower triangular portion of a covariance matrix comprising the steps of: providing a memory containing an array of values representative of a plurality of samples; providing a multiply-accumulator; providing a circular buffer with a predetermined depth; generating a first element in the first row by simultaneously applying, to the multiply-accumulator and to the circular buffer, a series of the values from the memory; generating each of the remaining elements of the first row by simultaneously executing the steps of: applying to the multiply-accumulator and the circular buffer a first series of the values from the memory; and applying to the multiply-accumulator a second series of the values from the circular buffer.
Claim 18
Independent Claim 189 words
A method for generating a triangular portion of a covariance matrix, the triangular portion defining a first row of elements and a plurality of diagonal arrays of elements, comprising the steps of: providing a first memory and a second memory, the first memory containing a plurality of values representative of samples; providing a multiply-accumulator; providing a circular buffer with a predetermined depth; generating a first element in the first row by simultaneously applying, to the multiply-accumulator and to the circular buffer, a series of the values from the first memory; storing in the second memory the first element of the first row; generating each of the remaining elements of the first row by simultaneously applying to the multiply-accumulator a first series of the values from the first memory, and a second series of the values from the circular buffer; storing each of the remaining elements of the first row in the second memory; providing an arithmetic logic unit; generating, diagonal by diagonal, the remaining elements of each diagonal array in the arithmetic logic unit; and storing the remaining elements of each of the diagonal arrays in the second memory.
Claim 19
Independent Claim 189 words
A method for generating a triangular portion of a covariance matrix, the triangular portion defining a first row of elements and a plurality of diagonal arrays of elements, comprising the steps of: providing a first memory and a second memory, the first memory containing a plurality of values representative of samples; providing a multiply-accumulator; providing a circular buffer with a predetermined depth; generating a first element in the first row by simultaneously applying, to the multiply-accumulator and to the circular buffer, a series of the values from the first memory; storing in the second memory the first element of the first row; generating each of the remaining elements of the first row by simultaneously applying to the multiply-accumulator a first series of the values from the first memory, and a second series of the values from the circular buffer; storing each of the remaining elements of the first row in the second memory; providing an arithmetic logic unit; generating, diagonal by diagonal, the remaining elements of each diagonal array in the arithmetic logic unit; and storing the remaining elements of each of the diagonal arrays in the second memory.
Claim 20
Dependent Claim 292 words
A covariance matrix generator, comprising: a multiply-accumulator having two input registers and an output register; a first and a second multiplexer, said first multiplexer being coupled to one input register of said multiply-accumulator, said second multiplexer being coupled to the other input register of said multiply accumulator; a dual port register file having a read address generator and a write address generator, the output of said register file being coupled to said second multiplexer; a third multiplexer coupled to the input of said register file; an arithmetic logic unit having two input registers and an output register; a fourth and a fifth multiplexer, said fourth multiplexer being coupled to one input register of said arithmetic logic unit, said fifth multiplexer being coupled to the other input register of said arithmetic logic unit; a first data bus coupled to said first, second, third, fourth, and fifth multiplexers, said first data bus being further coupled to the output register of said multiply accumulator, the output register of said ALU, and the output of said file register; a second data bus coupled said first, second, and fourth multiplexers, said second data bus being further coupled to the output register of said multiply-accumulator, the output register of said arithmetic logic unit, and the output of said register file; a third data bus coupled to said third multiplexer and said fifth multiplexer, said third data bus being further coupled to the output register of said multiplier accumulator, the output register of said arithmetic logic unit, and the output of said register file; a first memory having an address register, said first memory being coupled to said first data bus; and a second memory having an address register, said second memory being coupled to said second data bus.
Claim 21
Dependent Claim 292 words
A covariance matrix generator, comprising: a multiply-accumulator having two input registers and an output register; a first and a second multiplexer, said first multiplexer being coupled to one input register of said multiply-accumulator, said second multiplexer being coupled to the other input register of said multiply accumulator; a dual port register file having a read address generator and a write address generator, the output of said register file being coupled to said second multiplexer; a third multiplexer coupled to the input of said register file; an arithmetic logic unit having two input registers and an output register; a fourth and a fifth multiplexer, said fourth multiplexer being coupled to one input register of said arithmetic logic unit, said fifth multiplexer being coupled to the other input register of said arithmetic logic unit; a first data bus coupled to said first, second, third, fourth, and fifth multiplexers, said first data bus being further coupled to the output register of said multiply accumulator, the output register of said ALU, and the output of said file register; a second data bus coupled said first, second, and fourth multiplexers, said second data bus being further coupled to the output register of said multiply-accumulator, the output register of said arithmetic logic unit, and the output of said register file; a third data bus coupled to said third multiplexer and said fifth multiplexer, said third data bus being further coupled to the output register of said multiplier accumulator, the output register of said arithmetic logic unit, and the output of said register file; a first memory having an address register, said first memory being coupled to said first data bus; and a second memory having an address register, said second memory being coupled to said second data bus.

References Cited (Backward Citations)

US4544919A Cited
US4545025A Cited
US5007007A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-03-28 1997-09-27 1998-03-29 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-03-28 2001-09-27 2002-03-29 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-03-28 2005-09-27 2006-03-29 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag