ЦВМ находят всё большее применение в различных сферах человеческой деятельности. Важнейшие области их использования (конец 70-х гг.): научно-технические расчёты, в основе которых лежат математические методы; автоматизация проектирования технических объектов; экономические расчёты (экономико-статистический анализ, демографическая статистика, планирование, исследование операций, бухгалтерский и материальный учёт); информационно-справочная служба (научно-техническая информация, библиотечная, диспетчерская служба и др.); математическое моделирование в "описательных" науках — биологии, медицине, геологии, социологии и др.; автоматическое управление технологическими процессами, транспортными средствами, а также сложными экспериментальными установками.
Устройство ЦВМ
В ЦВМ информация представляется дискретно в виде чисел, заданных последовательностью цифр. При этом в понятие «число» вкладывается достаточно широкий смысл. В роли чисел в ЦВМ могут выступать и слова какого-либо языка, а в роли цифр — буквы (символы) какого-либо алфавита. Так же широко понимается и сам процесс вычисления на ЦВМ.
Вычисление — это не только выполнение арифметических операций, а вообще любая обработка исходных данных.
В этом смысле к вычислениям относят и работу ЭВМ по редактированию и переработке каких-либо текстов, например автоматический перевод с одного языка на другой. По сравнению с АВМ эти машины обеспечивают универсальность при переработке информации.
При переходе от решения одной задачи к решению другой в ЦВМ необходимо ввести лишь новую программу и новые исходные данные. При этом, вообще говоря, не возникает потребность вносить какие-либо изменения в работу отдельных устройств, образующих ЦВМ, или менять способ взаимодействия этих устройств. Структура ЦВМ (способ соединения ее частей) остается неизменной и не зависит от решаемой задачи. Эти машины способны запоминать, накапливать, хранить и использовать по мере надобности информацию.
Революционным поворотом в развитии цифровой вычислительной техники явилось создание электронных цифровых вычислительных машин (ЭЦВМ) с программным управлением, являющихся основными техническими средствами кибернетики. Электронные (цифровые) вычислительные машины и системы представляют собой наиболее мощный тип устройств обработки информации в самых различных сферах управления. В литературе цифровые дискретного действия вычислительные машины принято называть электронные вычислительные машины (ЭВМ).
Аналого-цифровые вычислительные машины. Аналого-цифровые (гибридные) средства вычислительной техники вначале создавали путем объединения в едином вычислительном комплексе аналоговой и цифровой вычислительных машин.
Современная гибридная вычислительная машина характеризуется глубоким взаимным проникновением цифровых и аналоговых схем и работой их в едином вычислительном процессе с целью использования преимуществ цифровой и аналоговой вычислительных машин. При этом, как правило, аналоговые средства используются для собственно вычислений, а цифровые — для управления, а также переработки логической информации.
Гибридные средства вычислительной техники находятся в стадии становления; основные вопросы здесь сводятся к разработке структур гибридных вычислительных систем, выбору рационального соотношения между цифровой и аналоговой частями, автоматизации работы гибридных систем и разработке элементов и схем, а также к разработке математического обеспечения гибридных систем.
То, что мы имеем в виду, говоря о цифровых вычислительных машинах, можно пояснить следующим образом. Предполагается, что эти машины могут выполнять любую операцию, которую мог бы выполнить человек-вычислитель. Мы считаем, что вычислитель придерживается определенных, раз навсегда заданных правил и не имеет права ни в чем отступать от них. Мы можем также считать, что эти правила собраны в книге, которая заменяется другой, когда вычислитель приступает к новой работе. У человека-вычислителя имеется также неограниченный запас бумаги, на которой он производит вычисления. Кроме того, он может выполнять операции сложения и умножения с помощью арифмометра – это несущественно.
Если данное выше пояснение принять за определение, то возникает угроза того, что наше рассуждение окажется движущимся в замкнутом круге. Чтобы избежать этой опасности, мы приведем перечень тех средств, с помощью которых достигается требуемый эффект. Можно считать, что цифровая вычислительная машина состоит из трех частей:
1) запоминающего устройства,
2) исполнительного устройства,
3) контролирующего устройства.
Запоминающее устройство – это склад информации. Оно соответствует бумаге, имеющейся у человека-вычислителя, независимо от того, является ли эта бумага той, на которой производятся выкладки, или той, на которой напечатана книга правил. Поскольку человек-вычислитель некоторые расчеты проводит в уме, часть запоминающего устройства машины будет соответствовать памяти вычислителя.
Исполнительное устройство – это часть машины, выполняющая разнообразные индивидуальные операции, из которых состоит вычисление. Характер этих операций изменяется от машины к машине. Обычно можно проделывать весьма громоздкие операции, например: «умножить 3 540 675 445 на 7 076 345 687», – однако на некоторых машинах можно выполнять только очень простые операции, вроде таких: «написать 0».
Мы уже упоминали, что имеющаяся у вычислителя «книга правил» заменяется в машине некоторой частью запоминающего устройства, которая в этом случае называется «таблицей команд». Обязанность контролирующего устройства – следить за тем, чтобы эти команды выполнялись безошибочно и в правильном порядке. Контролирующее устройство сконструировано так, что это происходит непременно.
Информация, хранящаяся в запоминающем устройстве, разбивается на небольшие части, которые распределяются по ячейкам памяти. Например, для некоторых машин такая ячейка может состоять из десяти десятичных цифр. Тем ячейкам, в которых хранится различная информация, в некотором определенном порядке приписывают номера. Типичная команда может гласить:
«Число, хранящееся в ячейке 6809, прибавить к числу, хранящемуся в ячейке 4302, а результат поместить в ту ячейку, где хранилось последнее из чисел».
Нет необходимости говорить о том, что если все это выразить на русском [английском] языке, то машина не выполнит такую команду. Более удобно бьло бы закодировать эту команду в виде, например, числа 6 809 430 217. Здесь 17 говорит о том, какую из различных операций, из тех, что можно выполнять с помощью данной машины, следует проделать с числами, хранящимися в указанных ячейках. В данном случае имеется в виду описанная выше операция, т.е. операция «число… прибавить к числу…». Следует заметить, что сама команда занимает 10 цифр и, таким образом, заполняет одну ячейку памяти, что весьма удобно. Обычно контролирующее устройство выбирает необходимые команды в том порядке, в котором они расположены, но иногда могут встречаться и такие команды:
«Теперь выполнить команду, хранящуюся в ячейке 5606, и продолжать оттуда»
или же:
«Если ячейка 4505 содержит 0, выполнить команду, содержащуюся в ячейке 6707, в противном случае продолжать по порядку».
Команды этих последних типов очень важны, так как они позволяют повторять снова и снова некоторую последовательность операций до тех пор, пока не будет выполнено определенное условие, причем для повторения данной последовательности операций не приходится прибегать к новым командам. Машина просто выполняет вновь и вновь одни и те же команды. Воспользуемся аналогией из повседневной жизни. Допустим, что мама хочет, чтобы Томми по дороге в школу заходил каждое утро к сапожнику, для того чтобы справиться, не готовы ли ее туфли. Она может каждое утро снова и снова просить его об этом. Но она может также раз и навсегда повесить в прихожей записку, которую Томми будет видеть, уходя в школу, и которая будет напоминать ему о том, чтобы он зашел за туфлями. Когда Томми принесет туфли от сапожника, мама должна разорвать записку.
Читатель должен считать твердо установленным, что цифровые вычислительные машины можно строить на основе тех принципов, о которых мы рассказали выше, и что их действительно строят, придерживаясь этих принципов. Ему должно быть ясно, что цифровые вычислительные машины могут в действительности весьма точно подражать действиям человека-вычислителя.
Разумеется, описанная нами книга правил, которой пользуется вычислитель, является всего лишь удобной фикцией. На самом деле настоящие вычислители помнят, что они должны делать. Если мы хотим построить машину, подражающую действиям человека-вычислителя при выполнении некоторой сложной операции, то следует спросить последнего, как он выполняет эту операцию, и ответ представить в виде таблицы команд.
Составление таблицы команд обычно называют «программированием». «Запрограммировать выполнение машинной операции A» – значит ввести в машину подходящую таблицу команд, следуя которым машина может выполнить операцию A.
Интересной разновидностью цифровых вычислительных машин являются «цифровые вычислительные машины со случайным элементом». Такие машины имеют команды, содержащие бросание игральной кости или какой-нибудь эквивалентный электронный процесс. Одной из таких команд может быть, например, следующая: «бросить кость и полученное при бросании число поместить в ячейку 1000». Иногда говорят, что такие машины обладают свободой выбора (хотя лично я не стал бы употреблять такое выражение) . Установить наличие «случайного элемента» в машине путем наблюдений за ее действием обычно оказывается невозможным, так как если сделать, например, выбор команды зависимым от последовательности цифр в десятичном разложении числа р, то результат получится совершенно аналогичный.