
- •1. Понятие матричной вычислительной системы и ее отличие от векторной вычислительной системы
- •2. Структура матричной вычислительной системы
- •3. Интерфейсная вычислительная машина
- •4. Массив процессоров и его контроллер
- •5. Структура процессорного элемента
- •6. Подключение и отключение процессорных элементов
- •7. Сети взаимосвязей процессорных элементов
- •Контрольные вопросы
6. Подключение и отключение процессорных элементов
В процессе вычислений в ряде операций должны участвовать только оп-ределенные ПЭ, в то время как остальные ПЭ остаются бездействующими. Разрешение и запрет работы ПЭ могут исходить от контроллера массива про-цессоров (глобальное маскирование) и реализуются с помощью схем маскиро-вания ПЭ. В этом случае решение о необходимости маскирования принимается на этапе компиляции кода. Решение о маскировании может также принимать- ся во время выполнения программы (маскирование, определяемое данными), при этом опираются на хранящийся в ПЭ флаг разрешения маскирования F.
При маскировании, определяемом данными, каждый ПЭ самостоятельно объявляет свой статус «подключен/не подключен». В составе системы команд имеются наборы маскируемых и не маскируемых команд. Маскируемые ко- манды выполняются в зависимости от состояния флага F, в то время как не-маскируемые флаг просто игнорируют. Рассмотрим процедуру маскирования на примере предложения IF-THEN-ELSE. Пусть x – локальная переменная (хранящаяся в локальной памяти каждого ПЭ). Предположим, что процессор- ные элементы массива параллельно выполняют ветвление:
IF (x>0) THEN <оператор A> ELSE <оператор В>
и каждый ПЭ оценивает условие IF. Те ПЭ, для которых условие x > 0 справед-ливо, установят свой флаг F в единицу, тогда как остальные ПЭ – в ноль. Далее КМП распределяет оператор А по всем ПЭ. Команды, реализующие этот опе-ратор, должны быть маскируемыми. Оператор А будет выполнен только теми ПЭ, где флаг F установлен в единицу. Далее КМП передает во все ПЭ не-маскируемую команду ELSE, которая заставит все ПЭ инвертировать состояние своего флага F. Затем КМП транслирует во все ПЭ оператор В, который также должен состоять из маскируемых команд. Оператор В будет выполнен теми ПЭ, где флаг F после инвертирования был установлен в единицу, то есть где результат проверки условия x > 0 был отрицательным.
При использовании схемы глобального маскирования контроллер масси- ва процессоров вместе с командами посылает во все ПЭ глобальную маску. Каждый ПЭ декодирует эту маску и по результату выясняет, должен ли он вы-полнять данную команду или нет.
В зависимости от способа кодирования маски существует несколько раз-личных схем глобального маскирования. В схеме, примененной в вычислитель-ной системе ILLIAC IV с 64-мя 64-разрядными ПЭ, маска представляет собой N-разрядный вектор. Каждый бит вектора отражает состояние одного ПЭ. Ес- ли бит содержит единицу, соответствующий ПЭ будет активным, в противном случае – пассивным. Несмотря на свою универсальность, при больших значе- ниях N схема становится неудобной. В варианте маскирования с адресом ПЭ используется 2m-разрядная маска (m = log2N), в которой каждая позиция соот-ветствует одному разряду в двоичном представлении адреса ПЭ. Каждая пози- ция может содержать 0, 1 или Х. Таким образом, маска состоит из 2m битов. Если для всех i (0≤ i <m) i-я позиция в маске и i-я позиция в адресе ПЭ сов- падают или в i-ой позиции маски стоит Х, ПЭ будет активным. Например, маска 000Х1 представляет процессорные элементы с номерами 1 и 3, в то время как маска ХХХХ0 представляет все ПЭ с четными номерами (все это для массива из 32 ПЭ). Здесь можно активизировать только подмножество из всех возмож- ных комбинаций процессорных элементов массива, что на практике не являет- ся ограничением, так как в реальных алгоритмах обычно участвуют не произ-вольные ПЭ, а лишь расположенные регулярным образом.
Глобальные и локальные схемы маскирования могут комбинироваться. В таком случае активность ПЭ в равной мере определяется как флагом F, так и глобальной маской.