Выполнение команды в микропроцессоре




Лекция № 13

Тема: «Система команд МП»

 

Текст лекции по дисциплине: «Цифровые устройства и

микропроцессоры»

 

КАЛИНИНГРАД

Г


Содержание

Введение.

 

Учебные вопросы (основная часть):

 

1. Общие сведения о командах МП

2. Выполнение команд в МП

 

 

Заключение

 

Литература:

 

Основная литература

Л1. Нарышкин А.К. «Цифровые устройств и микропроцессоры»: учеб. пособие для студ. Высш. Учебн. Заведений/ А. К. Нарышкин, 2 – е изд. - Издательский центр «Академия», 2008г. с. 252 - 264

Дополнительная литература

Л.7. В.В.Корнеев, А.В.Киселев «Современные микропроцессоры». М.- НОЛИДЖ, 2003г. с. 27-36

 

Учебно-материальное обеспечение:

1. Полилюкс

2. Слайды

Текст лекции

Введение

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

Таким образом, управляющим элементом в микропроцессоре является команда.

 


1. Общие сведения о командах МП

Команда это совокупность сведений используемых микропроцессором для выполнения одной из предусмотренных в нём операций по обработке данных.

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

В зависимости от степени универсальности или специализации каждый микропроцессор обладает определённой, присущей только ему системой команд.

Что же определяет система команд?

Это, как правило,

· перечень и содержание всех команд, которые способен выполнять микропроцессор;

· название машинных операций и коды, присвоенные этим операциям в соответствии с выполняемыми командами;

· структуру (формат) кодов команд;

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

· условия переполнения разрядной сетки и т.д.

Современные микропроцессоры имеют свою индивидуальную систему команд, состоящую из 70-100 базовых команд. Базовыми являются команды, под воздействием которых микропроцессор выполняет все предписанные ему операции. С учётом модификации команд, вызванных использованием различных способов адресации памяти система команд микропроцессоров расширяется до 200-300 команд. (Например: i80386 - 220 команд, Pentium MMX - дополнительно к основным командам 57 команд по обработке мультимедийной информации, Pentium III -. дополнительно к основным командам 70 SIMD команд по обработке мультимедийной информации и т.д.).

Классификация команд микропроцессора.

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

Рис. 1 Классификация команд микропроцессоров

Рассмотрим эту классификацию.

1. С функциональной точки зрения команды делятся на:

* команды передачи данных;

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

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

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

2. С точки зрения структуры команд они делятся:

а) по числу адресов в команде:

* безадресные команды;

* одноадресные команды;

* двухадресные команды;

б) по длине команд:

* длиной в один байт;

* длиной в два байта;

* длиной в три байта.

3. По виду операндов:

* скалярные;

* векторные.

4. По типу адресации:

* с неявной адресацией;

* с непосредственной адресацией;

* с прямой адресацией.

Рассмотрим основное назначение команд, классифицируемых с функциональной точки зрения.

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

* команды, связанные с обращением к регистрам;

* команды, связанные с обращением к памяти;

* команды ввода-вывода, выполняющие процедуру ввода-вывода информации из внешней памяти и периферийных устройств.

Команды обработки данных делятся на арифметические и логические.

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

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

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

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

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

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

Структура команд.

Важнейшей характеристикой любой команды является её формат. Под форматом команды принято понимать распределение полей кода команды по разрядам машинного слова. Формат команды определяет её длину. Длина команды определяется в байтах.

Каждая команда должна указывать:

* машинную операцию подлежащую выполнению;

* местоположение операндов, участвующих в выполняемой операции;

* местоположение результата выполняемой операции.

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

В большинстве случаев команда состоит из трёх основных частей (полей):

* признаковой;

* операционной;

* адресной.

Упрощенная структура команды имеет вид:

 

Признаковая часть Операционная часть Адресная часть

 

Рис. 2 Упрощенная структура команды

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

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

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

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

n > log2N

где N - число всех операций, выполняемых микропроцессором.

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

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

Число указываемых в команде адресов может быть различным или совсем отсутствовать. Соответственно этому числу в МП используются безадресные, одноадресные, двухадресные, трёхадресные и четырёхадресные команды соответственно:

формат безадресной команды

КОП

Рис. 3 Формат безадресной команды

формат одноадресной команды

КОП А-адрес операнда

Рис. 4 Формат одноадресной команды

формат двухадресной команды

КОП А1-адрес операнда 1 и результата А2-адрес операнда 2

Рис. 5 Формат двухадресной команды

формат трёхадресной команды

КОП А1-адрес операнда 1 А2-адрес операнда 2 А3-адрес результата

Рис. 6 Формат трёхадресной команды

формат четырёхадресной команды

КОП А1-адрес операнда 1 А2-адрес операнда 2 А3-адрес результата А4-адрес очередной команды

Рис. 7 Формат четырёхадресной команды

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

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

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

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

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

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

 

 

а) К К D D D S S S г) К К R P K K K K
                                   
б) К К D D D K K K д) К К К К К К К К
                                   
в) К К К К К S S S е) К К С С С К К К
                                   
ж) К К N N N К К К  
                   
                                                                   

 

Рис. 8 Структура однобайтовых команд

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

Широкое применение в МП получили одно-, двух- и трехбайтовые команды. Варианты форматов команд МП различной длины приведены ниже на Рис. 8 Рис. 9 Рис. 10.

а)

1 байт 2 байта
К К D D D K K K Непосредственный операнд
                               

б)

1 байт 2 байта
К К К К К K K K Операнд или адрес порта  
                                 
                                   

 

 

Рис. 9 Структура двухбайтовых команд

Трёхбайтовые команды    
1 байт 2 байта 3 байта  
К К Р Р К K K K Младший полуадрес Старший полуадрес  
а)  
1 байт 2 байта 3 байта  
К К К К К K K K Младший полуадрес Старший полуадрес
б)  
1 байт 2 байта 3 байта  
К К С С С K K K Младший полуадрес Старший полуадрес  
                7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0  
в)  
                                     

 

Рис. 10 Структура трёхбайтовых команд

На Рис. 8 Рис. 9 Рис. 10 обозначено:

К - разряд поля кода операции;

Д - разряд трехбайтного номера регистра - приемника;

S - разряд номера регистра - источника;

PR - указатель, адресующую регистровую пару;

ССС - указатель условной передачи управления;

NNN - указатель адреса вектора прерывания.

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

Вывод.

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

2. выполнение команд в МП

Кодирование команд МП

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

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

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

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

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

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

Пример.

Рассмотрим, например, кодирование команды микропроцессора К580, осуществляющий передачу байта данных из регистра В в регистр А (аккумулятор). Мнемоническая запись этой команды - МОV R, R2 (аббревиатура от английского слова to move - пересылать). Формат этой команды в двоичном коде имеет вид 01 DDDSSS, где DDD - двоичный код номера регистра - приемника информации; SSS - двоичный код номера регистра-источника.

Регистр В в данном микропроцессоре имеет номер 0, а его двоичный код - 000. Регистр А имеет номер 7 и код 111. Подставив эти двоичные коды вместо DDD и SSS получим машинный код команды MOV A,B: 01111000.

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

С учетом сказанного, двоичный код команды MOV А, В разбивается на две тетрады. Младшая тетрада имеет вид 1000, что соответствует шестнадцатеричной цифре 8, а старшая тетрада имеет вид 0111, что соответствует шестнадцатеричной цифре 7, тогда шестнадцатеричный код рассматриваемой команды имеет вид 78.

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

СОКРАЩЕННЫЙ ВИД ЗАПИСИ ПРОГРАММЫ

Адрес Машинный код Мнемокод Комментарий
  3А ОО ОВ LD 0В00 Получить число
  2F СМА Инвертировать число
  32010В SТА 0В01 Записать по адресу ОВ01
  CF RSTI Прервать выполнение программы

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

а) название команды;

б) машинный код команды;

в) функциональное назначение команды (выполняемую под ее воздействие операцию в МП);

г) используемый способ адресации;

д) длину команды;

е) порядок размещения кода команды в памяти;

ж) число машинных циклов, необходимых для реализации команды;

з) воздействие результата выполнения команды на изменения состояния МП (содержимое регистра состояния);

В качестве примера рассмотрим уже используемую выше команду МП К580 "STA A":

а) название команды - "Запись в память прямая";

б) машинный код команды 32 А 916 или 0011 00102;

в) функциональное назначение команды: содержимое регистра-аккумулятора записать в ячейку памяти с адресом А. После выполнения команды в аккумуляторе и ячейке памяти с адресом А содержится одна и та же информация;

г) используемый способ адресации - прямая адресация;

д) длина команды - 3 байта;

е) порядок размещения кода команды в памяти;

- SТА (код команды) - 1 байт;

- младший байт адреса - 1 байт;

- старший байт адреса - 1 байт;

ж) число машинных циклов, необходимых для выполнения команды, - 5 циклов;

з) воздействие результата выполнения команды на состояние МП

- после выполнения команды значения разрядов регистра состояния не изменяются.

Вывод.

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

Выполнение команды в микропроцессоре

Работа МП состоитиз следующих шагов:

1) извлекается команда,

2) логические схемы устройства управления команду декодируют,

3) осуществляется выполнение заданной операции.

Реализация команды состоит из двух этапов (фаз):

1. Выборка команды (осуществляется ее загрузка в регистр команд).

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

Интервал времени, в течение которого извлекается из памяти и выполняется одна команда, принято называть циклом выполнения команды МП.

Длительность цикла выполнения команды неодинакова. Она зависит от типа команды, ее длины и используемого способа адресации. Длительность цикла выполнения команды в МП принято измерять в количестве машинных циклов (МЦ). Машинный цикл МП – это интервал времени, в течение которого происходит одно обращение к памяти за операндом или командой или выполнение «короткой» операции. Количество МЦ как на этапе выборки, так и на этапе выполнения команды зависит от типа команды, ее длины и способа адресации.

Однобайтовые команды с неявной адресацией имеют самый короткий цикл выполнения – всего два машинных цикла: МЦ выборки команды и МЦ ее выполнения. Они характеризуются наименьшим временем выполнения.

Команды с непосредственной адресацией этапа выборки команды выполняются за один МЦ, а этап выполнения зависит от длины команды. Так, для двухбайтовой команды этап выполнения может составлять либо один, либо два МЦ, для трехбайтовой команды – как правило, два МЦ.

Например, цикл выполнения двухбайтовой команды с мнемокодом LDA A ЗАГРУЗКА РЕГИСТРА НЕПОСРЕДСТВЕННАЯ (рис. 4.11) занимает два МЦ: в первом МЦ выбирается один байт команды с мнемокодом LDA A, во втором – данные, содержащиеся во втором байте команды, выбираются из памяти и загружаются в аккумулятор. В то же время выполнение двухбайтовой команды с непосредственной адресацией ADD I – СЛОЖЕНИЕ С НЕПОСРЕДСТВЕННЫМИ ДАННЫМИ требует реализации одного машинного цикла на этапе выборки команды и двух машинных циклов на этапе выполнения.

 

LDAA   ADDI   ADDM 1 байт 2 байта 3 байта
Данные Данные Ст. байт адреса
    Мл. байт адреса
а) б) в)
                 

 

Рис. 11. Цикл выполнения двухбайтной команды

 

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

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

1. Сначала микропроцессору необходимо произвести выборку кода операции команды.

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

Таким образом, этап выборки с прямой адресацией требует реализации трех машинных циклов. После извлечения из памяти кода операции и байтов адреса начинается этап выполнения команды, который, например для команды сложения, занимает два машинных цикла: один – для выборки числа из памяти, а другой – для выполнения операции сложения в АЛУ.

Например, цикл выполнения команды сложения с использованием прямой адресации ADD M – СЛОЖЕНИЕ С ПАМЯТЬЮ ПРЯМОЕ (рис. 4.11 в). По этой команде содержимое ячейки памяти, адрес которой указан в команде, прибавляется к содержимому аккумулятора. Второй и третий байты команды составляют адрес области памяти, в которой хранится число. Результат (сумма) помещается в аккумулятор.

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

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

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

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

Вывод.

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


Заключение:

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

 

Замечания и предложения по содержанию лекции



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-22 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: