← Back to Patent Explorer
US5751945A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system

Assignee: International Business Machines Corp
•
Filing: 1995-10-02
•
Granted: 1998-05-12
•
Expires: 2015-10-02
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method for identifying bottlenecks within a processing system, the processing system including a plurality of performance monitor counters (PMCs) and at least one monitor mode control register (MMCR) to configure the operations of at least one of the PMCs, includes, for a predetermined sampling period, counting a number of cycles that a dispatch unit is stalled, counting a number of cycles that each of a plurality of execution units is stalled, counting a number of cycles that a load/store unit is stalled, and counting a number of cycles that a completion unit is stalled. The counting in the units is performed to identify the relative effect of stalls occurring within each unit during processing to produce an overview of relative effect of the stalling of each unit on the total system bottleneck conditions.

Inventors

  • 👤 Frank Eliot Levine
  • 👤 Charles Philip Roth
  • 👤 Edward Hugh Welbon

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 16:20
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/30; G06F11/34; G06F11/3466; G06F11/348; G06F11/3409; G06F11/3419; G06F11/3423; G06F2201/00; G06F2201/86; G06F2201/88; G06F2201/885

Claims Analysis

Total Claims: 30
Claim 1
Independent Claim 160 words
A method for identifying bottlenecks within a processing system, the processing system including special purpose registers, a number of the special purpose registers designated as a plurality of performance monitor counters (PMCs) and at least one monitor mode control register (MMCR) to configure the operations of at least one of the PMCs, the method comprising: (a) counting a number of cycles that a dispatch unit is stalled during a predetermined sampling period; (b) counting a number of cycles that each of a plurality of execution units is stalled during the predetermined sampling period; (c) counting a number of cycles that a load/store unit is stalled during the predetermined sampling period; and (d) counting a number of cycles that a completion unit is stalled during the predetermined sampling period, wherein the steps of counting are performed with the plurality of PMCs to identify a number of stalls occurring within each unit during processing to produce an overview of system bottleneck conditions.
Claim 2
Independent Claim 160 words
A method for identifying bottlenecks within a processing system, the processing system including special purpose registers, a number of the special purpose registers designated as a plurality of performance monitor counters (PMCs) and at least one monitor mode control register (MMCR) to configure the operations of at least one of the PMCs, the method comprising: (a) counting a number of cycles that a dispatch unit is stalled during a predetermined sampling period; (b) counting a number of cycles that each of a plurality of execution units is stalled during the predetermined sampling period; (c) counting a number of cycles that a load/store unit is stalled during the predetermined sampling period; and (d) counting a number of cycles that a completion unit is stalled during the predetermined sampling period, wherein the steps of counting are performed with the plurality of PMCs to identify a number of stalls occurring within each unit during processing to produce an overview of system bottleneck conditions.
Claim 3
Dependent Claim 51 words
The method of claim 1 wherein the step (a) further comprises: (a1) counting a number of cycles a dispatch unit is stalled with at least one PMC; (a2) identifying an instruction associated with a stall; and (a3) identifying a lack of an execution element for the instruction associated with the stall.
Claim 4
Dependent Claim 19 words
The method of claim 1 wherein step (d) further comprises: (d1) determining dependencies producing the completion unit stall count.
Claim 5
Dependent Claim 17 words
The method of claim 3 wherein step (d1) further comprises: (d2) identifying an instruction causing a stall.
Claim 6
Dependent Claim 19 words
The method of claim 1 further comprising: (e) identifying at least one section of code causing the counted stalls.
Claim 7
Dependent Claim 22 words
The method of claim 5 further comprising: (f) altering the at least one section of code to reduce the number of stalls.
Claim 8
Independent Claim 97 words
A method for monitoring stalls in a completion unit of a processing system, the processing system including special purpose registers, a number of the special purpose registers designated as a plurality of performance monitor counters (PMCs) and at least one monitor mode control register (MMCR) to configure the operations of at least one of the PMCs, the method comprising: (a) counting a number of stalls in the completion unit with at least one of the PMCs during a predetermined sampling period; and (b) identifying a cause of each of the counted stalls during the predetermined sampling period.
Claim 9
Independent Claim 97 words
A method for monitoring stalls in a completion unit of a processing system, the processing system including special purpose registers, a number of the special purpose registers designated as a plurality of performance monitor counters (PMCs) and at least one monitor mode control register (MMCR) to configure the operations of at least one of the PMCs, the method comprising: (a) counting a number of stalls in the completion unit with at least one of the PMCs during a predetermined sampling period; and (b) identifying a cause of each of the counted stalls during the predetermined sampling period.
Claim 10
Dependent Claim 25 words
The method of claim 7 in which step (b) comprises identifying which unit within the processing system is causing the longest duration of the stall(s).
Claim 11
Dependent Claim 19 words
The method of claim 8 further comprising: (c) altering system code to reduce the total amount of stall time.
Claim 12
Dependent Claim 12 words
The method of claim 8 wherein the cause comprises an unfinished instruction.
Claim 13
Dependent Claim 13 words
The method of claim 10 wherein the cause comprises an unfinished load instruction.
Claim 14
Dependent Claim 13 words
The method of claim 11 wherein the cause comprises an unfinished store instruction.
Claim 15
Independent Claim 162 words
A system for identifying bottlenecks within a processing system, the processing system including special purpose registers, a number of the special purpose registers designated as a plurality of performance monitor counters (PMCs) and at least one monitor mode control register (MMCR) to configure the operations of at least one of the PMCs, the system comprising a circuit for counting a number of cycles that a dispatch unit is stalled during a predetermined sampling period; for counting a number of cycles that each of a plurality of execution units is stalled during the predetermined sampling period; for counting a number of cycles that a load/store unit is stalled during the predetermined sampling period; and for counting a number of cycles that a completion unit is stalled during the predetermined sampling period, wherein the steps of counting are performed with the plurality of PMCs to identify a number of stalls occurring within each unit during processing to produce an overview of system bottleneck conditions.
Claim 16
Independent Claim 162 words
A system for identifying bottlenecks within a processing system, the processing system including special purpose registers, a number of the special purpose registers designated as a plurality of performance monitor counters (PMCs) and at least one monitor mode control register (MMCR) to configure the operations of at least one of the PMCs, the system comprising a circuit for counting a number of cycles that a dispatch unit is stalled during a predetermined sampling period; for counting a number of cycles that each of a plurality of execution units is stalled during the predetermined sampling period; for counting a number of cycles that a load/store unit is stalled during the predetermined sampling period; and for counting a number of cycles that a completion unit is stalled during the predetermined sampling period, wherein the steps of counting are performed with the plurality of PMCs to identify a number of stalls occurring within each unit during processing to produce an overview of system bottleneck conditions.
Claim 17
Dependent Claim 51 words
The system of claim 13 in which the circuit further provides for counting a number of cycles a dispatch unit is stalled with at least one PMC; for identifying an instruction associated with a stall; and for identifying a lack of an execution element for the instruction associated with the stall.
Claim 18
Dependent Claim 20 words
The system of claim 13 in which the circuit further provides for determining dependencies producing the completion unit stall count.
Claim 19
Dependent Claim 18 words
The system of claim 15 in which the circuit further provides for identifying an instruction causing a stall.
Claim 20
Dependent Claim 23 words
The system of claim 13 in which the circuit further provides for identifying at least one section of code causing the counted stalls.
Claim 21
Dependent Claim 26 words
The system of claim 17 in which the circuit further provides for altering the at least one section of code to reduce the number of stalls.
Claim 22
Independent Claim 99 words
A system for monitoring stalls in a completion unit of a processing system, the processing system including special purpose registers, a number of the special purpose registers designated as a plurality of performance monitor counters (PMCS) and at least one monitor mode control register (MMCR) to configure the operations of at least one of the PMCs, the system comprising a circuit for counting a number of stalls in the completion unit with at least one of the PMCs during a predetermined sampling period; and for identifying a cause of each of the counted stalls during the predetermined sampling period.
Claim 23
Independent Claim 99 words
A system for monitoring stalls in a completion unit of a processing system, the processing system including special purpose registers, a number of the special purpose registers designated as a plurality of performance monitor counters (PMCS) and at least one monitor mode control register (MMCR) to configure the operations of at least one of the PMCs, the system comprising a circuit for counting a number of stalls in the completion unit with at least one of the PMCs during a predetermined sampling period; and for identifying a cause of each of the counted stalls during the predetermined sampling period.
Claim 24
Dependent Claim 23 words
The system of claim 19 in which the circuit further provides for identifying which unit within the processing system is causing the stall.
Claim 25
Dependent Claim 21 words
The system of claim 20 in which the circuit further provides for altering system code to reduce the number of stalls.
Claim 26
Dependent Claim 12 words
The system of claim 20 wherein the cause comprises an unfinished instruction.
Claim 27
Dependent Claim 13 words
The system of claim 22 wherein the cause comprises an unfinished load instruction.
Claim 28
Dependent Claim 13 words
The system of claim 23 wherein the cause comprises an unfinished store instruction.
Claim 29
Dependent Claim 165 words
A computer readable medium including program instructions for identifying bottlenecks within a processing system, the processing system including special purpose registers, a number of the special purpose registers designated as a plurality of performance monitor counters (PMCs) and at least one monitor mode control register (MMCR) to configure the operations of at least one of the PMCs, the instructions comprising: (a) counting a number of cycles that a dispatch unit is stalled during a predetermined sampling period; (b) counting a number of cycles that each of a plurality of execution units is stalled during the predetermined sampling period; (c) counting a number of cycles that a load/store unit is stalled during the predetermined sampling period; and (d) counting a number of cycles that a completion unit is stalled during the predetermined sampling period, wherein the steps of counting are performed with the plurality of PMCs to identify a number of stalls occurring within each unit during processing to produce an overview of system bottleneck conditions.
Claim 30
Dependent Claim 165 words
A computer readable medium including program instructions for identifying bottlenecks within a processing system, the processing system including special purpose registers, a number of the special purpose registers designated as a plurality of performance monitor counters (PMCs) and at least one monitor mode control register (MMCR) to configure the operations of at least one of the PMCs, the instructions comprising: (a) counting a number of cycles that a dispatch unit is stalled during a predetermined sampling period; (b) counting a number of cycles that each of a plurality of execution units is stalled during the predetermined sampling period; (c) counting a number of cycles that a load/store unit is stalled during the predetermined sampling period; and (d) counting a number of cycles that a completion unit is stalled during the predetermined sampling period, wherein the steps of counting are performed with the plurality of PMCs to identify a number of stalls occurring within each unit during processing to produce an overview of system bottleneck conditions.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-05-11 2001-11-10 2002-05-12 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-05-11 2005-11-10 2006-05-12 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-05-11 2009-11-10 2010-05-12 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag