Claims
- 1. A method for real-time power profiling of a target system comprising the steps of:
instrumenting an embedded application to be executed on the target system, wherein the embedded application is comprised of a plurality of software units, to identify each software unit of the plurality of software units for which execution data is to be generated; generating the execution data as each identified software unit is executed on the target system; capturing power measurement data as each identified software unit is executed on the target system; passing the execution data to a host system as the execution data is generated without halting the embedded application; and correlating the execution data with the power measurement data to determine a power consumption for each identified software unit.
- 2. The method of claim 1 wherein each identified software unit is a function of a high level programming language.
- 3. The method of claim 2 wherein the execution data comprises a set of program counter values corresponding to at least entry points and exit points of the identified functions taken in the execution order of the identified functions.
- 4. The method of claim 3 wherein the power measurement data comprises a set of power measurements in the order each power measurement was taken wherein each power measurement in the set corresponds to an execution period of a function of the plurality of functions.
- 5. The method of claim 4 wherein the step of correlating further comprises:
for each program counter value in turn of the set of program counter values
a. determining the identity of a first function associated with the program counter value; b. if the program counter value corresponds to an entry point of the first function then
b-1. if a runtime call stack is not empty then
attributing a next power measurement of the set of power measurements to a second function associated with a second function identifier currently at a top of the runtime call stack; and b-2. pushing a first function identifier associated with the first function on the runtime call stack; and c. if the program counter value corresponds to an exit point of the first function
c-1. popping a first function identifier associated with the first function from the runtime call stack; and c-2. attributing a next power measurement of the set of power measurements to the first function.
- 6. The method of claim 2 wherein the step of instrumenting further comprises:
compiling the embedded application such that a number of null operations is inserted at an entry point and an exit point of each function; loading the embedded application on the target system; and replacing the inserted null operations in each function with a calling sequence for a trigger function.
- 7. The method of claim 6 wherein the trigger function is operable to perform a method for collecting program counter values and power measurements comprising the steps of:
transmitting a program counter value of a function calling the trigger function to the host system; signaling a power measurement device to stop measuring power and capture a power measurement; and signaling the power measurement device to start measuring power.
- 8. The method of claim 4 wherein each power measurement comprises a voltage value and a current value.
- 9. A method for correlating a set of program counter values in an execution order of a plurality of functions of an embedded application executed on a target system and a corresponding set of power measurements in the order each power measurement was taken wherein each power measurement in the set corresponds to an execution period of a function of the plurality of functions to determine a power consumption for each of the plurality of functions comprising the steps of:
reconstructing a runtime call stack of the plurality of functions of the embedded application from the set of program counter values; and associating each power measurement from the set of power measurements with a corresponding function based on the reconstructed runtime call stack.
- 10. A method for correlating a set of program counter values in an execution order of a plurality of functions of an embedded application executed on a target system and a corresponding set of power measurements in the order each power measurement was taken wherein each power measurement in the set corresponds to an execution period of a function of the plurality of functions to determine a power consumption for each of the plurality of functions comprising the steps of:
for each program counter value in turn of the set of program counter values
a. determining the identity of a first function associated with the program counter value; b. if the program counter value corresponds to an entry point of the first function then
b-1. if a runtime call stack is not empty then
attributing a next power measurement of the set of power measurements to a second function associated with a second function identifier currently at a top of the runtime call stack; and b-2. pushing a first function identifier associated with the first function on the runtime call stack; and c. if the program counter value corresponds to an exit point of the first function
c-1. popping a first function identifier associated with the first function from the runtime call stack; and c-2. attributing a next power measurement of the set of power measurements to the first function.
- 11. A method for real-time power profiling of a target system comprising the steps of:
compiling an embedded application to be executed on the target system, wherein the embedded application is comprised of a plurality of functions, such that a number of null operations is inserted at an entry point and an exit point of each function of the plurality of functions for which execution data is to be generated; loading the embedded application on the target system; replacing the inserted null operations in each function with a calling sequence for a trigger function wherein the trigger function is operable to execute a method for collecting a set of program counter values in execution order and a set of power measurements in the order each power measurement is taken wherein each power measurement in the set corresponds to an execution period of a function of the plurality of functions comprising the steps of:
transmitting a program counter value of a function calling the trigger function to a host system; signaling a power measurement device to stop measuring power and capture a power measurement; and signaling the power measurement device to start measuring power; executing the embedded application; and correlating the transmitted set of program counter values with the captured set of power measurements to determine a power consumption for each function.
- 12. The method of claim 11 wherein the step of correlating comprises:
for each program counter value of the set of program counter values in turn
a. determining the identity of a first function associated with the program counter value; b. if the program counter value corresponds to an entry point of the first function then
b-1. if a runtime call stack is not empty then
attributing a next power measurement of the set of power measurements to a second function associated with a second function identifier currently at a top of the runtime call stack; and b-2. pushing a first function identifier associated with the first function on the runtime call stack; and c. if the program counter value corresponds to an exit point of the first function
c-1. popping a first function identifier associated with the first function from the runtime call stack; and c-2. attributing a next power measurement of the set of power measurements to the first function
- 13. A method for power profiling of a target system comprising the steps of:
instrumenting an embedded application to be executed on the target system, wherein the embedded application is comprised of a plurality of software units, to identify each software unit of the plurality of software units for which execution data is to be generated; generating the execution data as each identified software unit is executed on the target system; capturing power measurement data as each identified software unit is executed on the target system; receiving the execution data and the power measurement data on a host system; and correlating the execution data with the power measurement data to determine a power consumption for each identified software unit.
- 14. The method of claim 13 wherein each identified software unit is a function of a high level programming language.
- 15. The method of claim 14 wherein the execution data comprises a return address value corresponding to at least an entry point or an exit point of a function of the plurality of functions.
- 16. The method of claim 15 wherein the power measurement data comprises a power measurement corresponding to an execution period of a function of the plurality of functions.
- 17. The method of claim 16 wherein the step of correlating further comprises:
for the return address value
a. determining the identity of a first function associated with the return address value; b. if the return address value corresponds to an entry point of the first function then
b-1. if a runtime call stack is not empty then
attributing the power measurement to a second function associated with a second function identifier currently at a top of the runtime call stack; and b-2. pushing a first function identifier associated with the first function on the runtime call stack; and c. if the return address value corresponds to an exit point of the first function
c-1. popping a first function identifier associated with the first function from the runtime call stack; and c-2. attributing the current power measurement to the first function.
- 18. The method of claim 14 wherein the step of instrumenting further comprises:
compiling the embedded application such that a number of null operations is inserted at an entry point and an exit point of each function; loading the embedded application on the target system; replacing the inserted null operations in each function with a calling sequence for a trigger function; and setting a breakpoint in the trigger function.
- 19. The method of claim 18 wherein the trigger function is operable to perform a method for collecting return address values and power measurements comprising the steps of:
sending a return address value of a function calling the trigger function to the host computer; signaling a power measurement device to stop measuring power and capture a power measurement; and signaling the power measurement device to start measuring power.
- 20. The method of claim 16 wherein the power measurement comprises a voltage value and a current value.
- 21. A method for real-time power profiling of a target system comprising the steps of:
providing for the instrumentation of an embedded application to be executed on the target system, wherein the embedded application is comprised of a plurality of software units, to identify each software unit of the plurality of software units for which execution data is to be generated; providing for the generation of the execution data as each identified software unit is executed on the target system; providing for the capture of power measurement data as each identified software unit is executed on the target system; providing for passing the execution data to a host system as the execution data is generated without halting the embedded application; and providing for the correlation of the execution data with the power measurement data to determine a power consumption for each identified software unit.
- 22. A method for real-time power profiling of a target system comprising the steps of:
providing for the compilation of an embedded application to be executed on the target system, wherein the embedded application is comprised of a plurality of functions, such that a number of null operations is inserted at an entry point and an exit point of each function of the plurality of functions for which execution data is to be generated; providing for loading the embedded application on the target system; providing for replacing the inserted null operations in each function with a calling sequence for a trigger function wherein the trigger function is operable to execute a method for collecting a set of program counter values in execution order and a set of power measurements in the order each power measurement is taken wherein each power measurement in the set corresponds to an execution period of a function of the plurality of functions comprising the steps of:
providing for the transmission of a program counter value of a function calling the trigger function to a host system; providing for signaling a power measurement device to stop measuring power and capture a power measurement; and providing for signaling the power measurement device to start measuring power; providing for the execution of the embedded application; and providing for the correlation of the transmitted set of program counter values with the captured set of power measurements to determine a power consumption for each function.
- 23. A method for power profiling of a target system comprising the steps of:
providing for the instrumentation of an embedded application to be executed on the target system, wherein the embedded application is comprised of a plurality of software units, to identify each software unit of the plurality of software units for which execution data is to be generated; providing for the generation of the execution data as each identified software unit is executed on the target system; providing for capturing power measurement data as each identified software unit is executed on the target system; providing for receiving the execution data and the power measurement data on a host system; and providing for the correlation of the execution data with the power measurement data to determine a power consumption for each identified software unit.
- 24. A system for power profiling of an embedded application comprising:
a host computer; and a software development environment installed on the host computer wherein the software development environment is operable to send and receive information between the host computer and a target system and to at least receive information from a power measurement device and the software development environment comprises power profiling software embodying a method for real-time power profiling of the target system comprising the steps of:
providing for the instrumentation of an embedded application to be executed on the target system, wherein the embedded application is comprised of a plurality of software units, to identify each software unit of the plurality of software units for which execution data is to be generated; providing for the generation of the execution data as each identified software unit is executed on the target system; providing for the capture of power measurement data as each identified software unit is executed on the target system; providing for passing the execution data to a host system as the execution data is generated without halting the embedded application; and providing for the correlation of the execution data with the power measurement data to determine a power consumption for each identified software unit.
- 25. A system for power profiling of an embedded application comprising:
a host computer; and a software development environment installed on the host computer wherein the software development environment is operable to send and receive information between the host computer and a target system and to at least receive information from a power measurement device and the software development environment comprises power profiling software embodying a method for real-time power profiling of the target system comprising the steps of:
providing for the compilation of an embedded application to be executed on the target system, wherein the embedded application is comprised of a plurality of functions, such that a number of null operations is inserted at an entry point and an exit point of each function of the plurality of functions for which execution data is to be generated; providing for loading the embedded application on the target system; providing for replacing the inserted null operations in each function with a calling sequence for a trigger function wherein the trigger function is operable to execute a method for collecting a set of program counter values in execution order and a set of power measurements in the order each power measurement is taken wherein each power measurement in the set corresponds to an execution period of a function of the plurality of functions comprising the steps of:
providing for the transmission of a program counter value of a function calling the trigger function to a host system; providing for signaling a power measurement device to stop measuring power and capture a power measurement; and providing for signaling the power measurement device to start measuring power; providing for the execution of the embedded application; and providing for the correlation of the transmitted set of program counter values with the captured set of power measurements to determine a power consumption for each function.
- 26. A system for power profiling of an embedded application comprising:
a host computer; and a software development environment installed on the host computer wherein the software development environment is operable to send and receive information between the host computer and a target system and to at least receive information from a power measurement device and the software development environment comprises power profiling software embodying a method for power profiling of the target system comprising the steps of:
providing for the instrumentation of an embedded application to be executed on the target system, wherein the embedded application is comprised of a plurality of software units, to identify each software unit of the plurality of software units for which execution data is to be generated; providing for the generation of the execution data as each identified software unit is executed on the target system; providing for capturing power measurement data as each identified software unit is executed on the target system; providing for receiving the execution data and the power measurement data on a host system; and providing for the correlation of the execution data with the power measurement data to determine a power consumption for each identified software unit.
Parent Case Info
[0001] This application is related to and claims priority under 35 USC §119 (e)(1) to Provisional Application Serial No. 60/369,596, (attorney docket TI-34344) “Power Profiler” filed on Apr. 4, 2002 and Provisional Application Serial No. 64/401,128, (attorney docket TI-34344PS1) “Power Profiler” filed on Aug. 5, 2002. This application is also related to co-pending applications Ser. No. XX/XXX,XXX (attorney docket TI-34344) “Method And Apparatus for Non-Obtrusive Power Profiling” and Ser. No. XX/XXX,XXX (attorney docket TI-35011) “System and Method for Power Profiling of Tasks.”
Provisional Applications (2)
|
Number |
Date |
Country |
|
60369596 |
Apr 2002 |
US |
|
60401128 |
Aug 2002 |
US |