IP Library Granted Patent US 7,356,676
Granted Patent B2
US 7,356,676 · App. 11/351,950 · Granted Apr 8, 2008

Extracting aligned data from two source registers without shifting by executing coprocessor instruction with mode bit for deriving offset from immediate or register

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 7,356,676
App. No.
11/351,950
Granted
Apr 8, 2008
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 coprocessor targetted by the coprocessor instructions. After determining whether to alternatively load source values into a respective one of two source registers, new source values are transferred to one or more of the source registers. The coprocessor executes the coprocessor instruction, which includes an offset information, to extract values from the source registers based on the offset information and places the values in a destination register.

Claims (31)

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, wherein the source registers store source values and the destination register stores a destination value of a specified data size;

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 the coprocessor for the coprocessor instruction; and

executing the coprocessor instruction to perform an alignment operation to extract values having a total data size equal to the data size of the destination value from said source registers and to place the extracted values in said destination register without performing a bit-shift operation, wherein said coprocessor instruction includes information about where to locate offset information from which to determine an offset of the values to enable those values to be extracted from said source registers.

2. The method of claim 1 including providing an indication in the instruction about a general purpose register that includes information about the offset.

3. The method of claim 1 including conditionally executing the coprocessor instruction dependent on a state of a main processor arithmetic flag.

4. An article comprising a medium storing instructions that, if executed, enable a processor-based system to:

perform 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;

provide two source registers and one destination register for said at least one coprocessor instruction, wherein the source registers store source values and the destination register stores a destination value of a specified data size;

provide 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; and

execute the coprocessor instruction to perform an alignment operation to extract values having a total data size equal to the data size of the destination value from said source registers and to place the extracted values in said destination register without performing a bit-shift operation, wherein said coprocessor instruction includes information about where to locate offset information from which to determine an offset of the values to enable those values to be extracted from said source registers.

5. The article of claim 4 further storing instructions that, if executed, enable the processor-based system to provide an indication in the instruction about a general purpose register that includes information about the offset.

6. The article of claim 4 further storing instructions that, if executed, enable the processor-based system to provide three different saturation types including signed saturation, no saturation, and unsigned saturation.

7. The article of claim 4 further storing instructions that, if executed, enable the processor-based system to conditionally execute the coprocessor instruction dependent on a state of a main processor arithmetic flag.

8. A coprocessor comprising:

a main processor including an arithmetic flag;

two source registers for storing source values and a destination register for storing a destination value of a specified data size; and

a storage storing opcodes specifying a data processing operation to be performed based on at least one coprocessor instruction from the main processor, and a coprocessor identification field for identifying the coprocessor for the coprocessor instruction, said coprocessor to

execute an instruction, based on the coprocessor instruction, to perform an alignment operation to extract values having a total data size equal to the data size of the destination value from said source registers and to place the extracted values in said destination register without performing a bit-shift operation, wherein said coprocessor instruction includes information about where to locate offset information from which to determine an offset of the values to enable those values to be extracted from said source registers.

9. The coprocessor of claim 8 wherein said coprocessor is a single instruction multiple data coprocessor.

10. The coprocessor of claim 8 to extract an indication from the instruction about a general purpose register that includes information about the offset.

11. The coprocessor of claim 8 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.

12. A system comprising:

a main processor; and

a coprocessor coupled to said main processor, said coprocessor receiving at least one coprocessor instruction from the main processor, the coprocessor instruction including opcodes specifying a data processing operation to be performed by the coprocessor and a coprocessor identification field for identifying the coprocessor for the coprocessor instruction, said coprocessor to

allocate two source registers and one destination register for the coprocessor instruction, wherein the source registers store source values and the destination register stores a destination value of a specified data size; and

perform an alignment operation to extract values having a total data size equal to the data size of the destination value from said source registers and to place the extracted values in said destination register without performing a bit-shift operation, wherein said instruction includes information about where to locate offset information from which to determine an offset of the values to enable said values to be extracted from said source registers; and

a wireless interface coupled to said main processor.

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

14. The system of claim 12 wherein said coprocessor to extract an indication from the instruction about a general purpose register that includes instruction about the offset.

Assignments (3)
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 Nov 15, 2006
From: INTEL CORPORATION
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 018515/0817 →