Я знаю, что некоторые процессоры не работают из-за несогласованных данных, а другие, такие как о-очень распространенный x86, будут работать медленнее.
Мой вопрос почему? Почему процессору x86 сложнее получить данные из указателя 0x12345679
, чем из указателя 0x12345678
? Чтобы быть ясным, я знаю, что сбои страниц могут произойти, если данные находятся на нескольких страницах, и я понимаю, что может потребоваться получить больше данных из памяти (одна часть для начала значения и одна для конца) , но это не Это всегда правда, и мой вопрос не об этом. Я спрашиваю, почему он всегда медленнее?
Предположим, память начинается с 0x10000000
. Почему процессору сложнее получить 2-байтовый короткий
из 0x10000001
, чем из 0x10000002
? Почему получить 4-байтовый int
из 0x10000001
труднее, чем из 0x10000000
? И так далее.