Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MProc / M8 / Исполнительная среда Itanium.doc
Скачиваний:
39
Добавлен:
16.04.2013
Размер:
340.48 Кб
Скачать

3.3. Обзор кодирования инструкций

Каждая инструкция классифицируется в один из шести типов; каждый тип инструкции может выполняться на одном или нескольких типах исполнительных устройств. В табл.3.9 дан список типов инструкций и типы исполнительных устройств, на которых они выполняется.

Табл.3.9. Взаимосвязь между типом инструкции и типом исполнительного модуля.

Тип инструкции

Описание

Тип исполнительного устройства

A

Целочисленная, АЛУ

I-unit или M-unit

I

Целочисленная, не АЛУ

I-unit

M

Память

M-unit

F

С плавающей точкой

F-unit

B

Ветвление (Branch)

B-unit

L+X

Расширенная (extended)

I-unit или B-unit

Инструкции объединяются по три в 128-битные, выровненные контейнеры называемые связками(bundle). Каждая связка содержит три 41-битныхслота(slot) и 5-битное поле шаблона. Формат связки изображен на рис.3.15.

127

87

86

46

45

5

4

0

слот инструкции 2

слот инструкции 1

слот инструкции 0

шаблон

41

41

41

5

Рис.3.15. Формат связки.

В процессе выполнения, архитектурные остановки (stops-стопы) в программе показывают, что одна или несколько инструкций перед стопом могут иметь определенные типы ресурсных зависимостей с одной или несколькими инструкциями после стопа. В табл. 3.10, стоп показан в виде двойной линии справа от слота, после которого делается стоп. Например, шаблон 00 не имеет стопов, а шаблон 03 имеет стоп после первого слота и перед вторым слотом.

Дополнительно, для локализации стопов, поле шаблона задает схему слотов инструкций для типов исполнительных устройств. Не все возможные схемы инструкций для устройств являются допустимыми. Табл.3.10 показывает заданные комбинации. Три правых колонки соответствуют трем слотам инструкций в связке. В каждой колонке написан тип исполнительного устройства управляющего этим слотом инструкции.

Табл.3.10. Код поля шаблона и схема слотов инструкций.

Шаблон

Слот 0

Слот 1

Слот 2

00

M-unit

I-unit

I-unit

01

M-unit

I-unit

I-unit

02

M-unit

I-unit

I-unit

03

M-unit

I-unit

I-unit

04

M-unit

L-unit

X-unit a

05

M-unit

L-unit

X-unit a

06

07

08

M-unit

M-unit

I-unit

09

M-unit

M-unit

I-unit

0A

M-unit

M-unit

I-unit

0B

M-unit

M-unit

I-unit

0C

M-unit

F-unit

I-unit

0D

M-unit

F-unit

I-unit

0E

M-unit

M-unit

F-unit

0F

M-unit

M-unit

F-unit

10

M-unit

I-unit

B-unit

11

M-unit

I-unit

B-unit

12

M-unit

B-unit

B-unit

13

M-unit

B-unit

B-unit

14

15

16

B-unit

B-unit

B-unit

17

B-unit

B-unit

B-unit

18

M-unit

M-unit

B-unit

19

M-unit

M-unit

B-unit

1A

1B

1C

M-unit

F-unit

B-unit

1D

M-unit

F-unit

B-unit

1E

1F

a. Шаблон MLX формально называется MLI, а для совместимости X-слот может содержать код break.i или nop.i в дополнение к любой X-инструкции.

Расширенные инструкции, использующиеся для длинных целочисленных инструкций и инструкций дальних переходов, занимают два слота инструкций. В зависимости от основного кода операции, расширенные инструкции выполняются в устройстве B(длинныеbranch/call) или в устройствеI(все другиеL+Xинструкции).

Соседние файлы в папке M8