Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Операции с десятичными числами




ЭВМ и периферийные устройства

Лектор: доц. Осмоналиев А.Б.

Лекция 8. (2 часа)

Тема. Типы команд. Форматы команд. Длина команды. Разрядность полей команды

 

Типы команд

Несмотря на различие в системах команд разных ВМ, некоторые основные типы операций могут быть найдены в любой из них. Для описания этих типов примем следующую классификацию:

· команды пересылки данных;

· команды арифметической и логической обработки;

· команды работы со строками;

· команды SIMD;

· команды преобразования;

· команды ввода/вывода;

· команды управления потоком команд.

 

Команды пересылки данных

Это наиболее распространенный тип машинных команд. В таких командах должна содержаться следующая информация:

• адреса источника и получателя операндов — адреса ячеек памяти, номера регистров процессора или информация о том, что операнды расположены в стеке;

• длина подлежащих пересылке данных (обычно в байтах или словах), заданная явно или косвенно;

• способ адресации каждого из операндов, с помощью которого содержимое адресной части команды может быть пересчитано в физический адрес операнда.

Рассматриваемая группа команд обеспечивает передачу информации между процессором и ОП, внутри процессора и между ячейками памяти. Пересылочные операции внутри процессора имеют тип «регистр-регистр». Передачи между процессором и памятью относятся к типу «регистр-память», а пересылки в памяти - к типу «память-память».

 

Команды арифметической и логической обработки

В данную группу входят команды, обеспечивающие арифметическую и логическую обработку информации в различных формах ее представления. Для каждой формы представления чисел в АСК обычно предусматривается некий стандартный набор операций.

Помимо вычисления результата выполнение арифметических и логических операций сопровождается формированием в АЛУ признаков (флагов), характеризующих этот результат. Наиболее часто фиксируются такие признаки, как:

Z (Zero) - нулевой результат; N (Negative) - отрицательный результат; V (oVerflow) - переполнение разрядной сетки; С (Carry) — наличие переноса.\

 

Операции с целыми числами

К стандартному набору операций над целыми числами, представленными в форме с фиксированной запятой, следует отнести:

• двухместные арифметические операции (операции с двумя операндами): сло­

жение, вычитание, умножение и деление;

• одноместные арифметические операции (операции с одним операндом): вычис­

ление абсолютного значения (модуля) операнда, изменение знака операнда;

• операции сравнения, обеспечивающие сравнение двух целых чисел и выработ­

ку признаков, характеризующих соотношение между сопоставляемыми вели­

чинами (=,<>,>,<, <=, >=).

Часто этот перечень дополняют такими операциями, как вычисление остатка от целочисленного деления, сложение с учетом переноса, вычитание с учетом заема, увеличение значения операнда на единицу (инкремент), уменьшение значения операнда на единицу (декремент).

Отметим, что выполнение арифметических команд может дополнительно сопровождаться перемещением данных из устройства ввода в АЛУ или из АЛУ на устройство вывода.

 

Операции с числами в форме с плавающей запятой

Для работы с числами, представленными в форме с плавающей запятой, в АСК большинства машин предусмотрены:

• основные арифметические операции: сложение, вычитание, умножение и деление;

• операции сравнения, обеспечивающие сравнение двух вещественных чисел

с выработкой признаков: =, <>, >, <, <=, >=;

• операции преобразования: формы представления (между фиксированной

и плавающей запятой), формата представления (с одинарной и двойной точностью).

 

Логические операции

Стандартная система команд ВМ содержит команды для выполнения различных логических операций над отдельными битами слов или других адресуемых единиц. Такие команды предназначены для обработки символьных и логических данных. Минимальный набор поддерживаемых логических операций - это «НЕ», «И», «ИЛИ» и сложение по модулю 2.

 

Операции сдвигов

В дополнение к побитовым логическим операциям, практически во всех АСК предусмотрены команды для реализации операций логического, арифметического и циклического сдвигов (рис. 8.1).

Рис. 8.1. Варианты операций сдвига

При логическом сдвиге влево или вправо (см. рис. 8.1., а), сдвигаются все разряды слова. Биты, вышедшие за пределы разрядной сетки, теряются, а освободившиеся позиции заполняются нулями.

