ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.12.2021
Просмотров: 5263
Скачиваний: 8
Глава 2. Архитектура системы команд
Доля переходов назад в программах GCC, Spice и ТеХ
Из приведенных данных следует, что в среднем 75% переходов происходит в на-
правлении увеличения адреса. Из переходов в сторону уменьшения адреса около
90% связаны с выполнением циклов.
Система операций
Системой операций
называется список операций, непосредственно выполняемых
техническими средствами вычислительной машины. Система операций ВМ опре-
Форматы команд
деляется областью ее применения, требованиями к стоимости, производительнос-
ти и точности вычислений.
Связь системы операций с алгоритмами решаемых задач проявляется в степе-
ни ее приспособленности для записи программ реализации этих алгоритмов. Сте-
пень приспособленности характеризуется близостью списка операций системы
команд и операций, используемых на каждом шаге выполнения алгоритмов. Про-
стоту программирования алгоритма часто определяют термином «программируе-
мость вычислительной машины». Чем меньше команд требуется для составления
программы реализации какого-либо алгоритма, тем программируемость выше.
В архитектурах типа CISC улучшения
добиваются введени-
ем в систему операций большого количества операций, в том числе и достаточно
сложных. Это может приводить и к повышению производительности ВМ, хотя
в любом случае увеличивает аппаратурные затраты.
Обоснованный выбор системы операций (СО) возможен лишь исходя из ана-
лиза подлежащих реализации алгоритмов. Для этого определяется частотный век-
тор используемых в алгоритме операторов
(q
1
...,
Изучив вектор, составляют
список основных, наиболее часто встречающихся операторов. Операторы основ-
ного списка реализуются системой машинных операций ВМ (каждому оператору
сопоставляется своя машинная операция). Остальные операторы получают путем
их разложения на операторы основного списка.
Показатели эффективности системы операций
Качество системы операций можно характеризовать двумя свойствами: функцио-
нальной полнотой и эффективностью.
Функциональная полнота
— это достаточность системы операций для описания
любых алгоритмов. Системы операций ВМ включают в себя большое количество
машинных операций и практически всегда являются функционально полными.
Эффективность системы операций
показывает степень соответствия СО задан-
ному классу алгоритмов и требованиям к производительности ВМ. Количествен-
но эффективность характеризуется затратами оборудования, затратами времени
на реализацию алгоритмов и вероятностью правильного выполнения программ.
Затраты оборудования
С
можно описать
где
— затраты в процессоре на реализацию системы операций,
— затраты
памяти на размещение данных и программ, представляющих алгоритм в терминах
заданной системы операций.
Величина
пропорциональна количеству и сложности машинных операций,
а
— емкости памяти, необходимой для хранения закодированного алгоритма.
Усложнение машинных операций приводит к сокращению
операций
(команд), требуемых для описания алгоритма, и, следовательно, к уменьшению
необходимой емкости памяти.
Затраты времени на реализацию алгоритма (Т) пропорциональны количеству
команд (операций) в программе. Введение в СО более сложных операций позво-
ляет программировать сложные действия одной командой, в результате чего умень-
шается количество команд программы.
Глава 2. Архитектура системы команд
Вероятность правильного выполнения программ
Р
определяется
где
l
— количество операций в
п —
количество операций (команд) в
мах; лямбда i, тета i — интенсивность отказов и время выполнения операции (команды)
i-го
типа;
q
i
— частота появления операций
типа в программах;
p
i
—
вероятность
правильного выполнения
nq
i
операций
типа.
В [16] утверждается, что показатель
Р
оптимален при условии
позволяющее по известным параметрам для 5 различных вариантов системы опе-
раций выбрать лучший. Критерием качества реализации каждой операции для раз-
работки
варианта СО является
При выборе одного из нескольких вариантов реализации системы опера-
ций критерием качества может служить минимум среднеквадратического от-
клонения
из (2.15) получим соотношение
Если значения
неизвестны, то оправдано следующее допущение:
При этом условие (2.15) преобразуется в условие «равного временного учас-
тия» операций в программах [28]:
Равенство (2.15) позволяет найти оптимальное соотношение параметров лямбда i, тета
при реализации системы операций. Принимая параметры аппаратной реализации
из операции за эталон
Форматы команд
Условие (2.19) совместно с рассчитанным частотным вектором и известным
ограничением на время выполнения программы
Т
доп
можно применить для вычис-
ления оптимальной длительности машинных операций:
(2.20)
Иерархия систем операций
Пусть задан некоторый класс алгоритмов Л, и для его описания используется функ-
ционально полная система операций
F
1
,
содержащая любые математические опе-
рации (интегрирование, ln,
d/dt,
sin
, ...
). Многие сложные операции с помощью численных мето-
дов могут быть представлены в терминах элементарных операций. Последовательно
применяя процедуру такого разложения сложных операций на простые, можно
построить новые системы операций
также функционально полные
отношению к классу алгоритмов
Л.
Системы операций
F
1
...,
можно упорядо-
чить по сложности входящих в них операций так, чтобы для каждой пары
F
1
и
выполнялось условие: каждая
из
либо входит в
либо представ-
ляется композицией операций
f
h
из
F
i+1
. Упорядоченная
F
1
...,
образует иерархию систем операций.
Зависимость показателей
/для иерархии систем операций
F
1
.,..,
представлена на рис. 2.64. Кривая
характеризует затраты оборудования ВМ
в зависимости от состава операций
F
i
(i
= 1,
...,р).
Поскольку операции в
менее
сложны, чем операции в
F
i
,
то затраты
процессора, реализующего
будут
меньше затрат
процессора, реализующего
F
i
,
то есть иерархия систем
2.64. Показатели эффективности иерархии систем операций
Глава 2. Архитектура системы команд
раций
F
1
...,
соответствует иерархии процессоров с аппаратными затратами
С
ПР1
> - > С
ПРp
Затратам памяти на рис. 2.64 соответствует кривая
Она показывает, что
если кодированию алгоритма в терминах операций
F
i
адекватны затраты памяти
то использование более простых операций
приводит к увеличению коли-
чества команд в программе и
С
ЗУ i+1
>
, то есть иерархия систем операций
F
1
..,
<
< ...
из-
менения суммарных затрат оборудования
С =
+
представлен кривой
С.
Видно, что существует система операций
которой соответствуют минимальные
затраты оборудования
С.
Система операций
занимает промежуточное положе-
ние между наиболее сложной
F
1
и наименее сложной
системами операций. На-
конец, кривая
T
демонстрирует, что время выполнения алгоритмов возрастает от
минимального значения
(при наиболее сложной
до максимального зна-
чения
(при наименее сложной
Таким образом, снижение сложности операций в иерархии
F
1
,...,
вызывает:
• уменьшение аппаратных затрат в процессоре;
• увеличение затрат памяти для хранения программ;
• увеличение времени реализации алгоритмов (убавление производительности
Последний вывод можно считать справедливым лишь для архитектур типа
По отношению к RISC-архитектурам, где сокращение системы операций
сопровождается коренными изменениями в других аспектах АСК, подобное ут-
верждение представляется весьма спорным.
Выбор системы операций
Выбор оптимальной системы операций является сложной задачей. Основные труд-
ности в ее решении связаны с установлением
функциональной зависимос-
ти показателей эффективности
С, Т,
состава СО. Поэтому найти чисто фор-
мальный метод выбора оптимальной СО
не удается, а существующие подходы
к ее решению основываются на комбинации формальных и эвристических при-
емов. Используемые в настоящее время методы разработки системы команд мож-
но классифицировать следующим
• На основе существующих аналогов, применяемых для решения задач данного
класса.
• На основе статистики использования отдельных команд в «старых» вычисли-
тельных
Подобная статистика уже заложена во многие общепризнан-
ные контрольно-оценочные тесты, такие, например, как смесь Гибсона или
• С
на языки программирования высокого уровня. Выбор системы
операций направлен на реализацию типовых операторов языков программиро-
вания. Подобные попытки можно встретить в вычислительных машинах фирм
Wang, Hewlett-Packard, Tektronix, IBM.
• На основе формализации и систематизации. Сущность этого метода поясняет
рис. 2.65.