Рассмотрим матричные команды:
1). Сложение матриц:
Пусть заданы две матрицы и . Необходимо вычислить матрицу (n x m), которая равна поэлементной сумме этих матриц: . Элемент i,j матрицы есть сумма соответствующих элементов матриц и :
a) Пусть имеется n x m ПЭ. Элементы матриц и можно разделить по локальной памяти ПЭ-тов, т.е. процессорный элемент содержит соответствующие элементы .
b) Управляющему процессору для выполнения операций сложения достаточно передать ПЭ команды:
ADD A,B,C.
c) Рассмотрим случай, когда ПЭ меньше, чем число элементов в матрицах:
При меньшем числе ПЭ-тов можно разделить матрицы по строкам, чтобы в ЛП находились:
Тогда должно быть n ПЭ. В этом случае управляющий процессор передает m – команд, при выполнении каждой такой команды в ПЭ будет формироваться по одному элементу , а все ПЭ одновременно один k-ый столбец матрицы .
d) Использование индексных регистров:
При наличие индексных регистров управляющий процессор передает одну команду с указанием индекса и количества сложений.
Пример:
где ind – индексный регистр, cnt – число операций сложения.
Рис.7.13.
Каждый массив хранится в своей области памяти. Индексный регистр определяет число складываемых элементов и одновременно смещение в соответствующем массиве текущего элемента. После выполнения индексный регистр уменьшается, что обеспечивает доступ к следующим элементам массива. Окончание вычисления, когда индексный регистр равен нулю.
e) Загрузка ЛП:
Load A1,A2,ind
Поток данных, расположенных начиная с адреса А1 в ОП, передается по адресу А2 в ЛП ПЭ-тов последовательно(по порядку) в каждый ПЭ. ПЭ принимает данные по адресу А2, если его номер равен содержимому индексного регистра, а если нет, то данные не принимаются. После передачи очередного слова ПЭ-ты уменьшают индекс на единицу.
Замечание: В каждом из рассмотренных случаев отсутствует взаимодействие между ПЭ, т.е. исходные данные выбираются из ЛП и туда же помещаются.
2). Скалярное произведение векторов:
Элементы распределены по ЛП ПЭ. Вычисление требует передачи данных между ними. Управляющий процессор выдает индексную команду в ПЭ, которая заставляет все ПЭ, кроме одного, выдавать данные из ячейки на ШУ. Все поступившие данные УП суммирует. В более сложных случаях обеспечивается пересылка данных через коммутационную сеть с использованием режима маскирования ПЭ.
3). Рассмотрим матричные операции условной обработки:
Стоит задача вычислить следующую систему выражений:
Необходимо обеспечить выполнение различными ПЭ разных операций.
Режим маски:
Прием команд от УП осуществляется только в том случае, если специальный триггер маски ПЭ сброшен в 0(ПЭ — не замаскирован).
TEST A,5
MASK LE (устанавливает маску, если А>5)
ADD A,B,C
COMP MASK (инвертирование масок ПЭ на противоположные)
SUB A,B,C
В ПЭ используются такие разряды, как маскирование, конфигурация и флаги.