воскресенье, 20 сентября 2015 г.

воскресенье, 6 сентября 2015 г.

Ю. В. Ревич, Б. Н. Малиновский. Информационные технологии в СССР. Создатели советской вычислительной техники



Сергей Алексеевич Лебедев

Из главы о Лебедеве запомнилось, что до ЭВМ он занимался единой энергосистемой страны. Потом переключился на работу в области электронной цифровой вычислительной техники, которой тогда не существовало. Предстояло изобрести всё с нуля - подобрать элементную базу, придумать логические элементы - триггеры, сумматоры, двоичную арифметику, архитектуру будущей машины. Поскольку работы в этой области были засекречены, он независимо от Тьюринга сформулировал принципы построения вычислительной машины. Первой пробой была МЭСМ - малая электронная счётная машина. За ней уже последовала БЭСМ - большая электронная счётная машина, которая открыла серию БЭСМ. Последней в серии и самой известной была БЭСМ-6. Это был суперкомпьютер на транзисторной элементной базе производительностью в 1 миллион операций в секунду. Производительностью такого порядка обладал только компьютер CDC 6600, но он содержал 400 тысяч транзисторов, в то время как БЭСМ-6 обходилась 60 тысячами.

Исаак Семёнович Брук

Запомнился главным образом тем, что был хорошим организатором и вырастил большое количество отличных специалистов. Каких-либо выдающихся разработок под его руководством сделано не было, да и сам он фактически не участвовал в разработках.

Башир Искандарович Рамеев и Уралы

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

Особенно грустно то, что к моменту принятия решения о выпуске единого ряда ЭВМ серии ЕС в СССР уже существовал ряд ЭВМ - компьютеры Урал. Вообще, было много очень талантливых людей, которые шли вровень с заграничными учёными, подчас даже опережая их. Можно было бы собрать всех их вместе, объединить опыт и наработки и придумать полностью отечественный ряд ЭВМ. Весь необходимый опыт для этого был. Но из-за подковёрной борьбы победило решение копировать компьютеры IBM/360. Это решение было провальным и фактически полностью погубило отечественную школу разработчиков ЭВМ.

Виктор Михайлович Глушков

Запомнился как математик экстра-класса, доказавший одну из математических проблем. Работал в Киеве после Лебедева, перебравшегося к тому времени в Москву. Продвигал систему ОГАС - общегосударственная автоматизированная система для управления предприятиями всей страны. Компьютерами и системой управления экономикой страны он увлёкся с подачи Китова. Обладал непростым характером, работал скорее не на благо страны, а на собственную репутацию, т.к. гонялся за титулами и наградами, но практической деятельностью заниматься, видимо, не любил. В основном, видимо, занимался разработкой научных теорий, среди которых были и работы, которые должны были лечь в основу ОГАС.

Анатолий Иванович Китов

Запомнился как автор книг по кибернетике и идеи государственной сети вычислительных центров. Глушков вычислительной техникой увлёкся именно после прочтения книги Китова, а идею сети вычислительных центров для управления экономикой страны развил до идеи ОГАС.

Михаил Александрович Карцев

Запомнился как автор суперкомпьютера M-10, содержащего чудовищное количество элементов - 2,1 миллиона микросхем, 1,2 миллиона транзисторов, 120 миллионов ферритовых сердечников. Компьютер М-10 обладал производительностью 20-30 миллионов операций в секунду, наибольшей в СССР на 1980 году. Это была одна из немногих оригинальных разработок, созданная вне серии ЕС и не скопированная с западных аналогов. При том что состояла из такого большого количества элементов, обладала очень высокой надёжностью - простаивала не более 10 минут в год. По степени готовности существенно опережала Эльбрус-1, у которой был ряд конструктивных и эксплуатационных недостатков. Если каждый Эльбрус-1 приходилось дорабатывать на месте, то М-10 работала как часы и была полностью готовым продуктом.

Вслед за М-10 была начата разработка М-13, которую завершили уже после смерти Карцева. Её производительность зависела от комплектации и в максимальном варианте достигала 48 миллионов операций. Обладала специализированными периферийными процессорами для для операций типа преобразование Фурье, Уолша, Адамара, Френеля (слышал только про преобразование Фурье), которые обладали быстродействием до 2 миллиардов операций в секунду (которое нельзя напрямую сравнивать с быстродействием центрального процессора, поскольку он является процессором общего назначения и не рассчитан на специализированные задачи).

Большинство компьютеров его разработки применялись только в военных целях, а потому были малоизвестны. Но по производительности они зачастую обгоняли гражданские разработки.

Николай Петрович Брусенцов и Сетунь

Что компьютер, что его создатель весьма неординарны. До этого я не придавал особого значения тому, что в Советском Союзе выпускались компьютеры, основанные на троичной системе счисления. Я списывал это на экспериментаторство и ещё не устоявшиеся подходы к разработке вычислительной техники. В моём мозгу сформировалось мнение об этой машине как о забавном курьёзе - не более.

Оказалось, всё не так просто. В этой машине использовались не цифры 0, 1 и 2, как это может показаться. Если бы в ней использовались эти цифры, то машина была бы действительно лишь забавным курьёзом. Но в ней использовались цифры -1, 0 и +1. Это называется симметричной троичной системой счисления. То есть, например, число 7 в этой системе счисления получалось по формуле 9 - 3 + 1 или +1×32-1×31+1×30 и записывалось как +1 -1 +1 или +-+.

