I looked at an older article on Nehalem architecture improvements; first point mentions this:
First of all, there’s no performance penalty for using the unaligned versions of load/store instructions in cases where the data are aligned in memory.
What does it mean?
Say I have some random data in memory; is it 'aligned'? I thought that aligned access (I guess == aligned versions of store/load) implies some aligned data that is accessed.
But here they talk about unaligned access of aligned data; I'm not sure what this means.
If I have a struct aligned at 64 bits in memory, and I access a word at e.g. offset 3 within that struct, is it any better than the case where the struct itself is unaligned?
I thought that the resulting address accessed is all that matters in context of alignment.