рефераты

рефераты

 
 
рефераты рефераты

Меню

Реферат: Описание процессоров семейства ADSP рефераты

Далее представленны весовые значения битов в формате 1.15:

–20 2 –1 2 –2 2 –3 2 –4 2 –5 2 –6 2 –7 2 –8 2 –9 2 –10 2 –11 2 –12 2 –13 2 –14 2 –15

Числа в формате 1.15 Десятичный эквивалент

0x0001

0x7FFF

0xFFFF

0x8000

0.000031

0.999969

–0.000031

–1.000000

1.5.     Арифметика ALU

Все комманды ALU обрабатывают операнды, как двоичные 16-разрядные последовательности. Биты состояния: AV- переполнение,  AN – знак.

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

Логика бита переноса основана на арифметике чисел без знака. Он устанавливается если перенос сгенерирован 16-ым битом (MSB).

1.6.     Арифметика MAC

Операциив модуле MAC производятся над числами, представленными ввиде двоиных последовательностей и результет выдается в том же виде.

Процессоры семейства ADSP-2100 поддерживают два режима корректировки формата: дробный режим – для дробных операндов (формат 1.15) и  целочисленный режим для целых чисел формата 16.0.

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

В целочисленном режиме сдвига влево не происходит. Напрмер при умножении операндов 16.0 результат представляется ввиде 32.0. Сдвиг влево в этом случае не нужен, т.к. он изменит числовое представление результата.

1.7.     Резюме

Таблица 1.1 обобщает некоторые арифметические характеристики процессоров семейства ADSP-2100.

                                                                                                         Таблица 1.1

Операции Арифметические форматы
Операнды Результат
ALU
Сложение Знаковые или без знака Установка флагов
Вычитание Знаковые или без знака Установка флагов
Логические операции Двоичные строки Тот же, что и операнды
Деление Явно знаковые/без знака Тот же, что и операнды
Переполнение ALU Знаковые Тот же, что и операнды
Бит коррекции ALU 16-разрядные без знака Тот же, что и операнды
Насыщение ALU Знаковые Тот же, что и операнды
MAC (дроб.)
Умножение (Р) 1.15 Явно знаковые/без знака 32 разряда (2.30)
Умножение (MR) 1.15 Явно знаковые/без знака 2.30 сдвинутый к 1.31
Умножение с накоплением 1.15 Явно знаковые/без знака 2.30 сдвинутый к 1.31
Умножение с вычитанием 1.15 Явно знаковые/без знака 2.30 сдвинутый к 1.31
Насыщение МАС Знаковые Тот же, что и операнды
МАС(цел.)
Умножение (Р) 1.15 Явно знаковые/без знака 32 разряда (2.30)
Умножение (MR) 16.0 Явно знаковые/без знака 32.0 без сдвига
Умножение с накоплением 16.0 Явно знаковые/без знака 32.0 без сдвига
Умножение с вычитанием 16.0 Явно знаковые/без знака 32.0 без сдвига
Насыщение МАС Знаковые Тот же, что и операнды
Shifter
Логические сдвиги Баз знака/двоичные строки Тот же, что и операнды
Арифметические сдвиги Знаковые Тот же, что и операнды
Определение порядка Знаковые Тот же, что и операнды

2.   Арифметико-логический модуль ALU

Модуль ALU предоставляет набор стандартных арифметических и логических функций. Арифметические функции: сложение, вычитание, отрицание, инкремент, декремент и модуль.Они дополненны двумя примитивами деления, с помощью которых возможна реализация цикла многократного деления. Логические: OR, AND, XOR (исключающее ИЛИ) и NOT.

2.1.     Блок-схема ALU

На рисунке 2.1 показана структурная схема вычислительного модуля ALU.

Рис.2.1. Структурная схема ALU

 
                         

ALU – это 16-разрядное устройство с двумя 16-разрядными портами ввода данных X и Y,и одним портом вывода - R . ALU генерирует шесть сигналов состояния: ноль (AZ), негатив (AN),  перенос (AC), переполнение (AV), знак (AS) и quotient (AQ). В конце каждого цикла эти сигналы сохраняются в регистре состояния процессора (ASTAT).

