Анализ операций умножения и деления в конкретной модели АЛУ

Страница: 5/11

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

Арифметика и типы данных

Строки битов

Это простейшая форма записи; 16 бит составляют строку битов. Примерами операций, в которых используется этот формат, являются логические операции NOT,AND,OR,XOR. Эти операции, исполняемые АЛУ, считают, что их аргументы строки битов и не заботятся о знаке или о положении десятичной точки

Числа без знака

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

Числа со знаком в форме дополнения до двух

Для арифметики процессоров семейства термин “знаковый” всегда обозначает числа. Записанные в форме дополнения до двух. Многие инструкции процессора подразумевают или поддерживают арифметику по модулю 2.

Дробь 1.15

Арифметические инструкции процессоров семейства оптимизированы для операций в дробном двоичном формате 1.15. В этом формате левый бит числа обозначает его знак, и 15 оставшихся бит представляют собой числа от -1 до почти 1 ( из-за несимметричности представления знаковых чисел ).

Арифметические операции АЛУ

Все арифметико-логические операции трактуют свои операнды и получают результаты как 16 разрядные битовые строки, за исключением примитивов знакового деления (DIVS). Различные флаги трактуют результаты как числа со знаком: флаг переполнения (AV) и флаг отрицательного числа (AN).

Логика флага переполнения основана на арифметике по модулю 2. Он устанавливается если знаковый бит изменялся непредсказуемым образом. Например при сложении двух положительных чисел, результат также должен быть положителен. Если же происходит переполнение ( перенос в знаковый бит, устанавливающий его в единицу, так что результат получается отрицательным ), то устанавливается бит AV.

Логика флага переноса основана на беззнаковой арифметике. Этот флаг устанавливается в том случае, если генерируется перенос из старшего разряда числа, который не может быть записан в результат. Этот флаг очень полезен при операциях с многословными представлениями чисел для младших слов.

Арифметика МАС

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

Все процессоры семейства поддерживают два формата коррекции результата умножения :

· дробный (1.15 )

· целый ( также называется 16.0 )

Когда процессор умножает два 1.15 операнда, результат является числом в формате 2.30 ( два знаковых бита и 30 дробных бит ). В дробном режиме МАС автоматически сдвигает результат умножения влево на один бит перед переносом его в регистр результата ( MR ). После этого сдвига формат результата становится 1.31, что позволяет округлить его до формата 1.15.

В целочисленном режиме сдвиг влево не происходит. Например, если операнды формата 16.0, то 32-битный результат умножения будет в формате 32.0. Более того здесь сдвиг не нужен, ибо он изменит значение результата.

Арифметика устройства сдвига

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

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

Реферат опубликован: 15/12/2009