Patent ID: 8340952

Claim:
A method comprising: partitioning a set of instructions executable at an integrated circuit into a plurality of instruction blocks, wherein each instruction of the set of instructions is a member of exactly one instruction block, each instruction block includes at least two instructions, and the last instruction included at each instruction block is a non-sequential instruction; simulating, at a computer, execution of the set of instructions at a first software representation of the integrated circuit, wherein during execution of the set of instructions a first instruction block is executed a plurality of times, including a corresponding first execution and second execution, and a second instruction block is executed a plurality of times including a corresponding first execution and second execution, the simulating further to determine a value representing a record of a state of design attributes of the integrated circuit during each execution; associating the first execution of the first instruction block with a first set of executions based on the determined value; associating the second execution of the first instruction block with a second set of executions based on the determined value; determining, using a second software representation of the integrated circuit, a first amount of energy consumption that is representative of a member of the first set of executions; determining, using the second software representation, a second amount of energy consumption that is representative of a member of the second set of executions; assigning the first amount of energy consumption to each member of the first set of executions; assigning the second amount of energy consumption to each member of the second set of executions; and determining a total amount of energy consumption associated with execution of the set of instructions, the total amount of energy consumption based on energy consumed by a plurality of sets of executions including the first set and the second set of executions, wherein each member of the first set of executions contributes the assigned first amount of energy consumption to the total amount of energy consumption, and each member of the second set of executions contributes the assigned second amount of energy consumption to the total amount of energy consumption.