Я понимаю, что означает доступ к памяти так, что она выровнена, но я не понимаю, почему это необходимо. Например, почему я могу получить доступ к одному байту с адреса 0x…1, но я не могу получить доступ к полуслову (два байта) с того же адреса.
Опять же, я понимаю, что если у вас есть адрес A и объект размера s, то доступ выравнивается, если A mod s = 0. Но я просто не понимаю, почему это важно на аппаратном уровне.