При арифметическом сдвиге (см. рис. 8.1. данные трактуются как целые числа со знаком, причем бит знака не изменяет положения. При сдвиге вправо освободившиеся позиции заполняются значением знакового разряда, а при сдвиге влево - нулями. Арифметические сдвиги позволяют ускорить выполнение некоторых арифметических операций. Так, если числа представлены двоичным дополнительным кодом, то сдвиги влево и вправо эквивалентны соответственно умножению и делению на 2.

При циклическом сдвиге (см. рис. 8.1, в) смещаются все разряды слова, причем значение разряда, выходящего за пределы слова, заносится в позицию, освободившуюся с противоположной стороны, то есть потери информации не происходит. Одно из возможных применений циклических сдвигов - это перемещение интересующего бита в крайнюю левую (знаковую) позицию, где он может быть проанализирован как знак числа.

 

Операции с десятичными числами

Десятичные числа представляются в ВМ в двоично-кодированной форме. В вычислительных машинах первых поколений для обработки таких чисел предусматривались специальные команды, обеспечивавшие выполнение основных арифметических операций (сложение, вычитание, умножение и деление). В АСК современных машин подобных команд обычно нет, а соответствующие вычисления имитируются с помощью команд целочисленной арифметики.

 

SIMD – команды

Название данного типа команд представляет собой аббревиатуру от Single Instruction Multiple Data — буквально «одна инструкция — много данных». В отличие от обычных команд, оперирующих двумя числами, SIMD-команды обрабатывают сразу две группы чисел (в принципе их можно называть групповыми командами). Операнды таких команд обычно представлены в одном из упакованных форматов.

Идея SIMD - обработки была выдвинута в Институте точной механики и вычислительной техники им. С. А. Лебедева в 1978 году в рамках проекта «Эльбрус-1». С 1992 года команды типа SIMD становятся неотъемлемым элементом АСК микропроцессоров фирм Intel и AMD. Поводом послужило широкое распространение мультимедийныхприложений. Видео, трехмерная графика и звук в ВМ представляются большими массивами данных, элементы которых чаще всего обрабатываются идентично. Так, при сжатии видео и преобразовании его в формат MPEG один и тот же алгоритм применяется к тысячам битов данных. В трехмерной графике часто встречаются операции, которые можно выполнить за один такт: интерполирование и нормировка векторов, вычисление скалярного произведения векторов, интерполяция компонентов цвета и т. д. Включение SIMD-команд в АСК позволяет существенно ускорить подобные вычисления.

Первой на мультимедийный бум отреагировала фирма Intel, добавив в систему команд своего микропроцессора Pentium ММХ57 SIMD-команд. Название ММХ (MultiMedia eXtention - мультимедийное расширение) разработчики обосновывали тем, что при выборе состава новых команд были проанализированы алгоритмы, применяемые в различных мультимедийных приложениях. Команды ММХ обеспечивали параллельную обработку упакованных целых чисел. При выполнении арифметических операций каждое из чисел, входящих в группу, рассматривается как самостоятельное, без связи с соседними числами. Учитывая специфику обрабатываемой информации, команды ММХ реализуют так называемую арифметику с насыщением: если в результате сложения образуется число, выходящее за пределы отведенных под него позиций, оно заменяется наибольшим двоичным числом, которое в эти позиции вмещается.

Следующим шагом стало создание новых наборов SIMD-команд, работающих также с операндами, представленными в виде упакованных чисел с плавающей запятой. Такие команды в соответствующих приложениях повышают производительность процессора примерно вдвое. Первой подобную технологию в середине 1998 года предложила фирма AMD в микропроцессоре К6-2. Это мультимедийное расширение включало в себя 21 SIMD-команду и получило название 3DNow!. Расширение 3DNow! в дополнение к SIMD-обработке целочисленной информации типа ММХ позволяло оперировать парой упакованных чисел в формате с плавающей запятой.

Полугодом позже фирма Intel ввела в свои микропроцессоры так называемые

потоковые SIMD-команды обозначив их аббревиатурой SSE - Streaming SIMD Extension (потоковая обработка по принципу «одна команда - много данных»). Сначала это были 70 команд в микропроцессоре Pentium III. Команды дополняли групповые целочисленные операции ММХ и расширяли их за счет групповых операций с 32-разрядными вещественными числами.

В зависимости от типа чисел (целые или вещественные) команды SSE делятся на три категории:

• работа с упакованными группами целых чисел, которые могут иметь размер байта, слова, двойного слова или квадрослова (количество чисел в группе зависит от их разрядности и от разрядности всей группы — 64 или 128);

• оперирование одной парой 32-разрядных или 64-разрядных чисел с плаваю­

щей запятой (обычная или двойная точность);

• обработка четырех пар вещественных чисел обычной точности или двух пар

вещественных чисел двойной точности.

Дальнейшее развитие технологии SSE вылилось в SSE2 и получило реализацию в Pentium 4. Этот вариант включает в себя 271 команду и позволяет выполнять групповые арифметические и логические операции, сдвиги, сравнения чисел, перегруппировку и извлечение отдельных чисел, различные варианты пересылок. За один такт обрабатываются четыре 32-разрядных числа с плавающей запятой, упакованных в 128-разрядное слово.

Новый импульс получила и технология 3DNow!, более совершенный вариант которой получил название Enhanced 3DNow!. Этот набор команд близок к SSE2.

Еще один вариант архитектуры системы команд с воплощен фирмой IBM в процессорах серии PowerPC. Эта реализация носит название AltiVec и во многих отношениях превосходит вышеупомянутые расширения АС К. В частности, имеются трехоперандные команды, допускаются нестандартные целочисленные форматы, например «упаковка» из 1 + 5 + 5 + 5 битов.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...