Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

11: Система кодирования команд. Способы адресации

Лекция



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

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

Система кодирования команд

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

 

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

 

Схема выполнения трехадресной команды имеет вид:

 

1)*(А2)->А3.

 

Здесь (А1) и (А2) – адреса ячеек ЗУ, в которых хранятся первый и второй операнды соответственно; * – знак обобщенной операции(например, сложение или умножение), задаваемой полем кода операции (КОп). Знак " -> " обозначает передачу результата операции в ячейку памяти с адресом А3.

 
11: Система кодирования команд. Способы адресации

Рис. 11.1. Системы кодирования команд
 

Для выполнения операции сложения операндов, находящихся по адресам a и b, с записью результата в ячейку c ( c = a + b ) требуется одна команда такого формата:

 
КОп А1 А2 А3
ADD a b c
 

Здесь ADD – код операции сложения.

 

Формат двухадресной команды представлен на рис.11.1,б. Выполнение операции с помощью такой команды проходит по следующей схеме:

 

1) * (А2) -> А1 или

 

1) * (А2) -> А2

 

Выполнение того же самого действия c = a + b в двухадресной системе кодирования команд потребует уже двух команд, например:

 
КОп А1 А2  
ADD a b a = a + b
MOV c a c = a
 

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

 
11: Система кодирования команд. Способы адресации

Рис. 11.2. Схема выполнения операции в ЭВМ с одноадресной системой команд
 

Схема выполнения операции на ЭВМ с одноадресной системой команд имеет вид:

 

(А) * (РР) -> А или

 

(А) * (РР) -> РР.

 

Операцию c = a + b в одноадресной системе команд можно выполнить следующим образом:

 
КОп А1  
MOVR a РР = a
ADD b РР = РР + b
MOVS c c = РР
 

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

 

Несколько особое положение занимает безадресное кодирование команд. Оно используются в компьютерах, имеющих стековуюорганизацию памяти. Обращение к ячейкам такой памяти производится последовательно с помощью специального указателя стека ( УС ), определяющего рабочую в данный момент ячейку. Каждая ячейка снабжена тэгом – специальным признаком хранимой информации. Такая ЭВМ имеет структуру, представленную на рис. 11.3. В ее состав помимо АЛУ входят два специальных буферных регистра РР1 и РР2. Здесь значение тэгов следующее: Op – в данной ячейке хранится операнд, C – признак наличия в ячейке кода операции.

 
11: Система кодирования команд. Способы адресации

Рис. Об этом говорит сайт https://intellect.icu . 11.3. Схема выполнения операции в ЭВМ с безадресной системой команд
 

Проиллюстрируем работу такой ЭВМ на примере вычисления выражения ((a + b) * c - d) / e.

 

На первых двух тактах работы из памяти извлекаются операнды a и b и помещаются в рабочие регистры РР1 и РР2. Считав следующую ячейку стековой памяти, устройство управления по ее тэгу определяет, что данная информация представляет собой код операции. Этот код направляется в АЛУ, где и проводится сложение хранящихся в регистрах операндов с записью результата в один из рабочих регистров. Так как в следующей ячейке хранится операнд, то он направляется в РР, свободный от записанного результата. После этого производится выполнение следующей операции и так далее.

 

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

 

Взаимозависимость формата команды и основных параметров ЭВМ

Важной характеристикой команды служит ее длина, которая складывается из длины поля кода операции и суммы длин адресных полей:

 
n
\\
n_{Ком} = n_{КОп} + \Sigma  n_{Аi},\ i=1

где n – количество адресных полей в команде.

 

Максимальное количество операций, которое может быть закодировано в поле кода операций длиной nкоп, составляет

 

Kmax = 2nКОп

 

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

 

nКОп >= log2K.

 

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

 

Если поле адреса команды содержит просто номер ячейки ЗУ, к которой производится обращение, то длина этого поля определяется следующим образом:

 

nA >= log2VЗУ,

 

где VЗУ – объем запоминающего устройства.

 

Правомерна и другая постановка задачи – определение максимального объема запоминающего устройства ( VЗУmax ), к которому можно обратиться при заданной длине поля адреса. В этом случае

 

VЗУmax=2nадр

 

Современные ЭВМ имеют, как правило, запоминающие устройства с минимальной адресуемой единицей 1 байт ( 1 байт = 8 бит ). Поэтому, например, адресация ЗУ объемом 1 мегабайт ( 1М байт = 220 байт ) требует 20 разрядов адресного поля, а поле адреса длиной 16 разрядов позволяет обращаться к памяти максимального объема 64 килобайта ( 1К байт = 210 байт ).

 

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

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

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

 

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

 

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

 

Прямая адресация. Физический адрес операнда совпадает с кодом в адресной части команды ( рис. 11.4). Формальное обозначение:

 

Операндi = (Аi),

 

где Аi – код, содержащийся в i-м адресном поле команды.

 
11: Система кодирования команд. Способы адресации

Рис. 11.4. Прямая адресация
 

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

 

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

 

Непосредственная адресация. В команде содержится не адрес операнда, а непосредственно сам операнд ( рис. 11.5):

 

Операндi= Аi.

 
11: Система кодирования команд. Способы адресации

Рис. 11.5. Непосредственная адресация
 

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

 

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

 

Операндi = ((Аi)).

 
11: Система кодирования команд. Способы адресации

Рис. 11.6. Косвенная адресация
 

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

 

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

 

Косвенная адресация не применяется по отношению к операндам, находящимся в регистровой памяти.

 

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

 

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

 

Операндi = (базаi + смещениеi).

 

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

 

Рассмотрим два примера.

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

    Рис. 11.7. Относительная адресация
     
  2. Первая часть адресного поля команды также определяет номер базового регистра, а вторая содержит номер регистра, в котором находится смещение ( рис. 11.8). Такой способ адресации чаще всего называют базово-индексным.
    11: Система кодирования команд. Способы адресации

    Рис. 11.8. Базово-индексная адресация
     
 

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

 

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

 
Таблица 11.1.
Критерий Адресация
Прямая Косвенная

Относи-

 

тельная

 
Базово-индексная

Непосред-

 

ственная

 
ОЗУ1) РП через ОЗУ2) через РП
Время выборки операнда tОЗУ

3

 
tРП

2

 
2tОЗУ

7

 
tОЗУ+tРП

4

 
11: Система кодирования команд. Способы адресации

5

 
11: Система кодирования команд. Способы адресации

6

 
tРК

1

 
Длина поля адреса log2VОЗ

У

 

5

 
log2Vр

П

 

1

 
log2VОЗ

У

 

5

 
log2VРП

1

 
log2VРП+log2VСЕГМ

44)

 
log2VРП

2

 
Lоперанда

33)

 
Гибкость при адресации данных 5) 5 4 3 2 1 1 6
 

Принятые обозначения:

 

tОЗУ – время считывания информации из ОЗУ; tРП – время считывания информации из РП; tРК – время считывания информации из регистра команд; 11: Система кодирования команд. Способы адресации – время суммирования составных частей адреса; VОЗУ – объем ОЗУ; VРП – объем РП; VСЕГМ – объем сегмента;Lоперанда – длина операнда.

 

Примечания:

 
  1. используется, в основном, для адресации внешних устройств;
  2. используется крайне редко;
  3. зависит от длины операнда;
  4. зависит от размера сегмента;
  5. зависит от особенностей программы.

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

создано: 2016-04-15
обновлено: 2021-03-13
132500



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Цифровые устройства. Микропроцессоры и микроконтроллеры. принципы работы ЭВМ

Термины: Цифровые устройства. Микропроцессоры и микроконтроллеры. принципы работы ЭВМ