Результатом работы по разработке такого устройства явилось создание электронно-вычислительной машины (компьютера).
Таким образом, электронно-вычислительная машина (ЭВМ, компьютер) является результатом развития автоматических устройств, и ее отличительной чертой является способность не только воспринимать сигналы из окружающего мира, но и обрабатывать эту информацию.
ЭВМ: принцип действия, понятие, классификация
В силу предъявляемых требований ЭВМ должна была иметь:
• устройство для получения (ввода) информации;
• устройство для хранения информации (память);
• устройство для обработки информации (включает в себя два компонента: 1) арифметическо-логическое устройство, предназначенное для оценки ситуации и 2) устройство управления, предназначенное для выбора способа поведения);
• устройство для вывода результатов обработки информации.
Работа компьютера происходит следующим образом:
– устройство ввода информации воспринимает сигнал и преобразует его в устройство обработки информации;
– устройство обработки информации (арифметически-логический блок) преобразует сигнал в машинно-читаемый код, который передается в блок управления;
– блок управления разделен на ячейки, в каждой из которых «находится» определенная команда, способная производить действия с информацией;
– полученный сигнал активизирует команду из первой ячейки, которая может исполнять какую-либо из следующих операций:
• выполнение логических или арифметических операций с помощью арифметически-логического блока;
• чтение из памяти данных для выполнения арифметических или логических операций;
• запись результатов в память;
• ввод данных из внешнего устройства в память;
• вывод данных из памяти на внешнее устройство.
– после выполнения команды из первой ячейки активизируется следующая ячейка с другой командой. Однако этот линейный порядок может быть изменен с помощью команд передачи управления (перехода). Они заставляют устройство управления активизировать ячейки не одну за другой, а переходить туда, где находится необходимая для решения данной задачи команда.
– после выполнения последней команды результаты обработки информации выводятся на внешнее устройство.
Очевидно, что способности машины в целом определяются количеством ячеек в блоке управления и объемом содержащихся в них команд. Чем больше ячеек – тем больше команд, тем больше задач может решать машина. Например, в калькуляторе количество ячеек невелико, команд по обработке информации там немного. Поэтому калькулятор может работать с числовыми данными, но не способен производить операции с текстовыми или визуальными данными.
Необходимо отметить, что перед создателями первых вычислительных машин стояла проблема – должны ли устройство для хранения информации (память) и устройство для ее обработки находиться в разных аппаратах, или лучше их объединить.
У каждого решения были свои положительные и отрицательные качества.
Разделение памяти и управления позволяло упростить программирование, снижало возможность сбоев, облегчало работу пользователей. На первой машине, в которой память и управление разделялись («Марк I», разработанной в Гарвардском университете), данные хранились в электромеханических устройствах, а программы вводились с помощью перфорационных лент. Разумеется, операции с данными и операции с программами приходилось осуществлять по-разному. Однако это же повлекло увеличение размеров машины и появление дополнительных сложностей в ее обслуживании. Поскольку идея была выдвинута преподавателями Гарвардского университета (главный разработчик – Говард Эйкен), то принцип разделения «памяти» и «программы» в рамках вычислительного устройства получил наименование «гарвардской архитектуры».
Напротив, группа ученых Принстонского университета, членом которой являлся известный американский математик венгерского происхождения Джон (Янош) фон Нейман[5], полагала, что «память» и «программы» должны находиться в одном аппаратном устройстве. То есть, команды и числа, которые с помощью этих команд обрабатываются, находятся в одинаковых ячейках, которые последовательно обрабатываются. Это, в свою очередь, требовало, чтобы как данные, так и команды по их обработке, писались на одном и том же языке, причем и над программами, и над данными можно было выполнять одни и те же операции. Данный принцип, именуемый «принципом единства памяти», стал отличительным признаком «архитектуры фон Неймана».
Уязвимым местом неймановской архитектуры являлось введение данных. Устройство Эйкена могло принимать данные в привычной для человека десятичной форме исчисления. При такой форме все числа описываются с помощью десяти различных знаков – от 0 до 9.
Архитектура Неймана этого не позволяла. Но для решения проблемы группой Неймана был найден оригинальный путь, который, в конечном счете, и предопределил почти повсеместную победу «неймановской архитектуры», а также привел к появлению компьютера в традиционном понимании.
Этот путь заключался в использовании двоичного кода. При двоичном коде все числа записываются с помощью двух знаков – 0 и 1. В двоичном коде нулю соответствует 0, единице – 1, а вот число «2» в двоичном коде пишется как «10». «3» выражается «11», «4» – это 100 и т. д.
Существенным достоинством двоичного кодирования является то, что оно позволило «материализовать» информацию, перевести ее из области абстрактного сигнала в область «материала», который может быть подвергнут обработке с помощью технических средств. Сигнал либо есть (1), либо его нет (0). «Память» компьютера состоит из огромного количества элементарных электромагнитных устройств, которые либо испускают электрические импульсы (что для устройства обработки является 1), либо не испускают (это дает 0). Если сигнал меняется с 1 на 0, это означает уменьшение числа, то есть вычитание, а если с 0 на 1 – это сложение. Конечно, запись даже небольшого числа вроде 32 и арифметических операций с ним в двоичном коде выглядит очень громоздко, но скорость считывания сигналов уравновешивала все недостатки.
Первоначально элементарные устройства были заметных размеров, и считывание сигналов с них было относительно долгим. Но широкое внедрение полупроводников, микросхем и пр. позволили кардинально уменьшить размеры вычислительных устройств и одновременно повысить их быстродействие.
Тем не менее, вплоть до настоящего момента все компьютеры, как и их далекие предшественники, могут только складывать и вычитать числа, записанные в двоичном коде, но делают это гораздо быстрее.
Следует отметить, что использование двоичного кода далеко не сразу было признано единственно верным решением. Как уже говорилось, имелись варианты систем, работающих в десятичной системе. Можно также упомянуть оригинальный эксперимент, осуществленный в СССР при создании вычислительного устройства, работающего в троичном коде (машина «Сетунь»[6]).
Благодаря двоичному коду появилась не только возможность аппаратной обработки информации. Ее стало возможным измерить. Элементарной единицей информации является бит. Он означает либо отсутствие сигнала (0 бит), либо наличие сигнала (1 бит). Соответственно, 1 в двоичном коде – 1 бит информации.
Но если компьютер как аппаратное устройство оперирует именно битами, то человек как пользователь должен пользоваться более привычными ему символами. Опытным путем было установлено, что все символы могут быть описаны для компьютера числами двоичного кода, не превышающими 8 разрядов (всего 256 чисел). Иначе говоря, символ (буква, пробел, цифра) может быть описан с помощью 8 бит. Это количество информации получило наименование «байт». Например, если в произведении 32 000 знаков (включая пробелы, можно сказать, что его информационный объем составляет 32 000 байт).
Следует отметить, что образование кратных единиц измерения количества информации несколько отличается от принятых в большинстве наук. Традиционные метрические системы единиц в качестве множителей кратных единиц используют коэффициент 10n, где n = 3, 6, 9 и так далее, что соответствует десятичным приставкам Кило (103), Мега (106), Гига (109) и так далее. Поскольку компьютер оперирует числами не в десятичной, а в двоичной системе счисления, в кратных единицах измерения количества информации используется коэффициент 2n. Поэтому кратные байту единицы измерения количества информации вводятся следующим образом:
1 Кбайт = 210 байт = 1024 байт
1 Мбайт = 210 Кбайт = 1024 Кбайт
1 Гбайт = 2 10 Мбайт = 1024 Мбайт
Современный компьютер, построенный по принципу «архитектуры Неймана», состоит из следующих основных элементов:
Для большинства пользователей устройствами ввода служат клавиатура, джойстик, дисководы, видеокамеры и пр. Устройствами вывода являются монитор или принтер.