최소 단어 이상 선택하여야 합니다.
최대 10 단어까지만 선택 가능합니다.
다음과 같은 기능을 한번의 로그인으로 사용 할 수 있습니다.
NTIS 바로가기다음과 같은 기능을 한번의 로그인으로 사용 할 수 있습니다.
DataON 바로가기다음과 같은 기능을 한번의 로그인으로 사용 할 수 있습니다.
Edison 바로가기다음과 같은 기능을 한번의 로그인으로 사용 할 수 있습니다.
Kafe 바로가기국가/구분 | United States(US) Patent 등록 |
---|---|
국제특허분류(IPC7판) |
|
출원번호 | US-0682385 (2003-10-09) |
등록번호 | US-8381037 (2013-02-19) |
발명자 / 주소 |
|
출원인 / 주소 |
|
인용정보 | 피인용 횟수 : 7 인용 특허 : 361 |
A method, an apparatus, and a computer program product in a data processing system are presented for using hardware assistance for gathering performance information that significantly reduces the overhead in gathering such information. Performance indicators are associated with instructions or memor
A method, an apparatus, and a computer program product in a data processing system are presented for using hardware assistance for gathering performance information that significantly reduces the overhead in gathering such information. Performance indicators are associated with instructions or memory locations, and processing of the performance indicators enables counting of events associated with execution of those instructions or events associated with accesses to those memory locations. The performance information that has been dynamically gathered from the assisting hardware is available to the software application during runtime in order to autonomically affect the behavior of the software application, particularly to enhance its performance. For example, the counted events may be used to autonomically control an execution-path selection within the software application.
1. A method in a data processing system for gathering performance information associated with executing instructions, the method comprising: compiling source code statements, by a compiler, to generate instructions for a processor in the data processing system;generating, by the compiler, indicators
1. A method in a data processing system for gathering performance information associated with executing instructions, the method comprising: compiling source code statements, by a compiler, to generate instructions for a processor in the data processing system;generating, by the compiler, indicators to be processed by the processor during execution of the instructions, wherein the indicators are data values that are retrieved from memory during execution of the instructions and specify counting of events that are associated with execution of the instructions or are data values that are retrieved from memory during execution of the instructions and specify counting of events that are associated with accesses to memory locations, and wherein the indicators specify counting of events on a per instruction or a per memory location basis such that only the events specified by the indicators are counted to form the performance information; andgenerating instructions to select an execution path within a set of instructions based on a count value in the performance information that represents counted events, wherein a branch instruction that selects the execution path is contained in an object code block that contains the instructions that are executed while the indicators are processed. 2. The method of claim 1 further comprising: processing, by the compiler, source code statements that control the selection of the execution path. 3. The method of claim 1 further comprising: determining, by the compiler, alternative ways to compile the source code statements;compiling the source code statements in multiple ways to generate multiple sets of instructions for the compiled source code statements;and placing each set of instructions in a different execution path to be selected based on the count value. 4. The method of claim 3 further comprising: identifying a compiler directive among the source code statements that specifies a type of autonomic monitoring to be implemented by the compiler; andidentifying alternative ways to compile the source code statements based on the compiler directive. 5. The method of claim 4 further comprising: specifying an event in the compiler directive to be autonomically monitored. 6. The method of claim 1 further comprising: determining, by the compiler, alternative ways to compile a subroutine within the source code statements;generating a plurality of compiled versions of the subroutine, wherein each compiled version has been compiled differently from other compiled versions of the subroutine; andplacing the plurality of compiled versions of the subroutine in different execution paths to be selected based on the count value. 7. The method of claim 1 further comprising: processing, by the compiler, at least one compiler directive among the source code statements that specifies to the compiler the selection of the execution path. 8. The method of claim 1, further comprising: determining whether a given instruction is associated with one of the indicators. 9. The method of claim 8, further comprising: responsive to determining that a given instruction is associated with one of the indicators, sending a signal to a performance monitoring unit of the processor; andresponsive to the performance monitoring unit receiving the signal, the performance monitoring unit counting events associated with the given instruction. 10. The method of claim 9, wherein the determining and sending steps are performed by a cache of the processor. 11. A computer program product on a computer readable recordable-type storage medium for use in a data processing system that executes instructions, the computer program product comprising: instructions for compiling source code statements to generate instructions for a processor in the data processing system;instructions for generating, by the compiler, indicators to be processed, by the processor, during execution of the instructions, wherein the indicators are data values that are retrieved from memory during execution of the instructions and specify counting of events that are associated with execution of the instructions or are data values that are retrieved from memory during execution of the instructions and specify counting of events that are associated with accesses to memory locations, and wherein the indicators specify counting of events on a per instruction or a per memory location basis such that only the events specified by the indicators are counted; andinstructions for generating instructions to select an execution path within a set of instructions based on a count value that represents counted events, wherein a branch instruction that selects the execution path is contained in an object code block that contains the instructions that are executed while the indicators are processed. 12. The computer program product of claim 11 further comprising: instructions for processing, by the compiler, source code statements that control the selection of the execution path. 13. The computer program product of claim 11 further comprising: instructions for determining, by the compiler, alternative ways to compile the source code statements;instructions for compiling the source code statements in multiple ways to generate multiple sets of instructions for the compiled source code statements; andinstructions for placing each set of instructions in a different execution path to be selected based on the count value. 14. The computer program product of claim 13 further comprising: instructions for identifying a compiler directive among the source code statements that specifies a type of autonomic monitoring to be implemented by the compiler; andinstructions for identifying alternative ways to compile the source code statements based on the compiler directive. 15. The computer program product of claim 14 further comprising: instructions for specifying an event in the compiler directive to be autonomically monitored. 16. The computer program product of claim 11 further comprising: instructions for determining, by the compiler, alternative ways to compile a subroutine within the source code statements;instructions for generating a plurality of compiled versions of the subroutine, wherein each compiled version has been compiled differently from other compiled versions of the subroutine; andinstructions for placing the plurality of compiled versions of the subroutine in different execution paths to be selected based on the count value. 17. The computer program product of claim 11 further comprising: instructions for processing, by the compiler, compiler directives among the source code statements that specify the selection of the execution path. 18. An apparatus in a data processing system that executes instructions, the apparatus comprising a data processor: a compiler wherein the compiler compiles source code statements to generate instructions for a processor in the data processing system generates indicators to be processed during execution of the instructions, wherein the indicators are data values that are retrieved from memory during execution of the instructions and specify counting of events that are associated with execution of the instructions or are data values that are retrieved from memory during execution of the instructions and specify counting of events that are associated with accesses to memory location and wherein the indicators specify counting of events on a per instruction or a per memory location basis such that only the events specified by the indicators are counted to form the performance information; and generates instructions to select an execution path within a set of instructions based on a count value that represents counted events, wherein a branch instruction that selects the execution path is contained in an object code block that contains the instructions that are executed while the indicators are processed. 19. The apparatus of claim 18 wherein the compiler processes source code statements that control the selection of the execution path. 20. The apparatus of claim 18 further comprising: means for determining, by the compiler, alternative ways to compile the source code statements; means for compiling the source code statements in multiple ways to generate multiple sets of instructions for the compiled source code statements; andmeans for placing each set of instructions in a different execution path to be selected based on the count value. 21. The apparatus of claim 20 further comprising: means for identifying a compiler directive among the source code statements that specifies a type of autonomic monitoring to be implemented by the compiler; andmeans for identifying alternative ways to compile the source code statements based on the compiler directive. 22. The apparatus of claim 21 further comprising: means for specifying an event in the compiler directive to be autonomically monitored. 23. The apparatus of claim 18 further comprising: means for determining, by the compiler, alternative ways to compile a subroutine within the source code statements;means for generating a plurality of compiled versions of the subroutine, wherein each compiled version has been compiled differently from other compiled versions of the subroutine; andmeans for placing the plurality of compiled versions of the subroutine in different execution paths to be selected based on the count value. 24. The apparatus of claim 18 further comprising: means for processing, by the compiler, at least one compiler directive among the source code statements that specifies the selection of the execution path.
Copyright KISTI. All Rights Reserved.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.