Команды процессора способы их адресации

Система команд процессора и способы адресации

Разнообразие типов данных, форм их представления и действий, которые не­обходимы для обработки информации и управления ходом вычислений, по­рождает необходимость использования различных команд – набора команд. Каждый процессор имеет собственный вполне определенный набор команд, называемый системой команд процессора. Система команд должна обладать двумя свойствами – функциональной полнотой и эффективностью /6/.

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

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

Система команд процессора характеризуется тремя аспектами: форматами, способами адресации и типом выполняемых операций.

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

Команды, как и любая информация в ВМ, кодируются двоичными словами, которые должны содержать в себе следующие виды информации:

· тип операции, которую следует реализовать в данной команде (КОП);

· место в памяти, откуда следует взять первый операнд (А 1);

· место в памяти, откуда следует взять второй операнд (А2);

· место в памяти, куда следует поместить результат (АЗ).

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

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


Поэтому в системах команд реальных ВМ трехадресные команды встреча­ются редко. Чаще используются двухадресные команды (рис.2.7-б), в этом случае в бинарных операциях результат помещается на место одного из опе­рандов.

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

Реальная система команд обычно имеет команды нескольких форматов, при­чем тип формата определяется в поле КОП (рис.2.7-г).

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

Существует пять основных способов адресации операндов в командах.

· Прямая – в этом случае в адресном поле располагается адрес операнда. Разновидность – прямая регистровая адресация, адресующая не ячейку памяти, а РОН. Поле адреса регистра имеет в команде значительно мень­шую длину, чем поле адреса памяти.

· Непосредственная – в поле адреса команды располагается не адрес опе­ранда, а сам операнд. Такой способ удобно использовать в командах с константами.

· Косвенная – в поле адреса команды располагается адрес ячейки памяти, в которой хранится адрес операнда («адрес адреса»). Такой способ позволяет оперировать адресами как данными, что облегчает организацию циклов, обработку массивов данных и др. Его основной недостаток – потеря вре­мени на двойное обращение к памяти – сначала за адресом, потом – за операндом. Разновидность – косвенно-регистровая адресация, при кото­рой в поле команды размещается адрес РОН, хранящего адрес операнда. Этот способ, помимо преимущества обычной косвенной адресации, позво­ляет обращаться к большой памяти с помощью коротких команд и не тре­бует двойного обращения к памяти (обращение к регистру занимает го­раздо меньше времени, чем к памяти).

Читайте также:  Действенный способ как вернуть любимого

· Относительная – адрес формируется как сумма двух слагаемых: базы, хранящейся в специальном регистре или в одном из РОН, и смещения, из­влекаемого из поля адреса команды. Этот способ позволяет сократить длину команды (смещение может быть укороченным, правда в этом слу­чае не вся память доступна в команде) и/или перемещать адресуемые массивы информации по памяти (изменяя базу). Разновидности – ин­дексная и базово-индексная адресации. Индексная адресация предполага­ет наличие индексного регистра вместо базового. При каждом обращении содержимое индексного регистра автоматически модифицируется (обычно увеличивается или уменьшается на 1). Базово-индексная адресация фор­мирует адрес операнда как сумму трех слагаемых: базы, индекса и сме­щения.

· Безадресная – поле адреса в команде отсутствует, а адрес операнда или не имеет смысла для данной команды, или подразумевается по умолчанию (рис.2.7-г). Часто безадресные команды подразумевают действия над содержимым аккумулятора. Характерно, что безадресные команды нельзя применить к другим регистрам или ячейкам памяти.

Одной из разновидностей безадресного обращения является использование т. н. магазинной памяти или стека. Имеется фиксированная ячейка, называемая верхушкой стека. При чтении слово извлекается из верхушки, а все остальное содержимое «поднимается вверх» так, что в верхушке оказывается следующее по порядку слово. Одно слово нельзя прочитать из стека дважды. При записи новое слово помещается в верхушку стека, а все остальное содержимое «опус­кается вниз» на одну позицию. Таким образом, слово, помещенное в стек первым, будет прочитано последним. Говорят, что стек поддерживает дисциплину LIFO – Last In First Out (последний пришел – первый ушел). Реже используется безадресная память типа очередь с дисциплиной FIFO – First In First Out (первый пришел – первый ушел).

По типам выполняемых операций команды принято делить на основных пять клас­сов.

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

· Пересылки и загрузки – обеспечивают передачу информации между про­цессором и памятью или между различными уровнями памяти (Кэш память ОЗУ). Разновидность – загрузка регистров и ячеек констан­тами.

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

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

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

Читайте также:  Выберите правильный способ аккомпанирования для концертмейстера

Команда вызова подпрограммы работает подобно команде безусловного перехода, но старое значение программного счетчика предварительно со­храняется в специальном регистре или в стеке. Команда возврата передает содержимое верхушки стека или специального регистра в программный счетчик. Команды вызова и возврата работают «в паре». Подпрограмма, вызываемая командой вызова, должна заканчиваться командой возврата, что обеспечивает по окончании работы подпрограммы передачу управле­ния в точку вызова. Хранение адресов возврата в стеке обеспечивает воз­можность реализации вложенных подпрограмм.

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

Контрольные вопросы и задания

1.Из каких основных устройств состоит процессор?

2.Какие функции выполняет устройство управления процессора?

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

4.Какие из устройств управления обеспечивают большее быстродействие процессоров?

5.Какие из устройств управления обеспечивают реализацию большего набора команд процессора?

6.Какие функции выполняет арифметико-логическое устройство процессора?

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

8.Проведите сравнительный анализ операционных устройств с жесткой и магистральной структурой.

9.Какие форматы команд применяется в микропроцессорах?

10.Назовите основные способы адресации.

11.Для каких целей используются системные команды микропроцессора?

12.Назовите достоинства и недостатки CISC и RISC процессоров.

Источник

Команды процессора способы их адресации

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

0 КОП А1 А3 15

0 КОП А1 А2 А3 23

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

Главным элементом кода команды является код операции (КОП), что определяет, какие действия будут выполнены по данной команде. Под него выделяется N старших разрядов формата. В остальных разрядах размещаются А1 и А2 v адреса операндов. А3 — адрес результата.

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

безадресные
одно-, двух-, трехадресные

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

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

По функциональному назначению в системе команд ЭВМ различают следующие группы:

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

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

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

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

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

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

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

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

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

Способы адресации классифицируют:

по наличию адресной информации в команде (явная и неявная адресация).

по кратности обращения в оперативную память.

по способу формирования адресов ячеек памяти.

При явной адресации операнда в команде есть поле адреса этого операнда.

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

По кратности обращения в оперативную память различают:

непосредственную адресацию (direct addressing)

прямую адресацию (immediate addressing)

косвенную адресацию (indirect addressing)

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

При непосредственной адресации операнд располагается непосредственно в адресном поле команды.

Прямая адресация

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

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

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

Способы формирования адресов ячеек памяти можно разделить на абсолютные и относительные.

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

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

Б v код базы,
И v код индекса,
С v код смещения.

Эти составляющие используются в различных сочетаниях.

Относительная адресация

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

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

Адрес i-того операнда в массиве определяется как сумма начального адреса массива операнда, задаваемого смещением S, и индекса I , записанного в одном из регистров регистровой памяти, называемым индексным регистром.

Адрес индексного регистра задается в команде полем адреса индекса Аи.

В каждом i-том цикле содержимое индексного регистра изменяется на постоянную величину, как правило, это 1.

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

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

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

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

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

Запись в стек производится с использованием автодекрементной адресации, а чтение — с использованием автоинкрементной адресации.

Источник

Оцените статью
Разные способы