Новая тема Ответить
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.06.2021, 13:18 #1   #1
ezup
ezup вне форума
Чебуралиссимус
По умолчанию Уникальная и забытая: рождение советской ПРО. Проект ЭПОС
ezup
ezup вне форума


СОК

Ян Облонский (Jan G. Oblonsky), один из первых студентов Свободы и разработчик EPOS-1, вспоминает об этом так (Eloge: Antonin Svoboda, 1907-l980, IEEE Annals of the History of Computing Vol. 2. No. 4, October 1980):

Оригинальная идея была выдвинута Свободой на его курсе разработки компьютеров в 1950 году, когда, объясняя теорию построения умножителей, он заметил, что в аналоговом мире нет структурной разницы между сумматором и умножителем (разница только в применении соответствующих масштабов на входе и выходе), в то время как цифровые их реализации представляют собой совершенно разные структуры. Он предложил своим студентам попытаться найти цифровую схему, которая бы выполняла умножение и сложение с сопоставимой легкостью. Спустя некоторое время один из студентов, Мирослав Валах (Miroslav Valach), обратился к Свободе с идеей кодирования, которая стала известна, как система остаточных классов.

Для того чтобы понять ее работу, нужно вспомнить, что собой представляет деление натуральных чисел. Очевидно, что, пользуясь натуральными числами, мы не можем представлять дроби, но мы можем выполнить деление с остатком. Несложно заметить, что при делении разных чисел на одно и то же данное m может получаться одинаковый остаток, в таком случае говорят, что исходные числа сравнимы по модулю m. Очевидно, что остатков может быть ровно 10 – от нуля до девяти. Математики быстро заметили, что можно создать систему счисления, где вместо традиционных чисел будут фигурировать именно остатки от деления, благо их точно так же можно складывать, вычитать и умножать. В результате любое число можно представить набором не цифр в обычном смысле слова, а набором таких остатков.

Зачем такие извращения, неужели от них что-то станет проще? На самом деле еще как станет, когда дело дойдет до выполнения математических операций. Как оказалось, выполнять операции не с числами, а с остатками, машине намного легче и вот почему. В системе остаточных классов каждое число, многоразрядное и очень длинное в обычной позиционной системе, представляется в виде кортежа одноразрядных чисел, являющихся остатками от деления исходного числа на основание СОК (кортеж взаимно-простых чисел).

За счет чего произойдет ускорение работы при таком переходе? В обычной позиционной системе выполнение арифметических операций производится последовательно по разрядам. При этом образуются переносы в следующий старший разряд, что требует сложных аппаратных механизмов их обработки, работают они, как правило, медленно и последовательно (есть разнообразные методы ускорения, матричные умножители и т.п., но это, в любом случае, нетривиальная и громоздкая схемотехника).

В СОК появилась возможность распараллелить этот процесс: все операции над остатками по каждому основанию выполняются отдельно, независимо и за один такт. Очевидно, что это многократно ускоряет все вычисления, кроме того, остатки одноразрядные по определению, в итоге вычислять результаты их сложения, умножения и т.п. не нужно, достаточно прошить их в память таблицы операций и считывать оттуда. В итоге операции над числами в СОК в сотни раз быстрее традиционного подхода! Почему же эта система не была внедрена сразу же и повсеместно? Как обычно, гладко бывает только в теории – реальные вычисления могут столкнуться с такой неприятностью, как переполнение (когда итоговое число слишком велико для помещения его в регистр), округление в СОК тоже весьма нетривиально, равно как и сравнение чисел (строго говоря, СОК не позиционная система и термины «больше-меньше» там вообще не имеют смысла). Именно на решении этих проблем и сосредоточились Валах и Свобода, ибо преимущества, что сулила СОК были уж очень велики.

Для усвоения принципов работы СОК-машин рассмотрим пример (не интересующиеся математикой могут его опустить):


Обратный перевод, то есть восстановление позиционного значения числа по остаткам – дело более хлопотное. Проблема заключается в том, что нам необходимо фактически решить систему n сравнений, что приводит к длинным вычислениям. Основной задачей многих исследований в области СОК является оптимизация этого процесса, ведь он лежит в основе большого числа алгоритмов, в которых в том или ином виде необходимо знание о позиции чисел на числовой прямой. В теории чисел метод решения обозначенной системы сравнений известен уже очень давно и заключается в следствии уже упомянутой китайской теоремы об остатках. Формула перехода довольно громоздкая, и приводить ее здесь мы не будем, отметим лишь, что в большей части случаев этого перевода стараются избегать, оптимизируя алгоритмы таким образом, чтобы оставаться в рамках СОК до конца.

Дополнительным преимуществом этой системы служит то, что табличным способом и тоже за один такт в СОК можно выполнять не только операции над числами, но и над представимыми в виде полинома сколь угодно сложными функциями (если, конечно, результат не выходит за предел диапазона представления). Наконец, СОК имеет еще одно важное преимущество. Мы можем ввести дополнительные основания и тем самым получить избыточность, необходимую для контроля ошибок, причем естественным и простым способом, не загромождая систему тройным резервированием.

Более того, СОК позволяет проводить контроль уже в процессе самого вычисления, а не только тогда, когда результат записан в память (как это делают коды коррекции ошибок в обычной системе счисления). В целом это вообще единственный способ контролировать АЛУ по ходу работы, а не итоговый результат в ОЗУ. В 1960-е годы процессор занимал шкаф или несколько, содержал многие тысячи отдельных элементов, паяных и разъёмных контактов, а также километры проводников – гарантированный источник различных помех, сбоев и отказов, причём бесконтрольных. Переход на СОК позволял в сотни раз повысить устойчивость системы к сбоям.

В итоге машина СОК имела колоссальные преимущества.

  • Максимально возможная отказоустойчивость «из коробки» с автоматическим встроенным контролем правильности каждой операции на каждом этапе – от чтения чисел до арифметики и записи в ОЗУ. Думаю, излишне пояснять, что для систем ПРО это едва ли не самое главное качество.
  • Максимально возможный теоретически параллелизм операций (в принципе абсолютно все действия арифметики в рамках СОК можно было провести за один такт, вообще не обращая внимания на разрядность исходных чисел) и скорость вычислений, недостижимая никаким другим методом. Опять-таки, не нужно пояснять, почему компьютеры ПРО должны были быть максимально производительными.

Таким образом, СОК-машины просто напрашивались на их использование в качестве компьютера противоракетной обороны, лучше них для этой цели в те годы не могло быть ничего, но такие машины еще нужно было построить на практике и обойти все технические трудности. Чехи справились с этим блестяще.

Результатом пятилетних исследований стала статья Валаха «Origin of the code and number system of remainder classes», опубликованная в 1955 году в сборнике «Stroje Na Zpracovani Informaci», vol. 3, Nakl. CSAV, в Праге. Все было готово для разработки компьютера. Свобода привлек к процессу, кроме Валаха, еще нескольких талантливых студентов и аспирантов и работа началась. С 1958 по 1961 было готово порядка 65 % компонентов машины, названной EPOS I (от чешск. elektronkovy počitač středni – средняя ЭВМ). Компьютер должен был быть произведен на мощностях завода ARITMA, но, как и в случае с SAPO, внедрение EPOS I не обошлось без трудностей, особенно в области производства элементной базы.

Нехватка ферритов для блока памяти, плохое качество диодов, отсутствие измерительной техники – вот лишь неполный список трудностей, с которыми пришлось столкнуться Свободе и его ученикам. Максимальным квестом стало достать такую элементарную вещь, как магнитная лента, история ее обретения тоже тянет на небольшой промышленный роман. Во-первых, в ЧССР она отсутствовала, как класс, ее просто не производили, так как не имели для этого вообще ничего из оборудования. Во-вторых, в странах СЭВ ситуация была аналогична – ленту кое-как изготавливал к тому времени только СССР. Мало того, что она была ужасающего качества (вообще проблема с периферией и особенно с проклятой лентой от компьютерной до компакт-кассет преследовала Советы до самого конца, любой, кто имел счастье работать с советской лентой, имеет огромное количество историй о том, как она рвалась, сыпалась и т.п.), так чешские коммунисты помощи от советских коллег почему-то не дождались, и ленты им никто не дал.

В итоге министр общего машиностроения Карел Полачек (Karel Poláček) выделил субсидию 1,7 млн крон на добычу ленты на Западе, однако из-за бюрократических препон оказалось, что иностранная валюта на эту сумму не может быть отпущена в рамках лимита Министерства общего машиностроения на импорт техники. Пока разбирались с этой проблемой, прозевали сроки заказа за 1962 год и пришлось ждать весь 1963 год. Наконец, только во время Международной ярмарки в Брно в 1964 в результате переговоров между Государственной комиссией по развитию и координации науки и техники и Государственной комиссией по управлению и организации удалось добиться импорта ленточной памяти вместе с компьютером ZUSE 23 (отдельно ленту ЧССР продавать отказались из-за эмбарго, пришлось закупить целый компьютер у нейтральных швейцарцев и снять с него магнитные накопители).

