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

Операции с фиксированной точкой

 

Разрядность числа с фиксированной точкой всегда равна 32; в поле 40-разрядных данных оно занимает 32 старших бита. Форматы представления этих чисел могут быть дробные или целые, беззнаковые или знаковые. Каждое ВУ имеет свои собственные ограничения на то, как эти форматы совмещаются в данной операции. ВУ считывают 32-разрядные операнды из 40-разрядных регистров, игнорируя 8 младших разрядов, и записывают 32-разрядные результаты, обнуляя 8 младших разрядов.


Округление

 

В процессоре ADSP-2106x поддерживается два режима округления: округление к нулю и округление к ближайшему. Режимы округления соответствуют стандарту IEEE 754, как определено ниже:

Округление к нулю. Если результат до округления точно не представить в определенном формате, то он округляется до числа, которое ближе к нулю. Это эквивалентно усечению.

Округление к ближайшему. Если результат до округления точно не представим в определенном формате, то он будет округлен до числа, которое ближе к нему.

Если результат до округления находится точно посередине между двумя числами определенного формата (отличающимися младшим битом), то округленный результат - это число, которое имеет нулевой младший бит. Статистически округление вверх случается так же часто, как и округление вниз, поэтому нет большого смещения в выборке. Из-за того что максимальное число с плавающей точкой на один младший бит меньше, чем число, представляющее бесконечность, результат, который находится посередине между максимальным числом с плавающей точкой и бесконечностью, округляется в этом режиме до бесконечности. Режим округления для всех операций ALU и операций с плавающей точкой умножителя определяется битом TRUNC в регистре MODEL Если бит TRUNC установлен, то выбран режим округления к нулю. Иначе используется режим округления к ближайшему. Для операций умножителя с фиксированной точкой над дробными данными поддерживаются те же самые два режима округления, но реально умножитель выполняет только операцию округления к ближайшему. Из-за того что умножитель имеет локальный регистр результата операций с фиксированной точкой, округление к нулю выполняется неявно путем считывания только старших битов результата и отбрасывания младших.


Арифметико-логическое устройство (ALU)

 

ALU выполняет арифметические операции над данными с фиксированной и плавающей точкой и логические операции над данными с фиксированной точкой. Команды ALU с фиксированной точкой оперируют над 32-разрядными операндами с фиксированной точкой и выдают 32-разрядный результат с фиксированной точкой. Команды ALU с плавающей точкой оперируют над 32-или 40-разрядными операндами с плавающей точкой и выдают 32 - или 40-разрядные результаты с плавающей точкой.

Команды ALU:

с плавающей точкой: сложение, вычитание, сложение/вычитание, усреднение;

с фиксированной точкой: сложение, вычитание, сложение/вычитание, усреднение;

манипуляция с данными с плавающей точкой: двоичный логарифм, масштабирование, мантисса;

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

логические AND, OR, XOR, NOT;

функции: модуль, сброс, минимум, максимум, усечение, сравнение;

преобразования формата;

примитивы деления - и деления на корень квадратный г-.

Операция двойного сложения/вычитания и параллельные операции ALU и умножителя описаны ниже в разделе "Многофункциональные вычисления".

Работа ALU

 

На вход ALU поступают один или два входных операнда, называемые X и Y, которые могут быть содержимым любого регистра в регистровом файле. Обычно возвращается один результат; при операции сложение/вычитание - два результата, после сравнения никакие результаты не возвращаются, а обновляются только флаги. Результаты операций ALU могут возвращаться в любой регистр регистрового файла. Входные операнды пересылаются из регистрового файла в ALU в течение первой половины цикла. Результаты передаются в регистровый файл в течение второй половины цикла. Т.о., ALU может считывать и записывать один и тот же регистр регистрового файла за один цикл.

При операциях ALU с фиксированной точкой операнды X и Y обрабатываются как 32-разрядные с фиксированной точкой. Передаются 32 старших бита из регистра в регистровом файле. Результат операции с фиксированной точкой - всегда 32-разрядное значение с фиксированной точкой. Некоторые операции с плавающей точкой (LOGB, MANT и FIX) также могут возвращать результаты с фиксированной точкой. Результаты с фиксированной точкой помещаются в 32 старших бита регистра в регистровом файле, а восемь младших бит обнуляются. Формат операндов и результатов с фиксированной точкой зависит от операции. В большинстве арифметических операций нет необходимости различать целые и дробные форматы. Входные операнды с фиксированной точкой в операциях, таких как масштабирование числа с плавающей точкой, обрабатываются как целые. В определенных состояниях, таких как переполнение, арифметические операнды и результаты с фиксированной точкой обрабатываются как числа в дополнительном коде.

Режимы работы ALU

 

Режим работы ALU определяется тремя битами в регистре MODEL Бит насыщения ALU влияет на операции ALU, которые возвращают результаты с фиксированной точкой; бит режима округления и бит границы округления влияют на операции с плавающей точкой в ALU и умножителе.

 

Бит M0DE1             Имя                Функция

13 ALUSAT1=             разрешено насыщение ALU (полномасштабная

величина с фиксированной точкой)

О=запрещено насыщение ALU

TRUNC          1=усечение;    О=округление к ближайшему

RND     321=округление до 32 бит; О=округление до 40 бит

Режим насыщения

В режиме насыщения при положительном переполнении в операциях с фиксированной точкой возвращается максимальное положительное число с фиксированной точкой (0x7FFF FFFF), при отрицательном переполнении возвращается максимальное отрицательное число (0x8000 0000). Если бит ALUSAT установлен, то результаты с фиксированной точкой при переполнении насыщаются. Если бит ALUSAT обнулен, то результаты с фиксированной точкой при переполнении не насыщаются, 32 старших бита результата возвращаются без изменений. Флаг переполнения ALU отражает результат ALU до насыщения.

Поделиться:





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



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