Принцип программного управления

 

В ЭВМ вся последовательность команд на вычисление предварительно записывается в память вычислительной машины и выполняется по­следовательно автоматически. Впервые принцип вычислительной машины с автоматическим выполнением команд предложил амери­канский ученый фон Нейман. Он описал основные узлы, которые должна содержать такая машина. Этот принцип получил название фон-неймановской вычислительной машины. Большинство совре­менных ЭВМ в настоящее время построено именно по этому прин­ципу.

Машина фон Неймана состояла из памяти, представлявшей со­бой набор регистров, АЛУ (арифметико-логическое устройство), устройства ввода-вывода и устройства управления (УУ).

Рис. 2. Машина фон Неймана

 

Устройство ввода передает команды и данные в АЛУ, откуда они записываются в память. Все команды, совокупность которых называется программой, записываются в память в соседние ячейки по возрастанию их адресов, а данные, которые требуют обработки,— в ячейки с произвольными адресами. Последняя команда програм­мы — это обязательно команда остановки работы. Каждая команда содержит код операции, которую необходимо выполнить, и адреса ячеек, в которых находятся данные, обрабатываемые этой командой. Устройство управления содержит специальный регистр, который на­зывается «Счетчик команд». После загрузки программы и данных в память в счетчик команд записывается адрес первой команды про­граммы. После чего вычислительная машина переходит в режим ав­томатического выполнения программы.

Устройство управления считывает из памяти содержимое ячей­ки памяти, адрес которой находится в счетчике команд, и помещает его в специальное устройство — «Регистр команд». Регистр команд хранит команду во время ее исполнения. Устройство управления рас­шифровывает тип операции команды, считывает из памяти данные, адреса которых указаны в команде, и приступает к ее выполнению. Для каждой команды устройство управления имеет свой алгоритм обработки, который заключается в выработке управляющих сигна­лов для всех остальных устройств машины. Этот алгоритм реализован на основе комбинационных логических схем или с по­мощью специальной внутренней памяти, куда эти алгоритмы были записаны в виде микрокоманд, объединенных в микропрограммы. Выполнение микропрограммы происходит по тому же принципу, что и программы в основной памяти, т.е. по принципу фон Неймана. Каждая микрокоманда содержит набор управляющих сигналов для устройств машины.

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

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