US20030191976A1

Power profiling system and method for correlating runtime information

Claim Score by NHIP

Read claim 13, the broadest

Abstract

Systems and methods for improved power profiling of embedded applications are presented. These inventions provide the ability to measure the power consumption of an embedded application at varying levels of software granularity as the application is executing on the target hardware. Methods and apparatus are provided to permit such measurements in both real-time and non-real-time.

US20030191976A1, drawing sheet 1
Sheet 1 of 23

Term

Term ended

Projected expiry passed 20 December 2024, 1.8 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

26 claims: 11 independent, 15 dependent

  1. 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. 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.
  3. 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.
  4. 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.
  5. 13
    Broadest claimClaim Score 64, broad(NHIP)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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.