Глава I. Общие сведения об электронных вычислительных машинах
А.И. Китов
1. ЗНАЧЕНИЕ ЭЛЕКТРОННЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИН
Непрерывный рост потребностей всех областей науки и техники в проведении больших и сложных вычислительных работ явился причиной бурного развития средств вычислительной техники в последние годы и обусловил появление принципиально нового направления в вычислительной технике, заключающегося в создании и применении современных быстродействующих электронных вычислительных машин.
Это направление имеет необычайно широкие перспективы развития. Современные быстродействующие вычислительные машины способны выполнять десятки тысяч арифметических действий в секунду и в короткие сроки (от нескольких минут до нескольких часов) осуществлять численное решение чрезвычайно сложных математических задач, на которое при ручных вычислениях потребовались бы годы работы.
Так, например, для решения вручную достаточно полной системы дифференциальных уравнений, описывающих пространственное движение управляемой ракеты, потребовалось бы около двух лет непрерывной работы одного вычислителя, пользующегося арифмометром. На электронной вычислительной машине эта задача решается в течение двух часов.
Возможность получения с помощью электронных машин в короткие сроки точных численных решений весьма сложных уравнений позволяет во многих случаях заменять экспериментальные исследования и натурные испытания различных объектов математическими расчетами на машинах, что приводит к значительной экономии материальных средств и времени.
Другой, не менее важной областью применения электронных вычислительных машин, помимо трудоемких математических вычислений, является использование этих машин в качестве управляющих устройств в различных системах автоматического управления.
На основе электронной вычислительной техники строятся сложные автоматы, способные учитывать изменения внешних условий, запоминать ход процесса регулирования, вырабатывать логические решения. Такие автоматы применяются, например, для управления производственными процессами, для автоматического регулирования режимов работы электростанций, для управления стрельбой и т. д.
Кроме указанных двух областей применения, электронные вычислительные машины широко используются при выполнении различных экономико-статистических работ (составление планов, отчетов, расписаний и т. п.), для решения логических, комбинаторных задач, т. е. везде, где необходимо выполнять большой объем однообразной умственной работы по определенным правилам.
Сферы применения электронных вычислительных машин непрерывно расширяются и не ограничиваются областью непосредственно математических вычислений, которая представляет собой, как известно, только одну из узких областей умственного труда человека.
Таким образом, название «вычислительные» или «математические» машины не вполне правильно определяет значение и возможности этой области техники. Более точным было бы название «логические машины», т. е. машины для облегчения умственного труда человека. Именно этим широким назначением обусловлено колоссальное революционизирующее значение электронных вычислительных машин в современной науке и технике.
Если раньше задачи технического прогресса концентрировались в основном вокруг проблем механизации физических функций человека (развитие средств производства, передвижения, связи, наблюдения и измерения и т. д.), то середина XX века ознаменовалась бурным развитием средств механизации умственного труда, и, несомненно, прогресс в этом направлении приведет к быстрому общему прогрессу во всех сферах человеческой деятельности.
Следует заметить, что появление электронных цифровых вычислительных машин имеет большое значение и для развития комплекса биологических наук, и, в первую очередь, для изучения процессов высшей нервной деятельности, так как с помощью этих машин представляется возможным создать модели отдельных элементарных процессов работы нервной системы и процессов мышления и тем самым ближе подойти к раскрытию закономерностей в этой области.
Одной из важных особенностей техники электронных вычислительных машин является то, что в ней сочетается большой комплекс различных областей современной науки и техники, таких, как математический численный анализ, математическая логика, электроника, импульсная техника, физика полупроводников; она использует достижения этих областей и стимулирует их дальнейшее развитие.
Значение электронных вычислительных машин для коммунистического строительства в нашей стране трудно переоценить.
Широкое применение электронных вычислительных машин в нашей стране должно обеспечить резкий подъем советской науки и техники на новую более высокую ступень. Применение электронных машин для автоматического управления производственными процессами приведет к значительному повышению производительности труда, улучшению качества продукции и экономии материалов и энергии. В отличие от капиталистического общества, где внедрение электронных автоматических устройств влечет за собой увольнение трудящихся и ухудшение условий их жизни, в социалистическом обществе электронная автоматика и, в том числе, электронные вычислительные машины облегчают условия труда людей, освобождают их от наиболее трудоемкой, утомительной и однообразной умственной работы и способствуют, в конечном счете, повышению материального благосостояния трудящихся.В нашей стране электронные машины находят применение для автоматического управления производственными процессами, представляющими опасность для здоровья и жизни людей, как например, в некоторых видах химической промышленности.
Важной областью будущего применения электронных цифровых машин является механизация и автоматизация процессов административно-хозяйственного управления, вплоть до государственного планирования, учета и контроля.
2. ОСНОВНЫЕ ТИПЫ ВЫЧИСЛИТЕЛЬНЫХ МАШИН
Развитие вычислительной техники происходило по двум направлениям: по пути создания вычислительных машин и приборов непрерывного действия и по пути создания вычислительных машин и приборов дискретного счета или цифровых.
В вычислительных машинах непрерывного действия математические[1] величины изображаются в виде непрерывных значений каких-либо физических величин (длин, углов, напряжений электрического тока и др. ) и могут быть представлены с ограниченной точностью, зависящей от точности изготовления устройств. Существенное повышение точности встречает непреодолимые пока что технологические и эксплуатационные трудности. Это является принципиальным недостатком машин непрерывного действия по сравнению с машинами дискретного счета. Простейшими примерами вычислительных устройств непрерывного действия являются логарифмическая линейка и различные механические вычислительные приборы — планиметры, интеграфы, интегриметры и др.
Вычислительные машины непрерывного действия возникли в результате развития метода моделирования, основанного на законах подобия различных по своей природе физических явлений. Еще Владимир Ильич Ленин в своей книге «Материализм и эмпириокритицизм» отмечал, что поразительное единство законов природы проявляется особенно наглядно в том факте, что многие физические процессы, происходящие в различных областях природы, описываются одними и теми же дифференциальными уравнениями.
На основании изучения процесса одной физической природы, применяя законы подобия, можно судить о характере протекания подобного[2] процесса другой физической природы.
При моделировании исследуемые физические процессы заменяются их моделями — аналогами из другой области явлений, на которых и производится исследование. В качестве аналогов выбираются обычно такие процессы, которые легко могут быть воспроизведены и являются более удобными для измерений и исследований. Так как наиболее удобной для изучения и воспроизведения в лабораторных условиях является область электрических явлений, то наибольшее развитие и значение получили методы электрического моделирования.
Развитие методов моделирования привело к созданию вычислительных машин непрерывного действия. В вычислительных машинах непрерывного действия моделируется не какой-либо конкретный физический процесс, а та или иная математическая зависимость, заданная, например, в виде системы дифференциальных уравнений. Поэтому вычислительные машины непрерывного действия в отличие от физических моделей называются иногда «математическими моделями».
Вычислительные машины непрерывного действия конструктивно состоят из целого ряда отдельных блоков, каждый из которых служит для выполнения одной какой-либо математической операции (сложение, вычитание, умножение, деление, интегрирование, образование заданной функции и т. д.). Соединение этих блоков между собой производится в последовательности, отвечающей конкретному виду решаемого уравнения. Если вычислительная машина предназначается для решения только одного вида уравнений, то состав математических устройств машины и их соединение между собой являются постоянными. Такие машины представляют собой узко специализированные устройства. Примером узко специализированной вычислительной машины непрерывного действия могут служить приборы управления артиллерийским зенитным огнем (ПУАЗО).
В большинстве случаев вычислительные машины непрерывного действия строятся достаточно гибкими, т. е. обеспечивающими возможность решения сравнительно широкого круга задач одного и того же типа. Для этого в машинах предусматривается возможность изменения как состава математических устройств, участвующих в решении задачи, так и порядка соединения этих устройств.
В машине непрерывного действия при решении задачи все устройства работают одновременно. Каждое устройство изображает одну из входящих в задачу величин или выполняет одно какое-нибудь действие, т. е. машина должна иметь столько устройств, сколько величин и действий над ними содержится в задаче.
Отсюда ясно, что тип и сложность математических задач, которые могут быть решены на вычислительной машине непрерывного действия, ограничены наличным составом оборудования машины. Поэтому все вычислительные машины непрерывного действия являются машинами более или менее специализированными.
В механических интегрирующих машинах непрерывного действия математические операции производятся с помощью механических решающих устройств, а участвующие в решении задачи величины изображаются в виде углов поворота валов. Например, для производства. интегрирования часто применяется лобовая фрикционная передача, для сложения — цилиндрические дифференциалы, для умножения — реечные множительные механизмы. Передача данных с одних устройств на другие осуществляется либо с помощью механических валов, либо с помощью электрических следящих систем.
В электрических машинах непрерывного действия участвующие в решении задачи величины представляются наиболее часто в виде напряжений электрического тока, а операции над величинами производятся с помощью электрических схем.
С помощью линейных электрических элементов можно построить схемы для алгебраического сложения входных напряжений, интегрирования, дифференцирования и выполнения ряда других операций. Так как участвующие величины изображаются в виде напряжений, то передача данных от одних блоков к другим осуществляется весьма просто.
Наибольшее распространение среди электрических вычислительных машин непрерывного действия получили машины, предназначенные для интегрирования обыкновенных дифференциальных уравнений.
Среди электрических интегрирующих машин непрерывного действия следует особо выделить машины, осуществляющие решение задач «в истинном масштабе времени». В этих машинах в качестве независимого переменного при интегрировании дифференциальных уравнений используется текущее время, и поэтому решение имеет во времени точно такой же вид, как если бы значения искомых функций непосредственно измерялись в некоторой физической системе, движение которой описывается заданными дифференциальными уравнениями.
Возможность решения дифференциальных уравнений в истинном масштабе времени является ценной особенностью при применении вычислительных машин в качестве управляющих устройств в системах автоматического управления.
Перейдем к рассмотрению второго направления в развитии вычислительной техники — рассмотрению цифровых вычислительных машин и приборов (дискретного действия). Известным примером этого типа устройств является арифмометр. К цифровым машинам относятся также ручные счетно-клавишные машины, счетно-аналитические машины и, наконец, недавно появившиеся электронные быстродействующие цифровые машины.
В цифровых машинах переменные величины изображаются цифрами и представляются в виде ряда принимаемых дискретных числовых значений. Решение задачи на любой цифровой машине состоит из отдельных последовательно выполняемых арифметических операций. Поэтому цифровые машины часто называют машинами дискретного действия или счета. Используя различные разработанные в математике численные методы, с помощью цифровых машин можно решать самые разнообразные математические задачи, так как численное решение любой задачи может быть сведено в принципе к последовательному выполнению четырех арифметических действий.
В отличие от вычислительных устройств непрерывного действия, где точность представления величин ограничена достижимой точностью изготовления устройств, в цифровых вычислительных устройствах принципиально может быть достигнута любая точность вычислений. Для этого необходимо лишь увеличить количество разрядов в изображении чисел, т. е. увеличить количество элементов (деталей), служащих для представления чисел в машине.
При этом требования к точности изготовления и стабильности работы самих элементов не повышаются. Достаточно, чтобы эти элементы, например, электронные лампы, реле, зубчатые колеса и др. имели определенное количество резко выраженных фиксированных состояний, например, проводимость или непроводимость тока, замыкание или размыкание контакта, зацепление колеса на определенном зубце и т. д.
Таким образом, цифровое устройство, производящее вычисления с высокой точностью, может быть построено из элементов, имеющих относительно невысокую точность работы и не требующих высокой точности изготовления деталей.
Итак, машины дискретного счета имеют следующие два важные преимущества перед машинами непрерывного действия: 1) универсальность и 2) высокую точность вычислений.
Длительное время существенным недостатком цифровых вычислительных машин являлась малая скорость вычислений. Например, для выполнения одной арифметической операции на арифмометре или на ручных счетно-клавишных машинах оператору требуется не мало времени для того, чтобы произвести сравнительно большое количество движений, связанных со вводом исходных чисел, выполнением самой операции и записью результата.
Развитие цифровых машин шло по пути механизации и автоматизации вычислительного процесса для повышения скорости работы[3].
Вместо ручных арифмометров появились электрифицированные настольные счетные машины, в которых автоматизирован процесс выполнения арифметических операций. Однако эти машины так же, как и ручные арифмометры, служили только для выполнения индивидуальных операций, они требовали каждый раз введения от руки в машину исходных чисел, над которыми производится действие, и указания, какое действие произвести путем нажима на соответствующую кнопку. Следующим этапом в деле автоматизации вычислений было создание (в начале настоящего столетия) счетно-аналитических или перфорационных машин. Эти (машины были разработаны для удовлетворения потребностей статистики, бухгалтерского учета и финансово-банковского дела. В перфорационных машинах был впервые механизирован процесс задания чисел, над которыми выполняются операции, и процесс ввода чисел был отделен от вычислительного процесса.
Для представления чисел использовалась система отверстий, пробиваемых на стандартных листах картона, так называемых перфокартах. Каждой цифре некоторого разряда числа отвечала своя позиция пробивки в столбце перфокарты, соответствующем определенному разряду числа. (см. §9).
Так же, как и числа, на перфокарты заносились заранее в виде системы отверстий особые сигналы для управления работой машины. Массив перфокарт закладывался в машину, перфокарты последовательно поступали в воспринимающие части машины, которая соответствующим образом реагировала на наличие или отсутствие отверстий в перфокарте. Например, в электромеханических перфорационных машинах перфокарта ощупывается системой электрических контактов, которые в случае наличия отверстий на определенных местах перфокарты замыкаются и посылают сигналы в рабочие части машины. В случае отсутствия отверстия сигнал не посылается.
Каждая перфокарта несла таким образом систему «команд» для машины — указаний, какие операции производить. В счетно-аналитических машинах также впервые был механизирован процесс управления вычислением. Схема управления работой машины осуществлялась посредством коммутации, т. е. переключением каналов, по которым передавались электрические сигналы. Например, табулятор — основная машина из комплекта счетно-аналитических машин, предназначенная для автоматического суммирования многих чисел, имеет несколько отдельных счетчиков; сигналы, получаемые от перфокарты, могут быть направлены в любой разряд любого из счетчиков, что достигается соответствующей коммутацией — соединением входных и выходных контактов отдельных устройств машины.
Коммутация или настройка машины для решения определенной задачи осуществляется перед началом работы и сохраняется неизменной в течение всего процесса решения. Однако коммутация, остающаяся неизменной в ходе всего процесса вычислений, оказалась недостаточно гибкой. В связи с этим были введены дополнительные приспособления, которые позволили изменять установленные в машине направления передачи сигналов, получаемых от перфокарт, в зависимости от наличия специальных пробивок на перфокартах и тем самым изменять ход вычислений.
Счетно-аналитические машины используются обычно в виде комплекта машин различного назначения.
Помимо суммирующих машин, которые появились первыми, были созданы также умножающие машины и машины для выполнения некоторых логических операций, необходимых для обработки статистических данных и выполнения бухгалтерских расчетов.
Так называемая сортировальная машина служит для разделения всей колоды перфокарт на части в зависимости от того, на каком месте в определенном столбце перфокарты имеется отверстие.
Раскладочная машина производит разделение колоды перфокарт на части в зависимости от совпадения или несовпадения пробивок на определенных местах перфокарт.
Эти машины успешно решали задачи статистики и бухгалтерско-банковского дела, но были непригодны для решения математических задач. Для автоматического решения математических задач машина должна обладать способностью выбирать то или иное направление для продолжения вычислительного процесса в зависимости от получаемых промежуточных результатов или в зависимости от какого-либо другого признака.
В незначительной степени этим свойством обладали уже счетно-аналитические машины. Например, в табуляторе может производиться либо последовательное суммирование чисел, если поступающие в машину перфокарты обладают определенными признаками, либо выдача полученной суммы на печатающее устройство и переход к последовательному суммированию нового ряда чисел, поступающих с перфокартами, обладающими другим признаком. Выбор того или иного варианта для продолжения работы в табуляторе осуществляется путем сравнения двух последовательно поступающих перфокарт. Если пробивки на определенных местах обеих перфокарт совпадают, то производится суммирование. Если пробивки не совпадают, то выдается ранее накопленная сумма и машина переходит к получению следующей суммы.
В процессе вычислений часто бывает необходимо использовать полученные промежуточные результаты для дальнейших вычислений. Для этого в счетно-аналитических машинах предусматривалась возможность выдачи результатов не только в виде отпечатанной таблицы цифр, но и в виде пробивок на так называемых итоговых перфокартах, которые могли быть вновь вставлены в машину, однако для этого требовалось вмешательство оператора.
Процесс вычислений на счетно-аналитических машинах не является полностью автоматизированным: вмешательство человека требовалось не только при вводе итоговых перфокарт, но и для перехода от этапа вычислений, выполняемых одной машиной комплекта, к этапу вычислений, выполняемых другой машиной.
Несмотря на то, что комплект счетно-аналитических машин мог выполнять все те операции — арифметические и логические, к серии которых сводится решение весьма большого круга математических задач, а также обладал способностью сохранять (запоминать) промежуточные результаты и вводить их в машины для продолжения вычислений, применение счетно-аналитических машин для решенияболее или менее сложных математических задач оказалось не эффективным. Основные затруднения при этом возникали из-за необходимости дробить весь процесс вычислений на очень короткие подпроцессы, выполняемые отдельными машинами, а также из-за незначительной емкости приспособлений, служащих для сохранения промежуточных результатов.
Счетно-аналитические машины весьма эффективно применяются в настоящее время при массовом решении коротких однотипных задач. Решение всех этих задач должно быть разбито на однотипные этапы вычислений, выполняемые отдельными машинами комплекта. При этом каждая машина из комплекта счетно-аналитических машин выполняет один и тот же этап решения всех задач. После того, как первая машина выполнит первый этап решения, вторая машина начинает выполнять второй этап и так далее.
Такого рода вычислительная работа характерна для статистических, бухгалтерских и банковых расчетов, но не для математических задач.
Для математических задач характерным: является выполнение больших последовательностей различных операций, наличие большого количества промежуточных результатов, которые должны быть сразу же использованы для продолжения вычислений, а также необходимость часто изменять ход вычислительного процесса в зависимости от результатов промежуточных вычислений.
Таким образом, для того, чтобы машина могла полностью автоматически решать математические задачи, она должна, во-первых, производить все элементарные арифметические операции, необходимые для решения задачи, во-вторых, обладать достаточным объемом устройства для хранения промежуточных и исходных величин и, в-третьих, должна иметь возможность автоматически выбирать нужное направление дальнейших вычислений в зависимости от результатов промежуточных операций. Автоматические вычислительные машины, удовлетворяющие полностью перечисленным требованиям, появились в 40-х годах настоящего столетия.
Первые автоматические вычислительные машины представляли собой соединение стандартных блоков счетно-аналитических машин и ряда дополнительных блоков, имеющих центральную систему управления. Решение задачи сводилось к последовательному выполнению операций различными блоками машины, которые автоматически включались и выключались системой управления в соответствии с заранее составленной программой работы машины. Программа содержала всю последовательность операций, необходимых для решения задачи. Эта последовательность операций кодировалась в виде чисел и записывалась в виде пробивок на длинной перфоленте. В процессе работы машины лента перемещалась в постоянном направлении и последовательно вводила в устройство управления машины очередные команды, определяющие, какой блок должен быть включен в работу, какую операцию нужно выполнить, над какими числами и куда передать результат операции. Передача данных из одних блоков в другие осуществлялась автоматически при помощи электрических сигналов в соответствии с поступающими командами.Составление программы для такой машины, а затем представление ее в форме, воспринимаемой машиной, например, в виде пробивок на перфоленте, для многих задач, требующих длительных вычислений, вызывали столь большую затрату труда, что проще и быстрее было иногда решать задачу вручную. Более того, машины такого типа, имея неизменяемую программу, практически не обеспечивали возможность автоматического изменения направления вычислительного процесса в зависимости от промежуточных результатов.
Для осуществления повторения часто встречающихся последовательностей операций (например, при многократном вычислении квадратных корней, логарифмов и т. д.) в первых автоматических цифровых вычислительных машинах вводились дополнительные программные устройства, в которых последовательности команд заносились на замкнутые перфоленты. Особая команда на основной перфоленте вводила в действие одну из таких замкнутых перфолент, а после выполнения записанных на ней команд продолжалась выдача команд с основной перфоленты.
Первые автоматические вычислительные машины являлись электромеханическими релейными машинами и скорость работы этих машин была невелика ввиду использования в машинах механических элементов (обладающих значительной инертностью) и небольшой скорости перемещения программной перфоленты, управляющей решением задачи.
Дальнейшее развитие автоматических вычислительных машин шло по пути увеличения скорости вычислений и усовершенствования системы управления в сторону большей гибкости. Резкое увеличение скорости работы автоматических вычислительных машин было достигнуто в результате перехода от механических счетчиков, входящих в состав вычислительных устройств машин, к электронным. Еще в 20-х годах текущего столетия для нужд ядерной физики, для подсчета элементарных частиц, были созданы чрезвычайно быстро работающие электронные счетчики. Если в механических счетчиках переход от одного числа к другому числу связан с перемещением некоторых деталей (поворот зубчатых колес, движение якоря реле и др. ), то в электронных счетчиках переход от одного числа к другому связан с практически безинерционным изменением состояния системы электронных ламп и происходит в тысячи раз быстрее, чем в механических счетчиках.
Использование электронных счетчиков для нужд вычислительной техники началось значительно позднее, чем они были разработаны и применены в технике физического эксперимента.
Первые быстродействующие электронные вычислительные машины, в которых были применены для построения счетных и запоминающих устройств электронные лампы, появились в 1940—1950 гг. В быстродействующих вычислительных машинах арифметическиеоперации выполняются в десятки тысяч раз быстрее, чем на обычных машинах.
Одновременно с введением в машину быстродействующих электронных элементов был сделан важный шаг в совершенствовании автоматизации управления работой машины. Вместо развернутых неизменных программ, содержащих полностью весь перечень операций, стали применяться циклические программы, изменяемые самой машиной в процессе вычислений. При этом резко уменьшился как объем программ, так и работа по их составлению. Благодаря этому значительно возросла эффективность применения машин. Применение циклических программ стало возможным благодаря тому, что от хранения программы на перфоленте, изменение пробивок на которой невозможно, перешли к хранению программы в электронном запоминающем устройстве, позволяющем легко видоизменять записанные в нем команды.
Подробно принцип действия автоматической цифровой вычислительной машины с программным управлением будет рассмотрен в следующем параграфе.
Если в первые годы развития быстродействующих цифровых вычислительных машин разрабатывались, главным образом, машины универсального назначения, то в настоящее время большое значение приобретают так же и специализированные цифровые быстродействующие вычислительные машины.
Специализированные машины строятся для решения задач определенного типа.
Наибольшее распространение в настоящее время получили быстродействующие специализированные машины следующих назначений:
- машины для решения систем обыкновенных дифференциальных уравнений, так называемые дифференциальные анализаторы;
- машины для вычисления коэффициентов и функций корреляции, так называемые корреляторы;
- машины для решения систем линейных алгебраических уравнений;
- специализированные машины для решения дифференциальных уравнений в частных производных методом статистических испытаний (метод Монте-Карло).
Область применения специализированных цифровых вычислительных машин непрерывно расширяется. Обычно специализированные машины значительно проще по конструкции и дешевле, чем машины универсальные.
Важным преимуществом специализированных машин по сравнению с универсальными является удобство эксплуатации. Специализированная машина потребляет меньше электроэнергии, занимает значительно меньшую площадь и требует для своего обслуживания меньший штат и меньшую квалификацию специалистов, чем универсальная машина. В тех случаях, когда требуется постоянно производить решение задач какого-либо одного типа, целесообразно иметь специализированную вычислительную машину. В заключение настоящего параграфа рассмотрим классификацию быстродействующих вычислительных машин. Эти машины делятся на следующие основные типы.
По способу представления величин:
а) машины дискретного действия или цифровые;
б) машины непрерывного действия.
По принципу действия:
а) универсальные машины с программным управлением, реализующие любые алгорифмы решения задач;
б) специализированные машины с жестким программным управлением, реализующие один или несколько определенных алгорифмов решения задач;
в) математические модели, воспроизводящие физические процессы, описываемые решаемыми уравнениями.
По назначению:
а) машины вычислительные, предназначенные для решения задач, вводимых в машину человеком;
б) машины управляющие, предназначенные для обработки информации, поступающей в машину непосредственно от внешних объектов.
Приведенная классификация допускает, вообще говоря, двенадцать различных комбинаций. Кроме того, возможны сочетания в одной машине одновременно нескольких принципов. Например, электронная вычислительная машина «Тайфун» (США) построена с использованием дискретного и непрерывного принципов действия.
Наибольшее развитие и применение в настоящее время получили два основных типа машин:
а) универсальные вычислительные машины дискретного действия с программным управлением;
б) моделирующие математические устройства непрерывного действия.
В дальнейшем мы будем рассматривать электронные машины (как вычислительные, так и управляющие) дискретного действия с программным управлением. Эти машины будем называть более кратко электронными цифровыми машинами.
3. ПРИНЦИП РАБОТЫ И УПРОЩЕННАЯ БЛОК-СХЕМА ЭЛЕКТРОННОЙ ЦИФРОВОЙ МАШИНЫ
С точки зрения принципа работы любая электронная цифровая машина универсального назначения может рассматриваться, как состоящая из трех основных частей (рис. 1.1):
- арифметического устройства, предназначенного для выполнения операций над числами;
- запоминающего устройства, предназначенного для приема, хранения и выдачи чисел;
- устройства управления, предназначенного для управления автоматической работой машины.

