84. ТУРБОРЕАКТИВНЫЙ САМОЛЕТ Турбореактивная авиация зародилась в годы Второй мировой войны, когда был достигнут предел совершенства прежних винтомоторных самолетов, оснащенных двигателями внутреннего сгорания. С каждым годом гонка за скоростью становилась все труднее, поскольку даже незначительный ее прирост требовал сотен добавочных лошадиных сил мощности двигателя и автоматически приводил к утяжелению самолета. В среднем, увеличение мощности на 1 л.с. вело за собой увеличение массы двигательной установки (самого двигателя, винта и вспомогательных средств) в среднем на 1 кг. Простые расчеты показывали, что создать винтомоторный самолет‑истребитель со скоростью порядка 1000 км/ч практически невозможно. Необходимая для этого мощность двигателя в 12000 лошадиных сил могла быть достигнута только при весе мотора порядка 6000 кг. В перспективе выходило, что дальнейший рост скорости приведет к вырождению боевых самолетов, превратит их в аппараты, способные носить лишь самих себя. Для оружия, радиооборудования, брони и запаса горючего на борту уже не оставалось места. Но даже такой ценой невозможно было получить большого прироста скорости. Более тяжелый мотор увеличивал общий вес машины, что заставляло увеличивать площадь крыла, это вело к возрастанию их аэродинамического сопротивления, для преодоления которого необходимо было повысить мощность двигателя. Таким образом, круг замыкался и скорость порядка 850 км/ч оказывалась предельно возможной для самолета с поршневым двигателем. Выход из этой порочной ситуации мог быть только один — требовалось создать принципиально новую конструкцию авиационного двигателя, что и было сделано, когда на смену поршневым самолетам пришли турбореактивные.
Принцип действия простого реактивного двигателя можно понять, если рассмотреть работу пожарного брандспойта. Вода под давлением подается по шлангу к брандспойту и истекает из него. Внутреннее сечение наконечника брандспойта суживается к концу, в связи с чем струя вытекающей воды имеет большую скорость, чем в шланге. Сила обратного давления (реакции) при этом бывает настолько велика, что пожарник зачастую должен напрягать все силы для того, чтобы удержать брандспойт в требуемом направлении. Этот же принцип можно применить в авиационном двигателе. Самым простым реактивным двигателем является прямоточный.
Представим себе трубу с открытыми концами, установленную на движущемся самолете. Передняя часть трубы, в которую поступает воздух вследствие движения самолета, имеет расширяющееся внутреннее поперечное сечение. Из‑за расширения трубы скорость поступающего в нее воздуха снижается, а давление соответственно увеличивается. Допустим, что в расширяющейся части в поток воздуха впрыскивается и сжигается горючее. Эту часть трубы можно назвать камерой сгорания. Сильно нагретые газы стремительно расширяются и вырываются через суживающееся реактивное сопло со скоростью, многократно превосходящей ту, которую воздушный поток имел на входе. За счет этого увеличения скорости создается реактивная сила тяги, которая толкает самолет вперед. Нетрудно видеть, что такой двигатель может работать лишь в том случае, если он движется в воздухе со значительной скоростью, но он не может приводиться в действие тогда, когда находится без движения. Самолет с таким двигателем должен или запускаться с другого самолета или разгоняться с помощью специального стартового двигателя. Этот недостаток преодолен в более сложном турбореактивном двигателе.
Наиболее ответственным элементом этого двигателя является газовая турбина (6), которая приводит во вращение воздушный компрессор (2), сидящий на одном с ней валу. Воздух, поступающий в двигатель, сначала сжимается во входном устройстве — диффузоре (1), затем в осевом компрессоре (2) и после этого попадает в камеру сгорания (3). Топливом обычно служит керосин, который вбрызгивается в камеру сгорания через форсунку. Из камеры продукты сгорания, расширяясь, поступают прежде всего на лопатки газовой турбины, приводя ее во вращение, а затем в сопло (7), в котором разгоняются до очень больших скоростей. Газовая турбина использует лишь небольшую часть энергии воздушно‑газовой струи. Остальная часть газов идет на создание реактивной силы тяги, которая возникает за счет истекания с большой скоростью струи продуктов сгорания из сопла. Тяга турбореактивного двигателя может форсироваться, то есть увеличиваться на короткий период времени различными способами. Например, это можно делать с помощью так называемого дожигания (при этом в поток газов позади турбины дополнительно впрыскивается топливо, которое сгорает за счет кислорода, не использованного в камерах сгорания). Дожиганием можно за короткий срок дополнительно увеличить тягу двигателя на 25‑30% при малых скоростях и до 70% при больших скоростях.
Газотурбинные двигатели начиная с 1940 года, произвели настоящую революцию в авиационной технике, но первые разработки по их созданию появились десятью годами прежде. Отцом турбореактивного двигателя по праву считается английский изобретатель Френк Уиттл. Еще в 1928 году, будучи слушателем в авиационной школе в Крэнуэлле, Уиттл предложил первый проект реактивного двигателя, оснащенного газовой турбиной. В 1930 году он получил на него патент. Государство в то время не заинтересовалось его разработками. Но Уиттл получил помощь от некоторых частных фирм, и в 1937 году по его проекту фирма «Бритиш‑Томсон‑Хаустон» построила первый в истории турбореактивный двигатель, получивший обозначение "U". Только после этого министерство авиации обратило внимание на изобретение Уиттла. Для дальнейшего совершенствования двигателей его конструкции была создана фирма «Пауэр», имевшая поддержку от государства.
Тогда же идеи Уиттла оплодотворили конструкторскую мысль Германии. В 1936 году немецкий изобретатель Охайн, в то время студент Геттингенского университета, разработал и запатентовал свой турбореактивный двигатель. Его конструкция почти ничем не отличалась от конструкции Уиттла. В 1938 году фирма «Хейнкель», принявшая Охайна на работу, разработала под его руководством турбореактивный двигатель HeS‑3B, который был установлен на самолете He‑178. 27 августа 1939 года этот самолет совершил первый успешный полет.
Конструкция He‑178 во многом предвосхищала устройство будущих реактивных самолетов. Воздухозаборник располагался в носовой части фюзеляжа. Воздух, разветвляясь, обходил кабину летчика и попадал прямым потоком в двигатель. Горячие газы истекали через сопло в хвостовой части. Крылья у этого самолета были еще деревянные, но фюзеляж — из дюралюминия. Двигатель, установленный позади кабины летчика, работал на бензине и развивал тягу 500 кг. Максимальная скорость самолета достигала 700 км/ч. В начале 1941 года Охайн разработал более совершенный двигатель HeS‑8 с тягой 600 кг. Два таких двигателя были установлены на следующем самолете He‑280V. Испытания его начались в апреле того же года и показали хороший результат — самолет развивал скорость до 925 км/ч. Однако серийное производство этого истребителя так и не началось (всего было изготовлено 8 штук) из‑за того, что двигатель все‑таки оказался ненадежным.
Тем временем «Бритиш‑Томсон‑Хаустон» выпустила двигатель W1.X, специально спроектированный под первый английский турбореактивный самолет «Глостер G40», который совершил свой первый полет в мае 1941 года (на самолете был установлен затем усовершенствованный двигатель Уиттла W.1). Английскому первенцу было далеко до немецкого. Максимальная скорость его равнялась 480 км/ч. В 1943 году был построен второй «Глостер G40» с более мощным двигателем, развивавший скорость до 500 км/ч.
По своей конструкции «Глостер» удивительно напоминал немецкий «Хейнкель». G40 имел цельнометаллическую конструкцию с воздухозаборником в носовой части фюзеляжа. Подводящий воздуховод был разделен и огибал с обеих сторон кабину летчика. Истечение газов происходило через сопло в хвосте фюзеляжа. Хотя параметры G40 не только не превосходили те, что имели в то время скоростные винтомоторные самолеты, но и заметно уступали им, перспективы применения реактивных двигателей оказались настолько многообещающими, что английское министерство авиации решило приступить к серийному выпуску турбореактивных истребителей‑перехватчиков. Фирма «Глостер» получила заказ на разработку такого самолета. В последующие годы сразу несколько английских фирм начали производить различные модификации турбореактивного двигателя Уиттла. Фирма «Ровер», взяв за основу двигатель W.1, разработала двигатели W2B/23 и W2B/26. Затем эти двигатели были куплены фирмой «Роллс‑Ройс», которая на их основе создала свои модели — «Уэллэнд» и «Дервент».
Первым в истории серийным турбореактивным самолетом стал, впрочем, не английский «Глостер», а немецкий «Мессершмитт» Ме‑262. Всего было изготовлено около 1300 таких самолетов различных модификаций, оснащенных двигателем фирмы «Юнкерс» «Юмо‑004B». Первый самолет этой серии был испытан в 1942 году. Он имел два двигателя с тягой 900 кг и развивал скорость 845 км/ч.
Английский серийный самолет «Глостер G41 Метеор» появился в 1943 году. Оснащенный двумя двигателями «Дервент» с тягой каждого по 900 кг, «Метеор» развивал скорость до 760 км/ч и имел высоту полета до 9000 м. В дальнейшем на самолеты начали устанавливать более мощные «Дервенты» с тягой около 1600 кг, что позволило увеличить скорость до 935 км/ч. Этот самолет отлично зарекомендовал себя, поэтому производство различных модификаций G41 продолжалось вплоть до конца 40‑х годов.
США в развитии реактивной авиации поначалу сильно отставали от европейских стран. Вплоть до Второй мировой войны здесь вообще не было предпринято никаких попыток создать реактивный самолет. Только в 1941 году, когда из Англии были получены образцы и чертежи двигателей Уиттла, эти работы развернулись полным ходом. Фирма «Дженерал Электрик», взяв за основу модель Уиттла, разработала турбореактивный двигатель I‑A, который был установлен на первом американском реактивном самолете P‑59A «Эркомет». Американский первенец впервые поднялся в воздух в октябре 1942 года. Он имел два двигателя, которые размещались под крыльями вплотную к фюзеляжу. Это была еще несовершенная конструкция. По свидетельству американских летчиков, испытывавших самолет, P‑59 был хорош в управлении, но летные данные его оставались неважными. Двигатель оказался слишком маломощным, так что это был скорее планер, чем настоящий боевой самолет. Всего было построено 33 таких машины. Их максимальная скорость составляла 660 км/ч, а высота полета до 14000 м.
Первым серийным турбореактивным истребителем в США стал «Локхид F‑80 Шутинг Стар» с двигателем фирмы «Дженерал Электрик» I‑40 (модификация I‑A). До конца 40‑х годов было выпущено около 2500 этих истребителей различных моделей. Скорость их в среднем составляла около 900 км/ч. Однако на одной из модификаций этого самолета XF‑80B 19 июня 1947 года впервые в истории была достигнута скорость 1000 км/ч.
В конце войны реактивные самолеты по многим параметрам еще уступали отработанным моделям винтомоторных самолетов и имели множество своих специфических недостатков. Вообще, при строительстве первых турбореактивных самолетов конструкторы во всех странах столкнулись со значительными трудностями. То и дело прогорали камеры сгорания, ломались лопатки турбин и компрессоров и, отделившись от ротора, превращались в снаряды, сокрушавшие корпус двигателя, фюзеляж и крыло. Но, несмотря на это, реактивные самолеты имели перед винтомоторными огромное преимущество — приращение скорости с увеличением мощности турбореактивного двигателя и его веса происходило гораздо стремительнее, чем у поршневого. Это решило дальнейшую судьбу скоростной авиации — она повсеместно становится реактивной. Увеличение скорости вскоре привело к полному изменению внешнего вида самолета. На околозвуковых скоростях старая форма и профиль крыла оказались неспособными нести самолет — он начинал «клевать» носом и входил в неуправляемое пике. Результаты аэродинамических испытаний и анализ летных происшествий постепенно привели конструкторов к новому типу крыла — тонкому, стреловидному.
Впервые такая форма крыльев появилась на советских истребителях. Несмотря на то что СССР позже западных государств приступил к созданию турбореактивных самолетов, советские конструкторы очень быстро сумели создать высококлассные боевые машины. Первым советским реактивным истребителем, запущенным в производство, был Як‑15. Он появился в конце 1945 года и представлял собой переоборудованный Як‑3 (известный во время войны истребитель с поршневым мотором), на который был установлен турбореактивный двигатель РД‑10 — копия трофейного немецкого «Юмо‑004B» с тягой 900 кг. Он развивал скорость около 830 км/ч.
В 1946 году на вооружение Советской армии поступил МиГ‑9, снабженный двумя турбореактивными двигателями «Юмо‑004B» (официальное обозначение РД‑20), а в 1947 году появился МиГ‑15 — первый в истории боевой реактивный самолет со стреловидным крылом, оснащенный двигателем РД‑45 (так обозначался двигатель «Нин» фирмы «Роллс‑Ройс», купленный по лицензии и модернизированный советскими авиаконструкторами) с тягой 2200 кг. МиГ‑15 поразительно отличался от своих предшественников и удивлял боевых летчиков необыкновенными, скошенными назад крыльями, огромным килем, увенчанным таким же стреловидным стабилизатором, и сигарообразным фюзеляжем. Самолет имел и другие новинки: катапультирующееся кресло и гидравлические усилители рулей. Он был вооружен скорострельной пушкой и двумя пулеметами (в более поздних модификациях — тремя пушками). Обладая скоростью 1100 км/ч и потолком в 15000 м, этот истребитель в течение нескольких лет оставался лучшим в мире боевым самолетом и вызвал к себе огромный интерес. (Позже конструкция МиГ‑15 оказала значительное влияние на проектирование истребителей в западных странах.) В короткое время МиГ‑15 стал самым распространенным истребителем в СССР, а также был принят на вооружение в армиях его союзников. Этот самолет хорошо зарекомендовал себя и во время Корейской войны. По многим параметрам он превосходил американские «Сейбры».
С появлением МиГ‑15 закончилось детство турбореактивной авиации и начался новый этап в ее истории. К этому времени реактивные самолеты освоили все дозвуковые скорости и вплотную приблизились к звуковому барьеру. 85. ВЕРТОЛЕТ В течение почти сорока лет после своего появления самолет безраздельно господствовал в воздухе. За это время многократно возросли скорость и грузоподъемность крылатых машин, которые из неуклюжих фанерных «этажерок» превратились в мощных реактивных красавцев, воплощавшие в себе самые передовые технические достижения человеческой мысли. Однако при всех своих достоинствах любой самолет имеет один важный недостаток — для того чтобы оставаться в воздухе, он должен постоянно и с достаточно большой скоростью перемещаться в горизонтальной плоскости, ведь подъемная сила его крыльев напрямую зависит от скорости движения. Отсюда необходимость разбега при взлете и пробега при посадке, которые приковывают самолет к аэродрому.
Между тем часто возникает необходимость в таком летательном аппарате, который обладает подъемной силой, не зависящей от скорости полета, может вертикально подниматься и садиться, а кроме того, способен «зависать» в воздухе. Эта ниша после долгих конструкторских поисков была занята винтокрылой машиной — вертолетом. Обладая всеми летными качествами, присущими самолету, вертолет имеет, кроме того, целый ряд замечательных специфических свойств: он может взлетать с места без предварительного разбега, неподвижно висеть в воздухе на нужной высоте, передвигаться поступательно во всех направлениях, производить повороты в любом направлении как во время поступательного движения, так и при зависании; наконец, он может садиться на маленькую площадку без последующего пробега. Создание аппарата, обладавшего комплексом этих качеств, оказалось чрезвычайно сложным делом, поскольку теория вертолета намного сложнее теории самолета. Потребовались годы упорного труда многих конструкторов, прежде чем вертолет стал уверенно чувствовать себя в воздухе и смог разделить с самолетом заботы о воздушных перевозках.
Первые винтокрылые аппараты (геликоптеры и автожиры) появились едва ли не в одно время с первыми самолетами. В 1907 году четырехвинтовой вертолет французов Бреге и Рише впервые смог оторваться от земли и приподнять над чей человека. После этого многими изобретателями были предложены различные конструкции вертолетов. Все они имели сложную многовинтовую схему, в которой несколько винтов служили для поддержания аппарата в воздухе, а еще несколько других — для того, чтобы толкать его в нужном направлении. Одновинтовая схема (к которой в наше время принадлежит 90% всех вертолетов) никем поначалу всерьез не рассматривалась. Да и была ли она реальна? Поднять аппарат в воздух с помощью одного винта — еще куда ни шло. Но как сообщить ему горизонтальное поступательное движение? Как им управлять? Те изобретатели, которые достаточно хорошо разбирались в аэродинамике, указывали еще на один крупный недостаток одновинтовой схемы — наличие реактивного момента. Дело в том, что при осуществлении привода несущего винта от двигателя, жестко соединенного с гондолой, последний должен был вращать не столько сам винт, сколько (в противоположную сторону) корпус аппарата. Казалось, что парализовать реактивный момент можно лишь тогда, когда в конструкции вертолета используется несколько несущих винтов, вращающихся в противоположных направлениях. Причем винты эти могли располагаться как отдельно друг от друга (продольная и поперечная схемы), так и на одной оси — один под другим (соосная схема). Приходили на ум и другие достоинства многовинтовой схемы. Ведь имея несколько управляющих винтов, было легче направлять машину в нужном направлении. Но вскоре обнаружилось: чем больше у вертолета винтов, тем больше у него проблем — расчет аппарата даже с одним винтом представлял из себя очень сложную задачу; учесть же взаимное влияние многих винтов оказалось вообще невозможно (по крайней мере, в первой четверти XX века, когда аэродинамика делала только первые шаги, а теория воздушного винта только‑только начинала формироваться).
Значительную лепту в преодоление многих из перечисленных проблем внес русский изобретатель Борис Юрьев. Наиболее важные свои открытия он сделал еще в ту пору, когда был студентом Московского высшего технического училища и состоял активным членом Воздухоплавательного кружка известного русского ученого Жуковского. Заинтересовавшись одновинтовой схемой, Юрьев, прежде всего, задался вопросом: как сообщить вертолету поступательное движение в нужном направлении? Большая часть изобретателей в начале XX века, как уже говорилось, была уверена, что для этого необходимо снабдить аппарат не только несущими винтами, но и пропеллерами. Однако, экспериментируя со множеством различных моделей, Юрьев установил, что с помощью наклона оси несущего винта можно получить хорошую горизонтальную скорость полета, не делая специального винта‑пропеллера с горизонтальной тягой. Поступательного движения вертолета можно добиться также наклоном вперед корпуса аппарата. В этом случае сила большого винта разлагается на две силы — подъемную и тягу, и аппарат начинает двигаться поступательно. И чем больше наклон аппарат, тем больше будет скорость полета.
Следующая проблема заключалась в том, как уравновесить реактивный момент, действующий на гондолу. Юрьев предположил, что легче всего этого можно добиться с помощью маленького винта, расположенного на хвосте вертолета и приводимого во вращение легкой передачей. За счет того, что сила, создаваемая хвостовым винтом, прилагалась к длинному плечу (относительно центра тяжести аппарата), действие ее без труда компенсировало реактивный момент. Расчеты показывали, что на это уйдет 8‑15% мощности двигателя. Юрьев предложил далее сделать лопасти этого винта с изменяемым шагом. Увеличивая или уменьшая угол наклона этих лопастей к плоскости вращения, можно было увеличивать или уменьшать тягу этого винта. При большой тяге хвостовой винт должен был пересиливать реактивный момент главного винта и разворачивать гондолу в нужном направлении.
Но наибольшую трудность представляло создание надежной системы управления. Пилот должен был иметь в своем распоряжении устройства, позволявшие ему быстро менять ориентацию машины относительно всех ее трех осей: то есть поворачивать ее в любую сторону относительно вертикальной оси, наклонять корпус вверх и вниз, а также накренять его вправо и влево. Проблема поворота разрешалась с помощью небольшого хвостового винта. Для этого, как уже отмечалось, достаточно было сделать его лопасти поворачивающимися и соединить механизм их поворота с рулями. Но как обеспечить управляемость относительно продольной и поперечной осей? Самым простым средством было бы устройство еще двух рулевых винтов, вынесенных на консолях на некоторое расстояние от центра тяжести машины и поворачивающих вертолет в нужную для пилота сторону.
Здесь винт 1 служит для компенсации реактивного момента, а также выполняет роль руля направления; винт 2 дает крены и аналогичен по своему действию элеронам (перекашивающимся плоскостям крыльев самолета), а винт 3 служит как бы рулем высоты. Но эта система, кроме того, что была чрезмерно сложной, обладала еще тем недостатком, что делала вертолет очень неустойчивым в полете. Юрьев стал размышлять над вопросом: нельзя ли основной несущий винт устроить таким образом, чтобы он сам создавал два необходимых для управления вертолетом момента? Поиски его завершились в 1911 году изобретением одного из самых замечательных в истории вертолета устройств — созданием автомата перекоса.
Принцип действия этого автомата очень прост. Каждая лопасть винта описывает при вращении круг. Если лопасти несущего винта сделать подвижными относительно своих продольных осей, таким образом, что они смогут менять угол наклона к плоскости вращения, то можно очень легко управлять движением вертолета. Действительно, если часть очерчиваемого ею круга лопасть пройдет с большим углом установки, а другую часть — с меньшим, то, очевидно, тяга с одной стороны будет больше, а с другой меньше, и несущий винт (а вместе с ним и вся машина) будет поворачиваться в соответствующую сторону.
Автомат перекоса как раз и обеспечивал необходимую установку лопастей. Для этого на валу несущего винта на карданном подвесе устанавливалось кольцо, к которому с помощью шарниров были присоединены поводки, идущие к рычагам, поворачивающим лопасти. Кольцо вращалось вместе с валом винта. С двух сторон оно было охвачено свободно сидящим на нем неподвижным кольцом. Это последнее кольцо можно было свободно поворачивать с помощью рулевых тяг и давать ему любой наклон в двух плоскостях. При этом внутреннее кольцо также наклонялось, одновременно вращаясь внутри неподвижного кольца. Легко видеть, что при этом внутреннее кольцо будет совершать за один оборот полное колебание, что в свою очередь заставит колебаться каждую связанную с ним лопасть: все они в течение оборота будут менять установочный угол от какой‑то минимальной величины до максимальной. Углы эти будут зависеть от наклона неподвижного кольца, связанного с рычагами управления. Если пилоту требовалось повернуть в какую‑либо сторону свою машину, он должен был направить в эту сторону внешнее кольцо автомата перекоса. В этом режиме угол наклона каждой лопасти изменялся независимо от других лопастей. Но легко было сделать и так, чтобы автомат перекоса в случае необходимости мог менять угол установки сразу у всех лопастей одновременно. Это требовалось, к примеру, при поломке мотора в режиме, называемом авторотацией, когда под действием воздушного потока винт падающего вертолета начинал самопроизвольно вращаться, действуя как парашют. Вертолет при этом как бы планировал (в природе этот эффект можно наблюдать у падающих семян клена). Для этого достаточно было сделать кардан автомата перекоса, скользящим вдоль вала винта (сверху вниз). Поднимая или опуская автомат перекоса, пилот сразу поворачивал все лопасти винта в одну сторону, тем самым увеличивая или уменьшая установочный угол или делая его отрицательным (то есть способным вращаться в противоположную сторону, что как раз и требовалось при авторотации).
Таким образом, к 1911 году 22‑летний студент МВТУ Борис Юрьев разработал в общих чертах всю схему одновинтового вертолета. Запатентовать ее он не смог, так как не имел на это денег. В 1912 году по проекту Юрьева студенты МВТУ собрали нелетающий макет вертолета в натуральную величину. На международной выставке воздухоплавания и автомобилизма, проходившей в том же году в Москве, эта модель была удостоена малой золотой медали. Однако средств на то, чтобы построить действующую машину, у училища не нашлось. Начавшаяся вскоре Первая мировая, а затем и Гражданская войны надолго отвлекли Юрьева от работ над его проектом.
Между тем в других странах продолжали появляться модели многовинтовых вертолетов. В 1914 году построил свой геликоптер англичанин Мумфорд. На нем впервые был осуществлен полет с поступательной скоростью. В 1924 году француз Эмишен впервые пролетел на своем вертолете по замкнутому кругу. В то же время Юрьев, заняв пост начальника Экспериментального аэродинамического отдела ЦАГИ, попробовал реализовать свою одновинтовую схему. Под его руководством Алексей Черемухин построил первый советский вертолет 1‑ЭА.
Эта машина имела два рулевых винта и два мотора «Рон» мощностью по 120 л.с. каждый. Она также была впервые снабжена автоматом перекоса. Первые же испытания 1930 года дали блестящий результат. Пилотируемый Черемухиным вертолет уверенно отрывался от земли и легко взмывал на высоту нескольких сот метров, свободно описывал в воздухе восьмерки и другие сложные фигуры. В 1932 году Черемухин поднялся на этом вертолете на высоту 605 м, поставив тем самым абсолютный мировой рекорд. Однако и этот вертолет был еще очень далек от совершенства. Он был неустойчив. Несущий винт был сделан жестким (лопасти не меняли махового движения), что делало его работу неудовлетворительной. В дальнейшем были разработаны и построены другие модели. В 1938 году под руководством Братухина был создан первый советский двухвинтовой вертолет 11‑ЭА поперечной схемы. Но в целом в 30‑е годы вертолетостроение не получило в СССР государственной поддержки. В это время большую популярность получила теория, согласно которой самолет несравненно совершеннее вертолета и по скорости, и по грузоподъемности, а вертолет — это лишь дорогая игрушка. Только в 1940 году Юрьеву с большим трудом удалось добиться разрешения на создание специального конструкторского бюро, которое он и возглавил. Вскоре загруженный большой преподавательской работой, он передал руководство отделом Ивану Братухину. Через год началась война, и создание совершенного вертолета опять отдвинулось на неопределенный срок.
В это время лидером в вертолетостроении была Германия. Талантливый конструктор Фокке создал в 30‑е годы несколько совершенных двухвинтовых вертолетов поперечной схемы. В 1937 году на его вертолете FW‑61 были установлены мировые рекорды: высоты — 2439 м, скорости — 123 км/ч и дальности — 109 км полета. В 1939 году новый вертолет Фокке достиг высоты 3427 м, а в 1941 году его машина FA‑223 была запущен в небольшую серию. Война положила конец его разработкам, но успехи «Фокке‑Вульфов» надолго приковали внимание конструкторов к поперечной схеме.
В том, что одновинтовая схема все‑таки утвердилась в вертолетостроении как главенствующая, огромная заслуга принадлежит американскому авиаконструктору Игорю Сикорскому. (Русский по происхождению он в 1919 г эмигрировал в Америку, а в 1923 г. основал здесь свою фирму «Сикорский».) За свою жизнь Сикорский разработал несколько десятков моделей самолетов, но мировую славу ему принесло создание вертолета. Именно он впервые довел до совершенства классическую одновинтовую схему Юрьева.
Свой первый вертолет S‑46 (VC‑300) Сикорский построил в 1939 году. Он сразу отказался от мысли определить все параметры аппарата путем расчетов и решил создать такой вертолет, в который в ходе летных испытаний можно было бы легко вносить конструктивные изменения. Его машина имела подчеркнуто примитивный вид: простой фюзеляж был собран в виде фермы из стальных труб, летчик открыто сидел в маленьком кресле впереди двигателя. Движение от небольшого двигателя в 65 л.с. передавалось посредством ремней вверх на редуктор, от которого приводился простой по конструкции трехлопастный и трехшарнирный несущий винт. Хвостовой однолопастный рулевой винт устанавливался на длинной коробкообразной балке.
Уже первые испытания выявили многочисленные недостатки конструкции. Автомат перекоса работал очень плохо, так как был неправильно рассчитан; из‑за этого вертолет плохо слушался руля и раскачивался при подъеме. В конце концов, он опрокинулся и сильно поломался. Тогда Сикорский отказался от автомата перекоса и ввел три рулевых винта (реализовав таким образом раннюю схему Юрьева, о которой говорилось выше). В этой конструкции вертолет показал хорошую управляемость. В мае 1940 года Сикорский публично демонстрировал свое детище в Бриджпорте перед американскими летчиками. На присутствующих его машина произвела большое впечатление: вертолет свободно перемещался вверх и вниз, вбок и назад, неподвижно зависал и разворачивался на месте. Вертолет имел только один недостаток — он упорно не хотел лететь вперед. Понадобилось несколько месяцев на то, чтобы выяснить причину его «упрямства». Оказалось, что воздушные вихри, создаваемые несущим винтом, оказывали сильное воздействие на работу рулевых винтов, так что на большой скорости они отказывались работать. Когда рулевые винты были вынесены из зоны действия основного винта, маневренность и управляемость VS‑300 сразу значительно улучшилась. Вообще, VS‑300 имел для Сикорского огромное значение. В ходе двухлетних испытательных полетов на нем были опробованы несколько систем управления, различные типы винтов и конструкций, отработана сама форма вертолета. Количество конструкционных улучшений, внесенных в первоначальную модель, было настолько значительно, что к 1942 году от прежнего вертолета остались только кресло пилота, центральная часть фюзеляжа, топливный бак и два колеса главного шасси. Благодаря этим испытаниям намного облегчилось создание следующих вертолетов.
Вскоре командование ВВС США сделало Сикорскому заказ на разработку военного вертолета, который можно было бы использовать для корректировки огня и для связи. Новый образец получил наименование VS‑316 (S‑47). Многочисленные неудачи с первой машиной убедили конструктора в том, что автомат перекоса совершенно необходим для одновинтовой схемы. На этот раз автомат был рассчитан с большой тщательностью, что и предрешило успех модели. В январе 1942 года начались летные испытания готового вертолета. В апреле машина уже демонстрировалась перед военными. Сидевший за штурвалом пилот‑испытатель Чарльз Морис сумел показать огромные возможности винтокрылого летательного аппарата. Он зависал над головами изумленных зрителей, взлетал и снова садился на старое место — прямо в выемки от колес, перемещался вперед, назад, вбок, разворачивался на месте. Потом он поднимал специальной трубкой авоську с яйцами, переносил на другое место и опускал, не разбив ни одного. Были продемонстрированы и другие трюки, например, спуск и подъем пассажира по веревочной лестнице в зависший над землей вертолет. Сейчас это, разумеется, не вызывает удивления, но в то время было в диковинку и до глубины души поражало видавших виды генералов. Один из присутствовавших высокопоставленных начальников воскликнул: «Эта штука может делать все, что делает лошадь!» А известный английский летчик‑испытатель Бри признался: «Мы присутствовали при чуде». Под конец Морис продемонстрировал крейсерскую скорость — около 130 км/ч, поднялся над землей на 1500 м, а потом осуществил посадку с выключенным двигателем на авторотации.
В мае 1942 года VS‑316 был принят на вооружение армии США под наименованием XR‑4 и запущен в серийное производство. Всего было построено 130 таких вертолетов. В 1944 году они были впервые опробованы в боевых условиях в Бирме. Война здесь шла в джунглях, и вертолет оказался единственным транспортным средством, пригодным для снабжения войск. Японские истребители развернули настоящую охоту за тихоходными «вертушками», но не смогли сбить ни одного — при малейшей опасности вертолет прижимался к земле, скрывался между деревьями и таким образом легко уклонялся от боя.
В 1943 году фирма Сикорского выпустила новый вертолет XR‑5, отличавшийся гораздо большей скоростью и грузоподъемностью. Для него впервые был разработан специальный вертолетный двигатель. Всего было построено 65 таких машин, так как из‑за окончания войны министерство обороны аннулировало свои заказы. Между тем в 1944 году у Сикорского уже была готова новая модель — S‑49 (всего их было выпущено 229 штук).
После войны вертолеты начали быстро распространяться по всему миру. Сикорский недолго сохранял монополию на их производство, поскольку только в США 300 фирм приступили к разработке своих моделей винтокрылых машин. Однако Сикорский имел перед ними важные преимущества — хорошо отработанную конструкцию и налаженное производство. Несмотря на конкуренцию, его фирма не только процветала, но и расширяла производство. В 1946 году он разработал модель S‑51 (всего выпущено 554 машины), которая нашла широчайшее применение как в военной, так и в хозяйственной сферах. Этот вертолет был впервые оснащен автопилотом, который значительно облегчил управление. Однако самый большой успех выпал на вертолеты S‑55 «Чикасо» (1949) и S‑58 «Сибэт» (1954). Только на заводе Сикорского было собрано 1828 штук вертолетов первой модели и 2261 — второй. Кроме того, множество фирм в разных странах приобрело лицензию на их производство. В 1952 году два S‑55‑х впервые совершили перелет через Атлантический океан (с одной дозаправкой на палубе авианосца) из Америки в Европу. S‑58 был признан лучшим вертолетом первого поколения. Он стал также «лебединой песней» самого Сикорского. В 1957 году 68‑летний конструктор отошел от руководства компанией.
В эти годы полным ходом развернулась разработка вертолетов в СССР. После войны Юрьев сумел добиться организации двух новых КБ: Михаила Миля, который взялся разрабатывать одновинтовой вертолет, и Николая Камова, избравшего соосную схему. В работу по проектированию вертолета включилось также КБ Яковлева. Продолжал свои работы над вертолетами поперечной схемы Братухин. В 1946 году появился его вертолет Г‑3. В 1947 году выпустил свой первый вертолет Ка‑8 Камов. Но когда в конце 40‑х годов был объявлен конкурс на лучшую советскую модель, его выиграл вертолет Миля Ми‑1, созданный по одновинтовой схеме Юрьева. В 1951 году он был запущен в производство. 86. ВЫЧИСЛИТЕЛЬНАЯ МАШИНА Механизация и машинизация вычислительных операций — одно из основополагающих технических достижений второй трети XX века. Подобно тому, как появление первых прядильных машин послужило началом великого промышленного переворота XVIII‑XIX веков, создание электронной вычислительной машины стало предвестником грандиозной научно‑технической и информационной революции второй половины XX столетия. Этому важному событию предшествовала длинная предыстория. Первые попытки собрать счетную машину предпринимались еще в XVII веке, а простейшие вычислительные приспособления, типа абака и счет, появились еще раньше — в древности и средневековье.
Хотя автоматическое вычислительное устройство относится к роду машин, его нельзя поставить в один ряд с промышленными машинами, скажем, с токарным или ткацким станком, ведь в отличие от них оно оперирует не физическим материалом (нитями или деревянными заготовками), а идеальными, не существующими в природе числами. Поэтому перед создателем любой вычислительной машины (будь то простейший арифмометр или новейший суперкомпьютер) стоят специфические проблемы, не возникающие у изобретателей в других областях техники. Их можно сформулировать следующим образом: 1. Как физически (предметно) представить числа в машине? 2. Как осуществить ввод исходных числовых данных? 3. Каким образом смоделировать выполнение арифметических операций? 4. Как представить вычислителю введенные исходные данные и результаты вычислений?
Одним из первых эти проблемы преодолел знаменитый французский ученый и мыслитель Блез Паскаль. Ему было 18 лет, когда он начал работать над созданием особой машины, с помощью которой человек, даже не знакомый с правилами арифметики, мог бы производить четыре основных действия. Сестра Паскаля, бывшая свидетельницей его работы, писала позже: «Эта работа утомляла брата, но не из‑за напряжения умственной деятельности и не из‑за механизмов, изобретение которых не вызывало у него особых усилий, а из‑за того, что рабочие с трудом понимали его». И это неудивительно. Точная механика только рождалась, и качество, которого требовал Паскаль, превышало возможности его мастеров. Поэтому изобретателю самому нередко приходилось браться за напильник и молоток или ломать голову над тем, как изменить в соответствии с квалификацией мастера интересную, но сложную конструкцию. Первая работающая модель машины была готова в 1642 году. Паскаля она не удовлетворила, и он сразу же начал конструировать новую. «Я не экономил, — писал он впоследствии о своей машине, — ни времени, ни труда, ни средств, чтобы довести ее до состояния быть полезной… Я имел терпение сделать до 50 различных моделей…» Наконец в 1645 году усилия его увенчались полным успехом — Паскаль собрал машину, которая удовлетворяла его во всех отношениях.
Что же представляла из себя эта первая в истории вычислительная машина и каким образом были разрешены перечисленные выше задачи? Механизм машины был заключен в легкий латунный ящичек. На верхней его крышке имелось 8 круглых отверстий, вокруг каждого из которых была нанесена круговая шкала. Шкала крайнего правого отверстия делилась на 12 равных частей, шкала соседнего с ним отверстия — на 20 частей, остальные шесть отверстий имели десятичное деление. Такая градуировка соответствовала делению ливра — основной французской денежной единицы того времени: 1 су = 1/20 ливра и 1 денье = 1/12 су. В отверстиях были видны зубчатые установочное колеса, находившиеся ниже плоскости верхней крышки. Число зубьев каждого колеса было равно числу делений шкалы соответствующего отверстия.
Ввод чисел осуществлялся следующим образом. Каждое колесо вращалось независимо от другого на собственной оси. Поворот производился с помощью ведущего штифта, который вставлялся между двумя смежными зубьями. Штифт поворачивал колесо до тех пор, пока не наталкивался на неподвижный упор, закрепленный в нижней части крышки и выступающий внутрь отверстия левее цифры "1" круговой шкалы. Если, например, штифт ставили между зубьями 3 и 4 и вращали колесо до упора, то оно поворачивалось на 3/10 своей полной окружности. Поворот каждого колеса передавался посредством внутреннего механизма цилиндрическим барабанам, оси которых были расположены горизонтально. На боковой поверхности барабанов были нанесены ряды цифр.
Сложение чисел, если сумма их не превышала 9, происходило очень просто и соответствовало сложению пропорциональных им углов. При сложении больших чисел должна была производиться операция, которая называется переносом десятка в старший разряд. Люди, считающие в столбик или на счетах, должны производить ее в уме. Машина Паскаля выполняла перенос автоматически, и это было ее наиболее важной отличительной чертой.
Элементами машины, относящимися к одному разряду, были установочное колесо N, цифровой барабан I и счетчик, состоящий из четырех корончатых колес B, одного зубчатого колеса K и механизма передачи десятков.
Заметим, что колеса B1, B2 и K не имеют принципиального значения для работы машины и использовались лишь для передачи движения установочного колеса N цифровому барабану I. Зато колеса B3 и B4 являлись неотъемлемыми элементами счетчика и поэтому именовались «счетными колесами». Счетные колеса двух соседних разрядов A1 и A2, были жестко насажены на оси. Механизм передачи десятков, который Паскаль назвал «перевязь», имел следующее устройство. На счетном колесе B1 младшего в машине Паскаля разряда имелись стерженьки C1, которые при вращении оси A1 входили в зацепление с зубьями вилки M, расположенной на конце двухколенного рычага D1. Этот рычаг свободно вращался на оси A2 старшего разряда, вилка же несла на себе подпружиненную собачку. Когда при вращении оси A1 колесо B1 достигало позиции, соответствующей цифре 6, стержни C1 входили в зацепление с зубьями вилки, а в тот момент, когда оно переходило от 9 к 0, вилка выскальзывала из зацепления и под действием собственного веса падала вниз, увлекая за собой собачку. Последняя при этом проталкивала счетное колесо B2 старшего разряда на один шаг вперед (то есть поворачивая его вместе с осью A2 на 36 градусов). Рычаг H, оканчивавшийся зубом в виде топорика, играл роль зацепки, препятствовавшей вращению колеса B1 в обратную сторону при поднимании вилки.
Механизм переноса действовал только при одном направлении вращения счетных колес и не допускал выполнения операции вычитания вращением колес в обратную сторону. Поэтому Паскаль заменил вычитание сложением с десятичным дополнением. Пусть, например, необходимо из 532 вычесть 87. Метод дополнения приводит к действиям: 532‑87=532‑(100‑13)=(532+13)‑100=445. Нужно только не забывать вычесть 100. На машине, имевшей определенное число разрядов, об этом, впрочем, можно было не беспокоиться. Действительно, пусть на шестиразрядной машине выполняется вычитание 532‑87. Тогда 000532+999913=1000445. Но самая первая единица потеряется сама собой, так как переносу из шестого разряда некуда деться.
Умножение также сводилось к сложению. Но поскольку в машине Паскаля слагаемое вводилось каждый раз заново, использовать ее для выполнения этой арифметической операции было крайне трудно.
Следующий этап в развитии вычислительной техники связан с именем знаменитого немецкого математика Лейбница. В 1672 году Лейбниц посетил голландского физика и изобретателя Гюйгенса и был свидетелем того, как много времени и сил отнимали у него разнообразные математические расчеты. Тогда у Лейбница и появилась мысль о создании арифмометра. «Это недостойно таких замечательных людей, — писал он, — подобно рабам, терять время на вычислительную работу, которую можно было бы доверить кому угодно при использовании машин». Однако создание такой машины потребовало от Лейбница всей его изобретательности. Его знаменитый 12‑разрядный арифмометр появился только в 1694 году и обошелся в круглую сумму — 24000 талеров.
В основе механизма машины лежал изобретенный Лейбницем ступенчатый валик, представлявший собой цилиндр с нанесенными на нем зубцами различной длины. В 12‑разрядном арифмометре таких валиков было 12 — по одному на каждый разряд числа.
Арифмометр состоял из двух частей — неподвижной и подвижной. В неподвижной помещался основной 12‑разрядный счетчик и ступенчатый валик устройства ввода. Установочная часть этого устройства, состоявшая из восьми малых цифровых кругов, была расположена в подвижной части машины. В центре каждого круга располагалась ось, на которую под крышкой машины было насажено зубчатое колесо E, а поверх крышки установлена стрелка, которая вращалась вместе с осью. Конец стрелки мог быть установлен против любой цифры круга.
Ввод данных в машину осуществлялся с помощью особого механизма. Ступенчатый валик S был насажен на четырехгранную ось с нарезкой типа зубчатой рейки. Эта рейка входила в зацепление с десятизубым колесом E, на окружности которого были нанесены цифры 0, 1…9. Поворачивая это колесо так, чтобы в прорези крышки появилась та или другая цифра, перемещали ступенчатый валик параллельно оси зубчатого колеса F основного счетчика. Если после этого поворачивали валик на 360 градусов, то в зацепление с колесом F входили одна, две и т.д. наиболее длинные ступени, в зависимости от величины сдвига. Соответственно колесо F поворачивалось на 0, 1…9 частей полного оборота; также поворачивался диск или ролик R. Со следующим оборотом валика на счетчик вновь переносилось то же число.
Вычислительные машины Паскаля и Лейбница, так же как и некоторые другие, появившиеся в XVIII столетии, не получили широкого распространения. Они были сложны, дороги, да и общественная потребность в подобных машинах была еще не очень острой. Однако по мере развития производства и общества такая потребность стала ощущаться все больше и больше, особенно при составлении различных математических таблиц. Повсеместное распространение в Европе конца XVIII — начала XIX века получили арифметические, тригонометрические и логарифмические таблицы; банки и ссудные конторы применяли таблицы процентов, а страховые компании — таблицы смертности. Но совершенно исключительное значение (в особенности для Англии — «великой морской державы») имели астрономические и навигационные таблицы. Предсказания астрономов относительно положения небесных тел были в то время единственным средством, позволявшим морякам определять местонахождение их кораблей в открытом море. Эти таблицы входили в «Морской календарь», который выходил ежегодно. Каждое издание требовало огромного труда десятков и сотен счетчиков. Незачем говорить, как важно было избежать при составлении этих таблиц ошибок. Но ошибки все равно были. Сотни и даже тысячи неверных данных содержали также самые распространенные таблицы — логарифмические. Издатели этих таблиц были вынуждены содержать специальный штат корректоров, проверявших полученные вычисления. Но и это не спасало от ошибок.
Положение было настолько серьезным, что английское правительство — первое в мире — озаботилось о создании специальной вычислительной машины для составления подобных таблиц. Разработка машины (ее называют разностной) была поручена известному английскому математику и изобретателю Чарльзу Бэббиджу. В 1822 году была изготовлена действующая модель. Поскольку значение изобретения Бэббиджа, а также значение разработанного им способа машинных вычислений очень велики, следует подробнее остановиться на устройстве разностной машины.
Рассмотрим прежде на простом примере метод, предложенный Бэббиджем для составления таблиц. Допустим, требуется вычислить таблицу четвертых степеней членов натурального ряда 1, 2, 3…
Пусть такая таблица уже вычислена для некоторых членов ряда в колонке 1 — и полученные значения занесены в колонку 2. Вычтем из каждого последующего значения предыдущее. Получится последовательное значение первых разностей (колонка 3). Проделав ту же операцию с первыми разностями, получим вторые разности (колонка 4), третьи (колонка 5) и, наконец, четвертые (колонка 6). При этом четвертые разности оказываются постоянными: колонка 6 состоит из одного и того же числа 24. И это не случайность, а следствие важной теоремы: если функция (в данном случае это функция y(x)=x4, где x принадлежит множеству натуральных чисел) есть многочлен n‑й степени, то в таблице с постоянным шагом его n‑е разности будут постоянны.
Теперь легко догадаться, что получить требуемую таблицу можно исходя из первой строки с помощью сложения. Например, чтобы продолжить начатую таблицу еще на одну строку, нужно выполнить сложения:
156+24=180
590+180=770
1695+770=2465
4096+2465=6561
В разностной машине Бэббиджа применялись те же десятичные счетные колеса, что и у Паскаля. Для изображения числа использовались регистры, состоящие из набора таких колес. Каждой колонке таблицы, кроме 1, содержащей ряд натуральных чисел, соответствовал свой регистр; всего в машине их было семь, поскольку предполагалось вычислять функции с постоянными шестыми разностями. Каждый регистр состоял из 18 цифровых колес по числу разрядов изображаемого числа и нескольких дополнительных, используемых как счетчик числа оборотов для других вспомогательных целей.
Если все регистры машины хранили значения, соответствующие последней строке нашей таблицы, то для получения очередного значения функции в колонке 2 необходимо было последовательно выполнить число сложений, равное числу сложений имеющихся разностей. Сложение в разностной машине происходило в два этапа. Регистры, содержащие слагаемые, сдвигались так, чтобы произошло зацепление зубцов счетных колес. После этого колеса одного из регистров вращались в обратном направлении, пока каждое из них не доходило до нуля. Этот этап назывался фазой сложения. По окончании этого этапа в каждом разряде второго регистра получалась сумма цифр данного разряда, но пока еще без учета возможных переносов из разряда в разряд. Перенос происходил на следующем этапе, который назывался фазой переноса, и выполнялся так. При переходе каждого колеса в фазе сложения от 9 к 0 в этом разряде освобождалась специальная защелка. В фазе переноса все защелки возвращались на место специальными рычагами, которые одновременно поворачивали колесо следующего старшего разряда на один шаг. Каждый такой поворот мог в свою очередь вызвать в каком‑то из разрядов переход от 9 к 0 и, значит, освобождение защелки, которая снова возвращалась на место, сделав перенос в следующий разряд. Таким образом, возвращение защелок на место происходило последовательно, начиная с младшего разряда регистра. Такая система получила название сложения с последовательным переносом. Все остальные арифметические операции выполнялись посредством сложения. При вычитании счетные колеса вращались в противоположную сторону (в отличие от машины Паскаля, разностная машина Бэббиджа позволяла это делать). Умножение сводилось к последовательному сложению, а деление — к последовательному вычитанию.
Описанный способ можно было применять не только для вычисления многочленов, но и других функций, например, логарифмических или тригонометрических, хотя в отличие от многочленов они не имеют строго постоянных старших разностей. Однако все эти функции можно представить (разложить) в виде бесконечного ряда, то есть многочлена простого вида, и свести вычисление их значений в любой точке к задаче, которую мы уже рассмотрели. Например, sin x и cos x можно представить в виде бесконечных многочленов:
sin x = x — x3/3! + x5/5! ‑… + (‑1)n • x2n+1/(2n+1)! +…
cos x = 1 — x2/2! + x4/4! ‑… + (‑1)n • x2n/(2n)! +…
Эти разложения истинны для всех значений функции от 0 до p/4 (p/4=3, 14/4=0, 785) с очень большой точностью. Для значений x, которые больше p/4, разложение имеет другой вид, но на каждом из этих участков тригонометрическая функция может быть представлена в виде какого‑то многочлена. Количество пар слагаемых ряда, которые принимаются в расчет при вычислениях, зависит от точности, которую желают получить. Если, к примеру, требования к точности невелики, можно ограничиться двумя‑четырьмя первыми слагаемыми ряда, а остальные отбросить. Но можно взять больше слагаемых и вычислить значение функции в любой точке с какой угодно точностью. (Заметим, что 2!=1•2=2; 3!=1•2•3=6; 4!=1•2•3•4=24 и т.д.) Так вычисление значений любой функции сводилось Бэббиджем к одной простой арифметической операции — сложению. Причем при переходе от одного участка функции к другому, когда требовалось сменить значение разности, разностная машина сама давала звонок (он звонил после выполнения определенного числа шагов вычисления).
Уже одно создание разностной машины обеспечило бы Бэббиджу почетное место в истории вычислительной техники. Однако он не остановился на этом и начал разрабатывать конструкцию гораздо более сложной — аналитической машины, которая стала прямой предшественницей всех современных ЭВМ. В чем же заключалась ее особенность? Дело в том, что разностная машина, по существу, оставалась еще только сложным арифмометром и требовала для своей работы постоянного присутствия человека, который держал в своей голове всю схему (программу) расчетов и направлял действия машины по тому или иному пути. Понятно, что это обстоятельство являлось определенным тормозом при выполнении расчетов. Около 1834 года Бэббиджу пришла в голову мысль: «Нельзя ли создать машину, которая была бы универсальным вычислителем, то есть выполняла бы все действия без вмешательства человека и в зависимости от полученного на определенном этапе решения сама выбирала бы дальнейший путь вычисления?»
По существу это означало создание программно‑управляемой машины. Та программа, которая до этого находилась в голове оператора, теперь должна была быть разложена на совокупность простых и ясных команд, которые бы заранее вводились в машину и управляли ее работой. Никто и никогда еще не пытался создать подобной вычислительной машины, хотя сама идея программно‑управляемых устройств уже была в то время реализована. В 1804 году французский изобретатель Жозеф Жаккар придумал ткацкий станок с программным управлением. Принцип его работы сводился к следующему. Ткань, как известно, представляет собой переплетение взаимно перпендикулярных нитей. Переплетение это осуществляется на ткацком станке, в котором нити основы (продольные) продеты через глазки — отверстия в проволочных петлях, а поперечные продергиваются через эту основу в определенном порядке при помощи челнока. При самом простом переплетении петли через одну поднимаются, соответственно приподнимаются и продетые через них нити основы. Между поднятыми и оставшимися на месте нитями образуется промежуток, в который челнок протягивает за собой нить утка (поперечную). После чего поднятые петли опускаются, а остальные приподнимаются. При более сложном узоре переплетения нити следовало приподнимать в других различных комбинациях. Опусканием и подниманием нитей основы вручную занимался ткач, что обычно отнимало много времени. После 30‑летней настойчивой работы Жаккар изобрел механизм, позволявший автоматизировать движение петель в соответствии с заданным законом при помощи набора картонных карт с пробитыми в них отверстиями — перфокарт. В станке Жаккара глазки были связаны с длинными иглами, упирающимися в перфокарту. Встречая отверстия, иглы продвигались вверх, в результате чего связанные с ними глазки приподнимались. Если же иглы упирались в карты в том месте, где отверстий нет, они оставались на месте, удерживая так же связанные с ними глазки. Таким образом, промежуток для челнока, а тем самым и узор переплетения нитей определялся набором отверстий на соответствующих управляющих картах.
Этот же принцип управляющих перфокарт Бэббидж предполагал использовать в своей аналитической машине. Над ее устройством он работал в течение почти сорока лет: с 1834‑го до конца своей жизни в 1871 году, но так и не смог ее закончить. Однако после него осталось более 200 чертежей машины и ее отдельных узлов, снабженных множеством подробных примечаний, объясняющих их работу. Все эти материалы представляют огромный интерес и являются одним из удивительнейших в истории техники примеров научного предвидения.
По мысли Бэббиджа, аналитическая машина должна была включать четыре основных блока.
Первое устройство, которое Бэббидж назвал «мельница», было предназначено для выполнения четырех основных арифметических действий. Второе устройство — «склад» — предназначалось для хранения чисел (исходных, промежуточных и окончательных результатов). Исходные числа направлялись в арифметическое устройство, а промежуточные и конечные результаты получались из него. Основным элементом двух этих блоков были регистры из десятичных счетных колес. Каждое из них могло устанавливаться в одном из десяти положений и таким образом «запоминать» один десятичный знак. Память машины должна была включать в себя 1000 регистров по 50 числовых колес в каждом, то есть в ней можно было хранить 1000 пятидесятизначных чисел. Скорость выполняемых вычислений напрямую зависела от скорости вращения цифровых колес. Бэббидж предполагал, что сложение двух 50‑разрядных чисел будет занимать 1 секунду. Для переноса чисел из памяти в арифметическое устройство и обратно предполагалось использовать зубчатые рейки, которые должны были зацепляться с зубцами на колесах. Каждая рейка передвигалась до тех пор, пока колесо не занимало нулевое положение. Движение передавалось стержнями и связями в арифметическое устройство, где посредством другой рейки использовалось для перемещения в нужное положение одного из колес регистра. Базовой операцией аналитической машины, как и разностной, являлось сложение, а остальные сводились к ней. Для того чтобы вращать множество шестеренок, требовалось значительное внешнее усилие, которое Бэббидж рассчитывал получить за счет использования парового двигателя.
Третье устройство, управлявшее последовательностью операций, передачей чисел, над которыми производились операции, и выводом результатов, конструктивно представляло из себя два жаккаровых перфокарточных механизма. Перфокарты Бэббиджа отличались от перфокарт Жаккара, которыми управлялась только одна операция — подъем нити для получения нужного узора в процессе изготовления ткани. Управление работой аналитической машины включало различные виды операций, для каждой из которых требовался специальный вид перфокарт. Бэббидж выделил три основных вида перфокарт: операционные (или карты операций), переменные (или карты переменных) и числовые. Операционные перфокарты осуществляли управление машиной. Согласно выбитым на них командам происходило сложение, вычитание, умножение и деление чисел, находившихся в арифметическом устройстве.
Одной из наиболее дальновидных идей Бэббиджа было введение в совокупность команд, задаваемых последовательностью операционных перфокарт, команды условного перехода. Самого по себе программного управления (без использования условного перехода) было бы недостаточно для эффективной реализации сложной вычислительной работы. Линейная последовательность операций строго определена во всех пунктах. Это дорога известна во всех деталях до самого конца. Понятие «условный переход» означает переход вычислительной машины к другому участку программы, если предварительно выполняется некоторое условие. Имея возможность использовать команду условного перехода, составитель машинной программы был не обязан знать, по какой ступени расчета изменится признак, который оказывает влияние на выбор хода расчета. Применение условного перехода позволяло у каждой развилки дороги анализировать сложившуюся ситуацию и на основе этого выбирать тот или иной путь. Условные команды могли иметь самый различный вид: сравнение чисел, выборка требуемых численных значений, определение знака числа и т.п. Машина производила арифметические операции, сравнивала между собой полученные числа и сообразно с этим проводила дальнейшие операции. Таким образом, машина могла перейти к другой части программы, пропустить часть команд или вновь вернуться к выполнению какого‑либо участка программы, то есть организовать цикл. Введение команды условного перехода знаменовало собой начало использования в машине логических, а не только вычислительных операций.
С помощью второго вида перфокарт — переменных (или, по терминологии Бэббиджа, «карт переменных») осуществлялась передача чисел между памятью и арифметическим устройством. На этих картах указывались не сами числа, а лишь номера регистров памяти, то есть ячеек для хранения одного числа. Регистры памяти Бэббидж называл «переменными», указывая этим, что содержание регистра меняется в зависимости от хранящегося в нем числа. Аналитическая машина Бэббиджа использовала три вида карт переменных: для передачи числа в арифметическое устройство с сохранением его далее в памяти, для аналогичной операции, но без сохранения в памяти, и для ввода числа в память. Они получили названия: 1) «нулевая карта» (число вызывается из регистра памяти, после чего в регистре устанавливается нулевое значение); 2) «сохраняющая карта» (число вызывается из памяти без изменения содержания регистра); 3) «получающая карта» (число передается из арифметического устройства в память и записывается в один из регистров). При работе машины на одну операционную перфокарту приходилось в среднем три карты переменных. Они указывали номера ячеек памяти (адреса, по современной терминологии), в которых хранились два исходных числа, и номер ячейки, куда записывать результат.
Числовые перфокарты представляли основной вид перфокарт аналитической машины. С их помощью осуществлялся ввод исходных чисел для решения некоторой задачи и новых данных, которые могли потребоваться по ходу вычислений.
После выполнения предложенных вычислений машина выбивала ответ на отдельную перфокарту. Эти перфокарты оператор складывал по порядку их номеров и в дальнейшем использовал в работе (они являлись как бы ее внешней памятью). Например, когда в ходе вычислений машине требовалось значение логарифма 2303, она показывала его в особом окошечке и давала звонок. Оператор находил нужную перфокарту со значением этого логарифма и вводил в машину. «Все карты, — писал Бэббидж, — однажды использованные и изготовленные для одной задачи, могут быль использованы для решения тех же задач с другими данными, поэтому нет необходимости готовить их во второй раз — они могут тщательно сохраняться для будущего использования; со временем машина будет иметь собственную библиотеку».
Четвертый блок был предназначен для приема исходных чисел и выдачи конечных результатов и представлял из себя несколько устройств, обеспечивающих операции ввода‑вывода. Исходные числа вводились в машину оператором и поступали в ее запоминающее устройство, из которого извлекались и поступали на выход конечные результаты. Машина могла выводить ответ на перфокарте или печатать на бумаге.
В заключение следует отметить, что если разработка аппаратной части аналитической машины связана исключительно с именем Бэббиджа, то программирование решения задач на этой машине — с именем его хорошего друга — леди Адой Лавлейс, родной дочери великого английского поэта Байрона, которая горячо увлекалась математикой и великолепно разбиралась в сложных научных и технических проблемах. В 1842 году в Италии была напечатана статья молодого математика Менабреа с описанием аналитической машины Бэббиджа. В 1843 году леди Лавлейс перевела эту статью на английский язык, снабдив ее обширным и глубоким комментарием. Чтобы проиллюстрировать работу машины, леди Лавлейс приложила к статье составленную ею программу для вычисления чисел Бернулли. Ее комментарий по существу является первой в истории работой по программированию.
Аналитическая машина оказалась очень дорогим и сложным устройством. Английское правительство, поначалу финансировавшее работы Бэббиджа, вскоре отказало ему в помощи, поэтому он так и не смог завершить свой труд. Была ли оправдана сложность этой машины? Не во всем. Многие операции (особенно ввод‑вывод чисел и передача их от одного устройства к другому) значительно упростились бы, если бы Бэббидж использовал электрические сигналы. Однако его машина была задумана как чисто механическое устройство без каких бы то ни было электрических элементов, что ставило ее изобретателя часто в очень трудное положение. Между тем электромеханическое реле, ставшее позже основным элементом вычислительных машин, в это время уже было изобретено: его придумали в 1831 году одновременно Генри и Сальваторе даль Негро.
Применение электромеханических реле в вычислительной технике ведет свою историю с изобретения американца Германа Голлерита, создавшего комплекс устройств, предназначенных для обработки большого объема данных (например, результатов переписи). Потребность в такой машине была очень велика. Например, результаты переписи 1880 года обрабатывались в США 7, 5 лет. Такой значительный срок объяснялся тем, что необходимо было отсортировать громадное количество карточек (по одной на каждого из 50 миллионов жителей) с очень большим — 210 рубрик — набором вариантов ответов на задаваемые в карточке вопросы. Об этих проблемах Голлерит знал не понаслышке — он сам был сотрудником Бюро цензов США — статистического учреждения, ведавшего проведением переписей населения и обработкой их результатов.
Много работая над сортировкой карточек, Голлерит пришел к мысли механизировать этот процесс. Сперва он заменил карточки перфокартами, то есть вместо карандашной пометки варианта ответа придумал пробивать отверстие. С этой целью он разработал специальную 80‑колонную перфокарту, на которую в форме пробивок наносились все сведения об одном человеке, регистрируемые в ходе переписи. (Форма этой перфокарты не претерпела с тех пор существенных изменений.) Обычно для ответа на один вопрос использовалась одна полоска перфокарты, что позволяло фиксировать десять вариантов ответа (например, на вопрос о вероисповедании). В некоторых случаях (например, на вопрос о возрасте) можно было использовать две колонки, что давало сто вариантов ответа.
Вторая идея Голлерита была следствием первой — он создал первый в мире счетно‑перфорационный комплекс, включавший в себя входной перфоратор (для пробивки отверстий) и табулятор с устройством для сортировки перфокарт. Перфорация осуществлялась вручную на пробойнике, состоявшем из чугунного корпуса с приемником для карты и собственно пробойника. Над приемником помещалась пластина с несколькими рядами отверстий; при нажиме рукояти пробойника над одним из них карта под пластинкой пробивалась нужным образом. Сложный пробойник пробивал на группе карт общие данные одним нажатием руки. Сортировочная машина представляла собой несколько ящиков с крышками. Карты продвигались вручную между набором пружинных штырей и резервуарами, наполненными ртутью. Когда штырь попадал в отверстие, он касался ртути и замыкал электрическую цепь. При этом приподнималась крышка определенного ящика, и оператор клал туда карту. Табулятор (или суммирующая машина) прощупывал отверстия на перфокартах, воспринимая их как соответствующие числа и подсчитывая их. Принцип его действия был аналогичен сортировочной машине и базировался на использовании электромеханического реле (в качестве них также применялись пружинные штыри и чашечки с ртутью). Когда стержни при движении перфокарт попадали через отверстия в чашечки с ртутью, электрическая цепь замыкалась, и электрический сигнал передавался на счетчик, добавлявший к имеющемуся в нем числу новую единицу. Каждый счетчик имел циферблат со стрелкой, которая перемещалась на единицу шкалы при обнаружении отверстия. Если в табуляторе было 80 счетчиков, он мог одновременно подсчитывать результаты по 8 вопросам (с десятью вариантами ответов на каждый из них). Для подсчета результатов по следующим 8 вопросам та же перфокарта вновь пропускалась через табулятор другим своим участком. За один прогон сортировалось до 1000 карточек в час.
Первый патент (на идею) Голлерит получил в 1884 году. В 1887 году его машина была испытана в Балтиморе при составлении таблиц смертности населения. В 1889 году состоялось решающее испытание системы — проводилась пробная перепись в четырех районах города Сан‑Луи. Машина Голлерита намного опередила две конкурирующие с ней ручные системы (она работала в 10 раз быстрее). После этого правительство США заключило с Голлеритом договор о поставке оборудования к переписи 1890 года. Результаты этой переписи благодаря табулятору были обработаны всего за два года. Вследствие этого машина очень быстро получила международное признание и употреблялась во многих странах при обработке данных переписи населения.
В 1902 году Голлерит создал автоматический табулятор, в котором карты подавались не вручную, а автоматически, и модернизировал свою сортировочную машину. В 1908 году он создал принципиально новую модель суммирующей машины. Вместо чашек с ртутью здесь применялись контактные щетки, с помощью которых замыкались электрические цепи электромагнитов. Последние обеспечивали соединение и разъединение непрерывно вращающегося вала с цифровыми колесами счетчика сумматора. Цифровые колеса поворачивались через зубчатые зацепления от непрерывно вращающегося вала, который нес на себе скользящие кулачковые муфты, управляемые электромагнитами. Когда под контактной щеткой оказывалось отверстие, замыкалась электрическая цепь соответствующего электромагнита, и он включал муфту, которая подсоединяла цифровое колесо к вращающемуся валу, после чего содержимое счетчика в данном разряде увеличивалось на число, пропорциональное одному повороту колеса. Передача десятков осуществлялась примерно так же, как в разностной машине Бэббиджа.
Дело, начатое Голлеритом, имеет продолжение и в наше время. Еще в 1896 году он основал фирму «Табьюлейтинг Машин Компани», специализирующуюся на выпуске счетно‑перфорационных машин и перфокарт. В 1911 году, после того как Голлерит оставил предпринимательскую деятельность, его фирма слилась с тремя другими и была преобразована в широко известную сейчас во всем мире корпорацию IBM — крупнейшего разработчика в области вычислительной техники.
В табуляторе Голлерита впервые были использованы электромеханические элементы. Дальнейшее развитие вычислительной техники было связано с широким и многогранным применением электричества. В 1938 году немецкий инженер Конрад Цузе создал первую в истории релейную электронно‑вычислительную машину Z1 на телефонных реле (записывающее устройство в ней оставалось механическим). В 1939 году появилась более совершенная модель Z2, а в 1941 году Цузе собрал первую в мире действующую вычислительную машину с программным управлением, в которой использовалась двоичная система. Все эти машины погибли во время войны и поэтому не оказали большого влияния на дальнейшую историю вычислительной техники.
Независимо от Цузе постройкой релейных вычислительных машин занимался в США Говард Айкен. Будучи аспирантом Гарвардского университета, Айкен при работе над своей диссертацией был вынужден делать много сложных вычислений. Чтобы сократить время на вычислительную работу, он стал придумывать несложные машины для автоматического решения частных задач. В конце концов он пришел к идее автоматической универсальной вычислительной машины, способной решать широкий круг научных задач. В 1937 году его проектом заинтересовалась фирма IBM. В помощь Айкену была выделена бригада инженеров. Вскоре началась работа над постройкой машины «Марк‑1». Реле, счетчики, контактные и печатающие устройства ввода и вывода перфокарт были стандартными частями табуляторов, выпускаемых IBM. В 1944 году машина была собрана и передана Гарвардскому университету.
«Марк‑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 записывается в двоичной системе так:
Двоичная система достаточно громоздка (скажем, число 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 проводников — по одному для каждого десятичного разряда и знака числа. Значение передаваемой цифры равнялось числу импульсов, протекавших по данному проводнику. Работой отдельных блоков машины управлял задающий генератор, вырабатывавший последовательность определенных сигналов, которые «открывали» и «закрывали» соответствующие блоки электронной машины.
Ввод чисел в машину производился при помощи перфокарт. Программное же управление осуществлялось посредством штекеров и наборных полей (коммутационной доски) — таким образом отдельные блоки машины соединялись между собой. Это было одним из существенных недостатков описываемой конструкции. На подготовку машины к работе — соединение блоков на коммутационной доске — уходило до нескольких дней, тогда как задача порой решалась всего за несколько минут. В целом ЭНИАК была еще достаточно ненадежной и несовершенной вычислительной машиной. Она часто выходила из строя, причем поиск неисправности затягивался порой на несколько суток. Кроме того, эта машина не могла хранить информацию.
Для устранения последнего недостатка Эккерт в 1944 году выдвинул идею хранимой в памяти программы. Это была одна из важнейших технических находок в истории вычислительной техники. Суть ее заключалась в том, что команды программы должны были представляться в виде числового кода, то есть кодироваться в двоичной системе (как и числа) и вводиться в машину, где бы они хранились вместе с исходными числами. Для запоминания этих команд и операций с ними предполагалось использовать те же устройства — триггеры, что и для действия с числами. Из памяти отдельные команды должны были извлекаться в устройство управления, где их содержание расшифровывалось и использовалось для передачи чисел из памяти в арифметическое устройство для выполнения операций над ними и отсылки результатов обратно в память.
Между тем по окончании Второй мировой войны одна за другой стали появляться новые электронные вычислительные машины. В 1948 году англичане Килбурн и Вильямс из Манчестерского университета создали машину «МАРК‑1», в которой впервые была реализована идея хранимой программы. В 1947 году Эккерт и Моучли основали свою фирму, а в 1951 году наладили серийный выпуск своих машин UNIVAC‑1. В 1951 году появилась первая советская ЭВМ МЭСМ академика Лебедева. Наконец, в 1952 году свой первый промышленный компьютер IBM 701 выпустила фирма IBM. Все эти машины имели в своей конструкции много общего. Об этих общих принципах работы всех ЭВМ первого поколения мы теперь и поговорим.
Электронные вычислительные машины, как известно, совершили настоящий переворот в области применения математики для решения важнейших проблем физики, механики, астрономии, химии и других точных наук. Те процессы, которые прежде совершенно не поддавались просчитыванию, стали вполне успешно моделироваться на вычислительных машинах. Решение любой задачи сводилось при этом к следующим последовательным шагам: 1) исходя из значения физической, химической и прочей сущности какого‑либо исследуемого процесса формулировалась задача в виде алгебраических формул, дифференциальных или интегральных уравнений или других математических соотношений; 2) с помощью численных методов задача сводилась к последовательности простых арифметических операций; 3) составлялась программа, которая определяла строгий порядок выполнения действий в установленной последовательности. (ЭВМ осуществляла в принципе тот же порядок действий, что и человек, работающий на арифмометре, но в тысячи или десятки тысяч раз быстрее.) Команды составленной программы записывались с помощью специального кода. Каждая из этих команд определяла какое‑либо определенное действие со стороны машины.
Любая команда, кроме кода проводимой операции, содержала в себе адреса. Обычно их было три — номера ячеек памяти, откуда брались два исходных числа (1‑й и 2‑й адрес), а затем номер ячейки, куда отправлялся полученный результат (3‑й адрес). Таким образом, к примеру, команда +/17/25/32 указывала, что следует сложить числа, находящиеся в 17‑й и 25‑й ячейках и результат направить в 32‑ю ячейку. Могла использоваться и одноадресная команда. В этом случае для выполнения арифметической операции над двумя числами и отсылки полученного результата требовалось три команды: первая команда вызывала одно из чисел из памяти в арифметическое устройство, следующая команда вызывала второе число и проводила заданную операцию над числами, третья команда отправляла полученный результат в память. Так осуществлялась работа вычислительной машины на программном уровне.
Вычислительные процессы при этом протекали следующим образом. Управление работой ЭВМ осуществлялось с помощью электронных ключей и переключателей, называемых логическими схемами, причем каждый электронный ключ при получении сигнала управляющего импульса напряжения включал нужную линию или цепь электрического тока. Простейшим электронным ключом могла служить уже трехэлектродная электронная лампа, которая заперта, когда на ее сетку подается большое отрицательное напряжение, и открывается, если на сетку подается положительное напряжение. Ее работу при этом можно представить как управляющий вентиль, который пропускает через себя импульс A, когда на второй его вход подан управляющий импульс B. Когда же имеется только один импульс тока A или B, то вентиль закрыт и импульс не проходит на его выход. Таким образом, только при совпадении по времени обоих импульсов A и B на выходе появится импульс. Такую схему называют схемой совпадений, или логической схемой "и". Наряду с ней в вычислительной машине используется целый набор других логических схем. Например, схема «или», которая дает на выходе импульс при появлении его на линии A или B или одновременно на обеих линиях. Другая логическая схема — схема «нет». Она, наоборот, запрещает прохождение импульса через вентиль, если одновременно подан другой запрещающий импульс, запирающий лампу.
С использованием двух этих схем можно собрать одноразрядный сумматор. Предположим, что импульсы A и B одновременно передаются на схемы «нет» и "и", причем со схемой «нет» связана шина (провод) «сумма», а со схемой "и" шина «перенос». Предположим, что на вход A поступает импульс (то есть единица), а на вход B не поступает. Тогда «нет» пропустит импульс на шину «сумма», а схема "и" не пропустит его, то есть в разряде будет значиться "1", что и соответствует правилу двоичного сложения. Предположим, что на входы A и B одновременно поступают импульсы. Это означает, что код числа A есть "1" и код B тоже "1". Схема «нет» не пропустит двух сигналов и на выходе «сумма» будет "0" Зато схема "и" пропустит их, и на шине «перенос» будет импульс, то есть "1" передастся в сумматор соседнего разряда.
В первых ЭВМ основным элементом памяти и арифметического суммирующего устройства служили триггеры. Триггерная схема, как мы помним, обладала двумя устойчивыми состояниями равновесия. Приписывая одному состоянию значение кода "0", а другому значение кода "1", можно было использовать триггерные ячейки для временного хранения кодов. В суммирующих схемах при подаче импульса на счетный вход триггера он переходил из одного состояния равновесия в другое, что полностью соответствовало правилам сложения для одного двоичного разряда (0+0=0; 0+1=1; 1+0=1; 1+1=0 и перенос единицы в старший разряд). При этом первоначальное положение триггера рассматривалось как код первого числа, а подаваемый импульс — как код второго числа. Результат образовывался на триггерной ячейке. Для того чтобы осуществить суммирующую схему для нескольких двоичных разрядов, необходимо было обеспечить перенос единицы из одного разряда в другой, что и осуществлялось специальной схемой.
Сумматор был главной частью арифметического устройства машины. Сумматор параллельного сложения кодов чисел сразу по всем разрядам имел столько одноразрядных сумматоров, сколько двоичных разрядов содержал код числа. Складываемые числа A и B поступали в сумматор из запоминающих устройств и сохранялись там с помощью триггеров. Регистры также состояли из ряда соединенных между собой триггеров T1, T2, T3, Т'1, Т'2 и т.д., в которые код числа подавался из записывающего устройства параллельно для всех разрядов. Каждый триггер хранил код одного разряда, так что для хранения числа, имеющего n двоичных разрядов, требовалось n электронных реле. Коды чисел, хранящиеся в регистрах, складывались одновременно по каждому разряду с помощью сумматоров S1, S2, S3 и т.д., число которых было равно числу разрядов. Каждый одноразрядный сумматор имел три входа. На первый и второй входы подавались коды чисел A и B одного разряда. Третий вход служил для передачи кода переноса из предыдущего разряда.
В результате сложения кодов данного разряда на выходной шине сумматора получался код суммы, а на шине «перенос» код "1" или "0" для переноса в следующий разряд. Пусть, например, требовалось сложить два числа A=5 (в двоичном коде 0101) и B=3 (в двоичном коде 0011). При параллельном сложении этих чисел на входы A1, A2 и A3 сумматора соответственно подавались коды A1=1, A2=0, A3=1, A4=0 и B1=1, B2=1, B3=0, B4=0. В результате суммирования кодов первого разряда в сумматоре S1 получим 1+1=0 и код переноса "1" в следующий разряд. Сумматор S2 суммировал три кода: коды A2, B2 и код переноса из предыдущего сумматора S1. В результате получим 0+1+1=0 и код "1" переноса в следующий третий разряд.
Сумматор S3 складывает коды третьего разряда чисел A и B и код переноса "1" из второго разряда, то есть будем иметь 1+0+1=0 и снова перенос в следующий четвертый разряд. В итоге сложения на шинах «сумма» получим код 1000, что соответствует числу 8.
В 1951 году Джой Форрестер внес важное усовершенствование в устройство ЭВМ, запатентовав память на магнитных сердечниках, которые могли запоминать и хранить сколь угодно долго поданные на них импульсы.
Сердечники изготовляли из феррита, который получался смешением окиси железа с другими примесями. На сердечнике имелось три обмотки. Обмотки 1 и 2 служили для намагничивания сердечника в том или ином направлении с помощью подачи на них импульсов различной полярности. Обмотка 3 являлась обмоткой выхода ячейки, в которой индуцировался ток при перемагничивании сердечника. В каждом сердечнике путем его намагничивания хранилась запись одного импульса, соответствующая одному разряду какого‑нибудь числа. Из сердечников, соединенных в определенном порядке, всегда можно было с большой скоростью выбрать нужное число. Так, если через обмотку сердечника подавали положительный сигнал, то сердечник намагничивается положительно, при отрицательном сигнале намагничивание было отрицательным. Таким образом, состояние сердечника характеризовалось записанным сигналом. При считывании через обмотку подавался сигнал определенной полярности, например положительный. Если перед этим сердечник был намагничен отрицательно, то происходило его перемагничивание — и в выходной обмотке (по закону электромагнитной индукции) возникал электрический ток, который усиливался усилителем. Если же сердечник был намагничен положительно, то изменения его состояния не происходило — и в выходной обмотке электрический сигнал не возникал. После выборки кода необходимо было восстановить первоначальное состояние сердечника, что и осуществлялось специальной схемой. Этот вид запоминающего устройства позволял производить выборку чисел за несколько микросекунд.
Большие объемы информации хранились на внешнем носителе, например на магнитной ленте. Запись электрических импульсов здесь была аналогична записи звука на магнитофон: через магнитные головки пропускали импульсы тока, которые намагничивали соответствующие места проходившей ленты. При считывании поле остаточного намагничивания, проходя под головками, наводило в них электрические сигналы, которые усиливались и поступали в машину. Точно так же информация записывалась на магнитный барабан, покрытый ферромагнитным материалом. В этом случае информацию можно было найти быстрее.