Добавить в цитаты Настройки чтения

Страница 130 из 159

Вслед за пуском «Марк-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 служат для убыстрения срабатывания лампы.

Идея вычислительной машины, в которой в качестве запоминающего устройства использовались бы электронные лампы, принадлежит американскому ученому Джону Моучли. Еще в 30-е годы он сделал несколько несложных вычислительных устройств на триггерах. Однако впервые электронные лампы при создании вычислительной машины применил другой американский математик Джон Атанасов. Его машина была уже практически завершена в 1942 году. Но из-за войны финансирование работы было прекращено. В следующем 1943 году, работая в Муровской электротехнической школе Пенсильванского университета, Моучли вместе с Преспером Эккертом разработал свой проект электронной вычислительной машины. Артиллерийское управление США заинтересовалось этой работой и заказало Пенсильванскому университету постройку машины. Руководителем работ был назначен Моучли. В помощь ему было дано еще 11 инженеров (включая Эккерта), 200 техников и большое число рабочих. В течение двух с половиной лет, до 1946 года, этот коллектив трудился над созданием «электронно-цифрового интегратора и вычислителя» — ЭНИАК. Это было огромное сооружение, занимавшее площадь 135 квадратных метров, имевшее массу 30 тонн и энергопотребление 150 киловатт. Машина состояла из сорока панелей, содержащих 18000 электронных ламп и 1500 реле. Однако использование электронных ламп вместо механических и электромеханических элементов позволило резко увеличить скорость. На умножение ЭНИАК тратил всего 0, 0028 секунды, а на сложение — 0, 0002 секунды, то есть работал в тысячу раз быстрее самых совершенных релейных машин.

Устройство ЭНИАК в общих чертах было следующим. Каждые десять триггеров соединялись в нем в кольцо, образуя десятичный счетчик, который выполнял роль счетного колеса механической машины. Десять таких колец плюс два триггера для представления знака числа образовывали запоминающий регистр. Всего в ЭНИАК было двадцать таких регистров. Каждый регистр был снабжен схемой для передачи десятков и мог использоваться для выполнения операции суммирования и вычитания. Другие арифметические операции выполнялись в специальных блоках. Числа передавались из одной части машины в другую посредством групп из 11 проводников — по одному для каждого десятичного разряда и знака числа. Значение передаваемой цифры равнялось числу импульсов, протекавших по данному проводнику. Работой отдельных блоков машины управлял задающий генератор, вырабатывавший последовательность определенных сигналов, которые «открывали» и «закрывали» соответствующие блоки электронной машины.