История отечественной вычислительной техники

Высокопроизводительный периферийный векторный процессор А-12

В статье представлен высокопроизводительный периферийный векторный ковнейерный процессор А-12, разработанный в Институте автоматики и электрометрии Сибирского отделения АН СССР в 1981 году. Подключение такого процессора к малой ЭВМ открывает новые возможности создания автономных вычислительных систем, предназначенных для научных расчетов, и систем реального времени. Описаны архитектура процессора, элементы его программного обеспечения, различные конфигурации, в которых А-12 может быть использован в архитектуре вычислительных систем высокой производительности.

ВВЕДЕНИЕ

Векторные периферийные процессоры, подключаемые к мини-ЭВМ, позволяют в десятки раз повысить их производительность в вычислительных задачах (до 10 MFlop's)[1]. Системы содержащие мини-ЭВМ и векторный процессор, заняли в иерархии ЭВМ то место, которое еще 10 лет назад принадлежало ЭВМ среднего класса [1—6]. На базе такого оборудования строятся распределенные локальные системы для обработки информации и для научных расчетов. Системы, содержащие мини-ЭВМ и периферийный векторный процессор (т. н. «супер- мини-системы»), обходятся потребителю в несколько раз дешевле, чем подключение к удаленному терминалу мощных вычислительных центров («фабрик счета»), ядром которых являются уникальные высокопроизводительные ЭВМ «супер- ЭВМ»). Важно также то, что при этом пользователь остается единовластным хозяином вычислительных ресурсов и может развивать и реконфигурировать систему по своему усмотрению.

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

В настоящее время на зарубежном рынке вычислительного оборудования векторные периферийные процессоры представлены 15-тью фирмами. Фирма Floating Point Systems ( FPS ) (США) вышла на рынок векторных периферийных процессоров одной из первых — в 1975 г . [7]. Сейчас эта фирма — лидер в этой области, ее продукция чрезвычайно популярна среди пользователей на западе. Фирма поставляет модификации таких процессоров для подключения к ЭВМ семейств IBM и DEC (в том числе и 64-х разрядный процессор, подключаемый к 32-разрядной супермини-ЭВМ VAX -11/780 семейства DEC ).

В 1981 г . в Институте автоматики и электрометрии Сибирского отделения АН СССР был создан отечественный образец периферийного векторного процессора А-12, программно полностью совместимый с моделью AP -120 B фирмы FPS . Он был выполнен исключительно на отечественных микроэлектронных компонентах. Для создания этого процессора в институте была освоена технология автоматизированного производства больших многослойных печатных плат. Всего в рамках этой работы было изготовлено 25 типов многослойных (до 7-ми слоев 9 плат размером 381х254 мм).

Аналогичные работы проводятся в нашей стране и в других организациях [8].

Векторный процессор А-12 имеет тактовую частоту 6 МГц и — с учетом двух используемых арифметических устройств — сумматора и умножителя — его производительность достигает 10 MFlop ' s . Внутренний формат слова данных 38 разрядов (10 разрядов порядка и 28 разрядов мантиссы). Это больше, чем формат плавающей занятой ЭВМ семейства СМ — «Электроника» (8 разрядов порядка и 25 разрядов мантиссы) и обеспечивает динамический диапазон вычислений З,7х 10 -165 : 6,7х10 +153 при относительной погрешности 10 -8 что удовлетворяет требованиям подавляющего большинства прикладных задач.

Архитектура периферийных векторных процессоров

С точки зрения методологии и архитектуры вычислительных систем векторный периферийный процессор содержит в себе все те же компоненты, которые реализуются сейчас в области наиболее мощных вычислительных систем — супер-ЭВМ. В периферийных векторных процессорах все это выполнено в размерах, экономически согласованных с используемой базовой ЭВМ — обычно стоимость подключаемого векторного процессора (20—50 тыс. дол.) удваивает стоимость минисистемы. Это определяется главным образом выбором технологической базы. Супер-ЭВМ используют интегральные компоненты субнаносекундного диапазона (т. н. ЭСЛ — эмитерно- c паренная логика—в супер-ЭВМ CRAY -1 основная тактовая частота 80 МГц), обладающие пониженной добротностью и требующие сложных конструкторских мер для отвода тепла. Подключаемые же векторные процессоры используют главным образом наносекундную элементную базу (т. н. ТТЛ—Ш—транзистор-транзисторная логика с диодами Шоттки, основная тактовая частота 5— 10 МГц), которая вполне удовлетворительно работает с обычным воздушным охлаждением. В последнее время разработчики подключаемых векторных процессоров стали широко использовать коммутируемые вентильные матрицы (главным образом на КМОП-технологии), также работающие в воздушном охлаждении, позволившие повысить тактовую частоту процессоров до 25 МГц.

Основной архитектурный принцип современных векторных процессоров — как подключаемых, так и супер-ЭВМ — это синхронная конвейерная обработка информации, при которой разные этапы обработки реализуются в течение каждого синхронного такта на различных последовательно соединенных звеньях системы (ступенях конвейера). Такая организация вычислительного процесса, аналогичная организации промышленных конвейеров, позволяет наиболее полно использовать вычислительное оборудование при минимальном общем синхронном цикле.

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

Поскольку перестройка конвейера, загруженного исходными данными и промежуточными результатами вычислений, во время его работы затруднительна, то и программирование конвейерных процессов обладает рядом особенностей, определяющих главным образом пользовательскую специфику подобных архитектур [9—10].

Не каждая структура данных может быть эффективно реализована на такой архитектуре. Наиболее эффективно в ней реализуются векторные алгоритмы, под которыми подразумевают алгоритмы, содержащие множество однотипных циклов, не прерываемых какими-либо внешними или внутренними (т. н. «контекстными») переключениями. Векторные последовательности, подлежащие такой обработке, формализуются при этом как операнды более высокого уровня, чем, например, отдельные числа (т. н. «скаляры»). Типичными структурами такого типа являются, например, элементы (векторы) матриц — их строки и столбцы, в связи с чем такие структуры чаще всего связывают с операциями над матрицами. Поэтому подключаемые векторные конвейерные процессоры в отечественной литературе иногда называют алгоритмическими матричными процессорами (в отличие от матричных процессоров, представляющих собой матричную организацию многопроцессорной системы) [11—12].

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

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

Особенности архитектуры периферииного векторного процессора А-12

В векторном процессоре А-12 (рис. 1) умножитель с плавающей занятой представляет собой конвейер, содержащий три ступени, а сумматор с плавающей занятой — две. Эти два мощных операционных узла своими входами и выходами через два сложных, программно коммутируемых мультиплексора, соединены с модулями основной, табличной и сверхоперативной памяти. Основная память может достигать в объеме 1 млн. слов упомянутого выше формата, однако в течение одного цикла процессора (166 нсек.) к ней можно обращаться только в одном направлении (читать данные или записывать их в нее), причем только в режиме «расслоения» (когда последовательные обращения разрешены только к перемежающимся номерам банков памяти). Основная память используется для обмена массивами данных с управляющей ЭВМ и хранения основной информации, подлежащей обработке. Табличная память, имеющая постоянную и оперативную (загружаемую) секции, может достигать в размере 64 К слов упомянутого формата. За один цикл работы процессора к ее оперативной части, так же, как и к основной памяти, возможно обращение только в одном направлении, однако это допустимо по любому адресу без ограничений расслоения. Для сверхоперативного обращения предусмотрено два банка регистровой памяти по 32 слова — в эту память в течение одного цикла процессора можно и записывать результаты счета, и считывать из них очередную пару операндов.


Рис. 1. Блок-схема периферийного векторного процессора А-12

Наиболее эффективно все эти банки используются в многоуровневой конфигурации, настраиваемой с помощью входного и выходного мультиплексоров (см. рис. 1), при которой, например, основная память используется для хранения всего обрабатываемого массива, оперативная табличная память — для хранения векторов, а две группы сверхоперативных регистров как буферы данных, обрабатываемых в арифметических устройствах. При правильной организации потоков арифметические устройства работают только с данными, хранящимися в сверхоперативных регистрах, в которые они могут последовательно «подкачиваться» из основной и оперативной табличной памятей в сравнительно медленном темпе.

Для достижения такой гибкости программирования конфигурации процессора в его архитектуру введено множество шин данных, связывающих между собой по входам и выходам все основные операционные узлы и банки памятей (на рисунке они представлены в виде входного и выходного мультиплексоров). Благодаря этому, в течение каждого цикла работы процессора осуществляется одновременная бесконфликтная передача данных между множеством пар «источник-приемник». Отдельная внутренняя общая шина, объединяющая основные источники и приемники данных между собой, имеет продолжение за пределы процессора в виде системной шины ввода-вывода.

Специальное арифметическое 16-разрядное устройство реализует функции формирования адресов для всех банков памятей параллельно и независимо, а также подсчитывает циклы в векторных алгоритмах. Весь векторный процессор находится под управлением специального управляющего процессора с памятью до 4К 64-х разрядных слов, загружаемой из внешней ЭВМ. Извлекаемое в течение каждого цикла управляющее слово своим специальным полем организует логику следующего адреса памяти управляющего процессора (условные и безусловные переходы), причем, благодаря использованию аппаратного стека, автоматически может быть реализовано до 16-ти вложенных входов в подпрограмму и возвращений из нее. Основная же часть управляющего слова, поделенная на десять различных полей, раздельно и независимо управляет всеми процессами, протекающими в А-12.

Для первоначальной загрузки и инициации процессора, а также для тестирования и отладки его узлов в архитектуру введено специальное устройство ввода-вывода для связи с управляющей ЭВМ, имеющее независимый доступ ко всем регистрам А-12. Благодаря этому основная ЭВМ может, прерывая, если необходимо работу А-12, обращаться к любому его внутреннему регистру как к собственному (не разрушая при этом хранящейся в нем информации), а также имитировать работу внутреннего управляющего процессора А-12 на процедурах его загрузки и инициализации.

В рамках работ по созданию А-12 в институте был разработан делитель с плавающей запятой, расширяющий операционные возможности процессора. Программирование работы этого устройства удалось осуществить, используя стандартные средства А-12. Разработан также интерфейс конвейерной связи двух векторных процессоров, позволяющий подключать к одной шине управляющей ЭВМ два и более таких процессора, конвейерно соединяемых между собой через автономные каналы ввода-вывода.

Для программирования прикладных задач пользователю предоставлены ассемблер, математическая библиотека и компилятор с языка высокого уровня.

Ассемблерный уровень в векторном процессоре, в силу описанных выше особенностей конвейерных процессоров, почти совпадает с микропрограммным и эффективно реализуется лишь пользователем, хорошо представляющим себе особенности конвейерной архитектуры и текущее состояние отдельных узлов конвейера. Язык сложен и структурирован до такого уровня детализации, что источники и приемник операции (как и сама операция) кодируются одновременно в разных полях одного ассемблерного операнда. Ассемблер как средство разработки Используется главным образом при проектировании систем реального времени.

Язык высокого уровня представлен двумя эффективными средствами. Пользователь может на языке ФОРТРАН обращаться к математической библиотеке, достигающей в объеме нескольких сот наименований программ (в том числе — и к отдельным пакетам для цифровой обработки сигналов и изображений). Эти программы вызываются из верхнего уровня математического обеспечения, базирующегося на управляющей ЭВМ.

Кроме того, можно скомпилировать любую пользовательскую программу, написанную на ФОРТРАНе, в коды ассемблера, получив в результате ее текст в микрокодах векторного процессора, внутри его управляющей памяти, для этого в принципе нет необходимости в знакомстве с ассемблером процессора А-12.

Таким образом, упомянутая в начале работы производительность векторного процессора указывает лишь на его потенциальные возможности. Реально достигаемая его производительность существенно зависит от используемых программных инструментов. Если при работе на ассемблере производительность А-12 может быть оптимизирована до 60-80% его «пиковой» производительности, то при работе с компилятором с ФОРТРАНА она падает до 20-40%, а при работе с математическими библиотеками — до 5-20%. В последнем случае производительность зависит также от длины обрабатываемого вектора и на длинных векторах может достигать 50% максимально достижимой производительности.

При использовании программ на ФОРТРАНе в некоторых случаях оказываются неприемлемыми затраты времени на обмен данными между ЭВМ и векторным процессором. Эти затраты могут быть сокращены с помощью специальных программ, «сцепляющих» отдельные вызываемые с ФОРТРАНа подпрограммы в единый модуль, загружаемый в векторный процессор и содержащий минимум операций ввода-вывода. При этом управляющие программы могут загружаться и в главную оперативную память векторного процессора, сравнительно медленную, но значительно превышающую в объеме управляющую память.

Предусмотрено также программное обеспечение сопровождения для обнаружения и идентификации ошибок в процессе эксплуатации.

Как элемент операционной среды ЭВМ семейства СМ — «Электроника» процессор А-12 может работать под управлением стандартных операционных систем ОС РВ или РАФОС. Интерфейсные операции между ЭВМ и А-12 осуществляет пакет стандартных подпрограмм, написанных на ФОРТРАНе. С помощью этих же подпрограмм осуществляется управление векторным процессором со стороны ЭВМ и реализация программы верхнего уровня.

К автономному каналу ввода-вывода А-12 могут быть подключены собственные внешние устройства, как стандартные, так и разработанные пользователем, в том числе и диски (рис. 2а). Для поддержки управления этим каналом со стороны внутреннего процессора А-12 имеется операционная система с супервизором для многопользовательского режима.

Таким образом, основная память имеет, кроме канала, связывающего ее с собственным процессором, два канала ввода-вывода, каждый из которых может быть подключен к управляющей ЭВМ. Автономная шина ввода—вывода позволяет включать векторный процессор в более сложные конфигурации. Например, возможно коллективное использование одного векторного процессора двумя ЭВМ (рис. 2б). Описаны многопроцессорные конфигурации на основе аналогичного векторного процессора, содержащие до восьми процессоров, соединенных между собой общей быстрой шиной (рис. 2в) или подключенных к многопортовой памяти, содержащей до 20 млн. слов с плавающей занятой (рис. 2г) [13].


Рис. 2. Варианты подключения процессора А-12
в архитектуру вычислительных систем на базе малой ЭВМ

К настоящему времени на изготовленных образцах А-12 решаются задачи вычислительной физики. Одновременно в Институте проводятся работы по созданию высокопроизводительных систем реального времени на базе мини-ЭВМ с подключенным к нему А-12 для решения прикладных задач (результаты одной из таких работ приведены в [14]).

Примечание

1.MFlop's, (Million floating point operation per second) — миллион операции с плавающей запятой в секунду .

Литература

  1. Thurber K. J. Parallel processor architectures. Part I. General purpose systems. — «Computer Design», 1979, v. 18, N 1, p.p. 89—97.
  2. Thurber K. J. Parallel processor architectures. Part II. Special purpose systems. — «Computer Design», 1979, v. 18, N 2, p.p. 103—114.
  3. Special issue «Array processor». «Computer», v 14, september 1981.
  4. Special issue «Application for Array Processor. — « Computer », v 16, june 1983.
  5. Bloch T. Large computer system and new аге . «Computation Physics Communication», 1982, v 26, N 1—2, p.p. 125-145.
  6. Vector and parallel processors in computational science. «Computation Physics Communication», 1982, v 26, N 3—4, p.p. 117-179.
  7. Талон И. Л. и др. Мини- и микро-ЭВМ и спецпроцессоры семейства «Электроника». — В кн.: «Диалог-82», Тезисы докладов Всесоюзной конференции, Пущино, 1982, с. 15-17.
  8. Inskeep W. The array processors: floating — point computer with high throughput . — «International laboratory», 1979, Jan — Febr., p.p. 69-79.
  9. Ramamoorthy C. V., Li H. P. Pipeline Architecture. «ACM computing surveys», v. 9, N 1, march 1977, p.p. 61-103.
  10. Norin R., Pettibone T. Programming array processor. «Mini-Micro Systems», 1979, v 12, N 8, p.p. 59-71.
  11. Аксенов В. П. и др. Структура и характеристики высокопроизводительных ЭВМ и систем, Ч. I. «Зарубежная радиоэлектроника, №3, 1982, с. 35 — 53.
  12. Аксенов В. П. и др. Структура и характеристики высокопроизводительных ЭВМ и систем. Ч. II. «Зарубежная радиоэлектроника», №4, 1982, с. 33—57.
  13. Контроллер для управления восемью матричными процессорами от одной ведущей ЭВМ. — «Электроника», 1982, № 19, с. 101—104.
  14. Бродский И. И. и др. Высокопроизводительная вычислительная система реального времени для обработки гидрофизической информации. — Сборник «Вопросы кибернетики», серия «Архитектура и программирование быстродействующих малых ЭВМ», Москва, 1985 г.

Сборник «Вопросы кибернетики»,
серия «Архитектура и программирование быстродействующих малых ЭВМ», Москва, 1985 г.
Перепечатывается с разрешения авторов.
Статья помещена в музей 17.03.2007 г.