Базовая организация ЭВМ

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

Структура машинной команды «в пространстве».

Структура команды:

Машинная команда во внутреннем представлении по форме представляет собой двоичное слово. Его можно представить из двух частей (полей): кода операции (КОП) и адресной части команды.

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

Поле КОП может быть переменной или постоянной длины. Некоторые кодовые комбинации поля КОП оставляют незадействованными, это резервные коды для будущего расширения системы команд.

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

 

Обобщенные формы команд.

 

1. В любой системе команд есть «пустая» команда, которая не делает никакого действия (NOP). Для нее просто не требуется указания операндов. Некоторые команды не требуют указания каких-либо операндов, так как их действие направлено на один заранее предопределенный операнд. Например команда «разрешить прерывание» STI – это команда устанавливает бит IF в регистре состояний EFLAGS.

2. Некоторые команды выполняют действие с одним операндом. Например, команда NEG - поменять знак операнда. Такие команды называют однооперандными. Передача управления – также однооперандная команда, в которой результат операции - изменение содержимого счетчика команд. В таких командах есть одно адресное поле для указания места расположения (или значения) операнда.

Пример такой команды: изменение знака операнда:

negax; эта команда изменит знак целого числа в регистре процессора.

3. В любом процессоре есть команды пересылок, которые копируют содержимое элементов памяти в другие элементы памяти. Такие команды требуют указания двух операндов: источника Source (Scr) и приемника Destination (Dest, Dst).

Пример такой команды:

movbl, [esi]; Содержимое однобайтового элемента данных из ячейки памяти, адрес которой хранится в регистре процессора esi, копируется в регистр процессора bl.

4. Привычные нам арифметические действия (сложение, вычитание, умножение, …) оперируют с двумя операндами и формируют результат операции : С=А+В. Таким образом, в операции участвую три элемента. В некоторых системах команд соответствующие команды действительно позволяют программисту независимо указать места расположения всех трех элементов. Для уменьшения длины команды в других системах команд эти команды имеют только два адресных поля, при выполнении команды результат операции помещается на место одного из операндов, замещая («затирая») его.

5. В системах команд процессоров с длинным командным словом (VLIW) одновременно выполняются несколько команд и они должны быть записаны подряд – длинным словом. Формировать длинное слово может или программист (в сигнальных процессорах), или транслятор языка (Itanium).

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

Разработчики системы команд выбирают структуру адресной части команды, исходя из нескольких взаимоисключающих требований, главные два из которых следующие:

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

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

Адрес(а) операнд(ов), с которым(и) выполнит действие команда, определяются в процессе обработки этой команды (формируются устройством вычисления адресов). Такой адрес называют исполнительным (executive) или эффективным (effective) адресом ЕА. Адрес, который передается по магистрали из процессора в ОЗУ и управляет работой ОЗУ, будем называть физическим адресом.

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

Понятие адресного пространства является одним из фундаментальных в организации ЭВМ.

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

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

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

1)Вычисление исполнительного/эффективного адреса EA (executive/effective address) в соответствии со способом адресации;

2)Переход от EA к физическому адресу (эта часть вычисление, как уже было сказано, называется трансляцией адреса) .

Яндекс.Метрика