Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.pdf
Скачиваний:
150
Добавлен:
01.05.2014
Размер:
9 Мб
Скачать
☆

Набор команд А

 

0

Нет извлечения данных из стека

 

1

Извлечения данных из стека

PPU

Код помещения данных в стек РС

 

0

Нет помещения данных в стек

 

1

Помещения данных в стек

RELADDR Поле адреса относительно РС

SPO Код извлечения данных из стека состояния

0Нет извлечения данных из стека

1Извлечение данных из стека

SPU Код помещения данных в стек состояния

0Нет помещения данных в стек

1Помещения данных в стек

SREG Коды системных регистров

0 15 (см. «Коды универсальных регистров» далее)

TERM Коды условий завершения

0 31

UОбновление, индексный регистр I

0 Пред модификация без обновления

1 Пост модификация с обновлением

UREG

Код универсальных регистров

 

0 256 (смотри «Коды универсальных регистров» далее)

RA, RM,

Регистры регистрового файла для операндов и результатов вычисления

RN, RS,

0 15

RX, RY

 

RXA

Регистр регистрового файла для Х&операнда ALU при

 

многофункциональных вычислениях

 

8 11

RXM

Регистр регистрового файла для Х&операнда умножителя при

 

многофункциональных вычислениях

 

0 3

RYA

Регистр регистрового файла для Y&операнда ALU при

 

многофункциональных вычислениях

 

12 15

RYM

Регистр регистрового файла для Y&операнда умножителя при

 

многофункциональных вычислениях

 

4 7

451

А Набор команд

А.4. Коды универсальных регистров

Карта 1 регистров

PC

Счетчик команд (РС)

 

Системные регистры

 

PCSTK

Вершина стека РС

 

MODE1

Управление режимом 1

PCSTKP

Указатель стека РС

 

MODE2

Управление режимом 2

FADDR

Адрес выборки

 

 

IRPTL

Фиксация прерываний

DADDR

Адрес декодирования

 

IMASK

Маскирование прерываний

LADDR

Адрес завершения цикла

 

IMASKP

Указатель маски

 

 

 

 

 

 

 

прерываний

 

CURLCNTR Счетчик текущего цикла

 

ASTAT

Арифметическое состояние

LCNTR

Счетчик цикла

 

 

STKY

«Залипшее» состояние

R15 R0

Ячейки памяти регистрового файла USTAT1

Регистр определяемого

 

 

 

 

 

 

 

пользователем состояния

I15 I0

Индексные регистры DAG1 и DAG2 USTAT2

Регистр определяемого

 

 

 

 

 

 

 

пользователем состояния

M15 M0

Регистры модификации DAG1 и DAG2

 

 

 

L15 L0

Регистры длины DAG1 и DAG2

 

 

 

 

B15 B0

Регистры базового адреса DAG1 и DAG2

 

 

 

(b7=0)

 

 

 

 

 

 

Системные регистры

b7 b6 b5 b4

 

 

 

 

 

 

 

 

0000

0001

0010

0011

0100

0101

0110

0111

b3 b2 b1 b0

 

 

 

 

 

 

 

 

0000

R0

I0

M0

L0

B0

 

FADDR

USTAT1

0001

R1

I1

M1

L1

B1

 

DADDR

USTAT2

0010

R2

I2

M2

L2

B2

 

 

 

0011

R3

I3

M3

L3

B3

 

PC

 

0100

R4

I4

M4

L4

B4

 

PCSTK

 

0101

R5

I5

M5

L5

B5

 

PCSTKP

 

0110

R6

I6

M6

L6

B6

 

LADDR

 

0111

R7

I7

M7

L7

B7

 

CURLCNTR

 

1000

R8

I8

M8

L8

B8

 

LCNTR

 

1001

R9

I9

M9

L9

B9

 

 

IRPTL

1010

R10

I10

M10

L10

B10

 

 

MODE2

1011

R11

I11

M11

L11

B11

 

 

MODE1

1100

R12

I12

M12

L12

B12

 

 

ASTAT

1101

R13

I13

M13

L13

B13

 

 

IMASK

1110

R14

I14

M14

L14

B14

 

 

STKY

1111

