Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПС для АТП (ЛЕК).doc
Скачиваний:
33
Добавлен:
26.09.2019
Размер:
2.38 Mб
Скачать

10.6.Система команд сигнального процессора

10.6.1.Способы адресации и форматы команд

Система команд TMS320C2x обеспечивает три метода адресации памяти:

  • прямой метод адресации

  • косвенный метод адресации

  • непосредственный метод адресации

Как прямая, так и косвенная адресация могут использоваться для доступа к памяти данных. При прямой адресации семь бит командного слова объединяются с 9 битами указателя страницы памяти данных для образования 16-разрядного адреса памяти данных. Косвенная адресация памяти данных осуществляется через 5 вспомогательных регистров. При непосредственной адресации данные являются частью командного слова.

При прямой адресации командное слово содержит 7 младших разрядов адреса памяти данных (dma). Это поле соединяется с 9 битами указателя страницы памяти данных (DP) для образования полного 16-разрядного адреса памяти данных. Таким образом DP регистр указывает на одну из 512 возможных страниц памяти размером 128 слов, а 7-разрядный адрес в команде указывает на конкретное место на этой странице памяти данных. DP регистр загружается с помощью команд LDP (загрузить указатель страницы памяти данных), LDPK (загрузить непосредственно указатель страницы памяти данных) или LST (загрузить регистр состояния ST0).

Прямая адресация может использоваться со всеми командами кроме CALL, команд ветвления, команд с непосредственным операндом и команд без операндов. Формат прямой адресации имеет следующий вид:

15 8

7

6 0

Код операции

0

dma

Косвенная адресация осуществляется через вспомогательные регистры AR (пять – AR0-AR4 – на TMS32020 или восемь – AR0-AR7 – на TMS320C25). Для выбора конкретного вспомогательного регистра указатель вспомогательного регистра (ARP) загружается одним значением от 0 до 4 или до 7.

При косвенной адресации любая ячейка области памяти данных на 64Кслов может быть доступна благодаря 16-разрядным адресам, находящимся во вспомогательных регистрах. Они могут загружаться командами LAR (загрузка вспомогательного регистра), LARK (загрузка вспомогательного регистра непосредственная) и LRLK (загрузка вспомогательного регистра непосредственная длинная). Вспомогательные регистры могут изменяться с использованием команды MAR (изменить вспомогательный регистр), а также полем косвенной адресации любой команды, использующей косвенную адресацию.

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

Особую роль выполняет вспомогательный регистр AR0: его содержимое можно добавить или вычесть к/из используемого в команде регистра.

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

Косвенная адресация может использоваться со всеми командами кроме команд с непосредственным операндом и команд без операндов. Команды с косвенной адресацией имеют следующий формат:

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Код операции

1

IDV

INC

DEC

NAR

Y

Биты от 15 до 8 содержат код операции, а бит 7=1 определяет метод адресации как косвенный. Биты от 6 до 0 содержат биты управления косвенной адресации.

Бит 6 управляет выбором второго операнда в операции над регистром, а биты 5 и 4 – типом операции. При IDV = 0 добавляется или вычитается 1, иначе – содержимое AR0. Бит INC = 1 определяет сложение, а DEC = 1 – вычитание. При IDV = INC = DEC = 0 операция над текущим вспомогательным регистром не производится (табл. 10.2)

Таблица 10.2. Установка режимов косвенной адресации.

Биты (6:4)

Арифметические операции

0 0 0

Нет операции

0 0 1

AR(ARP) - 1 ---> AR(ARP)

0 1 0

AR(ARP) + 1 ---> AR(ARP)

0 1 1

Зарезервирована

1 0 0

AR(ARP) - AR0 ---> AR(ARP) #с распространением инверсии переноса13

1 0 1

AR(ARP) - AR0 ---> AR(ARP)

1 1 0

AR(ARP) + AR0 ---> AR(ARP)

1 1 1

AR(ARP) + AR0 ---> AR(ARP) #с распространением инверсии переноса

# - только для TMS320C25 и TMS320E25

Бит 3 .. 0 управляют указателем вспомогательного регистра (ARP). NAR определяет, загружается ли новая величина в ARP. При NAR = 1, содержимое поля Y загружается в ARP, иначе содержимое ARP не изменяется.

Вспомогательные регистры могут также использоваться и для хранения данных при использовании команд загрузки и сохранения вспомогательного регистра LAR и SAR, соответственно.

При непосредственной адресации командное слово содержит величину непосредственного операнда; последний может располагаться в самом командном слове (короткая константа 3, 8, 9 или 13 бит) или в слове, следующем после кода операции (длинная константа 16 бит). Непосредственная адресация используется в арифметико/логических командах и командах загрузки

Все команды сигнального процессора разработчики разбивают на следующие группы:

  1. Команды, выполняющие операции с аккумулятором;

  2. Команды, выполняющие операции со вспомогательными регистрами и указателем страниц;

  3. Команды, выполняющие операции с портами ввода-вывода и памятью данных;

  4. Команды условного и безусловного ветвления;

  5. Команды, выполняющие операции с Т- и Р- регистрами и команды умножения;

  6. Команды управления.

Для нас привычней рассматривать команды традиционных классов: