This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Is there a way for me to estimate power usage for various ARM cores (Cortex-M0,1,3,4 )?

Hi, I'm new to development with ARM and I was wondering if there is a way to estimate power usage for the different ARM cores (such as ARM Cortex-M0, -M1, -M3, -M4)? I'm thinking of maybe a program that can accept code compiled for these cores and can estimate how much power they would use if they were to run on actual silicon.

  • Hi vgkarthik,

    Your question is an interesting one, which many engineers would like to have the ability to investigate.  Since the Cortex-M is basically an IP library built in software, you'll need to have an electrical model of the silicon process in which the CPU is being implemented, in order to calculate the energy consumed.  For reference, ARM publicizes some power measurements based on standard silicon processes, which unfortunately I was not able to find in order to post the link here.  Microcontroller vendors typically provide power measurements in terms of uA/MHz for various products.  These are good starting points as well.

    -arw

  • You can just trust you with the manufacturer's data. But after all depend on the use that will made . In my opinion the best compromise is the M0 + . This is just my opinion, and I certainly made a mistake .

  • Hi Allen,

          Thank you for your response. I understand how challenging it would be to provide such data. I was hoping to maybe get normalized data i.e for a given node, compared to one core the other cores consume either 0.x times or 1.x times the power.

          I was able to find the uA/Mhz data from ARM for the cores when running. how accurate would it be for me to use that as a baseline to estimate power usage. if i needed my core to run at 100 Mhz, would it be atleast a first order approximation to estimate the active power using this number?

    thank you,

    Karthik

  • Hi Jérôme, I am using an ARM M0+ CPU, but i was wondering if there might be a way to estimate how much power I would be using for other ARM cores as well.

  • Hi Karthik,

    This is definitely a "difficult" problem - even on fixed silicon process different manufacturers will choose different standard cells for the physical implementation, which can dramatically alter frequency and power characteristics (in general, the faster you make a device's top frequency the less energy efficient it will be, but this is not always the case, as there is also a tradeoff between lowering dynamic power and increasing static power (leakage)). Also note that the power numbers from ARM are just for the CPU; they ignore the interconnect, peripherals, memory controller, memory PHYs, etc.

    For all these reasons the best source for power data is the data sheet for a specific device from that device's manufacturer.

    HTH,
    Pete

  • Adding to Peter's answer...

    The exact power consumption depends on large number of factors:

    • Cell libraries
    • Synthesis tools
    • Timing constraints
    • Synthesis options (e.g. clock skew, fan out limit)
    • Other implementation options (floor plan, scan insertion, etc)
    • Processor's configuration options (e.g. how many IRQ to support, do you need MPU? etc)
    • Exact signal toggling activities (Note: even running the same program code with different data can get different results).
    • Environmental factors (temperature, voltage, phase of the moon... just kidding )

    If you need to get more information, please contact local ARM sales team, they can provide some more data. (But it won't cover all the possible cases).

    See Contact ARM - ARM

    Hope this helps.

    regards,

    Joseph