IP Library Granted Patent US 9,112,767
Granted Patent B2
US 9,112,767 · App. 13/844,451 · Granted Aug 18, 2015

Method and an accumulator scoreboard for out-of-order rule response handling

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,112,767
App. No.
13/844,451
Granted
Aug 18, 2015
Kind
B2
Abstract

According to at least one example embodiment, a method and a corresponding accumulator scoreboard for managing bundles of rule matching threads processed by one or more rule matching engines comprise: recording, for each rule matching thread in a given bundle of rule matching threads, a rule matching result in association with a priority corresponding to the respective rule matching thread; determining a final rule matching result, for the given bundle of rule matching threads, based at least in part on the corresponding indications of priorities; and generating a response state indicative of the determined final rule matching result for reporting to a host processor or a requesting processing engine.

Claims (43)

1. A method of managing bundles of rule matching threads processed by one or more rule matching engines in a search processor, the method comprising:

recording, for each rule matching thread in a given bundle of rule matching threads, a rule matching result in association with a priority corresponding to the respective rule matching thread;

determining a final rule matching result, for the given bundle of rule matching threads, based at least in part on the priorities corresponding to the rule matching threads in the given bundle; and

generating a response state indicative of the determined final rule matching result for reporting to a host processor.

2. A method according to claim 1 further comprising recording, for each rule matching thread in the given bundle of rule matching threads, an identification of a rule walking engine initiating the rule matching thread.

3. A method according to claim 1 further comprising recording a count of the number of rule matching threads in the given bundle of rule matching threads.

4. A method according to claim 1 , wherein determining a final rule matching result includes:

maintaining an indication of expected priorities associated with rule matching threads in the given bundle; and

determining whether rule matching results are recorded for all rule matching threads associated with the expected priorities.

5. A method according to claim 1 , wherein the rule matching result is indicative of a match, non-match, or error.

6. A method according to claim 5 , wherein determining a final rule matching result for the given bundle includes:

if the rule matching results recorded, corresponding to the rule matching threads in the given bundle, include at least one rule matching result indicative of a match or error, selecting from the at least one rule matching result indicative of a match or error the rule matching result with highest priority as the final rule matching result; or

if the rule matching results recorded, corresponding to the rule matching threads in the given bundle, include no rule matching result indicative of a match or error, determining the final rule matching result as indicative of a non-match.

7. A method according to claim 1 , wherein determining a final rule matching result includes determining a final rule matching result prior to recording all rule matching results associated with the rule matching threads in the given bundle.

8. A method according to claim 1 further comprising clearing rule matching results and respective indications of priorities upon generating the response state.

9. A method according to claim 1 further comprising:

reporting the final rule matching result determined to a rule walking engine associated with the bundle of rule matching threads;

receiving instruction from the rule walking engine to report the response state to the host processor; and

reporting the response state to the host processor responsive to the received instruction.

10. A method according to claim 1 , wherein two or more sets of bundles of rule matching threads are managed simultaneously.

11. A processor comprising:

a plurality of rule walking engines configured to initiate bundles of rule matching threads;

multiple rule matching engines configured to process the rule matching threads and provide respective rule matching results;

a scoreboard module configured to:

record, for each rule matching thread in a given bundle of rule matching threads, a rule matching result in association with a priority corresponding to the respective rule matching thread;

determine a final rule matching result, for the given bundle of rule matching threads, based at least in part on the corresponding indications of priorities; and

generate a response state indicative of the determined final rule matching result for reporting to a host processor.

12. A processor according to claim 11 , wherein the scoreboard module is further configured to record, for each rule matching thread in the given bundle of rule matching threads, an identification of a rule walking engine initiating the rule matching thread.

13. A processor according to claim 11 , wherein the scoreboard module is further configured to record a count of the number of rule matching threads in the given bundle of rule matching threads.

14. A processor according to claim 11 , wherein in determining a final rule matching result, the scoreboard module is configured to:

maintain an indication of expected priorities associated with rule matching threads in the given bundle; and

determine whether rule matching results are recorded for all rule matching threads associated with the expected priorities.

15. A processor according to claim 11 , wherein the rule matching result is indicative of a match, non-match, or error.

16. A processor according to claim 15 , wherein in determining a final rule matching result, the scoreboard module is configured to:

if the rule matching results recorded, corresponding to the rule matching threads in the given bundle, include at least one rule matching result indicative of a match or error, select from the at least one rule matching result indicative of a match or error the rule matching result with highest priority as the final rule matching result; or

if the rule matching results recorded, corresponding to the rule matching threads in the given bundle, include no rule matching result indicative of a match or error, determine the final rule matching result as indicative of a non-match.

17. A processor according to claim 11 , wherein in determining a final rule matching result, the scoreboard module is configured to determine a final rule matching result prior to recording all rule matching results associated with the rule matching threads in the given bundle.

18. A processor according to claim 11 , wherein the scoreboard module is further configured to clear rule matching results and respective indications of priorities upon generating the response state.

19. A processor according to claim 11 , wherein the scoreboard module is further configured to:

report the final rule matching result determined to a rule walking engine associated with the bundle of rule matching threads;

receive instruction from the rule walking engine to report the response state to the host processor; and

report the response state to the host processor responsive to the received instruction.

20. A processor according to claim 11 , wherein the processor comprises two or more scoreboard modules configured to manage, simultaneously, two or more sets of bundles of rule matching threads.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CERTIFICATE OF CONVERSION AND CERTIFICATE OF FORMATION Recorded Oct 2, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047185/0422 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →