- •Магомедов и. А. Микропроцессорные системы. Аппаратные и программные средства.
- •Глава 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.
- •Система команд процессораi486
- •П1. Команды пересылки данных
- •П2. Арифметические команды
- •П3. Логические команды
- •П4. Команды переходов
- •П5. Команды процессора i486
1.3.3. Микропроцессоры семейства dsp 560хх
Микропроцессоры DSP56000/DSP56001 являются первыми представителями линии сигнальных процессоров компании Motorola [27]. Архитектура микропроцессоров ориентирована на максимизацию пропускной способности в приложениях DSP с интенсивным обменом данными (рис. 1.13). Это обеспечивается благодаря расширяемой архитектуре со сложной встроенной периферией и универсальной подсистемой ввода/вывода. Данные свойства, а также низкое энергопотребление минимизируют сложность, стоимость и сроки разработки прикладных систем на базе микропроцессоров DSP56000/DSP56001.
Микропроцессоры работают на частотах до 33 МГц и обеспечивают производительность около 16 MIPS, что позволяет выполнять быстрое преобразование Фурье по 1024 отсчетам за 3,23 мс.
Различие между данными процессорами заключается в типе их внутренней памяти. В целях минимизации стоимости прикладных систем микропроцессор DSP56000 ориентирован на работу под управлением программы, хранимой в ППЗУ (ROM) емкостью 3,75 Кслов. Существует также вариант процессора DSP56000, обладающий свойствами защиты от несанкционированного доступа к программе, хранимой во внутренней памяти. DSP56001 содержит на кристалле память произвольного доступа (RAM), емкостью 512 слов, 32 слова памяти (ROM) программы начальной загрузки процессора из внешнего источника, а также два модуля памяти предварительно запрограммированных в качестве таблиц функций экспандирования по А- и -закону и таблиц синусоидального преобразования.
Дальнейшее развитие семейства микропроцессоров DSP560xx осуществлялось в рамках концепции процессорного ядра, общего для всех представителей семейства, в состав которого входят 24-разрядные микропроцессоры с фиксированной точкой DSP 56002, 4, 7, 9, 11 [27].
Процессоры данного семейства характеризуются высокой пропускной способностью, расширенной разрядностью, обеспечивающей высокую точность вычисления и широким динамическим диапазоном обрабатываемых данных, поддержкой энергосберегающего режима работы. Представители семейства отличаются друг от друга конфигурациями памяти и периферийными устройствами.
Типовая структура представителя семейства DSP560xx микропроцессора приведена на рис. 1.13.
Основными компонентами микропроцессора являются:
• шины данных;
• шины адресов;
• АЛУ данных (ALU);
• устройство генерации адресов (AGU);
• устройство программного управления (PCU);
• расширение памяти (порт А);
Процессор содержит три независимые исполнительные устройства:
PCU, AGU и АЛУ данных. Пересылка данных между регистрами исполнительных устройств осуществляется по двунаправленным 24-разрядным шинам: шине данных X(XDB), шине данных Y (YDB), программной шине данных (PDB) и глобальной шине данных (GDB). Некоторые команды используют шины данных Х и Y как единую 48-разрядную шину. Для повышения скорости выборки операнды
команды загружаются в АЛУ из модулей памяти Х и Y по независимым шинам XDB и YDB, а команда – по программной шине данных PDB. Обмен данных с периферийными устройствами осуществляется по шине GDB.
Шинная структура поддерживает основные пересылки данных типа регистр-регистр, регистр-память, память-регистр. За один такт могут быть переданы два 24-битовых слова и одно 56-битовое. Обмен между шинами осуществляется через внутренний коммутатор - матрицу, позволяющую соединить любые две внутренние шины без добавления тактов задержки. Адреса для внутренних Х- и Y- памятей данных передаются по двунаправленным 16-разрядным шинам ХАВ и YAB, а адреса памяти команд – по двунаправленной программной шине (РАВ). Внешняя память адресуется с помощью однонаправленной шины, являющейся выходом трехканального мультиплексора шин ХАВ, YAB, РАВ.
Устройство битовых операций физически расположено в блоке коммутатора, что обеспечивает ему доступ к любой области памяти и позволяет выполнять битовые операции над данными в памяти, регистрах, содержимым адресных и управляющих регистров.
АЛУ данных микропроцессора выполняет над данными все арифметические и логические операции и содержит четыре 24-битовых регистра-источника, два 48-битовых регистра-аккумулятора, два 8-битовых регистра расширения аккумуляторов, устройство сдвига аккумулятора, две схемы сдвига/ограничения данных и параллельное (не конвейеризированное) однотактовое устройство умножения с накоплением (MAC).
Аккумуляторы А и В служат в качестве буферных регистров шин XDB и YDB, а их 8-битовые регистры расширения используются схемой сдвига/ограничения для фиксирования и обработки ситуаций переполнения в результате арифметических операций или сдвига.
АЛУ данных позволяет выполнять умножение в режиме удвоенной точности (задается установкой соответствующего бита в регистре состояния процессора). Результат умножения двух 48-битовых операндов имеет 96 разрядов и содержится в 4-х 24-битовых регистрах.
Устройство генерации адреса (AGU) работает параллельно с другими компонентами процессора, обеспечивая вычисление требуемых адресов данных в памяти за один такт с помощью двух одинаковых 16-битовых арифметических устройств, каждое из которых может выполнять линейные, модульные и циклические арифметические операции.
Устройство программного управления генерирует адреса программы т(предварительная выборка команд), декодирует, аппаратно обрабатывает команды циклического перехода, внутренние и внешние прерывания или исключительные ситуации. Оно содержит 15-уровневый 32-битовый системный стек (SS) и 6 непосредственно адресуемых регистров: счетчик команд (PC), счетчик цикла (LC), регистр адреса цикла (LA), регистр состояния (SR), регистр режима (OMR) и указатель стека (SP). 16-битовый регистр PC может адресовать до 65536 команд. SS сохраняет PC и SR при вызове процедур, обработке прерываний и выполнении программных циклов.
Команды процессора выполняются в З-этапном (предвыборка, декодирование, выполнение) конвейере с последующим анализом 5 возможных состояний процессора: «нормальное», «исключение», «сброс», «ожидание» и «останов».
В состав PCU входят три блока: блок декодирования программы (PDC), генератор адреса программы (PGA) и программный контроллер прерываний (Р1С). PDC декодирует команды, загруженные в командный буфер, и генерирует все необходимые для выполнения команды управляющие сигналы. Содержимое командного буфера дублируется для более эффективного выполнения команд повтора (REP) и перехода.
Основное назначение блока PGA - аппаратное формирование адресов циклов. При инициализации цикла адрес его начала помещается в стек, значение переменной цикла содержится в регистре LC, адрес конца цикла - в LA. При завершении очередной итерации адрес перехода извлекается из стека, а не формируется программно, что существенно повышает скорость обработки.
Р1С получает все запросы на прерывание, классифицирует их и генерирует адрес вектора прерываний. Прерывания могут быть маскируемыми - уровни 0 (нижний уровень), 1, 2 и немаскируемыми - уровень 3 (высший уровень).
Порт расширения памяти А обеспечивает синхронный обмен данными с различными типами памяти и внешними устройствами по 24-разрядной шине данных. Порт работает с высоко- и низкоскоростной памятью, а также другими универсальными и сигнальными процессорами в режиме master/slave.
Программная модель микропроцессора представляется в виде трех действующих параллельно функциональных устройств: ALU, AGU и PCU. Система команд ориентирована на эффективную поддержку языка Си и организована таким образом, чтобы обеспечить занятость этих устройств в течение каждого такта, достигая при этом максимальной скорости выполнения программы.
Команды микропроцессора имеют переменную длину: 1 или 2 24-битовых слова. Типичная команда микропроцессора содержит поле кода операции, определяющее соответствующее действие ALU, AGU или PCU, поле операндов и два поля, задающие пересылки, выполняемые параллельно с основной операцией по шинам XDB и YDB. Пример команды MAC приведен на рис. 1.14.
метка |
операция |
операнды |
параллельная пересылка содержимого ячейки памяти |
Комментарий |
|
LOOP |
Opcode |
Operands |
XDB |
YDB |
;TEXT |
|
MAC |
X0,Y0,A |
X:(R0)+,X0 |
Y:(R4)+,Y0 |
|
Рис. 1.14. Структура команды микропроцессора DSP-560xx
Пояснение: производится умножение двух операндов в регистрах X0 Y0, и результат прибавляется к содержимому аккумулятора одновременно; происходит передача содержимого ячеек памяти, адреса которых указаны в регистрах R0 и R4, в регистры X0 Y0.
Благодаря своей высокой производительности и низкой стоимости семейство микропроцессоров DSP 560хх широко используется в самых различных областях: коммуникационных системах, цифровых аудиосистемах, робототехнике, системах медицинской диагностики, в военной электронике.
Сигнальные процессоры семейства BlackFin. Компания Analog Devices объявила о выпуске новых сигнальных процессоров BlackFin ADSP-BF512, BF514, BF516 и BF518. В отличие от предыдущих процессоров BlackFin, новая линейка упрощает реализацию задач, где ранее использовалась комбинация «DSP + микроконтроллер».
Это снижает стоимость и энергопотребление системы в целом, упрощает подготовку встроенного программного обеспечения и его тестирование. Новые сигнальные процессоры ADSP-BF51х имеют высокие тактовые частоты и низкое энергопотребление в пересчете на единицу производительности.
Области применения новых DSP:
Системы управления;
Системы отображения графической информации;
Обработка сигналов;
Связь и коммуникации;
Производственное и медицинское оборудование.
Основные характеристики:
Тактовая частота: до 400 МГц;
Производительность: 800 MMACS;
Удельное энергопотребление: 8,5 MMACS/мВт (на тактовой частоте 100 МГц);
SRAM ОЗУ: 116 кБайт;
Flash ПЗУ: до 4 мБит (версия DSP с Flash ПЗУ).
Новые 32-разрядные процессоры Blackfin имеют большой объем встроенной SRAM ОЗУ и Flash памяти с SPI интерфейсом (для версий DSP с Flash ПЗУ), содержат встроеннную систему защиты кода Lockbox™. Внутренняя структура оптимизирована для приложений обработки цифрового аудио и видео, содержит контроллеры ПДП и внешней SDRAM, SRAM, Flash или ROM памяти и развитую периферийную часть.
ADSP-BF516 и BF518 содержат контроллер MAC уровня для Ethernet 10/100, при этом BF518 поддерживает протокол синхронизации тактовых сигналов IEEE-1588. Новые DSP обеспечивают низкое энергопотребление при помощи эффективной технологии динамического управления питанием DPM.
