
Команда и ее формат
Команда - это двоичный код, определяющий тип операции и адреса операндов, над которыми выполняется данная операция. Форматом команды называется структура команды, позволяющая распознать ее составные части.
Формат команды в общем случае состоит из двух полей. Одно поле предназначено для хранения двоичного кода, определяющего тип выполняемой операции, или код операции (КОП). Другое поле А*i используется для установления адресов (i - количество адресов) двоичных кодов, над которыми выполняется операция, и адреса, куда записывается результат.
В
общем случае nком
- количество двоичных разрядов команды,
является функцией:
емкости оперативной памяти,
количества команд, выполняемых ЭВМ,
системы кодирования команд,
способов адресации.
Определим влияние указанных параметров и факторов на значение nком. Для этого вначале рассмотрим понятие адреса и операнда, которые используются в определении команды.
Для определения адреса и операнда обратимся к модели оперативной памяти. Оперативная память (ОП) – это совокупность последовательных ячеек, каждая из которых предназначена для хранения двоичного кода ограниченной разрядности. В настоящее время в большинстве ЭВМ минимальная разрядность адресуемых данных (nд) составляет один байт (то есть используется ОП с байтовой организацией). Байт - это 8-разрядный двоичный код. Двоичный код, хранящийся в ячейке ОП, над которым производится операция, называется операндом.
Все ячейки памяти имеют условные (физически нереализуемые) l -разрядные двоичные номера (00...000, 00...001, 00...010 и т.д.). Двоичный код номера ячейки ОП и является ее адресом. Основным параметром оперативной памяти является ее емкость - Nоп. Емкость оперативной памяти - это количество ячеек хранения. Как правило, в ЭВМ максимально возможный объем ОП определяется как
Nоп =2l .
Соответственно, старшие адреса ОП имеют следующие значения:11...111=2l -1, 11...110=2l--2, 11..101=2l -3 и т.д.
Рассмотрев понятие адреса, перейдем к определению размерности поля А*i в формате команды.
В поле А*i в простейшем случае указывается единственный двоичный код адреса ячейки ОП. Тогда в этом поле возможно записать 2n различных адресов ячеек хранения. И эта величина должна быть не меньше Nоп ,так как каждая ячейка определяется уникальным кодом адреса, то есть 2n Nоп , откуда
nадр log2 Nоп (1.1)
В современных ЭВМ для хранения операндов и результатов широко используется регистровая память - небольшой набор регистров разрядностью обычно равной или кратной разрядности ячеек ОП. В силу малого объема регистровой памяти, адресация операндов, размещенных в ней, требует в соответствии с (1.1) меньшего количества разрядов nрег в адресной части команды.
Рассмотрим определение размерности поля nкоп . В этом поле фиксируется двоичный код, определяющий тип выполняемой операции (команды). При разработке ЭВМ для каждой команды выбирается свой уникальный двоичный код, который остается неизменным на все время эксплуатации ЭВМ. В поле nкоп возможно записать 2nкоп различных двоичных кодов. И это количество 2nкоп должно быть больше или равно количеству операций, выполняемых ЭВМ - K (мощность системы команд), то есть 2nкоп K , откуда
nкоп log2K. (1.2)
Очевидно, что размер любого поля команды может иметь только целое значение.
На формат команды существенное влияние оказывают так называемые системы кодирования команд - количество адресов в адресной части команды i. Как ранее, так и в настоящее время широко используются одноадресная и двухадресная системы кодирования команд. В ЭВМ первого поколения и частично в последующих (ЕС ЭВМ) применялась и применяется трехадресная система кодирования.