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

Facilities for detailed software performance analysis in a multithreaded processor

Assignee: International Business Machines Corp
•
Filing: 1997-12-11
•
Granted: 2001-07-03
•
Expires: 2017-12-11
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method, apparatus, and article of manufacture for monitoring performance of an application or a system program executed by a multithreaded processor arranged and configured to process a plurality of threads and facilitate thread switch. The low-level invisible events, such as cache misses, or other events of interest of an application or a system program, are detected and recorded by using a software monitor program running on a thread of the multithreaded processor via thread switching techniques. The monitoring thread gains control once a selected event is detected while executing the application or system program, and it relinquishes the control after completing the recording of the selected event. The recorded information allows one to dynamically profile the application or the system program and to provide insight into the performance characteristics of the application or the system program.

Inventors

  • 👤 William Thomas Flynn

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 13:12
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/30; G06F11/34; G06F11/3466; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3836; G06F9/3851; G06F9/46; G06F9/48; G06F9/4806; G06F9/4843; G06F9/54; G06F9/542; G06F2201/00; G06F2201/86; G06F2201/865; G06F2201/88; G06F2201/885

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 168 words
A multithreaded processor, arranged and configured to process a plurality of threads and facilitate thread switch, for monitoring performance of the application executed by the processor, comprising: (a) a first thread arranged and configured for executing the application on the first thread; (b) a second thread arranged and configured for executing recording of at least one selectable thread switch event upon detection of the selectable thread switch event during execution of the application on the first thread; and (c) a thread switch controller for detecting the selectable thread switch event and controlling thread switch between the first thread and the second thread, wherein in response to detection of the selectable thread switch event, the thread switch controller switches processing from the first thread to the second thread, whereby the second thread records information of the selectable thread switch event, and upon completion of recording, the thread switch controller switches processing from the second thread to a thread other than the second thread to continue execution of the application.
Claim 2
Dependent Claim 168 words
A multithreaded processor, arranged and configured to process a plurality of threads and facilitate thread switch, for monitoring performance of the application executed by the processor, comprising: (a) a first thread arranged and configured for executing the application on the first thread; (b) a second thread arranged and configured for executing recording of at least one selectable thread switch event upon detection of the selectable thread switch event during execution of the application on the first thread; and (c) a thread switch controller for detecting the selectable thread switch event and controlling thread switch between the first thread and the second thread, wherein in response to detection of the selectable thread switch event, the thread switch controller switches processing from the first thread to the second thread, whereby the second thread records information of the selectable thread switch event, and upon completion of recording, the thread switch controller switches processing from the second thread to a thread other than the second thread to continue execution of the application.
Claim 3
Dependent Claim 69 words
A multithreaded processor of claim 1 , wherein the thread switch controller comprises a thread switch control register including a first bit for forcing a thread switch, a second bit for indicating whether the thread switch has occurred, a third bit for blocking a thread switch, a fourth bit for allowing exactly two thread switches to occur, and a set of bits for encoding a latest thread switch reason.
Claim 4
Dependent Claim 24 words
A multithreaded processor of claim 1 , wherein the first thread is normally an active thread, the second thread is normally a dormant thread.
Claim 5
Dependent Claim 42 words
A multithreaded processor of claim 2 , wherein the thread switch control register is an architected software-accessible special purpose register in which the second bit, the third bit, and the set of bits are set by hardware operatively connecting to the processor.
Claim 6
Dependent Claim 53 words
A multithreaded processor of claim 1 , wherein the selectable thread switch event includes at least one from the group consisting of: L1 data cache miss, L2 data cache miss, L1 instruction cache miss, L2 instruction cache miss, instruction translation lookaside buffer (TLB) miss, data translation lookaside buffer (TLB) miss, and thread time-out.
Claim 7
Independent Claim 113 words
A method of monitoring at least one selectable event of at least one application by a multithreaded processor which is arranged and configured to process a plurality of threads and facilitate thread switch, the method comprising the steps of: (a) executing the application on a first thread of the multithreaded processor; (b) detecting the selectable event of the application by a thread switch controller; (c) switching processing from the first thread to a second thread responsive to detecting the selectable event; (d) executing the second thread to record information of the selectable event; and (e) switching processing from the second thread to a thread other than the second thread, upon completion of recording.
Claim 8
Independent Claim 113 words
A method of monitoring at least one selectable event of at least one application by a multithreaded processor which is arranged and configured to process a plurality of threads and facilitate thread switch, the method comprising the steps of: (a) executing the application on a first thread of the multithreaded processor; (b) detecting the selectable event of the application by a thread switch controller; (c) switching processing from the first thread to a second thread responsive to detecting the selectable event; (d) executing the second thread to record information of the selectable event; and (e) switching processing from the second thread to a thread other than the second thread, upon completion of recording.
Claim 9
Dependent Claim 66 words
The method of claim 6 , the thread switch controller providing a thread switch control register including a first bit for forcing a thread switch, a second bit for indicating whether the thread switch has occurred, a third bit for blocking thread switch, a fourth bit for allowing exactly two thread switches to occur, and a set of bits for encoding a latest thread switch reason.
Claim 10
Dependent Claim 22 words
The method of claim 6 , the first thread being normally an active thread, the second thread being normally a dormant thread.
Claim 11
Dependent Claim 40 words
The method of claim 7 , the thread switch control register being an architected software-accessible special purpose register in which the second bit, the third bit, and the set of bits are set by hardware operatively connecting to the processor.
Claim 12
Dependent Claim 50 words
The method of claim 6 , wherein the selectable event includes at least one from the group consisting of: L1 data cache miss, L2 data cache miss, L1 instruction cache miss, L2 instruction cache miss, instruction translation lookaside buffer (TLB) miss, data translation lookaside buffer (TLB) miss, and thread time-out.
Claim 13
Dependent Claim 130 words
An article of manufacture for a computer-based user-interface, the article of manufacture comprising a computer readable medium having instructions for causing a computer to perform a method, by a multithreaded processor arranged and configured to process a plurality of threads and facilitate thread switch, the method comprising the steps of: (a) executing the application on a first thread of the multithreaded processor; (b) detecting at least one selectable event of the application by a thread switch controller of the multithreaded processor; (c) switching processing from the first thread to a second thread responsive to detecting the selectable event; (d) executing the second thread to record information of the selectable event; and (e) switching processing from the second thread to a thread other than the second thread, upon completion of recording.
Claim 14
Dependent Claim 130 words
An article of manufacture for a computer-based user-interface, the article of manufacture comprising a computer readable medium having instructions for causing a computer to perform a method, by a multithreaded processor arranged and configured to process a plurality of threads and facilitate thread switch, the method comprising the steps of: (a) executing the application on a first thread of the multithreaded processor; (b) detecting at least one selectable event of the application by a thread switch controller of the multithreaded processor; (c) switching processing from the first thread to a second thread responsive to detecting the selectable event; (d) executing the second thread to record information of the selectable event; and (e) switching processing from the second thread to a thread other than the second thread, upon completion of recording.
Claim 15
Dependent Claim 147 words
A computer system, comprising: a multithreaded processor, said multithreaded processor supporting the concurrent execution of a plurality of threads and including: (a) a plurality of sets of registers, each set corresponding to a respective thread, and (b) thread switch logic, said thread switch logic switching execution from one of said plurality of threads to another of said plurality of threads in response to detection of a thread switch condition; and a performance monitor embodied as a plurality of processor-executable instructions in a monitoring thread stored on said computer system, wherein said monitoring thread records the occurrence of a thread switch event responsive to said thread switch logic switching execution from a monitored thread to said monitoring thread, and wherein said monitoring thread causes said thread switch logic to switch execution to a thread other than said monitoring thread after recording the occurrence of said thread switch event.
Claim 16
Dependent Claim 147 words
A computer system, comprising: a multithreaded processor, said multithreaded processor supporting the concurrent execution of a plurality of threads and including: (a) a plurality of sets of registers, each set corresponding to a respective thread, and (b) thread switch logic, said thread switch logic switching execution from one of said plurality of threads to another of said plurality of threads in response to detection of a thread switch condition; and a performance monitor embodied as a plurality of processor-executable instructions in a monitoring thread stored on said computer system, wherein said monitoring thread records the occurrence of a thread switch event responsive to said thread switch logic switching execution from a monitored thread to said monitoring thread, and wherein said monitoring thread causes said thread switch logic to switch execution to a thread other than said monitoring thread after recording the occurrence of said thread switch event.
Claim 17
Dependent Claim 44 words
A computer system of claim 12 , wherein the thread switch logic comprises a software-accessible thread switch control register having a plurality of thread switch control bits, wherein at least one of said control bits is set by hardware operatively connected to the processor.
Claim 18
Dependent Claim 21 words
A computer system of claim 13 , wherein said thread switch control bits include a bit for forcing a thread switch.
Claim 19
Dependent Claim 25 words
A computer system of claim 13 , wherein said thread switch control bits include a plurality of bits specifying a reason for a thread switch.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-07-02 2005-01-01 2005-07-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-07-02 2009-01-01 2009-07-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-07-02 2013-01-01 2013-07-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag