Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Организация ЭВМ лекция.docx
Скачиваний:
6
Добавлен:
30.08.2019
Размер:
1.76 Mб
Скачать

28022012 Лекция 5

VLIW

Базируется на RICS архитектуре, где несколько простых RISC команд объединяются в одну сверхдлинную команду. Затем выполняются параллельно, независимо друг от друга.

Появляется дополнительный уровень параллелизма вычислений. И логичнее VLIW отнести не к отдельной вычислительной машине, а к системе, состоящей из нескольких процессорных элементов.

Принцип программного управления

Команда – это код, определяющий операцию вычислительной машины и данные, участвующие в этой операции. Она состоит из операционной части и адресной части. Формат команды – это структура команды с разметкой номеров разрядов, определяющих границы отдельных областей (полей) команды. Формат команды очень сильно влияет на производительность, чем меньше длина команды, тем меньше времени уходит на её дешифрирование и обработку в целом. Кроме того, длина команды обязательно должна быть согласована с форматом обрабатываемых данных. Это приводит, как правило, к длине команды кратной разрядности шины данных.

Типовые структуры команд

  1. Четырёхадресная команда

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

  1. Трёхадресная команда

Add r1,r2,r3 <r1>  <r2>+<r3>

Здесь отсутствует адрес следующей команды. По умолчанию, выполняется следующая за текущей команда.

  1. Двухадресная команда

Add r1, r2 <r1> <r1>+<r2>

Отсутствует адрес результата. По умолчанию, результат помещен в ячейку первого операнда.

  1. Одноадресная команда

Add r1 <A> <A>+<r1>

  1. Безадресная

Примером является безусловный переход, команда STOP.

Длина кода операции не является величиной постоянной (может не быть величиной постоянной). Если длины частей команды постоянны, то часто невозможно кодировать большое количество операций и иметь при этом гибкую форму адресации данных. Это проблема решается расширением кодов операций:

Часто используемые команды кодируются меньшим количеством бит, редко используемые – большим количеством бит. При этом нужно иметь информацию о длине КОП. Значит нужно выделить специальные кодовые комбинации. Такой метод усложняет дешифрирование команд, но позволяет значительно сократить длину часто используемых команд.

Например:

MOV: Вся команда закодирована 8 битами, сама КОП при этом занимает 2 бита, операнды по 3 бита.

К

7 0

ОП

адрес 1оп

адрес 2оп

01

DDD

SSS

ADD: Вся команда 8 бит. КОП - 5 бит

К

7 0

ОП

адрес 1оп

10 000

SSS


STOP: Вся команда = КОП = 8 бит.

К

7 0

ОП

1111 1011


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

Способы адресации операндов

  1. Подразумеваемый операнд. В команде не указывается явно адрес операнда, операнд подразумевается и задаётся фактически кодом операции. Пример: INC r <r>  <r>+1

  2. Подразумеваемый адрес. В команде отсутствует адрес операнда, но он подразумевается. Пример:

Add r (A)  (A)+<r>

  1. Непосредственная адресация. В команде содержится не адрес операнда, а сам операнд.

Пример: mov r,data

  1. Прямая адресация. В команде находится адрес операнда.

  2. Относительная адресация. Вводится понятие исполнительного адреса Aэфф.исп= Абазы + Аком. Адрес базовый хранится в специальном регистре.

Различают два способа относительной адресации:

    1. ОтнА суммированием. Более универсальный, но сложение выполняется долго (то есть более медленный).

    2. ОтнА совмещением. Более быстрый, но не позволяется адресовать всю оперативную память.

  1. Укороченная адресация. Адресный код содержит только часть адреса, например, младшие или старшие разряды. Остальные разряды подразумеваются. Используется только совместно с другими видами адресации.

  2. Регистровая адресация. Является частным случаем укороченной.

  3. Косвенная адресация. Адрес команды указывается на адрес ячейки памяти, в которой находится адрес операнда.

  4. Автоинкрементная адресация и Автодекрементная адресация.

  5. Стековая адресация.

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

  7. И так далее.

В CISC используются обычно все. В RISC два-три.

Основные группы команд процессора

  1. Арифметические операции для чисел с фиксированной и плавающей запятой

  2. Логические команды

  3. Команды передачи данных

  4. Команды ввода-вывода

  5. Команды передачи управления (управления порядком исполнения команд)

  6. Команды управлением режимом работы (состоянием процессора)