Реферат по предмету "Информатика"


Система команд Структура слова команд Синтаксис команд Группы команд

Федеральное агентство по образованию
Пензенский государственный университет
Кафедра «Информационной безопасности систем и технологий»
Реферат на тему
“ Система команд. Структура слова команд.
Синтаксис команд. Группы команд”
Дисциплина: ЦиМПТ
Группа:
Студент:
Пенза 2006 г.
Содержание
Введение
Команды вычисления и пересылки
Управление последовательностью выполнения программы
Команды непосредственной пересылки данных
Заключение
Список использованных источников
Введение
В данном реферате подробно описывается ADSP-2106х, рассматриваются типы команд, синтаксис ассемблера и код операции, по которому транслируется команда. Многие типы команд имеют поле для определения операции вычисления. Это операции, которые используют ALU, умножитель или устройство сдвига. (Заметим, что пересылка данных между регистрами MR и регистровым файлом рассматриваются как операции умножителя)
Команды группируются по четырем категориям:
Команды вычисления и пересылки или модификации, которые определяют параллельное выполнение операции вычисления с одной или двумя пересылками данных или с модификацией индексного регистра.
Команды управления последовательностью выполнения программы, которые определяют различные типы переходов, вызовов, возвратов и циклов. Некоторые из этих команд могут также содержать операцию вычисления и/или пересылки данных.
III. Команды пересылки данных, в которых непосредственное поле команды используется как операнд или для адресации.
IV. Прочие команды, такие как модификация и проверка бита, нет операции и простой.
Команды нумеруются от 1 до 23. Некоторые команды имеют несколько синтаксических форм, например, команда четвертого типа имеет четыре различные формы. При программировании номер команды не учитывается, но он соответствует коду операции, распознаваемому аппаратурой ADSP-2106х. Многие из команд могут быть условными. Этим командам предшествует "IF" плюс мнемоника условия. В условной команде выполнение всей команды основывается на заданном условии.
Команды вычисления и пересылки
Параллельная пересылка данных между памятью данных и памятью программы с использованием регистрового файла, необязательная операция вычисления
Синтаксис:
compute,
DM (Ia,Mb) =dregl, dregl= DM (Ia,Mb)
PM (Ic,Md) =dreg2 dreg2=PM (Ic,Md)
Функция:
Параллельный доступ к памяти данных и памяти программы из регистрового файла. Определенные регистры I используются для адресации памяти данных и памяти программы. Значение I поет-модифицируется и обновляется значением определенного регистра М. Предмодификация адреса со смещением не поддерживается.
Примеры:
R7=BSET R6 BY RO, DM (10,M3) =R5, PM (111,M15) =R4; R8=DM (I4,M1), PM (I12,M12) =R0;
Код операции:
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23


D




P
DM




PM
001
M
DMI
DMM
M
DREG
PMI
PMM
DREG


D




D








22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
COMPUTE
Тип обращения (чтение или запись) выбирается DMD и PMD. Ячейка памяти регистрового файла определяется DMDREG и PMDREG. DMI и PMI определяют регистр I для памяти данных и памяти программы. DMM и РММ определяют регистр М, используемый для обновления регистра I. Поле COMPUTE определяет операцию вычисления, выполняемую параллельно с доступом к данным. Если операция вычисления не задана в команде, то это операция NO Р.
Операция вычисления, необязательное условие
Синтаксис:
IFусловие вычисление;
Функция:
Условная команда вычисления. Команда выполняется, если при проверке определенное условие верно.
Примеры: IF MS MRF=0; F6= (F2+F3) /2;
Код операции: 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23
000
00001


COND


