Я слышал много, что данные должны быть правильно выровнены в памяти для повышения эффективности доступа. Память доступа к процессору на границе слова.
Итак, в следующем сценарии CPU должен сделать 2 обращения к памяти, чтобы получить одно слово.
Supposing: 1 word = 4 bytes
("|" stands for word boundary. "o" stands for byte boundary)
|----o----o----o----|----o----o----o----| (The word boundary in CPU eye)
----o----o----o---- (What I want to read from memory)
Почему это должно произойти? Какая основная причина CPU может читать только на границе слова?
Если процессор может получить доступ только на 4-байтовой границе слова, адресная строка должна иметь только 30-битную, а не 32-битную ширину. Причина, по которой последние 2bit всегда имеют 0 в глазу CPU.
ADD 1
И даже больше, если мы признаем, что CPU должен читать на границе слова, почему не может граница начинаться там, где я хочу читать? Кажется, что граница в <ЦП > фиксирована.
ADD 2
По словам AndreyT, кажется, что настройка границы жестко связана и жестко связана с оборудованием доступа к памяти. ЦП просто невиновен в этом отношении.
Большое спасибо...