А. В. Комаров цифровые сигнальные процессоры
Вид материала | Документы |
1.16. Порт IDMA 1.16.1. Сигналы IDMA 1.16.2. Функционирование IDMA 1.16.3. Загрузка программ с помощью IDMA 1.17. Система команд |
- Архитектура процессов и ее оптимизация, 98.67kb.
- Обзор аппаратных и программных средств реализации параллельной обработки, 211.84kb.
- Темы Лекции Практика, 13.65kb.
- Лекция: графические процессоры и редакторы, 204.53kb.
- Реферат по дисциплине «Аппаратные средства» на тему: «Процессоры эвм», 333.09kb.
- ru/computers/classes html, 11.94kb.
- Методические указания му 2568 09 Издание официальное Москва 2009 Контроль численности, 527.33kb.
- Первая помощь при укусах насекомых и змей помощь при укусах комаров, 30.72kb.
- Фестиваль «Цифровые каникулы» – музей, образование, бизнес, 48.15kb.
- Неоднородный полупроводниковый носитель информации в переменном магнитном поле, 107.68kb.
Таблица 1.18
Форматы BDMA
BTYPE | Адрес ПП или ПД | Содержимое ПП или ПД | Адрес БП | Содержимое БП |
00 | РМ(0х0000) | 0xABCDEF | BM(0x0000) | 0xAB |
| | | BM(0x0001) | 0xCD |
| | | BM(0x0002) | 0xEF |
00 | PM(0x0001) | 0x123456 | BM(0x0003) | 0x12 |
| | | BM(0x0004) | 0x34 |
| | | BM(0x0005) | 0x56 |
01 | DM(0x0000) | 0x9876 | BM(0x0006) | 0x98 |
| | | BM(0x0007) | 0x76 |
01 | DM(0x0001) | 0x3456 | BM(0x0008) | 0x34 |
| | | BM(0x0009) | 0x56 |
10 | DM(0x0002) | 0x9800 | BM(0x000A) | 0x98 |
10 | DM(0x0003) | 0x7600 | BM(0x000B) | 0x76 |
11 | DM(0x0004) | 0x0034 | BM(0x000C) | 0x34 |
11 | DM(0x0005) | 0x0056 | BM(0x000D) | 0x56 |
1.15.4. Загрузка программ с помощью BDMA
Загрузка программ с помощью BDMA осуществляется, если при старте процессора выдержаны следующие условия: MMAP = 0 и BMODE = 0. При этом автоматически регистры BDMA инициализируются следующим образом:
- BWCOUNT = 32 (из БП во внутреннюю ПП будут записываться не более 32-х команд);
- BDIR = 0 (пересылка из БП во внутреннюю ПП), BMPAGE = 0 (программа расположена на нулевой странице БП), BEAD = 0 (начиная с нулевого адреса), BIAD = 0 (ПП также записывается с нулевого адреса), BTYPE = 0 (пересылаются трехбайтовые коды операций);
- BCR = 1 (на время пересылок работа процессора запрещена);
- BMWAIT = 7 (предполагается медленная память).
Пересылаемая программа является загрузчиком исполняемой программы. Если исполняемая программа создавалась с помощью утилиты PROM Splitter, входящей в состав утилит ADSP-2100 Family, то загрузчик подключается автоматически.
После пересылки загрузчика управление передается на нулевой адрес внутренней ПП (на начало загрузчика). Далее загрузчик выполняет всю работу по пересылке исполняемой программы во внутреннюю ПП.
1.16. Порт IDMA
Порт IDMA является КПДП к внутренней ПП или ПД со стороны хост-компьютера. При этом имеется возможность устанавливать адреса чтения/записи не только со стороны процессора (из программы), но и со стороны хост-компьютера (извне).
1.16.1. Сигналы IDMA
Сигналы IDMA перечислены в п. 1.1. Их совокупность представляет собой простой и удобный интерфейс для доступа к внутренним ПП и ПД со стороны хост-компьютера, напоминающий ISA шину. Действительно, в его состав входит совмещенная двунаправленная шина адрес/данные IAD[15:00]. Как и в ISA шине появление адреса на шине IAD[15:00] отмечается специальным сигналом IAL (аналог ALE). Стробы записи/чтения IWR#/IRD# являются аналогами сигналов MEMW#/MEMR# соответственно.
Сигнал IS# является селектирующим. Операции с IDMA (запись адреса, запись/чтение данных) возможны только при низком уровне сигнала на входе IS#. Сигнал IACK# является сигналом готовности к проведению операции. Низкий уровень этого сигнала свидетельствует о возможности проведения операции, при высоком уровне – операция отвергается. Во время старта процессора этот сигнал сбрасывается, что дает возможность взаимодействовать с IDMA. В таком состоянии он находится до первой операции с IDMA. После начала этой операции он устанавливается на время проведения операции, после чего снова сбрасывается.
Для управления IDMA существует регистр IDMA Control Register (см. п. П1.13), в который записывается тип внутренней памяти IDMAD и начальный адрес выбранной памяти IDMAA. Запись в этот регистр может осуществляться как из программы (регистр имеет адрес 0x3FE0), так и по сигналу IAL. При записи по сигналу IAL в IDMA Control Register записывается код, который в этот момент времени присутствует на шине IAD[15:00].
1.16.2. Функционирование IDMA
Блочная схема алгоритма доступа к внутренней памяти процессора со стороны хост-компьютера приведен на рис. 1.13.
Алгоритм рис. 1.13 достаточно полно иллюстрирует особенности IDMA пересылок. Осталось добавить:
- после каждой пересылки значение IDMAA инкрементируется. Это дает возможность записывать передаваемый блок кодов по возрастающим адресам;
- во время пересылок процессор продолжает выполнять программу.
1.16.3. Загрузка программ с помощью IDMA
Загрузка программ с помощью IDMA осуществляется в следующей последовательности:
- сбросить процессор (RESET#:= 0);
- установить MMAP = 0 и BMODE = 1 - это условия загрузки программы через IDMA;
- деактивировать RESET# (RESET#:= 1);
- загрузить выполняемую программу во внутреннюю ПП в соответствии с п. 1.16.2;
- произвести запись по адресу РМ(0х0000), чтобы запустить загруженную программу на исполнение.
1.17. Система команд
1.17.1. Общие сведения
Язык ассемблера процессора использует алгебраическую запись машинных команд, что позволяет сочетать хорошую читаемость с высокой эффективностью. Ниже приводится формат команды процессора:
[LABEL:] [IF cond ] COP; [COP;.. COP;][{Commentary}]
где:
- LABEL – метка, т.е. идентификатор (адрес), присваиваемый следующей за ним команде (СОР). Метка используется для передачи управления отмеченной команде, вызова подпрограммы, а также для отметки последней команды тела цикла DO UNTIL. Метка не обязательна, при ее отсутствии символ : опускается;
- IF cond – условная часть команды, если она есть в команде, то она проверяется первой. Если условие cond верно, то следующая за ней команда СОР выполняется, в противном случае – нет. Все проверяемые условия приведены в табл. 1.19. Условная часть не обязательна, в ее отсутствии команда считается безусловно выполняемой. Условная часть может находиться не перед всеми командами, так перед КОМАНДАМИ ПЕРЕСЫЛКИ (см. п. 1.17.4) и МНОГОФУНКЦИОНАЛЬНЫМИ КОМАНДАМИ (см. п. 1.17.9) условная часть команды НЕ используется;
- СОР – (Code OPeration) код операции (команда) заканчивается всегда символом ; (точка с запятой). Это дает возможность писать в одной строке несколько команд;
- комментарий Commentary, если он есть, всегда пишется в фигурных скобках (в среде VisualDSP также отделяется двумя прямыми слешами).