Is it true pm memory access e.g. r3=pm(i12,m12) always consume two cycle count except it is used in loop where conflict is handled by cache?
Any other conditions where pm consume one cycle?
The instructions are fetched over PM bus and the data transfer r3=pm(i12,m12) is also fetched over PM bus. As this cannot be done simultaneously, it takes 2 cycles to complete the execution of this r3=pm(i12,m12) instruction.
To answer your question, execution of any instruction having data transfer over the PM bus for the first time will take 2 cycles and the subsequent execution of the same instruction will take 1 cycle because of Conflict cache hit.
This is the only scenario where the data transfer over the PM bus takes one cycle.
Thanks for quick answer. So it is better to use pm access in loops. Else where it will consume 2 cycles .
Retrieving data ...