IP Library Granted Patent US 6,986,023
Granted Patent B2
US 6,986,023 · App. 10/215,756 · Granted Jan 10, 2006

Conditional execution of coprocessor instruction based on main processor arithmetic flags

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,986,023
App. No.
10/215,756
Granted
Jan 10, 2006
Kind
B2
Abstract

A processor-based system may include a main processor and a coprocessor. The coprocessor handles instructions that include opcodes specifying a data processing operation to be performed by the coprocessor and a coprocessor identification field for identifying a target coprocessor for coprocessor instructions. Two bits indicate one of four data sizes including a byte (8 bits), a half word (16 bits), a word (32 bits), and a double word (64 bits). Two other bits indicate a saturation type.

Claims (37)

1. A method comprising:

performing data processing using a main processor in response to a stream of data processing instructions, said data processing instructions including at least one coprocessor instruction;

providing two source registers and a destination register for said at least one coprocessor instruction;

providing a coprocessor instruction that includes an opcode specifying a data processing operation to be performed by the coprocessor and a coprocessor identification field for identifying a target coprocessor for the coprocessor instruction;

conditionally executing the coprocessor instruction dependent on a state of a main processor arithmetic flag; and

providing two bits that indicate data sizes including a byte or eight bits, a half word or sixteen bits, a data word or thirty-two bits, and a double word or sixty-four bits.

2. The method of claim 1 including providing two bits that indicate a saturation type.

3. The method of claim 1 including specifying the data processing operation to be addition.

4. The method of claim 1 including specifying the data processing operation to be subtraction.

5. The method of claim 1 including providing three different saturation types including signed saturation, no saturation, and unsigned saturation.

6. The method of claim 1 including assigning the bits zero through thirty-one, using bits seven through five to indicate the operation type, assigning the bits eleven through eight to indicate the coprocessor number, assigning the bits 23 and 22 to indicate the operand size, and assigning the bits 21 and 20 to set the saturation type.

7. The method of claim 1 including assigning the bits 27 to 24 to be 1110.

8. An article comprising a medium storing instructions that, if executed, enable a processor-based system executed, enable a processor-based system including a main processor and a coprocessor to perform the steps of:

performing data processing using a main processor in response to a stream of data processing instructions, said data processing instructions including at least one coprocessor instruction;

providing two source registers and one destination register for said at least one coprocessor instruction;

providing a coprocessor instruction that includes an opcode specifying a data processing operation to be performed by the coprocessor and a coprocessor identification field for identifying a target coprocessor for the coprocessor instruction;

providing two bits that indicate one of four data sizes including a byte or eight bits, a half word or sixteen bits, a data word or thirty-two bits, and a double word or sixty-four bits; and

conditionally executing the coprocessor instruction dependent on a state of a main processor arithmetic flag.

9. The article of claim 8 further storing instructions that, if executed, enable a processor-based system to perform the step of providing two bits that indicate a saturation type.

10. The article of claim 8 further storing instructions that enable a processor-based system, if executed, to perform the step of specifying the data processing operation to be addition.

11. The article of claim 8 further storing instructions that enable a processor-based system, if executed, to perform the step of specifying the data processing operation to be subtraction.

12. The article of claim 8 further storing instructions that, if executed, enable the processor-based system to perform the step of providing three different saturation types including signed saturation, no saturation, and unsigned saturation.

13. The article of claim 8 further storing instructions that, if executed, enable the processor-based system to perform the steps of assigning the bits zero through thirty-one, using bits seven through five to indicate the operation type, assigning the bits eleven through eight to indicate the coprocessor number, assigning the bits twenty-three and twenty-two to indicate the operand size, and assigning the bits twenty-one and twenty to set the saturation type.

14. A processor comprising:

a main processor including an arithmetic flag; and

a coprocessor coupled to said main processor, said coprocessor use opcodes specifying a data processing operation to be performed by the coprocessor and a coprocessor identification field for identifying a target coprocessor for the coprocessor instructions, said coprocessor to recognize instruction sequence bits that indicate one of four data types including a byte or eight bits, a half word or sixteen bits, a data word or thirty-two bits, and a double word or sixty-four bits, said coprocessor to allocate two source registers and a destination register for each coprocessor instruction and said coprocessor to conditionally execute an instruction depending on a state of a main processor arithmetic flag.

15. The processor of claim 14 wherein said coprocessor is a single instruction multiple data coprocessor.

16. The processor of claim 14 wherein said coprocessor handles signed saturation, no saturation, and unsigned saturation.

17. The processor of claim 14 wherein said coprocessor recognizes two bits of an instruction sequence that indicate one of four data sizes and two bits that indicate a saturation type.

18. The processor of claim 14 wherein said coprocessor uses instructions having bits zero through thirty-one, and wherein bits seven through five indicate the operation type, bits eleven through eight indicate the coprocessor number, bits twenty-three and twenty-two indicate the operand size, and bits twenty-one and twenty set the saturation type.

19. A system comprising:

a main processor;

a coprocessor coupled to said main processor, said coprocessor to use opcodes specifying a data processing operation to be performed by the coprocessor and a coprocessor identification field for identifying a target coprocessor for the coprocessor instructions, said coprocessor recognizing instruction sequence bits that indicate one of four data types including a byte or eight bits, a half word or sixteen bits, a data word or thirty-two bits, and a double word or sixty-four bits, said coprocessor to allocate two source registers and one destination register for a coprocessor instruction and said coprocessor to conditionally execute an instruction depending on the state of a main processor arithmetic flag; and

a wireless interface coupled to said main processor.

20. The system of claim 19 wherein said coprocessor instructions have bits twenty-seven to twenty-four that are 1110.

21. The system of claim 19 wherein said coprocessor has three different types of saturation including signed saturation, no saturation, and unsigned saturation.

22. The system of claim 19 wherein said coprocessor uses the instructions zero through thirty-one, with bits seven through five indicating the operation type, bits eleven through eight indicating the coprocessor number, the bits twenty-three and twenty-two indicating the operand size and the bits twenty-one to twenty setting the saturation type.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051778/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2006
From: MARVELL INTERNATIONAL, LTD.
To: MARVELL WORLD TRADE LTD.
Reel/Frame 018655/0535 →
EXCLUSIVE LICENSE Recorded Dec 15, 2006
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 018674/0816 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2006
From: INTEL CORPORATION
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 018515/0817 →