ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1000459 Топик полностью
RxTx (30.04.2020 18:47, просмотров: 365) ответил VLLV на Тема выравнивания пошла. Объясните плз, почему в проекте ARM выравнивание происходит по границе 8 байт? 32 бита. Если надо, картинку отладчика положу.
Выравнивание на N это размещение данных или кода по адресам кратным N. Это производится а) для скорости, потому что невыравненные данные/код требуют больше циклов чтения шины. Для ускорения доступа собственно ядра, и для ускорения пред-загрузки линии кэша. б) некоторые RISC архитектуры не способны читать память по невыравненным адресам вообще, т.е. в них "ячейками памяти" считаются WORD'ы размером в ширину шины - 2 или 4 или даже 8 байт. Hardware unaligned acccess появился 

начиная с ARMv6. В таких архитектурах если требуется unaligned access, то необходимые байты выделяются чисто программно. 32-битные системы (4 байта) по умолчанию архитектурно предполагают align 4.

Спасибо, князь. Вы настоящий дворянин. И программист.