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

**Выравнивание данных** \(data alignment\) \- стратегия расположения данных в оперативной памяти по определенным правилам, способствующих ускорению доступа к ним\.

Микропроцессоры в качестве основной единицы при работе с памятью используют машинное слово, размер которого может быть различным\. Как правило, машинное слово равно 2^k байтам\. При сохранении объекта данных в памяти может случиться, что некое поле, состоящее из нескольких байтов, пересечёт "естественную границу" слов в памяти\. Некоторые модели процессоров не могут обращаться к данным в памяти, нарушающим границы машинных слов\. Другие могут обращаться к данным без выравнивания, но делают это менее эффективно, чем к данным, находящимся внутри целого "машинного слова" в памяти\.

Выравнивание данных достигается за счет наличия между объектами данных пустых ячеек памяти\. Это увеличивает размер структур данных, но делает доступ к данным более быстрым\.

## Библиографический список

1. Jonathan Rentzsch\. [Data alignment: Straighten up and fly right](https://developer.ibm.com/components/ibm-power/)\.
1. Wikipedia\. [ Выравнивание данных](https://ru.wikipedia.org/wiki/%D0%92%D1%8B%D1%80%D0%B0%D0%B2%D0%BD%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85)\.
1. Андрей Карпов\. [Оптимизация 64\-битных программ](https://pvs-studio.ru/ru/blog/posts/cpp/a0030/)\.
1. Noel Llopis\. [ Data Alignment](https://www.gamasutra.com/view/feature/3942/data_alignment_part_1.php)\.
1. Kang Su Gatlin\. [Windows Data Alignment on IPF, x86, and x64](https://www.microsoft.com/en-us/download/details.aspx?id=55979)\.