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

Data processor with an integer multiplication function on a fractional multiplier

Assignee: Motorola Solutions Inc
•
Filing: 1991-04-02
•
Granted: 1994-11-08
•
Expires: 2011-04-02
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A data processing system (10) which primarily supports fractional multiplication operations has a multiplication logic circuit (20) for executing integer multiplication functions efficiently. During an integer multiplication function, two multiplicands are multiplied together as if the multiplication function was fractional. A predetermined accumulation input is stored and shifted to the right by a Right Shift Logic circuit (32) before being added to a product of the two multiplicands. An accumulated product of the multiplication function is formed by an adder (36) and shifted to the left by a Left Shift Logic circuit (38) until the accumulated product is in integer form. Implementing an integer multiplication operation with a fractional multiplier in the data processing system requires a single software instruction.

Inventors

  • 👤 Joseph P. Gergen
  • 👤 Peter A. Percosan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 18:26
CPC Classifications
G; G06; G06F; G06F7/00; G06F7/38; G06F7/48; G06F7/52; G06F7/523; G06F9/00; G06F9/06; G06F9/30; G06F9/30003; G06F9/30007; G06F9/3001; G06F9/30014

Claims Analysis

Total Claims: 22
Claim 1
Independent Claim 321 words
A data processor, comprising: a controller for receiving one of a first instruction and a second instruction, the controller decoding the first instruction to provide a first control signal and a second control signal, the controller decoding the second instruction to provide a third control signal and a fourth control signal; a data bus for providing a plurality of data values; an accumulator having an input coupled to the data bus for receiving a first one of the plurality of data values; first shifting means coupled to the accumulator for receiving the first one of the plurality of data values, the first shifting means selectively right shifting the first one of the plurality of data values by fifteen bits in response to the first control signal, the first shifting means selectively transferring the first one of the plurality of data values without shifting in response to the third control signal; a first register having an input coupled to the data bus for receiving a second one of the plurality of data values; a second register having an input coupled to the data bus for receiving a third one of the plurality of data values; a multiplier for selectively multiplying the second one of the plurality of data values and the third one of the plurality of data values to provide a product; an adder having a first input coupled to the first shifting means for receiving a transferred output and a second input coupled to the multiplier for receiving the product, the adder selectively adding the transferred output and the product to provide a sum; and second shifting means coupled to the adder for receiving the sum, the second shifting means selectively left shifting the sum by fifteen bits and transferring a shifted sum to the accumulator in response to the second control signal, the second shifting means selectively transferring the sum without shifting in response to the fourth control signal.
Claim 2
Dependent Claim 321 words
A data processor, comprising: a controller for receiving one of a first instruction and a second instruction, the controller decoding the first instruction to provide a first control signal and a second control signal, the controller decoding the second instruction to provide a third control signal and a fourth control signal; a data bus for providing a plurality of data values; an accumulator having an input coupled to the data bus for receiving a first one of the plurality of data values; first shifting means coupled to the accumulator for receiving the first one of the plurality of data values, the first shifting means selectively right shifting the first one of the plurality of data values by fifteen bits in response to the first control signal, the first shifting means selectively transferring the first one of the plurality of data values without shifting in response to the third control signal; a first register having an input coupled to the data bus for receiving a second one of the plurality of data values; a second register having an input coupled to the data bus for receiving a third one of the plurality of data values; a multiplier for selectively multiplying the second one of the plurality of data values and the third one of the plurality of data values to provide a product; an adder having a first input coupled to the first shifting means for receiving a transferred output and a second input coupled to the multiplier for receiving the product, the adder selectively adding the transferred output and the product to provide a sum; and second shifting means coupled to the adder for receiving the sum, the second shifting means selectively left shifting the sum by fifteen bits and transferring a shifted sum to the accumulator in response to the second control signal, the second shifting means selectively transferring the sum without shifting in response to the fourth control signal.
Claim 3
Dependent Claim 22 words
The data processor of claim 1 wherein the first instruction is an integer multiply accumulate instruction having a mnemonic form of IMAC.
Claim 4
Dependent Claim 22 words
The data processor of claim 1 wherein the second instruction is a fractional multiply accumulate instruction having a mnemonic form of MAC.
Claim 5
Dependent Claim 60 words
The data processor of claim 1 wherein the first control signal is asserted when an integer multiply accumulate instruction is executed, the second control signal is asserted when an integer instruction is executed, the third control signal is asserted when a fractional multiply accumulate instruction is executed, and the fourth control signal is asserted when a fractional instruction is executed.
Claim 6
Dependent Claim 49 words
The data processor of claim 1 wherein the controller decodes one of the first instruction and the second instruction to provide a fifth control signal, the fifth control signal enabling the multiplier to multiply the second and third ones of the plurality of data values to provide the product.
Claim 7
Dependent Claim 44 words
The data processor of claim 1 wherein the controller decodes one of the first instruction and the second instruction to provide a sixth control signal, the sixth control signal enabling the adder to add the transferred output and the product to provide the sum.
Claim 8
Dependent Claim 45 words
The data processor of claim 1 wherein the controller receives a third instruction and decodes the third instruction to provide a fifth control signal to the first shifting means, the first shifting means outputting a value of zero in response to the fifth control signal.
Claim 9
Dependent Claim 39 words
The data processor of claim 1 wherein the first shifting means comprises a plurality of shift cells, wherein each of the plurality of shift cells corresponds to a bit of the first one of the plurality of data values.
Claim 10
Dependent Claim 57 words
The data processor of claim 8 wherein each of the plurality of bit cells shifts a more significant bit of the first one of the plurality of data values when the first control signal is asserted and a corresponding bit of the first one of the plurality of data values when the third control signal is asserted.
Claim 11
Dependent Claim 24 words
The data processor of claim 9 wherein each of the plurality of bits cells shifts a zero when a fifth control signal is asserted.
Claim 12
Dependent Claim 32 words
The data processor of claim 1 wherein the second shifting means comprises a plurality of shift cells, wherein each of the plurality of shift cells corresponds to a bit of the sum.
Claim 13
Dependent Claim 43 words
The data processor of claim 11 wherein each of the plurality of bit cells shifts a less significant bit of the sum when the second control signal is asserted and a corresponding bit of the sum when the fourth control signal is asserted.
Claim 14
Independent Claim 316 words
A method for executing a multiplication function in a data processing system, comprising the steps of: receiving one of a first instruction and a second instruction; decoding the first instruction to provide a first control signal and a second control signal when the first instruction is received; decoding the second instruction to provide a third control signal and a fourth control signal when the second instruction is received; communicating a plurality of data values via a data bus; storing a first one of the plurality of data values in an accumulator, the accumulator being coupled to the data bus for receiving the first one of the plurality of data values; selectively right shifting the first one of the plurality of data values by fifteen bits to provide a transferred output when the first control signal is asserted; selectively transferring the first one of the plurality of data values without shifting to provide the transferred output when the third control signal is asserted; storing a second one of the plurality of data values in a first register, the first register being coupled to the data bus for receiving the second one of the plurality of data values; storing a third one of the plurality of data values in a second register, the second register being coupled to the data bus for receiving the third one of the plurality of data values; selectively multiplying the second one of the plurality of data values and the third one of the plurality of data values to provide a product; selectively adding the transferred output and the product to provide a sum; selectively left shifting the sum by fifteen bits to provide a shifted sum when the second control signal is asserted; selectively transferring the shifted sum to the accumulator when the second control signal is asserted; and selectively transferring the sum without shifting when the fourth control signal is asserted.
Claim 15
Independent Claim 316 words
A method for executing a multiplication function in a data processing system, comprising the steps of: receiving one of a first instruction and a second instruction; decoding the first instruction to provide a first control signal and a second control signal when the first instruction is received; decoding the second instruction to provide a third control signal and a fourth control signal when the second instruction is received; communicating a plurality of data values via a data bus; storing a first one of the plurality of data values in an accumulator, the accumulator being coupled to the data bus for receiving the first one of the plurality of data values; selectively right shifting the first one of the plurality of data values by fifteen bits to provide a transferred output when the first control signal is asserted; selectively transferring the first one of the plurality of data values without shifting to provide the transferred output when the third control signal is asserted; storing a second one of the plurality of data values in a first register, the first register being coupled to the data bus for receiving the second one of the plurality of data values; storing a third one of the plurality of data values in a second register, the second register being coupled to the data bus for receiving the third one of the plurality of data values; selectively multiplying the second one of the plurality of data values and the third one of the plurality of data values to provide a product; selectively adding the transferred output and the product to provide a sum; selectively left shifting the sum by fifteen bits to provide a shifted sum when the second control signal is asserted; selectively transferring the shifted sum to the accumulator when the second control signal is asserted; and selectively transferring the sum without shifting when the fourth control signal is asserted.
Claim 16
Dependent Claim 25 words
The method of claim 13 wherein the first instruction is an integer multiply accumulate instruction and the second instruction is a fractional multiply accumulate instruction.
Claim 17
Dependent Claim 66 words
The method of claim 13 further comprising the steps of: asserting the first control signal when the first instruction is an integer multiply accumulate instruction; asserting the second control signal when the first instruction is an integer instruction; asserting the third control signal when the second instruction is a multiply accumulate instruction; and asserting the fourth control signal when the second instruction is a fractional instruction.
Claim 18
Dependent Claim 328 words
A data processor, comprising: a controller for receiving one of an integer multiplication accumulation instruction and a fractional multiplication accumulation instruction, the controller decoding the integer multiplication instruction to provide a first control signal and a second control signal, the controller decoding the fractional multiplication instruction to provide a third control signal and a fourth control signal; a data bus for providing a plurality of data values; an accumulator having an input coupled to the data bus for receiving a first one of the plurality of data values; first shifting means coupled to the accumulator for receiving the first one of the plurality of data values, the first shifting means selectively right shifting the first one of the plurality of data values by fifteen bits in response to the first control signal, the first shifting means selectively transferring the first one of the plurality of data values without right shifting in response to the third control signal; a first register having an input coupled to the data bus for receiving a second one of the plurality of data values; a second register having an input coupled to the data bus for receiving a third one of the plurality of data values; a multiplier for selectively multiplying the second one of the plurality of data values and the third one of the plurality of data values to provide a product; an adder having a first input coupled to the first shifting means for receiving a transferred output and a second input coupled to the multiplier for receiving the product, the adder selectively adding the transferred output and the product to provide a sum; and second shifting means coupled to the adder for receiving the sum, the second shifting means selectively left shifting the sum by fifteen bits and transferring a shifted sum to the accumulator in response to the second control signal, the second shifting means selectively transferring the sum without shifting in response to the fourth control signal.
Claim 19
Dependent Claim 328 words
A data processor, comprising: a controller for receiving one of an integer multiplication accumulation instruction and a fractional multiplication accumulation instruction, the controller decoding the integer multiplication instruction to provide a first control signal and a second control signal, the controller decoding the fractional multiplication instruction to provide a third control signal and a fourth control signal; a data bus for providing a plurality of data values; an accumulator having an input coupled to the data bus for receiving a first one of the plurality of data values; first shifting means coupled to the accumulator for receiving the first one of the plurality of data values, the first shifting means selectively right shifting the first one of the plurality of data values by fifteen bits in response to the first control signal, the first shifting means selectively transferring the first one of the plurality of data values without right shifting in response to the third control signal; a first register having an input coupled to the data bus for receiving a second one of the plurality of data values; a second register having an input coupled to the data bus for receiving a third one of the plurality of data values; a multiplier for selectively multiplying the second one of the plurality of data values and the third one of the plurality of data values to provide a product; an adder having a first input coupled to the first shifting means for receiving a transferred output and a second input coupled to the multiplier for receiving the product, the adder selectively adding the transferred output and the product to provide a sum; and second shifting means coupled to the adder for receiving the sum, the second shifting means selectively left shifting the sum by fifteen bits and transferring a shifted sum to the accumulator in response to the second control signal, the second shifting means selectively transferring the sum without shifting in response to the fourth control signal.
Claim 20
Dependent Claim 40 words
The data processor of claim 16 wherein the controller receives a third instruction to provide a fifth control signal to the first shifting means, the first shifting means outputting a value of zero in response to the fifth control signal.
Claim 21
Dependent Claim 77 words
The data processor of claim 17 where the first shift means comprises a plurality of shift cells wherein each of the plurality of shift cells corresponds to a bit of the sum, each of the plurality of shift cells shifts a more significant bit of the sum when the first control signal is asserted, a corresponding bit of the sum when the third control signal is asserted, and a zero when the fifth control signal is asserted.
Claim 22
Dependent Claim 65 words
The data processor of claim 16 wherein the second shifting means comprises a plurality of shift cells wherein each of the shift cells corresponds to bit of the sum, each of the plurality of shift cells shifts a less significant bit of the sum when the second control signal is asserted and a corresponding bit of the sum when the fourth control signal is asserted.

References Cited (Backward Citations)

US4594678A Cited
US4597053A Cited
US4876660A Cited
US4841467A Cited
US4958312A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag