Процессоры семейства имеют пять внутренних шин. Шины адреса программы (PMA) и адреса данных (DMA) связаны с адресами памяти данных и программы. Шина данных программы (PMD) и шина данных (DMD) используются для передачи информации связанной с областями памяти. Шины мультиплексированы в одну внешнюю шину адреса и одну внешнюю шину данных. R-шина предназначена для передачи промежуточных результатов непосредственно между вычислительными модулями.
Адресная шина PMA шириной 14 бит обеспечивает достум к 16Кбайтам смешанной системы команд и данных. 24-разрядная шина PMD предназначена для работы с 24-битными командами.
Адресная шина DMA шириной 14 бит, обеспечивает прямой доступ к 16Кбайтам области данных. 16-разрядная шина DMD предназначена для внутренних пересылок между любыми регистрами процессора и регистров с памятью в одиночном цикле. Адрес памяти данных исходит из двух источников: абсолютное значение, определенное в системе команд (прямая адресация) или вывод данных адресует генератор (косвенная адресация). Воспользоваться данными из области команд можно лишь с помощью косвенной адресации.
Шина данных памяти программы (PMD) предназначена для передачи данных в вычислительные модули и считывания результата вычислений через PMD-DMDмодуль обмена. Этот модуль позволяет передавать данные от одной шины к другой. Он имеет аппаратные средства для перехода от 8-разрядной шины к другой.
Этот раздел описывает дополнительные функциональные модули, которые включены в различные процессоры ADSP-2100 семейства.
Большенство процессоров семейства ADSP-2100 имеют по два последовательных двунаправленных порта. Порты – синхронные и используют кадровые сигналы для контроля за приемом-передачей данных. Каждый порт имеет внутренний генератор частоты, но в то же время может использовать внешний генератор. Сигналы синхронизации могут вырабатываться как самим портом, так и внешним устройством. Длина кадра обмена может меняться от трех до шести бит. Последовательный порт SPRT0 имеет многоканальные возможности и пзволяет обмен данными произвольной длины от 24 до 32 байт. Второй порт SPORT1 может быть сконфигурирован с помощью внешних прерываний IRQ0 и IRQ1.
Регистр счета (16-разрядов) определяет время генерации прерываний, прерывание вырабатывается когда значение регистра равно нулю.
Главный интерфейсный порт – параллельный порт ввода-вывода осуществляет прямое соединение с процессором. Через него производится обмен между ADSP-2100 и памятью главной ЭВМ. HIP состоит из регистров, через которые ADSP-2100 и главный процессор обмениваются информацией о состоянии и данными. HIP может быть сконфигурирован следующим образом:
- 8-разрядная или 16-разрядная шина;
- мультиплексная шина данных/шина адреса или отдельно шина данных и шина адреса;
- чтение стробирующих сигналов READ/WRITE.
ADSP-2181 два DMAпорта внутренний (IDMA) порт и байтовый (BDMA). IDMAпорт обеспечивает эффективную связь между главной системой и сигнальным процессором. Он используется для связи с внутренней памятью программы и памятью данных за один такт процессора. IDMA порт имеет 16-разрядный мультиплексный адрес и шину данных. IDMA порт полностью ассинхронный и может работать даже когда процессор полностью занят.
Байт памяти контроллера DMA позволяет загружать и сохранять комманды программ и данные, находящиеся в памяти. BDMAсхема способна обращаться к ячейке памяти, в то время как процессор работает в обычном режиме, используя только один такт процессора для передачи 8-,16- или 24-разрядных данных.
Входной аналоговый интерфейс состоит из входных усилителей и 16-разрядного аналогоцифрового преобразователя (ADC). Аналогично на выходе находится цифроаналоговый преобразователь и выходной дифференциальный усилитель.
Семейство ADSP-2100 сопровождается полным набором программного обеспечения и аппартных средств для разработки. Система средств разработки для ADSP-2100 включает утилиты программного обеспечения для разработки программы и EZ-комплект для отладки аппаратных средств.
Программное обеспечение включает:
· SystemBuilder(системный составитель программы) – определяет структуру аппаратной системы. Он описывает количество внешней памяти и доступные порты ввода/вывода.
· Assembler (ассемблер) – транслирует исходный код и модули данных и обеспечивает синтаксис высокого уровня. В дополнение к полной диагностике системы Ассемблер обеспечивает макро обработку: включение файлов и модульную обработку кода.
· Linker (компановщик) – связывает раздельные модули программы, получая связанный код, и направляет его к аппаратным средствам, описанным с помощью System Builder.
· Simulator (тренажер) – выполняет интерактивное моделирование аппаратной конфигурации описанной SystemBuilder. Он отмечает запрещенные команды и поддерживает полную символическую трансляцию и дизассемблирование.
· PROMSplitter – этот модуль по выходным данным компановщика генерирует код совместимый с форматом памяти PROM.
· Ccompiler (С транслятор) – читает исходники написаные на С в формате ANSI и код на языке семейства ADSP-2100, готовый к ассемблированию.
Вычислительные модули
Двоичные строки - самое простое представление чисел в процессорах семейства ADSP-2100. Этот формат, например, используют элементарные логические функции: NOT, OR, AND, XORи т.д. Вычислительный модуль ALU обрабатывает эти числа ввиде двоичных последовательностей не привлекая возможности работы с плавающей точкой и знаковым разрядом.
Под двоичными числами без знака понимаются положительные числа. Диапазон их представления в процессоре в два раза больше чем у чисел со знаком. Числа большой точности обрабатываются как беззнаковые.
Расматривая арифметику семейства ADSP-2100 знаковые числа можно отнести к числам с двойным дополнением. Дольшенства операций процессора поддерживают работу с двойным дополнением. Процессоры семейства ADSP-2100 не поддерживают работу с остатками и BCD-форматом.
Арифметики ADSP-2100 приспособленна для работы с числами в дробном двочном формате, называемом 1.15. В этом формате имеется один знаковый разряд (MSB) и пятнадцать дробных битов.
Далее представленны весовые значения битов в формате 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 |
Все комманды ALU обрабатывают операнды, как двоичные 16-разрядные последовательности. Биты состояния: AV- переполнение, AN – знак.
Логика бита переполнения основана на арифметике двойного дополнения. Например при сложении двух положительных чисел получается положительный результат, но может повлечь за собой переполнение. При сложении двух чисел с разными знаками результат может быть как положительным так и отрицательным, но переполнение в этом случае невозможно.
Логика бита переноса основана на арифметике чисел без знака. Он устанавливается если перенос сгенерирован 16-ым битом (MSB).
Операциив модуле MAC производятся над числами, представленными ввиде двоиных последовательностей и результет выдается в том же виде.
Процессоры семейства ADSP-2100 поддерживают два режима корректировки формата: дробный режим – для дробных операндов (формат 1.15) и целочисленный режим для целых чисел формата 16.0.
Когда процессор умножает два операнда в формате 1.15 в результате получается число 2.30 (два знаковых и 30 дробных разряда). В дробном режиме МАС автоматически сдвигает результат на один бит влево перед пересылкой его в регистр результата (MR). Этим сдвигом результат приводится к виду 1.31, который может быть округлед до формата 1.15.
В целочисленном режиме сдвига влево не происходит. Напрмер при умножении операндов 16.0 результат представляется ввиде 32.0. Сдвиг влево в этом случае не нужен, т.к. он изменит числовое представление результата.
Таблица 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 | ||
Логические сдвиги | Баз знака/двоичные строки | Тот же, что и операнды |
Арифметические сдвиги | Знаковые | Тот же, что и операнды |
Определение порядка | Знаковые | Тот же, что и операнды |
Модуль ALU предоставляет набор стандартных арифметических и логических функций. Арифметические функции: сложение, вычитание, отрицание, инкремент, декремент и модуль.Они дополненны двумя примитивами деления, с помощью которых возможна реализация цикла многократного деления. Логические: OR, AND, XOR (исключающее ИЛИ) и NOT.