Взлет и падение БЭСМ-6

В Интернете распространено забавное заблуждение — что якобы у СССР были собственные прекрасные ЭВМ, которые вредители из Политбюро уничтожили, приняв решение ориентироваться на копирование западной техники — прежде всего на IBM S/360. И самое смешное в этом то, некоторые формальные основания так заявлять есть — однако если начать копать вопрос вглубь, разверзаются бездны.

Как известно, первым электронным универсальным компьютером является американский ENIAC. Машина имела впечатляющие характеристики: 18.000 электронных ламп, занимала площадь 90×15 кв.м., весила 30 т и потребляла 150 кВт. Старались не отставать от американцев и в Англии. Но в СССР работы над ЭВМ существенно задержались. Я не буду сейчас рассказывать всю историю метаний и ошибок «советской школы» ЭВМ — достаточно уже того, что из всего многообразия созданных в СССР ЭВМ при сравнении с современной им западной вычислительной техникой неизбежно остается сиять единственная «самобытная» машина — БЭСМ-6. Все остальные «советские компьютеры» сравнений не выдерживают.

Попутно я вам постараюсь объяснить, ЗАЧЕМ было принято решение о копировании IBM S/360. И ответ на это вопрос очень простой — СОФТ.

Железо сделать — особо много ума не надо, упомянутая выше серия БЭСМ-6 была технически вполне приличной машиной, архитектурно — так даже очень приличной по тем временам. Однако советские НИИ так и не смогли выродить для этой машины ни приличной операционной системы, ни приличных компиляторов с Фортрана и Кобола, не говоря уже о чем-то большем. А писанина в машинных кодах и запуск задач в монопольном режиме — это для конца 60-х годов уже выглядело архаизмом.

При этом пресловутая архитектура БЭСМ-6 в значительной степени воспроизводила архитектуру системы CDC 1604 фирмы Control Data Corporation (главный конструктор — Сеймур Крэй), серийно выпускавшейся с 1960 года (полностью совпадают некоторые важные технические характеристики, такие как уникальная для этих двух систем разрядность слова и адреса и разрядность машинных команд в слове, использование одноадресных команд с индексным регистром, регистра скрытых разрядов, кодировка символов и ты ды). Также ряд архитектурных решений БЭСМ-6 повторяет систему Atlas (британский военный суперкомпьютер) и CDC-6000 всё того же Крея. Есть мнение, что БЭСМ-6 получилась в процессе метаний — начали передирать с CDC 1604, потом кинулись внедрять туда новации с Атласа, потом еще элементы CDC-6000 и какие-то свои задумки, вдобавок не всё получалось на тогдашней советской элементной базе — стали лепить аппаратные заплатки, ну и вот вышел странный гибрид, имеющий черты исходных архитектур — но сильно перекорёженный. Об этом ниже, а пока поговорим про софт.

Очень много сил было потрачено на адаптацию стыренного с CDC транслятора Фортрана к БЭСМ-6, а когда это было сделано — внезапно выяснилось, что программы на Фортране (ворованные исходники), прекрасно работающие на CDC-1604, вылетают либо дают неверные результаты расчетов при запуске на БЭСМ-6. Разработчикам, адаптировавшим транслятор Фортрана для БЭСМ-6, была поставлена задача обеспечения полной совместимости с CDC 1604 — но они с этой задачей не справились.

Позднее даже вышло несколько монографий, разбиравших причины того, почему этого не удалось сделать.

Вот тогда-то стало ясно, что если вы хотите юзать ворованный софт без проблем — надо полностью копировать архитектуру машин. Эмуляция неэффективна и имеет ограниченную применимость, кросс-трансляция сложна и трудоемка в отладке.

Именно тогда и было принято решение — для вычмашин копировать IBM S/360, а для управляющих машин — PDP-11. Выбор архитектур был сделан исходя из наличия софта и ОС под них, а качество самих архитектур рассматривалось во вторую очередь.

Казалось бы — с софтом-то что за проблемы? Вроде как мы, русские, не тупые. Уж свой компилятор-то под свое железо собрать можно было?

Увы, всё не так просто. Единственный приличный компилятор под БЭСМ-6 — это курочкинский компилятор Алгол-60. И всё — остальное, как ни бились, было кривым куском гугна. При этом аккуратно к моменту, когда у Курочкина этот компилятор стал работать еще на БЭСМ-2 — европейцы полностью переделали Алгол, он стал называться Алгол-64, и героический труд советских программистов оказался спущен в унитаз. Ну как оказался — СССР так и сидел на этом старом Алголе до перестройки, потеряв возможность тырить алгольный софт из всякого там ЦЕРНа и так далее.

Компилятор для Алгола-64 курочкин уже не осилил.

Кроме того, имеется другая проблема: стыренный из США софт на фортране, будучи скомпилирован на БЭСМ-6, не работал. Попытки добиться его работоспособности даже затачиванием компилятора на кросс-компиляцию известной американской системы — не оказались успешными.

А перед советской вычтехникой задача стояла именно такая — сделать так, чтобы на советских машинах можно было запускать ворованный софт. В идеале — вообще без проблем, в реале — с перекомпиляцией и не слишком трудоёмкой доделкой-отладкой. Потому что писать всё своё — было утопией, это стало ясно уже к середине 60-х. И дело в конечном счете даже не в операционных системах и компиляторах — их кое-как делали свои, дело в прикладных пакетах, коих уже в 60-е годы были многие тысячи, и никакие советские НИИ были не в состоянии обеспечить софт такого качества в таком количестве. Только тырить и копировать, только так можно было обеспечить народное хозяйство современным софтом и не отстать окончательно.

Для БЭСМ-6 большим коллективом разработчиков под руководством В. Ф. Тюрина в 1971 г. была создана операционная система ДИСПАК. Она потом использовалась почти на всех ЭВМ типа БЭСМ-6 вплоть до 90-х годов, и дальше перекочевала на Эльбрус. Благодаря Диспак в 1972 году к БЭСМ смогли наконец-то подключить магнитные диски. Для тех, кто не в курсе — компы ИБМ работают с магнитными дисками с 1956 года. Это чтобы вы себе лучше представляли «передовую архитектуру» БЭСМ, и насколько она отставала от ИБМ.

Вы спросите — а как же БЭСМ-6 работала без дисков? А у нее были магнитные барабаны. 1 барабан имел емкость 16 килослов (192 килобайта) и весил чуть не полтонны.

Барабанов можно было прицепить, насколько я помню, 4 штуки максимум. При этом обычные жесткие диски ИБМ имели емкость 5 мегабайт, а большие — 30 мегабайт. Из этого понятно, что самая лучшая машина СССР БЭСМ-6 катастрофически отставала от продукции ИБМ в объеме обрабатываемых данных.

Но как же так вышло? А всё дело в том, ДЛЯ ЧЕГО строили машины серии БЭСМ. Внезапно для очень многих, их строили в качестве УПРАВЛЯЮЩИХ машин для ракетчиков — все остальные сферы применения у БЭСМ появились уже потом, по принципу «ничего лучшего все равно нету».

БЭСМ-1 была завершена осенью 1952 года и являлась скорее демонстрационной моделью, хотя и работоспособной (именно она на фото в заголовке). Известна также как БЭСМ Академии Наук (БЭСМ АН). Построена на электронных лампах (5.000 ламп — сравните с 18.000 ЭНИАК) в единственном экземпляре.

БЭСМ-2 — усовершенствованный и несколько удешевленный вариант БЭСМ-1, подготовленный для производства. Ламп стало меньше, поскольку часть из них заменили на полупроводниковые диоды. На самом деле БЭСМ-2 — это как бы «гражданский» вариант военной машины М-20, разработка которой для нужд ПВО и наведения ракет и была исходной целью. Можно встретить утверждение, что на момент окончания разработки (1958-1959 годы) М-20 являлась самым быстрым компьютером в мире. Данное утверждение, однако, не соответствует действительности: быстродействие М-20 составляло 20 тыс. операций в секунду, в то время как, например, IBM 704, выпускавшаяся с 1954 года (то есть на 5 лет раньше), имела быстродействие 40 тыс. операций в секунду, а представленная 30 декабря 1958 года и поставлявшаяся с 1959 года транзисторная ЭВМ IBM 7090 — более 220 тыс. операций в секунду.

Вариантом М-20 является машина М-40, входившая в комплекс для управления РЛС дальнего обнаружения и сопровождения цели и точного наведения противоракеты на баллистическую ракету противника. М-40 начала выполнять боевые задачи в 1957 году. Всё еще ламповая.

М-50 введена в 1959 г. и явилась модификацией ЭВМ М-40 на полупроводниках. В конечном счете из нее сделали «гражданскую версию», называвшуюся БЭСМ-4. Дальнейшее развитие — многопроцессорная 5Э92б с общим полем памяти, опять же для систем управления ракетным оружием.

В конце концов эта архитектура, будучи реализована на микросхемах, вылилась в машину 5Э26, применявшуюся для наведения ракет ЗРК С-300 первых поколений.

Для БЭСМ-4 существовало не менее 3 разных компиляторов с языка Алгол-60, компилятор Fortran, не менее 2 разных ассемблеров (дубнинский и Баяковского), компилятор с оригинального языка Эпсилон.

И вот, наконец, БЭСМ-6 была разработана в середине 1960-х годов и сдана Госкомиссии в 1967 году. С 1968 года начат серийный выпуск на заводе Счётно-аналитических машин (САМ) в Москве. Считается первой советской супер-ЭВМ второго поколения — на полупроводниковых транзисторах. Ну из тех, которые не были закрыты грифом «секретно».

БЭСМ-6 стоит особняком — она не является развитием архитектур предыдущих машин БЭСМ, но на ее облик наложились всё те же требования заказчиков. Именно этими требованиями было вызвано то, что Лебедев в создании БЭСМ-6 отталкивался от архитектуры американских машин CDC, а не от IBM.

Тут надо понимать, что Control Data Corporation делала машины для систем управления и научных расчетов — в то время как International Business Machines делала машины для бизнеса, в основном для финансовых расчетов и систем учета. Это принципиально разные сферы применения, и они накладывали свой отпечаток на архитектуры систем.

БЭСМ-6 стала еще более ярким примером такого разделения областей применения. Мало кто из «любителей БЭСМ» вообще в курсе, что в БЭСМ-6 отсутствует целочисленная арифметика. Знаете ли вы, отчего это так? Ведь в CDC-1604, появившейся на 8 лет раньше, основные характеристики которой повторяет БЭСМ-6, целочисленная арифметика была, и весьма развитая. В какой момент копирования она из БЭСМ-6 исчезла, и из-за чего?

А всё довольно просто. Основной задачей БЭСМ-6 были траекторные вычисления движения ракет. Там целочисленная арифметика не нужна. Поэтому когда Лебедев столкнулся с трудностями в совмещении двоичного и «плавающего» АЛУ — он просто выкинул двоичный вычислитель, решив эмулировать эти операции на «плавающем» вычислителе.

CDC-1604 и БЭСМ-6 были машинами с сумматором. Т.е. в них был один выделенный регистр (на самом деле 2 — аналог AL и AH в терминологии Intel 8086), в котором и производились все операции. Чем-то это похоже на стековую архитектуру JVM. Понятно, что при такой архитектуре приходится постоянно загружать и выгружать значения из памяти/в память. Для этого уже тогда применялись различные схемы адресации, и (а куда деваться) существовали т.н. индексные регистры. Причем в обеих машинах они «кривые» — не совпадают с размером слова (!) и размером регистра аккумулятора, и даже не кратны ему. В CDC-1604 и БЭСМ-6 мы имеем 15-ти битные индексные регистры и 48-битный аккумулятор.

Но это, конечно же, случайное совпадение, ага.

Зато на БЭСМ-6 были экстракоды, прямиком потыренные с британского Атласа (это суперкомпьютер, разработанный британцами для наведения ракет — позднее он использовался и для научных вычислений, но то такое).

Первый компьютер Atlas был официально введен в эксплуатацию 7 декабря 1962 года. Тогда его вычислительная мощность считалась равной четырём компьютерам IBM 7094 и почти такой же, как у компьютера IBM 7030 Stretch, являвшегося на тот момент самым быстрым суперкомпьютером в мире. Разработка БЭСМ-6 завершена в конце 1966 года, первый серийный образец выпущен в 1968 году. Вопросы?

Часто пишут, что в БЭСМ-6 была и поддержка виртуальной памяти (а в Atlas она была!), но на самом деле это не верно. С современной точки зрения «поддержка виртуальной памяти» дает нам возможность адресовать больший объем памяти, чем реально установлен на машине (к примеру — процесс может получить 4 Гб памяти, при том, что реально установлен всего гигабайт). Однако на БЭСМ-6 (поздних модификаций) сложилась парадоксальная ситуация, обратная вышеописанной. Физической памяти на машине было доступно больше, чем ее можно было адресовать! Сиречь, имея 128 килослов памяти, мы должны были по-прежнему работать с ней через 15-тибитные регистры адреса, как в CDC-1604. Из-за этого в БЭСМ-6 ввели натуральную порнуху — специальные регистры, доводившие адрес памяти до 17-битного. Это и называлось — «виртуальная память», хотя это просто плавающие страницы.

В системе Atlas адрес изначально был 24-х битным, и при попытке адресации за пределы реальной памяти супервизор подкачивал с барабана страницу с соответствующим «виртуальным адресом» в реальную (ферритовую) память, примерно так, как это происходит сейчас при подкачке страниц с диска. Т.е. механизм виртуальной памяти был уже вполне традиционным.

«Конвейер» на БЭСМ-6 подсмотрен у CDC-6600 того же Крэя — вот только у Крэя он реально обеспечивает распараллеливание исполнения (там каждый процессор имел 10 независимых функциональных блоков, могущих исполнять инструкции из конвейера параллельно), а у БЭСМ он болтается довольно бессмысленным придатком — например, если ALU умножало два числа, то ничего другого оно делать уже не могло, и конвейер стоял.

Собственно, оригинальных идей в БЭСМ-6 практически не было. Машина представляла собой компиляцию из чужих решений — примерно так же, как автомат Калашникова не содержит в себе ни единого нового оригинального решения, он представляет из себя удачную компиляцию решений, известных задолго до него. Набор решений — оригинален, но сами решения — нет.

Разумеется, в данном случае нельзя говорить о тупом копировании. Правильно говорить о творческой переработке базовой архитектуры CDC c добавлением множества идей из других источников. Причем не всё в этой комбинации у БЭСМ-6 вышло удачно, но в целом машина работала, и работала неплохо.

Широко известное заблуждение касается наличия в БЭСМ-6 кэш-памяти. Об этом пишет чуть не каждый второй. На самом деле, назвать то, что имелось в машине «кэш-памятью» можно только с очень большой натяжкой. Примерно такой, как изобретение Рентгена Иваном Грозным (я тебя, боярин, насквозь вижу!). Да, принцип похож, но до полноценной реализации еще пахать и пахать.

Что было на самом деле? Четыре т.н. буферных регистра числа (БРЧ) куда считывались слова из памяти, чтобы потом к ним могло быстрее обратиться арифметическое устройство (АУ). Аналогично, имелось 8 (забавная асимметрия) буферных регистров записи (БРЗ) куда число помещалось перед отписыванием в память. Адрес, куда должен быть записан операнд, сохранялся в т.н. БАЗ (буферном регистре адреса записи). Если в дальнейшем оказывалось, что исполнительный адрес совпадает с одним из адресов в БАЗ/БАС-ах, операнд брался из БРЗ/БРЧ а не из памяти. Вот и вся наука.

Полноценная же реализация кэш-памяти впервые появилась в машине IBM/360-85 в 1969 году.

Второе заблуждение говорит о БЭСМ-6, как якобы предвестнице RISC-архитектуры. На этой почве тоже строится много спекуляций. Но и тут, истина довольно далеко. Безусловно, в БЭСМ-6 не слишком много команд. Можно сказать даже — мало. И, разве что по этому параметру она сближается с RISC. Другое дело, что команды эти — совсем не похожи на традиционные RISC-овские. Они имеют совершенно различную сложность и времена выполнения. Ключевыми особенностями RISC можно считать:

  1. Небольшой набор простых команд
  2. Минимизация команд работы с памятью, за счет большого числа регистров общего назначения
  3. Небольшая длительность выполнения каждой команды (1-2 такта) CPU

Ни одна из этих особенностей не присуща системе команд БЭСМ-6. Она включает как очень простые команды (запись, сложение), так и довольно сложные (деление, сборка). Время выполнения команд различается в десятки раз! Например, чтение требует 3-х тактов, сложение — 11-ти, деление — 50 (в среднем). О максимальных временах выполнения говорить не приходится вообще — там ужас, ср@ное сложение могло длиться 280 тактов.

Последнее заблуждение частично вытекает из двух первых, и, кроме того, и сильно подогревает самомнение ура-патриотов. Состоит оно в том, что БЭСМ-6 была быстрой, и не просто быстрой, а прямо таки супер-быстрой машиной для своего времени.

Спору нет, на европейском уровне характеристики БЭСМ-6 смотрятся неплохо. Но и только. Даже не беря творения Сэймура Крэя (по сути — тоже числодробилки), обычные майнфрэймы IBM были не хуже на научных расчетах, и существенно лучше БЭСМ-6 на финансовых.

Удивляться тут нечему. Еще раз напомню, что БЭСМ-6 не имела полноценных команд целочисленной арифметики, и значит, любые арифметические команды выполнялись на вещественном сумматоре. Это приводило к тому, что даже в самом лучшем случае сложение занимало 5 тактов (в среднем — 11) а умножение — 15 тактов (в среднем — 18.5, в худшем — 162, драть!!!!). Что уж говорить о каком-нибудь сложении десятичных чисел. В результате, программы не только выполнялись медленнее, чем могли бы, но и занимали больше места.

Об этом упоминает и В.В. Пржиялковский в своем обзоре — «Проведенные в ИПМ АН СССР исследования показали, что программы, составленные для IBM-360, требуют в 1,5-3 раза меньшего объема памяти, чем программы БЭСМ-6, “Весна”, М-20».

Если же говорить о производительности в цифрах — по «популярному» тогда тесту Whetstone, БЭСМ-6 набирала примерно 0.3-0.4 миллиона операций с одинарной точностью в секунду, что было на уровне средних моделей IBM. И никаких чудес, увы…

И вот теперь мы подходим к главному. Созданная для управления ракетами, архитектура БЭСМ-6 совершенно не подходила для компьютеризации народного хозяйства, в котором требовалось решать задачи учета и контроля, а не вычисления траекторий движения тела в гравитационном поле. Зато для этих задач прекрасно подходила архитектура машин ИБМ.

Я вам больше того скажу — и для целей управления ракетами БЭСМ-6 подходила плохо из-за чудовищного разброса времени исполнения команд (Лебедев просто не понимал, насколько важно для систем реального времени иметь ПРЕДСКАЗУЕМОЕ время выполнения команд). Вот посмотрите, как устроена система команд в пресловутом микропроцессоре i8080 — там заранее четко известно, за сколько тактов выполнится та или другая команда. Разумеется, сложение аккумулятора с регистром выполняется быстрее, чем сложение его же с ячейкой памяти — но эта разница так же фиксирована. Процессор работает настолько чётко, что им можно музыку играть или синусы генерировать, основываясь только на времени исполнения команд. А в БЭСМ-6 время исполнения гуляет в зависимости от случайных явлений — попал или не попал адрес в предвыборку, даже от значения операндов время исполнения зависит.

Инженеры Интел, когда создавали свои первые микропроцессоры — ориентировались именно на управление физическими объектами, поэтому сделали их такими. А академик Лебедев ничего этого не понимал, витая в математических облаках.

Вот поэтому к концу 60-х годов СССР пришел, вообще не имея приличных машин для автоматизации учета и управления народным хозяйством, а для управления ракетами в оборонных системах имея архитектуру ЭВМ, показавшую ряд серьезных недостатков, причем недостатков неустранимых by Design — это отчетливо выяснилось при доводке систем М-40 и М-50 в системе ПРО страны.

Опираясь на это понимание, тогда и было принято решение — для вычмашин копировать IBM S/360 (это хорошая архитектура для управления нархозом, и удовлетворительная — для научной математики), а для управляющих машин выбрали PDP-11.

Между прочим, архитектура PDP-11 практически гениальна именно для тогдашней элементной базы и применения машины для real-time управления. Но это уже совсем другой разговор.

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

Материал: Proper специально для TopRu.Org
Настоящий материал самостоятельно опубликован в нашем сообществе пользователем Proper на основании действующей редакции Пользовательского Соглашения. Если вы считаете, что такая публикация нарушает ваши авторские и/или смежные права, вам необходимо сообщить об этом администрации сайта на EMAIL abuse@newru.org с указанием адреса (URL) страницы, содержащей спорный материал. Нарушение будет в кратчайшие сроки устранено, виновные наказаны.

Дочитал до конца? Жми кнопку!

Вам может понравиться...

43 Комментарий
старые
новые
Встроенные Обратные Связи
Все комментарии
✡Ոթℴթ∋চҿ✡
✡Ոթℴթ∋চҿ✡
5 лет назад

Статья проплачена ИИ.
Иим же написана

Ⱬ- ⱤØ฿₳Đ〄
Ⱬ- ⱤØ฿₳Đ〄
для  ✡Ոթℴթ∋চҿ✡
5 лет назад

Сам о себе написал жэж.. Аш фото приложил)
Но мы то (или не мыто?) знаем что такое ИИ..

✡Ոթℴթ∋চҿ✡
✡Ոթℴթ∋চҿ✡
для  Ⱬ- ⱤØ฿₳Đ〄
5 лет назад

Зннайм. Нонис кажъм

Ⱬ- ⱤØ฿₳Đ〄
Ⱬ- ⱤØ฿₳Đ〄
для  ✡Ոթℴթ∋চҿ✡
5 лет назад

ой ёёёё. Как терь житьта..
comment image

✡Ոթℴթ∋চҿ✡
✡Ոթℴթ∋চҿ✡
для  Ⱬ- ⱤØ฿₳Đ〄
5 лет назад

Ригулярно

Ⱬ- ⱤØ฿₳Đ〄
Ⱬ- ⱤØ฿₳Đ〄
для  ✡Ոթℴթ∋চҿ✡
5 лет назад

А как жэж струны души?
comment image

Ⱬ- ⱤØ฿₳Đ〄
Ⱬ- ⱤØ฿₳Đ〄
для  Proper
5 лет назад

Дададада… стань инвестором))

✡Ոթℴթ∋চҿ✡
✡Ոթℴթ∋চҿ✡
для  Ⱬ- ⱤØ฿₳Đ〄
5 лет назад

Щекельзяка, Щекельзяка,
Холодильнге гогорякаъ.

✡Ոթℴթ∋চҿ✡
✡Ոթℴթ∋চҿ✡
для  ✡Ոթℴթ∋চҿ✡
5 лет назад

Типа речевка.

Ⱬ- ⱤØ฿₳Đ〄
Ⱬ- ⱤØ฿₳Đ〄
для  ✡Ոթℴթ∋চҿ✡
5 лет назад

Холодильниг..кхе… Скажи ешо чта йа твой до дыр..

http://litcult.ru/u/dd/blog/17957/foto.jpg

✡Ոթℴթ∋চҿ✡
✡Ոթℴթ∋চҿ✡
для  Ⱬ- ⱤØ฿₳Đ〄
5 лет назад

Точно немой

Gres
Gres
для  Ⱬ- ⱤØ฿₳Đ〄
5 лет назад

Котэ правокатыр, дэмонстрыруэт жэст гурузынскых протэстуущых

✡Ոթℴթ∋চҿ✡
✡Ոթℴթ∋চҿ✡
5 лет назад

А у нас в деревне все
Слушают х…ню,
Слушают Рахманинова,
Гайдна и Шопена.
Только я считаю что
Всё это — лайно.
Я поклонник музыки иной
Люблю я грюппу Диппурплеер
Грюппу Диппурплеер
Хрюпу Диппурплеер
Крайне я люблю.

Как тарас друзьяменя
Ударили байдаркой .
Я очнулся и пошёл
В местный кабачок.
Там лабал какой то хмырь
Сонату номер пять.
Я сказал ему iбенамать
Ты сбацай грюппу Диппурплеер
Вот тебе задача
Грюппу Диппурплеер
Вот тебе полтос.

✡Ոթℴթ∋চҿ✡
✡Ոթℴթ∋চҿ✡
для  ✡Ոթℴթ∋চҿ✡
5 лет назад

Возмущяццо начали
В зале зрителя:
Почему остановился неземной музлон?
И чо за хър с усами и байдаркой
Струны порасстроил нам в душáх

Александр
Александр
5 лет назад

А где можно почитать про Алгол-64?

bib_l
bib_l
для  Proper
5 лет назад

А чё -Алгол — чё — Алгол! Вон я когда-то часть диплома на нём писал, ну как писал — была программа ну и народ сказал — студент всё равно тут околачиваешь, ну оптмизируй как-нибуть, а то медленная собака, самое смешное по результатам перешел в статус полудурка — повышение — чё! После PL-1 и Fotran-a вполне себе язык, ну если привыкнуть. И вот на этой самой БЭСМ-6. Правда чуть не был бит при попытке самому набить перфокарты — мастером эти перфорторов — убёг! Дамы ржали… Вообще зал большой, народу много — весело. Да… Кстати вполне себе конец 80-х, новьё.

bib_l
bib_l
для  Proper
5 лет назад

«Программировать на PL-1 легко и приятно если представляешь в какой ASM код транслируются его команды» не помню источника, но мне нравится. Я только когда на кафедре подрабатывал сталкивался — на ЕС-1033 народ со страшной силой обсчитывал диссеры, спасало только наличие 6 терминалов — хоть один да доступен, а то я как студент прохладной жизни не представлял во что там транслирует мои команды, пичалька такая, да…

Александр
Александр
5 лет назад

И, кстати, у машин типа M-20 арифметики с фиксированной запятой тоже не было.

Kokunov
Kokunov
для  Proper
5 лет назад

Принципиально можно этот момент обойти… У нас 2 года назад в ТЗ попало требование одного мастера добычи на передачу параметра из одного источника данных через телемеханику в АСУ ТП верхнего уровня целочисленных значений. Ну как треьование — «а нахер им то что после запятой?» Когда это всплыло, попутно выяснилось, что значения не округлялись, а считывались контроллером как есть — только целая часть. Итого — прошитых 3 контролера, которые находятся в бубенях западной Сибири. Решили просто — нам достаточно было 3х знаков после запятой, домножали на 1000 значение в источнике, и делили на 1000 в асу тп верхнего уровня. Благо 4е байта на переменную это позволяли…

