Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metoda_beta2_8.doc
Скачиваний:
5
Добавлен:
16.11.2019
Размер:
838.66 Кб
Скачать

1. Особенности и типы команд сигнального процессора

Система команд поддерживает прямой и косвенный (линейный или циклический) режимы адресации для доступа к памяти. Прямая адресация возможна только для памяти данных и использует непосредственное выражение в качестве адреса памяти: DM(<addr>). Косвенная адресация памяти данных и памяти программ использует индексные (I) регистры генераторов адресов данных и регистры модификации (M), например: DM(I3, M3), PM(I4, M7). Она обеспечивает эффективную адресацию массивов данных и соответствующих им буферов.

Набор инструкций процессора ADSP-2189M разделен на следующие группы:

  • вычислительные (инструкции ALU, MAC и SHIFTER);

  • пересылки данных;

  • управления программой;

  • многофункциональные;

  • другие инструкции.

При обобщенном описании инструкций процессора используются следующие синтаксические обозначения:

[ ] - необязательная часть инструкции;

| - разделитель в списке операторов, операндов или модификаторов инструкции, из которых должен быть выбран один;

cond - одно из следующих условий выполнения инструкции: EQ, NE, GT, GE, LT, LE, NEG, POS, AV, NOT AV, AC, NOT AC, NOT MV, NOT СЕ;

term - одно из следующих условий завершения цикла: EQ, NE, GT, GE. LT. LE, NEG, POS, AV, NOT AV. AC. NOT AC. MV, NOT MV, CE, FOREVER;

<data>=<const> | %<symbol> | ^<symbol> - обозначает непосредственное значение данных; это также может быть символ имени переменной/буфера, отмеченный операторами % или ^, означающими его длину или начальный адрес;

<addr> - обозначает непосредственное значение адреса, который кодируется в команде; в качестве <addr> может быть либо константа, либо метка программы;

конструкция […] - означает сколь угодное повторение предыдущего параметра;

<ALU>,<МАС,<SHIFT> - операции ALU, MAC, SHIFT соответственно;

<dregs> - один из регистров вычислительных устройств AX0, AX1, AY0, AY1, AR, МХО, МХ1, MY0, MY1, MRO, MR1, MR2, SI, SE, SR0, SR1;

<regs> - один из программно доступных регистров процессора AX0, AX1, AY0, AY1, AR, MX0, MX1, MY0, MYI, MR0, MR1, MR2, SI, SE, SR0, SR1, I0-I7, M0-M7, L0-L7, SB, PX, ASTAT, MSTAT, SSTAT (только для чтения), IMASK, ICNTL, CNTR, OWRCNTR (только для записи), IFC (только для записи), RXO, RX1, TXO, TX1;

<ехр> - константа от –127 до 127;

xop, yop – регистры X,Y-операндов в инструкциях ALU, MAC, SHIFTER;

Инструкции ALU:

xop - один из регистров AX0, AX1, AR, MR2, MRI, MRO, SRI, SR0;

yop - один из регистров AY0, AY1, AF.

Инструкции MAC:

xop - один из регистров MX0, MX1, AR, MR2, MR1, MR0, SR1, SR0;

yop - один из регистров MY0,MY1,MF.

Инструкции SHIFTER:

xop - один из регистров AR, MR2, MR1, MR0, SI, SR1, SR0.

При описании регистров состояния используются следующие обозначения:

* - звездочка означает, что данный бит изменяется после выполнения инструкции;

- черта означает, что данный бит не затрагивается инструкцией;

0 или 1 - означает, что этот бит всегда очищается или устанавливается инструкцией.

2. Используемые условия

2.1 Подробное описание регистров состояния и значения их битов

1) Регистр состояния арифметических устройств

Регистр ASTAT имеет разрядность 8 бит и содержит информацию о состоянии вычислительных устройств процессора. Биты состояния (0–7) (в порядке возрастания) имеют следующий смысл:

AZ – содержимое АЛУ равно нулю;

AN – содержимое АЛУ отрицательно;

AV – переполнение АЛУ;

AC – перенос бита в АЛУ;

AS – знак ввода порта X в АЛУ;

AQ – частное АЛУ;

MV – переполнение умножителя;

SS – знак ввода в устройство сдвига.

Биты состояния обновляются: AZ, AN, AV, AC – любой операцией АЛУ, кроме деления; AS – операцией нахождения абсолютного значения ABS; AQ – операциями деления; MV – любой операцией умножителя, кроме насыщения; SS – операцией нахождения порядка (EXP) устройства сдвига.

Состояние фиксируется в регистре ASTAT в конце цикла, в котором оно было сгенерировано.

2) Регистр состояния стеков

8-разрядный регистр SSTAT содержит информацию о четырех стеках процессора. Его биты состояния (0–7) (в порядке возрастания) имеют следующий смысл:

0 – стек счетчика команд пуст (PC_EMPTY);

1 – стек счетчика команд переполнен (PC_OVERFLOW);

2 – стек счетчика пуст (COUNT_EMPTY);

3 – стек счетчика переполнен (COUNT_OVERFLOW);

4 – стек состояний пуст (STATUS_EMPTY);

5 – стек состояний переполнен (STATUS_OVERFLOW);

6 – стек циклов пуст (LOOP_EMPTY);

7 – стек циклов переполнен (LOOP_OVERFLOW).

Состояние “стек счетчика пуст” означает, что число операций по извлечению данных из стека превышает или равно числу операций по помещению информации в стек. Состояние “стек счетчика переполнен” означает превышение числа помещений над числом извлечений данных из стека, что ведет к потере информации.

3) Регистр состояния режима

Регистр MSTAT определяет операционный режим процессора. Его биты описываются следующим образом:

  1. – выбор ряда регистров данных (0 – главный, 1 – теневой) – SEG_REG;

  2. – разрешение режима перестановки бит (DAG1) – BIT_REV;

  3. – разрешение режима фиксации переполнения АЛУ – AV_LATCH;

  4. – разрешение режима насыщения регистра ARAR_SAT;

  5. – тип результата в MAC 0 – дробный, 1– целый – M_MODE;

  6. – разблокирование таймера – TIMER;

  7. – разрешение режима GOG_MODE.

Содержимое регистра MSTAT модифицируется при записи в него нового значения при помощи команды пересылки. В отличие от других регистров состояний, содержимое этого регистра может также изменяться командой управления режимом (ENA, DIS), например:

ENA SEG_REG; DIS SEG_REG; ENA M_MODE (режим умножения целых чисел); DIS M_MODE (режим умножения дробных чисел) и т.д.

При разрешении режима GO процессор может продолжить выполнение команд из внутренней памяти программы во время предоставления шины. Процессор может приостановить работу, ожидая, когда освободятся шины, только в случае, когда требуется доступ к внешней памяти. При запрещении режима GO процессор всегда будет останавливать работу во время предоставления шины.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]