Выравнивание данных

Материал из testwiki
Версия от 07:34, 25 апреля 2022; imported>Tucvbif (Удалена Категория:Технологии в операционных системах с помощью HotCat)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Выравнивание данных в оперативной памяти компьютеров — способ размещения данных в памяти особым образом для ускорения доступа.

Причины

ад
рес
  данные
9    
8 это
слово
не
выро-
внено
7  
6
5
4  
3   это
слово
выро-
внено
2
1
0

Центральные процессоры в качестве основной единицы при работе с памятью используют машинное слово, размер которого может быть различным. Однако размер слова всегда равен нескольким байтам (байт является наименьшей единицей, в которой отсчитываются адреса). Как правило, машинное слово равно 2k байтам, то есть состоит из одного, двух, четырёх, восьми и т. д. байтов.

При сохранении какого-то объекта в памяти может случиться, что некое поле, состоящее из нескольких байтов, пересечёт «естественную границу» слов в памяти. Некоторые модели процессоров не могут обращаться к данным в памяти, нарушающим границы машинных слов. Некоторые могут обращаться к невыровненным данным дольше, нежели к данным, находящимся внутри целого «машинного слова» в памяти.

На практике такое выравнивание означает, что адреса всех данных размером 2l байт при lk (превосходящие размер слова) должны делиться без остатка на 2k.

Ссылки

Шаблон:Compu-stub