Claims
- 1. A method of summing a sequence of product terms utilizing a modified Booth's algorithm, each product term consisting of a multiplier and a multiplicand, the method comprising the sequential steps of:
- (a) initializing an adder register;
- (b) retrieving a product term of the sequence and storing the multiplier of the product term in a multiplier register and the multiplicand of the product term in a multiplicand register;
- (c) performing a modified Booth's algorithm operation on the multiplicand register based on the least significant bits of the multiplier register and an adjacent pad bit and adding the result of the operation to the adder register;
- (d) shifting the multiplier right 2 places, through the pad bit, and shifting the multiplicand left 2 places;
- (e) performing a modified Booth's algorithm operation on the shifted multiplicand based on the least significant bits of the shifted multiplier and the shifted pad bit and adding the result of the operation to the adder register; and
- (f) performing steps (b)-(e) for each product term in the sequence.
- 2. A method of summing a sequence of binary product terms utilizing a modified Booth's algorithm in an arithmetic unit, wherein each binary product term includes a multiplier and a multiplicand, and wherein the arithmetic unit includes a multiplicand register, a multiplier register, a data bus coupled to the multiplicand register and the multiplier register, a pad bit located adjacent to a least signficant bit of the multiplier register, and an adder register coupled to the multiplicand register, the method comprising the sequential steps of:
- (a) initializing the adder register to zero;
- (b) retrieving a product term from the data bus and storing the multiplier in the multiplier register and the multiplicand in the multiplicand register;
- (c) examining values of the pad bit and the two least significant bite of the multiplier register;
- (d) performing an operation on the multiplicand register according to a modified Booth's algorithm and adding the result of the operation to the adder register, said operation being determined by the values observed in step (c) according to the following truth table:
- ______________________________________MULTIPLIER PADBIT 1 BIT 0 BIT OPERATION______________________________________0 0 0 Add Nothing0 0 1 Add 1 .times. multiplicand0 1 0 Add 1 .times. multiplicand0 1 1 Add 2 .times. multiplicand1 0 0 Subtract 2 .times. multiplicand1 0 1 Subtract 1 .times. multiplicand1 1 0 Subtract 1 .times. multiplicand1 1 1 Subtract Nothing______________________________________
- (e) shifting the multiplier right 2 places, through the pad bit, and shifting the multiplicand left 2 places;
- (f) examining shifted values of the pad bit and the two least significant bite of the multiplier register;
- (g) performing an operation according to the modified Booth's algorithm and adding the result of the operation to the adder register, said operation being determined by the values observed in step (f) according to the truth table listed in step (d); and
- (h) performing steps (b)-(g) for each product term in the sequence.
- 3. A multiply/accumulate unit for multiplying and accumulating binary data, the multiply/accumulate unit being physically formed as part of a monolithic integrated circuit die, the multiply/accumulate unit comprising:
- a multiplier register for storing a binary multiplier;
- a multiplicand register for storing a binary multiplicand;
- a pad bit adjacent to a least significant bit of the multiplier register;
- an adder register coupled to the multiplicand register;
- logic means coupled to the multiplier register and to the pad bit for selecting an arithmetic operation to be performed on the multiplicand according to the following truth table:
- ______________________________________MULTIPLIER PADBIT 1 BIT 0 BIT OPERATION______________________________________0 0 0 Add Nothing0 0 1 Add 1 .times. multiplicand0 1 0 Add 1 .times. multiplicand0 1 1 Add 2 .times. multiplicand1 0 0 Subtract 2 .times. multiplicand1 0 1 Subtract 1 .times. multiplicand1 1 0 Subtract 1 .times. multiplicand1 1 1 Subtract Nothing______________________________________
- an arithmetic unit coupled to the multiplicand register and to the logic means for performing the selected operation on the multiplicand and adding the result of the selected operation to the adder register;
- means for shifting the values stored in the multiplier register, the pad bit, and the multiplicand register; and
- means for sequentially controlling a multiply and accumulate operation, wherein a first multiplier and a first multiplicand are stored in the multiplier register and in the multiplicand register, respectively, then a first selected operation is performed on the multiplicand responsive to the logic means and the result thereof added to the adder register, then the first multiplier is shifted right two places through the pad bit and the first multiplicand is shifted left two places, and finally a second selected operation is performed on the shifted multiplicand responsive to the logic means and the result thereof added to the adder register.
- 4. A method of summing a sequence of binary product terms, comprising the sequential steps of:
- (a) initializing a first register to zero;
- (b) retrieving a product term from a data bus, said product term including a multiplier and a multiplicand;
- (c) storing the multiplier in a second register and storing the multiplicand in a third register;
- (d) examining the values stored in the two least significant bits of the second register and an adjacent pad bit;
- (e) performing an operation on the third register according to the values observed in step (d) using a modified Booth's algorithm;
- (f) adding the result of the operation in step (e) to the first register;
- (g) shifting the values in the second register right 2 places, through the pad bit, and shifting the values in the third register left 2 places;
- (h) examining the shifted values stored in the two least significant bits of the second register and the adjacent pad bit;
- (i) performing an operation on the third register according to the values observed in step (h) using a modified Booth's algorithm; and
- (j) performing steps (b)-(i) for each product term in the sequence.
- 5. A method as in claim 4, wherein the modified Booth's algorithm is as follows:
- ______________________________________MULTIPLIER PADBIT 1 BIT 0 BIT OPERATION______________________________________0 0 0 Add Nothing0 0 1 Add 1 .times. multiplicand0 1 0 Add 1 .times. multiplicand0 1 1 Add 2 .times. multiplicand1 0 0 Subtract 2 .times. multiplicand1 0 1 Subtract 1 .times. multiplicand1 1 0 Subtract 1 .times. multiplicand1 1 1 Subtract Nothing______________________________________
Parent Case Info
This is a continuation of co-pending application Ser. No. 07/980,490, filed on Jan. 25, 1991, now abandoned, which is a division now Ser. No. 712,208, filed Jun. 7, 1991, of U.S. Pat. Ser. No. 5,218,564, issued on Jun. 8, 1993.
US Referenced Citations (9)
Foreign Referenced Citations (3)
Number |
Date |
Country |
0154051 |
Sep 1985 |
EPX |
0238678 |
Sep 1987 |
EPX |
58-056032 |
Jan 1983 |
JPX |
Non-Patent Literature Citations (2)
Entry |
Ferro, et al. "The Architecture and Programming of the WE.RTM. DSP16 Digital Signal Processor", Electro/87 and mini/Micro Northeast Conference Record, Los Angeles, US; vol. 12, 1987; 27/4, pp. 1-7. |
Ware, et al. "64 Bit Monolithic Floating Point Processors", IEEE Journal of Solid-State Circuits, vol. SC-17 (1982), Oct., No. 5, New York, USA; pp. 898-906. |
Divisions (1)
|
Number |
Date |
Country |
Parent |
712208 |
Jun 1991 |
|
Continuations (1)
|
Number |
Date |
Country |
Parent |
980490 |
Jan 1993 |
|