Xenophob
Xenophob
5 лет назад

>>советские НИИ были не в состоянии обеспечить софт такого качества в таком количестве. Только тырить и копировать, только так можно было обеспечить народное хозяйство современным софтом и не отстать окончательно

Вполне были бы в состоянии, набор софта, требуемого для решения большинства задач, в принципе не велик и вполне конечен, от токо для этого надо было исключить принцип ‘каждый суслик — агроном’, когда каждое НИИ клепало свою ЭВМ как умело и исключить бодалово между ведомствами, когда ресурсы палились абы куда, лишь бы не как у соседей.

Закрепив задачи по разработке конкретно софта за конкретным НИИ, заодно ограничив разработку архитектур двумя, максимум тремя, также закрепив их за конкретными НИИ, можно было получить требуемый результат ограниченными ресурсами.

Утопия, в общем.

Xenophob
Xenophob
для  Proper
5 лет назад

Дык одна из причин невзлёта — конкуренция между ведоствами и, до кучи, между различными структурами внутри ведомств, была охрененная, при официальной позиции что у нас такого нет (что, собссно, было одним из системных багов Союза — изрядные расхождения между декларациями и реальностью).

Я когда интересовался историей вопроса охреневал, скоко разных организаций делало в параллель одно и то же, разной степени кривости и какие подковёрные игры при этом разыгрывались.

Да, до кучи, по понятным причинам, никто не был заинтересован в эволюционном развитии уже сделанного, соответственно, лепились всё новые и новые кадавры без какой-либо приемственности архитектур, ессно.

Какой в таких условиях, нахрен, результат, всё в свисток уходило.

Xenophob
Xenophob
для  Proper
5 лет назад

>>А лепили каждый своё — потому что за своё деньги идут своим, а за чужое — чужим.

Именно. А итог — переведённые на гугно ресурсы. Та жы кириллизация делалась в 90-е группами товарисчей на раз, практически все программные продукты сперва были переведены небольшими пиратскими группами, официалы подтянулись гораздо позже и, зачастую, пиратский перевод был качественней…

Да, порадовало 136 программных средств, не уверен что смогу стоко перечислить даж щас, а это 83-й, мать их.

Ну и если посмотреть внимательно, то по тех жы серьёзных САУ на шарике по пальцам одной руки пересчитать, примерно как производителей паровых турбин. А в Союзе каждое НИИ пилило (и даже иногда пыталось внедрять) что-то своё, блин. В итоге — иппучий зоопарк без какой-либо техподдержки.

Xenophob
Xenophob
для  Proper
5 лет назад

Дык это понятно, вопрос в том, что это была попытка создать исчо одно НИИ, а не разделить задачи, зафиксировав их между имеющимися и заставив их обеспечивать вертикальную совместимость софта/железа.

Результат на лице.

А так, то, что вынужденно делали буржуи (совместимость, как минимум по вертикали, техподдержка), что бы не потерять вложенное, можно было бы (в теории, ессно) заставить делать принудительно.

goerqi
goerqi
для  Xenophob
5 лет назад

Техподдержка и технологии в начале 80-х:

Вышел доп.набор команд СМ-2, совместимый с СМ-2М. Наши программисты захотели поставить. Надо менять микрокод. Везу две платы на завод (из Москвы в Северодонецк).
Подходит моя очередь, несу платы в цех. Монтажница говорит «Хочешь побыстрее — бери прошивку, диктуй. Читай адрес». Смотрит по таблице какая ножка какой диодной сборки дешифратора адреса соответствует этому адресу. Отпаивает от этой ножки провод, припаивает новый. «Теперь читай код» (в двоичном виде). Прошивает в такт моей диктовки проводом на шпульке несколько десятков сердечников, 0 — внутрь сердечника, 1 — снаружи (или наоборот, не помню), ищет ножку на другой сборке, припаивает к ней второй конец. Одна микрокоманда прошита. На одну команду — 10-30 микрокоманд. В доп.наборе несколько команд.

Вышел пакет исправлений/дополнений операционной системы.
Беру три (для надёжности) катушки магнитных лент, везу в Северодонецк, сдаю заказ, жду несколько часов, получаю обратно. При этом модемы у нас были, у них тоже…

Hmm4
Hmm4
для  Xenophob
5 лет назад

Внешне, в Штатах всё было похоже (с поправкой на масштаб, конечно) — десятки фирмочек, конкурирующих, ворующих друг у друга, дерущиеся за заказы… Но потом появился винтел, который и снёс всю эту массу. В том числе и великих Крея, Дек, СиликонГрафикс, Макинтош, и многих других; в том числе советские ЭС и СМ — но тут ещё и перестройка поспособствовала…