22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
COMPUTE
Если заданное полем COND условие верно, то определенная в поле COMPUTE операция выполняется. Если условие в команде не определено, то COND является условием TRUE, и вычисление выполняется всегда.
Пересылка данных между памятью данных или памятью программы и универсальным регистром, необязательное условие, необязательная операция вычисления
Функция:
Обращения между памятью данных или памятью программы и универсальным регистром. Определенные регистры I используются для адресации памяти данных и памяти программы. Значение I либо пред-модифицируется (М, I) либо пост-модифицируется (I, М) значением определенного регистра М. При пост-модификации значение регистра I обновляется модифицированным значением. Если определена операция вычисления, то она выполняется параллельно с доступом к данным. Если условие определено, то оно влияет на выполнение всей команды.
Замечание:
Универсальный регистр (ureg) может находиться не в том же самом DAG (т.е. DAG1 или DAG2), что и la/Mb или Ic/Md.
Примеры:
R6=R3-R11, DM (IO,M1) =ASTAT;
IF NOT SV F8=CLIP F2 BY F14, PX=PM (112,M12);
Код операции:
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23
010
Т
I
м
COND
G
D
UREG
22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
COMPUTE
COND определяет условие для проверки. Если условие в команде не определено, то COND является условием TRUE, и команда выполняется всегда.
Тип доступа (чтение или запись) выбирается D. G выбирает память данных или память программы. UREG определяет универсальный регистр. I определяет индексный регистр I, М — регистр модификации М. U выбирает либо пред-модификацию без обновления либо пост-модификацию с обновлением. Поле COMPUTE определяет вычислительную операцию, выполняемую параллельно с доступом к данным. Если в команде не определено никакой операции вычисления, то это поле NOR
Пересылка данных между памятью данных или памятью программы и регистровым файлом относительно PC, необязательное условие, необязательная операция вычисления
Синтаксис:
DM (Ia,) PM (Ic,)
DM (, Ia) PM (, Ic)
dreg = DM (Ia,) PM (Ic,)
dreg = DM (, Ia) PM (, Ic)
Функция:
Обращения между памятью данных или памятью программы и регистровым файлом. Определенные регистры I используются для адресации памяти данных и памяти программы. Значение I либо пред-модифицируется (data, I), либо поет-модифицируется (I, data) непосредственным значением данных. При пост-модификации регистр I обновляется модифицированным значением. Если определена операция вычисления, то она выполняется параллельно с доступом к данным. Если условие определено, то оно влияет на выполнение всей команды.--PAGE_BREAK--
Примеры:
IF FLAG0_IN F1=F15*F12, F11=PM (110,40); R12=R3 AND Rl, DM (6, II) =R6;
Код операции:
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23
011
I
G
D
и
COND
DATA
DREG
22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
COMPUTE
COND определяет условие для проверки. Если условие в команде не определено, то COND является условием TRUE, и команда выполняется всегда.
D выбирает тип обращения (чтение или запись). G выбирает память данных или память программ. DREG определяет регистр регистрового файла. I определяет индексный регистр I. DATA определяет 6-разрядное значение модификации в виде двоичного дополнения. U определяет либо пред-модификацию без обновления, либо пост-модификацию с обновлением. Поле COMPUTE определяет вычислительную операцию, выполняемую параллельно с доступом к данным. Если в команде не определено никакой операции вычисления, то это поле NOR
Пересылка между двумя универсальными регистрами, необязательное условие, необязательная операция вычисления
Синтаксис:
IFусловие вычисление, uregl=ureg2;
Функция:
Передача данных из одного универсального регистра в другой. Если операция вычисления определена, она выполняется параллельно с доступом к данным. Если условие определено, то оно влияет на выполнение всей команды.
Примеры:
IF TF MRF=R2*R6 (SSFR), M4=R0; LCNTR=L7;
Код операции:
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23
Oil
1
Source UREG
COND
Dest UREG
22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
COMPUTE
COND определяет условие для проверки. Если никакого условия в команде не определено, то COND является условием TRUE, и команда выполняется всегда.
Source UREG указывает универсальный регистр — источник данных. Dest UREG указывает универсальный регистр — адресат. Поле COMPUTE определяет операцию вычисления, выполняемую параллельно с доступом к данным. Если в команде не определено никакой операции вычисления, то это поле NOP.
Операция непосредственного сдвига, необязательное условие, необязательная пересылка данных между памятью данных или памятью программы и регистровым файлом
Синтаксис:
a. IFусловие Непосредственный сдвиг
DM (Ia,Mb) PM (Ic,Md) = dreg;
b. IFусловие Непосредственный сдвиг
dreg= DM(Ia,Mb) PM(Ic,Md)
Функция:
Операция непосредственного сдвига — это операция устройства сдвига. Y-операнд — это непосредственные данные (одно 8-разрядное число или два 6-разрядных числа, в зависимости от операции). Х-операнд и результат являются регистрами регистрового файла.
Если определен доступ из регистрового файла к памяти данных или памяти программы, то он выполняется параллельно с операцией устройства сдвига. Регистр I используется для адресации памяти данных и памяти программы. Значение I поет-модифицируется значением определенного регистра М и обновляется модифицированным значением. Если условие определено, то оно влияет на выполнение всей команды.
Замечание: см. раздел 4.4.1 «Ограничения на передачу данных с использованием регистров DAG» в главе 4 Передача данных.
Примеры:
IF GT R2=R6 LSHIFT BY 30, DM (14,M4) =R0; IF NOT SZ R3=FEXT Rl BY 8: 4;
Код операции: (с доступом к данным)
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23
100
I
м
COND
G
D
DATAEX
DREG
22 21 20 19 18 17 16 15 14 13 1211 10 9 8 7 6 5 4 3 2 1
SHIFTOP
DATA
RN
RX
Код операции: (без доступа к данным)
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23
000
00010


