Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура средств ВТ / Литература / Цилькер / Организация ЭВМ и систем / Глава 2.Архитектура системы командdoc.doc
Скачиваний:
268
Добавлен:
01.06.2015
Размер:
17.76 Mб
Скачать

Размещение числовых данных в памяти

В современных ВМ разрядность одной ячейки памяти, как правило, равна одному байту (8 бит). В то же время реальная длина кодов чисел составляет 2, 4, 8 или 16 байт. При хранении таких чисел в памяти последовательные байты числа раз-

79

мещают в нескольких ячейках с последовательными адресами, при этом для дос­тупа к числу указывается только наименьший из адресов. При разработке архи­тектуры системы команд необходимо определить порядок размещения байтов в па­мяти, то есть какому из байтов (старшему или младшему) будет соответствовать этот наименьший адрес1. На рис. 2.28 показаны оба варианта размещения 32-раз­рядного числа в четырех последовательных ячейках памяти, начиная с адреса х

Рис. 2.28. Размещение в памяти 32-разрядного числа: а — начиная со старшего байта;

б — начиная с младшего байта

В вычислительном плане оба способа записи равноценны. Так, фирмы DEC и Intel отдают предпочтения размещению в первой ячейке младшего байта, a IBM и Motorola ориентируются на противоположный вариант. Выбор обычно связан с некими иными соображениями разработчиков ВМ. В настоящее время в боль­шинстве машин предусматривается использование обоих вариантов, причем вы­бор может быть произведен программным путем за счет соответствующей уста­новки регистра конфигурации.

Рис. 2.29. Размещение чисел в памяти с выравниванием

___________

' В англоязычной литературе систему записи числа, начиная со старшего байта, обозначают термином «big endian», а с младшего байта — термином «little endian». Оба названия происходят от названия племен («тупоконечники» и «остроконечники»), упоминаемых в книге Джонатана Свифта «Путеше­ствия Гулливера». Там описывается религиозная война между этими племенами, по причине разно­гласий в вопросе, с какого конца следует разбивать яйцо — тупого или острого.

80

Помимо порядка размещения байтов, существенным бывает и выбор адреса, с которого может начинаться запись числа. Связано это с физической реализаци­ей полупроводниковых запоминающих устройств, где обычно предусматривается возможность считывания (записи) четырех байтов подряд. Причем данная опера­ция выполняется быстрее, если адрес первого байта А отвечает условию A mod 5=0 (5= 2, 4, 8, 16). Числа, размещенные в памяти в соответствии с этим правилом, называются выравненными (рис. 2.29).

На рис. 2.30 показаны варианты размещения 32-разрядного слова без выравни­вания. Их использование может приводить к снижению производительности.

Адрес

0

4

8

12

16

20

Рис. 2.30. Размещение 32-разрядного слова без соблюдения правила выравнивания

Большинство компиляторов генерируют код, в котором предусмотрено вырав­нивание чисел в памяти.