Матричные команды


Рассмотрим матричные команды:

1). Сложение матриц:

Пусть заданы две матрицы clip_image002 и clip_image004. Необходимо вычислить матрицу clip_image006(n x m), которая равна поэлементной сумме этих матриц: clip_image008. Элемент i,j матрицы clip_image006[1] есть сумма соответствующих элементов матриц clip_image002[1] и clip_image004[1]:

clip_image013 ,

где clip_image015, clip_image017.

a) Пусть имеется n x m ПЭ. Элементы матриц clip_image002[2] и clip_image004[2] можно разделить по локальной памяти ПЭ-тов, т.е. процессорный элемент clip_image021содержит соответствующие элементы clip_image023.

b) Управляющему процессору для выполнения операций сложения достаточно передать ПЭ команды:

ADD A,B,C.

c) Рассмотрим случай, когда ПЭ меньше, чем число элементов в матрицах:

При меньшем числе ПЭ-тов можно разделить матрицы по строкам, чтобы в ЛП clip_image025находились:

clip_image023[1] clip_image015[1], clip_image017[1].

Тогда должно быть n ПЭ. В этом случае управляющий процессор передает m – команд, при выполнении каждой такой команды в ПЭ будет формироваться по одному элементу clip_image027, а все ПЭ одновременно один k-ый столбец матрицы clip_image006[2].

d) Использование индексных регистров:

При наличие индексных регистров управляющий процессор передает одну команду с указанием индекса и количества сложений.

Пример:

clip_image029 ,

где ind – индексный регистр, cnt – число операций сложения.

число операций сложения

Рис.7.13.

Каждый массив хранится в своей области памяти. Индексный регистр определяет число складываемых элементов и одновременно смещение в соответствующем массиве текущего элемента. После выполнения индексный регистр уменьшается, что обеспечивает доступ к следующим элементам массива. Окончание вычисления, когда индексный регистр равен нулю.

e) Загрузка ЛП:

Load A1,A2,ind

Поток данных, расположенных начиная с адреса А1 в ОП, передается по адресу А2 в ЛП ПЭ-тов последовательно(по порядку) в каждый ПЭ. ПЭ принимает данные по адресу А2, если его номер равен содержимому индексного регистра, а если нет, то данные не принимаются. После передачи очередного слова ПЭ-ты уменьшают индекс на единицу.

Замечание: В каждом из рассмотренных случаев отсутствует взаимодействие между ПЭ, т.е. исходные данные выбираются из ЛП и туда же помещаются.

2). Скалярное произведение векторов:

clip_image033

Элементы clip_image035 распределены по ЛП ПЭ. Вычисление clip_image006[3] требует передачи данных между ними. Управляющий процессор выдает индексную команду в ПЭ, которая заставляет все ПЭ, кроме одного, выдавать данные из ячейки clip_image038 на ШУ. Все поступившие данные УП суммирует. В более сложных случаях обеспечивается пересылка данных через коммутационную сеть с использованием режима маскирования ПЭ.

3). Рассмотрим матричные операции условной обработки:

Стоит задача вычислить следующую систему выражений:

clip_image040

Необходимо обеспечить выполнение различными ПЭ разных операций.

Режим маски:

Прием команд от УП осуществляется только в том случае, если специальный триггер маски ПЭ сброшен в 0(ПЭ — не замаскирован).

TEST A,5

MASK LE (устанавливает маску, если А>5)

ADD A,B,C

COMP MASK (инвертирование масок ПЭ на противоположные)

SUB A,B,C

В ПЭ используются такие разряды, как маскирование, конфигурация и флаги.

Загрузка...