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

1.   писаниесигнальных процессоров семейства ADSP 2100

 

   Семейство процессоров ADSP-2100представляет собой совокупность программируемых микропроцессоров с общейструктурой, оптимизированную для обработки аналогового сигнала в цифровойформе, а так же для других прикладных целей. Различные микропроцессорыотличаются друг от друга преимущественно типом периферийных устройств, которыедополняют основную структуру. В различных членах семейства могут имеетсяпамять, таймер, последовательный и параллельный порты. Кроме того, процессоры ADSP-21msp58/59 включают аналоговыйинтерфейс для преобразования сигнала звуковой частоты.    

1.1.    Функциональные модули

   Таблица 1.1 показывает характеристики, которымиобладают отдельные члены семейства.

Таблица 1.1

/>

 

   Computational Units  (вычислительный модуль) –каждый процессор семейства ADSP-2100 содержит триполнофункциональных независимых вычислительных модуля: arithmetic/logicunit (ALU) – арифметичиско-логический, multiplier/accumulator (MAC) –накопитель, barrel shifter – сдвиговый расширитель.Все модули оперируют с16-разрядными словами, а также обеспечивают аппаратную поддержку мультиточности.

   Data Address Generators & Program Sequencer (генераторы адресов данных и программа sequencer) – два отдельных генератора адресов обеспечивают адреса длявстроенной и внешней памяти. Сдвоенные генераторы адресов данных позволяютпроцессору генерировать адреса для двух выборок операнда одновременно, чтомаксимизирует производительность.

   Memory (память) – в семействе ADSP-2100применяется архитектура памяти, в которой данные хранятся в секции данных, а всекции программ хранятся как данные так и команды. Все процессоры семействаимеют оперативную память состоящую и этих двух сегментов. Быстродействиевнутренней памяти позволяет процессору выбирать два операнда (один из областиданных, другой из области программ) в течении одного цикла.

   Serial Ports (последовательные порты) – обеспечиваютпоследовательный интерфейс связи с аппаратными средствами,  предназначеннымидля сжатия, хранения и обработки данных. Интерфейс совместим с большим числомизвестных устройств. Каждый порт может использовать как внутренний таймер, таки внешний. Последовательный порт 0 имеет многоканальные возможности.

   Timer –8-разрядный программируемый таймер/счетчик обеспечивает периодическую генерациюпрерываний.

   HostInterface Port (главныйсвязной порт) – обеспечивает прямое соединение  с главнымпроцессором ЭВМ. Например Motorola68000, Intel 8051 или другой процессор семейства ADSP-2100 могут быть легкосоединены с главным интерфейсом.     

   DMA Ports (порты DMA) – в ADSP-2181 внутренний (IDMA)и байтовый (BDMA) DMA порты обеспечиваютэффективную передачу данных из внутренней памяти и в неё. IDMA порт имеет мультиплексный адрес и 16-битную шину данных. IDMA портполностью асинхронный данные в него могут записываться, в то время когда ADSP-2181 полностью занят.

   Analog Interface (аналоговый интерфейс) – процессоры ADSP-21msp58/59 имеют встроенную схему для цифровойобработки аналогового сигнала. Эта схема содержит АЦП (ADC) иЦАП (DAC), аналоговые и цифровые фильтры и параллельныйинтерфейс связи с ядром процессора.  

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

·     генерировать следующий адреспрограммы;

·     выбирать следующую команду;

·     выполнять один или два шагапрограммы;

·     модифицировать один или двауказателя адреса данных;

·     выполнять вычисление.

   В этом же тактепроцессоры, которые имеют релевантные модули могут:

·     принимать и/или передаватьданные через последовательный порт;

·     принимать и/или передаватьданные через главный порт интерфейса;

·     принимать и/или передаватьданные через DMA порты;

·     принимать и/или передаватьданные через аналоговый интерфейс.

1.2.    Системный интерфейс и интерфейспамяти

   В каждом процессоре семейства ADSP-2100 четыревнутренних шины соединяют внутреннюю память с другими функциональными модулями:

-     шина адреса;

-     шина данных;

-     шина памяти программ;

-     шина памяти данных.

   Внешние устройствамогут получать контроль над шинами посредством сигналов предоставления (BR,BG).Процессоры ADSP-2100 могут работать в то время когда шины предоставлены другомуустройству, пока не требуется операции с внешней памятью.

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

1.3.    Система команд

   Процессоры семействаADSP-2100 используют единую систему команд для совместимости с устройствами сболее высокой интеграцией. Микропроцессоры ADSP-2171, ADSP-2181 иADSP-21msp58/59 имеют ряд дополнительных команд. Система команд позволяетвыполнять мультифункциональные команды за один такт  процессора, с другойстороны каждая команда может быть выполнена отдельно в своем такте. Ассемблеримеет алгебраический синтаксис, для повышения удобочитаемости легкостикодирования.

1.4.    Эффективность сигнальногопроцессора

   Сигнальный процессордолжен быть не только очень быстродействующим, но удовлетворять некоторымтребованиям в следующих областях:

·    Быстрая и гибкая арифметика –архитектура процессоров ADSP-2100 позволяет в одном производить такиеоперации, как умножение, умножение с накоплением, произвольное смещение, а также ряд стандартных арифметических и логических операций в одном циклепроцессора.

·    Расширенный динамическийдиапазон – 40-разрядный аккумулятор имеет восемь резервных бит защиты отпереполнения при последовательном суммировании, которые гарантируют, что потериданных быть не может.

·    Выборка двух операндов заодин цикл – при расширенном суммировании на каждом цикле процессора необходимодва операнда. Все члены семейства ADSP-2100 способныподдерживать обработку данных с двумя операндами, сохранены ли данные в памятиили нет.

·    Аппаратные циклические буферы– большой класс алгоритмов обработки цифро-аналоговых сигналов, включаяцифровые фильтры требуют наличия циклических буферов. Архитектура семейства ADSP-2100 имеет аппаратные средства для обработки указателя адреса wraparound, что упрощает реализацию круговых буферов.

·    Переход по нулю –повторяющиеся алгоритмы наиболее логично выражать через циклы. Программа Sequenser ADSP-2100 поддерживает работус циклическим кодом с нулем на верху, в объединении со структурой clearest это повышает эффективность системы. Также нет препядствий для работы с условными переходами.

2.   Основнаяархитектура

   В этом разделе описывается основная архитектурапроцессоров семейства ADSP-2100, схема которойприведена на рис. 2.1.   

2.1.     Вычислительные модули

   Как уже говорилось выше каждый процессор семейства ADSP-2100 содержит три независимых вычислительных модуля:

-     арифметико-логический (ALU);

-     умножение с накоплением (MAC);

-     расширитель (shiffter).

Эти устройства работают с 16-разрядными данными иобеспечивают аппаратную поддержку мультиточности.

   ALU выполняет ряд стандартныхарифметических и логических комманд в дополнене к примитивам деления. MAC выполняет одноцикловые операцииумножения, умножения/сложения, умножения/вычитания. Shiffterосуществляет логические и арифметические сдвиги, нормализацию, денормализацию иоперацию  получения порядка, атак же управление форматом данных, разрешая работус плавоющей точкой. Вычислительные модули размещаются последовательно друг задругом, таким образом чтобы выход одного мог стать входом другого в следующемцикле. Результаты работы модулей собираются на 16-разрядную R-шину.

   Все три модуля содержат входные и выходные регистры,которые доступны черех 16-разрядную DMD-шину. Комманда,выполняемые в модулях, берут в качестве операндов данные находящиеся врегистрах ввода  и после выполнения записывают результат в регистры вывода.Регистры являются как бы промежуточным хранилищем между памятью ивычислительной схемой. R-шина позволяет результатуодного вычисления стать операндом к другой операции. Это позволяет сэкономитьвремя обходясь без лишних пересылок модуль-память.

                        /> 

/> <td/>

