Начинаем неделю с нового экспоната в виртуальном музее sovtech.su Сегодня в 2^8 выпуске у нас странная штука:
Открывается как книжечка, есть направляющие шипы.
Изделие явно малотиражное - корпус получен фрезеровкой.
Это кондуктор для пробивки отверстий в перфоленте, вот такой, что справа:
Изначально эти ленты пробиваются специальной машинкой. Но в процессе работы выявляют ошибки, и для исправления неверного бита можно применить манипуляции. Лишнее отверстие можно заклеить, а вот недостающее пробить. Чтобы точно пробить отверстие в нужном месте и использовался этот кондуктор. В паре к нему должен быть пуансон, равный диаметру отверстия.
Перфоленты использовались не только в ЭВМ, но и в аппаратуре ЧПУ.
Наверняка многие из вас, кто изучал в университете «Архитектуру ЭВМ» или системное программирование, сталкивались с архитектурой PDP-11. Эта машина стала настоящей классикой: её элегантная система команд и ортогональные методы адресации стали основой для обучения целых поколений программистов.
Однако софта для эмуляции PDP-11, который был бы удобным, современным и работал "из коробки" на современных ОС, критически не хватает. Часто это консольные утилиты из 90-х или софт, требующий бубнов при установке.
Поэтому я решил написать свой собственный эмулятор PDP-11 — с графическим интерфейсом, интерактивной памятью, виртуальной периферией и встроенным справочником.
Главное окно эмулятора: таблица оперативной памяти с мгновенным дизассемблером (загружена программа Hello World), панель регистров процессора и интерактивный контекстный справочник.
Что под капотом?
Эмулятор написан на C++17 с использованием фреймворка Qt6. Я ставил перед собой цель сделать не просто «выполнялку» кода, а именно наглядный инструмент для студентов и энтузиастов, чтобы каждый такт процессора был понятен.
Что умеет эмулятор на данный момент:
Интерактивная память и дизассемблер "на лету" Сердце интерфейса — таблица оперативной памяти. Как только вы вводите восьмеричный код в ячейку (например, 005203), эмулятор мгновенно дизассемблирует его и показывает мнемонику — INC R3. И наоборот, ошиблись цифрой — увидите UNKNOWN или другую команду. Это невероятно ускоряет процесс понимания машинного кода.
Полный набор регистров и флаги PSW Внизу окна всегда видны состояния регистров R0-R7 и слово состояния процессора (PSW). При пошаговом выполнении (Step Mode) можно наблюдать, как меняются флаги N, Z, V, C в зависимости от результатов арифметики.
Memory-Mapped I/O (Внешние устройства) Какая же ЭВМ без периферии? Я реализовал виртуальные устройства, отображаемые на память по классическим адресам PDP-11:
Дисплей терминала (регистры TPS 177564 и TPB 177566)
Клавиатура (регистры TKS 177560 и TKB 177562)
Принтер (регистры 177514 и 177516)
Виртуальный терминал, работающий через классический Memory-Mapped I/O. Процессор посимвольно вывел строку в регистр данных дисплея по адресу 177566.
Аппаратные прерывания и таймер
Отдельная гордость — это честная реализация работы с прерываниями. Это не просто скрипт, который выполняет команды по списку. Процессор умеет:
Обрабатывать команду WAIT (переход в режим энергосбережения).
Генерировать аппаратные прерывания. Например, встроенный таймер дергает вектор 100(8) каждые 100 мс.
В комплекте с эмулятором идет программа «Stopwatch» (Секундомер). Она показывает, как можно отсчитывать реальные секунды в регистре R0, перехватывая тики таймера и отправляя процессор в спячку (WAIT) между ними. Всё как в настоящем железе!
Сборка и DevOps (чтобы работало у всех)
Как разработчик, я ненавижу, когда для запуска опенсорс-проекта нужно потратить полдня на настройку окружения. Поэтому я заморочился с инфраструктурой:
Для Windows: Написан "умный" скрипт compile.bat. Вы просто запускаете его на чистой Windows. Скрипт сам скачает MSYS2, установит нужный GCC toolchain, подтянет статическую версию Qt6 и соберет независимый PDP11.exe весом в пару десятков мегабайт (без необходимости таскать за собой гору .dll).
Для Linux (Arch/Manjaro): Написан скрипт setup_package.sh, который на лету генерирует PKGBUILD, ресайзит иконки через ImageMagick, создает .desktop файл и устанавливает эмулятор как полноценный нативный пакет в систему.
Кросс-компиляция: Поддерживается сборка Windows .exe файла прямо из-под Linux через MinGW.
Примеры программ
Чтобы пользователям не пришлось начинать с чистого листа, я подготовил библиотеку дампов .pdp, которые идут в комплекте:
Hello World — классика с циклом и проверкой флага готовности дисплея.
Keyboard — программа эхо-ввода (выводит на экран то, что набирается на клавиатуре).
16-bit Integer Calculator — полноценный калькулятор (+, -, *, /) с программной реализацией алгоритмов умножения и деления (которых нет в базовой архитектуре PDP-11) и конвертацией бинарного результата в ASCII-строку для вывода на экран.
Но просто выложить код — это полдела. Поскольку проект задумывался как образовательный, я уделил огромное внимание документации. Каждая программа из примеров разобрана буквально по строчкам: с указанием адресов, машинных кодов, мнемоник и подробным описанием логики.
Фрагмент документации: пошаговый разбор логики работы и дамп памяти для программы «Hello World».
Кроме того, в репозиторий вшита подробнейшая документация по самой архитектуре PDP-11. Я перевел классические справочники из старых PDF-файлов в современный, аккуратно сверстанный Markdown (с поддержкой Obsidian-ссылок).
В нем расписана работа каждой машинной инструкции, особенности адресации и, самое главное для написания эмуляторов — точное влияние каждой команды на флаги регистра состояния (N V Z C).
Пример страницы из справочника: описание работы команды сложения и её влияния на регистр состояния процессора (PSW).
Итоги и планы
Проект полностью открытый, распространяется под свободной лицензией MIT и доступен на GitHub. Если вы преподаете архитектуру ЭВМ или просто хотите поностальгировать по временам, когда программы писались на машинном коде — заходите, пробуйте, делитесь идеями!
Что можно улучшить в будущем:
Внедрить поддержку макроассемблера (чтобы можно было писать код текстом, а не только вводить восьмеричные числа).
На видео — запоминающее устройство от БЭСМ, первой полноценной советской ЭВМ, построенной ещё в 1952 г. Если быть точным, это магнитный барабан, который в данной машине использовался в качестве промежуточной памяти — между оперативной (на запоминающих трубках) и долговременной (на магнитных лентах и перфокартах).
Ёмкость барабана — 5120 машинных слов по 40 разрядов каждое, или как раз ровно 25 килобайт. По современным меркам это один текстовый документ или крошечная картинка, но в 1950-х в этот объём могла уместиться достаточно сложная программа. Известно, например, что на БЭСМ рассчитывали динамику термоядерных взрывов и траекторию вывода на орбиту «Спутника-1».
Барабан наряду с другими узлами от БЭСМ был сохранён в том месте, где её и разработали — в Институте точной механики и вычислительной техники им. С.А. Лебедева (ИТМиВТ). Сегодня утром мы приехали к красивому зданию на Ленинском проспекте в Москве, чтобы завершить вывоз наследия советской компьютерной индустрии.
Барабан ещё в начале 1980-х был превращён в экспонат внутриинститутского музея. Тогда мощный электродвигатель, вращавший его со скоростью 750 об/мин, был заменён на тихоходный моторчик с редуктором, а на ферромагнитное покрытие наклеили надписи из объёмных букв.
Сейчас эти буквы дождём сыпались вниз, отмечая наш путь, словно хлебные крошки в сказке про Гензеля и Гретель. Мы, конечно, все их собрали, хотя и не планируем их возвращать на поверхность барабана: он гораздо ценнее в аутентичном виде.
Если не считать разницы в форме, магнитный барабан по принципу действия похож на обычный жёсткий диск. Только головок у него очень много (в данном случае — 120), и закреплены они неподвижно. Каждая головка парит на небольшой высоте над своей дорожкой барабана.
Блок головок в корпусе из немагнитного сплава
Бросаем прощальный взгляд на советскую архитектуру середины века — и в путь!
На принимающей стороне с разгрузкой было уже проще: на помощь пришла техника.
Как уже наверняка догадались подписчики, этот магнитный барабан (а также ещё несколько десятков ценных для истории предметов) попадут в фонды Политехнического музея.
Мы планируем удалить с барабана БЭСМ следы позднейших переделок, и тогда он станет одной из жемчужин коллекции вычислительной техники.
Что же это за чудо-юдо, автоматический композитор? Где скрыт секрет его «творчества»? На что он способен? Так ли уж удивителен?
Таблицы Моцарта
Лет двести тому назад некоторые европейские музыканты забавлялись своеобразной «табличной» композицией. Великий Моцарт составил, например, шутливое «Руководство, как при помощи двух игральных костей сочинять вальсы, не имея ни малейшего знания музыки и композиции».
До чего же легко было «творить» по этому «музыкальному письмовику»!
Счастливчик, заполучивший «Руководство», запасался парой костей, нотной бумагой, чернилами, гусиным пером и садился за работу. Бросал кости, подсчитывал выпавшие очки, глядел в «Таблицу чисел», искал там первую графу, в ней клетку с числом очков на костях, в той же клетке находил номер, по которому из второй «музыкальной» таблицы аккуратно списывал напечатанный нотными знаками начальный такт музыки. Такие манипуляции повторялись восемь раз. Получались восемь тактов, первая часть вальса. Еще восемь бросков — и с помощью второй графы «Таблицы чисел» «сочинялась» вторая часть. Потом — третья и все прочие. Никаких мук творчества!
Испещренный нотный лист оставалось подписать собственным именем (воровато оглянувшись по сторонам), свернуть, перевязать шелковой ленточкой и поднести даме сердца, чтобы та, проиграв подаренную музыку на клавесине, умиленно воскликнула: «Ах мой друг! Вы сочиняете совсем как Моцарт!..»
Комплимент, конечно, ничуть не преувеличенный.
Наверное, подобные эпизоды случались неоднократно.
«Табличную» композицию Моцарта при желании нетрудно было бы механизировать. Любому часовщику под силу сделать устройство, в котором сами собой выкидывались бы кости, падали какие-то дощечки и складывались такты вальса, будто игрушечный домик из детских кубиков.
И многие из ныне нашумевших электронных «композиторов» действуют по очень похожему принципу.
Кибернетическое «вдохновение»
Правда, в кибернетической машине нет никаких кубиков. Она не знает и нот, орудует лишь с числами. Поэтому нотные символы надо перевести на цифровой язык и заложить в «память» машины группы чисел, означающие такты и целые мелодии. Все это «сырье» записывается в виде проколов на бумажной или пластмассовой ленте, которая, разматываясь, посылает соответствующие сигналы в устройство «памяти». Кроме того, в машину вводятся правила перетасовки и расстановки числовых групп. Вот и вся премудрость.
Когда нажата пусковая кнопка на пульте управления, «композитор» принимается «творить». Точно исполняя полученный заказ, он множеством способов перераспределяет группы чисел. В радиолампах мечутся электронные потоки, мелькают неоновые вспышки — и через несколько секунд очередное «произведение» готово. Оно выдается в виде колонки чисел на бумаге. Затем плод машинного «вдохновения» переводят с цифрового языка на нотный.
Таким способом один американец получал бесчисленные вариации из кусочков 39 эстрадных мелодий, введенных в «память» электронно-счетной машины, а несколько его соотечественников подвергли кибернетическим перетасовкам 37 гимнов разных времен и народов.
Разумеется, в этих экспериментах не было, по существу, ничего нового по сравнению с «табличной» композицией Моцарта. Причем машина в них играла роль не композитора, а того ловкача, который кидал кости и переписывал нотные знаки. Разница единственная: по готовой музыке машина сама составляла «таблицы» и выполняла работу с неимоверной быстротой — компилировала тысячи песенок в час!
И вот что любопытно. Если машине «разрешали» манипулировать более или менее крупными отрезками введенных в «память» мелодий, она пускалась в беззастенчивый плагиат — «воровала» из «памяти» целые музыкальные фразы, переписывая их в ленту ответа и таким образом выдавая их за «свои».
Симфония из клякс
По свидетельству историка Ма Су-ченя, игральные кости выступали в качестве соавторов композиторов еще в Древнем Китае. Во всяком случае, с их помощью там иногда происходили испытания молодых музыкантов. Экзаменующийся бросал несколько раз подряд пару игральных костей и запоминал последовательность выпавших чисел. Каждое число условно означало ноту, их совокупность — набор звуков. Эту случайную звуковую цепочку надо было обработать по музыкальным правилам, превратить в более или менее приятную песню.
В некоторых зарубежных консерваториях таким способом до сих пор проверяют способности студентов.
А вот другой пример. В 1751 году английский композитор Гейс выпустил сатирическую книжку, в которой предлагал поручить роль композитора... сапожной щетке! «Исключительно новый метод» Рейса заключался в разбрызгивании чернил упругой щеткой по нотной бумаге.
Теперь вообразите такую ситуацию. Перед неким композитором лежит лист нотной бумаги, густо усыпанный беспорядочными чернильными кляксами. И, не имея почему-то чистой бумаги, он вынужден пользоваться вот этой — грязной. Допустим еще одну нелепость: у композитора нет чернил, а есть только белила. При этом вдохновение его обуревает, он хочет творить сейчас же, не дожидаясь нормальных условий. Как же быть?
Выход единственный. Придется работать, не нанося нужные знаки на линейки нотного стана, а, наоборот, замазывая белилами ненужные, убирая лишние кляксы. Ведь кляксы на листе всюду. Они нанизались на нотные линейки, легли между ними. Тут есть и кляксы «до», и кляксы «ре», и сколько угодно других клякс — нотных знаков. Композитор терпеливо «пропалывает» пятнистый «посев», удаляет «сорняки», оставляет то, что считает достойным войти в его музыку.
Примерно такую же работу может выполнять кибернетическая машина. И это будет уже не примитивное перетасовывание готовых отрывков. Во всяком случае, музыка будет делаться заново, а не списываться из кем-то сочиненных произведений.
Электронный Палестрина
Электронная механизация «очистки» забрызганного нотного листа сложнее, чем кибернетическая компиляция из готовых песенок. Бумаги, щетки, чернил, белил, конечно, нет. Все это переведено на язык математических чисел и операций с ними. В машинную «память» вводят не мелодии, а «шум» — цифровое подобие беспорядочных чернильных клякс, хаос совершенно случайных, никак не связанных чисел. Машине задают правила математической «прополки». Эти правила гораздо сложнее, чем при компиляции,— они должны глубоко соответствовать знаниям и интуиции воображаемого композитора, замазывавшего на нотном листе лишние кляксы.
Но и тут нет ничего сверхъестественного. Действует давно известный метод «выбора из шума». И успех дела зависит от умения «хорошо» выбрать. Чем лучше, полнее составлены человеком предписанные машине правила выбора из шума, тем интереснее окажется ее молниеносное «творчество».
Первая попытка такой кибернетической композиции была предпринята на машине «Иллиак» сотрудниками Иллинойского университета (США) Хиллером и Изаксоном. Целый год они возились над программами, ставили опыты на машине, и наконец на одном из студенческих вечеров самодеятельный струнный квартет публично исполнил кибернетическое «творение» — экспериментальную «Сюиту Иллиак».
Сюита была четырехголосой и состояла из четырех частей. Каждая «сочинялась» машиной по разным правилам. В первой части ее было дано очень мало свободы выбора. Отбраковка чисел, символизировавших ноты, велась со всей строгостью старинной гармонии. И произведение получилось в стиле, модном лет триста тому назад. Случайные звуковые комбинации были отобраны и гармонизированы примерно так же, как сделал бы это ревнитель строго классической системы Джованни Палестрина (правде, получился слишком однообразный ритм). Это подтвердили знатоки старинной музыки, присутствовавшие на необычном концерте. Ничего оригинального, понятно, не вышло. Машина выполнила лишь простенькое упражнение по правилам старой гармонизации, решила задачу, какие обычно задают ученикам музыкальных школ.
Зато четвертую часть «Сюиты Иллиак» машина писала действительно самостоятельно — почти без всяких правил и ограничений. И результат получился ужасный: сплошная какофония, дикие, нелепые звукосочетания, абсолютное отсутствие малейших признаков музыкальности.
Итак, машина по программе и заданиям человека может математически точно подбирать аккорды, составлять новые песенки из кусочков старых, «воровать» чужие мелодии и стряпать сумасшедшую ультрамодернистскую галиматью. И это все? Не мало ли для восторгов? Неужели машина-композитор так-таки не способна на что-нибудь практически ценное?
Замысел математика и виолончелиста
Советскому математику Рудольфу Хафизовичу Зарипову замысел создания автомата-композитора пришел в голову еще в юности. Это было в 1948 году. Жил Зарипов тогда в родной Казани и учился в музыкальном училище.
Однажды, готовясь к экзамену по гармонии, он подметил, что школьная гармонизация мелодий вполне поддается математическому расчету (уже тогда Рудольф был страстным любителем математики). Он прикинул несколько способов расчета аккордов и понял, что дело это доступно любой счетной машине. Но тут же у пытливого юноши мелькнула другая мысль: а что, если попробовать вычислять не только аккорды, но и главнейшую составную часть музыки — мелодии? Ведь и их законы, вероятно, тоже можно выразить математически!
Нет, тогда Зарипову не удалось даже начать решение такой задачи. Слишком это оказалось трудно. И в книгах об этом он ничего не нашел. Юношеский замысел остался нереализованным.
Потом, не бросая любимой виолончели, Рудольф поступил в университет, потом добавил к увлечению музыкой и математикой рисование, потом стал еще и страстным радиолюбителем-коротковолновиком — «путешественником по эфиру». Ему всегда было мало какого-нибудь одного дела, он постоянно «гнался за несколькими зайцами». И, против морали старой пословицы, ловил-таки их!
Давняя мечта об автомате-композиторе стала одним из «зайцев» уже по завершении высшего образования, когда Зарипов поступил в аспирантуру Ростовского университета. Но особенно увлекся Рудольф своей юношеской идеей после защиты кандидатской диссертации — как только его послали в Москву для изучения и освоения электронно-счетной машины «Урал».
Дни и ночи
Июльскими ночами 1959 года на четырнадцатом этаже громады Московского университета на Ленинских горах одиноко светилось окно. За ним, в комнатке студенческого общежития, сидел над бесконечными расчетами Рудольф Зарипов. Ранним летним рассветом ложился на 2—3 часа уснуть. В восемь утра шагал в один из институтов для практики на электронно-счетной машине. Весь рабочий день сидел за пультом, командуя решением мудреных математических задач. Вечером, когда пустели комнаты института, оставался за машиной и вел другую, любительскую работу. Начальник машины Борис Михайлович Романов разрешил ему попытаться научить «Урал» композиторскому искусству. А ночью Зарипов готовил программы на завтра.
Пульт управления электронно-счётной машины «Урал».
Жил Зарипов словно в тумане, на предельном напряжении сил, не давал себе отдыха ни на минуту. Иначе было, по его мнению, «нельзя», ибо совсем немного оставалось до отъезда из Москвы.
Обучение машины мастерству вычисления мелодий поначалу шло туго. Первые пробы провалились. «Урал» не мог «придумать» ничего путного. Тонкие, интимные, порой неосознанные самими композиторами законы мелодических форм было очень трудно сформулировать и переложить на язык математических команд. Рудольф исследовал множество нот и повсюду видел чрезвычайное многообразие, неповторимость мелодических оборотов. Законы мелодий оказались неизмеримо более сложными и гораздо менее изученными, чем давно известные законы гармонии, аккордов.
Но шаг за шагом работа шла вперед. Порой напрасная, уже сделанная раньше, но не кибернетиками, а музыковедами. Позднее Зарипов, например, «открыл» для себя книгу профессора Московской консерватории Мазеля «О мелодии». Жаль, что в ту пору он не знал этой книги. Программы команд машине пришлось составлять, как говорят математики, «с нуля», буквально на голом месте.
И вот Рудольф окончательно «договаривается» с машиной. Любую ноту он обозначает пятизначным числом, в котором две первые цифры характеризуют «расстояние» от начала музыкальной фразы, причем за его единицу принимается длительность звука, равная четверти, третья — длительность звука, а четвертая и пятая — высоту. Он «приказывает» машине заканчивать мелодию всегда первой ступенью лада, причем «шагать» к концу возможно более коротким интервалом. «Запрещает» ставить подряд более шести нот, идущих в одном направлении (вверх или вниз). Наложено «вето» и на парные шаги, превышающие в сумме октаву. Предусмотрены и другие правила для смены направлений движения мелодии.
Специальный раздел программы Зарипов посвятил ритму — отдельно для маршеобразных мелодий (со счетом «раз-два-три-четыре») и для вальсов (со счетом «раз-два-три»). Особо учтено число частей будущих произведений, количество тактов в каждой части.
«Уральские» напевы
И вот готов опытный алгоритм — набор математических правил для составления мелодий. Написан первый вариант программы команд кибернетическому «музыканту». Зарипов переносит его на ленту «памяти», налаживает «генератор случайных чисел» — источник «шума», из которого «Урал» будет выуживать свои мелодии, и нажимает кнопку «пуск». На этот раз машине заказан вальс. Через несколько секунд «творчество» закончено. Машина деловито печатает на ленте «музыкальный» ответ. Новый нажим на пусковую кнопку — и вот уже «сочинен» второй вальс. Зарипов еще не знает, что за музыка получилась. Расшифрует числа он потом, ночью. А теперь заказывает марш. Но тут происходит что-то непонятное. «Урал» почему-то «не хочет» сочинять марш. Он «бунтует», останавливается, сам включает уже прочтенную ленту задания, крутит ее без конца. Громадная, раскинувшаяся в нескольких комнатах электронная машина бессмысленно моргает своими неоновыми глазками и не выдает никакой продукции.
Зарипов останавливает машину и заказывает еще один вальс. Все в порядке. Через положенное число секунд у него в руках третий рулончик с зашифрованным в столбиках пятизначных чисел вальсом машинного изготовления. Опять пробует заказать «Уралу» марш. И снова повторяется нелепый «бунт».
«Что за притча?! — мучительно думает Зарипов.— Почему «Урал» обуяла «ненависть» к маршам?»
Буквально за день до отъезда из Москвы причина «каприза» машины отыскалась. Оказывается, переписывая программу, Рудольф в одном месте ошибся: вместо «01777» поставил «01177». Это и спутало исполнительный кибернетический механизм.
В последний вечер «Урал» сочинял только марши.
Вплотную сесть за расшифровку машинных композиций Зарипову удалось лишь дома, в Ростове. И некоторые мелодии ему явно понравились. Конечно, им было очень далеко до «Подмосковных вечеров». «Но ведь это первые из первых машинных мелодий!» — думал Рудольф. А один из маршей ему так полюбился, что целую неделю не выходил из головы.
«Уральский» напев – одна из первых машинных мелодий.
Спустя полгода на страницах «Докладов Академии наук СССР» в разделе «Кибернетика и теория регулирования» появилась статья Зарипова под заглавием «Об алгоритмическом описании процесса сочинения музыки». Представил ее к опубликованию известный ученый, академик С. Л. Соболев. Наверное, впервые за свое существование самый маститый из всех наших научных журналов напечатал несколько нотных строк. И они были рождены не живым порывом человеческого вдохновения, а научным знанием, вложенным в машину, и стремительным каскадом автоматических электронных всплесков. Позднее в одной из своих статей Зарипов назвал эти мелодии «Уральскими» напевами.
И робот будет служить
Теперь, после опытов Зарипова, мы вправе с большим уважением посмотреть на кибернетических роботов-композиторов. Как-никак, но они научились не только плагиату и лженоваторству, но и аккуратной гармонизации и даже составлению сносных мелодий.
Значит ли это, что машина-композитор когда-нибудь будет в состоянии заменить человека-композитора? Каковы перспективы машинного сочинения настоящей, большой музыки?
Может быть, в далеком будущем, проделав колоссальный исследовательский труд, удастся вкладывать в машину сложнейшие алгоритмы и учить ее конструировать музыку так, как создавал ее когда-то тот же Палестрина, или Бах, или Моцарт.
Уже в наши дни есть инженеры (не музыканты!), которые предлагают такое: заставить машину переводить литературное произведение на... «музыкальный язык». Скажем, привести «литературный алгоритм» Пушкина в соответствие с «музыкальным алгоритмом» Чайковского, найдя их с помощью машины, и заново превратить «Евгения Онегина» из поэмы в оперу! Под грустные стихи машина, подражая знаменитому музыканту, напишет грустные мелодии, под бодрые и шутливые места текста — автоматически сконструирует веселые напевы и созвучия. Фантастика, бред? Кто знает! Некоторые инженеры-кибернетики говорят об этом без тени улыбки и всерьез предполагают таким способом «продлить творческую жизнь» великих композиторов. Если бы Чайковский не успел написать музыку к «Пиковой даме», машина-де сделала бы это «в стиле Чайковского». Точно так же она могла бы «писать, как Чайковский», новые оперы, концерты, симфонии на какие угодно другие поэмы, повести, романы.
Что и говорить, исполнение такого замысла было бы громадным научным успехом. Даже частичная удача, даже небольшая «похожесть» машинной музыки на человеческую, взятую за образец, значили бы, что наука достаточно глубоко раскрыла творческую систему того или иного композитора (кстати сказать, и саму работу по разгадке этой системы, по приготовлению алгоритма можно было бы поручить машине).
Однако и этот немыслимо сложный эксперимент едва ли приобрел бы музыкальную ценность. Есть нечто сокровенное, в чем машина органически не способна подняться до уровня своего создателя, и по той простой причине, что в человеческом существе далеко не все исчерпывается голой кибернетикой, пусть даже архисовершенной. Ведь машина — только робот, устройство, по самой сути своей подчиненное людям.
Нет, подлинный художник каждое новое свое произведение создал бы не так, как блестяще «обученный» механизм. Ибо, человеческое счастье — счастье труда, подвига, любви, как и горе, и тоска, и трагизм — достояние только людей. Ибо человек — дитя Вселенной.
Ученый мыслит силлогизмами, художник — образами, писал в свое время Белинский. Композитор мыслит звуковыми образами. Создание музыки — это один из видов мышления художественными образами. Процесс этот необычайно сложен, и, конечно, подлинного композитора-творца, художника, знающего дорогу к человеческому сердцу, машина не заменит никогда.
Настоящий композитор творит свои произведения не по шаблонным, однажды заданным законам, а всякий раз по-новому. Его манера, стиль, настроение неуловимо меняются от произведения к произведению, от части к части, от одной музыкальной фразы к другой. Перемены эти, хоть и доступные математическому выражению, не поддаются никакому предвычислению: ведь человек черпает их в непрерывно меняющейся жизни. И чем крупнее, талантливее композитор, тем яснее сидит он современность, тем глубже и тоньше изменения, вносимые им в музыкальную традицию.
***
И все же музыкальный робот обещает массу любопытного.
Как заманчиво, к примеру, «скрестить» пусть даже упрощенные творческие стили двух разных композиторов и посмотреть, что из этого получится! Или испытывать творческую индивидуальность сочинителя. Вложил в машину его произведение — и через секунду получил исчерпывающий ответ: «Данный опус на 50 процентов является подражанием Дунаевскому, на 40 процентов повторяет Соловьева-Седого, на 10 процентов самобытен». Это еще неплохая оценка. А что, если самобытности машина вообще не найдет?
Разумеется, такое испытание не главное, к чему стоит стремиться. Однако мы вправе надеяться, что кибернетическая машина станет со временем отличным инструментом для опытов с комбинациями звуков, великолепным прибором для исследования музыкальных форм, ладовых сочетаний, гармонии, строев. Композитор будет поручать своему электронному слуге сложные гармонизации, проверять с его помощью только что изобретенные музыкальные структуры. Быть может, автоматическое звукотворчество ускорит и облегчит работу с музыкальными синтезаторами. Послушный, исполнительный кибернетический робот, «сидя» за пультом электронного оркестра, поможет композиторам будущего творить музыкальные произведения неизмеримо быстрее, чем это делают наши современники.
P.S. от ТСа: добавил пару фото и пару ссылок на аудио.
На заре Интернета у многих возникло чувство безграничной свободы, когда ты можешь сказать что-то на весь мир. Появились надежды, что теперь всё будет по-другому, и монополиям придётся подвинуться перед напором человеческой креативности. Как же мы ошибались. О том, чем обернулись эти надежды, рассказывает нью-йоркский профессор Тим Ву, который сходил во власть, а теперь пишет книжки.
Век изъятия. Как технологические платформы завоевали экономику и ставят под угрозу наше грядущее процветание.
Технологии – это хорошо, но не всегда для всех. Слишком часто они используются не для сужения, а для расширения экономического неравенства. Да, были такие вещи, как плуг, которые стали благословением для простого трудяги. Но была и хлопкоочистительная машина, разогнавшая рабство на плантациях. Нужно стремиться к структурному балансу, то есть стараться, чтобы и волки были сыты, и овцы целы. Как, например, это делается в NFL, где мелкие клубы не обижают и сохраняют интригу для всей страны.
Экономика – это такая вещь, где имеются ключевые места, контроль над которыми позволяет изымать ренту. Одними из таких мест являются платформы, которые подобны химическим катализаторам. Как и катализаторы, они помогают взаимодействовать участникам. Конечно, это не новое изобретение. Ещё с античных времён они решают проблему поиска информации и снижают минимальный размер компании, необходимый для того, чтобы наладить сбыт. Так открываются двери для мелкого бизнеса, который может прийти на рынок и за скромную плату получить торговое место в рядах.
Далее, платформы обеспечивают инновацию. Хорошо организованная платформа может поддерживать новые версии товаров и услуг. Торговая улица может дать место любому бизнесу. Сегодня здесь стоит табачный ларёк, а завтра будет кофейня. Более того, неспособные обеспечивать развитие платформы вынуждены рано или поздно сойти со сцены, как сошла со сцены популярная французская домашняя сеть Минитель. Она была на пике популярности ещё до интернета, в восьмидесятых. С её помощью можно было легко и быстро узнать погоду, расписание поездов и ещё кучу разных вещей. И переписываться тоже можно было! Но с 2012 года она больше уже не работает. К этому времени текстовые сообщения стали анахронизмом. Французские техники упустили шанс развития, опираясь лишь на самих себя: то, что работало для Minitel, не работало ни для кого другого.
То ли дело Интернет, у которого гораздо более открытый дизайн, переживший многократную смену технологических поколений: текстовые сообщения сменились форумами, затем пошли вебстранички, потоковое видео, а сегодня у нас есть нейронки и боты. Подобно электрическим сетям, Интернет остаётся константой в эпоху циркуляции товаров и услуг на его платформе.
Сегодняшние поставщики платформ знают о своей роли и не лишены амбиций. Ещё Билл Гейтс продемонстрировал миру возможность извлечения прибыли из доминирования в экосистеме. С тех пор, всяк и каждый стремится порулить экономикой, которой они призваны служить.
А до того? Если говорить про компьютерные технологии, то можно вспомнить время, когда платформы ещё не появились. И даже после платформизации история индустрии программирования представляла собой неустанное перетягивание каната между частниками и правительственными агентствами. В начале шестидесятых рынком заправляла гигантская корпорация под названием IBM, которую по праву можно назвать предком американской IT. Однако уже тогда IBM была «дедом не без странностей». Они только-только перешли с производства счётного оборудования к компьютерам благодаря стараниям Уотсона-младшего. Он понял, что времена перфокарт подходят к концу, и запустил первую линейку полностью электронных машин IBM 700. Их успех породил волну подражателей не только в Штатах, но и в других странах, в частности в Японии.
Чтобы сохранить лидерство, необходимо было делать новые решительные шаги, и одним из таких шагов стала система 360. Это была и первая платформа, которая всё изменила. Почему платформа? Потому что в ней софт и хард были твёрдо разграничены.
Однако софт должен был быть только от IBM, что не понравилось не только потенциальным конкурентам, но и американским антимонопольным органам. Тогда настроения были не то, что сейчас. Тогда американские бюрократы всерьёз опасались, что чрезмерное господство корпораций может либо привести к фашизму, либо спровоцировать коммунистическое восстание. Известный антимонополист судья Арнольд писал:
Германия организовалась до такой степени, что фюрер стал неизбежным. Если бы не было Гитлера, то был бы кто-то другой.
Кстати, основатель IBM Уотсон-старший, получил в своё время медаль лично от того самого фюрера за службу Рейху.
Короче, на них наехали, как наехали до того на AT&T. Началось всё с иска компании Control Data, которые обвиняли IBM в давлении на потенциальных клиентов, которым угрожали отказать в продаже любого оборудования IBM в случае, если они купят самый быстрый на то время суперкомпьютер от Control Data. Министерству юстиции также не нравилась практика продажи в одном флаконе: купив хард от IBM, приходилось брать и софт тоже от них. В 1968 году американская юстиция представила свои возражения, так что IBM пришлось организовать внутреннюю комиссию. Очень скоро выяснилось, что карты у них неважные, так что Уотсон-младший решил начать разделение продаж софта и харда. Так открылась архитектура System/360 и было положено начало современной индустрии программного обеспечения.
Подобное поведение властей было нетипичным для того времени. Остальные страны целенаправленно взращивали свои «национальные» компании. Так делали Британия, Франция, Италия. И даже Советский Союз включился в гонку, породив клон System/360 под названием ЕС ЭВМ. Японское министерство также считало, что местные производители должны, как минимум, сотрудничать между собой. Fujitsu, Hitachi, NEC, Toshiba, Mitsubishi, Oki – всех их пригласили в партнёрство под названием Japanese Electric Computer Corporation (JECC), которую взращивали щедрыми займами от государства.
Почему бы и американцам не поставить на лидера? Но нет, министерство юстиции не то что не помогало «голубому гиганту», но даже не оставляло его в покое. Оно прессовало IBM, желая раздробить эту компанию. В ретроспективе становится ясно, что поощрение конкуренции в отрасли себя оправдало. Всё больше новых компаний стало писать софт для платформы. Молодые Гейтс, Джобс, Эллисон организовали свои стартапы для разработки софта либо для существующих платформ, либо создали новые, свои собственные.
Япония, напротив, не смогла развить независимую программную отрасль, и впоследствии у них тоже ничего не вышло, за исключением игровой отрасли. Их централизованный подход исключил креативную анархию и оставил мало места для органического роста. Поучительно сравнение и с другим отраслями, например с аэрокосмической промышленностью, в которой доминировали Боинг, Макдоннел Дуглас и Локхид. Здесь американцы вырастили из Боинга национального чемпиона, и такого взрывного развития, как в IT, в этой отрасли не произошло. Сегодня будущее Боинга далеко от определённого, а против современных IT-гигантов подаются иски. Антимонопольное законодательство может служить ключевым средством для восстановления баланса.
Ещё одним примером большой платформы может служить Интернет. Задуман был он в одно время с System/360 группой учёных и инженеров, но чтобы воплотить его на практике, его нужно было запустить на базе существующих телефонных сетей. Вряд ли бы у них что-то получилось, если бы не решение правительственных регуляторов разбить монополию AT&T, которая противодействовала появившимся молодым стартапам в их желании объединить мир. Федеральная комиссия по связи (FCC) заставила AT&T позволить работать другим бизнесам на базе своих телефонных сетей. Главное – платить по счетам. Отчаянное сопротивление телефонного гиганта привело к его раздроблению на восемь отдельных компаний в 1984 году. В обстановке сетевой нейтральности появились новые провайдеры. Они предоставили услуги, которые легли в основу Интернета. Случилось ли бы это в условиях сохранения монополии AT&T – трудно сказать. Но снова имеет смысл сравнить с другими странами, которые не создали ни смартфона, ни нормального персонального компьютера. Американцы же, хоть тоже не могли предвидеть будущее, поставили на конкуренцию, и их ставка сыграла самым внушительным образом.
Девяностые и начало нулевых стали временем техно-оптимизма. Пророчился расцвет одиночек-профессионалов и вообще закат промышленных организаций. По мнению тогдашних визионеров, будущее принадлежало самоорганизующимся пользователям Сети. Глядя на успех Линукса и Википедии, они предсказывали господство децентрализации, при котором так называемым «голиафам» ничего не светило.
Вышло явно по-другому. Процветание тех лет базировалось на платформах, предоставленных либо федеральными властями, либо находившихся под их наблюдением. Новые же платформы, например Гугль, тоже предлагали поначалу прозрачные правила игры и не пытались «быть злыми», играя просвещённого лидера. Но в следующем десятилетии что-то изменилось. Флагманы рынка написали новые правила для извлечения максимума пользы из своего могущества. Править стала стратегия извлечения прибыли из зависимых бизнесов и доения пользователей на предмет их времени и данных . Вряд ли они с самого начала планировали делать так. Неумолимая корпоративная логика и жёсткие правила игры на рынке привели к тому, что пришлось следовать воле акционеров и аналитиков с тем, чтобы нарастить прибыль. Гугль перестал отличаться от Эксона, Пфайзера или Уоллмарта. Жажда прибыли заставила их расстаться с юношескими мечтами о служении более высокой цели.
Весьма показательной стала история 2013 года, когда в ответ на появление перспективного конкурента в области онлайн-картографии Гугль скупил эту компанию (Waze) за 1,3 миллиарда долларов. Куда же смотрела Федеральная комиссия по торговле? Они предпочли не вмешиваться, потому что Waze рисовал маршруты, в то время, как Google Maps это просто карта. Из этого всего американские бюрократы сделали абсурдный вывод, что эти фирмы не являются конкурентами. Эпоха Интернета как великого уравнителя закончилась.
О причинах доминирования американской IT-отрасли можно долго рассуждать. На мой взгляд, помимо поощрения конкуренции, большую роль сыграли щедрые финансовые вливания со стороны правительства, которое стимулировало развитие отрасли и посредством наращивания оборонного заказа. Также не стоит забывать высокую степень кооперации на рынке, а также потенциал для сбыта. Компьютер можно было продать не только военным, но и корпорациям. А корпораций в США было много.
Что интересно: автор книги работал специальным ассистентом президента по технологиям и конкуренции у Обамы и Байдена, и у нью-йоркского генпрокурора тоже засветился. Но что-то непохоже, что на своём посту он смог добиться улучшения сетевой нейтральности. Что у него хорошо получается – это популяризировать свои идеи. За что его можно поблагодарить.
Патриотическая пропаганда утверждает, что СССР иногда опережал США в компьютерной сфере и американцы якобы даже заимствовали некоторые советские разработки. Примеры статей: ria.ru, ixbt.com, habr.com, версия про «советские корни Intel».
Так, в частности, главный архитектор суперкомпьютеров линии «Эльбрус» Борис Арташесович Бабаян заявлял о советском приоритете в разработке суперскалярных ЭВМ:
В 1978-ом году мы сделали первую суперскалярную машину, Эльбрус-1. Сейчас на Западе делают суперскаляры только такой архитектуры. Первый суперскаляр на Западе появился в 92-ом году, наш в 78-ом. Причем тот вариант суперскаляра, который сделали мы, аналогичен Pentium Pro, который Intel сделал в 95-ом году.
Но любой, кто не поленился бы провести элементарный фактчекинг, быстро бы выяснил, что первой суперскалярной ЭВМ была CDC 6600, разработки Сеймура Крэя.
Причём советское правительство пыталось заполучить эту машину:
Советский Союз в 1968 году проявлял неформальную заинтересованность в импорте компьютера CDC 6600 для Института физики высоких энергий в г. Протвино для анализа данных экспериментов на ускорителе У-70. В качестве ответной любезности СССР был готов поделиться результатами анализа с учёными США. Правительство США не дало согласия на эту сделку, в результате были закуплены английские машины компании International Computers Limited, которые по своим характеристикам приближались к CDC 6600.
Следующим шагом в развитии суперскалярной архитектуры была конвейеризация исполнительных устройств, как в современных микропроцессорах. Впервые конвейеризация узлов была реализована в машине IBM System/360 Model 91, в 1967 году, за 6 лет до начала разработки Эльбруса-1 и за 11 лет до его релиза.
В 1975 году, за 4 года до «Эльбруса», был также анонсирован суперкомпьютер Cray-1 (на векторной архитектуре), с тактовой частотой 80 мгЦ и производительностью 160 миллионов операций в секунду (MFLOPS).
Для сравнения: производительность Эльбрус-1 в 1979 году была 15 млн. оп/с., что в 10 раз меньше. А в 1980 году, когда «Эльбрус-1» сдал государственные тесты и был запущен в производство, уже был суперкомпьютер Cyber 205, с производительностью 400 Mflops!
Обратите внимание, что патриотическая пропаганда не проводит сравнительного анализа с существовавшими на то время Западными системами, что могло бы свидетельствовать о каких-нибудь преимуществах советских машин - вместо этого в ход идут различные манипуляции, с расчетом на технически неграмотную и не умеющую анализировать публику.
Байка про то, как советская ЭВМ БЭСМ-6 якобы превзошла американские ЭВМ
Так, например, в статье РИА новостей пишут, что вычислительный комплекс, в состав которого входила "полностью отечественная" БЭСМ-6*, в 30 раз быстрее обрабатывал телеметрическую информацию о космическом полете, чем неназванные американские машины (в ходе миссии Союз-Аполлон в 1975 году). Вот только тут речь идет о вычислительном комплексе АС-6**, состоящем из нескольких процессоров, а не отдельной БЭСМ-6, производительность которой составляла всего 1 млн. оп/с (что было даже меньше, чем у IBM 7030 Stretch, 1961 года выпуска, не говоря уже о CDC 7600).
У NASA тоже была многопроцессорная система и гораздо мощнее - ILLIAC IV, но эта машина стояла в исследовательском центре NASA в Эймсе, а не в «Хьюстоне», где происходило управление полетом. Судя по всему, история с телеметрией - это заранее спланированная советской стороной пиар-акция, а все самые важные и сложные расчеты были осуществлены заранее, перед полётом.
Что касается утверждений о советских ноу-хау в компьютерной отрасли, то и тут патриотическая пропаганда никаких ссылок на авторские свидетельства или научные публикации не дает, предлагая просто поверить Бабаяну на слово.
Статья в журнале Microprocessor Report, якобы подтверждающая советский приоритет
Также в качестве независимого источника патриотическая пропаганда ссылается на статью "Русские идут" из журнала Microprocessor Report, автор которой - разработчик процессора MC88110 Кейт Дифендорф:
Подтверждают историческое первенство Эльбрус и в Америке. В той же статье из Microprocessor Report Кит Дифендорфф, разработчик Motorola 88110, одного из первых западных суперскалярных процессоров, пишет: "В 1978 году, почти на 15 лет раньше, чем появились первые западные суперскалярные процессоры, в Эльбрус-1 использовался процессор, с выдачей двух команд за один такт, изменением порядка исполнения команд, переименованием регистров и исполнением по предположению". http://worldcrisis.ru/crisis/2037026
Вот только с переводом немножко подмухлевали - в оригинале не говорилось, что первые Западные суперскалярные процессоры появились на 15 лет позже:
In 1978, almost 15 years ahead of Western superscalar processors, Elbrus implemented a two-issue out-of-order processor with register renaming and speculative execution.
Правильный перевод будет такой: "В 1978 году, почти на 15 лет опередив Западные суперскалярные процессоры...".
То есть, здесь сказано, что в процессоре Эльбрус-1 на 15 лет раньше были реализованы названные технические решения, чем в Западных процессорах. При этом Эльбрус-1 использовал архитектуру RISC, известную ещё с начала 1960-х годов и впервые воплощённую в компьютере CDC 6600, а элементная база «Эльбруса» была построена на TTL микросхемах 133 серии, которые были клонами микросхем 54 серии от Texas Instruments (названия этих микросхем можно посмотреть в справочнике).
Возможно, Эльбрус-1 действительно впервые реализовал на практике какие-то востребованные в будущем решения, но далее в статье говорится, что в то время такой подход себя не оправдал и поэтому компания отказалась от суперскалярной архитектуры в пользу EPIC.
Разочарованная соотношением производительности и сложности этого проекта, в 1986 году компания приступила к разработке архитектур, основанных на явном мелкозернистом параллелизме и широком наборе команд - концепциях, которые сегодня в совокупности называются EPIC.
Для справки: на технологию, позже названную EPIC, имеется патент US4847755A, с датой приоритета от 1985 года.
Далее повествование статьи почему-то перескакивает с Эльбрус-1 сразу на Эльбрус-3, пропуская Эльбрус-2, построенный на основе интегральных схем серии ИС-100, клонов схем компании Motorola серии MECL 10K. Получается, что первые два проекта были построены на заимствованиях и, следуя тексту статьи, так и не были доведены до ума, после чего Бабаян получил государственное финансирование на третий, "принципиально новый проект" Эльбрус-3, который так и не был запущен в серийное производство. И вот Бабаян в статье обещает "сделать лучше", чем Западные аналоги, но уже в новом проекте E2K.
По всей видимости, статья "Русские идут" является рекламной и Кейт Дифендорф здесь выступает скорее в качестве пиарщика, чем эксперта. Вот, например, отрывок, где он призывает потенциальных инвесторов поверить Бабаяну и выделить финансирование:
Мы можем только надеяться, что кто-нибудь сочтет нужным профинансировать этот проект, чтобы их идеи можно было проверить на практике. Было бы действительно обидно, если бы талант команды Elbrus и технологии, заложенные в E2k и его компиляторах, были потеряны из-за нехватки нескольких десятков миллионов долларов.
А в начале статьи Кейт Дифендорф представляет Бабаяна "российским Сеймуром Крэем" - видимо, что добавить ему авторитета в глазах потенциальных инвесторов:
Известный разработчик суперкомпьютеров Борис Бабаян, которого часто называют российским Сеймуром Крэем, рассказал о новом процессоре, который разрабатывает его компания Elbrus International.
Российский архитектор суперкомпьютеров д-р Борис Бабаян, которого часто называют российским Сеймуром Крэем, планирует бросить вызов Intel Corp с помощью технологии, которая использует методы, схожие с чипом Intel Merced
А ещё в этой статье говорится, что, "по слухам", «Эльбрус-3» был в два раза быстрее Западных конкурентов. Проверить эти "слухи" и сравнить производительность "Эльбрус-3" с существовавшими в то же время Западными машинами неназванный журналист издания почему-то не удосужился, что лишний раз говорит о заказном характере материала.
Так вот, «Эльбрус-3», со слов официального представителя компании АО «МЦСТ» Константина Трушкина, "должен был достичь скорости в 1 млрд операций в секунду" (но не достиг?), а это меньше производительности Grey-2 (1.41 Gflops), выпущенного в 1985 году, меньше производительности NEC SX-3/44 (20 Gflops), выпущенного в 1992 году, не говоря уже про Intel Paragon (170 Gflops), выпущенный в 1994 году (в том же году, когда была готова рабочая версия Эльбрус-3). Есть и более раннее упоминание Бабаяна как "российского Сеймура Крэя" - это статья Компьютерный царь в зарубежном журнале Популярная Наука от 1994 года.
Бабаян получил прозвище "русский Сеймур Крэй" в честь американского гения-затворника, который был пионером в разработке суперкомпьютеров.
И где же Бабаян получил такое прозвище? На страницах подобных заказных статей?
Бабаян - "русский Сеймур Крэй"?
А если подумать, то что общего у Бабаяна и Сеймура Крэя, кроме того, что это разработчики суперкомпьютеров? Сеймур Крей прославился, прежде всего, как создатель самых продвинутых компьютеров в мире - работая в CDC и будучи одним из учредителей этой компании, он создал компьютеры CDC 6600 и CDC 7600, установившие новые стандарты для всей компьютерной индустрии. После чего авторитет Крэя, как разработчика суперкомпьютеров, был бесспорен, поэтому, когда он основал собственную компанию Cray Research, инвестиции не заставили себя долго ждать. И Крэй тогда не обманул ожидания инвесторов, выпустив суперкомпьютер Cray-1, который не только был самым быстрым на то время, но и также стал коммерчески успешным - было продано более 80 Cray-1 всех типов (для сравнения, суперкомпьютер CDC STAR-100, тоже самый быстрый на момент выпуска, был построен в количестве лишь 5 штук).
Советские же разработки отставали от Западных на 5-10 лет и поэтому не были широко известны за рубежом. Для наглядности, вот хронология появления суперкомпьютеров на Западе и в СССР, и их производительность:
FLOPS - операция с плавающей запятой в секунду IPS - число инструкций в секунду
В свете этих фактов, Бабаяну, в разговоре с Дифендорфом, пришлось признать, что советские суперкомпьютеры Эльбрус-1 и Эльбрус-2 вышли неудачными ("стали разочарованием"), тогда как Эльбрус-3, "на принципиально новой архитектуре" VLIW, якобы должен был стать технологическим прорывом, но не был закончен по причине развала СССР. Вот только на Западе уже были реализации архитектуры VLIW (например, компьютеры от Multiflow) и они не были востребованы рынком. И даже процессор Intel Itanium, который разрабатывался в 90-е и должен был учесть ошибки предшественников, в итоге оказался слабее конкурентов: "Было продано всего несколько тысяч систем с оригинальным процессором Merced Itanium из-за относительно низкой производительности, высокой стоимости и ограниченной доступности программного обеспечения".
В общем, Бабаян хорошо напустил пыли в глаза, чтобы привлечь Западные инвестиции, но потенциальные инвесторы, в отличии от российской патриотической общественности, оказались не столь доверчивы: так, в материале издания eWeek за 2002 год отмечают, что "российская компания до сих пор не произвела никакого кремния" для демонстрации американским аналитикам и не посещала форум MDR Microprocessor Forum, ведущий презентацию новых разработок.
В итоге, процессор Эльбрус 2000 был запущен в производство лишь в 2008 году, причем в Тайване. В CNews писали (статья с сайта удалена, ссылка ведет на архив), что российский процессор на тесте SPEC обогнал Pentium III, а на гостесте даже показывал производительность, эквивалентную Pentum 4. При этом Pentium III был снят с производства уже в 2003 году, а Pentum 4 в 2008 году. Выходит что если верить российским государственным тестам, Эльбрус в 2008 году достиг производительности Пентиум 4, выпущенного в 2000 году!
Профинансировали все это дело, главным образом, российские налогоплательщики (которым не нужно ничего доказывать или отчитываться). Правда в 2022 году компании МЦСТ трижды отказали в государственной субсидии, поскольку заявки компании не прошли научно-техническую оценку комиссии Минпромторга (а может это связано с санкциями и расходами госбюджета в связи с проведением СВО, ведь раньше же как-то проходили).
Роль Пентковского в создании процессора Pentium
В ряде публикаций, например, здесь, утверждается, что процессор Пентиум назван в честь Владимира Пентковского, советского разработчика процессоров Эльбрус:
После развала СССР, один из разработчиков Эльбрусов, Владимир Пентковский эмигрировал в США и устроиться на работу в Intel. Вскоре он стал ведущим инженером корпорации и под его руководством в 1993 г в Intel разработали проц Pentium, названный так именно в честь Пентковского.
Но Пентковского в качестве главного архитектора привлекали только к созданию Pentium III, каким же образом в честь него мог быть назван Pentium I, разработанный вообще без его участия? Логика тут явно хромает. Впервые Intel анонсировала процессор Пентиум в 1992 году, только тогда он назывался P5.
Страница из журнала Info World, Том 14, № 24, июнь 1992 год.
Название Pentium придумали в компании Lexicon Branding, куда компания Intel обратилась по причине судебного запрета на регистрацию торговой марки с числом "386".
Что касается роли Пентковского как инженера компании Intel, то есть научные публикации, посвященные архитектуре процессора Pentium III, написанные им в соавторстве с другими учеными. В частности, Пентковский указан как один из трёх авторов статьи "Реализация потоковых SIMD-расширений на процессоре Pentium III", посвящённой технологии SSE, которая была впервые использована как раз в процессоре Pentium III. В процессоре Pentium 4, выпущенном в 2000 году, уже использовался расширенный набор инструкций SSE2 и Пентковский не указан среди разработчиков в статье, посвящённой архитектуре этого процессора.
В российской Википедии о Пентковском пишут, что он "руководил разработкой нескольких поколений процессоров Intel". Данное утверждение ссылается на статью ixbt.com от 5 июля 1999 года, но никаких фактов, что Пентковский руководил разработкой других процессоров Intel, помимо Пентиум 3, там нет, есть только пространные намеки про "похожесть" Pentium Pro на прототип советского процессора Эль-90 (если что, главным архитектором Pentium Pro был Фред Поллак, а не Пентковский). Что касается "похожести", то Эль-90 также может быть "похож" на Западных предшественников, например, архитектурой RISC, которая впервые была применена на суперкомпьютере CDC 6600 (1964), а во второй половине 1980-х уже были массовые RISC-процессоры, такие как AMD Am29000 (1988), Intel i860 (1989, RISC и VLIW), Motorola 88000 (1988). Вот, скажем, Intel i860 чем хуже? Если у Эль-90, как пишут, была расчётная частота 25-30МГц, то компания Intel уже запустила в производство в 1989 году процессор с частотой от 25 МГц до 40 МГц. Кроме того, Эль-90, судя по всему, вышел недоработанным, раз не был запущен в производство, поэтому команда Пентковского приступила в 1990 году к проектированию Эль-91С, который не был закончен уже по причине краха СССР (а так бы "догнали и перегнали", не сомневайтесь).
В общем, даже если отмести все домыслы и спекуляции, надо признать, что Пентковский сыграл значительную роль в развитии компьютерной индустрии, но именно как инженер компании Intel, тогда как в СССР он занимался вторичными разработками. И Пентковскому ещё повезло, что он вообще мог заниматься любимым делом в условиях советской диктатуры, тогда как многие его коллеги подвергались репрессиям и дискриминации.
Была ли "компьютерная гонка" между США и СССР?
Патриотов, верящих, что у США и СССР было соперничество в компьютерной сфере, можно условно разделить на две группы: на тех, кто считает, что "компьютерная гонка" была проиграна в середине 1960-х, в результате "предательского решения" о копировании архитектуры IBM System (из-за чего финансирование отечественных разработок урезали), и на тех, кто верит, что СССР не отставал или даже опережал США в компьютерных технологиях (соответственно, первые верят байке про телеметрию, а вторые - ещё и бабаяновским байкам про "убийцу Интел").
Если по фактам, то советские суперкомпьютеры ни разу не становились самыми быстрыми в мире, в чем можно убедиться, ознакомившись с хронологией появления самых быстрых компьютеров с 1938 года по 1992 год.
* IPS - инструкций в секунду* FLOPS - операция с плавающей запятой в секунду
Разумеется, советская власть публично не признавала отсталость советских ЭВМ, что и дало почву для конспирологии и обвинений в саботаже. Действительно, если у СССР были хорошие собственные разработки, то почему стали копировать компьютеры IBM в рамках программы ЕС ЭВМ, а затем решения Intel, DEC, Hewlett-Packard в серии СМ ЭВМ? Или зачем закупали британские ICL System 4 для госучреждений, если были свои "продвинутые БЭСМ-6"?
Советское правительство также закупало американские машины CDC Cyber 170 (1973), не смотря на то, что варианты для СССР имели урезанный функционал и меньшую производительность.
CDC Cyber 170 в Вычислительном центре Академии Наук на Менделеевской линии в Ленинграде
Всего было закуплено 6 или 7 машин CDC Cyber 170 по 5 млн. $ каждая (для сравнение, БЭСМ-6 стоила 530 тыс. рублей или ~650 тыс. $ по курсу 1970-х). И даже в неполноценном варианте американские машины были "быстрее, эффективнее и удобнее, чем БЭСМ-6", как признал в интервью DataArt Владимир Иванович Воробьёв, в то время заведующий Лабораторией информационно-вычислительных систем и технологий программирования ЛНИВЦ (СПИИРАН), где стояла одна из CDC Cyber 170. Получается, что дело вовсе не в мифических предателях и практика импорта и копирования Западных машин была вопросом целесообразности.
Для тех же, кто считает, что причина нарастающей отсталости советских машин была в "недостаточном финансировании", замечу, что крупнейшие мировые производители компьютеров, такие как IBM, Intel, AMD, DEC, CDC, HP и др., государственного финансирования не привлекали. И если Западные компании стремились сделать коммерчески привлекательный продукт для конкретной потребительской ниши, то советские разработки были прежде всего нацелены на технологический суверенитет в критически важных областях, там где использование Западных машин или их точных копий было нежелательно.
Соответственно, копирование Западных средних и малых ЭВМ позволило СССР высвободить больше научных ресурсов для создания отечественных суперэвм. И это не только "Эльбрус", но и, например, Электроника СС БИС, которая была введена в эксплуатацию в 1989 году. А вот слова одного из разработчиков этой машины, Юрия Панчула: "Этот проект был неудачей эпических масштабов - компьютер заработал только спустя 13 лет после своего заокеанского брата. До 1991 года было выпущено 4 экземпляра машины, которые оказались не нужными абсолютно никому".
Можно говорить о конкуренции США с Британией, Канадой, КНР, Японией, потому что суперкомпьютеры из этих стран когда-то или даже относительно недавно становились самыми быстрыми в мире, тогда как СССР ни разу не отметился в мировой компьютерной гонке. В целом советская компьютерная отрасль развивалась на заимствованиях решений у Западных частных компаний, причём с большим отставанием (сравните, например, даты производства компьютеров IBM System, PDP, VAX, и их советских клонов серии ЕС ЭВМ и СМ ЭВМ).
Персональные компьютеры и компьютерный бум
Появление персональных компьютеров в США привело к "компьютерному буму" в Западном мире - так, в 1980-х годах, в странах Запада было продано свыше 80 млн. ПК.
Динамика продаж домашних компьютеров в капстранах
В СССР первым серийным персональным компьютером был Агат (1984), аналог Apple II (1977). Высокая стоимость «Агата» (около 4000 р.) сделала его недоступным для рядового советского потребителя, поэтому он производился небольшой серией для госучреждений. Для сравнения, самый популярный Западный ПК того времени Commodore 64 стоил 199$ (~160 руб. по советскому курсу).
А самыми массовыми ПК в СССР были клоны ZX Spectrum. Стоили советские клоны в районе 1000 р. (например, госцена на ПК «Сура» составляла 1152 р.), тогда как оригинальный Spectrum стоил около 200$ (~112 руб. по курсу 1991 года). Естественно, после снятия ограничений на импорт, Западные компьютеры быстро заместили отечественные.
Итого: Единственным фактом, якобы доказывающим временное превосходство советских машин, служит история про расчёт телеметрии во время советско-американской космической миссии Союз-Аполлон. Чтобы проанализировать данный факт, нужны подробности, например, что за машины были у американской стороны и в каких условиях проходило это якобы соревнование. И вообще, американские коллеги знали, что с ними соревнуются? Почему нам об этой истории известно только из российских источников? У NASA, в то же время, была машина ILLIAC IV, почему она не упоминается в контексте истории с расчётом телеметрии? Ведь если NASA не задействовали свою самую мощную машину, то какое же это соревнование?
Что касается утверждений и предположений о якобы заимствований советских компьютерных технологий, то никаких доказательств этому не приводится. Зато есть множество примеров копирования в СССР компьютеров или компьютерных решений Западных частных компаний.
И даже если какой-то серийный Западный компьютер "был похож" на советский прототип, то это не доказывает советский приоритет. Дело в том, что для серийного производства должна быть подготовлена соответствующая технологическая база, тогда как советские разработки иногда больше походили на эксперименты (делали какой-то прототип и тут же приступали к разработке следующего) - частные компании такого позволить себе не могли (рисковать деньгами инвесторов), особенно на начальном этапе своего развития. В качестве доказательств какого-либо советского приоритета надо привести авторское свидетельство или научное исследование, более ранее, чем аналогичное Западное, а сравнивать прототип с серийной продукцией - некорректно.
Ну и наконец, что касается обвинений во вредительстве в адрес советского руководства. Вообще, спорить с конспирологами не нужно, ведь никаких доказательств они не приводят, но давайте им подыграем и предположим, что Запад и правда внедрял шпионов, "чтобы подорвать технологический суверенитет СССР". Тогда, в любом случае, виновата система, ведь с Западными странами подобное провернуть сложнее - там представителей власти можно критиковать и, если они действуют против национальных интересов, их не переизберут. Не говоря уже о том, что есть конституция, которая в демократических странах не позволяет чиновникам напрямую вмешиваться в экономику. Если же заслать шпионов не в правительство, а в какую-нибудь частную компанию, то лучшие сотрудники этой компании могут перейти работать к конкуренту, либо же создадут свою компанию, подобно тому, как бывшие сотрудники Sperry Rand основали Control Data Corporation. В СССР подобные возможности отсутствовали, а "железный занавес" фактически делал многих советских инженеров невыездными (например, чтобы разработчик Наири Грачья Есаевич Овсепян смог уехать из СССР, потребовалось вмешательство американского президента). И да, действительно, при такой централизованной и неподотчётной народу власти, с монополией на СМИ и систему образования, теоретически возможно завербовать какие-нибудь высшие должностные лица, которые будут работать против интересов страны и население этой страны даже не осознает этого.
Сноски * В научной публикации High-Speed Computers of the Soviet Union утверждается, что БЭСМ-6 имела общие конструктивные особенности с Atlas, такие как уникальная для этих двух систем разрядность слова и адреса и разрядность машинных команд в слове, использование одноадресных команд с индексным регистром, регистра скрытых разрядов, кодировка символов и пр., также была идентичная техдокументация на обе машины.
** Система АС-6 была сдана в опытную эксплуатацию только в 1979 году, но здесь говорится, что "она использовалась при проведении работ по программе совместного советско-американского проекта «Аполлон – Союз»".
А вот и обещанное продолжение. Вчера мы полюбовались на подарок, изготовленный более полувека назад для одного из деятелей электронной промышленности. Сегодня же, можно сказать, подарок получили все, кто интересуется историей компьютеров.
Фрагмент плаката «Мозг человека и кибернетика», 1957
До наших дней сохранилось немало персональных компьютеров советского выпуска. Машин среднего класса уже гораздо меньше, а большие (скажем, ЕС ЭВМ) известны в единичных экземплярах. От самых же первых образцов электронной вычислительной техники, как долго считалось, остались только описания и фотографии. Оказывается, это не так! В Институте точной механики и вычислительной техники все эти годы хранились подлинные узлы от самых первых отечественных машин, созданных ещё в 1950-х. Недавно мне выпала возможность побывать там и увидеть всё своими глазами.
Первый великан
Начну сразу с главного сокровища — деталей от Быстродействующей электронной счётной машины Академии наук СССР, или просто БЭСМ.
Пульт и основные стойки БЭСМ АН СССР. Обратите внимание на ковровые дорожки — мы их ещё встретим
БЭСМ — первая «большая» ЭВМ в нашей стране, не столько буквально (хотя она действительно была огромной), сколько в плане её возможностей. Это был уже не макет или лабораторный образец, как более ранние МЭСМ и М-1, а полноценный универсальный компьютер, обладавший максимальной производительностью, достижимой при уровне технологий тех лет.
Машина была построена в 1952 г. под руководством пионера советской вычислительной техники — Сергея Лебедева. В апреле 1953-го её приняла Государственная комиссия, которую возглавлял академик Мстислав Келдыш.
Панно с портретом Сергея Лебедева в стенах ИТМиВТ
С этого момента и до самого выключения в 1960 г. БЭСМ эксплуатировалась практически круглосуточно. Огонь, вода, воздух, земля: не было стихии, где для машины не нашлось бы задач. Рассчитать динамику водородного взрыва или конструкцию плотины, траекторию космического корабля или оптимальную крутизну канала в грунте — ЭВМ выполняла любую работу, которая была для человека слишком сложной или слишком скучной. Четыре тысячи радиоламп заменяли сотню тысяч людей-вычислителей.
В восторге от новой машины были не только «физики», но и «лирики»: со временем БЭСМ научилась проигрывать музыку, отображать несложную графику и даже автоматически переводить длинные тексты с языка на язык. И всё это — при оперативной памяти, вмещавшей лишь 2048 чисел и команд. Сегодня даже в самых простых смарт-часах ресурсов в тысячи раз больше!
Знаменитый в будущем космонавт Георгий Гречко, который в середине 1950-х занимался расчётами для ракетной техники, вспоминал, как дневал и ночевал возле БЭСМ. Окна в машинном зале были открыты даже зимой, чтобы не допустить перегрева уникального научного инструмента.
Половина времени машины, — скажем, всё дневное время, — принадлежала атомщикам. Почти всё ночное — нам, ракетчикам. Когда мы ночью заканчивали считать, общественный транспорт уже не работал, а машин у нас, естественно, не было, поэтому приходилось спать там же. Было холодно, и, чтобы согреться, изобретали разные способы. Вплоть до того, что спали в коридоре: там лежали ковровые дорожки, в которые можно было завернуться и так пролежать до утра.
Мне особенно запомнилось утро, когда расчёты, наконец, были закончены <...>. Я взял ленту, на которой она была записана, вышел из института, и дождался, когда откроется гастроном напротив. Там продавали сосиски, а у нас в Подлипках сосисок не было. Я купил сосисок, положил их в сетку вместе с этой лентой и поехал на электричке в Подлипки.
Результатом их с БЭСМ ночных бдений стала траектория выведения космического аппарата, который сегодня весь мир знает как «Спутник-1».
Но когда БЭСМ морально устарела, мало кто подумал о том, чтобы сохранить её для истории. Тогда умы инженеров занимали новые вычислительные машины — более быстрые, более совершенные, более экономичные. «Старушка» БЭСМ (которой на тот момент не исполнилось и десяти лет) на их фоне уже смотрелась динозавром. Большая часть машины была безвозвратно утрачена — но тем ценнее сохранённые части.
Объявление, посвящённое выключению БЭСМ. Press F to pay respects
Остались важные детали всех её ключевых блоков: от процессора — более десятка оригинальных ламповых ячеек, от оперативной памяти — запоминающая электронно-лучевая трубка, от долговременного хранилища — магнитный барабан весом более центнера, предок современных жёстких дисков.
Ламповые ячейки от БЭСМ. В основном в машине использовались лампы 6Н8С, 6П6С, 6Х6С и 6П9
Магнитный барабан — одно из устройств долговременного хранения данных
Самая же крупная деталь от БЭСМ — это... дверь. Алюминиевая сдвижная дверь со стеклом, которая позволяла защитить хрупкие электронные лампы, но в то же время легко и быстро обеспечить доступ для их обслуживания. Таких дверей в машине было несколько, но сохранилась одна.
Спасибо ЭВМ за мирное небо
Ещё среди уникальных находок в ИТМиВТ — детали от машин, как принято говорить, «специального назначения». Прежде всего это ламповые блоки от ЭВМ «Диана», М-40 и М-50, которые использовались в системах противоракетной обороны. С помощью ЭВМ этой серии 4 марта 1961 года впервые в мире удалось сбить боевой блок баллистической ракеты другой ракетой, запущенной на перехват в точку упреждения. Обеспечить необходимые точность и скорость расчёта могла только быстродействующая ЭВМ. А ещё между М-40 и М-50 была организована первая в нашей стране компьютерная сеть. Многие «мирные» технологии имеют военное происхождение...
Ламповые ячейки от М-40 и М-50 (в центре)
Машина М-40, кстати, чуть не провалила задачу из-за ненадёжности элементной базы. В самый ответственный момент одна из электронных ламп сгорела. Только благодаря мгновенной реакции сотрудников ИТМиВТ удалось заменить блок, перезапустить компьютер и успешно послать ракету. Но в целом уже было очевидно, что время электронных ламп проходит. Новые компьютеры проектировали на основе полупроводниковых приборов — транзисторов и диодов.
Именно такую элементную базу имела БЭСМ-6 (1967) — одна из лучших советских ЭВМ, имевшая производительность до 1 миллиона операций в секунду. Для сравнения: БЭСМ в модификации 1955 года могла выполнять 8–10 тысяч операций в секунду, то есть всего за 12 лет производительность возросла стократно! Никакая другая техника не развивалась в XX веке быстрее, чем вычислительная.
Именно узнаваемое «каре» основных стоек этой машины было воссоздано в сувенире, который я показывал вчера. Первые БЭСМ-6 ещё имели оперативную память на ферритовых сердечниках, которая занимала с десяток немаленьких шкафов, а поздних моделях память уже была выполнена на микросхемах.
Восемь глухих шкафов слева от основных стоек — это как раз оперативная память
На микросхемы вскоре перешла почти вся вычислительная техника. Следующие суперкомпьютеры разработки ИТМиВТ — «Эльбрус» — были выполнены как раз на базе средних и больших интегральных схем. На первый взгляд выходит немного комично — «большая маленькая схема», но речь, как и в случае с БЭСМ, идёт не о физическом размере, а о её большой сложности, то есть большом количестве элементов, входящих в её состав, — и, соответственно, больших возможностях. «Эльбрусы» в основном имели военное назначение — в частности, одна из таких машин до начала 2020-х (!) обеспечивала работу знаменитой радиолокационной станции «Дон-2Н».
Где-то там внутри скрывается советский десятипроцессорный монстр
Наверное, у вас назрел очевидный вопрос: а куда же всё это попадёт теперь? Отвечаю: всё, что вы видите на фотографиях, станет экспонатами Политехнического музея. Теперь его коллекция вычислительной техники, и без того самая полная в стране, станет ещё богаче. На самом деле я показал далеко не всё, что удалось найти в ИТМиВТ. Есть ещё книги, фотографии, открытки, макеты, памятные вещи...
Вот такой получился роскошный подарок ко Дню информатики, который мы будем отмечать завтра — 4 декабря. Спасибо генеральному директору ИТМиВТ А.В. Князеву и руководителю центра прикладных разработок Е.В. Смирнову — без них эта передача не состоялась бы. Я как исследователь невероятно рад и предлагаю вам порадоваться вместе со мной!