Виды команд эвм. Форматы команд процессора. Возможные структуры машинных команд

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

Машинная операция – это действия машины по преобразованию информации, выполняемые под воздействием одной команды.

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

Машинный такт – период тактовой частоты работы процессора.
Машинный цикл­­ –­ количество машинных тактов, требуемых для выполнения одной команды.

По характеру выполняемых операций различают следующие основные группы команд:

  • арифметические операции над числами с фиксированной или плавающей точкой;
  • команды двоично-десятичной арифметики;
  • логические (поразрядные) операции;
  • пересылка операндов;
  • операции ввода-вывода;
  • передача управления;
  • управление работой центрального процессора.

Машинная команда состоит из операционной и адресной частей. Эти части могут состоять из нескольких полей. В общем виде машинная команда имеет следующую структуру:


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

Возможные структуры машинных команд


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


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


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


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

Фиксирует адреса обоих операндов и результата операции, например при работе со стековой памятью.

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

Обработка информации в ЭВМ осуществляется путём программного управления.

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

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

По характеру выполняемых операций можно выделить следующие группы команд:

¨ команды арифметических операций для чисел с фиксированной или плавающей запятой;

¨ команды десятичной арифметики;

¨ команды передачи данных (MOV AX, 0FFFh);

¨ команды операций ввода/вывода (IN, OUT);

¨ команды логических операций (AND, OR, NOT);

¨ команды передачи управления (управление циклом – LOOP, условные переходы – JAE, JB);

¨ команды задания режима работы машины и др.

Форматы команд ЭВМ

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

В общем случае команда состоит из:

¨ операционной части (содержит код операции);

¨ адресной части (содержит адресную информацию о местонахождении обрабатываемых данных и месте хранения результатов).

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

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

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

Пример формата команды процессора i486.

mod r/m - спецификатор режима адресации;

r/m - регистр памяти;

SS - масштабный множитель для режима масштабирования индексной адресации;

КОП - код операции;

index - определяет индексный регистр;

base - определяет базовый регистр.

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

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

Проследим изменения классических структур команд.

Чтобы команда содержала в явном виде всю необходимую информацию о задаваемой операции, она должна, как это показано на рис. 3.1 (б), содержать следующую информацию: А1, А2 - адреса операндов, А3 - адрес результата, А4 - адрес следующей команды (принудительная адресация команд).

Рис. 3.1. Структуры команд: а) обобщенная, б) четырехадресная, в) трехадресная, г) двухадресная, д) одноадресная, е)безадресная

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

Можно установить, как это принято для большинства машин, что после выполнения данной команды, расположенной по адресу К (и занимающей L ячеек), выполняется команда из (K+L)-ой ячейки. Такой порядок выборки команды называется естественным. Он нарушается только специальными командами (передачи управления). В таком случае отпадает необходимость указывать в команде в явном виде адрес следующей команды.

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

Можно условиться, что результат операции всегда помещается на место одного из операндов, например первого. Получим двухадресную команду (рис. 3.1, г), т.е. для результата используется подразумеваемый адрес.

В одноадресной команде (рис. 3.1, д) подразумеваемые адреса имеют уже и результат операции и один из операндов. Один из операндов указывается адресом в команде, в качестве второго используется содержимое регистра процессора, называемого в этом случае регистром результата или аккумулятором. Результат операции записывается в тот же регистр.

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

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

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

Существует два различных принципа поиска операндов в памяти: ассоциативный и адресный.

Ассоциативный поиск операнда (поиск по содержанию ячейки) предполагает просмотр содержимого всех ячеек памяти для выявления кодов, содержащих заданный командой ассоциативный признак. Эти коды и выбираются из памяти в качестве искомых операндов.

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

Следует различать понятия исполнительного адреса и адресного кода.

Адресный код – это информация об адресе операнда, содержащегося в команде.

Исполнительный адрес – это номер ячейки памяти, к которой фактически производится обращение.

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

В системах команд современных ЭВМ часто предусматривается возможность использования нескольких способов адресации операндов для одной и той же операции. Для указания способа адресации в некоторых системах команд выделяется специальное поле в команде - «метод» (указатель адресации). В этом случае любая операция может выполняться с любым способом адресации, что значительно упрощает программирование.

Адресуемые в командах операнды хранятся в основной памяти (ОП) и регистровой памяти (РП), рисунок 3.2.


Рассмотрим способы адресации, применяемые в современных ЭВМ.

2. Структура ЭВМ и взаимодействие ее основных устройств

2.1. Классические основы построения ЭВМ

Основы построения электронных вычислительных машин в их современном понимании были заложены в 30-е – 40-е годы прошлого века английским математиком Аланом Тьюрингом и американцем венгерского происхождения Джоном (Яношем) Нейманом.

2.2. Архитектура классической ЭВМ

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

Основные положения Неймана :

  1. Машины на электронных элементах должны работать не в десятичной, а в двоичной системе счисления.
  2. Программа должна размещаться в одном из блоков машины – в запоминающем устройстве (ЗУ), обладающем достаточной емкостью и соответствующими скоростями выборки и записи команд программы.
  3. Программа так же, как и числа, с которыми оперирует машина, представляется в двоичном коде. Таким образом, по форме представления команды и числа однотипны. Это обстоятельство приводит к следующим важным последствиям:
  • промежуточные результаты вычислений, константы и другие числа могут размещаться в том же ЗУ, что и программа;
  • числовая форма записи программы позволяет машине производить операции над величинами, которыми закодированы команды программы.
  • Трудности физической реализации ЗУ, быстродействие которого соответствовало бы скорости работы логических схем, требует иерархической организации памяти.
  • Арифметические устройства машины конструируются на основе схем, выполняющих операцию сложения. Создание специальных устройств для вычисления других операций нецелесообразно.
  • В машине используется параллельный принцип организации вычислительного процесса (операции над словами производятся одновременно по всем разрядам).
  • Общая структура классической ЭВМ

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


    Рис. 2.4. Структура классической ЭВМ

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

    Работа всех устройств, входящих в состав ЭВМ выполняются под управлением сигналов, вырабатываемых устройством управления (УУ) . УУ формирует также адреса ячеек памяти, по которым производится обращение для считывания команды, операндов и записи результата выполнения команды. Для выполнения какой-либо машинной операции используется арифметико-логическое устройство АЛУ(АУ). С помощью сигналов управления происходит настройка АУ на выполнение конкретной операции, а ЗУ получает указание, какие данные послать в АУ (откуда их взять), какие операции над ними произвести и куда поместить результат. В современных ЭВМ АЛУ и УУ объединены в общее устройство, называемое центральным процессором (ЦП).

    Оперативное ЗУ (ОЗУ) – быстродействующее запоминающее устройство, работающее непосредственно с АУ и УУ.

    Шины МПС

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

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

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

    Команды МПС

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



    Рис 2.5. Формат команды

    Форматом команды называется заранее обговоренная структура полей в её кодах, позволяющая ЭВМ распознавать составные части кода.

    Главным элементом кода команды является код операции (КОП), он определяет, какие действия будут выполнены по данной команде. Под него выделяется N старших разрядов формата. В остальных разрядах размещаются А 1 и А 2 - адреса операндов. А 3 - адрес результата.

    Длина команды зависит от числа адресных полей. По числу адресов команды делятся на:

    Безадресные,

    Одно-, двух-, трехадресные.

    Длина кода команды измеряется в машинных словах.

    Чтобы минимизировать число адресных полей, результат можно размещать по месту хранения одного из операндов ( ADD AX , BX ). Либо предварительно размещать один или несколько операндов в специально выделенных регистрах процессора (аккумуляторах). Также во многих типах операций (например, логических) третий, а часто и второй адрес вообще не используется ( RET , IRET , JE xx , INC AL ). Оттранслированные команды записываются в соседние ячейки памяти в порядке их следования в программе.

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

    Принципы работы ЭВМ по структуре фон Неймана

    Принципы работы ЭВМ иллюстрируются на рис. 2.6. По адресу команды, которая определяется содержимым СчК, выбирается из соответствующей ячейки ОЗУ слово, представляющее собой очередную команду программы и пересылается в регистр команд РгК. Часть команды (код операции) направляется в дешифратор ДШ. После чего, в соответствии с КОП формируется требуемая последовательность управляющих импульсов, которая подается на те устройства, которые должны выполнять расшифрованную операцию. Если КОП относится к арифметическим или логическим операциям, эти импульсы поступают в АУ.

    По адресной части команды (А 1 – А 3) УУ вырабатывает сигналы управления для ОЗУ, обеспечивающие чтение операндов по адресам А 1 и А 2 , посылку их в АУ и запись результатов по третьему адресу А 3 обратно в ОЗУ. Признаки результата (знак, наличие переполнения, признак нуля и так далее) поступают в УУ , где записываются в специальный регистр признаков (РП).

    После завершения выполнения данной операции, что определяется регистром состояния, в СчК добавляется единица (+1) и в следующем такте из ОЗУ будет выбрана следующая команда программы по порядку номеров ячеек ОЗУ, и затем этот процесс будет повторяться.

    Эта последовательность может быть нарушена лишь в том случае, когда в ходе вычислительного процесса появляется необходимость повторить участок программы или перейти, не выполняя, полностью какую-то часть программы. В этом случае специальной командой управления в СчК заносится не увеличенной на 1 адрес ячейки, а адрес ячейки, указанный в управляющей команде. Последовательность выборки команд при этом изменяется и начинается с указанной ячейки.

    Особенности аппаратного и программного управления процессами обработки информации

    Характерная особенность традиционной цифровой системы состоит в том, что алгоритмы обработки и хранения информации в ней жестко связаны со схемотехникой системы. То есть изменение этих алгоритмов возможно только путем изменения структуры системы, замены электронных узлов, входящих в систему, и/или связей между ними. Такая цифровая система часто называется системой на «жесткой логике». Любая система на «жесткой логике» обязательно представляет собой специализированную систему, настроенную исключительно на одну задачу или (реже) на несколько близких, заранее известных задач.

    Это имеет свои преимущества:

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

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

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

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

    Рис.2.6. Принципы работы ЭВМ по структуре фон Неймана

    Важное преимущество данной системы – универсальность:

    В тоже время присутствуют ряд недостатков:

    1. Любая универсальность обязательно приводит к избыточности. Решение максимально трудной задачи требует гораздо больше средств, чем решение максимально простой и сложность универсальной системы должна быть такой, чтобы обеспечивать решение самой трудной задачи, но чем проще решаемая задача, тем большей становится избыточность системы. Избыточность ведет к увеличению стоимости системы, снижению ее надежности, увеличению потребляемой мощности и т.д.
    2. Кроме того, универсальность, как правило, приводит к существенному снижению быстродействия.

    Таким образом, можно сделать следующий вывод. Системы на «жесткой логике» хороши там, где решаемая задача не меняется длительное время, где требуется самое высокое быстродействие, где алгоритмы обработки информации предельно просты. А универсальные, программируемые системы хороши там, где часто меняются решаемые задачи, где высокое быстродействие не слишком важно, где алгоритмы обработки информации сложные.

    Особенности реализации устройств управления ЭВМ

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

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

    При программной (микропрограммной) реализации устройства управления в состав последнего вводится ЗУ. Каждый разряд его выходного кода определяет появление определенного функционального сигнала управления . Поэтому каждой операции ставится в соответствие свой набор микрокоманд . Набор микрокоманд и последовательность их реализации (микропрограмма) обеспечивают выполнение любой сложной операции . Способ управления операциями путем последовательного считывания и интерпретации микрокоманд из ЗУ, а также использования кодов микрокоманд для генерации функциональных управляющих сигналов называют микропрограммным , а микроЭВМ с таким способом управления - микропрограммными или с хранимой (гибкой) логикой управления . К микропрограммам также предъявляют требования функциональной полноты и минимальности . Первое требование необходимо для обеспечения возможности разработки микропрограмм любых машинных операций, а второе связано с желанием уменьшить объем используемого оборудования.

    Автоматическое управление процессом работы микропрограммной ЭВМ по решению задачи достигается на основе принципа программного управления (ППУ), который составляет ее главную особенность и состоит в следующем:

    1) любая операция, реализуемая устройством, является последовательностью элементарных действий - микроопераций;

    2) для управления порядком следования микроопераций используются логические условия;

    3) процесс выполнения операций в устройстве описывается в форме алгоритма, представляемого в виде микроопераций и логических условий, называемого микропрограммой;

    4) микропрограмма отражает функции устройства, его структуру, и порядок работы устройства во времени.

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

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

    1. Команды передачи данных (перепись), копирующие информацию из одного места в другое.

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

    3. Логические операции, позволяющие компьютеру анализировать обрабатываемую информацию. Простейшими примерами могут служить сравнение, а также известные логические операции И, ИЛИ, НЕ (инверсия). Кроме того к ним часто добавляются анализ отдельных битов кода, их сброс и установка.

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

    5. Команды ввода и вывода информации для обмена с внешними устройствами. В некоторых ЭВМ внешние устройства являются специальными служебными адресами памяти, поэтому ввод и вывод осуществляется с помощью команд переписи.

    6. Команды управления, реализующие нелинейные алгоритмы. Сюда прежде всего следует отнести условный и безусловный переход, а также команды обращения к подпрограмме (переход с возвратом). Некоторые ЭВМ имеют специальные команды для организации циклов, но это не обязательно: цикл может быть сведен к той или иной комбинации условного и безусловного переходов. Часто к этой же группе команд относят немногочисленные операции по управлению процессором -типа «останов» или НОП («нет операции»). Иногда их выделяют в особую группу.

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

    В последнее время все большую роль в наборе команд играют команды для преобразования из одного формата данных в другой (например, из 8-битного в 16-битный и т.п.), которые заметно упрощают обработку данных разного типа, но в принципе могут быть заменены последовательностью из нескольких более простых команд.

    Рассматривая систему команд, нельзя не упомянуть о двух современных взаимно конкурирующих направлениях в ее построении: компьютер с полным набором команд CISC (Complex Instruction Set Computer) и с ограниченным набором - RISC (Reduced Instruction Set Computer).

    Разделение возникло из-за того, что основную часть времени компьютеру приходится выполнять небольшую часть из своего набора команд, остальные же используются эпизодически (в одной из популярных статей это в шутку сформулировано в виде следующей наглядной аналогии: «20% населения выпивают 80% пива»). Таким образом, если существенно ограничить набор операций до наиболее простых и коротких, зато тщательно оптимизировать их, получится достаточно эффективная и быстродействующая RISC-машина. Правда за скорость придется платить необходимостью программной реализации «отброшенных» команд, но часто эта плата бывает оправданной: например, для научных расчетов или машинной графики быстродействие существенно важнее проблем программирования. Подробнее вопросы, связанные с системой команд современных микропроцессоров, будут рассмотрены ниже в этой главе.

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

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

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

    Адресная часть обладает значительно большим разнообразием и ее следует рассмотреть подробнее.

    Прежде всего отметим, что команды могут быть одно-, двух- и трехадресные в зависимости от числа участвующих в них операндов.

    Первые ЭВМ имели наиболее простую и наглядную трехадресную систему команд. Например: взять числа из адресов памяти А1 и А2, сложить их и сумму поместить в адрес A3. Если для операции требовалось меньшее число адресов, то лишние просто не использовались. Скажем, в операции переписи указывались лишь ячейки источника и приемника информации А1 и A3, а содержимое А2 не имело никакого значения.

    Трехадресная команда легко расшифровывалась и была удобна в использовании, но с ростом объемов ОЗУ ее длина становилась непомерно большой. Действительно, длина команды складывается из длины трех адресов и кода операции. Отсюда следует, например, что для скромного ОЗУ из 1024 ячеек только для записи адресной части одной команды требуется 3*10 = 30 двоичных разрядов, что для технической реализации не очень удобно. Поэтому появились двухадресные машины, длина команды в которых сокращалась за счет исключения адреса записи результата. В таких ЭВМ результат операции оставался в специальном регистре (сумматоре) и был пригоден для использования в последующих вычислениях. В некоторых машинах результат записывался вместо одного из операндов.

    Дальнейшее упрощение команды привело к созданию одноадресных машин. Рассмотрим систему команд такой ЭВМ на конкретном простом примере. Пусть надо сложить числа, хранящиеся в ячейках с адресами ОЗУ А1 и А2, а сумму поместить в ячейку с адресом A3. Для решения этой задачи одноадресной машине потребуется выполнить три команды:

    Извлечь содержимое ячейки А1 в сумматор;

    Сложить сумматор с числом из А2;

    Записать результат из сумматора в A3.

    Может показаться, что одноадресной машине для решения задачи потребуется втрое больше команд, чем трехадресной. На самом деле это не всегда так. Попробуйте самостоятельно спланировать программу вычисления выражения А5 = (А1 + А2)*АЗ/А4 и вы обнаружите, что потребуется три трехадресных команды и всего пять одноадресных. Таким образом, одноадресная машина в чем-то даже эффективнее, так как она не производит ненужной записи в память промежуточных результатов.

    Ради полноты изложения следует сказать о возможности реализации безадресной (нуль-адресной) машины, использующей особый способ организации памяти -стек. Понимание принципов устройства такой машины потребовало бы некоторых достаточно подробных разъяснений. Сейчас безадресные ЭВМ практически не применяются. Поэтому ограничимся лишь упоминанием того факта, что устроенная подобным образом система команд лежала в основе некоторых программируемых микрокалькуляторов (например, типа «БЗ-21» и «БЗ-34» и им подобных).

    До сих пор в описании структуры машинной команды мы пользовались интуитивным понятием об адресе информации. Рассмотрим теперь вопрос об адресации элементов ОЗУ более подробно и строго. Наиболее просто была организована память в ЭВМ первых двух поколений. Она состояла из отдельных ячеек, содержимое каждой из которых считывалось или записывалось как единое целое. Каждая ячейка памяти имела свой номер, который и получил название адреса. Очевидно, что адреса соседних ячеек ОЗУ являются последовательными целыми числами, т.е. отличаются на единицу. В рассматриваемых ЭВМ использовались данные только одного типа (вещественные числа), причем их длина равнялась длине машинной команды и совпадала с разрядностью памяти и всех остальных устройств машины. Для примера укажем, что ячейка типичной ЭВМ второго поколения состояла из 36 двоичных разрядов.

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

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

    В ЭВМ третьего поколения идеология построения памяти существенно изменилась: минимальная порция информации для обмена с ОЗУ была установлена равной 8 двоичных разрядов, т.е. один байт. Стало возможным обрабатывать несколько типов данных: символы текста (1 байт), целые числа (2 байта), вещественные числа обычной или двойной точности (4 или 8 байт соответственно). В связи с этим была введена новая условная единица измерения информации - машинное слово. Оно равнялось 4 байтам и соответствовало длине стандартного вещественного числа. Все объемы информации начали измеряться в единицах, кратных слову: двойное слово, полуслово и т.п. Естественно, что адрес (номер ячейки ОЗУ) в машинах с байтовой организацией стал относится к отдельному байту; байты памяти имеют возрастающие на единицу номера. Слово состоит из нескольких последовательно расположенных байтов. В качестве адреса слова удобно принимать адрес одного из образующих его байтов (обычно используется младший байт, имеющий наименьший номер). Таким образом, адреса слов меняются уже не через единицу; их приращение зависит от длины машинного слова в байтах и равняется четырем.

    Размер машинного слова был, по-видимому, выбран исходя из форматов обрабатываемой информации, а не в связи с разрядностью каких-либо устройств. Для подтверждения этого приведем несколько фактов о типичных ЭВМ третьего поколения из семейства ЕС. Арифметико-логическое устройство модели «ЕС-1022» имело 16 двоичных разрядов, «ЕС-1033» - 32 разряда, а «ЕС-1050» - 64 разряда. В то же время за одно обращение к оперативной памяти в «ЕС-1022» и «ЕС-1033» выбиралось 4 байта, в «ЕС-1050» - 8 байт (а в «ЕС-1045» - 16 байт). Таким образом, разнообразие цифр свидетельствует, что 32 разряда (4 байта) не являлись каким-то технически выделенным объемом информации.

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

    Контрольные вопросы

    1. Что такое архитектура ЭВМ? Сформулируйте определение и расшифруйте его.

    2. Проведите аналогию между архитектурой ЭВМ и обыденным понятием архитектуры. Что общего и в чем различие?

    3. Что общего и в чем различие между понятиями «внутреннее устройство ЭВМ»

    и «архитектура ЭВМ»?

    4. Что такое семейство ЭВМ? Приведите примеры.

    5. Объясните, в чем состоит принцип программной совместимости. Что такое совместимость снизу вверх (поясните на примере одного из известных вам семейств)?

    6. Имеют ли отношение к понятию «архитектура» следующие факты:

    а) в компьютере применяются микросхемы динамического (или статического) ОЗУ?

    б) компьютер имеет расширенную память?

    в) компьютер имеет (не имеет) общую шину, по которой передается информация между его устройствами?

    г) в процессоре INTEL 80386 к системе команд добавлено по сравнению с INTEL 80286 несколько новых?

    д) объем памяти новой модели ЭВМ увеличен вдвое?

    7. Перечислите основные принципы фон-неимановской архитектуры и разъясните их содержание.

    8. Чем обусловлено в ЭВМ широкое применение двоичной системы?

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

    10. Из каких основных рлов состоит ЭВМ?

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

    По характеру выполняемых операций выделяются следующие группы команд:

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

    2) Команды десятичной арифметики.

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

    4) Команды операций ввода/вывода

    5) Команды логических операций

    6) Команды передачи управления (управление циклом, условный и безусловный переход)

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

    А1-А2: адреса операндов

    А3: адрес результата

    А4: адрес следующей команды

    Команда содержит в явном виде всю информацию его задаваемой операции. Существует принудительная адресация. Такая структура приводит к большой длине команды и неприемлема при прямой адресации операндов. В ряде случаев после выполнения команды расположенных по адресу К, и занимающие L ячеек памяти выполняется команда из ячейки К+L. Такой порядок выборки команд является естественным. Нарушается командами передачи управления. В этом случае отпадает необходимость в явном виде указывать А4.

    В трехадресной команде:

    А1-А2: адреса операндов

    А3: адрес результата

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

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

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

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

    Существует два принципа поиска операндов в памяти: ассоциативный и адресный. Ассоциативный поиск операнда (поиск по содержанию ячейки) предполагает просмотр содержимого всех ячеек памяти, для выявления кодов, содержащий ассоциативный признак заданный командой.

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

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

    В ЭВМ адресный код как правило не совпадает с исполнительным адресом. Способ адресации – это способ формирования исполнительного адреса операнда А и по адресному коду команды А к ­­.

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

    Классификация способов адресации по наличию адресной информации в команде. Различают явную и неявную адресацию. При явной адресации операнда в команде есть поле адреса операнда, в котором задается адресный код А к, при неявной адресации адресное поле в команде отсутствует, адрес операнда подразумевается кодом операции. Метод неявной адресации используется с целью уменьшения длины команды за счет исключения части адресов.

    Понравилось? Лайкни нас на Facebook