We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello to all,
I was looking at different offset values for both load and store operations. Since due to little endian arrangement, the memory looks something like this to processor:
Byte[0x23],Byte[0x22],Byte[0x21],Byte[0x20]
Byte[0x1F],Byte[0x1E],Byte[0x1D],Byte[0x1C]
. . . .
Byte[0x7],Byte[0x6],Byte[0x5],Byte[0x4]
Byte[0x3],Byte[0x2],Byte[0x1],Byte[0x0]
Since the different value consumes different cycles:
Offset(0xn) (n ∈ 0,4,8,...) = 1 cycles
Offset(0xn) (n ∈ 1,5,9,...) = 3 cycles
Offset(0xn) (n ∈ 2,6,A,...) = 2 cycles
Offset(0xn) (n ∈ 3,7,B,...) = 3 cycles
Therefore for offset 30 => 0x1E should consumed 2 cycles since it belongs to the category of 2 offset. Rather, it has consumed 1 cycles and thereafter on all the next coming offset value, offset 30 becomes reference. I mean, for offset 32 => 0x20 (ideally it should consumes only 1 clock-cycles, but in reality it is consuming 2 clock cycles) and so on.
Does anybody know the reason behind this??
Kindly help me out with that.
Thanking you,
Regards,
Himanshu