LOOP:
ADD .L1 A0, A3, A0
ADD .L2 B1, B7, B1
MPYHL.M1X A2,B2A3
MPYLH.M2XA2,B2,B7
LDW .D2 *B4++,B2
LDW .D1 *A7--,A2
[B0] .ADD.S2 –1,B0,B0
[B0] B .S1 LOOP
Данными командами за один такт в МП выполняются следующие действия:
- вычисляются два произведения 16 разрядных чисел, результаты в регистрах А3, В7;
- сомножители для произведения формируются из старших А2(Н) , В2(Н) и младших В2(L), А2 (L) слов содержимого регистров А2, В2;
- результаты перемножения будут накапливаться в регистрах А0, В1;
- пересылка из памяти данных новых сомножителей в регистры В2(L), А2 (L). пересылки выполняются 32 разрядными словами.
Как видно из приведенного примера , структура команд на языке ассемблера достаточна сложна. В каждой команде необходимо:
- указать операционный модуль, в котором будет выполняться операция;
- задать необязательное условие выполнения команды (содержимое регистра [В0] в последней команде);
- предусмотреть правильную последовательность операций по перемещению данных, и т.д.
Все вышеперечисленное требует хорошего знания системы команд и архитектуры МП для получения эффективной программы.
Выводы.
«+» Использование простой системы команд позволяет использовать языки высокого уровня, в результате можно получить исполняемые программы высокого качества.
Недостатком ЦПОС с архитектурой VLIW, является то что необходимо использовать большие объемы памяти для записи программы с длинными командами и нерациональное использование этой памяти.
Суперскалярные процессоры
Отличие суперскалярных процессоров от процессоров типа VLIW, заключается в следующем:
- процессор имеет модуль, который определяет, какие из команд могут быть выполнены параллельно , и группирует их в пакет;
- команды суперскалярного процессора, предназначенные для выполнения в отдельных операционных модулях, не объединяются в одну общую суперкоманду, а выступают самостоятельно.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.