Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
EVM.docx
Скачиваний:
18
Добавлен:
17.04.2015
Размер:
833.51 Кб
Скачать

Разрядность адресной части

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

Разрядности полей и рассчитываются по формулам:

(3)

(4)

где — количество ячеек памяти, к которому можно обратиться с помощью i-го адреса; — количество способов адресации.

Количество адресов в команде

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

Рис. 34 Четырехадресный формат команды

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

Рис. 35 Трехадресный формат команды

К сожалению, и в трехадресном формате длина команды может оказаться весьма большой. Так, если адрес ячейки основной памяти имеет длину 32 бита, а длина кода операции — 8 битов, то длина команды составит 104 бита (13 байтов).

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

Рис. 36 Двухадресный формат команды

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

Рис. 37 Одноадресный формат команды

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

Рис. 38 Полутораадресный формат команды

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

Рис. 39 Нульадресный формат команды

В таком варианте адресная часть команды вообще отсутствует или не задействуется

Выбор адресности команд

При выборе количества адресов в адресной части команды обычно руководствуются следующими критериями:

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

  • временем выполнения программы;

  • эффективностью использования ячеек памяти при хранении программы.

Адресность и емкость запоминающего устройства

Емкость запоминающего устройства для хранения программы Ек можно оценить кз соотношения

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

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

в среднем монотонно возрастает с увеличением А. Таким образом, при выборе количества адресов по критерию «емкость ЗУ» предпочтение следует отдавать одноадресным командам.

Адресность и время выполнения программы

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

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

  • выборки команды;

  • выборки первого операнда;

  • выборки второго операнда;

  • записи в память результата.

Одноадресная команда требует двух обращений к памяти:

  • выборки команды;

  • в выборки операнда.

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

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

(5)

в котором - количество арифметических и логических команд в программе; - время выполнения одной арифметической или логической команды; - количество неарифметических команд; - время выполнения одной неарифметической команды; А = {1, 2, 3} - индекс, определяющий количество адресов в команде, В свою очередь. можно определить как

,

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

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

, (6)

, (7)

И выражение (5) примет вид:

, (8)

Подставляя в (8) значения А = 1 и А = 3, можно определить разность времен реализации алгоритма с помощью одноадресных и трехадресных команд, принимая во внимание, что для трехадресных команд :

(9)

Теперь проанализируем «выгодность» той или иной адресности команды в зависимости от типа целевого алгоритма. Возможные типы алгоритмов условно разделим на три группы:

  • последовательные;

  • параллельные;

  • комбинированные.

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

(10)

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

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

и выигрыш по времени определяется как

(11)

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

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

и выигрыш во времени с учетом (10) и (11) можно оценить как

(12)

где - количество команд передачи управления в обеих частях алгоритма.

Из (12) следует, что при предпочтение следует отдать одноадресным командам.

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

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

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

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

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

Адресный код команды () - это двоичный код и адресном поле команды, из которого необходимо сформировать исполнительный адрес операнда.

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

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

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

где - затраты аппаратных средств, обеспечивающих вычисление исполнительных адресов; - затраты памяти на хранение адресных кодов команд. Обычно >> , поэтому при оценке затрат оборудования ограничиваются учетом величины . Затраты времени Т определяются суммой времени формирования исполнительного адреса и времени выборки или записи операнда:

(14)

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]