Таким способом очень удобно представлять как положительные, так и отрицательные числа. Чтобы узнать знак числа, нужно узнать знак его самой старшей не нулевой цифры. Чтобы взять число с противоположным знаком, нужно просто заменить -1 на +1 и +1 на -1. Например, число 7 превращается в -7 из +-+ в -+-. Как видно, старшая ненулевая цифра получившегося числа равна -1, а значит перед нами отрицательное число. Можно в этом убедиться: -1×32+1×31-1×30 = -9 + 3 - 1 = -7.

Но и это ещё не всё. Благодаря такой форме представления чисел, их удобно складывать. При сложении с 0 получается та же цифра, при сложении противоположных цифр получается ноль и только при сложении двух цифр с одинаковым знаком происходит перенос в старший разряд (или условный заём из старшего разряда - на самом деле перенос от заёма в этой системе счисления практически ничем не отличается, т.к. система счисления - симметричная). Такие числа удобно не только складывать, но и вычитать. Фактически для вычитания нужно всего лишь инвертировать цифры второго числа и сложить его с первым. Заём или перенос в троичном сумматоре происходит в 8 из 27 случаев (29,6%), а в двоичном сумматоре - в 4 из 8 случаев (50%).

Троичные числа умножать удобно почти так же, как и двоичные. Результаты умножения на 0 и на +1 одинаковы, а результатом умножения на -1 является инвертированное число.

Троичная система очень экономна с точки зрения плотности записи информации. Если я правильно понял методику оценки плотности записи информации, то для записи любого числа от 0 до 999 нужно 3 комплекта по 10 цифр, итого - 30 цифр. При использовании двоичной системы для записи любого числа от 0 до 2047 потребуется 11 комплектов по 2 цифры, итого - 22 цифры. При использовании троичной системы для записи любого числа от 0 до 2186 потребуется 7 комплектов по 3 цифры, итого - 21 цифра. Из приведённых примеров видно, что наименьшим количеством из 21 цифры можно записать наибольшее количество чисел. Плотность системы счисления можно определить по формуле ln(x)/x, где x - это основание системы счисления. Наибольшая плотность достигается при x = e, которое называют основанием натуральных логарифмов или числом Эйлера. Ближайшее к e целое число равно трём.

Интересно что процессор Сетуни был построен по упрощённой системе команд, напоминающей будущие разработки RISC-процессоров. Это процессор поддерживал всего 24 команды, что меньше 74 команд компьютера CDC 6600, который считался прообразом будущих RISC-процессоров. Даже первый RISC-процессор RISC-I, разработанный в 1982 году имел 32 инструкции. Каждая команда процессора Сетуни умещалась в одно 18-тритовое полуслово, то есть в 9 тритов. 5 тритов в инструкции отводилось под адрес, три трита - под код операции и ещё один трит - под код модификации адреса (в зависимости от значения этого трита адрес либо использовался как есть, либо к нему прибавлялось содержимое регистра модификации, либо из него вычиталось содержимое регистра модификации).

Сетунь была очень надёжной (95% времени полезной работы), работала во всех климатических зонах СССР и была очень дешёвой в изготовлении. Именно из-за этого её и невзлюбили - из-за невысокой стоимости одной машины заводам было не выгодно её производить. Видимо это объясняется причудами советского способа расчёта зарплаты. Помню, преподаватель по технологии рассказывал нам, что заводу выгодны были многоэтапные технологические процессы, в которых время обработки одной детали максимально затягивалось. Как я понимаю, машина была настолько простой, что искусственно увеличить длительность технологического процесса и тем самым больше заработать на ней было трудно. Ну и кроме того, благодаря троичной системе счисления она была очень непонятной, а непонятного боятся. И наконец, в её схемотехнических элементах активно использовались ферритовые кольца, а с переходом на транзисторы и интегральные схемы выгода от использования троичной системы стала сомнительной.

Сетунь-70 была организована по двухстековому принципу и по принципу организации напоминала язык Forth, который был придуман Чарльзом Муром в 1971 году. Для удобства использования аппаратурой была создана программная среда ДССП (диалоговая система структурного программирования), которая была очень похожа на Forth, но превосходила его по удобству. Поясняю - двустековая машина в железе и аналог языка Forth были сделаны в СССР до языка Forth за границей.

Борис Николаевич Малиновский

Один из соавторов этой книги. Работал в Киеве вместе с Глушковым. Занимался автоматизацией промышленных предприятий с использованием компьютера Днепр.

В книге упоминаются компьютеры Минск и Наири, но об их создателях в ней ничего не написано. Видимо это связано с тем, что Малиновский работал в Киеве и писал в первую очередь о тех людях, с работой которых был знаком.

Обидно, что идея ОГАС была воспринята руководством на столь примитивном уровне. Хрущов и Брежнев считали, что якобы с внедрением этой системы отпадёт необходимость в руководяще-направляющей роли партии. Но это абсолютная глупость. Машина является лишь инструментом достижения целей, а сами цели всегда ставил человек. Главная ценность системы управления экономикой страны заключалась бы в том, насколько легко и оперативно можно было бы планировать и находить её узкие места.

Нужно выпустить 500 танков? Пожалуйста, система отвечает что танки будут готовы через 2 года. Почему так долго? Находим узкое место - форсунки дизельных двигателей изготавливаются только на одном предприятии, а одну из технологических операций выполняет только один рабочий. Озадачиваемся выделением ещё одного рабочего - срок изготовления танков уменьшается до 1.5 лет и т.д. Можно было бы перепроектировать самые длительные технологические операции или заменять узлы на более технологичные, т.е. изготавливаемые меньшим количеством рабочих, с использованием меньшего количества или разнообразия станков, из более унифицированных деталей, за меньшее время. Эффект действительно мог оказаться поразительным, подобно тому, каким был эффект от плана ГОЭЛРО. СССР действительно меньшими силами могли бы обогнать запад не догоняя.