100 великих изобретений - Константин Рыжов
Шрифт:
Интервал:
Закладка:
«Марк-1» оставался машиной переходного типа. В ней широко использовались механические элементы для представления чисел и электромеханические для управления работой машины. Как и в аналитической машине Бэббиджа, числа хранились в регистрах, состоящих из десятизубых счетных колес. Всего в «Марке-1» было 72 регистра и, кроме того, дополнительная память из 60 регистров, образованных механическими переключателями. В эту дополнительную память вручную вводились константы — числа, которые не изменялись в процессе вычисления. Каждый регистр содержал 24 колеса, причем 23 из них использовались для представления самого числа, а одно — для представления его знака. Регистры имели механизм для передачи десятков и поэтому использовались не только для хранения чисел, но и для выполнения операций над ними: число, находящееся в одном регистре, могло быть передано в другой и добавлено к находящемуся там числу (или вычтено из него). Эти операции выполнялись следующим образом. Через счетные колеса, образующие регистр, проходил непрерывно вращающийся вал, причем любое колесо с помощью электромеханических переключателей могло быть присоединено к этому валу на время, составляющее некоторую часть его оборота. К каждому числу присоединялась щетка (считывающий контакт), которая при вращении колеса пробегала по неподвижному десятисегментному контакту. Это позволяло получить электрический эквивалент цифры, хранящейся в данном разряде регистра. Для выполнения операции суммирования устанавливались такие соединения между щетками первого регистра и механизмом переключения второго регистра, что колеса последнего связывались с валом на часть периода оборота, пропорционального цифрам, находившимся в соответствующих разрядах первого регистра. Все переключатели автоматически выключались в конце фазы сложения, занимавшей не более половины периода оборота. Сам механизм суммирования по существу не отличался от сумматора голлеритовских табуляторов.
Умножение и деление производились в отдельном устройстве. Кроме того, в машине имелись встроенные блоки для вычисления функций sin x, log x и некоторых других. Скорость выполнения арифметических операций в среднем составляла: сложение и вычитание — 0, 3 секунды, умножение — 5, 7 секунды, деление — 15, 3 секунды. То есть «Марк-1» был эквивалентен примерно 20 операторам, работающим с ручными счетными машинами.
Работой «Марк-1» управляли команды, вводимые с помощью перфорированной ленты. Каждая команда кодировалась посредством пробивки отверстий в 24 колонках, идущих вдоль ленты, и считывалась с помощью контактных щеток. Пробивка на перфокартах преобразовывалась в набор импульсов. Совокупность электрических сигналов, полученных в результате «прощупывания» позиций данного ряда, определяла действия машины на данном шаге вычислений. Устройство управления на основании этих команд обеспечивало автоматическое выполнение всех вычислений в данной программе: осуществляло выборку чисел из ячеек памяти, давало команду требуемой арифметической операции, отправляло результаты вычислений в запоминающее устройство и т.д. В качестве устройства вывода Айкен использовал пишущие машины и перфораторы.
Вслед за пуском «Марк-1» Айкен и его сотрудники начали работу над «Марком-2», закончившуюся в 1947 году. В этой машине уже не было механических цифровых колес, а для запоминания чисел, выполнения арифметических операций и операций управления использовались электрические реле — всего их было 13 тысяч. Числа в «Марк-2» представлялись в двоичном виде.
Двоичная система исчисления была предложена еще Лейбницем, который считал ее самой удобной для использования в вычислительных машинах. (Трактат на эту тему был написан в 1703 году.) Им же была разработана арифметика двоичных чисел. В двоичной системе, точно так же как в привычной нам десятичной, значение каждой цифры определяется ее позицией, но вместо обычного набора из десяти цифр используются только две: 0 и 1. Для того чтобы понять двоичную запись числа, посмотрим сначала, какой смысл имеет хорошо всем известная десятичная запись. Например, число 2901 можно представить в следующем виде:
2901 = 2 • 103 + 9 • 102 + 0 • 101 + 1 • 100
То есть, цифры: 2, 9, 0, 1 указывают на то, сколько единиц находится в каждом из десятичных разрядов числа. Если же вместо десятичной системы берется двоичная, каждая цифра будет указывать на то, сколько единиц содержится в каждом из двоичных разрядов. Например, число 13 записывается в двоичной системе так:
13 = 8 + 4 + 1 = 1 • 23 + 1 • 22 + 0 • 21 + 1 • 20 = 1101
Двоичная система достаточно громоздка (скажем, число 9000 будет в ней 14-значным), но она очень удобна при выполнении арифметических операций. Вся таблица умножения в ней сводится к единственному равенству 1•1=1, а сложение имеет только три правила: 1) 0+0 дает 0; 2) 0+1 дает 1; 3) 1+1 дает 0 и перенос 1 в старший разряд.
Например:
01010
+01011
10101
Утверждение двоичной системы в вычислительной технике было обусловлено существованием простых технических аналогов двоичной цифры — электрических реле, которые могли находиться в одном из двух устойчивых состояний, первое из которых ставили в соответствие с 0, другое — с 1. Передача двоичного числа электрическими импульсами из одного машинного устройства в другое тоже очень удобна. Для этого достаточно всего двух различных по форме импульсов (или даже одного, если отсутствие сигнала считать за нуль).
Следует отметить, что релейные машины, созданные на заре истории ЭВМ, недолго использовались в вычислительной технике, поскольку были сравнительно медленнодействующими. Так же как в механической машине скорость вычислений определялась скоростью поворота цифровых колес, время работы схемы, составленной из реле, равнялось времени срабатывания и отпускания реле. Между тем даже самые быстрые реле не могли делать больше 50 срабатываний в секунду. Например, в «Марк-2» операции сложения и вычитания занимали в среднем 0, 125 секунды, а умножение требовало 0, 25 секунды. Гораздо большим быстродействием обладали электронные аналоги электромеханических реле — вакуумные лампы-триггеры. Они и стали базовыми элементами в ЭВМ первого поколения.
Триггер был изобретен еще в 1919 году русским инженером Бонч-Бруевичем и независимо от него американцами Икклзом и Джорданом. Этот электронный элемент содержал две лампы, и в каждый момент мог находиться в одном из двух устойчивых состояний. Он представлял собой электронное реле, то есть при наличии сигнала управляющего импульса включал нужную линию или цепь электрического тока. Подобно электромеханическому реле он мог использоваться для обозначения одной двоичной цифры.
Рассмотрим принцип работы электронного реле, состоящего из двух электронных ламп-триодов Л1 и Л2, которые могут находиться в одном баллоне. Напряжение с анода Л1 через сопротивление R1 подается на сетку Л2, а напряжение с анода Л2 подается на сетку Л1 через сопротивление R2. В зависимости от положения, в котором находится триггер, он дает низкий или высокий уровень напряжения на выходе. Допустим вначале, что лампа Л1 открыта, а Л2 — закрыта. Тогда напряжение на аноде открытой лампы мало по сравнению с напряжением на аноде закрытой лампы. Действительно, так как открытая лампа Л1 проводит ток, то большая часть анодного напряжения падает (по закону Ома u=i•R) на высоком анодном сопротивлении Ra, а на самой лампе (включенной с ним последовательно) падает лишь незначительная часть напряжения. Наоборот, в закрытой лампе анодный ток равен нулю, и все напряжение источника анодного напряжения падает на лампе. Поэтому с анода открытой лампы Л1 на сетку закрытой лампы падает значительно меньшее напряжение, чем с анода закрытой лампы Л2 на сетку Л1. Отрицательное напряжение Ec, поданное на сетки обеих ламп, выбирается таким, чтобы вначале лампа Л2 была закрыта, несмотря на наличие небольшого положительного напряжения, поданного с анода открытой лампы Л1 на сетку Л2. Лампа же Л1 вначале открыта, так как положительное напряжение, поданное на сетку с анода Л2, значительно больше, чем Ec. Таким образом, благодаря связи между лампами через сопротивления R1 и R2 начальное состояние является устойчивым и будет сохраняться сколько угодно долго.
Рассмотрим теперь, что произойдет в схеме, если на сетку открытой лампы Л1 подать извне отрицательное напряжение в виде короткого импульса тока такой величины, чтобы закрыть ее. При уменьшении анодного тока i1 напряжение на аноде лампы Л1 резко увеличится и, следовательно, увеличится положительное напряжение на сетке Л2. Это вызовет появление анодного тока i2 через лампу Л2, благодаря чему уменьшится анодное напряжение на лампе Л2. Понижение положительного напряжения на сетке Л1 приведет к еще большему уменьшению тока в Л1 и т.д. В результате такого лавинообразного нарастающего процесса уменьшения тока в Л1 и увеличения тока в Л2 лампа Л1 закроется, а лампа Л2 будет открыта. Таким образом, схема перейдет в новое устойчивое положение равновесия, которое будет сохраняться сколько угодно долго: «запоминается» поданный на вход 1 импульс. Возвращение электронного реле обратно в исходное состояние можно осуществить подачей импульса отрицательного напряжения на вход. Триггер имеет, следовательно, два устойчивых положения равновесия: начальное, при котором Л1 открыта, а Л2 закрыта, и так называемое «возбужденное» состояние, при котором Л1 закрыта, а Л2 открыта. Время переброса триггера из одного состояния в другое очень мало. Конденсаторы C1 и C2 служат для убыстрения срабатывания лампы.