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

Рис.7.1. Архитектура системы команд как интерфейс между п рограммным и аппаратным обеспечением.
Есть 2 точки зрения на то, что программист обязан знать и учитывать АСК при написании программного кода.
1) Программисту не нужно обращать внимание на особенности АСК.
Современные ЯП поддерживают видимость простой модели языков программирования, основанной на архитектуре машины фон Неймана. Согласно этой модели результаты выполнения команд получают последовательно за равные промежутки времени, например, обработка массива происходит поэлементно с использованием индексов. Однако современные ВМ имеют оперативную и кэш-память. Можно организовать вычисления так, чтобы последовательность доступа к памяти соответствовала расположению ячеек кэш-памяти (построчное хранение массива -> построчная обработка элементов), что приведет к увеличению эффективности программы и уменьшению времени выполнения. Также Модель должна описывать стандартизированную параллельную обработку данных. Компиляторы должны выполнять организацию параллельных вычислений, программист остается в рамках последовательной модели.
Плюсы: последовательная модель является аппаратно-независимой, и позволяет реализовать любой алгоритм на любой машине, поскольку абстрагируется от особенностей АСК.
Минусы: достаточно скромная эффективность программы, основная работа по соотнесению последовательной модели и параллельных вычислений лежит на разработчиках компиляторов.
2) Программист должен знать АСК, чтобы иметь возможность оптимизировать код программы.
Философия С, Fortran: Большинство автоматизированных средств оптимизации кода уступают хорошему стилю программирования.
Плюсы: высокая эффективная программы.
Минусы: код программы машинно-зависим и не переносится на другие ВМ

Рис.7.2. Взаимосвязь между системой команд и факторами, определяющими эффективность вычислений.
В конечном итоге, цель — реализация вычислений наиболее эффективным образом, то есть за минимальное время, и здесь важнейшую роль играет правильный выбор архитектуры системы команд.
Общая характеристика архитектуры системы команд вычислительной машины складывается из ответов на следующие вопросы:
Какого вида данные будут представлены в вычислительной машине и в какой форме?
Где эти данные могут храниться помимо основной памяти?
Каким образом будет осуществляться доступ к данным?
Какие операции могут быть выполнены над данными?
Сколько операндов может присутствовать в команде?
Как будет определяться адрес очередной команды?
Каким образом будут закодированы команды?
Классификация архитектур системы команд
В истории развития вычислительной техники как в зеркале отражаются изменения, происходившие во взглядах разработчиков на перспективность той или иной архитектуры системы команд. Сложившуюся на настоящий момент ситуацию в области АСК иллюстрирует рис. 7.3.

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