Порт ввода X может принимать данные из двух источников: из регистра АX и с шины результатов R. R-шина соединяет выходные регистры всех вычислительных модулей. Регистр AX предназначен только для порта X и состоит из двух частей AX0 и  AX1. Эти регистры подключенны к DMD-шине. Система команд позволяет чтение регистра AX и с помощью PMD-шины, но прямого соединения с ней нет, эта операция использует модуль DMD-PMD обмена. Выводы регистров AX0 и AX1 реализованы таким образом, чтобы один обеспечивал ввод в ALU, а другой в это время управлял DMD-шиной.

Порт ввода Y также принимает данные из двух источников: из регистра AY и регистра обратной связи ALU – AF. Регистр AY привязан к порту Y  и состои из двух регистров AY0 и AY1. Эти регистры даступны для чтения и записи с DMD-шины и перезаписываемы с PMD-шины. Система комманд позволяет читать регистры AY0 и AY1 с помощью PMD-шины, но то же с использованием DMD-PMD модуля. Выводы ругистров AY0 и AY1 реализованы аналогично регистрам AX0 и AX1.

Выход ALU подключен к выходному регистру результата AR и через регистр обратной связи AF  на вход. AF – внутренний регистр ALU, который позволяет результату вычисления использоваться в качестве следующего операнда. Регистр AR имеет выход на DMD- и R-шины. В системе комманд предусмотрена возможность чтения регистра AR  посредством PMD-шины аналогично двум предыдущим случаям.

Любой из регистров ALU доступен для записи и чтения в течении цикла процессора (для чтения в начале цикла, для чтения - в конце). Таким образом, новое значение, записанное в конце одного цикла, может быть прочитанно лишь в начале следующего. Это позволяет входным регистрам записать в ALU опренд в начале цикла и считать следующий в конце того же цикла. Это так же позволяет сохранить содержимое регистра результата в памяти и прооперировать со следующим результатом в одном цикле.

ALU имеет двойные банки регистров AX, AY, AF и AR (на рис.2.1 это показано тенями). Но в один момент времени доступен только один банк. Доплнительный банк может быть активизирован для чрезвычайно быстрого контекстного переключения. В этом случае новая задача, подобно подпрограмме обработке прерывания, может выполнияться без сохранения текущих данных в памяти.

Выбор главного или альтернативного банка регистров определяется битом 0 регистра режимоа процессора MSTAT. Если этот бит – 0, то выбран главный банк, если – 1, то дополнительный.

2.2.     Стандартные функции

Стандартные функции ALU перечисленны в таблице 2.1.

                        Таблица 2.1

Функция Назначение
R= X+Y Сложение операндов X и Y
R= X+Y+CI Сложение операндов X и Y и бита коррекции
R= X-Y Вычитание операндов X из Y
R= X-Y+CI-1 Вычитание операндов X из Y с заемом
R= -X Инверсия X
R= -Y Инверсия Y
R= X+1 Инкремент X
R= Y+1 Инкремент Y
R= X-1 Декремент X
R= Y-1 Декремент Y
R= PASS X Операнд X не изменяет результата
R= PASS Y Операнд Y не изменяет результата
R= 0 Очистка результата
R= ABS X Модуль X
R= X AND Y Логическое умножение операндов X и Y
R= X OR Y Логическое сложение опреандов X и Y
R= X XOR Y Исключающее  ИЛИ  операндов X и Y
R= NOT X Отрицание X
R= NOT Y Отрицение Y

2.3.     Регистры ввода вывода ALU

Регистры ввода ALU перечисленны ниже.

               Регистры для порта X: AX0, AX1, AR, MR0, MR1, MR2, SR0, SR1.

                        Регистры для порта Y: AY0, AY1, AF.

                        Регистры для порта R: AR, AF.

