Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

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

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Архитектуры системы команд




 

В команде указывается, какую операцию выполнять (КОП), над какими операндами выполнять операцию, а также, куда поместить операнд.

       
 
 
   

 


Стековая архитектура СК:

 

Операции:

- занесение в стек (PUSH);

- извлечение из стека (POP);

- выполнение действий на стеком

(извлечение операндов из вершины стека,

выполнение действий, помещение результата в вершину стека).

 

Для выполнения арифметических операций их

преобразуют к постфиксной форме (Польской записи):

a=a+b*(c-d); Постфиксная форма: abcd-*+.

Действия: push a; push b, push с; push d; sub; mul; add; pop a

 

(+) При размещении операндов в стековой памяти (LIFO) архитектура команд упрощается (большое количество действий выполняется аппаратно).

(-) Отсутствие прямого доступа к памяти ограничивает область применения.

(-) Сложность организации параллельной обработки.

 

 

Аккумуляторная архитектура СК:

 

Один из операндов должен обязательно находиться в специальном регистре-аккумуляторе. Результат также сохраняется в аккумулятору.

 

Операции:

- занесение в аккумулятор (LOAD);

- извлечение из аккумулятора (STORE);

- выполнение действий над операндами

(извлечение первого операнда из аккумулятора,

извлечение второго операнда из ОП и помещение

во временный теневой регистр TMP, выполнение

действий, помещение результата в аккумулятор).

Пример: a = a + b * (c -d);

Определение троек: T1=c-d; T2=b*T1; T3=a+T2;

Действия:LOAD c; SUB D; MUL b; ADD a; STORE a.

 

(+) В команде необходимо указывать только адрес второго операнда.

(+) Ускоряются длинные вычисления (a*b/c+d-e).

(-) Наличие одного аккумулятора является узким местом, т.к. временно ненужный результат необходимо перезаписывать в другой регистр или ОП.

Регистровая архитектура СК:

 

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

 
 

 

 


 

Для данной архитектуры возможны варианты размещения операндов: оба операнда в памяти; один операнд в памяти и один в РОН; оба операнда в РОН.

Для уменьшения размерности команд и для упрощения декодирования накладывают ограничения на размещение операндов.

 

Вариант (+) (-)
Оба операнда находятся в регистрах Простота аппаратной реализации. Простота параллельной обработки. Избыточность в команде из-за сложности кодирования с кратностью 8 бит
Один операнд находится в регистре, а один в памяти Код компактен. Данные поступают в ALU без промежуточного хранения в РОН Наличие адреса в команде усложняет дешифрацию и сокращает возможное кол-во РОН, адресуемых в команде.
Оба операнда находятся в памяти Код наиболее компактен. Возможность выполнения простых действий наиболее быстро без занесения в РОН Команды имеют максимальную длину. Из-за наличия коротких и длинных команд трудно оптимизировать тракты передачи данных и декодеры инструкций

 

Типы команд

 

• Команды пересылки данных.

- регистр-регистр

- регистр-память

- память-память

• Команды арифметической и логической обработки (сложение, вычитание, умножение, деление, инкремент, декремент, сравнение, операции над ЧПЗ, логические операции, операции сдвига).

Сдвиг: логический, арифметический, циклический, циклический через дополнительным разряд.

• Команды работы со строками (могут быть реализованы набором других команд, однако удобны при работе с символьной информацией).

• Команды векторной обработки (позволяет выполнять однотипные действия над большим количеством однородных данных). Пример арифметики с насыщением:

1011 0111 1010

+ 0001 1001 1000

1100 1111 1111

• Команды преобразования: служат для табличного преобразования данных из одной системы кодов в другую (2-10 <-> 2)

• Команды ввода/вывода. Служат для управления, проверки состояния и обмена данными с периферийными устройствами.

- Команды вывода в порт

- Команды ввода из порта.

• Команды управления потоком команд. Данные команды служат для указания очередности выполняемых команд.

Вычисление адреса очередной команды может выполняться несколькими способами:

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

- изменением адреса на длину следующей (перешагивание)

- изменением адреса на значение, указанное в текущей команде (короткий переход).

- непосредственное указание следующей команды (длинный переход).

Перечисленные команды могут выполняться лишь по некоторому условию (уловные переходы).

Команды условного перехода составляют 80% команд управления.

Команды безусловного перехода: вызовы и возвраты из процедур, и.т.д.

 

 

Форматы команд.

 

Операционная часть Адресная часть

 

Четырехадресная команда:

 

КОП 1 операнд 2 операнд результат Адрес след ком.

 

Трехадресная команда:

 

КОП 1 операнд 2 операнд результат

 

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

 

КОП 1 операнд 2 операнд/результат

 

Данный формат команд характерен для CISC-архитектуры.

 

Аккумуляторная архитектура:

 

КОП 1 операнд

 

Второй операнд хранится в аккумуляторе. Данный формат команд характерен для RISC-архитектур.

 

Нульоперандная команда:

 

КОП

 

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

Адресная часть
Способ адресации (СА) Адрес/операнд

Непосредственная адресация

Вместо адреса команда содержит непосредственно операнд.

(+) команда выполняется быстро

(-) непосредственный операнд может не войти в команду

 

Прямая адресация

Адрес в команде является адресом операнда

(+) если операнд находится в памяти, то это самый быстрый способ указать на него

(-) заранее определенный адрес влияет на переносимость программы.

(-) Адрес занимает много места

 

Неявная адресация

Операнд подразумевается (следует из КОП).

(+) Команда занимает мало места

(-) только такие командах нельзя использовать для построение всей системы команд.

 

Регистровая адресация

 

Адрес в команде указывает не на ячейку ОП, а на регистр.

(+) Быстрее прямой адресации

(-) Количество регистров ограничено

Косвенная адресация

 

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

(+) удобна для обработки структурных типов данных.

(-) приходится осуществлять много обращений к ОП.

 

Косвенная регистровая адресация

 

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

(+) быстрее косвенной адресации

(-) для перемещения по ОП нужно менять содержимое регистра

 

Относительная адресация

Адрес вычисляется относительно счётчика команд

 

(+) Код переносим, команды занимают мало места

(-) Может понадобиться длинный адрес

 

Базовая регистровая адресация

Адрес в команде представляет собой смещение, которое складывается со значением в базовом регистре для получения адреса операнда

(+) Удобна для работы со структурами данных, размещаемых динамически.

(-) Переносимость меньше, чем у относительной адресации

 

Индексная регистровая адресация

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

(+) Удобна для работы со структурами данных, размещаемых динамически.

(-) Переносимость меньше, чем у относительной адресации

 

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

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

(+) Способ адресации удобен для команд обработки строк.

(-) Автоматическое изменение часто требуется выполнять на величину, большую единицы.

 

Индексная адресация с масштабированием

Индексный регистр умножается на масштаб M и суммируется с базовым адресом из команды.

(+) Удобен для модификации адреса на величину M.

(-) Вычисление адреса замедляется, т.к. требуется выполнять умножение.

 

Базовая индексная адресация с масштабированием

 

Адрес определяется по формуле Адрес=Индекс*Масштаб+База+Смещение.

 

(+) Базовая индексная адресация с масштабированием часто используется при обращении к системным таблицам, находящимся в ОП (таблица дескрипторов, таблицы страниц, таблица векторов прерываний и т.д.)

(-) Ограниченное на величину M (M=1,2,4,8).

 

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных