Лекции - Архитектура ЭВМ - файл Архитектура ЭВМ Лекции.doc. Структура и форматы машинных команд Команда для эвм состоит из частей

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

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

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

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

Диапазон чисел , представляемых в компьютере, определяется длиной слова данных и используемым способом кодирования. При использовании двоичной системы счисления, максимальное число равно 2 ( n 3 – 1) , где n 3 – количество разрядов, выделенных для кодирования числа. Один разряд предназначается для фиксации знака числа: 0 – положительное, 1 – отрицательное. Отрицательное число может быть выражено не только с помощью знака и значения, но его можно представить также в виде дополнительного кода.



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

CISC- и RISC-процессоры

По системе команд и архитектуре различают 2 вида процессоров (компьютеров):

1) с полным набором инструкций - CISC (Complete Instruction Set Computer );

2) с сокращенной системой команд - RISC (Reduced Instruction Set ).

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

Стратегия CISC-архитектуры формировалась в большой степени по желанию программистов иметь в своем распоряжении как можно больший набор команд для упрощения программирования. За первое десятилетие компьютерной эры список команд ЭВМ расширился от нескольких десятков до нескольких сотен.

Для CISC-процессоров характерны следующие признаки:

1) небольшое число регистров общего назначения;

2) большое количество машинных команд;

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

4) большое количество способов адресации,

5) большое количество форматов команд различной разрядности;



6) преобладание двухадресного формата команд;

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

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

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

1) любая операция должна выполняться за один такт;

2) система команд должна содержать минимальное количество наиболее часто используемых команд (несколько десятков) одинаковой длины;

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

В дальнейшем эти требования были несколько смягчены. Выполнение команды за один такт стало трактоваться как загрузка конвейера команд в темпе "команда за такт". Набор команд современных RISC-процессоров возрос и содержит до 150 команд и более.

Незыблемым для архитектуры RISC остается только требование: обработка данных ведется только командами в формате регистр-регистр.

Для архитектуры характерны следующие признаки:

1) наличие внутри процессора достаточно большого файла регистров общего назначения (32 и более регистров);

2) использование для обработки информации трехадресных регистровых команд;

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

Использование в программе только простых команд в формате регистр-регистр позволяет увеличить скорость выполнения большинства вычислительных задач в 2-3 раза. В процессе научных исследований было установлено, что в 80% кода программ содержится около 20% простейших команд, а удаление из системы команд сложных операций позволяет уменьшить объём аппаратуры процессора примерно в 10 раз без ощутимого снижения быстродействия. Поэтому в основе современных высокопроизводительных ЭВМ заложена архитектура RISC.

Основные команды ЭВМ

Наименование параметра Значение
Тема статьи: Основные команды ЭВМ
Рубрика (тематическая категория) Компьютеры

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

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

Классификация команд ЭВМ

I. По функциональному назначению

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

Команды обработки данных

Команды передачи управления

Дополнительные команды

II. По количеству адресов

Безадресный

С первого адреса

Со второго адреса

С третьего адреса

III. По способу кодирования операции

С фиксированной длиной кода операции

С переменной длинной кода операции

IV. По длинœе

Один байт (слово)

2 байта (слово)

3 байта (слово)

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

Данная группа команд включает в себя подгруппу команд передачи кода внутри МП между регистрами, из регистров МП в память, из памяти в регистры, из одних ячеек памяти в другие и передачи данных между МП и портами ВУ.

Отдельную подгруппу составляют команды работы со стеком. Οʜᴎ позволяют включать данные в стек для временного хранения и извлекать данные из стека при крайне важно сти их использования.

Команды обработки данных

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

Команды этого типа могут иметь один или два операнда. Операнды могут хранится в регистрах, ЦП, памяти или самой команде. Результат данной группы операций формируется в регистре-приемнике или в специальном регистре-аккумуляторе.

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

Многие ЦП имеют команды сравнения операнда с 0. В других МП имеются команды проверки или установки состояния отдельных битов в операнде.

Команды передачи управления

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

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

Команды для работы с подпрограммами. Стек.

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

Адрес программы, на которую управление передается после окончания работы подпрограммы, принято называть адресом возврата. Для организации подпрограмм большинство ЭВМ используют аппаратно-поддерживаемую структуру данных, называемую стеком. Стек - ϶ᴛᴏ структура данных, организованная по принципу LIFO. В ЭВМ для организации стека выделяется область ОП, а для адресации и доступа к стеку используется регистр-указатель стека.

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

