I know that some processors fail with inconsistent data, while others, such as oh-so-common x86, will only be slower with this.
My question is why? Why is it harder for an x86 processor to get data from a 0x12345679 pointer than from a 0x12345678 pointer? To be clear, I know that page errors can occur if the data is on multiple pages, and I understand that more data may need to be extracted from memory (one part for the beginning of the value and one for the end), but this is not always true. and thatβs not what my question is about. I ask, why is it always slower?
Suppose the memory starts at 0x10000000 . Why is it harder for a processor to get 2 short bytes from 0x10000001 than from 0x10000002 ? Why is it harder to get a 4-byte int from 0x10000001 than from 0x10000000 ? And so on.
alignment cpu byte
configurator
source share