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

Method and circuitry for digital system multiplication

Assignee: Intel Corp
•
Filing: 1989-04-07
•
Granted: 1991-07-30
•
Expires: 2009-04-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method nad circuitry for multiplication in a digital system is described. The circuitry includes a partial product generator, a carry-save adder, a sum latch, a carry latch, an adder, a latch, circuitry for truncating, and coupling circuitry. A method and circuitry for optimizing a speed of a subsequent multiplication in a digital system is described. Circuitry for optimizing multiplication clock cycles in a digital system is described.

Inventors

  • 👤 Avtar Saini

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 20:11
CPC Classifications
G; G06; G06F; G06F7/00; G06F7/38; G06F7/48; G06F7/52; G06F7/523; G06F7/53; G06F7/5306; G06F7/5312; G06F7/533; G06F7/5334; G06F7/5336; G06F7/5338

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 290 words
A method for optimizing a speed of a subsequent multiplication in a digital system of a first number by a second number, wherein the second number has bit positions including (1) a bit position of order X, which is a least significant bit position of the second number, (2) a bit position of order Y, and (3) a bit position of order Z, wherein X is less than Y, and Y is less than Z, comprising the steps of: (a) detecting whether a string of consecutive zeroes occupies the bit positions of the second number beginning with the bit position X and increasing towards higher order bit positions; (b) if no such string of consecutive zeroes exists, then using bit position X as a starting point for the second number for multiplication; (c) if both (i) the string of consecutive zeroes exists and (ii) the string of consecutive zeroes has its highest order zero in a bit position having an order less than Y minus one, then using bit position X as a starting point for the second number for multiplication; (d) if both (i) the string of consecutive zeroes exists and (ii) the string of consecutive zeroes has its highest order zero in a bit position having an order less than Z minus one but greater than or equal to Y minus one, then using bit position Y as a starting point for the second number for multiplication; (e) if both (i) the string of consecutive zeroes exists (ii) the string of consecutive zeroes has its highest order zero in a bit position having an order greater than or equal to Z minus one, then using bit position Z as a starting point for the second number for multiplication.
Claim 2
Independent Claim 290 words
A method for optimizing a speed of a subsequent multiplication in a digital system of a first number by a second number, wherein the second number has bit positions including (1) a bit position of order X, which is a least significant bit position of the second number, (2) a bit position of order Y, and (3) a bit position of order Z, wherein X is less than Y, and Y is less than Z, comprising the steps of: (a) detecting whether a string of consecutive zeroes occupies the bit positions of the second number beginning with the bit position X and increasing towards higher order bit positions; (b) if no such string of consecutive zeroes exists, then using bit position X as a starting point for the second number for multiplication; (c) if both (i) the string of consecutive zeroes exists and (ii) the string of consecutive zeroes has its highest order zero in a bit position having an order less than Y minus one, then using bit position X as a starting point for the second number for multiplication; (d) if both (i) the string of consecutive zeroes exists and (ii) the string of consecutive zeroes has its highest order zero in a bit position having an order less than Z minus one but greater than or equal to Y minus one, then using bit position Y as a starting point for the second number for multiplication; (e) if both (i) the string of consecutive zeroes exists (ii) the string of consecutive zeroes has its highest order zero in a bit position having an order greater than or equal to Z minus one, then using bit position Z as a starting point for the second number for multiplication.
Claim 3
Dependent Claim 24 words
The method of claim 1 for optimizing the speed of a subsequent multiplication, wherein X is zero, Y is 11, and Z is 40.
Claim 4
Dependent Claim 32 words
The method of claim 1 for optimizing the speed of a subsequent multiplication, wherein the subsequent multiplication uses four 2-bit Booth algorithm pairs of bits of the first number per clock cycle.
Claim 5
Dependent Claim 279 words
Circuitry for optimizing a speed of a subsequent multiplication in a digital system of a first number by a second number, wherein the second number has bit positions including (1) a bit position of order X, which is a least significant bit position of the second number, (2) a bit position of order Y, and (3) a bit position of order Z, wherein X is less than Y, and Y is less than Z, comprising: (a) zero detect logic for detecting whether a string of a consecutive zeroes occupies the bit positions of the second number beginning with the bit position X and increasing towards higher bit positions; (b) logic circuitry for: (1) using bit position X as a starting point for multiplication of the second number (i) if no such string of consecutive zeroes exists of (ii) if both (A) the string of consecutive zeroes exists and (B) the string of consecutive zeroes has its highest order zero in a bit position having an order less than Y minus one; (2) using bit position Y as a starting point for multiplication of the first number if both (i) the string of consecutive zeroes exists and (ii) the string of consecutive zeroes has its highest order zero in a bit position having an order less than Z minus one but greater than or equal to Y minus one; (3) using bit position Z as a starting point for multiplication of the first number if both (i) the string of consecutive zeroes exists and (ii) the string of consecutive zeroes has its highest order zero in a bit position having an order greater than or equal to Z minus one.
Claim 6
Dependent Claim 279 words
Circuitry for optimizing a speed of a subsequent multiplication in a digital system of a first number by a second number, wherein the second number has bit positions including (1) a bit position of order X, which is a least significant bit position of the second number, (2) a bit position of order Y, and (3) a bit position of order Z, wherein X is less than Y, and Y is less than Z, comprising: (a) zero detect logic for detecting whether a string of a consecutive zeroes occupies the bit positions of the second number beginning with the bit position X and increasing towards higher bit positions; (b) logic circuitry for: (1) using bit position X as a starting point for multiplication of the second number (i) if no such string of consecutive zeroes exists of (ii) if both (A) the string of consecutive zeroes exists and (B) the string of consecutive zeroes has its highest order zero in a bit position having an order less than Y minus one; (2) using bit position Y as a starting point for multiplication of the first number if both (i) the string of consecutive zeroes exists and (ii) the string of consecutive zeroes has its highest order zero in a bit position having an order less than Z minus one but greater than or equal to Y minus one; (3) using bit position Z as a starting point for multiplication of the first number if both (i) the string of consecutive zeroes exists and (ii) the string of consecutive zeroes has its highest order zero in a bit position having an order greater than or equal to Z minus one.
Claim 7
Independent Claim 169 words
A method for optimizing multiplication clock cycles in a digital system, comprising the steps of: (a) prior to multiplying a first number by a second number comprised of N bits using B 2-bit Booth algorithm pairs of bits of the second number per clock cycle, wherein B is a positive integer and N is a positive integer, padding the second number with a zero in each of two bit positions to the left of the most significant bit position of the second number; and (b) prior to multiplying the first number by the second number using B 2-bit Booth algorithm pairs of bits of the second number per clock cycle, padding the second number with a zero in each of C bit positions to the right of the least significant bit position of the second number, wherein C equals D-(N+2), wherein D is a smallest positive integer that is a multiple of B times 2 that will also yield a C that is either zero or a positive integer.
Claim 8
Independent Claim 169 words
A method for optimizing multiplication clock cycles in a digital system, comprising the steps of: (a) prior to multiplying a first number by a second number comprised of N bits using B 2-bit Booth algorithm pairs of bits of the second number per clock cycle, wherein B is a positive integer and N is a positive integer, padding the second number with a zero in each of two bit positions to the left of the most significant bit position of the second number; and (b) prior to multiplying the first number by the second number using B 2-bit Booth algorithm pairs of bits of the second number per clock cycle, padding the second number with a zero in each of C bit positions to the right of the least significant bit position of the second number, wherein C equals D-(N+2), wherein D is a smallest positive integer that is a multiple of B times 2 that will also yield a C that is either zero or a positive integer.
Claim 9
Dependent Claim 24 words
The method of claim 5 for optimizing multiplication clock cycles, wherein N is 53, B is 4, C is one, and D is 56.
Claim 10
Dependent Claim 153 words
Circuitry for optimizing multiplication clock cycles in a digital system, comprising circuitry for padding a second number comprised of N bits prior to multiplying a first number by the second number, wherein the multiplication uses B 2-bit Booth algorithm pairs of bits of the second number per clock cycle, wherein B is a positive integer and N is a positive integer, wherein the padding comprises: (a) padding the second number with a zero in each of two bit positions to the left of the most significant bit position of the second number; and (b) padding the second number with a zero in each of C bit positions to the right of the least significant bit position of the second number, wherein C equals D-(N+20), wherein D is a smallest positive integer that is a multiple of B times two that will also yield a C that is either zero or a positive integer.
Claim 11
Dependent Claim 153 words
Circuitry for optimizing multiplication clock cycles in a digital system, comprising circuitry for padding a second number comprised of N bits prior to multiplying a first number by the second number, wherein the multiplication uses B 2-bit Booth algorithm pairs of bits of the second number per clock cycle, wherein B is a positive integer and N is a positive integer, wherein the padding comprises: (a) padding the second number with a zero in each of two bit positions to the left of the most significant bit position of the second number; and (b) padding the second number with a zero in each of C bit positions to the right of the least significant bit position of the second number, wherein C equals D-(N+20), wherein D is a smallest positive integer that is a multiple of B times two that will also yield a C that is either zero or a positive integer.
Claim 12
Dependent Claim 24 words
The circuitry of claim 7 for optimizing multiplication clock cycles, wherein N is 53, B is 4, C is one, and D is 56.
Claim 13
Independent Claim 350 words
A method for multiplication in a digital system, comprising the steps of: (a) having a partial product generator generate a first multibit output and a first carry-in output; (b) having a carry-save adder add: (1) the first multibit output from the partial product generator, (2) a sum applied as a sum input into the carry-save adder, and (3) a carry applied as a carry input into the carry-save adder; (c) latching a sum output of the carry-save adder into a sum latch; (d) latching a carry output of the carry-save adder into a sequence of bit positions of the carry latch, wherein the first position of the sequence of bit positions is of a next highest order from a least significant bit position; (e) latching the first carry-in output of the partial product generator into the least significant bit position of the carry latch; (f) adding (1) the least significant T bits of the sum from the sum latch, (2) The least significant T bits of the carry from the carry latch, and (3) a final stage carry-in bit, wherein T is a positive integer; (g) storing the most significant carry bit from the addition of the least significant T sum bits from the sum latch and the least significant T carry bits from the carry latch; (h) truncating the least significant T sum bits from the sum latch and storing the result; (i) truncating the least significant T carry bits from the carry latch and storing the result; (j) repeating steps (a) through (i), the first multibit output of the partial product generator becoming a second multibit output of the partial product generator, the first carry-in output of the partial product generator becoming a second carry-in output of the partial product generator, the truncated sum becoming a sum applied as a sum input to the carry-save adder, the truncated carry becoming a carry applied as a carry input to the carry-save adder, and the stored most significant carry bit from the addition of the least significant T sum bits and T carry bits becoming the final stage carry-in bit.
Claim 14
Independent Claim 350 words
A method for multiplication in a digital system, comprising the steps of: (a) having a partial product generator generate a first multibit output and a first carry-in output; (b) having a carry-save adder add: (1) the first multibit output from the partial product generator, (2) a sum applied as a sum input into the carry-save adder, and (3) a carry applied as a carry input into the carry-save adder; (c) latching a sum output of the carry-save adder into a sum latch; (d) latching a carry output of the carry-save adder into a sequence of bit positions of the carry latch, wherein the first position of the sequence of bit positions is of a next highest order from a least significant bit position; (e) latching the first carry-in output of the partial product generator into the least significant bit position of the carry latch; (f) adding (1) the least significant T bits of the sum from the sum latch, (2) The least significant T bits of the carry from the carry latch, and (3) a final stage carry-in bit, wherein T is a positive integer; (g) storing the most significant carry bit from the addition of the least significant T sum bits from the sum latch and the least significant T carry bits from the carry latch; (h) truncating the least significant T sum bits from the sum latch and storing the result; (i) truncating the least significant T carry bits from the carry latch and storing the result; (j) repeating steps (a) through (i), the first multibit output of the partial product generator becoming a second multibit output of the partial product generator, the first carry-in output of the partial product generator becoming a second carry-in output of the partial product generator, the truncated sum becoming a sum applied as a sum input to the carry-save adder, the truncated carry becoming a carry applied as a carry input to the carry-save adder, and the stored most significant carry bit from the addition of the least significant T sum bits and T carry bits becoming the final stage carry-in bit.
Claim 15
Dependent Claim 30 words
The method of claim 9 for multiplication, wherein the generation of the multibit output and the carry-in output of the partial product generator is governed by a two-bit Booth algorithm.
Claim 16
Dependent Claim 43 words
The method of claim 10 for multiplication, wherein a multiplicand is multiplied by a multiplier, the Booth algorithm being applied to the multiplier, and wherein steps (a) through (i) are repeated N/2+1 times, wherein N represents the number of bits comprising the multiplier.
Claim 17
Dependent Claim 11 words
The method of claim 11 for multiplication, wherein T is two.
Claim 18
Dependent Claim 324 words
Circuitry for multiplication in a digital system, comprising: (a) a partial product generator that generates a multibit output and a carry-in output; (b) a carry-save adder that adds: (1) the multibit output from the partial product generator; (2) a sum applied as a sum input into the carry-save adder; and (3) a carry applied as a carry input into the carry-save adder; (c) a sum latch for latching a sum output of the carry-save adder; (d) a carry latch having bit positions, wherein (i) a carry output of the carry-save adder is latched into a sequence of bit positions in the carry latch, wherein the first position of the sequence of bit positions is a next highest order from a least significant bit position, and (ii) the carry-in output of the partial product generator is latched into the least significant bit position of the carry latch; (e) an adder for adding (1) the least significant T bits of the sum from the sum latch, (2) the least significant T bits of the carry from the carry latch, and (3) a final stage carry-in bit, wherein T is a positive integer; (f) a latch for storing the most significant carry bit from the addition of the least significant sum bits from the sum latch and the least significant T carry bits from the carry latch; (g) circuitry for truncating the least significant T sum bits from the sum latch and for storing the result; (h) circuitry for truncating the least significant T carry bits from the carry latch and for storing the result; (i) coupling means for applying the truncated sum as a sum input to the carry-save adder; (j) coupling means for applying the truncated carry as a carry input to the carry-save adder; (k) coupling means for applying the most significant carry bit from the addition of the least significant T sum bits and T carry bits as the final stage carry-in bit.
Claim 19
Dependent Claim 324 words
Circuitry for multiplication in a digital system, comprising: (a) a partial product generator that generates a multibit output and a carry-in output; (b) a carry-save adder that adds: (1) the multibit output from the partial product generator; (2) a sum applied as a sum input into the carry-save adder; and (3) a carry applied as a carry input into the carry-save adder; (c) a sum latch for latching a sum output of the carry-save adder; (d) a carry latch having bit positions, wherein (i) a carry output of the carry-save adder is latched into a sequence of bit positions in the carry latch, wherein the first position of the sequence of bit positions is a next highest order from a least significant bit position, and (ii) the carry-in output of the partial product generator is latched into the least significant bit position of the carry latch; (e) an adder for adding (1) the least significant T bits of the sum from the sum latch, (2) the least significant T bits of the carry from the carry latch, and (3) a final stage carry-in bit, wherein T is a positive integer; (f) a latch for storing the most significant carry bit from the addition of the least significant sum bits from the sum latch and the least significant T carry bits from the carry latch; (g) circuitry for truncating the least significant T sum bits from the sum latch and for storing the result; (h) circuitry for truncating the least significant T carry bits from the carry latch and for storing the result; (i) coupling means for applying the truncated sum as a sum input to the carry-save adder; (j) coupling means for applying the truncated carry as a carry input to the carry-save adder; (k) coupling means for applying the most significant carry bit from the addition of the least significant T sum bits and T carry bits as the final stage carry-in bit.
Claim 20
Dependent Claim 33 words
The circuitry of claim 13 for multiplication in a digital system, wherein the generation of the multibit output and the carry-in output of the partial product generator is governed by a Booth algorithm.

References Cited (Backward Citations)

US3508038A Cited
US4173789A Cited
US4276607A Cited
US4644491A Cited
US4799183A Cited
US4878191A Cited
US4817029A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1994-07-29 1995-01-28 1995-07-30 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1998-07-29 1999-01-28 1999-07-30 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2002-07-29 2003-01-28 2003-07-30 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag