Меню
Поиск



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

Цифровые сигнальные процессоры

Чем же отличается цифровой процессор от обычного микропроцессора ? В первую очередь - архитектурой и системой команд. В основу построения DSP (Digital Signal Processor) положены следующие принципы :

·использование гарвардской архитектуры

·сокращение длительности командного цикла

·применение конвейеризации

·применение аппаратного умножителя

·включение в систему команд специальных команд цифровой обработки сигнала

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

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

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

Алгоритм выполнения сложения и деления в арифметико-логическом устройстве, на примере цифрового сигнального процессора семейства ADSP-21xx.

Все устройства в процессорах этого семейства 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. Более того здесь сдвиг не нужен, ибо он изменит значение результата.

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

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

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

АЛУ

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

Структура АЛУ

На рисунке 7 показана блок-схема АЛУ.

АЛУ имеет три 16-битных регистра, доступных для программиста : X,Y -регистры операндов, а R - регистр результата. АЛУ использует входной сигнал переноса ( CI ), который означает бит переноса в регистре арифметического состояния ( ASTAT ). АЛУ генерирует шесть статусных сигналов :

·      результат 0 ( AZ )

·      отрицательный ( AN )

·      перенос ( AC )

·      переполнение результата ( AV )

·      знак (AS )

·      состояние частного ( AQ )

В конце цикла все сигналы арифметического статуса изменяют состояния соответствующих битов в регистре арифметического статуса ( ASTAT ).

Входной порт X может принимать данные из двух источников : из блока регистров АХ или с шины результата. Шина результатов ( R ) соединяет выходные регистры всех вычислительных устройств, позволяя им быть непосредственно операндами инструкций. Блок регистров АХ состоит из двух регистров : АХ0 и АХ1. Эти регистры читаемы и могут быть записаны через шину DMD. Выход блока регистров АХ таков, что один из них может

 



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

Входной порт Y  также может принимать данные из двух источников : из набора регистров АY или из регистра обратной связи AF. Блок регистров AY состоит из двух регистров AY0 и  AY1. Эти регистры читаемы и могут быть записаны через шину DMD, а также могут быть записаны через шину PMD. Выход блока регистров AY  совпадает по своим возможностям с блоком регистров АХ.

Результат работы АЛУ загружается либо в регистр обратной связи AF, либо в регистр результата AR. Регистр обратной связи - внутренний регистр АЛУ, который позволяет использовать результат непосредственно, как операнд Y. Регистр результата AR может записываться как на шину DMD, так и на шину результатов. Он также непосредственно загружаем с шины DMD.

Набор инструкций позволяет осуществить чтение этих регистров с шины PMD, но при этом нужно использовать устройство обмена между DMD-PMD шинами.

Любые регистры, связанные с АЛУ могут как читаться, так  и писаться в одном цикле. Регистры читаются в начале цикла и записываются в конце. Новое значение, записанное в регистр, не может быть считано до начала следующего цикла.

АЛУ содержит два набора регистров AR, AF, АХО, АХ1, AYО, AY1. В каждый момент времени домен  лишь один набор. Дополнительный набор регистров может быть сделан  активным (например, при обработке прерывания) для очень быстрого переключения контекстов. Новая задача, такая, как обработка прерывания,  может быть выполнена без запоминания текущего состояния регистров  АЛУ.

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

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

Вот список стандартных функций АЛУ:


R=X+Y

сложение Х и Y

R=X+Y+Cl

сложение Х и Y с переносом

R=X – Y

вычесть Y из Х

R=X – Y – Cl – 1

вычесть Y из Х с заемом

R=Y – Х

вычесть Х из Y

К=Y – X – Cl – 1

вычесть Х из Y с заемом

R– X

арифметическое отрицание Х

R=  – Y

арифметическое отрицание Y

R=Y+1

инкремент Y

R=Y – 1

декремент Y

R=PASS Х

результат равен операнду Х

R=PASS Y

результат равен операнду Y

R=O (PASS 0)

очистить результат

R=ABS Х

результат равен абсолютному значению Х

R=X AND Y

логическое и (AND) Х и Y

R=X OR У

логическое или (OR) Х и У

R=X XOR У

исключающее логическое или (XOR) Х и У

R=NOT Х

логическое отрицание Х

R=NOT Y

логическое отрицание У


Для обработки чисел с повышенной точностью предусмотрен сигнал  переноса и флаг переноса (AC). Операция сложения с переносом (+Cl)  предназначена для сложения "верхних" частей чисел с повышенной  точностью. Вычитание с заемом (+CI-1) предназначено для вычитания "верхних" частей чисел с повышенной четностью. 

Режим “насыщения” и “защелки”

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

Реализация режима насыщения существенно отличается от таковой в МАС-е, где режим насыщения указывается в самой инструкции.

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

Режим "защелки" переполнения АLU, разрешаемый битом 2 в регистре  режима и статуса процессора (MSTAT), приводит к тому, что флаг  переполнения АV остается поднятым после переполнения, несмотря на то, что последующие инструкции могут не генерировать переполнения. В этом  режиме флаг АV может быть очищен только прямой записью нуля через  шину DMD.

Деление

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

Деление с одинарной точностью, с 32-битным делимым и 16-битным делителем, дающее 16-битное частное, выполняется за 16 циклов. Также могут быть вычислены частные меньшей и большей разрядности. Делитель  может содержаться в АХ0, АХ1 или любом из R регистров. Старшая часть  знакового делимого может содержаться в АY1 или AF. Старшая часть  беззнакового делимого может содержаться только в AF. Младшая часть  делимого должна быть в АY0. После завершения операции деления частное  находится в AY0.

Первый из двух примитивов деления, "делить знак" (DIVS),  выполняется в начале деления при делении знаковых чисел. Эта инструкция  получает знаковый бит делимого, проведя операцию “исключающее или”  со знаками делимого и делителя. Регистр AY0 сдвигается на 1 разряд, так что вычисленный знаковый бит помещается в самый младший (правый)  разряд. Полученный знаковый бит также загружается во флаг АQ регистра  арифметических флагов. Самый старший (левый) бит AYO сдвигается в  младший бит AF, а оставшиеся старшие 15 бит AF загружаются из 15 младших бит регистра R из АЛУ, что в свою очередь пересылает содержимое  входного регистра Y прямо в регистр результата R. Последовательный  эффект состоит в том, чтобы сдвинуть влево пару регистров AF-AYO и  переслать знак частного в самый младший разряд. Рисунок 8  иллюстрирует операцию DIVS.

 


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

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




Новости
Мои настройки


   рефераты скачать  Наверх  рефераты скачать  

© 2009 Все права защищены.