Рис.2.1 Основная структурная схема процессора семейства ADSP-2100

 
2.2.    Генераторы адресов данных ипрограмма sequencer

   Дваспециализированных генератора адресов данных (DAGs)и мощная программа sequencer гарантируют эффективное использованиевычислительных модулей. DAGs обеспечивают адреса памяти, когда необходимопоместить данные из памяти в регистры ввода вычислительных модулей, либосохранить в результат из выхоных регистров. Каждый DAGотвечает за четыре указателя адреса. Если указатель используется для косвеннойадресации то измениятся значение некоторого регистра. С двумя генераторамипроцессор может выдавать два адреса одновременно для выборки из памяти двухоперандов.

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

   DAG1 обеспечивает адреса толькодля данных, DAG2 – для данных и программ. Когда врегистре состояния (MSTAT) установлен соответствующийбит режима, адрес вывода DAG1 прежде чем попасть нашину адреса инвертируется. Эта особенность облегчает работу в двоичной системе.

   Программа Sequenсer обеспечивает последовательность команд и адресацию памятипрограммы. Sequencer управляется регистромкоманд, который указывает на команду, которая в данный момент выполняется.Выбранные команды записываются в регистр команд за один такт процессора ивыполняются в течении следующего. Чтобы уменьшить количество циклов, sequencer поддерживает работу с условными переходами.

2.3.    Шины

   Процессоры семейства имеют пять внутренних шин.Шины адреса программы (PMA) и адреса данных (DMA)связаны с адресами памяти данных и программы. Шина данных программы (PMD) и шина данных (DMD) используются для передачи информации связаннойс областями памяти. Шинымультиплексированы в одну внешнюю шину адреса и одну внешнюю шину данных. R-шина предназначена для передачи промежуточныхрезультатов непосредственно между вычислительными модулями.

   Адресная шина PMA шириной 14 бит обеспечивает достум к 16Кбайтам смешанной системы команд и данных. 24-разрядная шина PMD предназначена для работы с 24-битными командами.

   Адресная шина DMAшириной 14 бит, обеспечивает прямой доступ к 16Кбайтам области данных.16-разрядная шина DMD предназначена для внутренних пересылок междулюбыми регистрами процессора  и регистров с памятью в одиночном цикле. Адрес памяти данных исходит из двух источников: абсолютное значение,определенное в системе команд (прямая адресация) или вывод данных адресуетгенератор (косвенная адресация). Воспользоваться  данными из области командможно лишь с помощью косвенной адресации.

   Шина данных памятипрограммы (PMD) предназначена для передачи данных  ввычислительные модули и считывания результата вычислений через PMD-DMD модуль обмена. Этот модуль позволяет передавать данные от одной шины кдругой. Он имеет аппаратные средства для перехода от 8-разрядной шины к другой.

 

3.   Внутренниепереферийные устройства

 

   Этот разделописывает дополнительные функциональные модули, которые включены в различныепроцессоры ADSP-2100 семейства.

3.1.    Последовательные порты

 

   Большенство процессоров семейства ADSP-2100имеют по два последовательных двунаправленных порта. Порты – синхронные ииспользуют кадровые сигналы для контроля за приемом-передачей данных. Каждыйпорт имеет внутренний генератор частоты, но в то же время может использоватьвнешний генератор. Сигналы синхронизации могут вырабатываться как самим портом,так и внешним устройством. Длина кадра обмена может меняться от трех до шестибит. Последовательный порт SPRT0 имеет многоканальныевозможности и пзволяет обмен данными произвольной длины от 24 до 32 байт.Второй порт SPORT1 может быть сконфигурирован с помощьювнешних прерываний IRQ0 и IRQ1.

3.2.    Таймер

   Регистр счета (16-разрядов) определяет время генерациипрерываний, прерывание вырабатывается когда значение регистра равно нулю.

3.3.    Главный интерфейсный порт (HIP)

   Главный интерфейсный порт – параллельный портввода-вывода осуществляет прямое соединение с процессором. Через негопроизводится обмен между ADSP-2100 и памятью главнойЭВМ. HIP состоит из регистров, через которые ADSP-2100 и главный процессор обмениваются информацией осостоянии и данными. HIP может быть сконфигурированследующим образом:

-     8-разрядная или 16-разрядная шина;

-     мультиплексная шина данных/шина адреса или отдельно шина данных и шинаадреса;

-     чтение  стробирующих сигналов READ/WRITE.

