Работа компьютера происходит следующим образом:
– устройство ввода информации воспринимает сигнал и преобразует его в устройство обработки информации;
– устройство обработки информации (арифметически-логический блок) преобразует сигнал в машинно-читаемый код, который передается в блок управления;
– блок управления разделен на ячейки, в каждой из которых «находится» определенная команда, способная производить действия с информацией;
– полученный сигнал активизирует команду из первой ячейки, которая может исполнять какую-либо из следующих операций:
• выполнение логических или арифметических операций с помощью арифметически-логического блока;
• чтение из памяти данных для выполнения арифметических или логических операций;
• запись результатов в память;
• ввод данных из внешнего устройства в память;
• вывод данных из памяти на внешнее устройство.
– после выполнения команды из первой ячейки активизируется следующая ячейка с другой командой. Однако этот линейный порядок может быть изменен с помощью команд передачи управления (перехода). Они заставляют устройство управления активизировать ячейки не одну за другой, а переходить туда, где находится необходимая для решения данной задачи команда.
– после выполнения последней команды результаты обработки информации выводятся на внешнее устройство.
Очевидно, что способности машины в целом определяются количеством ячеек в блоке управления и объемом содержащихся в них команд. Чем больше ячеек – тем больше команд, тем больше задач может решать машина. Например, в калькуляторе количество ячеек невелико, команд по обработке информации там немного. Поэтому калькулятор может работать с числовыми данными, но не способен производить операции с текстовыми или визуальными данными.
Необходимо отметить, что перед создателями первых вычислительных машин стояла проблема – должны ли устройство для хранения информации (память) и устройство для ее обработки находиться в разных аппаратах, или лучше их объединить.
У каждого решения были свои положительные и отрицательные качества.
Разделение памяти и управления позволяло упростить программирование, снижало возможность сбоев, облегчало работу пользователей. На первой машине, в которой память и управление разделялись («Марк I», разработанной в Гарвардском университете), данные хранились в электромеханических устройствах, а программы вводились с помощью перфорационных лент. Разумеется, операции с данными и операции с программами приходилось осуществлять по-разному. Однако это же повлекло увеличение размеров машины и появление дополнительных сложностей в ее обслуживании. Поскольку идея была выдвинута преподавателями Гарвардского университета (главный разработчик – Говард Эйкен), то принцип разделения «памяти» и «программы» в рамках вычислительного устройства получил наименование «гарвардской архитектуры».