← Back to Patent Explorer
US4736335A Expired / Lapsed US ⏱️ 0.0 years remaining

Multiplier-accumulator circuit using latched sums and carries

Assignee: Zoran Corp
•
Filing: 1984-11-13
•
Granted: 1988-04-05
•
Expires: 2004-11-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Vector dot multiplication is facilitated in a multiplier in which pipelining techniques are employed. Two vectors u(i), v(i), each having the same number of components (L), the components of the vector u(i) having m bits, and the components of the other vector v(i) having n bits per component. For example, a classical positive integer dot multiplier includes m-1 multiplier rows with each multiplier row having n+1 multiplying stages, each stage including an adder and latches. A latch interconnects the carry-out of each adder in a row to the carry-in of another adder in the same row, and a latch interconnects the sum output of each adder in a row to an input of another adder in another row. The result is accumulated in an adder according to the length of the vectors to be processed. 2's compliment number multiplication is accommodated by stretching each multiplier row by connecting two full adders serially therewith. Additionally, an inverter inverts the words u(i) and then applies the inverted words to the last multiplier row along with the sign bit for the other vector v(i). The same concept may be used to implement a variety of multipliers and floating point dot multipliers.

Inventors

  • 👤 Mordecai Barkan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 18:17
CPC Classifications
G; G06; G06F; G06F7/00; G06F7/38; G06F7/48; G06F7/52; G06F7/523; G06F7/53; G06F7/5306; G06F7/5312; G06F15/00; G06F15/76; G06F15/80; G06F15/8053; G06F7/544; G06F7/5443; G06F2207/00; G06F2207/38; G06F2207/3804; G06F2207/386; G06F2207/388; G06F2207/3884; G06F7/483; G06F7/499; G06F7/49994

Claims Analysis

