Команда для эвм состоит из. Лекции - Архитектура ЭВМ - файл Архитектура ЭВМ Лекции.doc
2.8 Типы и форматы команд
Несмотря на различие в системах команд разных ЭВМ, некоторые основные типы операций могут быть найдены в любой из них. Для описания этих типов примем следующую классификацию:
команды пересылки данных;
команды арифметической и логической обработки;
команды работы со строками;
команды SIMD;
команды преобразования;
команды ввода/вывода;
команды управления потоком команд.
2.8.1 Команды пересылки данных
Это наиболее распространенный тип машинных команд. В таких командах должна содержаться следующая информация:
адреса источника и получателя операндов – адреса ячеек памяти, номера регистров процессора или информация о том, что операнды расположены в стеке;
длина подлежащих пересылке данных (обычно в байтах или словах), заданная явно или косвенно;
способ адресации каждого из операндов, с помощью которого содержимое адресной части команды может быть пересчитано в физический адрес операнда.
^
2.8.2 Команды арифметической и логической обработки
В данную группу входят команды, обеспечивающие арифметическую и логическую обработку информации в различных формах ее представления. Для каждой формы представления чисел в АСК обычно предусматривается некий стандартный набор операций.
Помимо вычисления результата выполнение арифметических и логических операций сопровождается формированием в АЛУ признаков (флагов), характеризующих этот результат. Наиболее часто фиксируются такие признаки, как:
Z (Zero) - нулевой результат;
N (Negative) - отрицательный результат;
V (oVerflow) - переполнение разрядной сетки;
С (Carry) - наличие переноса.
двухместные арифметические операции (операции с двумя операндами): сложение, вычитание, умножение и деление;
одноместные арифметические операции (операции с одним операндом): вычисление абсолютного значения (модуля) операнда, изменение знака операнда;
операции сравнения, обеспечивающие сравнение двух целых чисел и выработку признаков, характеризующих соотношение между сопоставляемыми величинами (=, <>, >, <, <=, >=).
Отметим, что выполнение арифметических команд может дополнительно сопровождаться перемещением данных из устройства ввода в АЛУ или из АЛУ на устройство вывода.
Для работы с числами, представленными в форме с плавающей запятой, в АСК большинства машин предусмотрены:
основные арифметические операции;
операции сравнения, обеспечивающие сравнение двух вещественных чисел с выработкой признаков;
операции преобразования: формы представления (между фиксированной и плавающей запятой), формата представления (с одинарной и двойной точностью).
В дополнение к побитовым логическим операциям, практически во всех АСК предусмотрены команды для реализации операций логического, арифметического и циклического сдвигов.
При логическом сдвиге влево или вправо сдвигаются все разряды слова. Биты, вышедшие за пределы разрядной сетки, теряются, а освободившиеся позиции заполняются нулями.
При арифметическом сдвиге данные трактуются как целые числа со знаком, причем бит знака не изменяет положения. При сдвиге вправо освободившиеся позиции заполняются значением знакового разряда, а при сдвиге влево - нулями. Арифметические сдвиги позволяют ускорить выполнение некоторых арифметических операций. Так, если числа представлены двоичным дополнительным кодом, то сдвиги влево и вправо эквивалентны соответственно умножению и делению на 2.
При циклическом сдвиге смещаются все разряды слова, причем значение разряда, выходящего за пределы слова, заносится в позицию, освободившуюся с противоположной стороны, то есть потери информации не происходит. Одно из возможных применений циклических сдвигов – это перемещение интересующего бита в крайнюю левую (знаковую) позицию, где он может быть проанализирован как знак числа.
Для работы со строками в АСК обычно предусматриваются команды, обеспечивающие перемещение, сравнение и поиск строк. В большинстве машин перечисленные операции просто имитируются за счет других команд.
^ Команды преобразования осуществляют изменение формата представления данных. Примером может служить преобразование из десятичной системы счисления в двоичную или перевод 8-разрядного кода символа из кодировки ASCII в кодировку EBCDIC, и наоборот.
2.8.3 SIMD-команды
Название данного типа команд представляет собой аббревиатуру от Single Instruction Multiple Data - буквально «одна инструкция - много данных». В отличие от обычных команд, оперирующих двумя числами, SIMD-команды обрабатывают сразу две группы чисел (в принципе их можно называть групповыми командами). Операнды таких команд обычно представлены в одном из упакованных форматов.Идея SIMD-обработки была выдвинута в Институте точной механики и вычислительной техники им. С.А. Лебедева в 1978 году в рамках проекта «Эльбрус-1». С 1992 года команды типа SIMD становятся неотъемлемым элементом АСК микропроцессоров фирм Intel и AMD, Поводом послужило широкое распространение мультимедийных приложений. Видео, трехмерная графика и звук в ЭВМ представляются большими массивами данных, элементы которых чаше всего обрабатываются идентично. Так, при сжатии видео и преобразовании его в формат MPEG один и тот же алгоритм применяется к тысячам битов данных. В трехмерной графике часто встречаются операции, которые можно выполнить за один такт: интерполирование и нормировка векторов, вычисление скалярного произведения векторов, интерполяция компонентов цвета и т. д. Включение SIMD-команд в АСК позволяет существенно ускорить подобные вычисления.
Первой на мультимедийный бум отреагировала фирма Intel, добавив в систему команд своего микропроцессора Pentium ММХ 57 SIMD-команд. Название МMX (MultiMedia eXtention – мультимедийное расширение) разработчики обосновывали тем, что при выборе состава новых команд были проанализированы алгоритмы, применяемые в различных мультимедийных приложениях. Команды ММХ обеспечивали параллельную обработку упакованных целых чисел. При выполнении арифметических операций каждое из чисел, входящих в группу, рассматривается как самостоятельное, без связи с соседними числами. Учитывая специфику обрабатываемой информации, команды ММХ реализуют так называемую арифметику с насыщением: если в результате сложения образуется число, выходящее за пределы отведенных под него позиций, оно заменяется наибольшим двоичным числом, которое в эти позиции вмещается.
Следующим шагом стало создание новых наборов SIMD-команд, работающих также с операндами, представленными в виде упакованных чисел с плавающей запятой. Такие команды в соответствующих приложениях повышают производительность процессора примерно вдвое. Первой подобную технологию в середине 1998 года предложила фирма AMD. Это мультимедийное расширение включало в себя 21 SIMD-команду и получило название 3DNow!. Расширение 3DNow! в дополнение к SIMD-обработке целочисленной информации типа ММХ позволяло оперировать парой упакованных чисел в формате с плавающей запятой.
Полугодом позже фирма Intel ввела в свои микропроцессоры так называемые потоковые SIMD-команды, обозначив их аббревиатурой SSE - Streaming SIMD Extension (потоковая обработка по принципу «одна команда - много данных»). Сначала это были 70 команд в микропроцессоре Pentium III. Команды дополняли групповые целочисленные операции МMX и расширяли их за счет групповых операций с 32-разрядными вещественными числами.
^
2.8.4 Команды ввода/вывода
Команды этой группы могут быть подразделены на команды управления периферийным устройством (ПУ), проверки его состояния, ввода и вывода.
Команды управления периферийным устройством служат для запуска ПУ и указания ему требуемого действия. Трактовка подобных инструкций зависит от типа ПУ.
Команды проверки состояния ввода/вывода применяются для тестирования различных признаков, характеризующих состояние модуля ввода/вывода и подключенных к нему ПУ. Благодаря этим командам центральный процессор может выяснить, включено ли питание ПУ, завершена ли предыдущая операция ввода/вывода, возникли ли в процессе ввода/вывода какие-либо ошибки и т. п.
Собственно обмен информацией с ПУ обеспечивают команды ввода и вывода. Команды ввода
предписывают модулю ввода/вывода получить элемент данных (байт или слово) от ПУ и поместить его на шину данных, а команды вывода -
заставляют модуль ввода/вывода принять элемент данных с шины данных и переслать его на ПУ.
^
2.8.5 Команды управления системой
Команды, входящие в эту группу, являются привилегированными и могут выполняться, только когда центральный процессор ЭВМ находится в привилегированном состоянии или выполняет программу, находящуюся в привилегированной области памяти (обычно привилегированный режим используется лишь операционной системой). Так, лишь эти команды способны считывать и изменять состояние ряда регистров устройства управления.
^
2.8.6 Команды управления потоком команд
Концепция фон-неймановской вычислительной машины предполагает, что команды программы, как правило, выполняются в порядке их расположения в памяти. Для получения адреса очередной команды достаточно увеличить содержимое счетчика команд на длину текущей команды. В то же время основные преимущества ЭВМ заключаются именно в возможности изменения хода вычислении в зависимости от возникающих в процессе счета результатов. С этой целью в АСК вычислительной машины включаются команды, позволяющие нарушить естественный порядок следования и передать управление в иную точку программы. В адресной части таких команд содержится адрес точки перехода (адрес той команды, которая должна быть выполнена следующей). Переход реализуется путем загрузки адреса точки перехода в счетчик команд (вместо увеличения содержимого этого счетчика на длину команды).
В системе команд ЭВМ можно выделить три типа команд, способных изменить последовательность вычислений:
безусловные переходы;
условные переходы (ветвления);
вызовы процедур и возвраты из процедур.
^ Условный переход происходит только при соблюдении определенного условия, в противном случае выполняется следующая по порядку команда программы. Большинство производителей ЭВМ в своих ассемблерах обозначают подобные команды словом branch (ветвление). Условием, на основании которого осуществляется переход, чаще всего выступают признаки результата предшествующей арифметической или логической операции. Каждый из признаков фиксируется в своем разряде регистра флагов процессора. Возможен и иной подход, когда решение о переходе принимается в зависимости от состояния одного из регистров общего назначения, куда предварительно помещается результат операции сравнения. Третий вариант - это объединение операций сравнения и перехода в одной команде.
В системе команд ЭВМ для каждого признака результата предусматривается своя команда ветвления (иногда - две: переход при наличии признака и переход при его отсутствии). Большая часть условных переходов связана с проверкой взаимного соотношения двух величин или с равенством (неравенством) некоторой величины нулю. Последний вид проверок используется в программах наиболее интенсивно.
Процедурный механизм базируется на командах вызова процедуры,
обеспечивающих переход из текущей точки программы к начальной команде процедуры, и командах возврата из процедуры,
для возврата в точку, непосредственно расположенную за командой вызова. Такой режим предполагает наличие средств для сохранения текущего состояния содержимого счетчика команд в момент вызова (запоминание адреса точки возврата) и его восстановления при выходе из процедуры,
^
2.8.7 Форматы команд
Типовая команда, в общем случае, должка указывать:
подлежащую выполнению операцию;
адреса исходных данных (операндов), над которыми выполняется операция;
адрес, по которому должен быть помещен результат операции.
Рисунок 2.24 – Структура машинной команды
Формат команды
определяет ее структуру, то есть количество двоичных разрядов, отводимых под всю команду, а также количество н расположение отдельных полей команды. Полем
называется совокупность двоичных разрядов, кодирующих составную часть команды. При разработке АСК выбор формата команды влияет на многие характеристики будущей машины. Оценивая возможные форматы, нужно учитывать следующие факторы:
общее число различных команд;
общую длину команды;
тип полей команды (фиксированной или переменной длины) и их длина;
простоту декодирования;
адресуемость и способы адресации;
стоимость оборудования для декодирования и исполнения команд.
В рамках системы команд одной ЭВМ могут использоваться разные форматы команд. Обычно это связано с применением различных способов адресации. В таком случае операционная часть команды содержит поле кода операции (КОп) и поле для задания способа адресации (СА).
Общая длина команды R K может быть определена следующим соотношением:
,
где l – количество адресов в команде; R Ai – количество разрядов для записи i -го адреса; R КОп – разрядность поля кода операции; R СА – разрядность поля способа адресации.
Количество двоичных разрядов, отводимых под код операции
, выбирается так, чтобы можно было представить любую из операций. Если система команд предполагает N
КОп
различных операций, то минимальная разрядность поля кода операции определяется следующим образом:
R
КОп
= int(log 2 (N
КОп
)),
где int означает округление в большую сторону до целого числа.
При заданной длине кода команды приходится искать компромисс между разрядностью поля кода операции и адресного поля. Большее количество возможных операций предполагает длинное поле кода операции, что ведет к сокращению адресного поля, то есть к сужению адресного пространства. Для устранения этого противоречия иногда длину поля кода операции варьируют. Изначально под код операции отводится некое фиксированное число разрядов, однако для отдельных команд это поле расширяется за счет нескольких битов, отнимаемых у адресного поля.
В адресной части команды содержится информация о местонахождении исходных данных и месте сохранения результата операции. Обычно местонахождение каждого из операндов и результата задается в команде путем указания адреса соответствующей ячейки основной памяти или номера регистра процессора. Принципы использования информации из адресной части команды определяет система адресации. Система адресации задает число адресов в команде команды и принятые способы адресации
Разрядности полей и рассчитываются по формулам:
R
Ai
= int(log 2 (N
i
)), R
CA
= int(log 2 (N
CA
)),
где N
i
, – количество ячеек памяти, к которому можно обратиться с помощью i
-ro адреса; N
СА
– количество способов адресации.
Для определения количества адресов , включаемых в адресную часть, будем использовать термин адресность. В «максимальном» варианте необходимо указать три компонента: адрес первого операнда, адрес второго операнда и адрес ячейки, куда заносится результат операции. В принципе может быть добавлен еще один адрес, указывающий место хранения следующей инструкции. В итоге имеет место четырехадресный формат команды . Такой формат представлен на рисунке 2.25.
Чаще всего необходимость в четвертом адресе отпадает, поскольку команды располагаются в памяти в порядке их выполнения, и адрес очередной команды может быть получен за счет простого увеличения адреса текущей команды в счетчике команд. Это позволяет перейти к трехадресному формату команды. Требуется только добавить в систему команд ЭВМ команды, способные изменять порядок вычислений.
К сожалению, и в трехадресном формате длина команды может оказаться весьма большой. Так, если адрес ячейки основной памяти имеет длину 32 бита, а длина кода операции – 8 бит, то
длина команды составит 104 бита (13 байт).
Рисунок 2.25 – Четырехадресный формат команды
Если по умолчанию взять в качестве адреса результата адрес одного из операндов (обычно второго), то можно обойтись без третьего адреса, и в итоге получаем двухадресный
формат команды. Естественно, что в этом случае соответствующий операнд после выполнения операции теряется.
Команду можно еще более сократить, перейдя к одноадресному формату, что возможно при выделении определенного стандартного места для хранения первого операнда и результата. Обычно для этой цели используется специальный регистр-аккумулятор центрального процессора (ЦП).
Применение единственного регистра для хранения одного из операндов и результата является ограничивающим фактором, поэтому помимо аккумулятора часто используют и другие регистры ЦП. Так как число регистров к ЦП невелико, для указания одного из них в команде достаточно иметь сравнительно короткое адресное поле. Соответствующий формат носит название полутораадресного или регистрового формата.
Наконец, если для обоих операндов указать четко заданное местоположение, а также в случае команд, не требующих операнда, можно получить нульадресный формат команды. В таком варианте адресная часть команды вообще отсутствует или не задействуется
При выборе количества адресов в адресной части команды обычно руководствуются следующими критериями:
емкостью запоминающего устройства, требуемой для хранения программы;
временем выполнения программы;
эффективностью использования ячеек памяти при хранении программы.
выборки команды;
выборки первого операнда;
выборки второго операнда;
выборки команды;
выборки операнда.
Наименование параметра | Значение |
Тема статьи: | Форматы команд |
Рубрика (тематическая категория) | Компьютеры |
Система команд процессора
Разнообразие типов данных, форм их представления и действий, которые необходимы для обработки информации и управления ходом вычислений, порождает крайне важно сть использования различных команд - набора команд. Каждый процессор имеет собственный вполне определенный набор команд, называемый системой команд процессора. Система команд должна обладать двумя свойствами - функциональной полнотой и эффективностью.
Функциональная полнота - это достаточность системы команд для описания любого алгоритма. Требование функциональной полноты не является слишком жестким. Доказано, что свойством функциональной полноты обладает система, включающая всего три команды (система Поста): присвоение О, присвоение 1, проверка на 0. При этом составление программ в такой системе команд крайне неэффективно.
Эффективность системы команд - степень соответствия системы команд назначению ЭВМ, т. е. классу алгоритмов, для выполнения которых предназначается ЭВМ, а также требованиям к производительности ЭВМ. Очевидно, что реализация развитой системы команд связана с большими затратами оборудования и, следовательно, с высокой стоимостью процессора. В то же время ограниченный набор команд приводит к снижению производительности и повышенным требованиям к памяти для размещения программы. Даже простые и дешевые современные микропроцессоры поддерживают систему команд, содержащую несколько десятков (а с модификациями - сотен) команд.
Система команд процессора характеризуется тремя аспектами: форматами, способами адресации и системой операций.
Под форматом команды следует понимать длину команды, количество, размер, положение, назначение и способ кодировки ее полей.
Команды, как и любая информация в ЭВМ, кодируются двоичными словами, которые должны содержать в себе следующие виды информации:
□ тип операции, которую следует реализовать в данной команде (КОП);
□ место в памяти, откуда следует взять первый операнд (А1);
□ место в памяти, откуда следует взять второй операнд (А2);
□ место в памяти, куда следует поместить результат (A3).
Каждому из этих видов информации соответствует своя часть двоичного слова - поле, а совокупность полей (их длины, расположение в командном слове, способ кодирования информации) принято называть форматом команды. В свою очередь, некоторые поля команды могут делиться на подполя. Формат команды, поля которого перечислены выше, принято называтьтрехадресным (рис. 2.1, а).
. Форматы команд: а - трехадресный; б - двухадресный; в - одноадресный;
г - безадресный
Команды трехадресного формата занимают много места в памяти, в то же время далеко не всегда поля адресов используются в командах эффективно. [Действительно, наряду с двухместными операциями (сложение, деление, Конъюнкция и др.) встречаются и одноместные (инверсия, сдвиг, инкремент др.), для которых третий адрес не нужен. При выполнении цепочки вычис-ний часто результат предыдущей операции используется в качестве опе-да для следующей. Более того, нередко встречаются команды, для кото-операнды не определены (СТОП) или подразумеваются самим кодом раций (DAA, десятичная коррекция аккумулятора).
ому в системах команд реальных ЭВМ трехадресные команды встреча-я редко. Чаще используются двухадресные команды (рис. 2.1,6), в данном "ае в бинарных операциях результат помещается на место одного из опе-ов.
реализации одноадресных форматов (рис. 2.1, в) в процессоре преду-ивают специальную ячейку- аккумулятор.
Размещено на реф.рф
Первый операнд и резуль-всегда размещаются в аккумуляторе, а второй операнд адресуется по-А.
ьная система команд обычно имеет команды нескольких форматов, при-тип формата определяется в поле КОП.
12. Способы адресации
особ адресации определяет, каким образом следует использовать инфор-ию, размещенную в поле адреса команды.
Не следует думать, что во всех случаях в поле адреса команды помещается адрес операнда. Существует пять базовых способов адресации операндов в командах.
□ Прямая - в данном случае в адресном поле располагается адрес операнда. Разновидность - прямая регистровая адресация, адресующая не ячейку памяти, а РОН. Поле адреса регистра имеет в команде значительно меньшую длину, чем поле адреса памяти.
□ Непосредственная - в поле адреса команды располагается не адрес операнда, а сам операнд. Такой способ удобно использовать в командах с константами.
□ Косвенная
- в поле адреса команды располагается адрес ячейки памяти, в которой хранится адрес операнда ("адрес адреса"). Такой способ позволяет оперировать адресами как данными, что облегчает организацию циклов, обработку массивов данных и др.
Размещено на реф.рф
Его основной недостаток - потеря времени на двойное обращение к памяти - сначала за адресом, потом - за операндом. Разновидность - косвенно-регистровая
адресация, при которой в поле команды размещается адрес РОН, хранящего адрес операнда. Этот способ, помимо преимущества обычной косвенной адресации, позволяет обращаться к большой памяти с помощью коротких команд и не требует двойного обращения к памяти (обращение к регистру занимает гораздо меньше времени, чем к памяти).
□ Относительная - адрес формируется как сумма двух слагаемых: базы, хранящейся в специальном регистре или в одном из РОН, и смещения, извлекаемого из поля адреса команды. Этот способ позволяет сократить длину команды (смещение должна быть укороченным, правда в данном случае не вся память доступна в команде) и/или перемещать адресуемые массивы информации по памяти (изменяя базу). Разновидности- индексная и базово-индексная адресации. Индексная адресация предполагает наличие индексного регистра вместо базового. При каждом обращении содержимое индексного регистра автоматически модифицируется (обычно увеличивается или уменьшается на 1). Базово-индексная адресация формирует адрес операнда как сумму трех слагаемых: базы, индекса и смещения.
□ Безадресная - поле адреса в команде отсутствует, а адрес операнда или не имеет смысла для данной команды, или подразумевается по умолчанию. Часто безадресные команды подразумевают действия над содержимым аккумулятора. Характерно, что безадресные команды нельзя применить к другим регистрам или ячейкам памяти.
Одной из разновидностей безадресного обращения является использование т. н. магазинной памяти или стека. Обращение к такой памяти напоминает обращение с магазином стрелкового оружия. Имеется фиксированная ячейка, называемая верхушкой стека. При чтении слово извлекается из верхушки, а все остальное содержимое "поднимается вверх" подобно патронам в магазине, так что в верхушке оказывается следующее по порядку слово. Одно слово нельзя прочитать из стека дважды. При записи новое слово помещается в верхушку стека, а все остальное содержимое "опускается вниз" на одну позицию. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, слово, помещенное в стек первым, будет прочитано последним. Говорят, что стек поддерживает дисциплину LIFO - Last In First Out (последний пришел - первый ушел). Реже используется безадресная память типа очередь с дисциплиной FIFO - First In First Out (первый пришел - первый ушел).
Форматы команд - понятие и виды. Классификация и особенности категории "Форматы команд" 2017, 2018.
Представление данных в ЭВМ
Для оценки количества информации и упорядочения процесса ее обработки используются структурные единицы информации.
За единицу информации принимается один бит.
Бит определяет количество информации, посредством которой выделяется одно из двух альтернативных состояний. В одном бите с помощью цифр 0 и 1 может быть представлен один двоичный разряд числа или одна логическая переменная, принимающая соответственно значения "ложь" или "истина".
Последовательность битов, имеющая определенный смысл, называется полем.
Поле длиной 8 бит называется байтом.
Байт, как правило, является минимальной (неделимой) единицей информации, с которой оперирует ЭВМ. Все остальные единицы информации являются его производными (рис. 2.1).
Рис. 2.1.
Основной структурной единицей информации, обрабатываемой ЭВМ, является машинное слово.
В современных ЭВМ длина машинного слова обычно составляет два байта. Как правило, в одном машинном слове может быть представлено либо одно число, либо одна команда. Для обеспечения требуемой точности вычислений и экономии памяти большинство ЭВМ могут оперировать также с двойным словом.
Последовательность полей, байтов или слов, имеющих одинаковый смысл, образуют массив.
Группа массивов может объединяться в сегмент. Количество информации в больших массивах оценивается с помощью производных единиц, кратных количеству байтов в степени числа два (1кбайт = 1024 байт = 2 10 байт; 1Мбайт = 1 048 576 байт = 2 20 байт).
Вычислительная машина оперирует с двумя видами информации: управляющей информацией и числовыми данными.
Для представления числовых данных в ЭВМ используются естественная и нормальная формы записи чисел.
В вычислительной технике принято отделять целую часть от дробной точкой. Так как в этом случае положение точки между целой и дробной частями четко определено, то такое представление чисел называют представлением с фиксированной точкой (рис. 2.2).

Рис. 2.2.
Недостатком представления чисел с фиксированной точкой является их малый диапазон. Поэтому, как правило, в такой форме записывают только целые числа. В этом случае отпадает необходимость отводить поле для дробной части числа.
Максимальным по абсолютному значению целым числом, представляемым в естественной форме, будет число, определяемое по формуле (2 m - 1) (рис. 2.3).
Нормальная форма записи числа имеет вид N = m Ч q p , где m мантисса числа (m<1); p порядок; q основание системы счисления.
Порядок указывает местоположение в числе точки, отделяющей целую часть числа от дробной.

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

Рис. 2.4.
В современных ЭВМ используются обе формы представления чисел.
Представление команд в ЭВМ
Программа работы машины, определяющая процесс обработки информации в ЭВМ, состоит из последовательности команд.
Под командой ЭВМ понимается информация, обеспечивающая выработку управляющих сигналов для выполнения машиной определенного действия.
Поле команды состоит из двух частей: операционной и адресной. В операционной части указывается код операции (КОП), определяющий действие (арифметическое или логическое), которое должна выполнить машина. Адресная часть команды содержит адреса операндов (величин), участвующих в операции. Под адре-сом "А" понимается номер (цифровой код) машинного слова (или другого поля памяти ЭВМ), где записана необходимая для выполнения команды информация. Количество указываемых в команде адресов может быть различным. Соответственно числу адресов определяются следующие форматы команд: одноадресные, двухадресные, трехадресные и четырехадресные (рис. 2.5).

Рис. 2.5.
Трехадресная команда, выполняющая, например, операцию сложения, должна содержать код операции сложения и три адреса. Действия, выполняемые такой командой, определяются примерно следующей последовательностью:
1) взять число, хранящееся по первому адресу;
2) взять число, хранящееся по второму адресу, и сложить его с первым числом;
3) результат сложения записать по третьему адресу.
В случае двухадресной команды третий адрес отсутствует, и результат можно записать либо по второму адресу (с потерей информации, которая была там записана), либо оставить в сумматоре, где производилась операция сложения. Тогда для освобождения сумматора требуется дополнительная команда перезаписи числа по требуемому адресу. При сложении двух чисел, хранящихся по адресам A1 и A2, с записью результата, например, в A1 с использованием двухадресной команды, требуется уже четыре команды:
1) вызов в сумматор числа, хранящегося по адресу A1;
2) вызов числа, хранящегося по адресу A2, и сложение его с первым числом;
3) стереть число по адресу A1;
4) запись результата по адресу A1.
Таким образом, чем меньше адресность команд ЭВМ, тем большее число команд требуется для составления одной и той же программы работы машины.
Увеличивая адресность ЭВМ, приходиться увеличивать длину машинного слова, чтобы отвести в нем необходимые поля для адресной части команд. С увеличением объема памяти ЭВМ увеличивается длина поля, необходимого для одного адреса. В то же время не все команды полностью используют адресные поля. Например, для команды записи числа по заданному адресу требуется только одно адресное поле.
Федеральное агентство по образованию
Рособразование
Архангельский государственный технический университет
Вычислительных систем и телекоммуникаций
КОНТРОЛЬНАЯ РАБОТА
по дисциплине
Архитектура ЭВМ и систем
Система команд ЭВМ
Шевченко Олег Николаевич
Факультет ОНОТ, курс 3, группа 7261
Руководитель О.Л. Полончик
Архангельск 2009 г.
ВВЕДЕНИЕ
ОБЩИЕ ПОНЯТИЯ
ФОРМАТ КОМАНД ОБРАБОТКИ ДАННЫХ
МЕТОДЫ ПРЯМОЙ АДРЕСАЦИИ
1 Регистровый метод адресации
2 Автоинкрементный метод адресации
МЕТОДЫ КОСВЕННОЙ АДРЕСАЦИИ
ИСПОЛЬЗОВАНИЕ СЧЕТЧИКА КОМАНД (РС) В КАЧЕСТВЕ РОН
1 Непосредственный метод адресации
2 Абсолютный метод адресации
3 Относительный метод адресации
4 Косвенно-относительный метод адресации
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗУЕМОЙ
ЛИТЕРАТУРЫ
ВВЕДЕНИЕ
С середины 60-х годов кардинально изменился подход к созданию вычислительных машин. Вместо разработки аппаратуры и средств математического обеспечения стала проектироваться система, состоящая из синтеза аппаратных (hardware) и программных (software) средств. При этом на главный план выдвинулась концепция взаимодействия. Так возникло новое понятие - архитектура ЭВМ.
Под архитектурой ЭВМ принято понимать совокупность общих принципов организации аппаратно-программных средств и их основных характеристик, определяющая функциональные возможности ЭВМ при решении соответствующих типов задач.
Архитектура ЭВМ охватывает обширный круг проблем, связанных с созданием комплекса аппаратных и программных средств и учитывающих большое количество определяющих факторов. Среди этих факторов самыми главными являются: стоимость, сфера применения, функциональные возможности, удобство в эксплуатации, а одним из основных компонентов архитектуры считаются аппаратные средства.
1. ОБЩИЕ ПОНЯТИЯ
Команды ЭВМ, предназначенные для обработки данных, помимо кода выполняемой операции должны тем или иным образом указывать местонахождение (адрес) этих данных (операндов) в памяти ЭВМ. В связи с этим большое значение имеют реализованные в конкретной ЭВМ методы адресации операндов, т.е. способы указания в машинной команде местонахождения операндов в памяти ЭВМ.
Способы адресации можно классифицировать на прямые и косвенные. При прямом способе адресации исполнительный адрес берется непосредственно из команды или вычисляется с использованием значения указанного в команде и содержимого какого-либо регистра.
Косвенный способ адресации предполагает, что в команде содержится значение косвенного адреса, т.е. адреса ячейки памяти, в которой находится окончательный исполнительный адрес.
При реализации методов адресации ЭВМ существенным образом используются
регистры центрального процессора (РОН). Далее мы будем использовать термин
адресный регистр для обозначения любого регистра центрального процессора,
содержащего адрес.
2. ФОРМАТ КОМАНД ОБРАБОТКИ ДАННЫХ
Форматом команды называется заранее обговоренная структура полей в её кодах, позволяющая ЭВМ распознавать составные части кода.
В командах обработки данных может быть указано местонахождение от одного до нескольких операндов, используемых при выполнении конкретной операции. Длина команды зависит от числа адресных полей. По числу адресов команды делятся на:
Безадресные
Одноадресные, двухадресные и более
При этом обычно различают операнд-источник и операнд-приемник. Операнд - источник это содержимое ячейки памяти или регистра, которое используется при выполнении указанной в команде операции и которое в процессе выполнения команды не изменяется. Операнд-приемник это ячейка памяти или РОН, содержимое которых также может быть использовано при выполнении команды и в которые помещается результат выполненной операции (приемник результата). Ниже в приведенных примерах адресат-источник обозначается буквами src или S (source - источник), а операнд-приемник dst или D (destination - приемник). Поле команды, содержащее код операции, будет обозначаться аббревиатурой КОП.
Формат одноадресных команд (HALT, CLR …) имеет следующий вид:
Рисунок 1 - Формат одноадресных команд
Разряды 15-06 содержат код операции, который определяет выполняемую команду. Разряды 05-00 образуют шестиразрядное поле, именуемое полем адресации операнда приемника, которое в свою очередь состоит из двух подполей:
1) Разряды 02-00 определяют один из восьми РОН, который использует данная команда;
2) Разряды 05-03 определяют способ использования выбранного регистра (метод адресации). Причем, разряд 03 определяет прямую или косвенную адресации.
Операции над двумя операндами (такие, как сложение, пересылка, сравнение)
выполняются с помощью команд, в которых задаются два адреса. Задание разрядов в
полях адресации операндов источника и приемника определяют используемые методы
адресации и регистры общего назначения. Формат двухадресной команды имеет
следующий вид:
Рисунок 2 - формат двухадресной команды
Поле адресации операнда источника используется для выборки операнда источника. Поле адресации операнда приемника используется для выборки операнда приемника и занесения результата. Например, по команде ADD A,B содержимое ячейки "A" (операнда источника) складывается с содержимым ячейки "B" (операнд приемника). После выполнения операции сложения в ячейке "В" будет находиться результат операции, а содержимое ячейки "A" не изменится.
3. МЕТОДЫ ПРЯМОЙ АДРЕСАЦИИ
На рисунке 3 показаны последовательности операций при выполнении команд с
каждым из четырех методов прямой адресации. При регистровом методе адресации
операнд находится в выбранном регистре, который может быть использован как
накопитель. Так как РОН аппаратно реализованы в ИС центрального процессора, они
обладают более высоким быстродействием, чем любая другая память, работающая под
управлением процессора. Это их преимущество особенно проявляется при операциях
с переменными, к которым необходимо часто обращаться.
Рисунок 3 - методы прямой адресации
3.1 Регистровый метод адресации
При регистровом методе адресации операнд находится непосредственно в
указанном в команде регистре.
Таблица 1
Регистровый метод адресации
Действие: к содержимому R3 прибавляется единица.
3.2 Автоинкрементный метод адресации
При автоинкрементном методе адресации содержимое выбранного регистра
является адресом операнда. После выборки операнда содержимое этого регистра
автоматически наращивается для обеспечения возможности обращения в дальнейшем к
последующей ячейке. При байтовых операциях наращивание происходит на 1, при
операциях с полными словами - на 2. Содержимое R6, R7 всегда наращивается на 2.
Автоинкрементный метод адресации особенно удобен при операциях с массивами и
стеками. С помощью этого метода можно выбрать элемент таблицы, а затем
нарастить указатель для обращения к следующему элементу в таблице. Хотя этот
метод наиболее удобен при работе с таблицами, он может быть использован как
общий метод для различных целей.
Таблица 2
Автоинкрементный метод адресации
3.3 Автодекрементный метод
Также используется для обработки табулированных данных. Однако в отличие от автоинкрементного метода, адресация к ячейкам массива идет в противоположном направлении. При этом методе адресации содержимое выбранного РОН вначале уменьшается (для байтовых команд - на единицу, для команд с полными словами - на два), а затем используется как исполнительный адрес.
Сочетание автоинкрементного и автодекрементного методов адресации может
быть эффективно использовано при работе со стеком.
Таблица 3
Автодекрементный метод адресации
Действие: содержимое R0 уменьшается на 2 и используется как исполнительный адрес. К операнду, выбранному из ячейки по этому адресу, прибавляется единица.
архитектура аппаратный команда адресация
Таблица 3.1
Автодекрементный метод адресации
3.4 Индексный метод адресации
При индексном методе адресации исполнительный адрес определяется как
сумма содержимого выбранного РОН с индексным словом. Этот метод позволяет
осуществлять произвольный доступ к элементам структуры данных. Индексное слово
содержится в следующей за командным словом ячейке памяти. При индексном методе
адресации содержимое выбранного регистра может быть использовано в качестве
базы для вычисления серии адресов.
Таблица 4
Индексный метод адресации
5. МЕТОДЫ КОСВЕННОЙ АДРЕСАЦИИ
Четыре основных метода могут быть использованы в комбинации с косвенной
адресацией. Если при регистровом методе содержимое выбранного регистра является
операндом, то при косвенно - регистровом методе это содержимое является адресом
операнда. При трех других косвенных методах вычисленный адрес позволяет выбрать
только адрес операнда, а не сам операнд. Эти методы используются при обращении
к таблицам, состоящим из адресов, а не из операндов.
Рисунок 4 - методы косвенной адресации
Таблица 5
Индексный метод адресации
Действие: содержимое ячейки, адрес которой находится в R2, используется
как адрес операнда, операнд увеличивается на единицу, а содержимое R2 - на 2.
Таблица 5.1
Индексный метод адресации
После выполнения операции
6. ИСПОЛЬЗОВАНИЕ СЧЕТЧИКА КОМАНД (РС) В КАЧЕСТВЕ РОН
Счетчик команд R7 может быть использован со всеми методами адресации,
применяемыми в микро-ЭВМ. Однако наиболее эффективно он используется только с
четырьмя. Эти методы адресации получили специальные наименования:
непосредственный, абсолютный, относительный и косвенно - относительный.
Использование этих методов дает возможность построения программ,
работоспособность которых не теряется при перемещении их в любую область
памяти. В таблице ниже приведены методы адресации с использованием R7.
Необходимо понимать, что эти четыре метода аналогичны описанным выше, но в
качестве РОН используется R7. Методы адресации с использованием счетчика команд
в значительной мере упрощают обработку данных, не сформированных в массивы.
Таблица 6
Методы адресации
Восьмеричный код |
Двоичный код |
Название |
|
Непосредственный |
Операнд выбирается из ячейки, следующей за командным словом. |
||
Абсолютный |
Из ячейки, следующей за командным словом, выбирается адрес операнда. |
||
Относительный |
Операнд выбирается из ячейки, адрес которой определяется как сумма содержимого R7 и ячейки, следующей за командным словом. |
||
Косвенно-относительный |
Из ячейки, адрес которой определяется как сумма содержимого R7 и ячейки, следующей за командным словом, выбирается адрес операнда. |
6.1
Непосредственный метод адресации имеет символическое обозначение #N. Он эквивалентен автоинкрементному
методу адресации через счетчик команд R7. Этот метод обеспечивает экономию времени программиста при составлении
программы за счет возможности помещения константы в ячейку памяти вслед за
командным словом.
Таблица 7
Непосредственный метод адресации
Действие: содержимое R0
складывается с числом 10. Результат записывается в R0.
Таблица 7.1
Непосредственный метод адресации
После выборки команды содержимое R7 (адрес этой команды) увеличивается на
2. Так в поле адреса операнда источника записан код 27, R7 используется как
указатель адреса при выборке операнда, после чего содержимое его вновь
увеличивается на 2 для указания на следующую команду.
6.2 Абсолютный метод адресации
Абсолютный метод адресации имеет символическое обозначение @#A. Он
эквивалентен косвенно-автоинкрементной адресации через R7. Этот метод удобен
тем, что адрес операнда является его абсолютным адресом (т.е. он остается
постоянным независимо от места расположения программы в памяти).
Таблица 8
Абсолютный метод адресации
6.3 Относительный метод адресации
Относительный метод адресации имеет символическое обозначение X(PC) или А, где X-исполнительный адрес по отношению к счетчику команд. Этот метод эквивалентен индексной адресации через R7. Индексное слово хранится в следующей за командным словом ячейке и, будучи сложенным с содержимым R7, дает адрес операнда. Этот метод полезен при написании программы, которая может располагаться в различных местах памяти, так как адрес операнда фиксируется по отношению к содержимому R7. При необходимости перемещения программы в памяти операнд перемещается на то же число ячеек, что и сама команда.
Таблица 9
Относительный метод адресации
Действие: к операнду, адрес которого определяется сложением содержимого
R7 и индексного слова (000054), прибавляется "1".
Таблица 9.1
Относительный метод адресации
6.4 Косвенно-относительный метод адресации
Косвенно-относительный метод адресации имеет символическое обозначение @X(PC) или @A, где X-адрес ячейки, содержащей исполнительный адрес, по отношению к счетчику команд. Этот метод эквивалентен косвенно - индексной адресации через СК.
ЗАКЛЮЧЕНИЕ
Архитектуру вычислительного средства необходимо отличать от его структуры. Структура вычислительного средства определяет его текущий состав на определенном уровне детализации и описывает связи внутри средства. Архитектура же определяет основные правила взаимодействия составных элементов вычислительного средства, описание которых выполняется в той мере, в какой необходимо для формирования правил их взаимодействия. Она устанавливает не все связи, а наиболее необходимые, которые должны быть известны для более грамотного использования применяемого средства.
Так, пользователю ЭВМ не важно, на каких элементах выполнены электронные схемы, схемно или программно исполняются команды и т. д. Важно несколько другое: как те или иные структурные особенности ЭВМ связаны с возможностями, предоставляемыми пользователю, какие альтернативные решения реализованы при создании машины и по каким критериям принимались решения, как связаны между собой характеристики устройств, входящих в состав ЭВМ, и какое действие они оказывают на общие характеристики компьютера. Другими словами, архитектура ЭВМ действительно отражает круг проблем, которые относятся к общему проектированию и построению вычислительных машин и их программного обеспечения.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1. Таненбаум, Эндрю. Архитектура компьютера, Питер, 2007.
2. А.С. Коваль, А.В. Сычев. Архитектура ЭВМ и систем, Воронеж 2007
Френк Т.С. PDP-11: Архитектура и программирование, Радио и связь, 1986.
4. Википедия -
Каждая программа состоит из отдельных машинных команд; команда является указанием процессору произвести какую-либо элементарную операцию, например, копирования информации, сложения
и др. Все программы более высокого уровня (текстовый редактор, лазерный проигрыватель и прочие, в том числе написанные на языках программирования) сводятся к последовательности машинных команд.
Совокупность всех операций, которые может выполнять машина, образует систему
ее
команд
. Система команд зависит от конструкции ЭВМ;
в пределах одного семейства компьютеры имеют совместимые инструкции.
Несмотря на отдельные отличия, системы машинных команд имеют много общего. Любая ЭВМ обязательно содержит следующие группы команд обработки информации.
1. Команды передачи данных (перепись), копирующие информацию из одного места в другое.
2. Арифметические операции , которым фактически обязана своим рождением вычислительная техника. Конечно, доля вычислительных действий в современном компьютере заметно уменьшилась, но они по-прежнему играют в программах важную роль.
3. Логические операции , позволяющие компьютеру производить анализ получаемой информации. После выполнения такой команды, с помощью условного перехода ЭВМ способна выбрать дальнейший ход выполнения программы. Простейшими примерами команд рассматриваемой группы могут служить сравнение, а также известные логические операции И, ИЛИ, НЕ (инверсия). Кроме того, к ним часто добавляется анализ отдельных битов кода, их сброс и установка.
4. Сдвиги двоичного кода. Для доказательства важности этой группы команд достаточно вспомнить правило умножения столбиком: каждое последующее произведение записывается в такой схеме со сдвигом на одну цифру влево.
5. Команды ввода и вывода информации для обмена с внешними устройствами.
6. Команды управления , к которым прежде всего следует отнести условный и безусловный переход, а также команды обращения к подпрограмме (переход с возвратом). Некоторые ЭВМ имеют специальные команды для организации циклов, но это не обязательно: любой цикл может быть сведен к той или иной комбинации условного и безусловного переходов. Часто к этой же группе команд относят операции по управлению процессором; с ростом сложности устройства процессора количество такого рода команд увеличивается.
По степени сложности команд и их ассортименту процессоры разделяют на две группы - RISC и CISC (см. “Процессор ”).
Пожалуй, наиболее удивительным является тот факт, что с помощью относительно небольшого многообразия универсальных команд удается создать программное обеспечение, которое способно себя вести весьма сложным образом.
Любая команда ЭВМ обычно состоит из двух частей - операционной и адресной. Операционная часть (иначе она еще называется кодом операции - КОП) указывает, какое действие необходимо выполнить с информацией . Адресная часть описывает, где используемая информация хранится и куда поместить результат .
Команды могут быть одно-, двух- и трехадресные в зависимости от количества возможных операндов. Первые ЭВМ имели наиболее простую и наглядную трехадресную систему команд. Например: взять числа из адресов памяти А1 и А2, сложить их и сумму поместить в адрес А3. Для реализации этого сложения на одноадресной машине потребуется выполнить не одну, а три команды:
a) извлечь содержимое ячейки А1 в сумматор;
b) сложить сумматор с числом из А2;
c) записать результат из сумматора в А3.
Может показаться, что одноадресной машине для решения любой задачи потребуется втрое больше команд, чем трехадресной. На самом деле это далеко не всегда так. Попробуйте самостоятельно спланировать программу вычисления выражения Y = (X 1 + X 2) * X 3/X 4 и вы с удивлением обнаружите, что потребуется 3 трехадресных команды и всего 5 одноадресных. Таким образом, одноадресная машина в чем-то даже эффективнее, т.к. она не производит ненужной записи в память промежуточных результатов.
Ради полноты изложения следует сказать о возможности реализации безадресной (нульадресной) машины, использующей особый способ организации памяти - стек. Хотя подобная машина неудобна для человека, она легко реализуется в компьютере; в частности, именно так устроена JAVA-машина.
Чтобы получить хотя бы некоторое представление об уровне машинных команд, приведем примеры нескольких типичных инструкций для процессоров семейства Intel.
С точки зрения программиста, машинные команды - это самый низкий уровень. Но для процессора каждая инструкция распадается на еще более простые составные части, которые принято называть тактами . На каждом такте процессор выполняет какие-либо совсем элементарные действия, например, обнуляет один из своих внутренних регистров, копирует содержимое из одного регистра в другой, анализирует содержимое отдельных битов информации и т.д. Для синхронизации последовательных машинных тактов они инициируются с помощью специального тактового генератора. Его частота выбирается инженерами таким образом, чтобы к началу следующего такта все операции предыдущего успевали надежно заканчиваться.
Различные по сложности операции выполняются за разное количество тактов. Например, передача содержимого одного регистра в другой выполняется гораздо быстрее, чем умножение чисел. Существенно удлиняется выполнение команды, если ее данные берутся не из внутренних регистров самого процессора, а из оперативной памяти (именно поэтому в процессор встраивается внутренний кэш).
Из сказанного выше отчетливо следует, что тактовая частота , определяющая время выполнения составляющих машинной команды, является важной характеристикой процессора: чем она выше, тем быстрее при прочих равных условиях работает процессор. Подчеркнем, что в случае различных алгоритмов выполнения операций внутри разных моделей процессоров использовать тактовую частоту как меру сравнения их быстродействия весьма проблематично.
Эксперименты показывают 5 , что для процессоров типа Pentium и ниже простые инструкции (пересылки, сложение регистров и т.п.) выполняются примерно за один такт. Таким образом, тактовая частота вполне может служить приблизительной оценкой количества таких операций, выполняемых за 1 секунду. Для более поздних моделей картина существенно “размывается” из-за сложных методов одновременного выполнения нескольких операций.
Курс информатики основной школы
В базовом курсе достаточно дать ученикам лишь наиболее общее представление о машинных командах. При этом важно подчеркнуть два аспекта проблемы. Во-первых, как и любой исполнитель, компьютер имеет собственную систему команд. А во-вторых, эта система является базовой для реализации всех остальных уровней программного обеспечения.
Предложенное в статье объяснение понятия тактовой частоты не является традиционным, но оно достаточно просто для понимания и хорошо согласуется с устройством процессоров.
Курс информатики в старших классах
При изучении программного обеспечения можно рекомендовать учителю в ознакомительном плане изложить материал данной статьи. Хотя полученные знания, вероятно, не будут непосредственно применяться учениками, для формирования общих представлений об обработке информации на компьютере они являются весьма полезными.
Принципы исполнения программы в машинных командах можно также изучать с помощью известного по методической литературе приема - учебной модели ЭВМ, такой, как “Кроха”, “Нейман”, “Малютка”, и др. 6 . Достоинство такого подхода заключается в том, что учебная модель компьютера, отражая его наиболее важные черты, в то же время устроена наиболее просто и не содержит “отвлекающих” внимание учеников второстепенных деталей. На базе учебного компьютера можно продемонстрировать ученикам следующие вопросы: программный принцип работы ЭВМ, система команд, хранение данных в ОЗУ - и некоторые другие. При наличии соответствующего учебного ПО (его можно взять, например, с указанного выше сайта) можно даже продемонстрировать ученикам на базе изучаемой модели, что такое языки ассемблер и Паскаль.
5 См., например, эксперименты 3.6.2 в: Еремин Е.А. Популярные лекции об устройстве компьютера. СПб.: BHV-Петербург, 2003, 272 с.
6 Подробному описанию учебных моделей посвящен сайт http://educomp.runnet.ru/ .