Hello to all,
I am willing to know the variation in the current consumption due to the instruction address. Therefore I have performed two experiments, first time filled the pipeline with a 32-bit instruction and second time filled it with the 16-bit instruction. Then I have observed the effect of energy consumption due to that. I saw a difference in the energy behavior. Can any body explain me why such?
I have attached the result below:
So, a clear difference can be observed in the patterns of current consumption. So, I have few doubt:
...
Byte[0xB], Byte[0xA], Byte[9], Byte[8].
Byte[7], Byte[6], Byte[5], Byte[4].
Byte[3], Byte[2], Byte[1], Byte[0].
The addresses for each byte lane are identical. So is there any assumption that the current consumption for each row is similar ???Since in case of 16-bit only 2-byte lanes will be activated but for 32-bit all 4-byte lanes.
Kindly help me out with that. All the experiments have been performed on ARM Cortex-M4
Thanking you,
Kind Regards,
Himanshu
The CM4 has only a 3 stage pipeline.
See this (from the TRM):
"ICode memory interfaceInstruction fetches from Code memory space, 0x00000000 to 0x1FFFFFFC, are performed over this 32-bit AHB-Lite bus. The Debugger cannot access this interface. All fetches are word-wide. The number of instructions fetched per word depends on the code running and the alignment of the code in memory."
So if proper aligned you can fetch two 16bit instruction at a time. So for the same number of instruction you do fetch only half the words.BTW: I am not sure how you are measuring, but if on a real chip, you also have the power consumption of the AHB and the Flash.