COND


DATAEX


22 21 20 19 18 17 16 15 14 13 1211 10 9 8 7 6 5 4 3 2 1
SHIFTOP
DATA
RN
RX
COND определяет условие для проверки. Если в команде не определено никакого условия, то COND является условием TRUE, и команда выполняется всегда.
SHIFTOP определяет операцию устройства сдвига. Поле DATA определяет 8-разрядное непосредственное значение сдвига. Для операции устройства сдвига, требующей двух 6-разрядных чисел (значение сдвига и значение длины), поле DATAEX добавляет 4 старших разряда к полю DATA, образуя 12-разрядное непосредственное значение. Шесть младших разрядов являются значением сдвига, шесть старших — значением длины. Если определен доступ к памяти, то D выбирает тип доступа (чтение или запись). G выбирает память данных или память программы. DREG определяет регистр регистрового файла. I определяет индексный регистр I, который поет-модифицируется и обновляется значением регистра М, определяемым полем М. Поле COMPUTE определяет вычислительную операцию, выполняемую параллельно с доступом к данным. Если в команде не определено никакой операции вычисления, то это поле NOR. Модификация индексного регистра, необязательное условие, необязательная операция вычисления.
Синтаксис:
IFусловие вычисление, MODIFY
(Ia,Mb) (Ic,Md)
Функция:
Обновление определенного регистра I значением определенного регистра М. Если операция вычисления определена, она выполняется параллельно с доступом к данным. Если определено условие, то оно влияет на выполнение всей команды. Замечание: см. раздел 4.4.1 «Ограничения на передачу данных с использованием регистров DAG» в главе 4 Передача данных. Примеры: IF NOT FLAG2_IN R4=R6*R12 (SUF), MODIFY (110,M8); IF NOT LCE MODIFY (13,Ml);
Код операции: (с доступом к данным)
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23
000    продолжение
--PAGE_BREAK----PAGE_BREAK----PAGE_BREAK--
D
DMI
DMM
COND
RELADDR
DREG
22 21 20 19 18 17 16 15 14 13 1211 10 9 8 7 6 5 4 3 2 10
COMPUTE
COND определяет условие для проверки. PMI определяет регистр I для команды косвенного перехода. Регистр I пред-модифицируется, но не обновляется значением регистра М, который выбирается полем РММ. RELADDR — это 6-разрядное число в виде двоичного дополнения, которое прибавляется к текущему значению PC для генерации адреса перехода. D выбирает тип доступа к памяти данных (чтение и запись). DREG определяет регистр регистрового файла. DMI определяет регистр I, который поет-модифицируется и обновляется значением регистра М, определямого полем DMM. Поле COMPUTE определяет вычислительную операцию, выполняемую параллельно с доступом к данным. Если в команде не определено никакой операции вычисления, то это поле NOR
Возврат из подпрограммы или прерывания, необязательное условие, необязательная операция вычисления
Функция:
Возврат из подпрограммы (RTS) или возврат из программы обработки прерывания (RTI). Модификатор команды DB указывает, что переход задержанный; иначе — он незадержанный.
Команда возврата из подпрограммы заставляет процессор выполнить переход по адресу, сохраненному в вершине стека счетчика команд. Различие между RTS и RTI заключается в том, что команда RTI не только извлекает адрес возврата из стека счетчика команд, но также:
/>1) извлекает содержимое стека состояния, если туда было помещено содержимое регистров состояния ASTAT и MODE1 (если было прерывание IRQ,_0, прерывание по таймеру или векторное прерывание VIRPT);
2) обнуляет соответствующий бит в регистрах фиксирования прерывания (IRPTL) и указателя маски прерывания (IMASKP).
Возврат выполняется, если условие определено и верно. Если операция вычисления определена без ELSE, она выполняется параллельно с возвратом. Если операция вычисления определена с ELSE, она выполняется только в том случае, если условие ложно. Заметьте, что условие должно быть определено, если определена фраза ELSEвычисление.
Если незадержанный вызов используется как одна из трех последних команд в цикле, то с командой RTS должен применяться модификатор повторного входа в цикл (LR). Команда RTS (LR) гарантирует правильный повторный вход в цикл. Например, в цикле, организованном по счетчику, условия завершения цикла проверяется посредством уменьшения значения счетчика текущего цикла (CURLCNTR) в течение выполнения двух последних команд цикла. Команда RTS (LR) гарантирует правильный повторный вход в цикл, предотвращая декремент счетчика циклов (дважды для одной и той же итерации цикла).
При возвращении из подпрограммы, в которую была сведена программа обработки прерывания командой JUMP (CI), должен использоваться модификатор (LR) команды RTS (в случае, если прерывание поступает в течение двух последних команд цикла).
Примеры: RTI, R6=R5 XOR R1; IF NOT GT RTS (DB); IF SZ RTS, ELSE R0=LSHIFT Rl BY R15.
Код операции: (возврат из подпрограммы)
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23
000
01010




COND


J
Е
L R


22 21 20 19 18 17 16 15 14 13 1211 10 9 8 7 6 5 4 3 2 10
COMPUTE
Код операции: (возврат из программы обработки прерывания)
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23
000
01011




COND


J
Е




22 21 20 19 18 17 16 15 14 13 1211 10 9 8 7 6 5 4 3 2 10
COMPUTE
COND определяет условие для проверки. Если в команде никакого условия не определено, то COND является условием TRUE, и возврат выполняется всегда. J определяет, задержан возврат или нет. Е определяет, используется или нет фраза ELSE. Поле COMPUTE определяет выполняемую вычислительную операцию. Если в команде не определено никакой операции вычисления, то это поле NO P. LR определяет, назначен или нет модификатор повторного входа в цикл.
Загрузка счетчика цикла, команда DO UNTIL LCE
Функция:
Инициализирует организованный по счетчику программный цикл. Счетчик цикла LCNTR загружается 16-разрядным непосредственным значением данных или значением из универсального регистра. Начальный адрес цикла помещается в стек PC. Адрес окончания цикла и условие окончания LCE помещаются в стек адреса цикла. Конечный адрес может быть меткой для абсолютного 24-разрядного адреса памяти программы или 24-разрядным адресом относительно PC в виде двоичного дополнения. LCNTR помещается в стек счетчика цикла и становится значением CURLCNTR. Цикл выполняется до тех пор, пока содержимое CURLCNTR не достигнет нуля.
Примеры:
LCNTR=100, DO fmax UNTIL LCE; (fmax — программная метка) LCNTR=R12, DO (PC,16) UNTIL LCE;
Код операции: (для загрузки счетчика цикла непосредственным значением данных)
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24
000
01100
DATA
23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RELADDR
Код операции: (для загрузки счетчика цикла из универсального регистра)
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23
000
01101
UREG


22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RELADDR
RELADDR определяет адрес конца цикла по отношению к адресу команды DO LOOP. (Абсолютный адрес тоже допускается; он преобразуется в эквивалентный относительный адрес ассемблером при кодировке) Счетчик цикла (LCNTR) загружается 16-разрядным значением DATA или содержимым регистра, определенным полем UREG.
(PC,) UNTIL условие окончания;
Функция:
Инициализирует организованный по счетчику программный цикл. Начальный адрес цикла помещается в стек PC. Адрес окончания цикла и условие окончания помещаются в стек цикла. Конечный адрес может быть меткой для абсолютного 24-разрядного адреса памяти программы или 24-разрядным адресом относительно PC в виде двоичного дополнения. Цикл повторяется до тех пор, пока не выполняется заданное условие окончания цикла.
Примеры:
DO end UNTIL FLAG IN; (end — программнаяметка) DO (PC, 7) UNTIL AC;
Код операции: (относительная адресация)
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24
000
OHIO


