Event tracking hardware
First Claim
Patent Images
1. A method comprising the steps of:
- detecting multiple occurrences of a plurality of different kinds of events of interest;
upon each of said occurrences, invoking an event tracking hardware engine having N caches, N being at least two, using a key of a type corresponding to a corresponding one of said different kinds of events of interest, such that said event tracking hardware engine stores, for each of said different kinds of events of interest, a corresponding cumulative number of occurrences, by carrying out the following steps;
searching in said N caches for an entry for said key;
if an entry for said key is found, and no overflow of said corresponding cumulative number of occurrences for said entry for said key would occur by incrementing said corresponding cumulative number of occurrences, incrementing said corresponding cumulative number of occurrences;
if said entry for said key is found, and overflow of said corresponding cumulative number of occurrences for said entry for said key would occur by incrementing said corresponding cumulative number of occurrences, promoting said entry from a given one of said N caches in which said entry exists to a next highest one of said N caches; and
if said entry for said key is not found, entering said entry for said key in a zeroth one of said N caches with said corresponding cumulative number of occurrences being initialized.
6 Assignments
0 Petitions
Accused Products
Abstract
An event tracking hardware engine having N (≧2) caches is invoked when an event of interest occurs, using a corresponding key. The event tracking engine stores a cumulative number of occurrences for each one of the different kinds of events, and searches in the N caches for an entry for the key. When an entry for the key is found, the engine increments the number of occurrences if no overflow of the cumulative number of occurrences would occur. However, if the incrementing would cause overflow, then instead of incrementing the cumulative number of occurrences, the engine promotes the entry for the event of interest to a next higher cache.
13 Citations
24 Claims
-
1. A method comprising the steps of:
-
detecting multiple occurrences of a plurality of different kinds of events of interest; upon each of said occurrences, invoking an event tracking hardware engine having N caches, N being at least two, using a key of a type corresponding to a corresponding one of said different kinds of events of interest, such that said event tracking hardware engine stores, for each of said different kinds of events of interest, a corresponding cumulative number of occurrences, by carrying out the following steps; searching in said N caches for an entry for said key; if an entry for said key is found, and no overflow of said corresponding cumulative number of occurrences for said entry for said key would occur by incrementing said corresponding cumulative number of occurrences, incrementing said corresponding cumulative number of occurrences; if said entry for said key is found, and overflow of said corresponding cumulative number of occurrences for said entry for said key would occur by incrementing said corresponding cumulative number of occurrences, promoting said entry from a given one of said N caches in which said entry exists to a next highest one of said N caches; and if said entry for said key is not found, entering said entry for said key in a zeroth one of said N caches with said corresponding cumulative number of occurrences being initialized. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method comprising the steps of:
-
detecting multiple occurrences of a plurality of different kinds of events of interest; upon each of said occurrences, invoking an event tracking hardware engine having N caches, N being at least two, using a key of a type corresponding to a corresponding one of said different kinds of events of interest, such that said event tracking hardware engine stores, for each of said different kinds of events of interest, a corresponding cumulative number of occurrences, by carrying out the following steps; searching in a zeroth one of said N caches for an entry for said key; if an entry for said key is found in said zeroth one of said N caches, and no overflow of said corresponding cumulative number of occurrences for said entry for said key would occur by incrementing said corresponding cumulative number of occurrences, incrementing said corresponding cumulative number of occurrences; if said entry for said key is found in said zeroth one of said N caches, and overflow of said corresponding cumulative number of occurrences for said entry for said key would occur by incrementing said corresponding cumulative number of occurrences, promoting said entry from said zeroth one of said N caches in which said entry exists to a next highest one of said N caches; and if said entry for said key is not found, entering said entry for said key in said zeroth one of said N caches with said corresponding cumulative number of occurrences being initialized. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. An event tracking engine apparatus comprising:
-
a plurality of caches; and a corresponding plurality of control circuits; said plurality of caches and said corresponding plurality of control circuits being cooperatively configured to; receive indications of multiple occurrences of a plurality of different kinds of events of interest, said indications being received as keys; store a corresponding cumulative number of occurrences for each of said different kinds of events of interest, by carrying out the following steps upon receipt of each given one of said keys; searching in said caches for an entry for given one of said keys; if an entry for given one of said keys is found, and no overflow of said corresponding cumulative number of occurrences for said entry for given one of said keys would occur by incrementing said corresponding cumulative number of occurrences, incrementing said corresponding cumulative number of occurrences; if said entry for given one of said keys is found, and overflow of said corresponding cumulative number of occurrences for said entry for given one of said keys would occur by incrementing said corresponding cumulative number of occurrences, promoting said entry from a given one of said caches in which said entry exists to a next highest one of said caches; and if said entry for given one of said keys is not found, entering said entry for given one of said keys in a zeroth one of said caches with said corresponding cumulative number of occurrences being initialized. - View Dependent Claims (22)
-
-
23. An event tracking engine apparatus comprising:
-
a plurality of caches; and a corresponding plurality of control circuits; said plurality of caches and said corresponding plurality of control circuits being cooperatively configured to; receive indications of multiple occurrences of a plurality of different kinds of events of interest, said indications being received as keys; store a corresponding cumulative number of occurrences for each of said different kinds of events of interest, by carrying out the following steps upon receipt of each given one of said keys; searching in a zeroth one of said caches for an entry for said given one of said keys; if an entry for said given one of said keys is found in said zeroth one of said caches, and no overflow of said corresponding cumulative number of occurrences for said entry for said key would occur by incrementing said corresponding cumulative number of occurrences, incrementing said corresponding cumulative number of occurrences; if said entry for said given one of said keys is found in said zeroth one of said caches, and overflow of said corresponding cumulative number of occurrences for said entry for said given one of said keys would occur by incrementing said corresponding cumulative number of occurrences, promoting said entry from said zeroth one of said caches in which said entry exists to a next highest one of said caches; and if said entry for said given one of said keys is not found, entering said entry for said given one of said keys in said zeroth one of said caches with said corresponding cumulative number of occurrences being initialized. - View Dependent Claims (24)
-
Specification