R15

I15

M15

L15

B15

 

 

IMASKP

Рис. А.1. Карта 1 кодов универсальных регистров

452

Набор команд А

Карта 2 регистров

РХ

48 разрядная комбинация РХ1 и РХ2

 

 

 

РХ1

обмен между шинами (16 разрядов)

 

 

 

РХ2

обмен между шинами (32 разряда)

 

 

 

TPERIOD

период таймера

 

 

 

 

 

TCOUNT

счетчик таймера

 

 

 

 

 

 

(b7=1)

 

 

 

 

 

 

 

 

b7 b6 b5 b4

 

 

 

 

 

 

 

1000

1001

1010

1011

1100

1101

1110

1111

b3 b2 b1 b0

 

 

 

 

 

 

 

 

0000

 

 

 

 

 

 

 

 

0001

 

 

 

 

 

 

 

 

0010

 

 

 

 

 

 

 

 

0011

 

 

 

 

 

 

 

 

0100

 

 

 

 

 

 

 

 

0101

 

 

 

 

 

 

 

 

0110

 

 

 

 

 

 

 

 

0111

 

 

 

 

 

 

 

 

1000

 

 

 

 

 

 

 

 

1001

 

 

 

 

 

 

 

 

1010

 

 

 

 

 

 

 

 

1011

 

 

 

 

 

PX

 

 

1100

 

 

 

 

 

PX1

 

 

1101

 

 

 

 

 

PX2

 

 

1110

 

 

 

 

 

TPERIOD

 

 

1111

 

 

 

 

 

TCOUNT

 

 

Рис. А.2. Карта 2 кодов универсальных регистров

453

А Набор команд

Группа I. Команды вычисления и пересылки

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

2.Операция вычисления, необязательное условие 456

3.Пересылка между памятью данных или памятью программы и универсальным регистром, необязательное условие, необязательная операция вычисления 457

4.Пересылка данных между памятью данных или памятью программы и регистровым файлом относительно РС, необязательное условие, необязательная операция вычисления 459

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

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

7.Модификация индексного регистра, необязательное условие, необязательная операция вычисления 465

454

Набор команд А

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

Синтаксис:

compute,

DM(Ia,Mb)=dreg1 ,

PM(Ic,Md)=dreg2 ;

 

dreg1= DM(Ia,Mb)

dreg2=PM(Ic,Md)

Функция:

Параллельный доступ к памяти данных и памяти программы из регистрового файла. Определенные регистры I используются для адресации памяти данных и памяти программы. Значение I пост модифицируется и обновляется значением определенного регистра М. Пред модификация адреса со смещением не поддерживается.

Замечание: см. раздел 4.4.1 «Ограничения на передачу данных с использованием регистров DAG» в главе 4 Передача данных.

Примеры:

