Организация повторения одиночных команд в процессоре TMS320VC5402

Процессоры C54x имеют команды повторения, которые заставляют

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

команды равно значению операнда команды повторения + 1. Максимальное

число повторений команды - 65 536. Абсолютный адрес памяти программ или

данных автоматически увеличивается при каждом повторении команды.

Как только команда повторения декодирована, все прерывания, включая

NMI, но не RS, заблокированы до завершения цикла повторения. Однако

процессор реагирует на сигнал HOLD при выполнении цикла повторения в

соответствии со значением бита HM в регистре состояния 1 (ST1).

Функция повторения может использоваться с некоторыми командами типа

умножение/накопление и блочные пересылки, для увеличения скорости

выполнения этих команд. Эти многоцикловые команды (табл. 3.28) становятся

одноцикловыми после первой итерации команды повторения.

Отдельные команды одного операнда в памяти данных не могут быть

повторены при использовании длинного смещения или абсолютного адреса

(например, *ARn(lk), *+ARn(lk), *+ARn(lk)% и *(lk)). Команды, перечисленные

в табл. 3.29 не могут быть повторены командами RPT или RPTZ.

Таблица 3.28. Многоцикловые команды, выполняемые за один цикл при повторении

Команда Описание Циклы+
FIRS Симметричный FIR-фильтр  
MACP Умножаются с аккумулированием и задержкой  
MACD Умножаются с аккумулированием  
MVDK Пересылка данные-данные  
MVDM Пересылка данные-регистры  
MVDP Пересылка данные-программа  
MVKD Пересылка данные-данные  
MVMD Пересылка регстры-данные  
MVPD Пересылка программа-данные  
READA Чтение из памяти программ в память данных  
WRITA Запись из памяти данных в память программ  

Таблица 3.29. Неповторяемые команды

Команда Описания      
ADDM Прибавить длинную константу к памяти данных  
ANDM “И” память данных с длинной константой    
B [D] Безусловный переход      
BACC [D] Переход по адресу из аккумулятора    
BANZ [D] Переход по вспомогательному регистру не равному 0
BC [D] Условный переход      
CALA [D] Вызов подпрограммы по адресу из аккумулятора  
CALL [D] Безусловный вызов подпрограммы    
CC [D] Условный вызов подпрограммы      
CMPR Сравнение вспомогательных регистров    
DST Сохранение длинного слова (32 бита)      
FB [D] Дальний безусловный переход      
FBACC [D] Дальний переход по адресу из аккумулятора  
FCALA [D] Дальний вызов подпрограммы по адресу из аккумулятора
FCALL [D] Дальний безусловный вызов подпрограммы  
FRET [D] Дальний возврат      
FRETE [D] Разрешение прерывания и дальний возврат  
IDLE Команда ожидания      
INTR Прерывание      
LD ARP Загрузка указателя вспомогательного регистра (ARP)  
LD DP Загрузка указателя страницы данных (DP)    
MVMM Пересылка регистров отображаемых на память  
ORM “ИЛИ” память данных с длинной константой    
RC [D] Условный возврат      
RESET Программный сброс      
RET [D] Безусловный возврат      
RETE [D] Возврат из прерывания      
RETF [D] Быстрый возврат из прерывания      
RND Округление аккумулятора      
RPT Повторить следующую команду      
RPTB [D] Повторить блок      
RPTZ Повторить следующую команду и очистить аккумулятор  
RSBX Сброса бита регистра состояния      
SSBX Установка бита регистра состояния      
TRAP Программное прерывание      
XC Условное выполнение команды      
XORM “исключающее ИЛИ” память данных с длинной константой

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: