Решение нашел в 1952 году Джон фон Нейман, также упоминаемый нами раньше как ученый получивший формулу Больцмана через квантово-механические соотношения. Фон Нейман тоже делал свой компьютер, правда не в Америке, а в Англии, закрепив за этой страной второе место в мире в области «хайтека» которое она удерживает до сих пор. Он был введен в строй в 1948 году, но в отличии от «Эниака» стал первым компьютером с современной архитектурой. В чем состояло «решение фон Неймана»? Для ответа на этот вопрос нам предстоит заглянуть в его эпохальную книгу «Probabilistic Logics and the Synthesis of Reliable Organisms from Unreliable Components»[289] («Вероятностная логика и синтез надежных организмов из ненадежных компонент»). Само это название может показаться странным непосвященному человеку, действительно, как можно создать надежное из ненадежного? Кибернетика утверждает что возможно. Нет, речь не идет о неких совершенно надежных системах, всё-таки звенья в них входящие неидеальны. Каждое звено может сломаться, речь идет о некой максимально достижимой надежности возможной в данных условиях. Вот его описание исходной ситуации: «Как механические, так и электрические устройства статистически подвержены возможности отказа в работе, то же самое, вероятно, относится также к нейронам животных. Поэтому желательно найти такую основу для наших построений, которая была бы лучшим приближением к действительности, и изучать эту новую ситуацию. Самым простым предположением относительно ошибки является следующее: с каждым основным органом [в нашем случае, орган системы — отдельный человек] связано некоторое положительное число — вероятность того, что этот орган допускает ошибку. При этом предполагается, что ошибка появляется статистически, независимо от общего состояния схемы и от ошибок других органов. Мы тоже рассматривали человека как изолированную субстанцию, однако потом показывали как на него влияют связи в которых он запутывается все сильнее и сильнее, а в самом начале, в примере с телевизором, показали, как нарушение работы одного элемента может повлечь нарушения в работе остальных. Он дает аналогичную статистическую трактовку: «Гораздо ближе к действительности более общее определение о том, что ошибка отдельных органов статистически зависит от общего состояния схемы и друг от друга. /…/ Каждый нейрон имеет вероятность несрабатывания. /…/ Важно подчеркнуть, что трудности, которые появляются с допущением ошибок, состоят не столько в возможности получения ложной информации, сколько в том результаты вообще могут не относиться к делу».
Попытаемся, насколько это возможно, в общих чертах объяснить что именно предложил фон Нейман, тем более что сейчас в компьютерной технике разбираются многие, а её основы преподают даже в неспециализированных университетах.[290] Итак, компьютер производит обработку данных представленных в двоичной форме, т. е. в виде логических единиц и нулей. Логическая единица или логический ноль — это просто уровни напряжения, низкий (около 0 вольт) при «нуле» и «высокий» (примерно 2,4 В) при «единице». Это называется двоичной логикой или булевой алгеброй, её аппарат был разработан в середине XIX века англичанином Д. Булем. В ней числа переводятся в двоичный код по специальной формуле, а затем все операции над ними проводятся именно в двоичном коде. Элементарных операций над логическими числами всего лишь три: дизъюнкция или сложение (ИЛИ), конъюнкция или умножение (И) и инверсия или отрицание (НЕ). Каждую из этих операций реализует т. н. логический элемент и из этих элементов можно получить такие более сложные звенья как триггеры, счетчики и регистры (они осуществляют переключение, счет и хранение логических кодов); шифраторов и дешифраторов (преобразовывают коды); мультиплексоров и демультиплексоров (коммутируют шины данных). Эта техника называется цифровой и составляет один из самых интересных разделов электроники. Ни в коем случае не подумайте, что я вам здесь рассказываю какие-то сложные и заумные вещи, понятные только подготовленным профессионалам. В Советском Союзе, в 70-80-е годы, книги по цифровой электронике издавались даже для детей среднего школьного возраста и эти дети поразительно быстро вникали во все её базовые аспекты, сами проектировали логические схемы (это очень развивает мышление — говорю вам как один из таких бывших детей). Знавал я и карапузов младшего школьного возраста, которые также всё легко «схватывали». Ну да, это вам не «Война и Мир» и не какой-нибудь Бальзак с Гюго. А потом и реализовывали схемы в «железе». Именно такие малолетки «среднего и старшего школьного возраста» одними из первых в СССР обзавелись в конце 80-ых годов компьютерами самостоятельно изготовленными на базе процессоров I8080 или Z80, в то время как почти всё взрослое население не имело о компьютерной технике ни малейших представлений.[291] К сожалению, их невообразимый потенциал был слит в 90-ых годах, либо перешел к врагам — американцам. Так что если вам будет нечего делать, можете почитать детские советские книжки по цифровой технике и двоичной логике, список смотрите в примечании.
289
Русское издание книги — фон Нейман Дж. Вероятностная логика и синтез надежных организмов из ненадежных компонент. Автоматы, под ред. Шеннона К.Э. и Маккарти Дж. М.: ИЛ, 1956. Эта книга — сборник лекций фон Неймана которые он читал в январе 1952 года в Калифорнийском университете и записанных P. Пирсом. В честь Пирса назван элемент ИЛИ-НЕ («стрелка Пирса»). Фон Нейман внимательно изучил конструкцию «Эниака» и пришёл к идее нового типа логической организации ЭВМ — программа должна храниться в запоминающем устройстве в числовой форме. Этот принцип остаётся основополагающим и, возможно, никогда не будет поставлен под сомнение. Одна из ЭВМ — «ДЖОНИАК» (1954 г.), в проектировании которой фон Нейман принимал непосредственное участие (она и названа так в его честь), — сыграла решающую роль в обработке информации при создании водородной бомбы.
290
Ю.А. Данилов в журнале серии «Знание», № 4, 1981 г. посвященном фон Нейману пояснял его идеи в более общем виде. «По фон Нейману, каждую компоненту допустимо рассматривать как чёрный ящик с определённым числом входов и выходов. Если бы сигнал на выходе был функцией сигналов на входе, то мы имели бы надёжную компоненту, срабатывающую с вероятностью 1. Если же сигнал на выходе при заданных сигналах на входе возникает с вероятностью меньше 1, то компонента ненадёжна. Можно ли, располагая неограниченным запасом ненадёжных компонент, построить надёжный вариант любого заданного автомата? Фон Нейман решает эту задачу двумя способами. Первое решение (автоматы с простыми линиями) позволяет понижать вероятность ошибки лишь до некоторого уровня. Суть решения состоит в построении из трёх ненадёжных одинаковых линий и смесителей, производящих сравнение сигналов на выходах подключённых к ним компонент, более надёжной системы, выполняющей ту же функцию. Второе решение фон Нейман называет трюком с кратными линиями. Двоичный выход машины заменяется пучком из многократно повторенного двоичного выхода, и значение сигнала на выходе определяется «большинством голосов» — значением сигнала на большей части линий в пучке. Схема идеального автомата, построенного из надёжных компонент, преобразуется: каждая линия заменяется пучком линий, а каждый орган — аналогом, производящим операции с выходным сигналом большинства линий. Фон Нейман приводит оценки избыточности для второй схемы. Оказывается, что при замене органа, не срабатывающего с вероятностью 1/200, при избыточности 60 000 на единицу уровень ошибки понижается до 10–20. Это означает, что автомат, сравнимый по сложности и быстродействию с человеческим мозгом, мог бы столетиями работать без сбоев».
291
В СССР описание компьютера который можно собрать самостоятельно было впервые опубликовано в мае 1986 года в журнале «Радио». Использовался базовый комплект микросхем фирмы «Интел» серии I80 разработанной в конце 60-ых годов, точнее, их советский аналог — серия К580. Поскольку интерес к этой технике был огромный, а ни одна деталь для этого компьютера официально не продавалась, мгновенно возник черный рынок, и в СССР, помимо всего прочего, начали еще спекулировать компьютерами и комплектующими к ним. Через год появилось несколько вариантов другого компьютера, на этот раз на базе процессора Z80, фирмы «Zylog». Этот компьютер стал особенно популярен и был реализован в кустарных и домашних условиях в сотнях тысячах если не в миллионах экземплярах. Именно эти два компьютера превратили профессию программиста в массовую. Финалом процесса стал самостоятельный сбор компьютера IBM ХT состоящего в разных вариантах из 200–220 микросхем. Впрочем, вскоре на постсоветское пространство массовым потоком пошли компьютеры и комплектующие с Запада.