Кроме того в состав машины входят специальные устройства для ввода данных и для выдачи результатов.
Запоминающее устройство делится на отдельные ячейки; в каждой ячейке хранится, как правило, одно число. Все ячейки запоминающего устройства перенумерованы подряд и каждой из них присвоен постоянный номер, называемый адресом ячейки.
Решение любой задачи на автоматической машине, так же, как и при ручных вычислениях, сводится к выполнению над исходными числами определенной последовательности операций.
Машина может выполнять ограниченное число основных операций; сложение, вычитание, умножение, деление, перенос числа из одного места памяти в другое и некоторые другие. Поэтому процесс решения задачи должен быть предварительно представлен в виде последовательности таких операций.
Каждая операция выполняется машиной под воздействием специального управляющего сигнала — команды.
Последовательность команд образует программу работы машины. Для ввода в машину команды программы кодируются цифрами и хранятся в машине в ячейках запоминающего устройства в виде чисел таким же образом, как и обычные числа. В некоторых типах машин для хранения команд программы применяют отдельные запоминающие устройства.
Число, изображающее отдельную команду, делится на несколько частей, имеющих различное функциональное назначение. Одна часть, называемая кодом операции, определяет вид операции, которую должна выполнить машина. Другие части команды, называемые адресами, указывают, где хранятся числа, над которыми должна быть выполнена операция и куда должен быть направлен результат. В качестве адресов в командах указываются, как правило, номера ячеек запоминающего устройства, где должны находиться эти данные, но могут указываться и некоторые группы цифр, имеющие специальное назначение.
В зависимости от типа машины в состав команды может входить различное количество адресов. Наиболее распространены трехадресные команды, в которых два адреса указывают два исходных числа и третий адрес является адресом результата операции. Подробно вопрос о командах будет рассмотрен в §11.
Естественно, что в командах в качестве адресов могут указываться не только номера ячеек, хранящих в себе числа, но и номера ячеек, хранящих команды.
Программа составляется для каждой задачи заранее и вводится в машину вместе с исходными данными перед решением задачи; после этого все решение выполняется машиной автоматически. Работа машины заключается в последовательном выполнении команд программы. При выполнении каждой команды работа машины протекает в две стадии; в первой стадии очередная команда извлекается устройством управления из запоминающего устройства и во второй стадии эта команда выполняется.
Код операции воздействует на арифметическое устройство, настраивая это устройство на выполнение соответствующей операции. Адреса команды воздействуют на запоминающее устройство, настраивая его сначала на выдачу одного исходного числа из ячейки, номер которой указан в первом адресе команды, затем на выдачу второго числа из ячейки, указанной во втором адресе, а затем на прием результата операции в указанную в третьем адресе ячейку. Выбранные из запоминающего устройства числа поступают в арифметическое устройство, в котором над ними производится операция, определенная кодом операции, и результат операции посылается обратно в запоминающее устройство. Записью результата операции заканчивается выполнение данной команды, после чего устройство управления извлекает из запоминающего устройства следующую команду.
Помимо команд о выполнении арифметических операций, существуют еще команды другого рода, необходимые для автоматической работы машины: команды передачи данных между отдельными устройствами машины, выдачи данных из машины, остановки и др.
Выполнение последовательности команд программы в зависимости от конструкции машины может быть либо естественным, либо принудительным.
В машине с естественным выполнением последовательности команд команды программы располагаются в ячейках запоминающего устройства подряд, в порядке возрастания номеров ячеек, т. е. в том порядке, как они должны выполняться.
После выполнения команды, взятой из некоторой ячейки, извлекается команда из следующей ячейки, т. е. из ячейки с номером на единицу большим и т. д. до тех пор, пока не кончится программа или не встретится особая команда, изменяющая порядок выполнения команд.
В машинах с принудительным выполнением последовательности команд каждая команда, помимо информации, определяющей содержание очередной операции, несет в себе также указание о том, какую команду выполнять после нее, т. е. из какой ячейки запоминающего устройства взять следующую команду. В последнем случае команды программы не обязательно должны располагаться в ячейках запоминающего устройства подряд.
Весьма важным вопросом с точки зрения принципа работы автоматических универсальных цифровых машин является вопрос об автоматическом выборе нужного продолжения вычислений в тех случаях, когда в ходе вычислений встречаются разветвления. При расчетах часто возникает необходимость изменять ход расчета в зависимости от получающихся промежуточных результатов. Например, при решении уравнений внешней баллистики приходится пользоваться различными формулами для расчета температуры воздуха в зависимости от высоты полета снаряда. В процессе ручного счета вычислитель следит за получающейся величиной высоты и по достижении ею определенного значения переходит от одной формулы к другой.
Универсальная автоматическая вычислительная машина должна делать подобные переходы автоматически, без вмешательства человека. Это достигается введением специальных команд перехода, которые, будучи поставлены в определенные места программы, изменяют обычный порядок ее выполнения. В команде перехода указаны два номера команд программы. Машина должна перейти к выполнению одной из этих команд в зависимости от наличия некоторого признака, характеризующего результат предшествующих операций. Например, если результат положителен, выполняется команда, номер которой стоит в первом адресе в команде перехода, если же результат отрицателен, то управление передается команде, номер которой стоит на втором месте.
Признак, определяющий передачу управления командой перехода, вырабатывается в арифметическом устройстве и воздействует на устройство управления, задающее порядок выдачи команд программы. Таким образом, в цифровой вычислительной машине существует своего рода «обратная связь» между арифметическим устройством и устройством управления. Устройство управления выдает команды программы и тем самым оказывает прямое воздействие на работу всех устройств машины, в том числе и арифметического устройства.
Арифметическое устройство, выполняя операции, вырабатывает некоторые признаки результатов, которые, поступая в устройство управления, оказывают обратное влияние на работу устройств управления, изменяя порядок выдачи команд программы.Естественно, что в программе, по которой решается задача необходимо предусмотреть все возможные варианты вычислений которые должны быть выполнены при той или иной передаче управления командой перехода.
Следующим важным отличием универсальных автоматически; электронных цифровых машин от других типов машин является возможность использования циклических изменяемых программ.
Как отмечалось уже в предыдущем параграфе, составление полных развернутых программ для сложных задач, требующих миллионы операций, представило бы собой невыполнимую работу а полученные огромные программы не помещались бы в запоминающих устройствах машины.
Однако численным методам решения задач свойственна, как известно, цикличность вычислительного процесса. Это значит, что весь процесс решения состоит в многократном повторении расчетов по одним и тем же формулам, но с подстановкой в эти формулы различных числовых данных.
Для таких вычислительных процессов составляют циклические программы, т. е. программы, отдельные участки которых машина выполняет многократно.
Многократно выполняемые участки программы называются циклами; после каждого исполнения такого участка его команды автоматически видоизменяются, для того чтобы при следующем выполнении были произведены операции над новыми числами.
Так как программа, представленная в виде последовательности чисел, хранится в запоминающем устройстве машины таким же образом, как и обычные числа, то можно производить операции и над числами, представляющими собой команды программы, в частности, увеличивать или уменьшать адреса команд. Это и позволяет необходимым образом преобразовывать в ходе вычислений и многократно исполнять всю программу или ее отдельные участки (циклы). Применение циклических программ вместо развернутых позволяет значительно уменьшить объем первоначально вводимой в машину программы и резко сокращает трудоемкость процесса ее составления.
Таким образом, основными особенностями электронных цифровых машин с программным управлением являются:
а) высокая скорость выполнения операций;
б) большая емкость запоминающих устройств;
в) возможность автоматического выбора нужного продолжения вычислений в зависимости от промежуточных результатов;
г) возможность применения циклических изменяемых программ.
Теперь рассмотрим некоторые общие конструктивные особенности электронных цифровых машин.
Конструктивно любая электронная цифровая машина состоит из комплекта устройств, образующих собственно машину и связанныхмежду собой системой магистралей, и так называемых внешних устройств.
Внешние устройства служат для подготовки исходных данных к вводу в машину и для оформления результатов решения. Обычно эти устройства работают медленнее, чем сама машина, и поэтому некоторые машины имеют по несколько комплектов таких устройств, работающих параллельно и подготавливающих или оформляющих результаты сразу нескольких задач. Программа вычислений вводится в машину таким же образом, как и числовые исходные данные.
Исходные данные и программа, записанные составителем (программистом) на бумаге, переносятся оператором (человеком) на перфокарты или перфоленты. С последних эти данные уже автоматически переписываются в запоминающее устройство машины.
Вывод результатов вычислений из машины происходит в обратном порядке: в машине результаты получаются на перфокартах или перфолентах, с которых производится печатание результатов в виде цифровых таблиц.
Ко внешним устройствам относятся: перфоратор (прибор для изображения чисел при помощи системы отверстий на перфолентах или перфокартах); печатающее устройство, служащее для печатания в виде таблиц результатов решения задач, и некоторые другие устройства.
К запоминающим устройствам в электронных цифровых машинах предъявляются два основных требования, которые до настоящего времени не удалось в полной мере реализовать в одном устройстве:
а) требование высокой скорости приема и выдачи чисел;
б) требование большой емкости запоминания.
В связи с этим запоминающее устройство в машине обычно состоит из двух отдельных устройств: внутреннего запоминающего устройства и внешнего запоминающего устройства. Удобно внутреннее запоминающее устройство называть памятью машины, а внешнее запоминающее устройство — накопителем.
Память имеет небольшую емкость; у большинства современных машин она рассчитана на одновременное хранение 1024 или 2048 чисел. Память непосредственно связана с арифметическим устройством и служит для выдачи чисел, участвующих в операции, и приема результатов. Она хранит обычно только те данные, которые необходимы для ближайшего ряда вычислений.
Внешние накопители обладают практически неограниченной емкостью, но имеют значительно меньшую скорость работы. Они не связаны непосредственно с арифметическим устройством.
Помимо этого, отличительной особенностью внешних накопителей по сравнению с памятью является то, что данные в накопителе могут записываться и считываться только сравнительно большими группами, в то время как память допускает произвольную выборку любого отдельного числа. Внешние накопители являются резервом для памяти и непосредственно в вычислениях не участвуют. В процессе автоматических вычислений происходит обмен информацией между памятью и накопителем таким образом, что все данные, необходимые для очередных действий, вводятся из накопителя в память и, наоборот, данные, уже использованные в расчетах, и результаты расчетов выводятся из памяти, освобождая ее для новых данных.
Во многих машинах универсального назначения, помимо перечисленных выше основных устройств, имеются и некоторые дополнительные устройства, облегчающие программирование и решение задач на машине. Так например, ряд машин снабжен датчиком констант — специальным запоминающим устройством сравнительно небольшой емкости (200—400 чисел), предназначенным для постоянного хранения и выдачи по мере надобности некоторых часто встречающихся чисел (0, 1, pi, е и др.).
Иногда применяются отдельные устройства для постоянного хранения небольших программ для часто встречающихся вычислений (например для вычисления функции sin(x), ln(х), SQRT(х). Такие программы носят название стандартных подпрограмм. Для выполнения какой-либо стандартной подпрограммы достаточно сделать в основной программе отсылку к ней.
Несмотря на то, что решение задачи, заключающееся в последовательном осуществлении предусмотренных программой операций, выполняется автоматически, в машинах предусматривается также система ручного управления и контроля.
Ручное управление позволяет запускать и останавливать машину или выполнять по отдельным командам (по одному такту) небольшую часть введенной в машину программы в том, случае, когда возникает необходимость проверить работу машины.

Внешний вид быстродействующей электронной счетной машины (БЭСМ)

Быстродействующая электронная цифровая вычислительная машина «Стрела».

Блок-схема машины «Стрела»
На рис. 1.2 показан внешний вид быстродействующей электронной счетной машины (БЭСМ) Академии Наук СССР; на рис. 1.3 изображена быстродействующая электронная цифровая вычислительная машина «Стрела».
На рис. 1.4 приведена блок-схема машины «Стрела», иллюстрирующая порядок работы этой машины. Исходные данные и программа-решения задачи, подготовленные математической группой и записанные на соответствующих бланках, поступают к оператору, работающему на клавишном устройстве. При помощи клавишного устройства и входного перфоратора программа и исходные данные фиксируются на перфокартах. Перфорирование осуществляется дважды с целью контроля. Полученные две колоды перфокарт сравниваются и в случае их совпадения перфорация считается правильной, в случае несовпадения несовпавшие перфокарты отбрасываются и перфорация этих данных осуществляется вновь.
Комплект перфокарт с записанной на них программой и исходными данными вкладывается в читающее устройство машины, которое путем механического ощупывания отверстий воспринимает данные с перфокарт и передает их в виде электрических импульсов во внутреннее запоминающее устройство машины на электронно-лучевых трубках, названное на рисунке внутренним накопителем. Из запоминающего устройства команды программы поступают в центральное устройство управления, которое выдает их для исполнения в различные устройства машины. На рис. 1. 4 направления передачи команд для исполнения показаны светлыми стрелками, а направления передачи чисел темными стрелками.Из внутреннего запоминающего устройства числа, необходимые для каждой операции, выдаются в арифметическое устройство, а получающиеся результаты операций передаются из арифметического устройства в запоминающее устройство.
Внешний накопитель на магнитной ленте служит для длительного хранения больших групп чисел.
В машине «Стрела» запись во внешний накопитель осуществляется не непосредственно из внешних устройств, а через внутреннее запоминающее устройство. В процессе решения задач происходит периодический обмен информацией между внутренним запоминающим устройством и внешним накопителем, что показано на рисунке соответствующими стрелками.
Вывод результатов решения задач из машины «Стрела» осуществляется из внутреннего запоминающего устройства через перфоратор результатов, в котором результаты фиксируются на перфокартах. Эти перфокарты переносятся оператором в печатающее устройство, которое печатает результаты в виде числовых таблиц в десятичной системе счисления.
Кроме того, в состав машины «Стрела» входит еще пульт ручного управления и накопитель стандартных программ, служащий для длительного хранения подпрограмм типовых вычислительных процессов, часто встречающихся при решении задач.
В заключение настоящего параграфа приведем некоторые средние характеристики современных больших электронных цифровых машин универсального назначения.
- Скорость вычислений: 2—8 тысяч арифметических действий в секунду. Количество разрядов для представления чисел в машине: 8—12 (десятичных).
- Емкость памяти: 1024—2048 чисел.
- Емкость внешних накопителей: 100000—1000000 чисел.
- Количество электронных ламп: 3—5 тысяч.
- Занимаемая площадь: 100—200 м2.
- Потребляемая мощность: 50—100 кет.
- Количество обслуживающего персонала в одну смену: 2—4 инженера и 3—5 техников.
- Потребное количество математиков для подготовки задач: 50—150 человек в зависимости от характера и повторяемости задач.
- Среднее время полезной работы в течение суток: 10—16 час.
Примечания
1. Физические величины конкретны (длина, вес, напряжение электрического тока и т. п.). Математические величины абстрактны. Математические величины, входящие в какое-нибудь дифференциальное уравнение, могут принимать различный смысл в зависимости от того физического процесса, для описания которого может быть применено это дифференциальное уравнение.
2. Т. е. описываемого теми же математическими средствами.
3. Отметим, кстати, что впервые конструкция арифмометра, автоматически выполняющего операции умножения и деления, была предложена и осуществлена выдающимся русским ученым П. Л. Чебышевым.