Регистры MR0, MR1, MR2 являются регистрами результатов модуля MAC, а SR0, SR1 – модуля Shifter.

2.4.     Возможность мультиточности

Операции мультиточности в ALU связаны с сигналом carry-in и битом переноса AC. Операция сложение с переносом предназначена для сложения старших частей мультиточных чисел, также как, вычитание с заемом – для их вычитания.

2.5.     Режим насыщения ALU

Регистр AR имеет режим работы  - насыщение, в котором он устанавливается в минимальное отрицательное значение или максимальное положительное, если операция заканчивается переполнением. Эта функция регистра AR становится возможной при установке  3 регистра MSTAT.

           Таблица 2.2.

Переполнение (AV) Carry (AC) Содержимое AR
0 0 Результат на выходе ALU
0 1 Результат на выходе ALU
1 0 0111111111111111 (положит.)
1 1 1000000000000000 (отриц.)

2.6.     Режим блокировки переполнения

Режим блокировки переполнения разрешается при установки бита 2 регистра MSTAT. В этом режиме при переполнении бит AV устанавливается и при последующих операциях остается в этом состоянии, таким образом следующее переполнение уже не генерируется. Бит состояния AV можно очистить непосредственно  с DMD-шины.

2.7.     Деление

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

Обычная точность деления (32-разрядное делимое, 16-разрядный делитель, 16-разрядный остаток) реализуется за 16 циклов. Может быть получена большая или меньшая точность остатка. Делитель может быть сохранен в регистре AX0, AX1  или в любом регистре результатов R. Старший байт знакового делителя должен находиться либо в регистре AY1, либо в AF, без знакового – в AF. Младший байт делителя любого типа должен находиться в AY0. Остаток после деления будет записан в регистр AY0.

Первый из двух примитивов -  это команда «деление-знак» (DIVS), преназначена для деления чисел со знаком. Она вычисляет знаковый бит остатка выполняя операцию исключающее-ИЛИ для знаковых разрядов делителя и делимого. Регистр AY0 сдвигается на одну позицию таким образом, чтобы знаковый разряд переместился в позицию LSB. Вычисленный зныковый разряд сохраняется в бит AQ регистра состояния. Структура операции DIVS показанна на рисунке 2.2.

При делении чисел без знака операция DIVS не применяется. В этом случае бит AQ устанавливается в 0 вручную. Он показывает, что остаток должен быть положительным.

Рис 2.2. Структурная реализация команды DIVS

 
                 Второй примитив из раздела деления – это команда DIVQ, которая выполняется неоднократно и генерирует по одному биту частного. При простой точности деления чисел без знака команда DIVQ выполняется 16 раз, для такой же точности деления чисел со знаком операция выполняется 15 раз после вычисления знакового разряда с помощью команды DIVS. DIVQ сдвигает регистр AY0 влево на один разряд так, чтобы новый бит частного оказался в позиции LSB. Состояние бита AQ, которое генерируется на предыдущей операции, определяет операцию ALU для вычисления частичного результата. Если AQ=1, то ALU добавляет делитель к частичному результату в AF. Если AQ=0, то ALU вычитает делитель из частичного результата в AF. Так же как и в операции DIVS ALU выводит результат в регистр AF. Операция DIVQ проиллюстрирована на рис.2.3.

Рис 2.2. Структурная реализация команды DIVS

 
Формат результата при любом числовом представлении определяется форматом делителя и делимого. Пусть NL число разрядов влево и NR – это число разрядов вправо от двоичной точки делимого; DL и DR- соответственно тоже, только для делителя.  Тогда частное состоит из NL–DL + 1 битов слева от двоичной точки и содержит  NR– DR–1 битов справа.

      

   

Рис 2.3. Структурная реализация команды DIVQ

 
 

          Иногда необходимо некоторое изменение формата делимого и делителя. Например, если оба операнда знаковые и дробные (делимое в формате 1.31, а делитель – 1.15), то результат запишется в формате 1.15, т.о. для правильного результата необходимо, чтобы делимое было меньше делителя.

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