Второй аспект размещения единиц информации

Опубликовано в Архитектура процессора Intel

Второй аспект связан с тем, какие адреса для размещения единиц информации фиксированной длины являются допустимыми, а какие нет. Принято считать, что адресом структурной единицы информации, содержащей несколько байт, является адрес ее левого (старшего) байта при использовании первого принципа размещения, или правого (младшего) байта при использовании второго принципа. Это означает, что в любом случае размещения единицы информации в памяти по адресам А, А+1,... адресом этой единицы считается А.

В некоторых моделях компьютеров налагаются ограничения на размещение единиц информации фиксированной длины, составляющей 2к байт. Это ограничение принято называть целочисленной границей.

Адрес единицы информации длиной 2к байт должен быть кратен 2. Это означает, что адрес слова (2 байта) должен быть кратен 2. Адрес двойного слова должен быть кратен 4. Адрес учетверенного слова кратен 8. Т.е. адреса должны быть четными.

Второй аспект размещения единиц информации

Формально проверка соблюдения целочисленной границы схемно реализуется сравнением соответствующего числа младших разрядов адреса с нулем. Несоблюдение целочисленной границы приводит к прерыванию соответствующего типа.

Требование соблюдения целочисленной границы связано с уменьшением числа обращений к ОП при выборке операндов фиксированной длины, например, при ширине выборки в 4 байта (шина данных 32 разряда) интерфейс памяти позволяет при одном обращении выбрать из памяти или записать в память 4 байта, т.е. меньший адрес, по которому выбирается двойное слово, кратен 4. Таким образом, если двойное слово размещается в ОП по целочисленной границе, то обращение к нему по чтению или записи реализуется за 1 цикл памяти. В противном случае — за 2 цикла.

Понятие целочисленной границы широко используется в отношении как команд, так и данных в больших компьютерах. Начиная с модели i486, проверка целочисленной границы используется в отношении данных, но не команд, и имеет место только в том случае, когда установлен флаг AC (Alignment Check -контроль выравнивания) в регистре EFLAGS и, кроме того, установлен бит AM (Alignment Mask — маска выравнивания) в управляющем регистре CR0 — Control Register.

Управляющие регистры относятся к так называемым системным регистрам, что означает возможность их использования только системными, но не прикладными программами.