3.4.    DMA порты (ADSP-2181)

   ADSP-2181 два DMA порта внутренний (IDMA) порт и байтовый (BDMA). IDMA порт обеспечивает эффективнуюсвязь между главной системой и сигнальным процессором. Он используется длясвязи с внутренней памятью программы и памятью данных за один такт процессора. IDMA порт имеет 16-разрядный мультиплексный адрес и шинуданных. IDMA порт полностью ассинхронный и можетработать даже когда процессор полностью занят.

   Байт памяти контроллера DMAпозволяет загружать и сохранять комманды программ и данные, находящиеся впамяти. BDMA схема способнаобращаться к ячейке памяти, в то время как процессор работает в обычном режиме,используя только один такт процессора для передачи 8-,16- или 24-разрядныхданных.

3.5.    Аналоговый интерфейс

   Входной аналоговый интерфейс состоит из входныхусилителей и 16-разрядного аналогоцифрового преобразователя (ADC).Аналогично на выходе находится цифроаналоговый преобразователь и выходнойдифференциальный усилитель.

4.   ADSP-2100 — средства  разработки

   Семейство ADSP-2100сопровождается полным набором программного обеспечения и аппартных средств дляразработки. Система средств разработки для ADSP-2100включает утилиты программного обеспечения для разработки программы и EZ-комплект для отладки аппаратных средств.

   Программное обеспечение включает:

·    System Builder (системный составительпрограммы) – определяет структуру аппаратной системы. Он описывает количествовнешней памяти и доступные порты ввода/вывода.

·    Assembler (ассемблер) – транслируетисходный код  и модули данных и обеспечивает синтаксис высокого уровня. Вдополнение к полной диагностике системы Ассемблер обеспечивает макро обработку:включение файлов и модульную обработку кода.

·    Linker (компановщик) – связываетраздельные модули программы, получая связанный код, и направляет его каппаратным средствам, описанным с помощью System Builder.

·    Simulator (тренажер) – выполняетинтерактивное моделирование аппаратной конфигурации описанной System Builder. Он отмечает запрещенныекоманды и поддерживает полную символическую трансляцию и дизассемблирование.

·    PROM Splitter – этот модуль по выходным данным компановщикагенерирует код совместимый с форматом памяти PROM.

·    C compiler (С транслятор) – читает исходники написаные на С вформате ANSI и код на языке семейства ADSP-2100,готовый к ассемблированию.         

Вычислительные модули

1.   Краткоеописание1.1.    Двоичные строки

   Двоичные строки — самое простое представление чисел впроцессорах семейства ADSP-2100. Этот формат,например,  используют  элементарные логические функции: NOT,OR, AND, XOR и т.д. Вычислительный модуль ALUобрабатывает эти числа ввиде двоичных последовательностей не привлекаявозможности работы с плавающей точкой и знаковым разрядом.

1.2.    Беззнаковые числа

   Под двоичными числами без знака понимаютсяположительные числа. Диапазон их представления в процессоре в два раза большечем у чисел со знаком. Числа большой точности обрабатываются как беззнаковые.

1.3.    Числа со знаком: двойное дополнение

   Расматривая арифметику семейства ADSP-2100знаковые числа можно отнести к числам с двойным дополнением. Дольшенстваопераций процессора поддерживают работу с двойным дополнением. Процессорысемейства ADSP-2100 не поддерживают работу с остаткамии BCD-форматом.

1.4.    Дробное представление: 1.15

Арифметики ADSP-2100 приспособленнадля работы с числами в дробном двочном формате, называемом 1.15. В этом форматеимеется один знаковый разряд (MSB) и пятнадцать дробныхбитов.

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

–202–1 2–2 2 –3 2 –4 2–5 2–6 2–7 2 –8 2 –9 2 –10 2 –112–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 Результат на выходе ALU 1 Результат на выходе ALU 1 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, т.о. для правильного результата необходимо, чтобыделимое было меньше делителя.

          Чтобы разделить двацелых числа (делимое в формате 32.1, а делитель – 16), необходимо передделением привести делимое к формату 31.1, т.е. сдвинуть его влево на одинразряд.           

