Советские компьютеры
Jan. 28th, 2010 01:16 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
В последние дни мне попалось несколько материалов по советской вычислительной технике, и родился этот пост. Наверное, многие до сих пор считают, что советская вычислительная техника была сильно отсталой, по сравнению с американской. Однако, это было не так и не всегда. Тема для меня близкая.
Начнем с того, что триггер был изобретен советским ученым М.А.Бонч-Бруевичем в 1918г в нижегородской радиолаборатории, а его соратник О.В.Лосев в 22г изобрел "кристадин" -- прообраз современного транзистора. Нобелевскую премию за это получили, как обычно, американцы. Нескольками годами позже он же изобрел свето-диод и фото-диод. То есть определенный научный задел в области радиотехники в СССР существовал еще в 20е годы. Однако, острая необходимость в вычислительных машинах появилась только с развитием атомной и ракетной техники. И успех СССР в атомной энергетике, космосе, ракетной и противоректной технике -- это косвенное подтверждение высочайшего уровня вычислительной техники, которая разрабатывалась для военной и космической области.
Первые советские вычислительные машины создавались в Киеве, в Институте Электротехники АН УССР. Именно там бала создана и запущена в 1950г МЭСМ -- Малая Электронная Счетная Машина -- первая ЭВМ в континентальной Европе. Она создавалась под руководством С.А.Лебедева, который в 50г был переведен руководить в Москву Институтом Точной Механики и Вычислительной Техники (ИТМиВТ). МЭСМ задумывалась как макет для БЭСМ -- Большой (или Быстродействующей) Электронной Счетной Машины. В БЭСМ были впервые в мире применены такие базовые принципы, как конвеер и стэк. БАСМ-1 или БЭСМ-АН была завершена в 1952г и на выставке 1953г в Дармштате была лучшей в Европе. Ее усовершенствованная версия БЭСМ-2 была первой в мире серийной ЭВМ. Ей были оснащены все вычислительные центры СССР, на ней считались траектории спутников и космических кораблей. Полупроводниковая БЭСМ-6 была закончена в 1966 году, это был первый советский супер-компьютер, не уступавший американским Креям (Cray) того времени. Выпускался, кстати, до 1987года и использовался во всех областях промышленности и науки.
На основе БЭСМ-2 была создана военная ЭВМ М-40, которая в 1961 году смогла впервые в истории сбить ракету противоракетой. Американцы смогли повторить этот результат только спустя 23 (!!!) года. А 5Э26 -- это мобильная ЭВМ, созданная с 69 по 75 год специально для комплекса ПВО С-300. Комлекс до сих пор лучший в мире (ЭВМ, конечно, с тех пор несколько раз совершенствовалась). Система трех процессорная, но не для производительности, а для надежности. Все процессоры считают одно и то же, и если один выдает отличный от двух других результат -- он отключается. Ведь ошибка в военных системах может привести к катастрофе.
Машины семейства Эльбрус (1 и 2), созданные в 70-80 г были уже параллельными, построенные на суперскалярной архитекторе (первые в мире коммерческие ЭВМ такого типа, кстати). Причем, сначала на бумаге, а потом в железе была достигнута линейная масштабируемость производительности по количеству процессоров (до 10). Они использовали 10 процессоров, из них 2 резервных (как и в М-40), аппаратное динамическое распределение ресурсов и многие другие уникальные технические решения. Система Эльбрус-2 применяется в ПРО Москвы A-135 В то же время были разработаны векторные процессоры для Эльбрус-3, который был построен в 1988, до конца не отлажен, и пущен под пресс "за ненадобностью" в 1994м. Его производительность была бы в два раза выше современного ему "крея" Cray Y-MP
Помимо ИТМиВТ разработкой ЭВМ продолжали заниматься в Киеве, в Минске, в других городах и институтах. Список советских компьютерных систем занимает не одну страницу.
Началом заката советской вычислительной техники стало принятое в 1967 году решение хрущевского руководства перейти на «обезьянью политику» - копировать американскую вычислительную технику, запустить в производство машины IBM-360 под названием Единая Система «Ряд». И хотя ИТМиВТ продолжал разрабатывать уникальные ЭВМ вплоть до распада СССР, это уже происходило на энтузиазме Лебедевцев и вопреки официальной линии. Ну с крушением СССР все или почти все развалилось, и наследники Эльбруса уже 15 лет не могут ничего до вести до серийного производства. Возможно, в последнее время что-то меняется, так как руководство страны понимает, что без собственной вычислительной техники невозможно сохранять обороноспособность. Дай то Бог.
Использованные материалы:
Википедия по ряду вопросов.
Физик Лосев
Первая БЭСМ. Начало пути
Сталин и Кибернетика
Супер ЭВМ в России. История и перспективы
"Эльбрус". История легенды.
История разработок ИТМмВТ
Начнем с того, что триггер был изобретен советским ученым М.А.Бонч-Бруевичем в 1918г в нижегородской радиолаборатории, а его соратник О.В.Лосев в 22г изобрел "кристадин" -- прообраз современного транзистора. Нобелевскую премию за это получили, как обычно, американцы. Нескольками годами позже он же изобрел свето-диод и фото-диод. То есть определенный научный задел в области радиотехники в СССР существовал еще в 20е годы. Однако, острая необходимость в вычислительных машинах появилась только с развитием атомной и ракетной техники. И успех СССР в атомной энергетике, космосе, ракетной и противоректной технике -- это косвенное подтверждение высочайшего уровня вычислительной техники, которая разрабатывалась для военной и космической области.
Первые советские вычислительные машины создавались в Киеве, в Институте Электротехники АН УССР. Именно там бала создана и запущена в 1950г МЭСМ -- Малая Электронная Счетная Машина -- первая ЭВМ в континентальной Европе. Она создавалась под руководством С.А.Лебедева, который в 50г был переведен руководить в Москву Институтом Точной Механики и Вычислительной Техники (ИТМиВТ). МЭСМ задумывалась как макет для БЭСМ -- Большой (или Быстродействующей) Электронной Счетной Машины. В БЭСМ были впервые в мире применены такие базовые принципы, как конвеер и стэк. БАСМ-1 или БЭСМ-АН была завершена в 1952г и на выставке 1953г в Дармштате была лучшей в Европе. Ее усовершенствованная версия БЭСМ-2 была первой в мире серийной ЭВМ. Ей были оснащены все вычислительные центры СССР, на ней считались траектории спутников и космических кораблей. Полупроводниковая БЭСМ-6 была закончена в 1966 году, это был первый советский супер-компьютер, не уступавший американским Креям (Cray) того времени. Выпускался, кстати, до 1987года и использовался во всех областях промышленности и науки.
На основе БЭСМ-2 была создана военная ЭВМ М-40, которая в 1961 году смогла впервые в истории сбить ракету противоракетой. Американцы смогли повторить этот результат только спустя 23 (!!!) года. А 5Э26 -- это мобильная ЭВМ, созданная с 69 по 75 год специально для комплекса ПВО С-300. Комлекс до сих пор лучший в мире (ЭВМ, конечно, с тех пор несколько раз совершенствовалась). Система трех процессорная, но не для производительности, а для надежности. Все процессоры считают одно и то же, и если один выдает отличный от двух других результат -- он отключается. Ведь ошибка в военных системах может привести к катастрофе.
Машины семейства Эльбрус (1 и 2), созданные в 70-80 г были уже параллельными, построенные на суперскалярной архитекторе (первые в мире коммерческие ЭВМ такого типа, кстати). Причем, сначала на бумаге, а потом в железе была достигнута линейная масштабируемость производительности по количеству процессоров (до 10). Они использовали 10 процессоров, из них 2 резервных (как и в М-40), аппаратное динамическое распределение ресурсов и многие другие уникальные технические решения. Система Эльбрус-2 применяется в ПРО Москвы A-135 В то же время были разработаны векторные процессоры для Эльбрус-3, который был построен в 1988, до конца не отлажен, и пущен под пресс "за ненадобностью" в 1994м. Его производительность была бы в два раза выше современного ему "крея" Cray Y-MP
Помимо ИТМиВТ разработкой ЭВМ продолжали заниматься в Киеве, в Минске, в других городах и институтах. Список советских компьютерных систем занимает не одну страницу.
Началом заката советской вычислительной техники стало принятое в 1967 году решение хрущевского руководства перейти на «обезьянью политику» - копировать американскую вычислительную технику, запустить в производство машины IBM-360 под названием Единая Система «Ряд». И хотя ИТМиВТ продолжал разрабатывать уникальные ЭВМ вплоть до распада СССР, это уже происходило на энтузиазме Лебедевцев и вопреки официальной линии. Ну с крушением СССР все или почти все развалилось, и наследники Эльбруса уже 15 лет не могут ничего до вести до серийного производства. Возможно, в последнее время что-то меняется, так как руководство страны понимает, что без собственной вычислительной техники невозможно сохранять обороноспособность. Дай то Бог.
Использованные материалы:
Википедия по ряду вопросов.
Физик Лосев
Первая БЭСМ. Начало пути
Сталин и Кибернетика
Супер ЭВМ в России. История и перспективы
"Эльбрус". История легенды.
История разработок ИТМмВТ
no subject
Date: 2010-01-28 05:21 pm (UTC)С другой стороны, мнение товарищей, утвердивших "обезьянью политику" тоже было бы интересно услышать. Может у них были какие-то резоны?
no subject
Date: 2010-01-28 06:13 pm (UTC)А резоны обезьянничества простые -- угробить советскую науку. Хрущев планомерно проводил эту политику, осозновал он это или нет. Примерно в то же время вышла разнорядка и в авиастроеннии по копированию американских аналогов, хотя советские оригинальные проекты были куда лучше. Чуть позднее отменили советскую лунную программу, и т.д.
no subject
Date: 2010-01-28 07:26 pm (UTC)Меня смущает лукавое "лучшее в Европе". Подозреваю, это было не очень круто. На данный момент что-то из европейской вычислительной техники вообще существует? Оригинальное?
no subject
Date: 2010-01-28 07:35 pm (UTC)no subject
Date: 2010-01-28 07:53 pm (UTC)В википедии какая-то ересь написана, по-моему.
Особенно вот это http://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%BE%D0%B8%D1%87%D0%BD%D1%8B%D0%B5_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B
Не понятно, почему "на двоичных теряет скорость".
Нет никаких намёков на реализацию сортировок-поисков.
АЦП без вопросов можно сделать четверичный, он будет выдавать по два бита на каждой ступеньке и не будет требовать каких-то других процессоров. И работать ещё быстрее троичного.
В основной статье не так густо и весело, но про "более гладкие переходы" я не очень вкурил. "Более гладкие" получатся если они в тот же диапазон напряжений влезут. Это примерно тоже самое, что с нашей теперешней техникой снизить диапазон напряжений вдвое (потому что важна разница между сигналами). Это будет отличное достижение в плане тепловыделения и энергопотребления, но пока что-то не получается, насколько я понимаю.
no subject
Date: 2010-01-28 08:15 pm (UTC)Троичные алгоритмы на двоичных компьютерах работают медленее, потому что на троичных умножение и деление на три -- это сдвиг регистра, так же как на двоичных -- деление и умножение на два -- это сдвиг. Ну а почему троичные алгоритмы поиска и сортировки быстрее, думаю, понятно.
АЦП можно сделать хоть 16ти, хоть 256битовый. Но если в основе лежит бита, то все равно все операции будут на уровне битов и уже потом "склеиваться" в байты и т.д. В троичных компьютерах элементраная операция происходит на трейте.
Про гладкие переходы, я тоже не совсем понимаю. Но вот эта статья, возможно, даст ответы на схемотехнические вопромы: http://314159.ru/kushnerov/kushnerov1.pdf
no subject
Date: 2010-01-28 08:26 pm (UTC)Потом, нужно будет сравнить искомый элемент с двумя другими, т.е. две операции чтения и две операции сравнения (вместо одной и одной) и мы получаем 1/3 вместо 1/2. Но за два чтения и два сравнения двоичный поиск даёт уже 1/4.
Когда троичный может дать выгоду? Когда уже первое сравнение точно нам показывает, где находится элемент, т.е. в 1/3 случаев.
Прикинем среднее количество операций на цикл
1/3 * (1ч + 1ср) + 2/3 * (2ч + 2ср) = 5/3 (1ч + 1ср)
За это количество операций массив делится на 3. Чтобы разделить массив на 3*3*3*3*3*3 -- примерно тысяча, чуть меньше -- нужно 6 циклов, т.е. 10 * (1ч + 1ср) операций.
За такое количество операций двоичным делением мы делим массив на 1024 -- примерно тысяча, чуть больше.
no subject
Date: 2010-01-28 08:43 pm (UTC)Потом, троичное сравнение сразу дает результат >, < или =. Т.е. там где в двоичном поиске надо делать на самом деле два сравнения -- на равенство и неравенство -- в троичном достаточно одной операции.
no subject
Date: 2010-01-28 08:52 pm (UTC)Что касается в два раза более быстрого сравнения, мне кажется, это тоже не совсем так. Во всяком случае, мне не очевидно, почему это так. Проверка знака и там и там делается проверкой старшего бита.
Двоичная команда cmp (ассемблер x86) по результатам выставляет флаги. Там и флаг equal есть, и всё остальное. Т.е. собственно сравнение одно, ветвления потом два. Но это и в троичном случае будет.
no subject
Date: 2010-01-29 06:41 am (UTC)Т.е. возьмем 4х битовые числа со знаком. 0001 > 0000, но 1001 < 0000. А в троичной все честно.
Это верно для любой четной и нечетной логики.
Понятно, что в ассемблере есть флаги. Но выставить два двоичных флага дольше, чем один троичный :)
Насчет алгоритма поиска и сортировки я еще подумаю. Наверняка можно дать точную оценку.
no subject
Date: 2010-01-29 11:42 am (UTC)* вычитанием, это будет одна и та же скорость.
* бежим начиная со старшего разряда к младшим, ищем отличия. Трудность двоичной логики в том, что самый старший разряд обрабатывается особо, и влияет на дальнейшее (при сравнении двух отрицательных чисел отношения больше-меньше инвертируются). Но на количество операций это не влияет.
Что в троичной (и любой нечётной, видимо) логике проще -- это умножение и получение обратного. Умножение не нуждается в коррекции (которая нужна при умножении двоичных со знаком), а обратное получается инвертированием. Это плюсы несомненные, остальное нужно обосновывать.
Из минусов -- практически пропадает операция xor. Троичный xor можно придумать, как определить, но таким красивым он уже не получится. Ну и остальные логические операции становятся странными, скажем так.
no subject
Date: 2010-01-29 12:43 pm (UTC)Возмем две пары чисел. Одна кодируется 8ю битами, другая 5ю трейтами . Двоичные попадают в диапазон -127..127. Троичные -121..121, почти то же самое.
Для сравнения двух 8ми битовых чисел надо:
- 7 сравнений младших битов
- 1 сравнение старшего
- 1 инвертация результа
Для сравнения двух 5ти трейтовых чисел надо:
- 5 сравнений трейтов.
Все.
Насчет XOR надо подумать, как он делается в троичной логике и нужен ли вообще.
Вот тут очень много букв на эту тему http://ru.wikipedia.org/wiki/Троичная_логика Я даже чуть не вспомнил дискретную математику, когда это увидел :)
no subject
Date: 2010-01-29 01:04 pm (UTC)Это не в два раза.
С xor-ом -- пропадает свойство a ^ b ^ b = a будет a ^ b ^ b ^b = a. Т.е. обратный элемент с точки зрения операции xor это будет уже совсем другой элемент.
no subject
Date: 2010-02-03 09:15 am (UTC)Согласен, что разница тут не в два раза, но как минимум в полтора.
Я нашел у себя Кнута, почитаю подробнее по алгоритмы, и напишу отдельный пост про троичные компьютеры, наверное. С задачками :)
no subject
Date: 2010-02-03 09:27 am (UTC)А вот насколько больше -- этого я не знаю, потому и написал, что "с потолка". Это конкретные схемы нужно изучать, я сейчас не готов, схемотехнику я забыл основательно.
no subject
Date: 2010-02-03 09:50 am (UTC)no subject
Date: 2010-02-03 10:24 am (UTC)no subject
Date: 2010-02-03 10:35 am (UTC)no subject
Date: 2010-01-28 08:35 pm (UTC)Да и к тому же, четверичный поиск прекрасно реализуется на двоичной технике. Без вопросов.
Про АЦП, боюсь, ты не совсем в курсе (могу заблуждаться). Речь об АЦП типа поразрядного уравновешивания. На каждом шаге получается очередной бит, сигнал сравнивается и оказывается либо больше, либо меньше. Предлагается делить на три части, типа быстрее. Не вопрос! Почему не на четыре? Мы будем получать по два бита с каждого сравнения.
Нет ничего волшебного в числе 3.