КРЕЯ и КРАСНОГО КРЕЯ (Электроника СС БИС)
часть x'5A
Об делениях и обделениях
Все участники проекта СС БИС гордо говорят, что в советской ЭВМ удалось реализовать выполнение операции деления за один такт вместо трех, как в Cray 1 (Крэйевцы через вычисление обратной величины деление делали), некто в ЖЖ лет пять или больше назад задался сакраментальным вопросом – можно или нет, считать его антисоветчиком если он считает, что если есть машина которая делит и умножает за одинаковое время, то это плохая машина. Если кто-нибудь пришлёт ссылку на этот пост или комментарий буду очень благодарен. К сожалению злыдни сломали поиск по комментарием в ЖЖ, и это усугубляется само и принудительно удалёнными акаунтами. Попробовал в часть x'33 рассмотреть как это было организовано. Под катом для дотошных попытка разобраться, а аппаратное деление в Электроника СС БИС было?
С учётом того, что некоторый комментатор указывал:
...Стойки-шкафы разделялись на процессорную, охлаждения, питания. Время прошло много, уже всего и не помню. В Википедии пишут, что была решена проблема деления в отличие от Крэя, но я прекрасно помню, что был как раз блок вычисления обратной величины, как и в Крэе. Разработка велась в Институте проблем кибернетики по адресу Щелковское ш., 2...
Анонимный автор этого комментария ошибается, даже поместив Институт проблем кибернетики по адресу НИИ Дельта, соответственно и с делением может быть аналогичная ошибка. Кроме того с учётом десятилетнего срока реализации проекта, операция деления могла появится в последние его годы.
> Там много чего было...
>
> Сначала у нас был имитатор ВКМ на БЭСМ6 (предоставленный наверное НИЦЭВТ). Пока старшие товарищи тренировались распараллеливать численный анализ, мы сочиняли элементарные функции. Лично я делал логарифм.
> Про это лучше может помнить Максим Цепков, который приложил руку более чем к одной функции.
>
> Ближе к диплому мы написали полноценную кросс-систему программирования.
> Написано оно было на C, так что по идее должно было работать на разных платформах. Помню, что проверяли (что тогда можно было жвьём пощупать?) VAX/VMS, Labtam 3000, что-то DECовское под UNIX, ну и PCшки конечно.
>
> В этой системе я сначала делал имитатор (интерпретатор двоичных кодов) ВКМ. В разработке подсистемы памяти мне помогали студенты, которых я уже и не помню :-( Интерактивный отладчик на основе имитатора потом делал Юрий Пудгородский.
>
> После того я писал компилятор языка ассемблера в объектный код (макровозможности делал Павел Кларк).
>
> Связывающий загрузчик (из объектного кода в абсолютный бинарный) делал Владимир Шарпай.
>
> Вот компилятор C (в ассемблер) я уже не осилил, поучаствовал только советами - его делали Виктор Яницкий и Юрий Панчул.
> Вроде бы Витя его довёл до состояния, когда он сам себя правильно компилировал на имитаторе.
>
> Ну и О.С.Бацукова нельзя забывать, который это организовал.
>
> Как-то так :-) И потом это всё оказалось ненужным :-(
>
> Аппаратная команда деления НАСКОЛЬКО Я ПОМНЮ была.
Как любил говорить ещё Рамзес, в миру Александр Коваль UA3AFO, если я хоть что-нибудь смыслю в радиотехнике, то... вот в данном случае, люди которые делали компиляторы просто обязаны понимать, а как таки осуществлялась операция деления в СС БИС. Но глядя на ситуацию из дня сегодняшнего, ежей терзают смутные сомнения, что такие матёрые человечища, или хоть один человек сейчас водится. А то, о ужас, таковых и тогда не было!
Возможно аппаратное деление предусматривалось реализовать в проекте СС БИС-2? Жаль узок круг посвещённых в эти тонкости. И даже люди, поминающие свою работу над компиляторами для СС БИС, которые кмк должны это знать точно, однозначно и наверняка не дают сейчас простого ответа. Вопрос с авторскими составами людей реализовавших или нет в оконцовке другие функции в СС БИС вообще детективная история :(( Жаль
Вот насколько можно прочитать (кликнув для увеличение) описание машины когда она ещё даже СС БИС названия не имела, аппаратного деления в ней нет. Если посмотреть по датам заявок на авторские, то на вычисление обратной величины это 83-й год, а на деление это 84-й, таким образом представление как реализовать это в железе было ещё до окончания ОКР и начала производства СС БИС на НПО "Кварц".
Таким образом логично предположить, и это будет не очень противоречиво, что операция деления в СС БИС аппаратно производилась через вычисление обратной величины, но результат спустя некоторую задержку выдавался каждый такт, и как следствие этого двоичная совместимость между CRAY-1 и СС БИС 1 была не полной. А плюсом к этому использование не родных "крэевских" дисков, а болгарских ИБМ совместимых и своего процессора для работы с массовой памятью добавляли ещё больше дополнительных команд, и как следствие отличий, не зная деталей которых просто нельзя самостоятельно написать работающие компиляторы и системное ПО для нашей многострадальной СС БИС.
Если посмотреть на технологию создания системного ПО для ЕС и СМ ЭВМ в СССР, то она мало чем отличалась от того, что известно как БолгенОС в наши дни, и соответственно наличие аппаратных отличий у СС БИС, и отсутствие понимания, в лучшем случае памяти о этих мелких деталях/различиях, в которых как водится скрывается дьявол, порождают сомнения в существовании хоть какого-нибудь годного в оконцовке софта, к моменту реализации Красного Крея в железе. Хотя в кручении на виртуальной машине/ах чего-нибудь можно быть уверенным, но вот в возможности холодного старта СС БИС с загрузкой с диска ОС ОМ и считывания/записи данных используя комманды для работы с даными в массовой полупроводниковой памяти, это очень большой вопрос.