Делимое:               BBBBB.BBBBBBBBBBBBBBBBBBBBBBBBBBB

                                   NL                               NR

Делитель:              BB.BBBBBBBBBBBBBB

                               DL            DR

Частное:                BBBB.BBBBBBBBBBBB

                                    (NL–DL+1)  (NR–DR–1)

          Алгоритм переполняется, если результат непредставляется в формате частного, как вычислено  выше и когда делитель равеннулю или меньше делимого.

2.8.    Регистр состояния ALU

Назначение битов регистра ASTATописано ниже:

·    AZ – ZERO — логическое сложение всех битов регистра результатов ALU.Устанавливается в 1, если результат операции равен нулю.

·    AN – NEGATIV -  знаковый разряд результата ALU. Единица, еслирезультат отрицательный.

·    AV – OVERFLOW – устанавливается вединицу, если происходит переполнение ALU.

·    AC – CARRY – бит переноса.

·    AS – SIGN –знаковый разряд входного X-порта ALU.Необходим только для команды ABS.

·    AQ – QUOTIENT –бит частного. Генерируется только командами DIVS и DIVQ.

3.   Вычислительныймодуль умножения с накоплением (MAC)

Вычислительный модуль МАС обеспечивает быстрое умножение,умножение с добавлением, умножение с вычитанием, функции насыщения и очистка вноль. Функция обратной связи позволяет части результата в одном цикле бытьодним из сомножителей в следующем.

3.1.    Описание блок-схемы МАС

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

МАС имеет два входных 16-разрядных порта Xи Y и 32-разрядный порт вывода результата P. 32-разрядный результат поступает в 40-разрядный блоксложения/вычитания, который либо прибавляет, либо вычитает текущий результат изрегистра результата МАС (MR), либо передает текущийрезультат непосредственно в MR (регистр MR имеет 40 разрядов). Фактически регистр MRсостоит из трех (MR0 и MR1 –16-разрядные и MR2 – 8-рахрядный) регистров.

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

                          />

Блок сложения/вычитания имеет более 32 разрядов затем, чтобыучесть промежуточные переполнения в ряде операции умножения с накоплением. Битпризнака МV (переполнение) устанавливается в единицу,если значение аккумулятора превышает 32 разряда, т.е. в старшей части регистрарезультата MR есть девять значащих битов (без знака).

Регистры ввода-вывода подобны регистрам ALU.

Порт Х может принимать данные из регистра MXили из любого другого регистра на R-шине (результата). R-шина соединяет выходные регистры всех вычислительныхмодулей, для непосредственного использования результатов вычислений в качествевходных операндов. Регистр MX состоит из двух: MX0 и MX1. Они читаются изаписываются с DMD-шины. Выводы  регистров MX0 и MX1 устроены таким образом, чтоодин поставляет множитель в блок умножения, а другой управляет DMD-шиной.

Порт Y принимает данные из регистра MY или регистра обратной связи MF. MY так же разбит на два регистра (MY0и MY1), доступ к которым осуществляется с DMD-шины и возможна запись в низ с PMD-шины.Система команд предусматривает чтение этих регистров с помощью PMD-шины, но прямого доступа для этой операции нет, в этомслучае используется модуль DMD-PMD обмена. Выводырегистра MY устроены аналогично MX.

Результат умножения поступает либо в блоксложения/вычитания, либо в регистры MY или MF. Регистр обратной связи MF позволяет 16-31-разрядному результату вычисления впредыдущем цикле становится операндом умножения на входе Y,в следующем. 40-разрядный регистр MR разделен на трисекции (MR0, MR1, MR2). Содержимое любой из них может быть выведено на DMD- или R-шину и записано с DMD-шины.

Любой из регистров МАС может читаться и записываться в одномцикле (чтение в начале цикла, запись  — в конце). Прочитанное содержимоерегистра в начале одного цикла записано в конце предыдущего, следовательноновое значение регистра  может быть прочитано только в течении следующегоцикла. Это позволяет входному порту предоставлять операнд для МАС в началецикла и оперировать со следующим значением из памяти в конце того же цикла. Этоотносится и к выходному регистру.

