EP0875833A1

Module-configurable, full-chip power profiler

Abstract

A method for determining the power consumption, resulting from execution of a block of code, of an integrated circuit that includes a processor module and one or more other circuit modules. The method involves the steps of, first, providing a set of average current values for each of the modules, for a predetermined plurality of sets of conditions (fig.7) based on predetermined sets of signal line states associated with the module, for each instruction in the instruction set of the processor module, the sets of conditions being selected for dominant power consumption effect on the module. For each module, for each instruction in a block of code to be executed on the processor module, a set of signal line states is generated, associated with the module, for each processor cycle, in sequence. The generated set of signal line states are then tested for the set of conditions(128). One of the average current values is assigned for each condition so tested that is met. Finally, the running total of the average current values so met is accumulated for each such processor cycle(180). The average current values can be translated for different frequencies and supply voltages(112). Also, average current can be converted to average power consumption(118).

EP0875833A1, drawing sheet 1
Sheet 1 of 12

Term

Term ended

Projected expiry passed 30 April 2018, 8.4 years ago.

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

13 claims: 11 independent, 2 dependent

  1. 1
    A method for predicting the power consumption, resulting from execution of a block of code, of an integrated circuit that includes a processor module and one or more other circuit modules, comprising the steps of:storing a set of average current values for each of the modules, for a predetermined plurality of conditions having an effect on power consumption of the module, for each instruction in the instruction set of the processor module;for each module, for each instruction in the block of code to be executed on the processor module, testing the instruction to determine which of the conditions exist for the instruction, for each processor cycle;retrieving one of the average current values for each condition so tested that is met;and adding the average current values so retrieved.
  2. 3
    A method for predicting power consumption as claimed in any of the preceding Claims, wherein the step of storing a set of average current values further comprises the step of providing a set of baseline average current values that are stored for a module for retrieval for all cycles when the module is powered to operate.
  3. 4
    A method for predicting power consumption as claimed in any of the preceding Claims, wherein the conditions include conditions for one or more modules selected from the set consisting of:a memory module, an input/output ("I/O") module, a control logic module for the processor module, a data buffer module, functional unit modules for the processor module, peripheral and interface modules for the processor module, and register modules for the processor module.
  4. 6
    A method for predicting power consumption as claimed in any of Claims 4-5, wherein at least three types of the conditions for the input/output module are provided, a first type relating to output capacitance of the I/O module, a second type relating to the number of inputs of the I/O module that change during a cycle for an I/O instruction, and a third type relating to the number of outputs of the I/O module that change during a cycle for an I/O instruction.
  5. 7
    A method for predicting power consumption as claimed in any of Claims 4-6, wherein the integrated circuit includes a pipeline having a plurality of phases, and wherein at least three types of the conditions for the control logic module are provided, a first type relating to the number of bits changing on signal lines of the module, a second type relating to differentiating between modes of operation of the control module, and a third type relating to pipeline phase differences during a cycle.
  6. 8
    A method for predicting power consumption as claimed in any of Claims 4-7, wherein a baseline average current value is provided when a clock signal is provided to the data buffer module, and wherein the conditions for the data buffer module relate to the number of bits changing in the data buffer module during a cycle.
  7. 9
    A method for predicting power consumption as claimed in any of Claims 4-8, wherein at least four types of the conditions for the functional unit modules are provided, a first type relating to what instruction executed in the cycle previous to a cycle under test, a second type relating to operational and data pattern factors for the functional unit and an instruction, a third type relating to pipeline phase differences during a cycle, and a fourth type relating to factors involved in the transfer of a result to a register during a cycle.
  8. 10
    A method for predicting power consumption as claimed in any of Claims 4-9, wherein at least two types of the conditions for the peripheral and interface modules are provided, a first type relating to the number of bits changing on signal lines of the peripheral and interface modules during a cycle, and a second type relating to the size of data transferred by the peripheral and interface modules during a cycle.
  9. 11
    A method for predicting power consumption as claimed in any of Claims 4-10, wherein at least three types of the conditions for the register modules are provided, a first type relating to the number of read operations done during a cycle, a second type relating to the number of write operations done during a cycle, and a third type relating to the number of bits changing during a cycle.
  10. 12
    A method for predicting power consumption as claimed in any of the preceding Claims, wherein the average current values are stored as a list.
  11. 13
    A method for predicting power consumption as claimed in any of the preceding Claims, wherein the average current values are stored as values embedded in code.