ЭПОС 1


EPOS I был одноадресным ламповым компьютером с модульной структурой. Несмотря на то, что технически он относился к первому поколению машин, некоторые из используемых в нем идей и технологий были очень продвинутыми и массово внедрились только спустя несколько лет в машинах второго поколения. EPOS I состоял из 15 000 германиевых транзисторов, 56 000 германиевых диодов и 7 800 вакуумных ламп, в зависимости от конфигурации он имел быстродействие 5–20 kIPS что, по тем временам, было неплохо. Машина была оснащена чешской и словацкой клавиатурой. Язык программирования – автокод EPOS I и ALGOL 60.

Регистры машины были собраны на максимально продвинутых на те годы никелево-стальных магнитострикционных линиях задержки. Это было намного круче ртутных трубок «Стрелы» и применялось во многих западных разработках вплоть до конца 1960-х, так как такая память была дешевой и относительно быстрой, ее использовали LEO I, различные машины Ferranti, IBM 2848 Display Control и многие другие ранние видеотерминалы (одна проволока обычно хранила 4 строки символов = 960 бит). Она также успешно использовалась в ранних настольных электронных калькуляторов, включая Friden EC-130 (1964) и EC-132, программируемый калькулятор Olivetti Programma 101 (1965) и программируемый калькуляторы Litton Monroe Epic 2000 и 3000 (1967).



Слева направо: IBM 2260 Display Station, IBM 2848 Display Control (здоровенный 400 кг шкаф шириной 1,5 метра, содержащий все для генерирования видеосигнала на 24 терминала, данные передавались на расстояние до 600 метров), типовой блок регистров на проволочной линии задержки, фото из архива IBM

Вообще, ЧССР в этом отношении была удивительным местом – нечто среднее между СССР и полноценной Западной Европой. С одной стороны, в середине 1950-х там были проблемы даже с лампами (напомним, что в СССР они тоже были, хотя и не в такой запущеной степени), и Свобода строил первые машины на чудовищно устаревшей технологии 1930-х годов – реле, с другой стороны, к началу 1960-х чешским инженерам стали доступны вполне современные никелевые линии задержки, которые начали использоваться в отечественных разработках позже на 5–10 лет (к моменту их устаревания на Западе, например, примерным аналогом Friden были отечественные «Искра-11», 1970 года, и «Электроника-155», 1973 года, причем последний считался таким продвинутым, что аж получил серебряную медаль на ВДНХ).

EPOS I, как несложно догадаться, был десятичным и имел богатую периферию, кроме того, Свобода предусмотрел в компьютере несколько уникальных аппаратных решений, значительно опередивших свое время. I/O операции в ЭВМ всегда намного медленнее работы с ОЗУ и АЛУ, было решено использовать время простоя процессора, пока выполняемая им программа обращалась к медленным внешним накопителям, для запуска другой независимой программы – всего таким образом было возможно выполнять параллельно до 5 программ! Это была первая в мире реализация мультипрограммирования с помощью аппаратных прерываний. Причем было введено внешнее (параллельный запуск программ, работающих с различными независимыми модулями машины) и внутренне (конвейеризация для операции деления, самой трудоемкой) разделение времени, что позволило многократно повысить производительность.

Это новаторское решение по праву считается архитектурным шедевром Свободы и было массово применено в промышленных компьютерах на Западе лишь через несколько лет. Мультипрограммное управление компьютером EPOS I было разработано тогда, когда сама идея разделения времени еще только зарождалась, даже в профессиональной электротехнической литературе второй половины 1970-х годов она все еще упоминается, как очень передовая.

Компьютер был оснащен удобной информационной панелью, на которой можно было следить за ходом процессов в режиме реального времени. Конструкция изначально предполагала, что надежность основных компонентов не идеальна, поэтому EPOS I мог исправлять отдельные ошибки, не прерывая текущий расчет. Еще одной важной особенностью была возможность горячей замены компонентов, а также подключения различных устройств ввода/вывода и увеличения количества барабанных или магнитных ЗУ. Благодаря своей модульной структуре, EPOS I имел широкий спектр применений: от массовой обработки данных и автоматизации административной работы до научных, технических или экономических расчетов. Кроме того, он был изящным и довольно красивым, чехи, в отличие от СССР, думали не только о производительности, но и о дизайне и удобстве своих машин.

Несмотря на настоятельные просьбы правительства и чрезвычайные финансовые субсидии, Министерство общего машиностроения не смогло обеспечить необходимые производственные мощности на заводе VHJ ZJŠ Brno, где должны были изготавливать EPOS I. Изначально предполагалось, что машины этой серии будут удовлетворять потребности народного хозяйства примерно до 1970 года. В итоге все вышло куда более грустно, проблемы с комплектующими никуда не делись, кроме того, в игру вмешался могущественный концерн TESLA, которому было жутко невыгодно производить чешские машины.