Регистры MR, MF,MX, MY продублированыво вторичном банке (на рис.3.1. он показан на заднем плане). Одновременнодоступен лишь один из банков. Дополнительныйбанк регистраторов может быть активизирован для чрезвычайно быстрогоконтекстного переключения. Таким образом новая задача, типа подпрограммыобработки прерывания, может выполняться без сохранения  текущих данных впамяти.

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

3.2.    Операции МАС

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

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

Набор стандартных операций перечислен в таблице 3.1.

                                                                                                              Таблица 3.1

Название Назначение X×Y Умножение X на Y MR+X×Y Умножение и сложение с MR MR-X×Y Умножение и вычитание из MR Очистка MR

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

В дробном режиме выходной регистр Pкорректирует формат, т.е. прежде чем добавить значение в MRоно сдвигается на один разряд влево. Таким образом, бит 31 регистра P запишется в бит 32 регистра MR, а0-ой бит – в первый. В позицию LSB, при  этомзаписывается ноль. На рисунке 3.2. показан дробный формат работы модуляумножения.

Рис.3.2. Дробный формат

  />

          В целочисленном формате(рис.3.3) регистр P не сдвигается прежде чемприбавиться к MR.

Рис.3.3. Целочисленный формат

  />

          Выбор режимаосуществляется установкой 4 бита регистра MSTAT процессора. Если этот бит в 1,то выбран целочисленный режим. В любом формате блок умножения формирует 32-разрядныйрезультат и передает его в блок сложения/вычитания, где получается конечноезначение операции, которое записывается в MR.

         

3.2.2.       Входные форматы

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

1.    Знаковый´  знаковый – используется приумножении двух знаковых чисел простой точности или двух старших частей знаковыхчисел двойной точности.

2.    Беззнака ´ знаковый (знаковый ´ без знака) -  используется приумножении верхней части знакового числа на нижнюю часть другого или дляумножения знакового числа простой точности с числом той же точности без знака.

3.    Беззнака ´ без знака – используетсяпри умножении чисел простой точности без знака, или  нижних частей знаковыхчисел двойной точности.

3.2.3.       Регистры ввода вывода МАС

Регистры  для входногопорта X – MX0, MX1, AR, MR0, MR1, MR2, SR0, SR1.  

Регистры  для входногопорта Y – MY0, MY1, MF. 

Регистры  для выходногопорта R – MR (MR0, MR1, MR2), MF.

3.2.4.       Операции над регистром MR

 Какпоказано на рис.3.1 регистр MR разбит на три секции: MR0 (биты0-15), MR1 (биты 16-31) и MR2 (биты 32- 39).  Каждая из них может бытьзагружена с DMD-шины и выведена на R- илиDMD-шину. Регистр MR2  связанс младшими восемью разрядами этих шин. Когда MR2выводится на R- или DMD-шину это означает, чтознак расширен до 16 разрядов.

3.2.5.       Насыщение и переполнение МАС

После каждой операции блок сложения/вычитания генерируетсигнал переполнения MV, который подключен регистру состояния арифметикипроцессора ASTAT. Бит MV устанавливается в 1 еслирезультат сложения выходит за границы регистров MR1/MR2 – 32 бита, т.е. если один из  девяти старших  разрядоврегистра MR не 0, или все нули.

Регистр MR имеетвозможность насыщения в определённом положительном или отрицательном значении,если происходит переполнение. Насыщение зависит от состояния бита MV регистрасостояний арифметики ASTAT и бита MSB регистра MR2. Таблица 3.2. описываетоперацию насыщения.

                                                                                                                                        Таблица3.2

MV MSB Содержимое регистра MR после операции 0 или 1 Без изменений 1 00000000 0111111111111111 1111111111111111 (положит.) 1 1 11111111 1000000000000000 0000000000000000 (отрицат.)

Насыщение в МАС являетсяскорее командой, чем режимом, как в ALU. Она используется призавершении последовательности умножений с накоплением, таким образом, чтобыпромежуточные переполнения не привели сумматор к насыщению.

Переполнение больше MSB недопустимо. В обратном случае знаковый разряд будет  потерян инасыщение не будет правильным. Однако, чтобы достигнуть этого состояния требуется 255 переполнений. 

