Система команд. Классификация команд
Материал из Википедии — свободной энциклопедии Текущая версия (не проверялась) Перейти к: навигация, поиск Система команд — соглашение о предоставляемых архитектурой средствах программирования, а именно: определённых типах данных, инструкций, системы регистров, методов адресации, моделей памяти, способов обработки прерываний и исключений, методов ввода и вывода. Система команд представляется спецификацией соответствия (микро)команд наборам кодов (микро)операций, выполняемых при вызове команды, определяемых (микро)архитектурой системы. (При этом, на системах с различной (микро)архитектурой может быть реализована одна и та же система команд. Например, 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,е), когда подразумеваются адреса обоих операндов и результата операции, например, при работе со стековой памятью. С точки зрения программиста, наиболее естественны и удобны трехадресные команды. Однако из-за необходимости иметь большее число разрядов для представления адресов основной памяти и кода операции длина трехадресной команды становится недопустимо большой, и ее не удается разместить в машинном слове. Следует отметить, что очень часто в качестве операндов используются результаты предыдущих операций, хранимые в регистрах машины. По указанным причинам в современных ЭВМ применяют трехадресные команды для адресации регистров. Способ расширения кодов операции В машинах с коротким словом практически невозможно в одном формате команды, т.е. при фиксированном назначении ее полей, кодировать большое число различных операций и одновременно иметь гибкую форму адресации операндов. Это противоречие в машинах с коротким словом преодолевается расширением кодов операций в команде. Для задания небольшой группы основных операций (арифметических и др.) используется короткий код операции, а получаемая при этом сравнительно большая адресная часть команды позволяет реализовать гибкую, например двухадресную с многими модификациями, адресацию. Для задания других операций используются более длинные (расширяемые) коды операций, при этом сокращаемая адресная часть оставляет возможность лишь для более простой, например одноадресной адресации операндов. В пределе расширяемый код операции занимает весь формат команды (безадресная команда). Обычно в ЭВМ используется несколько структур и форматов команд разной длины. структуры команд достаточно схематичны. В действительности адресные поля команд большей частью содержат не сами адреса, а только информацию, позволяющую определить действительные (исполнительные) адреса операндов в соответствии с используемыми в командах способами адресации.
Популярное: Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (206)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |