Набор инструкций
Набор команд это множество операций, которое исполняет процессор. Набор команд это та граница, где проектировщик компьютера и программист рассматривают Архитектуру, как единое целое, т.е., видят ее одинаково. И поэтому уровень команд должен быть удобен и согласован с разработчиками аппаратного обеспечения и составителей программного обеспечения.
Какая архитектура набора команд считается хорошей? Архитектуру определяют два фактора. Набор команд должен эффективно реализоваться в современной и будущей технологии. Архитектура набора команд должна обладать важными чертами: регулярность и полнота вариантов.
Представление команды Команда содержит следующие элементы Код операции Ссылки на исполняемые операнды Ссылку на результирующий операнд Ссылку на следующую команду (необязательно)
Команда указывает 1. ЧТО процессор делает и 2. КАК заданы операнды и операции в инструкциях?
Вопросы, решаемые при проектировании Множество операций. Типы данных. Формат команды. Способы адресации. Используемые регистры.
Типы команд Команды арифметической и логической обработки данных. Команды преобразования. Команды пересылки данных. Команды ввода/вывода. Команды системного управления. Команды передачи управления. Команды работы со строками. Команды SIMD.
Типы операндов Числа (целые, с плавающей запятой десятичные). Логические данные. Адреса. Константы (литералы).
Формат команд При определении формата необходимо учитывать Общее число различных команд. Общую длину команды. Тип полей и их длина. Простота декодирования. Адресуемость и способы адресации. Стоимость оборудования для декодирования и исполнения команд.
Разрядность адресной части
Критерии выбора количества адресов Емкость ЗУ, необходимого для хранения информации. Временя выполнения команды. Эффективность использования ячеек памяти для хранения программ.
Способы адресации
Вычисление эффективного адреса Смещение (Displacement) -- 8,16,32- битное число, включенное в команду. База (Base) -- содержимое базового регистра, используется для указания на начало некоторого массива. Индекс (Index) -- содержимое индексного регистра, используется для выбора элемента массива. Масштаб (Scale) -- множитель (,2,4 или 8), указанный в коде команды. Этот элемент используется для указания размера элемента массива
Формат команды процессора Pentium