IP Library Granted Patent US 9,152,423
Granted Patent B2
US 9,152,423 · App. 13/071,730 · Granted Oct 6, 2015

Method and apparatus for efficient loop instruction execution using bit vector scanning

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 9,152,423
App. No.
13/071,730
Granted
Oct 6, 2015
Kind
B2
Abstract

A method, apparatus and computer program product for performing efficient loop instruction execution using bit vector scanning is presented. A bit vector is scanned, each bit in the bit vector representing at least one of a feature and a conditional status. The presence of a bit of said bit vector set to a first state is detected. The bit is set to a second state. An instruction address for a routine corresponding to said bit set to a first state is looked up using a bit position of said bit that was set to a first state. The routine is executed. The scanning, said detecting, said setting and said using are repeated until there are no remaining bits of said bit vector set to said first state.

Claims (40)

1. A computer-implemented method in which a computer system performs operations comprising:

saving Program Counter content to a register;

scanning a bit vector wherein said computer system comprises a multi-threaded packet processor, wherein a bit of said bit vector correlates to a packet processing feature and wherein said packet processing feature comprises one of the group consisting of packet mirroring, packet re-mark, IP fix and packet policing;

detecting the presence of a bit of said bit vector set to a first state;

setting said bit to a second state;

using a bit position of said bit that was set to a first state to look up an instruction address for a routine corresponding to said bit set to a first state;

executing said routine; and

repeating said scanning, said detecting, said setting and said using until there are no remaining bits of said bit vector set to said first state, wherein said repeating said scanning, said detecting, said setting and said using comprises performing a branch to said register in order to execute said instruction again.

2. The method of claim 1 wherein said scanning a bit vector, said detecting the presence of a bit of said bit vector set to a first state, said setting said bit to a second state, and said using a bit position take place during a single instruction execution.

3. The method of claim 1 wherein said using a bit position comprises using said bit position to index into a jump table, said jump table containing program counter values.

4. The method of claim 1 wherein said first state of a bit comprises said bit set to a true value, and wherein said second state of said bit comprises said bit set to a false value.

5. The method of claim 1 further comprising executing a next instruction after said repeating completes.

6. A non-transitory computer readable medium having computer readable code thereon for efficient loop instruction execution using bit vector scanning, the medium including instructions in which a computer system performs operations comprising:

saving Program Counter content to a hardware link register;

scanning a bit vector, wherein said computer system comprises a multi-threaded packet processor, wherein a bit of said bit vector correlates to a packet processing feature and wherein said packet processing feature comprises one of the group consisting of packet mirroring, packet re-mark, IP fix and packet policing;

detecting the presence of a bit of said bit vector set to a first state;

setting said bit to a second state;

using a bit position of said bit that was set to a first state to look up an instruction address for a routine corresponding to said bit set to a first state;

executing said routine; and

repeating said scanning, said detecting, said setting and said using until there are no remaining bits of said bit vector set to said first state, wherein said repeating said scanning, said detecting, said setting and said using comprises performing a branch to said hardware link register in order to execute said instruction again.

7. The computer readable medium of claim 6 wherein said scanning a bit vector, said detecting the presence of a bit of said bit vector set to a first state, said setting said bit to a second state, and said using a bit position take place during a single instruction execution.

8. The computer readable medium of claim 6 wherein said using a bit position comprises using said bit position to index into a jump table, said jump table containing program counter values.

9. The computer readable medium of claim 6 wherein said first state of a bit comprises said bit set to a true value, and wherein said second state of said bit comprises said bit set to a false value.

10. The computer readable medium of claim 6 further comprising instructions for executing a next instruction after said repeating completes.

11. A computer system comprising:

a memory;

a processor;

a communications interface;

an interconnection mechanism coupling the memory, the processor and the communications interface; and

wherein the memory is encoded with an application providing efficient loop instruction execution using bit vector scanning, that when performed on the processor, provides a process for processing information, the process causing the computer system to perform the operations of:

saving Program Counter content to a hardware link register;

scanning a bit vector, wherein said computer system comprises a multi-threaded packet processor, wherein a bit of said bit vector correlates to a packet processing feature and wherein said packet processing feature comprises one of the group consisting of packet mirroring, packet re-mark, IP fix and packet policing;

detecting the presence of a bit of said bit vector set to a first state;

setting said bit to a second state;

using a bit position of said bit that was set to a first state to look up an instruction address for a routine corresponding to said bit set to a first state;

executing said routine; and

repeating said scanning, said detecting, said setting and said using until there are no remaining bits of said bit vector set to said first state, wherein said repeating said scanning, said detecting, said setting and said using comprises performing a branch to said hardware link register in order to execute said instruction again.

12. The computer system of claim 11 wherein said scanning a bit vector, said detecting the presence of a bit of said bit vector set to a first state, said setting said bit to a second state, and said using a bit position take place during a single instruction execution.

13. The computer system of claim 11 wherein said using a bit position comprises using said bit position to index into a jump table, said jump table containing program counter values.

14. The computer system of claim 11 further comprising executing a next instruction after said repeating completes.

Assignments (13)
AMENDED SECURITY AGREEMENT Recorded Aug 18, 2023
From: EXTREME NETWORKS, INC.; AEROHIVE NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 064782/0971 →
SECURITY INTEREST Recorded May 1, 2018
From: EXTREME NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 046050/0546 →
RELEASE OF SECURITY INTEREST Recorded May 1, 2018
From: SILICON VALLEY BANK
To: EXTREME NETWORKS, INC.
Reel/Frame 046051/0775 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 029608/0256 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 044891/0801 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 045012/0666 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 041576/0001 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS LLC (FORMERLY KNOWN AS OCTEL COMMUNICATIONS CORPORATION); VPNET TECHNOLOGIES, INC.
Reel/Frame 044893/0531 →
THIRD AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 044639/0300 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2017
From: AVAYA INC.; AVAYA COMMUNICATION ISRAEL LTD; AVAYA HOLDINGS LIMITED
To: EXTREME NETWORKS, INC.
Reel/Frame 043569/0047 →
SECOND AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Jul 14, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 043200/0614 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS CORPORATION; VPNET TECHNOLOGIES, INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041576/0001 →
SECURITY AGREEMENT Recorded Mar 13, 2013
From: AVAYA, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE
Reel/Frame 030083/0639 →
SECURITY AGREEMENT Recorded Jan 10, 2013
From: AVAYA, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 029608/0256 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2011
From: ASSARPOUR, HAMID; CRAREN, MICHAEL J.; MODELSKI, RICHARD P.
To: AVAYA INC.
Reel/Frame 026021/0416 →