Apparatus and method for thread progress tracking
First Claim
1. An apparatus for thread progress tracking, the apparatus comprising:
- a processor comprising;
a selector configured to select a thread included in an application program, wherein the thread includes a plurality of instructions;
a controller configured to determine, based on a predetermined criterion, an execution scheme for each instruction in the thread, wherein the execution scheme for each instruction on the thread is one of;
an effective execution scheme and a non-effective execution scheme, wherein the effective execution scheme has an execution time that is uniform, and wherein the non-effective execution scheme has a delayed cycle included and has an execution time that is non-uniform;
an effective progress counter (EPC) configured to generate an effective progress index (EPI) by accumulating an execution time of each instruction determined to have an effective execution scheme, and by not accumulating an execution time of each instruction determined to have a non-effective execution scheme; and
a kernel progress count (KPC) configured to generate a kernel progress index (KPI) by accumulating a cycle expended to operate a system kernel while the thread occupies a processor and the thread is executed, and by not accumulating an execution time of each instruction determined to have an effective execution scheme.
2 Assignments
0 Petitions
Accused Products
Abstract
Provided is a method and apparatus for measuring a progress or a performance of an application program in a computing environment using a micro-architecture. An apparatus for thread progress tracking may select a thread included in an application program, may determine, based on a predetermined criterion, whether an execution scheme for at least one instruction included in the thread corresponds to an effective execution scheme in which an execution time is uniform or a non-effective execution scheme in which a delayed cycle is included and the execution time is non-uniform, and may generate an effective progress index (EPI) by accumulating an execution time of an instruction executed by the effective execution scheme other than an instruction executed by the non-effective execution scheme.
-
Citations
21 Claims
-
1. An apparatus for thread progress tracking, the apparatus comprising:
a processor comprising; a selector configured to select a thread included in an application program, wherein the thread includes a plurality of instructions; a controller configured to determine, based on a predetermined criterion, an execution scheme for each instruction in the thread, wherein the execution scheme for each instruction on the thread is one of;
an effective execution scheme and a non-effective execution scheme, wherein the effective execution scheme has an execution time that is uniform, and wherein the non-effective execution scheme has a delayed cycle included and has an execution time that is non-uniform;an effective progress counter (EPC) configured to generate an effective progress index (EPI) by accumulating an execution time of each instruction determined to have an effective execution scheme, and by not accumulating an execution time of each instruction determined to have a non-effective execution scheme; and a kernel progress count (KPC) configured to generate a kernel progress index (KPI) by accumulating a cycle expended to operate a system kernel while the thread occupies a processor and the thread is executed, and by not accumulating an execution time of each instruction determined to have an effective execution scheme. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
16. A method for thread progress tracking, the method comprising:
-
selecting a thread included in an application program;
wherein the thread includes a plurality of instructions;determining, based on a predetermined criterion, an execution scheme for each instruction in the thread, wherein the execution scheme for each instruction in the thread is one of;
an effective execution scheme and a non-effective execution scheme, wherein the effective execution scheme has an execution time that is uniform, and wherein the non-effective execution scheme has a delayed cycle included and has an execution time that is non-uniform;generating an effective progress index (EPI) based on an effective progress counter (EPC) that accumulates an execution time of an instruction determined to have an effective execution scheme, and does not accumulate an execution time of each instruction determined to have a non-effective execution scheme; and generating a kernel progress index (KPI) by accumulating a cycle expended to operate a system kernel while the thread occupies a processor and the thread is executed, and by not accumulating an execution time of each instruction determined to have an effective execution scheme. - View Dependent Claims (17, 18, 19)
-
-
20. A method for thread progress tracking, the method comprising:
-
selecting a thread prepared according to an instruction to be executed on a scheduler; setting an effective progress index (EPI) stored in the thread to an initial value of an effective progress counter (EPC), and setting a kernel progress index (KPI) stored in the thread to an initial value of a kernel progress counter (KPC); determining whether a flag value set to indicate that a non-effective function in use is set in a thread control block of the thread; suspending the EPC by setting a software non-effective execution scheme (SWNE) signal, and operating the KPC by setting a kernel progress software (KPSW) signal when the flag value is set; and correcting an increment of an EPC not used for effectively executing code of the thread, operating the suspended EPC by clearing the SWNE signal, and suspending the KPC by clearing the KPSW signal when the flag value fails to be set.
-
-
21. A method for thread progress tracking, the method comprising:
-
suspending an effective progress counter (EPC) by setting a software non-effective execution scheme (SWNE) signal, and operating a kernel progress counter (KPC) by setting a kernel progress software (KPSW) signal in response to a schedule event occurring in a thread in a running state; storing a value of the suspended EPC to be a value of an effective progress index (EPI) in a memory in response to a context switch event occurring in a state in which the EPC is suspended; and correcting an increment of an EPC not used for effectively executing code of the thread, operating the suspended EPC by clearing the SWNE signal, and suspending the KPC by clearing the KPSW signal in response to the schedule event being terminated in a state in which the EPC is suspended.
-
Specification