Method and system for monitoring the performance of a data processing system
First Claim
1. A method of monitoring the performance of a data processing system in processing data requests, said data processing system processing data requests within a multilevel memory hierarchy, said method comprising the steps of:
- passing at least one token signal attached to a data request along a particular path within said multilevel memory hierarchy; and
storing a time duration for said token signal to completely pass along said particular path if expected conditions are encountered along said particular path within said multilevel memory hierarchy, such that the performance of a data processing system requesting data along said particular path under said expected conditions is determined and is available for subsequent performance monitoring.
1 Assignment
0 Petitions
Accused Products
Abstract
A data processing system and method of monitoring the performance of a data processing system in processing data requests, where said data processing system processes data requests within a multilevel memory hierarchy. At least one token is passed with a data request along a particular path within the multilevel memory hierarchy. The time duration for the token to completely pass along the particular path is stored if expected conditions are encountered along the particular path within the multilevel memory hierarchy, such that the performance of said data processing system requesting data along that particular path under the expected conditions is determined and is available for subsequent performance monitoring.
37 Citations
46 Claims
-
1. A method of monitoring the performance of a data processing system in processing data requests, said data processing system processing data requests within a multilevel memory hierarchy, said method comprising the steps of:
-
passing at least one token signal attached to a data request along a particular path within said multilevel memory hierarchy; and
storing a time duration for said token signal to completely pass along said particular path if expected conditions are encountered along said particular path within said multilevel memory hierarchy, such that the performance of a data processing system requesting data along said particular path under said expected conditions is determined and is available for subsequent performance monitoring. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
synchronizing a plurality of performance controllers included within said data processing system, wherein said plurality of performance controllers determine if said particular path and said expected conditions are encountered.
-
-
3. The method of monitoring the performance of a data processing system in processing data requests according to claim 2, said step of synchronizing a plurality of performance controllers included within said data processing system, wherein said plurality of performance controllers determines if said particular path and said expected conditions are encountered, further comprising the step of:
initializing an interval limit and a path-condition limit within each of said plurality of performance controllers.
-
4. The method of monitoring the performance of a data processing system in processing data requests according to claim 2, said step of synchronizing a plurality of performance controllers included within said data processing system, wherein said plurality of performance controllers determine if said particular path and said expected conditions are encountered, further comprising the step of:
enabling interval counters within each of said plurality of performance controllers to begin incrementing.
-
5. The method of monitoring the performance of a data processing system in processing data requests according to claim 4, said step of enabling interval counters within each of said plurality of performance controllers to begin incrementing, further comprising the step of:
passing a first token signal to each of said plurality of performance controllers wherein said first token signal enables each of said interval counters to begin incrementing.
-
6. The method of monitoring the performance of a data processing system in processing data requests according to claim 4, said step of enabling interval counters within each of said plurality of performance controllers to begin incrementing further comprising the step of:
presetting said interval counters within each of said plurality of performance controllers to a predetermined value prior to enabling said interval counters.
-
7. The method of monitoring the performance of a data processing system in processing data requests according to claim 1, said method further comprising the step of:
selecting said particular path and said expected conditions for an interval of time during which said token signal is being passed.
-
8. The method of monitoring the performance of a data processing system in processing data requests according to claim 7, said step of selecting said particular path and said expected conditions for an interval of time during which said token signal is being passed further comprising the step of:
determining said particular path and said expected conditions by a path-condition value within each of a plurality of performance controllers, wherein each of said plurality of performance controllers is contained within a unit of said data processing system.
-
9. The method of monitoring the performance of a data processing system in processing data requests according to claim 8, said step of determining said particular path and said expected conditions by a path-condition value within each of a plurality of performance controllers, wherein each of said plurality of performance controllers is contained within a unit of said data processing system further comprising the step of:
decoding said path-condition value within each of said plurality of performance controllers.
-
10. The method of monitoring the performance of a data processing system in processing data requests according to claim 8, said step of determining said particular path and said expected conditions by a path-condition value within each of a plurality of performance controllers, wherein each of said plurality of performance controllers is contained within a unit of said data processing system further comprising the step of:
incrementing a path-condition counter for each said interval of time, wherein said path-condition counter for each said interval of time contains a path-condition value.
-
11. The method of monitoring the performance of a data processing system in processing data requests according to claim 10, said step of incrementing a path-condition counter for each said interval of time, wherein said path-condition counter for each said interval of time contains a path-condition value further comprising the steps of:
-
comparing said path-condition counter with a path-condition limit; and
in response to said path-condition counter exceeding said path-condition limit, clearing said path-condition counter.
-
-
12. The method of monitoring the performance of a data processing system in processing data requests according to claim 7, said step of selecting said particular path and said expected conditions for an interval of time during which said token signal is being passed further comprising the steps of:
-
continuously incrementing each of a plurality of interval counters within said data processing system;
comparing each of said plurality of interval counters with an interval limit associated therewith; and
clearing each of said plurality of interval counters and triggering a path-condition counter associated therewith to increment, in response to said interval counter equaling said interval limit, wherein a new interval of time is started on each of said plurality of interval counters.
-
-
13. The method of monitoring the performance of a data processing system in processing data requests according to claim 12, said method further comprising the step of:
outputting an interval interrupt to indicate that said interval of time is complete within a processor unit of said data processing system.
-
14. The method of monitoring the performance of a data processing system in processing data requests according to claim 12, said method further comprising the step of:
outputting a token drop signal to indicate to said performance controllers within said units of said multilevel memory hierarchy to drop any said token signals.
-
15. The method of monitoring the performance of a data processing system in processing data requests according to claim 1, said step of passing at least one token signal attached to a data request along a particular path within said multilevel memory hierarchy further comprising the step of:
-
passing said token signal attached to said data request from a processor unit to said multilevel memory hierarchy;
receiving said requested data at said processor unit from said multilevel memory hierarchy; and
receiving an active token signal at said processor unit with said requested data if said data request traversed said particular path and encountered said expected conditions within said multilevel memory hierarchy.
-
-
16. The method of monitoring the performance of a data processing system in processing data requests according to claim 15, said method further comprising the steps of:
-
checking if any preconditions for sending a token signal have been set; and
only sending a token signal with a data request if the data request meets said preconditions set.
-
-
17. The method of monitoring the performance of a data processing system in processing data requests according to claim 1, said step of storing a time duration for said token signal to completely pass along said particular path if expected conditions are encountered along said particular path within said multilevel memory hierarchy further comprising the steps of:
-
starting an event timer for each data request sent with a token signal attached;
capturing the time on said event timer when said data request is completed if said token signal is returned active with said data request;
storing said captured time in association with said particular path and said expected conditions.
-
-
18. The method of monitoring the performance of a data processing system in processing data requests according to claim 17, said step of storing said captured time in association with said particular path and said expected conditions further comprising the steps of:
-
accumulating the total number of token signals returned during an interval of time;
adding each event timer value to a total event time for said interval of time where a particular path and expected conditions are monitored within said interval of time; and
accumulating said total event time and said total number of token signals returned in association with said particular path and said expected conditions at the end of said interval of time.
-
-
19. The method of monitoring the performance of a data processing system in processing data requests according to claim 17, said method further comprising the steps of:
-
comparing said event timer with a threshold register value;
outputting a mapping interrupt when the event timer exceeds said threshold register value and said token signal is returned active;
capturing the data address and instructions address for said data request in response to said mapping interrupt; and
storing said captured data address and instruction address in associated with said captured time.
-
-
20. A system for monitoring the performance of a data processing system in processing data requests, said data processing system processing data requests within a multilevel memory hierarchy, said system comprising:
-
means for passing at least one token signal attached to a data request along a particular path within said multilevel memory hierarchy; and
means for storing a time duration for said token signal to completely pass along said particular path if expected conditions are encountered along said particular path within said multilevel memory hierarchy, such that the performance of a data processing system requesting data along said particular path under said expected conditions is determined and is available for subsequent performance monitoring. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
means for synchronizing a plurality of performance controllers included within said data processing system, wherein said plurality of performance controllers determine if said particular path and said expected conditions are encountered.
-
-
22. The system for monitoring the performance of a data processing system in processing data requests according to claim 21, said means for synchronizing a plurality of performance controllers included within said data processing system, wherein said plurality of performance controllers determines if said particular path and said expected conditions are encountered, further comprising:
means for initializing an interval limit and a path-condition limit within each of said plurality of performance controllers.
-
23. The system for monitoring the performance of a data processing system in processing data requests according to claim 21, said means for synchronizing a plurality of performance controllers included within said data processing system, wherein said plurality of performance controllers determine if said particular path and said expected conditions are encountered, further comprising:
means for enabling interval counters within each of said plurality of performance controllers to begin incrementing.
-
24. The system for monitoring the performance of a data processing system in processing data requests according to claim 23, said means for enabling interval counters within each of said plurality of performance controllers to begin incrementing, further comprising:
means for passing a first token signal to each of said plurality of performance controllers wherein said first token signal enables each of said interval counters to begin incrementing.
-
25. The system for monitoring the performance of a data processing system in processing data requests according to claim 23, said means for enabling interval counters within each of said plurality of performance controllers to begin incrementing further comprising:
means for presetting said interval counters within each of said plurality of performance controllers to a predetermined value prior to enabling said interval counters.
-
26. The system for monitoring the performance of a data processing system in processing data requests according to claim 20, said system further comprising:
means for selecting said particular path and said expected conditions for an interval of time during which said token signal is being passed.
-
27. The system for monitoring the performance of a data processing system in processing data requests according to claim 26, said means for selecting said particular path and said expected conditions for an interval of time during which said token signal is being passed further comprising:
a path-condition counter within each of a plurality of performance controllers which is utilized to determine said particular path and said expected conditions, wherein each of said plurality of performance controllers is contained within a unit of said data processing system.
-
28. The system for monitoring the performance of a data processing system in processing data requests according to claim 27, said system further comprising:
a path-condition decoder for determining said particular path and said expected conditions from said path-condition counter value within each of said plurality of performance controllers.
-
29. The system for monitoring the performance of a data processing system in processing data requests according to claim 28, said system further comprising:
-
means for comparing said decoded particular path and expected conditions with the actual path and actual conditions encountered by said data request;
means for dropping a token signal associated with said data request from a performance controller if said decoded particular path and expected conditions are not encountered by said data request.
-
-
30. The system for monitoring the performance of a data processing system in processing data requests according to claim 27, said system further comprising:
means for incrementing a path-condition counter for each said interval of time, wherein said path-condition counter for each said interval of time contains a path-condition value.
-
31. The system for monitoring the performance of a data processing system in processing data requests according to claim 30, said means for incrementing a path-condition counter for each said interval of time, wherein said path-condition counter for each said interval of time contains a path-condition value further comprising:
-
means for comparing said path-condition counter with a path-condition limit; and
means for clearing said path-condition counter, in response to said path-condition counter exceeding said path-condition limit.
-
-
32. The system for monitoring the performance of a data processing system in processing data requests according to claim 26, said means for selecting said particular path and said expected conditions for an interval of time during which said token signal is being passed further comprising:
-
a system clock continuously incrementing each of a plurality of interval counters within said data processing system;
a comparitor for comparing each of said plurality of interval counters with an interval limit associated therewith; and
means for clearing each of said plurality of interval counters and triggering a path-condition counter associated therewith to increment, in response to said interval counter equaling said interval limit, wherein a new interval of time is started on each of said plurality of interval counters.
-
-
33. The system for monitoring the performance of a data processing system in processing data requests according to claim 32, wherein said comparitor outputs an interval interrupt to indicate that said interval of time is complete within a processor unit of said data processing system.
-
34. The system for monitoring the performance of a data processing system in processing data requests according to claim 32, wherein said comparitor outputs a token drop signal to indicate to said performance controllers within said units of said multilevel memory hierarchy to drop any said token signals.
-
35. The system for monitoring the performance of a data processing system in processing data requests according to claim 34, wherein said all token signals are dropped during a token drop window of time.
-
36. The system for monitoring the performance of a data processing system in processing data requests according to claim 20, said means for passing at least one token signal attached to a data request along a particular path-within said multilevel memory hierarchy further comprising:
-
means for passing said token signal attached to said data request from a processor unit to said multilevel memory hierarchy;
means for receiving said requested data at said processor unit from said multilevel memory hierarchy; and
means for receiving an active token signal at said processor unit with said requested data if said data request traversed said particular path and encountered said expected conditions within said multilevel memory hierarchy.
-
-
37. The system for monitoring the performance of a data processing system in processing data requests according to claim 36, said system further comprising:
-
means for checking if any preconditions for sending a token signal have been set; and
means for only sending a token signal with a data request if the data request meets said preconditions set.
-
-
38. The system for monitoring the performance of a data processing system in processing data requests according to claim 36, said system further comprising:
-
means for checking if any postconditions for receiving a token signal have been set;
means for only receiving a token signal with a data request if the data request meets said postconditions set.
-
-
39. The system for monitoring the performance of a data processing system in processing data requests according to claim 20, said means for storing a time duration for said token signal to completely pass along said particular path if expected conditions are encountered along said particular path within said multilevel memory hierarchy further comprising:
-
means for starting an event timer for each data request sent with a token signal attached;
means for capturing the time on said event timer when said data request is completed if said token signal is returned active with said data request;
means for storing said captured time in association with said particular path and said expected conditions.
-
-
40. The system for monitoring the performance of a data processing system in processing data requests according to claim 39, said means for starting an event timer for each data request sent with a token signal attached further comprising:
means for controlling the start of said event timer for a data request sent with a token attached when a particular event occurs to said data request.
-
41. The system for monitoring the performance of a data processing system in processing data requests according to claim 39, said means for storing said captured time in association with said particular path and said expected conditions further comprising:
-
means for accumulating the total number of token signals returned during an interval of time;
means for adding each event timer value to a total event time for said interval of time where a particular path and expected conditions are monitored within said interval of time; and
a particular data storage area for accumulating said total event time and said total number of token signals returned in association with said particular path and said expected conditions at the end of each said interval of time.
-
-
42. The system for monitoring the performance of a data processing system in processing data requests according to claim 39, said system further comprising:
-
means for comparing said event timer with a threshold register value;
means for outputting a mapping interrupt when the event timer exceeds said threshold register value and said token signal is returned active;
means for capturing the data address and instructions address for said data request in response to said mapping interrupt; and
a data storage area for storing said captured data address and instruction address in associated with said captured time.
-
-
43. A program product for monitoring the performance of a data processing system, said program product comprising:
-
a data processing system usable medium;
a performance controller encoded with said data processing system usable medium that, in response to receiving an active token signal with requested data, stores a time duration for said token signal to completely pass along a particular path if expected conditions are encountered along said particular path. - View Dependent Claims (44, 45, 46)
passes said token signal attached to said data request from a processor unit to said multilevel memory hierarchy;
receives said requested data at said processor unit from said multilevel memory hierarchy; and
receives an active token signal at said processor unit with said requested data if said data request traversed said particular path and encountered said expected conditions within said multilevel memory hierarchy.
-
-
45. The program product of claim 43, wherein said performance controller:
-
starts an event timer for each data request sent with a token signal attached;
captures the time on said event timer when said data request is completed if said token signal is returned active with said data request;
stores said captured time in association with said particular path and said expected conditions.
-
-
46. The program product of claim 45, wherein said performance controller:
-
accumulates the total number of token signals returned during an interval of time;
adds each event timer value to a total event time for said interval of time where a particular path and expected conditions are monitored within said interval of time.
-
Specification