TERM


23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RELADDR
RELADDR определяет адрес конца цикла по отношению к адресу команды DO LOOP. (Абсолютный адрес тоже допускается; он преобразуется в эквивалентный относительный адрес ассемблером при кодировке) TERM определяет условие окончания цикла.    продолжение
--PAGE_BREAK--
Команды непосредственной пересылки данных
Пересылка данных между памятью данных или памятью программы и универсальным регистром, прямая адресация, непосредственное значение адреса
Функция:
Обращения между памятью данных или памятью программы и универсальным регистром при прямой адресации. Полный адрес памяти данных или памяти программы определяется в программе. Адреса памяти данных 32-разрядные (от О до 232-1). Адреса памяти программы 24-разрядные (от 0 до 224-1).
Примеры:
DM (temp) =MODE1; (temp — программная метка) DMWAIT=PM (0x489060);
Код операции:
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32
000
100
G
D
UREG
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
D выбирает тип обращения (запись или чтение). G выбирает тип памяти (память данных или память программы). UREG определяет номер универсального регистра. ADDR содержит непосредственное значение адреса.
Пересылка данных между памятью данных или памятью программы и универсальным
Функция:
Обращения между памятью данных или памятью программы и универсальным регистром при косвенной адресации с использованием регистров I. Регистр I пред-модифицируется непосредственным значением, заданным в команде. Содержимое регистра I не обновляется. Модификаторы адреса памяти данных 32-разрядные (от 0 до 232-1). Модификаторы адреса памяти программы 24-разрядные (от 0 до 224-1). Замечания:
Универсальный регистр (ureg) может находиться не в том же самом DAG (т.е.
DAG1 или DAG2), что и la/Mb или Ic/Md.
См. раздел 4.4.1 «Ограничения на передачу данных с использованием регистров DAG» в главе 4 Передача данных.
Примеры:
DM (24,15) =TCOUNT; USTATl=PM (offs, 113);
("offs" — определенная константа)
Код операции:
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32
101
G
I
D
UREG
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Dвыбирает тип доступа (запись или чтение). G выбирает тип памяти (данные или программа). UREG определяет номер универсального регистра. Поле I определяет индексный регистр I. Поле DATA определяет значение модификации для регистра I.
Прямая запись данных в память данных или память программы
Синтаксис:
DM (Ia,Mb) =; PM (Ic,Md)
Функция:
Запись 32-разрядных данных в память данных или память программы при косвенной адресации. Данные размещаются в старших 32 разрядах 40-разрядного слова памяти. Младшие 8 разрядов обнуляются. Регистр I поет-модифицируется и обновляется определенным значением регистра М. Замечания:
Универсальный регистр (ureg) может находиться не в том же самом DAG (т.е. DAG1 или DAG2), что и la/Mb или Ic/Md.
Примеры:
DM (I4,M0) =19304;
РМ (114,Mil) =count; (count-константа, определяемая пользователем)
Кодоперации:
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32
100
1
I
м
G


31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
I выбирает индексный регистр I, М выбирает регистр модификации М. G выбирает тип памяти (память данных или память программы). DATA определяет 32-разрядные данные.
Запись данных в универсальный регистр
Синтаксис:
ureg = ;
Функция:
Запись 32-разрядных данных в универсальный регистр. Если регистр 40-разрядный, данные размещаются в старших 32 разрядах, а в 8 младших записываются нули.
Примеры:
IMASK=0xFFFC0060;
M15=modl; (modi — константа, определяемая пользователем)
Код операции:
47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32
000
01111
UREG
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DATA
UREG определяет номер универсального регистра. Поле DATA определяет значение данных.
Заключение
Набор команд процессоров семейства ADSP-21000 обеспечивает широкие возможности для их программирования. Многофункциональные команды позволяют выполнять вычисления параллельно с передачей данных, а также одновременные операции умножителя и ALU. Практически каждая команда может быть выполнена за один процессорный цикл. Алгебраический синтаксис, используемый ассемблером семейства ADSP-2106x, упрощает кодирование и читаемость. Удобный набор средств разработки облегчает программирование.
Список использованных источников
1. Остапенко А.Г., Лавлинский С.И., Сушков А.В. и др. Цифровые процессоры обработки сигналов. Справочник. М.: Радио и связь, 1994.264 с.


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.