Вычислительная система М-9
В 1966 г. в Институте электронных управляющих машин по руководством М. А. Карцева был разработан аван-проект вычислительной системы М-9. Исполнители проекта: Е. В. Гливенко, В. А. Брик, Л. З. Либуркин, Л. В. Иванов, Ю. И. Галкин. В 1967 г. на основании решения Комиссии Президиума Совета Министров СССР и приказа Минприбора СССР был разработан эскизный проект М-9 (“Октябрь”), выполненный в рамках эскизного проекта системы “Аврора” — комплекса радиоэлектронных средств, в том числе средств обработки больших потоков радиолокационной информации.
Исполнители эскизного проекта М-9: М. А. Карцев (главный конструктор), Р. М. Акчурин, В. А. Брик, Е. В. Гливенко, Л. Н. Коваленко, В. П. Кузнецова, Л. З. Либуркин, В. П. Филиппов.
В проект М-9 М. А. Карцевым были заложены передовые идеи в области параллельной обработки информации. Многие решения этого проекта были изобретениями, многие плодотворные идеи не реализованы до сих пор. Перед разработчиками М-9 была поставлена задача на элементной и технологической базе уровня конца 60-х — начала 70-х годов создать вычислительные средства с производительностью порядка 108-109 операций/с. С потребностью в таких средствах столкнулись разработчики систем наблюдения за искусственными спутниками Земли с помощью радиолокационных станций (академик А. Л. Минц и руководимый им коллектив Радиотехнического института АН СССР). Существовавшие в то время в стране вычислительные средства обеспечивали производительность порядка 105-106 операций/с.
Таким образом, М. А. Карцев еще в 1966-67 гг. ставил задачу повышения производительности вычислительных систем на 2-3 порядка и намечал пути решения этой задачи. Он предложил новую архитектуру и структуру вычислительной системы, которые могли бы использовать естественный параллелизм исходной информации, подлежащей обработке.
Докладывая о проекте М-9 в 1967 г. на симпозиуме по вычислительным системам и средам в Новосибирске, М. А. Карцев в шутливой форме объяснил, что “машина М-220 называется так потому, что имеет производительность 220 тысяч операций/с, а М-9 называется так потому, что обеспечивает производительность 109 операций/с”.
Идеи функциональной арифметики для параллельных вычислений, сформулированные в проекте М-9, являлись обобщением принципов векторного и матричного процессоров. Архитектура М-9 предусматривала выполнение арифметических и логических операций над новым классом операндов — не над числами, а над функциями одной или двух переменных, заданных в дискретных точках. Система команд функциональной арифметики предусматривала операторы, выполняемые структурой многоразрядных процессоров, в которой паре функций, заданных во входных регистрах, соответствовала функция-результат, получаемая в выходных регистрах. Были также предусмотрены операторы, результат выполнения которых являлся числом, а не функцией. Операторы второго типа имели дело с функциями, записанными в регистрах структуры одноразрядных процессоров. Эти функции, принимающие значения 0 или 1, служили для выделения какого-либо множества из обрабатываемой информации (т. е. были введены операторы характеристических функций множеств). В операторах третьего типа были задействованы как функции, так и множества, являющиеся операндами или результатами выполнения. Эти операторы служили для того, чтобы преобразовывать функцию на некотором множестве или получать в виде результата некоторое множество, связанное с заданной функцией.
Структура вычислительной системы М-9, предложенная М. А. Карцевым, состояла из нескольких крупных блоков, объединенных мощными магистральными связями. Эти блоки М. А. Карцев называл “связками”.
Основную вычислительную мощность М-9 должна была обеспечить “функциональная связка” в виде “решетки” 32в32 процессоров, выполняющих операторы над 16-разрядными операндами. В каждой горизонтальной линии этой матрицы, имеющей 32 процессора, предусматривались дополнительные общие арифметические цепи, позволяющие выполнять за один машинный такт действия типа “сумма парных произведений” (скалярное произведение векторов, имеющих по 32 компонента). При умножении двух матриц за один такт работы функциональной связки можно было получить сразу 32 элемента результирующей матрицы. Общие арифметические цепи могли производить суммирование с накоплением результата, что позволяло при необходимости обрабатывать векторы большей длины, чем 32 компонента. На операторы, выполняемые “решеткой” процессоров функциональной связки, могла накладываться “маска” в виде матрицы булевых переменных, которая разрешала выполнение действий элементарным процессорам, отмеченным в маске единицами.
Работу с матрицами булевых переменных для маски должно было выполнять специальное устройство из 32в32 элементарных одноразрядных вычислителей, названное “картинной арифметикой”. “Картины” могли не только преобразовываться, но и сдвигаться по осям координат. Массивы булевых переменных на “картине” могли расширяться и сужаться. Между процессорами функциональной “решетки” и процессорами картинной арифметики предусматривались прямые связи. Это предоставляло дополнительные возможности управления вычислительным процессом.
Кроме функциональной связки в виде “решетки” процессоров, удобной для решения двумерных задач, в проекте М-9 предусматривалась функциональная линейка — структура, работающая с функциями от одного переменного. Такая линейка, названная “числовой связкой”, состояла из 32 процессоров. Эти процессоры должны были выполнять операторы над одной функцией или над парой функций, заданных в 32 точках, либо операторы над двумя функциями или над двумя парами функций, заданных в 16 точках. То есть по одному коду оператора числовая связка могла выполнять одно действие (или 2, 4, 8 разных действий) над парами операндов длиной 128 (или 16, 32, 16 разрядов), в том числе арифметические вычисления с плавающей точкой.
Векторные операции числовой связки дополнялись “картинной арифметикой” в виде линейки 32 элементарных вычислителей булевых переменных — “арифметики признаков”.
В составе М-9 была предусмотрена “ассоциативная связка”, представляющая собой линию элементарных вычислителей, выполняющих операторы сравнения операндов (“больше”, “меньше”, “равно”, “больше или равно” и т. п.), а также узел обработки результирующих булевых переменных и маскирования элементарных вычислителей этой связки. Ассоциативная связка предназначалась для обработки больших массивов входной информации с рассортировкой ее на подмассивы по содержанию. Операторы ассоциативной связки определяли не одно число, а векторы, каждый компонент которого связывался с одной из характеристик объекта, описываемого этим вектором.
Архитектуру М-9 по принципу организации параллельных вычислений можно отнести к классу SIMD (один поток команд — много потоков данных). Многопроцессорная функциональная арифметика каждой связки должна была работать с общей оперативной памятью и постоянной памятью для хранения программ.
Различные комбинации указанных выше связок (от 1 до 8) М-9 должны были позволить создавать многопроцессорные вычислительные системы с производительностью от 20 млн. операций/с до 1-2 млрд. операций/с. В частности предполагалось, что М-10 реализует числовую связку, а М-11 содержит 2 функциональные связки, 1 ассоциативную связку, 1 числовую связку (М-10) и внешний вычислитель для связи с объектом.
Кроме перехода от традиционной архитектуры ЭВМ, работающей с числами, к функционально-операторной архитектуре, о чем говорилось выше, дополнительный выигрыш в повышении производительности на 1-2 десятичных порядка мог быть получен за счет второй основной идеи, предложенной в проекте М-9. Она заключалась в синхронном объединении нескольких машин в одну вычислительную систему. При таком синхронном объединении все машины должны были работать от одного тактового генератора, выполнять операции за 1-2 такта. В конце операции и в начале следующей операции был возможен обмен между любыми арифметическими и запоминающими устройствами машин, объединенных в систему.
М-9 представляла собой вычислительную систему широкого назначения, существенно отличающуюся от известных в то время универсальных ЭВМ (в том числе многопроцессорных) и пригодную для решения самых разнообразных классов вычислительных и логических задач, а также задач управления.
Такие задачи, требующие производительности супер-ЭВМ, возникали в связи с необходимостью обработки больших потоков информации от измерительных устройств крупных технологических объектов, оборонных объектов управления, крупномасштабных научных экспериментов. Многопроцессорные вычислительные структуры, такие, как М-9, открывали возможности решения геометрических задач, связанных, например, с автоматической обработкой снимков пузырьковых и искровых камер в ядерной физике, обработки снимков, получаемых с искусственных спутников Земли, обработки и анализа геологических карт.
Проект М-9, богатый новыми в то время идеями, не был реализован в полном объеме по ряду технических и организационных причин. Прежде всего из-за уровня доступной в конце 60-х годов элементной базы и технологии. М. А. Карцев на собрании, посвященном 15-летию НИИ вычислительных комплексов (НИИВК), в 1982 г. говорил: “В 1967 г. мы вышли с довольно дерзким проектом вычислительного комплекса М-9. Это было в год 50-й годовщины Октябрьской революции, поэтому вычислительный комплекс назывался «Октябрь». Для Минприбора СССР, где мы тогда пребывали, этот проект оказался уж слишком (за пределами задач этого министерства). Нам сказали: идите вы к В. Д. Калмыкову (Министру радиопромышленности СССР), раз уж вы работаете на него. Проект М-9 остался неосуществленным. Но в 1969 г. началась разработка М-10, первый образец которой появился в 1973 г. В течение ряда лет эта машина была мощнейшей в Союзе и сейчас продолжает выпускаться и эксплуатироваться. На М-10 удалось получить уникальные научные результаты, особенно в области физики”.
Числовая связка проекта М-9 — машина М-10 — выпускалась серийно с 1974 г. Загорским электромеханическим заводом. Ее разработка была отмечена Государственной премией СССР в области науки и техники.
Из представленной здесь краткой характеристики проекта М-9 можно видеть, что еще в конце 60-х годов М. А. Карцевым были предложены принципиальные новшества в архитектуре ЭВМ и вычислительных систем: архитектура типа RISC с сокращенным набором команд, выполняемых за 1 машинный такт, и архитектура типа VLIW с длинным командным словом, задающим коды операций над векторами той или иной длины, выполняемых одновременно в двух или более многопроцессорных арифметических устройствах.
Литература
- Аван-проект М-9. Институт электронных управляющих машин. М., 1966.
- Эскизный проект М-9. Институт электронных управляющих машин. М., 1967.
- Kartsev M. A. On the Structure of Multiprocessor Systems. In: Information processing?71. Proceedings of the IFIP in World Computer Congress. Edited by Freiman, North-Holland. Amsterdam, 1971.
- Либуркин Л. З. Проект “Октябрь”, который опередил свое время. Вопросы радиоэлектроники, сер. ЭВТ, вып. 2, 1993.
- Гливенко Е. В. Функциональная арифметика (машина М-10) и современные проблемы первичной обработки. Там же.