Основные команды ЭВМ - понятие и виды. Классификация и особенности категории "Основные команды ЭВМ" 2017, 2018.

    КОМАНДА ЭВМ, указание, записанное на машинном языке конкретной вычислительной машины и определяющее ее действия при выполнении отдельной операции или части вычислительного процесса … Энциклопедический словарь

    Указание, записанное на машинном языке конкретной вычислит, машины и определяющее её действия при выполнении отд. операции или части вычислит. процесса … Естествознание. Энциклопедический словарь

    - (фр., от лат. commendare поручать). 1) небольшой отряд войска. 2) приказание начальствующего. 3) начальствование. Словарь иностранных слов, вошедших в состав русского языка. Чудинов А.Н., 1910. КОМАНДА 1) военные отряд под начальством отдельного… … Словарь иностранных слов русского языка

    команда визуализации - Команда, которая изменяет состояние или управляет действием графического устройства. Примечание Под графическим устройством понимают устройство, обеспечивающее ввод в ЭВМ и (или) вывод из ЭВМ графических данных. [ГОСТ 27459 87] Тематики машинная… …

    команда типа «память-память» - Команда, операнды и результат которой размещаются в ОЗУ. [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN storage to storage instructionSS instruction … Справочник технического переводчика

    команда (внутреннего) прерывания (с указанным номером) - — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN trap instruction … Справочник технического переводчика

    команда вывода файлов на экран в алфавитном порядке их расширений - — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN extension … Справочник технического переводчика

    команда переноса файлов на другой дисковод - — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN drive … Справочник технического переводчика

    команда подсистемы - — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN subcommand … Справочник технического переводчика

    команда пропуска (следующей команды) - — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN skip instruction … Справочник технического переводчика

(из одного блока ЭВМ в другой);


  • передача информации во времени (хранение);

  • логические (поразрядные) операции;

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

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

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

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

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

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

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

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

    г) команды передачи кодов;

    д) команды операций ввода/вывода;

    е) команды передачи управления;

    ж) команды векторной обработки;

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

    Команда в общем случае состоит из операционной и адресной частей (рис. 2.14, а ).

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

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

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

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

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

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

    n коп ³ log 2 М; например, при М= 500 n коп = 9.

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

    n А ³ log 2 S; например, при S = 4 Гбайт n А = 32.

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

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

    Чтобы команда содержала в явном виде всю необходимую информацию о задаваемой операции, она должна, как это показано на рис . 2.14, б , содержать следующую информацию:

    А 1 , А 2 – адреса операндов, А 3 – адрес результата, А 4 – адрес следующей команды (принудительная адресация команд).

    Такая структура приводит к большой длине команды (например, при М = 500, S = 4 Гб длина команды – 137 бит) и неприемлема для прямой адресации операндов основной памяти. В компьютерах с RISC-архитектурой четырехадресные команды используются для адресации операндов, хранящихся в регистровой памяти процессора.

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

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

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

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

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

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

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


    Рис. 2.14. Структуры команд:


    а – обобщенная; б – четырехадресная; в – трехадресная;
    г – двухадресная; д – одноадресная; е – безадресная

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

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

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

    Способы уменьшения формата команды. Рас смотрим гипотетическую ситуацию. Допустим, что в формате команды:

    • поле кода операций (КО) занимает 4 разряда, что позволяет закодировать 24 = 16 операций;
    • под адреса двух операндов-источников, адрес места расположения результата, адрес следующей команды выделены поля AO1, А02, АР, АСК (рис. 5.20) по 12 разрядов, что позволяет в каждом случае адресовать 212 = 4К ячеек памяти.

    Рис. 5.20.

    Как видно из рис. 5.20, несмотря на скромные возможности команды, ее общая длина составляет достаточно большое число (52) бит. Для сокращения количества разрядов команды часть информации должна быть задана неявно и не должна зависеть от особенностей конкретной команды.

    Наиболее употребительными являются следующие способы сокращения длины кода команды:

    • использование специально предусмотренных для адресации регистров : программного счетчика, указателя стека и др. Например, при выполнении команд с последовательно возрастающими адресами программный счетчик автоматически считывает из памяти следующую команду. В этом случае в формате команды отсутствует поле адреса следующей команды;
    • использование неявных способов адресации. Например, при использовании неявной регистровой адресации адрес следующей команды или операнда хранится в регистре, код которого содержит значительно меньшее число разрядов, чем код исполнительного адреса;
    • совмещение источника одного из операндов с приемником результата. В этом случае в формате команды исключается поле адреса результата;
    • использование команд с укороченной адресацией , т.е. части адресного пространства памяти;
    • использование для некоторой группы операции одного регистра. Наиболее часто для этой цели используется аккумулятор. В операциях с аккумулятором не требуется его кодировка. Например, команда ADD В выполняет операцию сложения содержимого регистра В с аккумулятором А и в него же помещает результат. Такая команда является одноадресной. Ее формат состоит из двух полей: кода операции и адреса операнда. Однако одноадресные команды требуют дополнительных команд для предварительной загрузки операндов в аккумулятор и последующего размещения результатов в памяти;
    • использование нескольких аккумуляторов (Motorola 6800, National РАСЕ, Signetic 2650). В этом случае каждая команда имеет два адреса, однако адрес источника и места назначения может быть задан другим аккумулятором.

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

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

    Форматы команд 8-разрядного процессора. Длина команды составляет от 1 до 3 байт. Код операции всегда размещается в первом байте команды. Второй и третий байты отводятся под непосредственные данные, адрес порта или ячейки памяти. В командах допускается явное задание только одного адреса памяти. Поэтому система команд процессора относится к классу одноадресных команд.

    Форматы команд процессора 8086 изображены на рис. 5.21, где обозначено: ОРС (Operation Code) – код операции; X – биты кода

    Рис. 5.21.

    операции; dst, src – указатели приемника и источника данных; port – адрес порта; data – данные; addr – адрес памяти; LB, НВ – младший и старший байты.