Весной 1965 года в присутствии советских специалистов были проведены успешные государственные испытания EPOS I, на которых особенно высоко была оценена ее логическая структура, качество которой соответствовало мировому уровню. К сожалению, компьютер стал объектом необоснованной критики со стороны некоторых компьютерных «экспертов», которые пытались продавить решение об импорте ЭВМ, например, председатель Словацкой комиссии по автоматизации Ярослав Михалица (Jaroslav Michalica) писал (Dovážet, nebo vyrábět samočinné počítače? In: Rudé právo, 13. dubna 1966, s. 3.):

За исключением прототипов, ни один компьютер не был произведен в ЧССР. С точки зрения мирового развития, технический уровень наших компьютеров очень низок. Например, энергопотребление EPOS I очень высокое и составляет 160–230 кВт. Еще одним недостатком является то, что он имеет программное обеспечение только в машинном коде и не оснащен необходимым количеством программ. Конструкция компьютера при установке в помещении требует больших строительных инвестиций. Кроме того, мы не до конца обеспечили ввоз из-за границы магнитной ленты, без которой EPOS I совершенно бесполезен.

Это была обидная и беспочвенная критика, поскольку ни один из указанных недостатков не относился непосредственно к EPOS – энергопотребление его зависело исключительно от используемой элементной базы и для ламповой машины было вполне адекватным, проблемы с лентой вообще были более политическими, чем техническими, а установка любого мэйнфрейма в помещение и сейчас сопряжена с его тщательной подготовкой и достаточно трудна. Программное же обеспечение не имело шанса появиться из воздуха – ему нужны были серийные машины. Инженер Вратислав Грегор (Vratislav Gregor) возразил по этому поводу так:

Прототип EPOS I отлично работал в течение 4 лет в неприспособленных условиях в трехсменном режиме без кондиционирования воздуха. На этом первом образце нашей машины решаются задачи, с трудом поддающиеся решению на других компьютерах в ЧССР … например, мониторинг преступности среди несовершеннолетних, анализ фонетических данных, в дополнение к более мелким заданиям в области научных и экономических расчетов, имеющих значительное практическое применение. Что касается средств программирования, то EPOS I оснащен ALGOL… Для третьего EPOS I было разработано около 500 программ ввода-вывода, тестов и т.д. Ни один пользователь импортного компьютера никогда не имел программ, доступных нам так своевременно и в таком количестве.

К сожалению, к моменту окончания разработки и приемки EPOS I действительно сильно устарел и VÚMS, не теряя времени, параллельно принялся строить его полностью транзисторную версию.

ЭПОС 2


EPOS 2 разрабатывался с 1960 года и представлял собой вершину мировых ЭВМ второго поколения. Модульность конструкции позволила пользователям адаптировать компьютер, как и первую версию, к конкретному типу решаемых задач. Средняя скорость работы составляла 38,6 kIPS. Для сравнения: мощный банковский мэйнфрейм Burroughs B5500 – 60 kIPS, 1964 год; CDC 1604A легендарная машина Сеймура Крэя, использовавшаяся в том числе в Дубне в советских ядерных проектах, имела мощность 81 kIPS, даже средний в своей линейке IBM 360/40, серию которых позже клонировали в СССР, разработанный в 1965 году, в научных задачах выдавал всего 40 kIPS! По меркам начала 1960-х, EPOS 2 был первоклассной машиной на уровне лучших западных образцов.

Распределение времени в EPOS 2 контролировалось по-прежнему не программно, как во многих зарубежных компьютерах, а аппаратно. Как всегда, случился затык с проклятой лентой, но ее договорились импортировать из Франции, а позже TESLA Pardubice таки освоил ее производство. Для компьютера была разработана собственная ОС – ZOS, причем она была прошита в ПЗУ. Код ZOS был целевым языком для FORTRAN, COBOL и RPG. Испытания прототипа EPOS 2 в 1962 году прошли успешно, но к концу года компьютер не был закончен по тем же причинам, что и EPOS 1. В итоге производство было отложено аж до 1967 года. С 1968 ZPA Čakovice серийно выпускало EPOS 2 под обозначением ZPA 600, а с 1971 года – в улучшенной версии ZPA 601. Серийное производство обоих компьютеров закончилось в 1973 году. ZPA 601 был частично совместим программно с линейкой советских машин МИНСК 22. В общей сложности было изготовлено 38 моделей ZPA, бывшими одними из самых надежных систем в мире. Использовались они до 1978 года. Также в 1969 был изготовлен прототип маленького компьютера ZPA 200, но в серию не пошел.

