- •Магомедов и. А. Микропроцессорные системы. Аппаратные и программные средства.
- •Глава 1. Микропроцессоры
- •Глава II. Программирование микропроцессоров
- •Глава III. Лабораторный практикум по программированию мп i80х86
- •Глава 1. Микропроцессоры
- •1.1. Назначение микропроцессоров
- •1.2. Универсальные микропроцессоры
- •1.2.2. Микропроцессоры компании amd
- •1.2.3. Микропроцессоры компании Cyrix
- •1.2.4. Микропроцессоры с архитектурой Alpha
- •1.2.5. Микропроцессоры с архитектурой sparc
- •1.2.6. Микропроцессоры Hewlett-Packard ра-8000
- •1.3. Микропроцессоры обработки сигналов
- •1.3.1. Сигнальные микропроцессоры компании
- •1.3.2. Сигнальные микропроцессоры компании Motorola
- •1.3.3. Микропроцессоры семейства dsp 560хх
- •1.4. Медийные микропроцессоры
- •1.5. Транспьютероподобные микропроцессоры
- •1.6. Нейропроцессоры
- •Глава II. Программирование микропроцессоров
- •2.1. Программная модель 32-разрядных процессоров
- •2.1.2. Типы данных
- •2.1.3. Регистры процессора
- •2.2. Форматы команд
- •2.3. Выбор операнда
- •2.4. Режимы адресации
- •Вопросы для самоконтроля к главе 2
- •Глава III. Лабораторный практикум по программированию мп i86
- •Обобщенная структурная схема микропроцессора х86
- •Организация основной памяти и средства аппаратной поддержки управления памятью
- •Выполнение программы
- •Формат операторов ассемблера
- •Определение полей памяти для размещения данных.
- •3.2. Операнды команд ассемблера
- •Команда пересылки данных
- •Команда загрузки исполнительного адреса
- •Команды загрузки указателя.
- •Команда записи в стек
- •Команда обмен данными
- •Команды сложения/ Команды вычитания
- •Команда изменения знака
- •Команда добавления /вычитания единицы
- •Команда сравнения
- •Команды умножения/ деления
- •Команда преобразования байта в слово, а слова - в двойное слово.
- •Команды передачи управления
- •Команды условного перехода
- •Команды организации циклической обработки
- •Команда перехода по обнуленному счетчику
- •Команды организации цикла с условием
- •Команды вызова подпрограмм
- •Команда возврата управления
- •Команды обработки строк
- •Логические команды
- •2. Программирование циклических процессов.
- •3. Моделирование одномерных массивов
- •4. Моделирование матриц
- •5. Преобразования ввода-вывода.
- •3.4. Основные команды отладчика afd
- •Fspec определяет имя файла, наименованного в соответствии с соглашениями dos. Для команды l расширением по умолчанию является “exe”;
- •String задает список значений или ascii строк (строка заключена в кавычки) разделенных пробелами или запятой.
- •Например: 1234 bx, ‘tromb’ ff.
- •Лабораторная работа № 1 Создание выполнимого файла, работа в отладчике, изучение оператора пересылки mov
- •Оператор mov
- •Индивидуальные задания
- •Лабораторная работа № 2 Сегментация памяти, директивы ассемблера
- •Прямая адресация
- •Косвенная адресация
- •Директива assume
- •Индивидуальные задания
- •Лабораторная работа №.3 Директивы equ, label, команды сложения и вычитания Директива equ
- •Директива label
- •Команды сложения и вычитания
- •Индивидуальные задания Вариант 1.
- •Вариант 2.
- •Вариант 3.
- •Вариант 4.
- •Вариант 5.
- •Вариант 6.
- •Вариант 7.
- •Вариант 8.
- •Вариант 9.
- •Вариант 10.
- •Вариант 11.
- •Вариант 12.
- •Лабораторная работа № 4 Изучение операторов обмена xchg и xlat
- •Индивидуальные задания Вариант 1.
- •Вариант 2.
- •Вариант 3.
- •Вариант 4.
- •Вариант 5.
- •Вариант 6.
- •Вариант 7.
- •Вариант 8.
- •Вариант 9.
- •Вариант 10.
- •Вариант 11.
- •Вариант 12.
- •П1. Команды пересылки данных
- •Система команд процессораi486
- •П2. Арифметические команды
- •П3. Логические команды
- •П4. Команды переходов
- •П5. Команды процессора i486
1.3. Микропроцессоры обработки сигналов
Сигнальные процессоры [22-26] обладают высокой степенью специализации. В них широко используются методы сокращения длительности командного цикла, характерные и для универсальных RISC-процессоров, такие как конвейеризация на уровне отдельных микроинструкций и инструкций, размещение операндов большинства команд в регистрах, использование теневых регистров для сохранения состояния вычислений при переключении контекста, разделение шин команд и данных (Гарвардская архитектура). В то же время для сигнальных процессоров характерным является наличие аппаратного умножетеля, позволяющего выполнять умножение двух чисел за один командный такт. В универсальных процессорах умножение обычно реализуется за несколько тактов, как последовательность операций сдвига и сложения. Другой особенностью сигнальных процессоров является включение в систему команд таких операций, как умножение с накоплением MAC (С:= АхВ+С с указанным в команде числом выполнения в цикле и с правилом изменения индексов используемых элементов массивов А и В), инверсия бит адреса, разнообразные битовые операции. В сигнальных процессорах реализуется аппаратная поддержка программных циклов, кольцевых буферов. Один или несколько операндов извлекаются из памяти в цикле исполнения команды.
Реализация однотактного умножения и команд, использующих в качестве операндов содержимое ячеек памяти, обусловливает сравнительно низкие тактовые частоты работы этих процессоров. Специализация не позволяет поднять производительность за счет быстрого выполнения коротких команд типа R, RR, как это делается в универсальных процессорах. Этих команд просто нет в программах обработки сигналов.
Сигнальные процессоры различных компаний-производителей образуют два класса, существенно различающиеся по цене: более дешевые микропроцессоры с обработкой данных в формате с фиксированной точкой и более дорогие микропроцессоры, аппаратно поддерживающие операции над данными в формате с плавающей точкой.
Использование в сигнальной обработке данных в формате с плавающей точкой обусловлено несколькими причинами. Для многих задач, связанных с выполнением интегральных и дифференциальных преобразований, особую значимость имеет точность вычислений, обеспечить которую позволяет экспоненциальный формат представления данных. Алгоритмы компрессии, декомпрессии, адаптивной фильтрации в цифровой обработке сигналов связаны с определением логарифмических зависимостей и весьма чувствительны к точности представления данных в широком динамическом диапазоне.
Работа с данными в формате с плавающей точкой существенно упрощает и ускоряет обработку, повышает надежность программы, поскольку не требует выполнения операций округления и нормализации данных, отслеживания ситуаций потери значимости и переполнения.
Платой за эти дополнительные «комфорт и скорость» является высокая сложность функциональных устройств, выполняющих обработку данных в формате с плавающей точкой, необходимость использования более сложных технологий производства микросхем, больший процент отбраковки изделий и как следствие дороговизна микропроцессоров.
В настоящее время стал популярен и другой подход к получению высокой производительности. Большое количество транзисторов на кристалле может быть использовано для создания симметричной мультипроцессорной системы с более простыми процессорами, обрабатывающими целочисленные операнды. Примерами таких, так называемых медийных процессоров, служат Mediaprocessor компании MicroUnity, Trimedia компании Philips, Mpact Media Engine компании Chromatic Research, NVI компании Nvidia, MediaGx компании Cyrix.
Эти процессоры создавались, исходя из потребности обработки в реальном времени видео- и аудиоинформации в мультимедийных ПК, игровых приставках, бытовых радиоэлектронных приборах. В связи с более простой схемотехникой, по сравнению с универсальными сигнальными процессорами, стоимость медийных процессоров достаточно низкая (порядка $100), а значение показателя «производительность/стоимость» на два - три порядка больше. Пиковое значение производительности медийных процессоров составляет несколько миллиардов целочисленных операций в секунду.
В числе наиболее распространенных сигнальных процессоров [23, 24] можно назвать изделия следующих компаний: Motorola (56002, 96002), Intel (i960), Texas Instruments (TMS320Cxx), Analog Devices (21xx, 210xx, BlackFin ADSP-BF512, BF514, BF516, BF518 и др.). Большая производительность, требуемая при обработке сигналов в реальном времени, побудила две последние из перечисленных компаний выпустить транспьютерные семейства микропроцессоров TMS320C4x и ADSP2106x, ориентированных на использование в мультипроцессорных системах.
Выбор того или иного процессора для реализации конкретного проекта - многокритериальная задача, однако, следует отметить предпочтительность процессоров компании Analog Devices для приложений, требующих выполнения больших объемов математических вычислений (таких, как цифровая фильтрация сигнала, вычисление корреляционных функций и т.п.), поскольку их производительность на подобных задачах выше, чем у процессоров компаний Motorola и Texas Instruments. В то же время для задач, требующих выполнения интенсивного обмена с внешними устройствами (многопроцессорные системы, различного рода контроллеры), предпочтительнее использовать микропроцессоры компании Texas Instruments, обладающие высокоскоростными интерфейсными подсистемами.
Компания Motorola является лидером по объему производства сигнальных микропроцессоров, большую часть из которых составляют дешевые и достаточно высокопроизводительные 16- и 24-разрядные микропроцессоры с фиксированной точкой. Расширенные коммуникационные возможности, наличие достаточных объемов внутрикристальной памяти для данных и программы, возможности защиты программы от несанкционированного доступа, поддержка режима энергосбережения делают эти микропроцессоры привлекательными для использования не только в качестве специализированных вычислителей, но и в качестве контроллеров в промышленных роботах, бытовых электронных приборах, системах управления оружием, средствах беспроводной связи.