R7=BSET R6 BY R0, DM(I0,M3)=R5, PM(I11,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 и PMM определяют регистр М, используемый для обновления регистра I. Поле COMPUTE определяет операцию вычисления, выполняемую параллельно с доступом к данным. Если операция вычисления не задана в команде, то это операция NOP.

455

А Набор команд

2. Операция вычисления, необязательное условие

Синтаксис:

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, и вычисление выполняется всегда.

456

Набор команд А

3. Пересылка данных между памятью данных или памятью программы и универсальным регистром, необязательное условие, необязательная операция вычисления

Синтаксис:

 

 

 

 

 

 

 

 

 

 

 

 

 

а.

IF условие

вычисление,

 

DM(Ia,Mb)

 

= ureg ;

 

 

 

 

 

 

 

 

 

PM(Ic,Md)

 

 

 

 

 

b.

IF условие

вычисление,

 

 

DM(Mb,Ia)

 

 

= ureg ;

 

 

 

 

 

 

 

 

 

 

 

PM(Md,Ic)

 

 

 

 

 

 

c.

IF условие

вычисление,

 

ureg =

 

DM(Ia,Mb)

 

 

;

 

 

 

 

 

 

 

 

 

 

PM(Ic,Md)

 

 

 

d.

IF условие

вычисление,

 

ureg =

 

DM(Mb,Ia)

 

 

;

 

 

 

 

 

 

 

 

 

 

PM(Md,Ic)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Функция:

Обращения между памятью данных или памятью программы и универсальным регистром. Определенные регистры I используются для адресации памяти данных и памяти программы. Значение I либо пред модифицируется (M, I) либо пост модифицируется (I, M) значением определенного регистра М. При пост модификации значение регистра I обновляется модифицированным значением. Если определена операция вычисления, то она выполняется параллельно с доступом к данным. Если условие определено, то оно влияет на выполнение всей команды.

Замечания:

1.Универсальный регистр (ureg) может находиться не в том же самом DAG (т. е. DAG1 или DAG2), что и Ia/Mb или Ic/Md.

2.См. раздел 4.4.1 «Ограничения на передачу данных с использованием регистров DAG» в главе 4 Передача данных.

Примеры:

R6=R3-R11, DM(I0,M1)=ASTAT;

IF NOT SV F8=CLIP F2 BY F14, PX=PM(I12,M12);

457

А Набор команд

Код операции:

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22 21 20 19

18 17

16 15 14 13 12 11 10 9

8

7

6

5

4

3

2 1

0

 

 

 

 

 

 

 

 

 

 

 

СOND определяет условие для проверки. Если условие в команде не определено, то COND является условием TRUE, и команда выполняется всегда.

Тип доступа (чтение или запись) выбирается D. G выбирает память данных или память программы. UREG определяет универсальный регистр. I определяет индексный регистр I, М – регистр модификации М. U выбирает либо пред модификацию без обновления либо пост модификацию с обновлением. Поле COMPUTE определяет вычислительную операцию, выполняемую параллельно с доступом к данным. Если в команде не определено никакой операции вычисления, то это поле NOP.

458

Набор команд А

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

Синтаксис:

 

 

 

 

 

 

 

 

 

 

 

 

a.

IF условие

вычисление,

 

DM(Ia,<data6>)

 

= dreg ;

 

 

 

 

 

 

 

 

 

PM(Ic,<data6>)

 

 

 

 

 

b.

IF условие

вычисление,

 

DM(<data6>,Ia)

 

 

= dreg ;

 

 

 

 

 

 

 

 

 

 

PM(<data6>,Ic)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c.

IF условие

вычисление,

 

 

dreg =

DM(Ia,<data6>)

 

 

;

 

 

 

 

 

PM(Ic,<data6>)

 

 

 

 

 

d.

IF условие

вычисление,

 

 

dreg =

DM(<data6>,Ia)

 

 

;

 

 

 

 

 

 

 

 

PM(<data6>,Ic)

 

 

 

 

 

Функция:

 

 

 

 

 

 

 

 

 

 

 

 

Обращения между памятью данных или памятью программы и регистровым файлом. Определенные регистры I используются для адресации памяти данных и памяти программы. Значение I либо пред модифицируется (data, I), либо пост модифицируется (I, data) непосредственным значением данных. При пост модификации регистр I обновляется модифицированным значением. Если определена операция вычисления, то она выполняется параллельно с доступом к данным. Если условие определено, то оно влияет на выполнение всей команды.

Замечание: см. раздел 4.4.1 «Ограничения на передачу данных с использованием регистров DAG» в главе 4 Передача данных.

Примеры:

IF FLAG0_IN F1=F15*F12, F11=PM(I10,40);

R12=R3 AND R1, DM(6,I1)=R6;

459

А Набор команд

Код операции:

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22 21 20 19

18 17

16 15 14 13 12 11 10 9

8

7

6

5

4

3

2 1

0

 

 

 

 

 

 

 

 

 

 

 

COND определяет условие для проверки. Если условие в команде не определено, то COND является условием TRUE, и команда выполняется всегда.

D выбирает тип обращения (чтение или запись). G выбирает память данных или память программ. DREG определяет регистр регистрового файла. I определяет индексный регистр I. DATA определяет 6 разрядное значение модификации в виде двоичного дополнения. U определяет либо пред модификацию без обновления, либо пост модификацию с обновлением. Поле COMPUTE определяет вычислительную операцию, выполняемую параллельно с доступом к данным. Если в команде не определено никакой операции вычисления, то это поле NOP.

460