3.2.6.       Округление

Сумматор может округлять 40-разрядный результат до 15-16разряда. Округление можно отнести к системе команд микропроцессора. Округленныйрезультат направляется либо в MR, либо в регистробратной связи MF. Когда для вывода  используется MF, в него записывается16-разрядный округленный результат. Аналогично, если для вывода выбран MR, то в MR1 записываются 16 разрядовокругленного результата, а в MR2 – эффект округления,таким образом получается 24-разрядный округленный результат.

Сумматор использует несмещенную схему округления.Стандартный метод смещенного округления состоит в записи 1 в 15-ю разряднуюпозицию. Этот метод вызывает ряд положительных смещений, начиная с середины(когда MR=0х8000), округляя результат вверх. Сумматорже устраняет это смещение, устанавливая 16 бит в 0, когда значение регистра MR достигает середины. При этом четные значения MR1 округляются  вниз, а нечетные вверх. Таким образомполучается однородная последовательность смещений.

Пример типичной операции округления:

                          MR2       MR1              MR0

Неокругленное значение: xxxxxxxx xxxxxxxx00100101 1xxxxxxxxxxxxxxx

Бит 15 = 1

Прибавляем 1 к 15 разряду и смещаем                 1

Округленное значение :   xxxxxxxx xxxxxxxx00100110 0xxxxxxxxxxxxxxx

                          MR2      MR1              MR0

Неокругленное значение: xxxxxxxx xxxxxxxx01100110 1000000000000000

Бит 15 = 1 и биты 0-14 = 0

Прибавляем 1 к разряду 15 и сдвигаем              1

                         xxxxxxxx xxxxxxxx01100111 0000000000000000

Сейчас бит 16 = 1, устанавливаем его в 0

Округленно значение :    xxxxxxxx xxxxxxxx01100110 0000000000000000

В последнем случае 16 бит устанавливается в 0. Этоталгоритм применяется на каждой операции округления.

3.2.7.       Смещенное округление

Режим смещенного округления возможен в процессорах ADSP-217x, ADSP-218x, и ADSP-21msp58/59. Этотрежим выбирается путем установки бита BIARND регистра управления SPORT0. Если BIARND=0, то используется операция несмещенного округления,если BIARND=1, то смещенного.

Пример:

      MR перед RND    Смещенный результатRND   Несмещенный результат RND

          00-0000-8000                               00-0001-8000                                 00-0000-8000

     00-0001-8000                                00-0002-8000                                00-0002-8000

     00-0000-8001                               00-0001-8001                                 00-0001-8001

     00-0001-8001                                00-0002-8001                                00-0002-8001

     00-0000-7FFF                              00-0000-7FFF                               00-0000-7FFF

     00-0001-7FFF                              00-0001-7FFF                               00-0001-7FFF 

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

4.   BARRELSHIFTER

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

4.1.    Описание блок схемы

Рисунок 4.1 иллюстрирует блок схему модуля сдвига. Shifter может быть разделен наследующие части: массив сдвига, логика OR/PASS, детектор порядка и логикасравнения порядка.

Рис.4.1 Структурная схема модуля Shifter

  />

Массив сдвига принимает 16-разрядные данные и в одном циклеможет поместить их в любой позиции 32-разрядного поля вывода. Это дает 49возможных размещений в поле вывода. Размещение 16-ти входных разрядовопределяется кодом управления C и сигналом ссылки HI/LO.

Массив сдвига и связная логика OR/PASS окружены наборомрегистров. Входной регистр Shifter (SI)содержит данные для массива сдвига и детектора порядка. SI-16-разрядный,записывается и читается с DMD-шины. В качестве входных регистров для массивасдвига и детектора порядка могут служить AR, SR или MR, подключенные через R-шину.Выходной 32-разрядный регистр SR разделенна две части по 16 разрядов: SR0 и SR1.Они могут быть загружены с DMD шиныи выведены на R- или DMD-шину.Также SR подключен к блоку OR/PASS логики для проведения сдвигов двойной точности.

еще рефераты
Еще работы по компьютерным наукам