Возвращаясь к TESLA, следует отметить, что их руководство действительно всеми силами саботировало проект EPOS и по одной простой причине. В 1966 они продавили в ЦК ЧССР ассигнований на сумму 1,1 миллиарда крон для закупки французско-американских мэйнфреймов Bull-GE и вовсе не нуждались в простом, удобном и дешевом отечественном компьютере. Давление через ЦК привело к тому, что не только была развернута кампания дискредитации работ Свободы и его института (цитату такого рода вы уже видели, причем напечатана она была не абы где, а в главном печатном органе КП ЧССР Rudé právo), но и в итоге Министерству общего машиностроения было предписано ограничиться изготовлением двух EPOS I, всего вместе с прототипом их было в итоге сделано 3 штуки.

EPOS 2 тоже досталось, компания TESLA всеми силами старалась показать, что эта машина бесполезна, и через руководство DG ZPA (Заводы приборов и автоматики, к которым относился VÚMS) продавило идею открытого соревнования разработки Свободы и новейшего мэйнфрейма TESLA 200. Французский производитель компьютеров BULL был в 1964 году вместе с итальянским производителем Olivetti куплен американцами General Electric, они инициировали разработку нового мэйнфрейма BULL Gamma 140. Однако выпуск его для американского рынка был отменен, так как янки решили, что он составит внутреннюю конкуренцию их собственному General Electric GE 400. В итоге проект повис в воздухе, но тут удачно нарисовались представители TESLA и за 7 миллионов долларов купили прототип и права на его производство (в итоге TESLA не только произвела около 100 таких компьютеров, но и умудрилась продать несколько аж в СССР!). Именно этой машине третьего поколения под именем TESLA 200 предстояло побить несчастный EPOS.



Прототип EPOS 2 в ротонде физико-математического факультета Карлова университета, фото из архивов истории чешской техники

У TESLA был полностью готовый серийный отлаженный компьютер с полным комплектом тестов и программного обеспечения, у VÚMS был только прототип с неполным комплектом периферии, недописанной операционной системой и накопителями с частотой шины в 4 раза меньше, чем были установлены на французском мэйнфрейме. После предварительного прогона результаты EPOS были, ожидаемо, неутешительные, но гениальный программист Ян Сокол (Jan Sokol) значительно модифицировал штатный алгоритм сортировки, сотрудники, круглосуточно работая, довели до ума железо, раздобыли пару быстрых накопителей, аналогичных TESLA, и в итоге EPOS 2 победил куда более мощный французский мэйнфрейм!



...и его противник – BULL Gamma 140, фото Musée virtuel de Bull et de l'informatique Française (http://www.feb-patrimoine.com)

Во время оценки результатов первого тура Сокол в ходе дискуссии с ZPA высказался о неблагоприятных условиях конкурса, согласованных с руководством. Однако его жалоба была отклонена со словами «после драки каждый солдат – генерал». К сожалению, победа EPOS не сильно повлияла на его судьбу, во многом благодаря и неудачному времени – шел 1968 год, по Праге ехали советские танки, подавляя Пражскую весну, и всегда славившийся крайним либерализмом VÚMS (из которого к тому же недавно вместе со Свободой сбежала на Запад половина лучших инженеров) был, мягко говоря, не в почете у властей.

А вот дальше начинается самая интересная часть нашей истории – о том, как чешские разработки легли в основу первых советских машин ПРО и какой бесславный конец их ожидал в итоге, но об этом мы поговорим в следующий раз.

Продолжение следует...

Автор:
Алексей Ерёменко
Использованы фотографии:
www.feb-patrimoine.com, www.historiepocitacu.cz, www.righto.com
 
Вверх
Ответить с цитированием
Новая тема Ответить

Метки
про


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уникальная и забытая: рождение советской ПРО. Чехия вступает в игру ezup Противоракетные системы 0 27.05.2021 12:46
Уникальная и забытая: рождение советской ПРО. БЭСМ против «Стрелы» ezup Противоракетные системы 0 23.05.2021 15:19
Уникальная и забытая: рождение советской ПРО. Брук и М-1 ezup Противоракетные системы 0 20.05.2021 22:53
Уникальная и забытая: рождение советской ПРО ezup Противоракетные системы 0 13.05.2021 13:51
Экспериментальный самолет ЭПОС ezup Россия 0 21.12.2012 09:33