IP Library Granted Patent US 7,895,423
Granted Patent B2
US 7,895,423 · App. 12/544,167 · Granted Feb 22, 2011

Method for extracting fields from packets having fields spread over more than one 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,895,423
App. No.
12/544,167
Granted
Feb 22, 2011
Kind
B2
Abstract

Systems and methods that allow for extracting a field from data stored in a pair of registers using two instructions. A first instruction extracts any part of the field from a first register designated as a first source register, and executes a second instruction extracting any part of the field from a second general register designated as a second source register. The second instruction inserts any extracted field parts in a result register.

Claims (43)

1. A method, comprising:

receiving a packet with an index key embedded in the packet;

extracting the index key; and

accessing a data set using the index key,

wherein extracting the index key comprises:

storing at least a portion of the packet in a pair of general purpose registers;

executing a first extract instruction, wherein executing the first extract instruction includes extracting a copy of any part of the index key in a first one of the pair of general purpose registers designated as a first source register;

executing a second extract instruction, wherein executing the second extract instruction includes extracting a copy of any part of the index key in a second one of the pair of general purpose registers designated as a second source register; and

inserting, in response to executing the second extract instruction, any part of the index key extracted from the second source register along with any part of the index key extracted from the first source register into a final result register of the general purpose registers.

2. The method of claim 1 , wherein executing the first extract instruction further includes:

storing any part of the index key extracted from the first source register within a temporary register;

accessing the temporary register; and

inserting any part of the index key extracted from the first source register into the final result register of the general purpose registers.

3. The method of claim 1 , further comprising:

specify one or more of the general purpose registers as locations of input or output data for execution of the first extract instruction;

storing, within a first one of the specified one or more general purpose registers, field information for the index key to be extracted from the packet, wherein the field information includes:

a width of the index key; and

an extraction offset indicating a position of the index key in the packet; and

storing, within a second one of the specified one or more general purpose registers corresponding to the first source register, a low-order portion of the packet.

4. The method of claim 3 , wherein extracting any part of the index key in the first source register includes:

determining, dependent upon the field information, whether any part of the index key is stored in said first source register; and

copying part of the index key to a second temporary register in response to determining that any part of the index key is stored in the first source register.

5. The method of claim 1 , further comprising:

specify one or more of the general purpose registers as locations of input or output data for execution of the second extract instruction;

storing, within a first one of the specified one or more general purpose registers, a result of the second extract instruction;

storing, within a second one of the specified one or more general purpose registers corresponding to the second source register, a high-order portion of the packet; and

storing, within a third one of the specified one or more general purpose registers a copy of a value of the first one of the specified one or more general purpose registers determined prior to execution of the second extract instruction.

6. The method of claim 5 , wherein extracting any part of the index key in the second source register includes:

determining whether any part of the index key is stored in the second source register, dependent upon field information for the index key to be extracted from the packet, wherein the field information includes:

a width of the index key; and

an extraction offset indicating a position of the index key in the packet.

7. The method of claim 6 , further comprising:

retrieving the field information from a first temporary register in which the field information was stored by an instance of the first extract instruction executed prior to the second extract instruction.

8. The method of claim 6 , further comprising:

copying the part of the index key to the first one of the specified one or more general registers in response to determining that any portion of the index key is stored in the second source register.

9. The method of claim 8 , further comprising:

copying the part of the index key to the first one of the specified one or more general registers according to an insertion offset specified in the field information.

10. The method of claim 7 , further comprising:

determining, dependent upon the field information, whether any additional part of the index key stored in the first source register was stored in a second temporary register by an instance of the first extract instruction executed prior to the second extract instruction.

11. The method of claim 10 , further comprising:

copying the additional part of the index key to the first one of the specified one or more general registers in response to determining that the additional part of the index key was stored in the second temporary register.

12. The method of claim 1 , wherein a table lookup unit is accessed with the index key.

13. The method of claim 1 , wherein the method is performed by a reduced instruction set computer (RISC) processor.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2014
From: BRIDGE CROSSING, LLC
To: ARM FINANCE OVERSEAS LIMITED
Reel/Frame 033074/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2009
From: KATZMAN, SOL; GELINAS, ROBERT; HAYS, W. PATRICK
To: LEXRA COMPUTING ENGINES
Reel/Frame 023696/0481 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2009
From: LEXRA, INC.
To: MIPS TECHNOLOGIES, INC.
Reel/Frame 023696/0556 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2009
From: KATZMAN, SOL; GELINAS, ROBERT; HAYS, W. PATRICK
To: LEXRA, INC.
Reel/Frame 023696/0600 →