[МУЗЫКА] [МУЗЫКА] К этому времени, примерно 1983–84 годы, мы уже знали термин HLL-компьютеры, high level language computers. Это компьютеры, ориентированные на языки высокого уровня. В этих машинах есть специальные команды для вызова процедур, вырезки элементов массива, циклов и другие действия, которые приняты в языках высокого уровня, поэтому делать транслятор для этих машин существенно легче. И мы поэтому решили, что когда мы будем делать свою машину, это будет машина именно класса HLL. И надо сказать, что мы не пожалели, что приняли такое решение. Мы хорошо знали существовавшие на тот момент машины класса HLL. Это советская машина МИР, и мы вообще думаем, что это была первая HLL-машина в мире, делал академик Глушков в Киеве. Burroughs, Intel iAPX 432, «Эльбрус» — это тоже советская машина. Но надо вам сказать, что все эти машины были громоздкими, часто требовали водяного охлаждения и в среднем были в два раза дороже, чем такие же машины традиционные, такие же по классу, такие же по мощности. Хотелось бы понять, в чем это дело. Мы как университетские ученые начали исследовать этот вопрос. Особенно нас поразила машина Intel iAPX 432, это три кристалла, сделанные фирмой Intel, которые должны были поддержать язык Ada, как я уже говорил, базовый язык Министерства обороны США. Так вот эта машина была примерно в 100 раз медленнее, чем должна была быть на той технологической базе. Интересно было понять, в чем дело, изучить. В это время вышла книжка Майерса «Архитектура ЭВМ», где архитектура Intel iAPX 432 была хорошо описана. Смотрите, там было семь уровней адресации: прямая, косвенная, косвенная с индексом и так далее. И аппаратура все время эти типы адресаций проверяла. Вот если у вас стоит a присвоить b + c, то машина будет аппаратно проверять все типы адресации отдельно для a, для b, отдельно для c. Понятно, что она после этого работает, как утюг. Другое дело наша машина «Эльбрус», ее сделал в Москве один из руководителей Борис Арташесович Бабаян. Мы с этой машиной начали работать с 1974 года. Это была действительно оригинальная машина, хотя злые языки говорили, «Эльбрус» — это Эль-Барроуз, намекая, что она очень похожа на Burroughs, на американскую машину, но это были именно злые языки, потому что «Эльбрус» действительно оригинальная машина. Хотя у всех HLL-компьютеров есть общие идеи, так вот «Эльбрус» была совершенно оригинальная советская машина, мы ее очень любили в противовес цельносодранной, как у нас говорили, ЕС ЭВМ, которая была копией IBM-360. Так вот мы для этой машины сделали интерпретатор автокода «Эльбрус», и этим интерпретатором пользовались много лет, даже когда «Эльбрус» появился, живой, в металле, все равно часть люди пользовались нашим интерпретатором автокода, потому что на нем было намного легче отлаживать программы. И, кстати, мы тогда впервые поняли, что на этом можно разбогатеть. То есть понятно, что при социализме денег нам за это никто не давал, зарплату получаешь и все, но техника распределялась по фондам ЦК КПСС. Так вот поедет кто-нибудь из моих сотрудников в какую-нибудь глушь, в какой-нибудь штаб военно-морских сил, посидит там месяц, обучит людей пользоваться автокодом «Эльбрус», а оттуда привезет бумажку в фонд на новую машину. В результате вычислительный центр лаборатории системного программирования, которым я тогда руководил, был богаче, чем вычислительный центр всего университета. Это, кстати, тоже, с одной стороны, для нас это было хорошо, мы работали в дневное время, на дисплеях, а в это время все остальные сдавали колоды перфокарт и ждали целую ночь, чтобы утром получить результат. На меня опять начали пальцем показывать, что вот богатеет, зараза, но мы уже не имели папу-миллионера, мы все заработали своим горбом, и поэтому на все такие нападки я говорил — а кто вам мешает взять пару-тройку военных заказов, выполнить их, а это очень непросто. И тогда вы тоже будете получать фонды на машины и будете со мной соревноваться за лучших студентов матмеха. Лучшие студенты, конечно, шли ко мне, поскольку у меня материальные условия работы, не деньги, а вот именно возможности хорошо работать, были намного выше, чем в среднем в университете. И это нам помогло создать очень сильный коллектив. Кроме нас весь матмех работал на «Эльбрус». Мы делали пакеты прикладных программ, ведь «Эльбрус» был действительно новой, оригинальной машиной, поэтому она была совершенно голая, никакой линейной алгебры, никаких собственных чисел, никаких библиотек программ для «Эльбруса» не было. И вот был создан такой договор, я даже помню это договор № 70, три миллиона рублей. Тогда доллар стоил 60 копеек, так что три миллиона рублей как сейчас 15 миллионов долларов. Так вот, за эти деньги работал весь матмех и создавали пакеты прикладных программ для «Эльбруса». И удалось это сделать, «Эльбрус» мы одели, обули, и нам за это выделили фонды на «Эльбрус», на матмех. Представляете, это было бы первая открытая организация в СССР, которая получила бы многомиллионную машину «Эльбрус». Там десять процессоров по 12 миллионов операций в секунду на каждом процессоре. Я ходил гордый такой, щеки надуты — это мы заработали. Наши инженеры Валера и Клава, я их помню хорошо, они и сейчас живы-здоровы, слава богу, поехали на завод САМ, счетно-аналитических машин в Москве, где «Эльбрус» делался, провели там какое-то время, изучили «Эльбрус», вернулись и сказали, что нам «Эльбрус» на матмех получать нельзя. А у нас уже договор был подписан, уже мы там бетонное озеро выкопали, градирня называется, для охлаждения воды, «Эльбрус» был с водяным охлаждением. Помещение подготовили 500 кв. м, уже какие-то блоки начали приходить, а тут инженеры говорят, что нет, нам такую машину на матмех получать нельзя. Почему? Для его обслуживания нужен полк солдат, черт его знает, полк или рота, но много. Суть такая, что, например, влажность. Есть от 30 до 50 %, если влажность меньше, чем 30 %, то будут проскакивать искры, и платы будут гореть и ломаться. А если больше 50 %, то будут капельки на платы падать, а они раскаленные платы, и в результате тогда они тоже сломаются. Уровень частоты, сколько может быть пылинок в кубометре воздуха и так далее. Короче, на матмехе в университете такую машину просто не сопроводить, никаких денег, никаких людей не хватит. Я страшно расстроился, потому что для меня это была моя личная победа, я же руководил работой по «Эльбрусу» в университете, но пришлось согласиться, потому что аргументы были неубиенные. Это, кстати, тоже сильно помогло мне потом в будущих работах над нашей машиной «Самсон», которую мы сами сделали, потому что все эти вот уколы, червоточинки, недостатки, которые были в «Эльбрусе», очень сильно повлияли на мои воззрения, как надо делать ЭВМ. Нельзя сделать ЭВМ, которая превосходит технологические возможности страны. Эльбрусовцы — герои, они сделали машину, это базовая машина ПВО страны, но она была с за пределами технологических возможностей нашей электроники того времени в СССР. В результате они своего добились, но превзошли какие-то технологические пределы, именно поэтому она была такая — с водяным охлаждением, дорогущая и такие высокие требования к ее эксплуатации. Я решил, что такой хоккей нам не нужен, мы будем делать что-нибудь по-другому. Итак, мы начали думать над своей машиной, и в общем ничего не получалось, потому что мы пытались сделать специализированную машину для задач коммутации, вы помните, что мы, в основном, работали со связистами правительственной связи и так далее. Ну смотрите, если вы делаете телефонную станцию, вам нужно фиксированная запятая, логика для того, чтобы находить пути в графе, когда надо соединить абонента A с абонентом B. Для того чтобы вам считать надежность, пересчитывать нагрузку сети, нужны законы Пуассона, e в степени −λt, плавающая запятая, совсем другая арифметика. Для того чтобы иметь общение с оператором, вам надо файлы, дисплей, работа со строками, с литерами. Это абсолютно не похоже на вещественную и целую арифметику. Кстати, не думайте, что я вам просто так это говорю. Была цифровая станция «Броня», базовая станция советской армии, их тысячами делали, кстати, тоже на «Красной заре». Так вот на этой телефонной станции было три ЭВМ. Одна для коммутации, одна для управления сетью, одна для общения с оператором, а, соответственно, три разных операционных системы, три разных комплекта ЗИП, ЗИП — это запасные изделия и приборы, запасные части, три разных комплекта офицеров, которые сопровождали. И все это на тысячу абонентов, это смешно или, скорее, грустно, но тем не менее так было. И вот все это мы изучили, все это мы знали и решили, что надо что-то делать. Специализированную машину сделать не удалось. Мы понимаем, что телефонная станция — это довольно большое дело, и нужны универсальные ЭВМ, которые решают сразу в одной машине все эти задачи, которые я перечислил. Ну, мы понимали, что мы, там, моложе, чуть умнее, ну может быть, на 20% умнее, чем москвичи, но не в два, не в три раза. Поэтому... то есть делать что-то лучше, чем москвичи с Эльбрусом, мы можем, но вряд ли критически выиграем, какие-то проценты выиграем. То есть нужна была свежая идея. И вот над этой идеей мы бились два года. За это время от меня ушло два человека. В первый раз в моей жизни из моей лаборатории ушли люди, сказали: «Андрей, ты ведешь нас не туда, мы не желаем воду в ступе толочь, эта задача неразрешима». И поэтому вот взяли и ушли. Я до сих пор от этого расстраиваюсь: это были мои ученики, я в них много сил вложил, и мы вместе с ними много лет работали. И вообще сейчас я генеральный директор большого предприятия, и у меня довольно часто люди уходят. Знаете, когда у тебя 300 человек, текучесть кадров [НЕРАЗБОРЧИВО] есть, хотя у меня и сегодня намного меньше, чем в среднем по IT-индустрии. Но вот этих двух помню до сих пор, потому что это было для меня очень болезненно. Так вот, оказалось, что идея нашлась. Она может быть выражена очень простой схемой. Вот поглядите на этот слайд: программа на языке высокого уровня, компилятор, УВК, результат. И никаких обходных путей нет. То есть вы думаете, что это простая схема, а у меня есть авторское свидетельство по этой схеме, потому что на самом деле эта схема приводит к тому, что многие технические решения зависят от этой схемы. Смотрите. И компилятор, и операционная система, и сама аппаратура УВК Самсон (УВК — это управляюще-вычислительный комплекс) разрабатывались в одном коллективе, это лаборатория системного программирования ЛГУ, Ленинградского гос. университета. Один коллектив, нас было человек 15‒16 в это время, и мы просто могли в каких-то случаях договориться. В частности, вот глядя на эту схему, которую я вам только что показал, первым делом мы договорились, что все, что проверено компилятором, не будет перепроверяться аппаратурой. Здесь я тоже должен вам рассказать одну байку, но она имеет абсолютно прямое отношение к теме этой лекции. В ЕС ЭВМ была схема контроля. И вообще когда вот мы получили... Кстати, ЕС ЭВМ была первая, первая ЭВМ такого класса в открытой организации, об этом даже в газетах писали: Матмех ЛГУ получил ЕС-1030. Это была первая такого класса мощная машина в открытой, не военной организации. И вот мы на ней работали. ЕС-1030 была довольно еще сырая в то время, часто ломалась. И вот как-то раз она сломалась так, что мы не могли месяц ее починить. А у нас договора, деньги, все горит, все нервные. И вот та самая Клара, которая потом отказалась от Эльбруса — она эксплуатировала ЕС-1030 — взяла и отключила схему контроля. И машина заработала. Это был удивительный факт, ну, на первый взгляд. Потом-то мы осознали, что почему нет? То есть сбой был, сломалась именно схема контроля, а сама по себе машина работала. Смотрите, тут тоже так надо понять, что... Итак, нам нужна схема контроля схемы контроля. А потом нам нужна схема контроля схемы контроля схемы контроля, и так — до бесконечности. То есть это путь тупиковый, схема контроля аппарата не может решить наши проблемы. Это тоже повлияло на многие наши решения. Так вот мы первым делом приняли решение, что в Самсоне... Мы назвали свою машину Самсон, но не в честь библейского героя, который малость был придурковатый, его там все время обманывали, а он все равно повторял свои ошибки, а в честь самого большого фонтана. Мы живем и работаем в Петергофе, у нас самый большой фонтан, который называется как раз Самсон. Вот мы для себя договорились, что наша машина названа в честь самого мощного фонтана в Петергофе. Так вот, мы договорились, что в Самсоне то, что проверит компилятор, аппаратура проверять не будет. Ну например, в ЕС ЭВМ прерывания: неправильный код операции, неправильный номер регистра, неправильная адресация. В Самсоне такого нет: компилятор ошибиться не может. Правда, чтобы вот так гарантировать такие контроли, которые может сделать компилятор, пришлось ограничить класс входных языков, а именно: Алгол 68, Модула 2, Ада, Chill, это был базовый язык системы коммутации, Pascal в его более поздних версиях (первый Pascal был совершенно не такого класса). И тогда решение оказалось разумным. И вот на базе этих идей, что перераспределение задач между компилятором и аппаратурой, мы начали проектировать свою машину.