Xenophob
Xenophob
для  Hmm4
5 лет назад

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

В Союзе каждый следующий кадавр, порождённый очередным НИИ, обычно вообще никак не соотносился с предыдущим кадавром (фонды на НИР/НИОКР же).

И про техподдержку этих кадавров можно было не вспоминать.

Xenophob
Xenophob
для  Proper
5 лет назад

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

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

Требования, которые по идее должны быть конкретными донельзя (норматив жы) — размыты со всякими бла-бла-бла, и не только не прописан порядок их применения, но исчо до кучи часть терминов и определений отсутствует и не прописано, а как, собссно, достичь ими декларируемого???

Ну и рыдалЪ, читая отчет о результатах разработки одной системы такими, вопрос, что жы должно было получиться в итоге, так и остался вопросом))

Начинаешь с такими грить — в ответ задумчивое ‘эммм, ну это же и так понятно’.

Тьфу.

goerqi
goerqi
5 лет назад

> для управляющих машин выбрали PDP-11.
Ещё HP 21xx (М-6000/М-7000/СМ-1/СМ-2). Их было поменьше, но номенклатура УСО (устройств связи с объектом) у них была побогаче, чем у советских клонов PDP-11. Стояли на химзаводах, электростанциях, междугородных телефонных станциях, в метро…
Меня прямо умиляло название компилятора с Алгола — HPAL.
И ещё прикол — в дополнительном наборе команд был добавлен ещё один код для пары уже имеющихся команд с комментарием «добавлено для совместимости с HP 21MX».

goerqi
goerqi
для  Proper
5 лет назад

Proper, ПС-2100 — это развитие ПС-2000

ПС-2000 — это:
— Один SIMD-мультипроцессор из 8 — 64 процессоров.
— Пиковая производительность 200 млн операций в секунду в максимальной комплектации (64 процессора)
— Чудной конструктив (для минимизации межпроцессорных соединений Крей тоже по той же причине чудил, но немножко не так).
— НИР по разработке ПС-2000 был выполнен в ИПУ АН СССР.
— ОКР был выполнен в НИИУВМ (НПО Импульс) при участии специалистов ИПУ.
— Специально под проект ПС-2000 ИПУ выводился в двойное подчинение АН и Минприбора. Межведомственные конфликты разруливались в Минприборе.
— Произведено на СПЗ больше 150 штук.
— Использовались главным образом в геофизике, а ещё в космической отрасли, на АЭС…

ПС-2100 это:
— 10 SIMD-мультипроцессоров по 64 процессора.
— Новейшая элементная база с уменьшением габаритов мультипроцессора в разы
— стандартные 19″ шкафы.
— Произведено на ОЗВТ несколько штук (до развала СССР). Успел ли Импульс их кому-нибудь поставить? Передали ли технологию c ОЗВТ на СПЗ?

goerqi
goerqi
для  Proper
5 лет назад

> М-7000 — это двухпроцессорная М-6000.
Ну не совсем так. У М-7000 было в 4 раза увеличено адресное пространство, появились базовые и индексные регистры и отдельные команды для работы с ними. Соответственно + два способа адресации + 2 способа ввода-вывода. Кроме того размер страницы был меньше и адрес текущей страницы фиксировался не на округлении текущего до размера страницы, а на текущем минус полстраницы. Был предусмотрен сопроцессор для плавающей точки и чего-то ещё, реализованного впоследствии в СМ-1/СМ-2 без всяких сопроцессоров, но экземпляр машины, который у нас был (зав.№0004) был без него. Ну ещё появились аппаратная защита памяти, сколько-то аппаратных прерываний, ещё что-то по мелочи. Двоичная совместимость с М-6000 за пределами нулевой страницы пропала. Хотя объектный код М-6000 с М-7000 оставался совместим.

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

goerqi
goerqi
для  goerqi
5 лет назад

Вообще развитие М-6000 -> М-7000 -> CM-2 напоминает интеловский тик-так. М-7000: нововведения в архитектуре на элементной и конструктивной базе М-6000 — «тик». СМ-2: новая элементная и конструктивная база на архитектуре М-7000 — «так».

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

Ещё аналогия: мультипроцессор ПС-2000 подключался к СМ-2, на ней работала операционная система, она загружала задачи на мультипроцессор. Ну почти как современный интеловский компьютер с графическим или ПЛИСовым ускорителем :-)

Чтобы добавить комментарий, надо залогиниться.