Claims
- 1. A method for constructing a reduced set of instructions for operating a cross-connected dual-MAC processor having a complete command set including at least 4 two-input accumulator statements, at least 4 three-input accumulator statements, at least 4 dual two-input accumulator statements, at least 8 single product statements, and at least 12 dual product statements, comprising the steps of:
including in said instruction set only two-input accumulate statements associated with a particular one of said two MAC processors; including in said instruction set said three-input accumulator statements; including in said instruction set said dual two-input accumulator statements and restricting said dual two-input accumulator statements to adjacently numbered pairs of accumulators; including in said instruction set only one single product statement; and including in said instruction set only one dual product statement from each of six symmetric dual product statement pairs.
- 2. The method of claim 1, further comprising the step of additionally reducing said instruction set by including in said instruction set only one dual product statement from a nearly-symmetric pair of dual product statements.
- 3. A method of constructing a reduced set of instructions for controlling a pair of multipliers in a processor having a cross-connected dual-MAC architecture supporting 4n possible dual-product multiplier statements, said method comprising the steps of:
arranging the 4n dual-product statements into 2n symmetric pairs of dual-product statements; and including in said instruction set only one dual product statement from each of said 2n symmetric dual product statement pairs.
- 4. The method of claim 3, further comprising the steps of:
arranging the 2n dual-product statements selected from said 2n symmetric pairs into n pairs of nearly-symmetric dual-product statements; and for at least one of said n nearly-symmetric pairs, including in said instruction set only one dual-product statement from said at least one of n nearly-symmetric pairs.
- 5. In a microprocessor including two cross-connected MAC processors, each MAC processor having a multiplier connected to an adder, said adders connected to an accumulator having a plurality of registers, a reduced set of instructions in which the instructions for controlling said multipliers and adders are limited essentially to:
two single two-input accumulate statements associated with a particular one of said two MAC processors; four dual two-input accumulate statements, each of said dual two-input accumulate statements restricted to acting on predefined pairs of accumulator registers; four three-input accumulate statements; one single-product statement; and four dual-product statements, no two of which form a symmetric pair.
- 6. The microprocessor of claim 5, wherein:
said accumulator comprises eight accumulator registers; said predefined pairs of registers comprise four pairs of numerically adjacent registers; and two bits are reserved in said dual two-input accumulate statements to identify a accumulator pair.
- 7. In a microprocessor including four operand registers xh, xl, yh, and yl, selectively connected as inputs for first and second two-input multipliers having output product registers p0 and p1, a first adder receiving as input the value in p0 and the value of a register selected from an accumulator array and providing an output to the accumulator array, a second adder receiving as input the value in p0, the value in p1, and a data value selected from a register in the accumulator array and providing an output to the accumulator array, said microprocessor connected to a memory system supporting aligned-double word fetches of data, a reduced set of instructions, in which the instructions for controlling said multipliers and adders are limited essentially to:
two two-input accumulate statements of the form: aD=aS+/−p0, where aD and aS indicate destination and source accumulator registers, respectively; four three-input accumulate statement of the form: aD=aS+/−p0+/−p1; four dual two-input accumulate statements of the form: 6aD = aS +/− p0aDP = aSP +/− p1,where aDP and aSP indicate destination and source accumulator registers, respectively, the destination registers aD and aDP and the source registers aS and aSP each indicating a predefined pair of accumulator registers; one single product statement of the form p0=xh*yh; and four dual product statements of the form: 7p0 = xh * yhp1 = xh * yl;p0 = xh * yhp1 = xl * yl;p0 = xh * ylp1 = xl * yh;p0 = xl * yhp1 = xl * yl.
- 8. A reduced set of instructions for controlling a microprocessor including two cross-connected MAC processors, each MAC processor having a multiplier connected to an adder, said adders connected to an accumulator having a plurality of registers, in which the instructions in said instruction set for controlling said multipliers and adders are limited essentially to:
two single two-input accumulate statements associated with a particular one of said two MAC processors; four dual two-input accumulate statements, each of said dual two-input accumulate statements restricted to acting on predefined pairs of accumulator registers; four three-input accumulate statements; one single-product statement; and four dual-product statements, no two of which form a symmetric pair.
- 9. The instruction set of claim 5, wherein:
said accumulator comprises eight accumulator registers; said predefined pairs of registers comprise four pairs of numerically adjacent registers; and two bits are reserved in said dual two-input accumulate statements to identify a accumulator pair.
- 10. A reduced set of instructions for controlling a microprocessor including four operand registers xh, xl, yh, and yl, selectively connected as inputs for first and second two-input multipliers having output product registers p0 and p1, a first adder receiving as input the value in p0 and the value of a register selected from an accumulator array and providing an output to the accumulator array, a second adder receiving as input the value in p0, the value in p1, and a data value selected from a register in the accumulator array and providing an output to the accumulator array, said microprocessor connected to a memory system supporting aligned-double word fetches of data, in which the instructions n said instruction set for controlling said multipliers and adders are limited essentially to:
two two-input accumulate statements of the form: aD=aS+/−p0, where aD and aS indicate destination and source accumulator registers, respectively; four three-input accumulate statement of the form: aD=aS+/−p0+/−p1; four dual two-input accumulate statements of the form: 8aD aS +/− p0aDP = aSP +/− p1,where aDP and aSP indicate destination and source accumulator registers, respectively, the destination registers aD and aDP and the source registers aS and aSP each indicating a predefined pair of accumulator registers; one single product statement of the form p0=xh*yh; and four dual product statements of the form: 9p0 = xh * yhp1 = xh * yl;p0 = xh * yhp1 = xl * yl;p0 = xh * ylp1 = xl * yh;p0 = xl * yhp1 = xl * yl.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority under 35 U.S.C. §119 from U.S. Provisional Application Serial No. 60/058,157 entitled “NEAR-ORTHOGONAL DUAL-MAC INSTRUCTION SET WITH MINIMAL ENCODING BITS,” filed on Sep. 8, 1997, the contents of which is hereby incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60058157 |
Sep 1997 |
US |