Total Claims: 7
Claim 1
Independent Claim 223 words
A method of vector scalar multiplication of two vectors (u.sub.(i), v.sub.(i)) by summing partial products for all pairs of vector components, each vector having the same number (L) of components, each of the components of one vector u.sub.(i) having a number of bits (n) and each of the components of the other vector v.sub.(i) having a number of bits (m), said method comprising the steps of providing m-1 rows of multiplier-accumulators, each row having n+1 multiplier-accumulator stages, said m-1 rows functioning as a dispersed accumulator of sums of partial products, applying multi-bit components of one of said vectors u.sub.(i) sequentially as multiplicand inputs to stages in all rows with one bit of a component going to one stage in all rows, applying multi-bit components of the other of said vectors v.sub.(i) as multiplier inputs to all stages in all rows with at least one bit of a component going to all stages in one row, said rows of multiplier-accumulators producing partial products of bits of pairs of components, interconnecting stages in adjacent rows by latches whereby the output of each stage of a row is transferred as an input to a stage in the next row as a partial sum of partial products, and accumulating the sum of partial products from the last multiplier-accumulator row as the product of the vector scalar multiplication.
Claim 2
Independent Claim 223 words
A method of vector scalar multiplication of two vectors (u.sub.(i), v.sub.(i)) by summing partial products for all pairs of vector components, each vector having the same number (L) of components, each of the components of one vector u.sub.(i) having a number of bits (n) and each of the components of the other vector v.sub.(i) having a number of bits (m), said method comprising the steps of providing m-1 rows of multiplier-accumulators, each row having n+1 multiplier-accumulator stages, said m-1 rows functioning as a dispersed accumulator of sums of partial products, applying multi-bit components of one of said vectors u.sub.(i) sequentially as multiplicand inputs to stages in all rows with one bit of a component going to one stage in all rows, applying multi-bit components of the other of said vectors v.sub.(i) as multiplier inputs to all stages in all rows with at least one bit of a component going to all stages in one row, said rows of multiplier-accumulators producing partial products of bits of pairs of components, interconnecting stages in adjacent rows by latches whereby the output of each stage of a row is transferred as an input to a stage in the next row as a partial sum of partial products, and accumulating the sum of partial products from the last multiplier-accumulator row as the product of the vector scalar multiplication.
Claim 3
Dependent Claim 242 words
A vector scalar multiplier for two vectors (u.sub.(i), v.sub.(i)), each having the same number (L) of components, each of the components of one vector u.sub.(i) having a number of bits (n) and each of the components of the other vector v.sub.(i) having a number of bits (m), said scalar multiplier comprising a plurality of multiplier-accumulator rows (m-1) with each multiplier-accumulator row having a plurality of bit multiplying stages (n+1) with each stage including an adder having two inputs and output, a carry-in and a carry-out, said m-1 rows functioning as a dispersed accumulator of sums of partial products, latch means interconnecting the carry-out of adders in a row to the carry-in of another adder in the same row whereby each row produces a partial product, latch means interconnecting the output of each adder in a row as an input to an adder in another row for producing partial sums of partial products, means for sequentially applying multi-bit components u.sub.(i) of one vector as one of the inputs to adders in all rows, one bit of each component going to one stage in all rows, means for sequentially applying the bits of each multi-bit component v.sub.(i) of the other vector to adders in each row, one bit of each component going to all stages in one row, and accumulator means including a plurality of adders interconnected with adders of the last multiplier-accumulator row for accumulating the final product of said vector scalar multiplication.
Claim 4
Dependent Claim 242 words
A vector scalar multiplier for two vectors (u.sub.(i), v.sub.(i)), each having the same number (L) of components, each of the components of one vector u.sub.(i) having a number of bits (n) and each of the components of the other vector v.sub.(i) having a number of bits (m), said scalar multiplier comprising a plurality of multiplier-accumulator rows (m-1) with each multiplier-accumulator row having a plurality of bit multiplying stages (n+1) with each stage including an adder having two inputs and output, a carry-in and a carry-out, said m-1 rows functioning as a dispersed accumulator of sums of partial products, latch means interconnecting the carry-out of adders in a row to the carry-in of another adder in the same row whereby each row produces a partial product, latch means interconnecting the output of each adder in a row as an input to an adder in another row for producing partial sums of partial products, means for sequentially applying multi-bit components u.sub.(i) of one vector as one of the inputs to adders in all rows, one bit of each component going to one stage in all rows, means for sequentially applying the bits of each multi-bit component v.sub.(i) of the other vector to adders in each row, one bit of each component going to all stages in one row, and accumulator means including a plurality of adders interconnected with adders of the last multiplier-accumulator row for accumulating the final product of said vector scalar multiplication.
Claim 5
Dependent Claim 68 words
The vector scalar multiplier as defined by claim 2 and further including means for enabling operation on 2's complement numbers, said means including an additinal two full adders serially connected by latches in each row of the multiplier-accumulator, and inverter means for inveting the words u(i) and then applying the inverted words to the last multiplier row along with the sign bit of the other vector word v(i).
Claim 6
Dependent Claim 313 words
A floating point multiplier-accumulator to compute the dot product for two vectors (u.sub.(i), v.sub.(i)), each having the same number (L) of components and each component having a mantissa and an exponent, each of the components of one vector u.sub.(i) having a number of bits (m) and each of the components of the other vector v.sub.(i) having a number of bits (n), said multiplier-accumulator comprising a plurality of multiplier rows with each multiplier row having a plurality of bit multiplying stages, each stage including an adding cell having a plurality of sum inputs, a plurality of carry inputs, a plurality of carry outputs and a sum output, said plurality of multiplier rows functioning as a dispersed accumulator of sums of partial products, latch means interconnecting the carry-output of adder cells in a row to the carry input of another adder cell in the same row whereby each row produces a partial product, latch means interconnecting the sum outputs of adder cells in a row as inputs to adders in another row for producing partial sums of partial products, means for sequentially applying components u.sub.(i) of one vector as one of the inputs to adders in all rows, one bit of each component going to one stage in all rows, means for sequentially applying the bits of each mantissa component v.sub.(i) of the other vector to adders in each row, one bit of each mantissa component going to all stages in one row, product shift means for receiving a product of each multiplication and shifting the binary point thereof in response to shift control means, shift control means for comparing an exponent of an accumulated sum of products with combined exponents of a multiplier component and a multiplicand component for a product and controlling said product shift means, and accumulator means for receiving and accumulating the product of each multiplication from said product shift means.
Claim 7
Dependent Claim 313 words
A floating point multiplier-accumulator to compute the dot product for two vectors (u.sub.(i), v.sub.(i)), each having the same number (L) of components and each component having a mantissa and an exponent, each of the components of one vector u.sub.(i) having a number of bits (m) and each of the components of the other vector v.sub.(i) having a number of bits (n), said multiplier-accumulator comprising a plurality of multiplier rows with each multiplier row having a plurality of bit multiplying stages, each stage including an adding cell having a plurality of sum inputs, a plurality of carry inputs, a plurality of carry outputs and a sum output, said plurality of multiplier rows functioning as a dispersed accumulator of sums of partial products, latch means interconnecting the carry-output of adder cells in a row to the carry input of another adder cell in the same row whereby each row produces a partial product, latch means interconnecting the sum outputs of adder cells in a row as inputs to adders in another row for producing partial sums of partial products, means for sequentially applying components u.sub.(i) of one vector as one of the inputs to adders in all rows, one bit of each component going to one stage in all rows, means for sequentially applying the bits of each mantissa component v.sub.(i) of the other vector to adders in each row, one bit of each mantissa component going to all stages in one row, product shift means for receiving a product of each multiplication and shifting the binary point thereof in response to shift control means, shift control means for comparing an exponent of an accumulated sum of products with combined exponents of a multiplier component and a multiplicand component for a product and controlling said product shift means, and accumulator means for receiving and accumulating the product of each multiplication from said product shift means.

References Cited (Backward Citations)

US3794820A Cited
US4432066A Cited
US4354249A Cited
US4511990A Cited
US4525796A Cited
US4589067A Cited
US4616330A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1991-04-05 1991-10-05 1992-04-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1995-04-05 1995-10-05 1996-04-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1999-04-05 1999-10-05 2000-04-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag