Новосибирский государственный университетФакультет информационных технологий |
А.М.Федотов |
Матричные вычислительные системы - наиболее распространенные представители класса SIMD, лучше всего приспособленные для решения задач, характеризующихся параллелизмом независимых данных. Матричная система состоит из множества процессорных элементов, работающих параллельно и обрабатывающих свой поток данных.
Назначение матричных вычислительных систем - обработка больших массивов данных. В основе матричных систем лежит матричный процессор (array processor), состоящий из массива процессорных элементов (ПЭ). Такие системы имеют общее управляющее устройство, генерирующее поток команд, и большое число ПЭ, работающих параллельно и обрабатывающих каждый свой поток данных. Однако на практике, чтобы обеспечить достаточную эффективность системы при решении широкого круга задач, необходимо организовать связи между процессорными элементами так, чтобы наиболее полно загрузить процессоры работой. Именно характер связей между ПЭ и определяет разные свойства системы. Подобная схема применима и для векторных вычислений.
Между матричными и векторными системами есть существенная разница. Матричный процессор интегрирует множество идентичных функциональных блоков (ФБ), логически объединенных в матрицу и работающих в SIMD-стиле. Не столь существенно, как конструктивно реализована матрица процессорных элементов - на едином кристалле или на нескольких. Важен сам принцип - ФБ логически скомпонованы в матрицу и работают синхронно, то есть присутствует только один поток команд для всех. Векторный процессор имеет встроенные команды для обработки векторов данных, что позволяет эффективно загрузить конвейер из функциональных блоков. В свою очередь, векторные процессоры проще использовать, потому что команды для обработки векторов - это более удобная для человека модель программирования, чем SIMD.
Параллельную обработку множественных элементов данных обеспечивает массив процессорных элементов (МПЭ). Единый поток команд, управляющий обработкой данных в МПЭ, генерируется контроллером массива процессорных элементов (КМП). КМП выполняет последовательный программный код, реализует операции условного и безусловного переходов, транслирует в МПЭ команды, данные и сигналы управления. Команды обрабатываются процессорными элементами в режиме жесткой синхронизации. Сигналы управления используются для синхронизации команд и пересылок, а также для управления процессом вычислений, в частности определяют, какие ПЭ массива должны выполнять операцию, а какие - нет. Команды, данные и сигналы управления передаются из КМП в массив процессорных элементов по шине широковещательной рассылки. Поскольку выполнение операций условного перехода зависит от результатов вычислений, результаты обработки данных в массиве процессоров транслируются в КМП по шине результата.
Для обеспечения пользователя удобным интерфейсом при создании и отладке программ в состав подобных ВС обычно включают фронтальную ВМ (front-end computer). В роли такой ВМ выступает универсальная вычислительная машина, на которую дополнительно возлагается задача загрузки программ и данных в КМП. Кроме того, такая загрузка может производиться и напрямую с устройств ввода/вывода, например с магнитных дисков. После загрузки КМП приступает к выполнению программы, транслируя в МПЭ по широковещательной шине соответствующие SIMD-команды.
Рассматривая массив ПЭ, следует учитывать, что для хранения множественных наборов данных в нем, помимо множества процессорных элементов, должно присутствовать и множество модулей памяти. Кроме того, в массиве должна быть реализована сеть взаимосвязей, как между ПЭ, так и между процессорными элементами и модулями памяти. Таким образом, под термином массив процессорных элементов понимают блок, состоящий из собственно процессорных элементов, модулей памяти и сети соединений.
Дополнительную гибкость при работе с рассматриваемой системой обеспечивает механизм маскирования, позволяющий вовлекать в операции лишь определенное подмножество ПЭ массива. Маскирование возможно как на стадии компиляции, так и на этапе выполнения, при этом ПЭ, исключенные путем установки в ноль соответствующих битов маски, во время выполнения команды простаивают.
Фронтальная ВМ
Фронтальная ВМ (ФВМ) соединяет матричную SIMD-систему с внешним миром, используя для этого какой-либо из сетевых интерфейсов, например Ethernet, как это имеет место в системе MasPar МР-1. Фронтальная ВМ работает под управлением операционной системы, чаще всего UNIX-подобной. На ФВМ пользователи подготавливают, компилируют и отлаживают свои программы. Перед выполнением программы сначала загружаются из фронтальной ВМ в контроллер массива процессорных элементов, который исполняет последовательную часть программы и распределяет распараллеленные команды и данные по процессорным элементам массива. В некоторых ВС при создании, компиляции и отладке программ КМП и фронтальная ВМ используются совместно.
На роль ФВМ подходят различные вычислительные машины. Так, в системе СМ-2 в этом качестве выступает рабочая станция SUN-4, а в системе MasPar - DECstation 3000.
Контроллер массива процессорных элементов
Контроллер массива процессорных элементов выполняет последовательный программный код, реализует команды ветвления программы, транслирует команды и сигналы управления в процессорные элементы.
При загрузке из ФВМ программа через интерфейс ввода/вывода заносится в оперативное запоминающее устройство контроллера массива процессорных элементов (ОЗУ КМП). Команды для процессорных элементов и глобальная маска, формируемая на этапе компиляции, также через интерфейс ввода/вывода загружаются в ОЗУ команд и глобальной маски (ОЗУ КГМ). Затем контроллер начинает выполнять программу, извлекая либо одну скалярную команду из ОЗУ КМП, либо множественные команды из ОЗУ КГМ. Скалярные команды - команды, осуществляющие операции над хранящимися в КМП скалярными данными, выполняются центральным процессором (ЦП) контроллера. В свою очередь, команды, оперирующие параллельными переменными, хранящимися в каждом ПЭ, преобразуются в блоке выборки команд в более простые единицы выполнения - нанокоманды. Нанокоманды совместно с маской пересылаются через шину команд для ПЭ на исполнение в массив процессорных элементов. Например, команда сложения 32-разрядных слов в КМП системы МРР преобразуется в 32 нанокоманды одноразрядного сложения, которые каждым ПЭ обрабатываются последовательно.
В большинстве алгоритмов дальнейший порядок вычислений зависит от результатов и/или флагов предшествующих операций. Для обеспечения такого режима в матричных системах статусная информация, хранящаяся в процессорных элементах, должна быть собрана в единое слово и передана в КМП для выработки решения о ветвлении программы. Например, в предложении IF ALL (условие A) THEN DO В оператор В будет выполнен, если условие А справедливо во всех ПЭ. Для корректного включения/отключения процессорных элементов КМП должен знать результат проверки условия А во всех ПЭ. Такая информация передается в КМП по однонаправленной шине результата. В системе СМ-2 эта шина названа GLOBAL. В системе МРР для той же цели организована структура, называемая деревом SUM-OR. Каждый ПЭ помещает содержимое своего одноразрядного регистра признака на входы дерева, которое с помощью операции логического сложения комбинирует эту информацию и формирует слово результата, используемое в КМП для принятия решения.
Массив процессорных элементов
В матричных SIMD-системах распространение получили два основных типа архитектурной организации массива процессорных элементов.
В первом варианте, известном как архитектура типа «процессорный элемент-процессорный элемент» («ПЭ-ПЭ»), N процессорных элементов (ПЭ) связаны между собой коммуникационной сетью. Каждый ПЭ - это процессор с локальной памятью. Процессорные элементы выполняют команды, получаемые из КМП по шине широковещательной рассылки, и обрабатывают данные, как хранящиеся в их локальной памяти так и поступающие из КМП. Обмен данными между процессорными элементами производится по коммуникационной сети, в то время как шина ввода/вывода служит для обмена информацией между ПЭ и устройствами ввода/вывода. Для трансляции результатов из отдельных ПЭ в контроллер массива процессорных элементов служит шина результата. Благодаря использованию локальной памяти аппаратные средства ВС рассматриваемого типа могут быть построены весьма эффективно. Во многих алгоритмах действия по пересылке информации по большей части локальны, то есть происходят между ближайшими соседями. По этой причине архитектура, где каждый ПЭ связан только с соседними, очень популярна. В качестве примеров вычислительных систем с рассматриваемой архитектурой можно упомянуть MasPar МР-1, Connection Machine СМ-2, GF11, DAP, МРР, STARAN, PEPE, ILLIAC IV.
Второй вид архитектуры - «процессор-память». В такой конфигурации двунаправленная сеть соединений связывает N процессоров с М модулями памяти. Процессоры управляются КМП через широковещательную шину.
Обмен данными между процессорами осуществляется как через сеть, так и через модули памяти. Пересылка данных между модулями памяти и устройствами ввода/вывода обеспечивается шиной ввода/вывода. Для передачи данных из конкретного модуля памяти в КМП служит шина результата. Примерами ВС с такой архитектурой могут служить Burroughs Scientific Processor (BSP), Texas Reconfigurable Array Computer TRAC.
Структура процессорного элемента
В большинстве матричных SIMD-систем в качестве процессорных элементов применяются простые RISC-процессоры с локальной памятью ограниченной емкости. Например, каждый ПЭ системы MasPar МР-1 состоит из четырехразрядного процессора с памятью емкостью 64 Кбайт. В системе МРР используются одноразрядные процессоры с памятью 1 Кбит каждый, а в СМ-2 процессорный элемент представляет собой одноразрядный процессор с 64 Кбит локальной памяти. Благодаря простоте ПЭ массив может быть реализован в виде одной сверхбольшой интегральной микросхемы (СБИС). Это позволяет сократить число связей между микросхемами и, следовательно, габариты ВС. Так, одна СБИС в системе СМ-2 содержит 16 процессоров (без блоков памяти), а в системе MasPar МР-1 СБИС состоит из 32 процессоров (также без блоков памяти). В системе МР-2 просматривается тенденция к применению более сложных микросхем, в частности 32-разрядных процессоров с 256 Кбайт памяти в каждом.
Неотъемлемыми компонентами ПЭ в большинстве вычислительных систем являются:
Основная:
Ключевые термины (головные): Архитектура вычислительной машины; Классификация Флинна; SIMD-архитектура; Векторные вычислительные системы;
Федотов Анатолий Михайлович |
НГУ ФИТ НГУ ИВТ СО РАН |