на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Операции над данными в СП с плавающей точкой
b>

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

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

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

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

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

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

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

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

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

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

5.2.2 Режимы округления данных с плавающей точкой

ALU поддерживает два режима округления стандарта IEEE
. Если бит TRUNC установлен, то ALU округляет результат к нулю (усечение). Если бит TRUNC обнулен, то ALU округляет к ближайшему.

5.2.3 Границы округления данных с плавающей точкой

В ADSP-2106x результаты операций ALU с плавающей точкой могут быть 32
- и 40-разрядными данными с плавающей точкой. Если бит RND32 установлен, то перед выполнением операции ALU (за исключением операции RND) восемь младших разрядов каждого входного операнда обнуляются, результат с плавающей точкой выводится в 32-разрядном формате стандарта IEEE. Восемь младших разрядов результата обнуляются. Если бит RND32 обнулен, то ALU получает 40-разрядные операнды неизменными и выводит 40-разрядные результаты операции с плавающей точкой и все 40 разрядов записываются в определенный регистр регистрового файла.

При преобразовании чисел из формата с фиксированной точкой в формат с плавающей точкой граница округления всегда 40 бит, независимо от состояния бита RND32.

5.3 Флаги состояния ALU

ALU обновляет семь флагов состояния в регистре ASTAT в конце каждой операции. Состояния этих флагов отражают результат самой последней операции ALU. В конце каждой операции сравнения ALU обновляет биты накопления сравнений в ASTAT. Также ALU обновляет четыре "залипших" флага состояния в регистре STKY. После установки "залипший" флаг остается в этом состоянии, пока явно не будет обнулен.

ъ

Имя

0

AZ

1

AV

2

AN

3

АС

4

AS

5

AI

10

AF

31-24

САС

Бит STKY

Имя

0

AUS

1

AVS

2

AOS

5

AIS

Описание:

Нулевой результат или потеря значащих разрядов в операции с плавающей точкой Переполнение ALU Отрицательный результат ALU Перенос для результата с фиксированной точкой Знак операнда X (операции ABS, MANT) Неправильная операция ALU с плавающей точкой Последняя операция ALU была операцией с плавающей точкой С АС С Регистр накопления сравнений (Compare Accumulation register) (результат 8 последних операций сравнения)

Описание:

Потеря значащих разрядов в операции с плавающей точкой Переполнение результата операции ALU с плавающей точкой Переполнение результата операции ALU с фиксированной точкой Неправильная операция ALU с плавающей точкой

Флаг обновляется в конце того цикла, в котором генерируется состояние, и доступен в следующем цикле. Если программа осуществляет прямую запись в регистры ASTAT или STKY в том же цикле, в котором ALU выполняет операцию, то явная запись имеет преимущество.

5.3.1 Нулевой флаг ALU (AZ)

Нулевой флаг определен для всех операций ALU с фиксированной и плавающей точкой
. AZ устанавливается, когда результат операции ALU равняется нулю. Установка AZ также сигнализирует о потере значащих разрядов результата с плавающей точкой (см. ниже). В противном случае он сброшен.

5.3.2 Флаги потери значащих разрядов (AZ, AUS)

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

5.3.3 Отрицательный флаг ALU (AN)

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

5.3.4 Флаги переполнения ALU (AV, AOS, AVS)

Переполнение определено для всех операций ALU с плавающей и с фиксированной точкой
. Для результатов с фиксированной точкой AV и AOS устанавливаются, когда результат операции "исключающее ИЛИ" (XOR) двух старших разрядов результата равен 1, иначе AV сброшен. Для результатов с плавающей точкой AV и AVS устанавливаются, когда результат после округления переполнен (несмещенный порядок >127), иначе AV сброшен.

5.3.5 Флаг переноса операции АШ с фиксированной точкой (АС)

Флаг переноса определен для всех операций ALU с фиксированной точкой
. Для арифметических операций с фиксированной точкой АС устанавливается, если произошел перенос за старший разряд результата, иначе он сброшен. АС сброшен для операций PASS, MIN, MAX, COMP, ASP, CLIP и логических операций. ALU считывает флаг АС в операциях с фиксированной точкой: сложение с переносом и вычитание с переносом.

5.3.6 Знаковый флаг ALU (AS)

Знаковый флаг определен только для операции ABS с фиксированной и с плавающей точкой и операции MANT
. AS устанавливается, если входной операнд отрицательный. Иначе он сброшен. ALU обнуляет бит AS для всех операций, кроме ABS и MANT; в отличие от процессоров семейства ADSP-2100, которые обновляют флаг AS только при операции ABS.

5.3.7 Флаги ошибки ALL) (Al, AIS)

Флаги ошибки ALU определены для всех операций ALU с плавающей точкой
. AI и AIS устанавливаются, когда: входной операнд NAN ("не число"); складываются бесконечности с противоположными знаками; вычитаются бесконечности одного знака; не установлен режим насыщения, а результат преобразования из формата с плавающей точкой в формат с фиксированной точкой переполнен, или производится операция преобразования над бесконечностью.

Иначе AI сброшен.

5.3.8 Флаг операции с плавающей точкой ALU (AF)

