- •Глава 2 Архитектура системы команд
- •Классификация по месту хранения операндов
- •Стековая архитектура
- •Аккумуляторная архитектура
- •Типы и форматы операндов
- •Упакованные целые числа
- •Разрядность основных форматов числовых данных
- •Размещение числовых данных в памяти
- •Символьная информация
- •Логические данные
- •Прочие виды информации
- •Видеоинформация
- •Аудиоинформация
- •Типы команд
- •Команды пересылки данных
- •Команды арифметической и логической обработки
- •Операции с целыми числами
- •Операции с числами в форме с плавающей запятой
- •Логические операции
- •Операции сдвигов
- •Операции с десятичными числами
- •Simd-команды
- •Адресность и эффективность использования памяти
- •Способы адресации операндов
- •Непосредственная адресация
- •Выбор системы операций на основе структурирования алгоритмов
Разрядность основных форматов числовых данных
Данные, представляющие в ВМ числовую информацию, могут иметь фиксированную или переменную длину. Операционные устройства вычислительных машин (целочисленные арифметико-логические устройства, блоки обработки чисел
77
с плавающей запятой, устройства десятичной арифметики и т.п.), как правило, рассчитаны на обработку кодов фиксированной длины. Общепринятые величины разрядности кодов чисел показаны на рис. 2.26.
Рис. 2.26. Стандартная длина фиксированных форматов представления чисел
Наименьшей единицей данных в ВМ служит бит (BIT, Binary digiT — двоичная цифра). В большинстве случаев эта единица информации слишком мала. Однобитовые операционные устройства использовались в ВМ с последовательной обработкой информации, а в современных машинах с параллельной обработкой разрядов они практически не применяются. Побитовую работу с данными скорее можно встретить в многопроцессорных вычислительных системах, построенных из одноразрядных процессоров.
Следующая по величине единица состоит из четырех битов и называется полубайтом или тетрадой, или реже «ниблом» (nibble -- огрызок). Она также редко имеет самостоятельное значение и заслуживает упоминания как единица представления отдельных десятичных цифр при их двоично-десятичной записи.
Реально наименьшей обрабатываемой единицей считается байт, состоящий из восьми битов. На практике эта единица информации также оказывается недостаточной, и значительно чаще применяются числа, представленные двумя (полуслово), четырьмя (слово), восемью (двойное слово) или шестнадцатью (счетверенное слово) байтами1.
Разрядность целочисленного АЛ У обычно выбирается равной ширине адреса (для большинства современных ВМ это 32 разряда). Следовательно, наиболее выгодными в плане быстродействия являются такие целые числа, длина которых
--------------------------------
Согласно терминологии Intel. В другом варианте (DEC) естественный размер слова — 2 байта, двойного или длинного слова (longword) — 4 байта и упоминавшегося выше квадрослова - байт.
78
совпадает с разрядностью адреса. Использование более коротких чисел позволяет сэкономить на памяти, но выигрыша в производительности не дает.
Блоки операций с плавающей запятой обычно согласованы со стандартом IEEE 754 и рассчитаны на обработку чисел в формате двойной длины (64 бита). В большинстве ВМ реальная разрядность таких блоков даже больше (80 бит). Таким образом, наилучшим вариантом при проведении вычислений с плавающей запятой можно считать формат двойного слова. При выборе формата меньшей длины (32 разряда) вычисления все равно ведутся с большей точностью, после чего результат округляется. Таким образом, использование короткого формата чисел с плавающей запятой, как и в случае целых чисел с фиксированной запятой, помимо экономии памяти никаких иных преимуществ также не дает.
В работе [120] приводятся усредненные данные о частоте использования основных форматов чисел, полученные в ходе выполнения пакета тестовых программ SPEC92 на вычислительной машине DEC VAX (рис. 2.27).
Рис. 2.27. Частота обращения к числовым данным в зависимости от их разрядности
В приложениях, оперирующих десятичными числами, где количество цифр в числе может варьироваться в широком диапазоне, что характерно для задач из области экономики, более удобными оказываются форматы переменной длины. В этом случае числа не переводятся в двоичную систему, а записываются в виде последовательности двоично-кодированных десятичных цифр. Длина подобной цепочки может быть произвольной, а для указания ее границы обычно используют символ-ограничитель, код которого не совпадает с кодами цифр. Длина цифровой последовательности может быть задана явно в виде количества цифр числа и храниться в первом байте записи числа, однако этот прием более характерен для указания длины строки символов.