Мегаобучалка Главная | О нас | Обратная связь


Система команд. Классификация команд



2019-12-29 206 Обсуждений (0)
Система команд. Классификация команд 0.00 из 5.00 0 оценок




Материал из Википедии — свободной энциклопедии

Текущая версия (не проверялась)

Перейти к: навигация, поиск

     

Система команд — соглашение о предоставляемых архитектурой средствах программирования, а именно: определённых типах данных, инструкций, системы регистров, методов адресации, моделей памяти, способов обработки прерываний и исключений, методов ввода и вывода.

Система команд представляется спецификацией соответствия (микро)команд наборам кодов (микро)операций, выполняемых при вызове команды, определяемых (микро)архитектурой системы. (При этом, на системах с различной (микро)архитектурой может быть реализована одна и та же система команд. Например, Intel Pentium и AMD Athlon имеют почти идентичные версии системы команд x86, но имеют радикально различный внутренний дизайн.)

Базовыми командами являются, как правило, следующие:

· арифметические, например «сложения» и «вычитания»;

· битовые, например «логическое и», «логическое или» и «логическое не»;

· присваивание данных, например «переместить», «загрузить», «выгрузить»;

· ввода-вывода, для обмена данными с внешними устройствами;

· управляющие инструкции, например «переход», «условный переход», «вызов подпрограммы», «возврат из подпрограммы».

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

· Если объединить наиболее часто используемую последовательность микроопераций под одной микрокомандой, то надо будет обеспечивать меньше микрокоманд. Такое построение системы команд носит название CISC (Complex Instruction Set Computer), в распоряжении имеется небольшое число составных команд.

· С другой стороны, это объединение уменьшает гибкость системы команд. Вариант с наибольшей гибкостью — наличие множества близких к элементарным операциям команд. Это RISC (Reduced Instruction Set Computer), в распоряжении имеются усечённые, простые команды.

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

 

 

19. Структура и форматы команд.

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

Классификация команд процессора обычно производится по функциональным признакам.

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

Например, команда, состоящая из двух полей, имеет вид:

Поле КО в виде двоичного кода задает тип операции (например, сложение) и тип данных, например, сложение целых чисел или сложение чисел с плавающей запятой. Различные операции, с различными типами данных имеют различный код КО. В адресной части команды, в полях А указываются адреса операндов. k и m - количество разрядов, отводимых под код операции КО и под адресную часть А, соответственно. Значение определяется количеством всех команд в системе команд. Значение зависит от способов адресации, количества операндов, разрядности и количества РОН, предполагаемого объема памяти.

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

Схема выполнения трехадресной команды: [А3]:=[А1]*[А2]. Содержимое ячейки с адресом А1 - [А1] (первый операнд) и содержимое ячейки с адресом А2 - [А2] (второй операнд), извлеченные из памяти, вступают в операцию *, заданную полем КО, и результат операции пересылается (записывается) в ячейку памяти с адресом А3. В общем случае, в зависимости от количества адресных полей, принято различать команды: безадресные, одноадресные, двухадресные, трехадресные.

Кроме того, в процессорах применяют команды различных форматов в зависимости от уровней памяти, т.е. в зависимости от того, адрес какого типа указан в адресной части команды - адрес типа R, в котором указывается номер РОН, или адрес типа А – номер ячейки ОП. Отсюда различные типы форматов: RR – команды типа регистр-регистр, RM – команды типа регистр-память, MM - команды типа память-память.

Примеры двухадресных команд типов RR (1), RM (2), MM (3) :

Надо отметить, что количество разрядов k для адресации РОН, меньше количества разрядов m для адресации ячейки памяти А, т.к. количесво РОН значительно меньше количества ячеек памяти.

 

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

- передача информации в пространстве (из одного блока ЭВМ в дру­гой);

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

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

- арифметические операции.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Структуры команд: а) обобщенная; б) четырех-; в) трех-;

г) двух -; д) одно -; е) безадресная

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

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

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

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

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

nком > log 2 M, например, при М=200, пкоп = 8.

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

nA > log2S, например, при S = 64 Мб, nA = 26.

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

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

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

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

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

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

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

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

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

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

Akk :=Аkk*ОП[А1].

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

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

Способ расширения кодов операции

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

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

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

 



2019-12-29 206 Обсуждений (0)
Система команд. Классификация команд 0.00 из 5.00 0 оценок









Обсуждение в статье: Система команд. Классификация команд

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (206)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.011 сек.)