AF определен для всех операций ALU с фиксированной и с плавающей точкой
. Он устанавливается, если последняя операция ALU была с плавающей точкой, иначе он сброшен.

5.3.9 Накопление сравнений

Биты 31-24 в регистре ASTAT хранят флаги результатов до восьми операций сравнения ALU
. Эти биты формируют регистр со сдвигом вправо. После выполнения операции сравнения восемь бит сдвигаются в направлении младшего разряда (бит 24 теряется). Затем в старший бит (31) записывается результат операции сравнения. Если операнд X больше операнда Y, то бит 31 устанавливается, иначе он обнуляется.

6. Умножитель

Умножитель выполняет операции умножения с фиксированной или с плавающей точкой и умножение/накопление с фиксированной точкой. Умножение/накопление может быть выполнено и с накопленным сложением, и с накопленным вычитанием. Умножение/накопление с плавающей точкой может быть выполнено посредством параллельных операций ALU и умножителя. Для этого используются многофункциональные команды (см. далее раздел "Многофункциональные вычисления" в этой главе). При операциях с плавающей точкой умножитель оперирует 32 - или 40-разрядными операндами и результатами формата с плавающей точкой. При операциях с фиксированной точкой умножитель оперирует 32-разрядными данными с фиксированной точкой и выдает 80-разрядные результаты. Входные данные обрабатываются как целые или дробные, беззнаковые или в дополнительном коде.

Команды умножителя: умножение с плавающей точкой; умножение с фиксированной точкой; умножение/накопление со сложением для данных с фиксированной точкой (необязательное округление); умножение/накопление с вычитанием для данных с фиксированной точкой (необязательное округление); округление результата; насыщение результата; обнуление результата.

6.1 Работа умножителя

На вход умножителя поступают один или два входных операнда, называемые X и Y, которые могут быть содержимыми любого регистра в регистровом файле. При операциях с фиксированной точкой результаты могут накапливаться в любом из двух локальных регистров результата умножителя (MR) или записываться назад в регистровый файл. Результаты, сохраненные в регистрах MR, могут округляться или насыщаться в отдельных операциях. При операциях с плавающей точкой возвращается результат с плавающей точкой, который всегда записывается назад в регистровый файл.

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

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

6.2 Результаты с фиксированной точкой

Операции с фиксированной точкой возвращают 80-разрядные результаты в регистр MR. Положение результата в 80-разрядном поле зависит от его формата: результат дробный или целый (см. рис.2.2). Если результат посылается прямо в регистровый файл, то пересылаются те 32 разряда, которые соответствуют формату входных данных: т.е. разряды 63-32 для дробного результата или разряды 31-0 - для целого. Восемь младших бит 40-разрядного регистра регистрового файла заполняются нулями. Перед передачей дробного результата в регистровый файл он может быть округлен к ближайшему (см. далее). Если округление не определено, то ненужные разряды 31-0 отбрасываются, что соответствует усечению дробного результата (округление к нулю).

6.2.1 Регистры MR

Результат может пересылаться в один из двух 80-разрядных регистров результатов
(MR). Регистры MR имеют одинаковый формат - каждый делится на регистры MR2,MR1,MRO, содержимое которых может отдельно считываться или записываться в регистровый файл. Когда данные считываются из MR2, они дополняются по знаку до 32 бит (см. рис.2.3). Когда данные считываются из MR2, MR1, MR0 в регистровый файл, восемь младших бит 40-разрядного регистра регистрового файла заполняются нулями. При записи данных в MR2, MR1, MR0 из регистра регистрового файла считываются 32 старших бита, а восемь младших игнорируются. Данные, записанные в MR1, дополняются по знаку в MR2, т.е. старшие биты MR1 повторяются в 16 разрядах MR2. Однако записанные в MR0 данные не дополняются по знаку.

Два регистра MR обозначаются как MRF (основной) и MRB (дополнительный). Основной относится к тем регистрам, которые обычно активируются битом SRCU в регистре MODEL Когда используется только один регистр MR, бит SRCU активирует либо один, либо другой регистр для быстрого контекстного переключения. Однако, в отличие от других регистров, которые имеют дополнительный набор, регистры MRF и MRB могут использоваться в одно и то же время. Все команды накопления (с фиксированной точкой) могут определять любой регистр результата для накопления независимо от состояния бита SRCU.Т.о., вместо использования регистров MR как основного и дополнительного их можно использовать как два параллельных накопителя. Эта особенность облегчает работу с комплексными числами.

Пересылка данных между регистрами MR и регистровым файлом рассматривается как операция вычислительного устройства, т.к она задействуют умножитель. Т.о., хотя синтаксис команды передачи такой же, как и для любой другой команды передачи данных в регистровый файл или из него, передача данных в MR размещается в команде, в том месте, где обычно располагается вычисление. Например, процессор может выполнять умножение/ накопление параллельно со считыванием данных из памяти:MRF=MRF-R5*R0, R6=DM (II, М2); или может выполнять пересылку данных в MR вместо вычисления: R5=MR1F, R6=DM (I1,M2).

Страницы: 1, 2, 3



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.