Архитектурные особенности вычислительных машин
Основные архитектурные особенности современных вычислительных машин
Программы составляются для выполнения на вычислительных системах, при этом традиционно используемые системы, реализующие принцип программного управления Джона фон Неймана (последовательные ЭВМ) [3], в настоящее время разрабатываются так, что программы, написанные для одной последовательной ЭВМ, можно практически без изменений переносить на другие, хотя и здесь, конечно, имеются архитектурные различия, например длина машинного слова. Тем не менее, последовательное программирование достаточно унифицировано и проблемы переноса программ с одной машины на другую не слишком сложны, так как в их основе лежит одна и та же модель организации вычислений, которая может быть проиллюстрирована рис. 1. Здесь программа (коды операций) и обрабатываемые данные хранятся в одной Оперативной Памяти (ОП) – линейном адресном пространстве, где каждой ячейке памяти (например, байту) поставлен во взаимно однозначное соответствие её номер – адрес. Программа выполняется за счет того, что в Счетчик Адреса (СчА) записывается адрес байта, начиная с которого располагается код первой команды программы. Устройство Управления 
Рис. 1
(УУ) считывает адрес очередной подлежащей исполнению команды из СчА, обращается по этому адресу и считывает указанный байт, который интерпретируется как код операции, который определяет формат (структуру) команды. Знание кода операции и формата команды позволяет УУ определить, какую же команду надо выполнить, над какими операндами и куда поместить результат операции. Формат команды определяет, сколько операндов у данной операции, где они расположены (в памяти, в регистрах, непосредственно в команде), как должно быть интерпретировано содержимое соответствующих областей памяти, т.е. какого они типа. Вся эта информация передается Арифметико-Логическому Устройству (АЛУ), которое и отрабатывает данную команду. Формат команды также определяет ее длину, и после выборки текущей команды УУ наращивает СчА на ее длину так, что по завершении выполнения текущей команды в СчА находится уже адрес очередной команды (если это не была команда перехода). Таким образом, в последовательных ЭВМ реализуется так называемая нить управления (thread), или же поток команд, обрабатывающих поток данных (операндов), определяемых этими командами.
Другим вариантом является так называемая Гарвардская архитектура, активно использующаяся в системах с RISC-процессорами. Идея ее состоит в разделении памяти для данных и программ, что приводит к заметному ускорению вычислений.
В последнее время архитектура Джона фон Неймана все чаще подвергается критике из-за ее недостатков, и на арену выходят в частности решения, основанные на управлении не потоком команд (программой), а данными.




















