Вектор-инструкция: о советском происхождении VLIW

Изначально у меня была мысль опубликовать на habr статью о современных VLIW-процессорах. Думаю, далеко не все читатели в курсе, что сейчас происходит ренессанс VLIW-подобных архитектур в области предметно-ориентированных ускорителей. Такие компании, как Xilinx, Synopsys и Cadence, даже предоставляют «конструкторы» для сборки VLIW-процессоров под задачи клиента. Но начало статьи, в контексте истории VLIW, планировалось посвятить неожиданной для меня исторической находке, давшей название заголовку заметки, которую вы сейчас читаете. Увы, сейчас совершенно некогда писать развернутую статью о VLIW-процессорах. Но и молчать о своей находке я тоже уже не могу!

Несколько лет назад я беседовал с одним из наших заслуженных процессоростроителей, который, несмотря на преклонные годы, до сих пор активен в типичной организации с приставками «ФГУП» и «НИИ». Говорили мы о забытых достижениях в области высокопроизводительных вычислительных систем, речь шла о SIMD, VLIW и прочем. Мой собеседник посетовал, что о многих действительно оригинальных советских решениях в области спецвычислений до сих пор информация закрыта.

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

Перехожу, наконец, к сути! В интернете можно найти обрывочные сведения о том, что «первой советской VLIW-машиной» является нереализованный проект M-9 или же вдохновленная им машина М-10.

На сайте ИНЭУМа о М-9 есть следующая информация:

«…Дополнительный выигрыш в повышении производительности на 1-2 десятичных порядка мог быть получен за счет второй основной идеи, предложенной в проекте М-9. Она заключалась в синхронном объединении нескольких машин в одну вычислительную систему. При таком синхронном объединении все машины должны были работать от одного тактового генератора, выполнять операции за 1-2 такта. В конце операции и в начале следующей операции был возможен обмен между любыми арифметическими и запоминающими устройствами машин, объединенных в систему».

Обратите внимание, о VLIW здесь прямо не говорится. В сборнике «Страницы истории отечественных ИТ» о M-9 указывают следующее:

«…Еще в конце 60-х годов М. А. Карцевым были предложены принципиальные новшества в архитектуре ЭВМ и вычислительных систем: архитектура типа RISC с сокращенным набором команд, выполняемых за 1 машинный такт, и архитектура типа VLIW с длинным командным словом, задающим коды операций над векторами той или иной длины, выполняемых одновременно в двух или более многопроцессорных арифметических устройствах».

При этом М-9 называют еще и векторной машиной, а иные авторы только добавляют путаницы в духе:

«Комплекс М-9 был одной из первых вычислительных систем, архитектура которых впоследствии получила название VLIW (very long instruction word —очень длинная машинная команда). ЭВМ М-10 и М-13, о которых речь пойдет далее, также часто приводятся, как пример отечественных VLIW-архитектур. В каждой команде такой системы содержится несколько операций, которые должны выполняться параллельно на разных процессорах… VLIW-машина лучше всего выполняет векторные операции, в которых одна и та же операция выполняется над множеством данных (компонентов вектора) — такой процесс оптимизируется наиболее просто. Поэтому описываемую далее М-10 часто называют векторной (векторно-параллельной) машиной…».

Как и всегда в подобных случаях, для прояснения картины я обратился к прямым источникам советского времени. В частности, я попытался выяснить, оставил ли после себя разработчик легендарных M-9/М-10, М.А. Карцев, какие-то книги по созданным им машинам. Удача мне улыбнулась в виде следующего учебника: «Карцев М. А., Брик В. А. Вычислительные системы и синхронная арифметика //М.: Радио и связь. – 1981. – Т. 6″. Первые две главы в этой книге написаны Карцевым и могу уверенно сказать, что они представляют интерес не только для историков, но и для специалистов по архитектуре ЭВМ!

Ключевой в контексте моего поиска является глава 2 под названием «Структуры вычислительных систем». Карцев, как и многие другие ученые, не был в восторге от знаменитой классификации Флинна (SISD/SIMD/MISD/MIMD) и поэтому предложил свой вариант. Как вы уже, возможно, догадались, нашлось в новой классификации место и VLIW-машинам.

Итак, речь идет о системах «типа III» и это «многопроцессорные системы с общим управлением, ориентированные на параллелизм смежных операций». Параллелизм смежных операций это, разумеется, параллелизм команд. Карцев рассматривает два варианта организации таких систем. Первый состоит в том, что «прочитав очередную инструкцию, устройство управления анализирует, имеются ли условия для того, чтобы начать ее исполнение, если возможно, — поручает ее исполнение любому свободному процессору». Здесь речь идет о внеочередном исполнении или даже о dataflow-подобных архитектурах. Второй случай как раз рассматривает VLIW. Судите сами:

«Во втором варианте устройство управления прочитывает из памяти непосредственно векторы-инструкции. Один вектор-инструкция содержит в пределе n компонент — по числу процессоров, каждая из которых указывает, какую операцию должен выполнить соответствующий процессор».

Да, «вектор-инструкция» это и есть та самая широкая команда. По поводу процесса распараллеливания:

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

Судя по всему, Карцев был знаком с алгоритмами планирования инструкций, но, говоря о компиляции для VLIW-архитектур, ограничивался общим термином «локальная оптимизация».

Эффективность VLIW-машин далее в книге детально анализируется и Карцев, в частности, пишет, что «целесообразная величина n (количество процессоров) для вычислительных систем типа III лежит в пределах 2-6».

Наконец, в учебнике Карцева четко сказано о еще одном важном признаке VLIW-архитектуры:

«В многопроцессорной системе типа III, работающей с вектором-инструкцией, желательно, чтобы длительность выполнения операции не зависела не только от операндов, но и от типа операции, потому что цикл работы системы и здесь подстраивается под наибольшее время работы любого из n процессоров, но теперь эти процессоры выполняют, может быть, разные операции».

На мой взгляд, уже по приведенным цитатам видно, что перед нами содержательное теоретическое введение в VLIW-архитектуры. Обсуждаемая книга вышла в 1981 году, за два года до знаменитой статьи Фишера. Сама же классификация, включая те самые машины типа III, была предложена в статье Карцева 1970 года: «Вопросы построения многопроцессорных вычислительных систем. Вопр. радиоэлектроники, сер. Электронная вычислительная техника, 1970, вып. 5—6, 3—19».

Осталось сравнить подходы к определению VLIW у Карцева и признанного автора VLIW — Фишера. Как и в случае первых RISC-машин, здесь важную роль играет поддержка в виде компилятора. У Фишера VLIW-архитектура со стороны компилятора проработана детальнее, чем у Карцева и представлена, в частности, знаменитая техника trace scheduling. Тем не менее по тексту учебника «Вычислительные системы и синхронная арифметика» видно, что Карцев прекрасно понимал важность роли компилятора для рассматриваемой архитектуры. При этом с точки зрения проработки теории аппаратной стороны VLIW Карцев, на мой взгляд, ни в чем не уступает Фишеру.

Я очень надеюсь, что упомянутая выше статья Карцева 1970-го года когда-нибудь появится в свободном доступе в интернете. Что же касается путаницы у процитированных выше авторов с классификацией архитектуры M-9, то, затруднение, очевидно, произошло потому, что машина М-9, в терминологии Карцева, представляла собой проект с комбинированной архитектурой. Конечно же, о комбинированных архитектурах (включающих в себя элементы SIMD, VLIW, …) тоже подробно написано в книге «Вычислительные системы и синхронная арифметика».

P.S. Обсуждаемую книгу легко найти на libgen.

Читайте так же:

  • Объединённая статистика из сервисов Яндекса в СправочникеОбъединённая статистика из сервисов Яндекса в Справочнике В Яндекс.Справочнике появилась возможность анализировать. Как пользователи взаимодействуют с вашей организацией на поиске и других сервисах Яндекса — Картах, Услугах, Коллекциях и Кью. Теперь всю статистику по ним можно увидеть сразу […]
  • «Быстрый и футуристичный», — Xiaomi дразнит новым смартфоном«Быстрый и футуристичный», — Xiaomi дразнит новым смартфоном На сайте Amazon появился страничка, посвящённая новому смартфону компании Xiaomi. Который будет представлен в Индии в ближайшие дни. Пока что опубликован только тизер, на котором говорится, что смартфон будет быстрым и футуристичным. Различные источники считают, что речь идёт о смартфоне […]
  • Динамический контент сайта этоДинамический контент сайта это Динамический контент в основном определяется как любой цифровой или другой онлайн-контент. Который изменяется с течением времени в зависимости от типов данных. Это может измениться из-за поведения пользователя или предпочтений пользователя. Динамические примеры контента включают […]
  • Вышел первый рейтинг самых мощных флагманов с новым AnTuTu V9Вышел первый рейтинг самых мощных флагманов с новым AnTuTu V9 Команда популярного бенчмарка AnTuTu опубликовала свой ежемесячный рейтинг самых производительных флагманских смартфонов на основе операционной системы Android. Рейтинг за апрель 2021 года для китайского рынка первым в истории строится уже с учётом результатом нового AnTuTu V9, […]