Рис.9. Таблица операций.
Все элементы одной строки объединяются в выходной канал. Таким образом, эта матрица может одновременно коммутировать n входных каналов с n выходными. Управление элементами коммутации или вентилями в каждой схеме управления коммутатора осуществляется триггерами управления ТУ (Рис.11).
На схему управления УКМАП, как уже говорилось, подаются коды хеш-функций всех входных направлений. Этот код дешифруется дешифратором каждого направления, в результате чего каждое направление посылает запрос
64
В.С.Бурцев. Выбор новой системы организации выполнения высокопараллельных вычислитель-ных процессов, примеры возможных архитектурных решений построения суперЭВМ
на коммутацию с определенным направлением (возбуждается один из выходов дешифратора, который связан со схемой триггера управления соответствующего направления В1, В2).
Рис.10. Типовая схема коммутатора.
Не исключена возможность, что несколько входных направлений запросят коммутацию с одним и тем же выходным направлением. Работа схемы состоит в том, чтобы все запросы к одному и тому же направлению обработать последовательно. Импульс пуска через соответствующие вентили b1 опрашивает все входные запросы по каждому выходному направлению. По каждому выходному направлению происходит следующая работа. Если первое входное направление имеет запрос к каналу по выходу направления, то триггер Tук1 устанавливается в положение, открывающее коммутирующий элемент матрицы ЭNк1 и устанавливает в нуль регистр хеш-функции этого направления.
Если запроса по этому направлению нет, то через инвертор И открыт вентиль в2 и происходит опрос второго и т.д. направлений. Если по данному выходному направлению запросов нет или все обработаны, вырабатывается сигнал, устанавливающий триггер Тнк в нулевое положение. После каждого пускового импульса происходит работа коммутатора, заключающаяся в передаче входных токенов по скоммутированным каналам на регистры P1-n модулей АП. После окончания передачи, начинается подготовка к новой работе элементов коммутационной матрицы. Если же не было "натыков" и за один такт работы коммутации все запросы были удовлетворены, следующий импульс пуска пройдет по всем вентилям вз и выйдет в виде конца цикла, который укажет на то, что следующая строка токенов по всем направлениям может быть принята
65
В.С.Бурцев. Выбор новой системы организации выполнения высокопараллельных вычислитель-ных процессов, примеры возможных архитектурных решений построения суперЭВМ
на входные регистры коммутатора (в частности, входными регистрами коммутатора могут служить выходные регистры ИУ).
Рис.11. Коммутатор с последовательной обработкой.
66
В.С.Бурцев. Выбор новой системы организации выполнения высокопараллельных вычислитель-ных процессов, примеры возможных архитектурных решений построения суперЭВМ
Эта схема обладает тем недостатком, что пока вся строка не обработается, готовые токены должны ждать очереди, в то время как пути их коммутации могут быть свободными.
Рис.12. Коммутатор с асинхронной обработкой.
На Рис.12 приведена структурная схема УКМАП, позволяющая обрабатывать токены по мере освобождения канала по входу. Работа схемы по опросу
67
В.С.Бурцев. Выбор новой системы организации выполнения высокопараллельных вычислитель-ных процессов, примеры возможных архитектурных решений построения суперЭВМ
запросов входных каналов идентична предыдущей схеме, однако, после того, как запрос по какому-либо из входных направлений удовлетворен, одновременно с установкой в ноль кода хеш-функции устанавливается в единицу триггер занятости Твх этого направления и на это направление может поступить следующий токен. И в той, и в другой схеме импульс пуска вырабатывается только тогда, когда выходные регистры коммутатора КМАП по всем направлениям свободны.
Отрицательной стороной этой схемы управления УКМАП (Рис.12) является то, что может не выполняться принцип работы первый пришел - первый пошел на выполнение. Действительно, не исключен случай, когда на одно и то же выходное направление есть запросы от нескольких входных направлений, а мы их обрабатываем в одной и той же последовательности. В результате чего не исключен случай, когда вновь пришедший на обработку токен будет обрабатываться раньше, уже стоящих на очереди направлений. Для исключения подобных ситуаций можно менять алгоритм работы схемы управления. Допустим, десять раз работать по алгоритму второй схемы и один раз по алгоритму первой.
Ассоциативная память.
Ассоциативная память выполняет несколько команд в зависимости от кода операции. Основные из них - поиск парного токена по ключу и считывание его в случае прохождения или запись вновь пришедшего токена на свободное место, если поиск закончился отрицательно. Как правило, считывание происходит со стиранием информации, но в некоторых случаях выполнение операций требуют сохранения считываемого токена. Считанная информация объединяется с вновь пришедшим токеном и образуют пакет (Рис.8д), который поступает на входные регистры коммутатора КМР (РУ и РА). Ключом, как правило, является код, состоящий из разрядов номера команды, индекса, итераций и активации. В случае ситуации, когда близок к переполнению один из АП, происходит перераспределение записи вновь пришедшего токена в модуль с наименьшим заполнением.
Управление равномерным заполнением модулей памяти осуществляет центральное управление ассоциативной памяти УАП. Запись в другой модуль требует изменения алгоритма считывания, замедляет общий темп работы АП, однако останов работы всей машины происходит только в том случае, если переполняется вся память АП. Подробный алгоритм работы АП описан в [4].
Работа распределителя регулятора и буфера памяти.
Пакеты объединенных токенов, готовые для выполнения операций ИУ, из АП передаются на входные регистры коммутатора распределителя через распределитель регулятор. На распределитель регулятор приходят пакеты токенов из трех источников:
-
из буфера, в котором пакеты хранятся отдельно для выполнения на арифметическом процессоре (БА) и для выполнения на процессоре управления (БУ);
68
В.С.Бурцев. Выбор новой системы организации выполнения высокопараллельных вычислитель-ных процессов, примеры возможных архитектурных решений построения суперЭВМ
- из устройства управления (пакеты для выполнения одновходовых операций дублирования).
Выходными устройствами РР являются:
-
входные регистры КМР соответственно КМРуу - РУ и КМРау - РА;
-
регистры записи в буферную память либо свою, либо буфера следующего канала;
- входные регистры векторного исполнительного устройства.
Функции РР состоят в следующем:
-
Распределение приходящих из ИУ и АП пакетов по каналам управления, арифметики и векторного исполнительного устройства на основании кода, определяющего тип выполняемой операции.
-
Передача пакетов на входные регистры КМР в соответствии со следующим приоритетом ИУ, БУ, БА, АП.
-
Запись пакетов в буфер, если входные регистры КМР заняты. Причем, запись в свой буфер производится в том случае, если он заполнен меньше, чем буфер следующего канала. В противном случае пакеты, не обработанные КМР, записываются в буфер следующего канала.
-
В случае сигнала о возможности переполнения АП, операции, вызывающие рост параллелизма, откладываются в буфер, откуда бы они ни приходили (из буфера в том числе).
Буфер представляет собой регистровую память, в которой запись и считывание производятся по указателям счетчикам (Рис.13). Каждая запись по указателю записи увеличивает адрес счетчика на единицу. Так же работает и счетчик указателя считывания. Разность показаний счетчиков характеризует заполнение памяти и передается в соседний канал РР для принятия решения о том, в какой канал делать запись - свой или соседний.
Описанный принцип работы РР обеспечивает равномерное распределение готовых к выполнению пакетов по всем каналам и принятый алгоритм обработки пакетов первый пришел, первый обрабатывается. Фактически реализуется общая для всех каналов равномерно распределенная буферная память.
Рис.13. Буфер распределитель.
69
В.С.Бурцев. Выбор новой системы организации выполнения высокопараллельных вычислитель-ных процессов, примеры возможных архитектурных решений построения суперЭВМ
Коммутатор распределитель
Коммутатор распределитель построен на той же основе, что и КМАП (Рис.14). Отличие состоит в совершенно ином управлении триггерами Ту.
Коммутатор распределитель должен выполнять следующую функцию - распределить все пришедшие на входные регистры КМР пакеты по свободным входам исполнительных устройств. Коммутаторы КМРУУ и КМРАУ и их управление работают идентично и параллельно во времени, каждый по своим входным и выходным каналам.
Рис.14. Коммутатор распределитель.
70
В.С.Бурцев. Выбор новой системы организации выполнения высокопараллельных вычислитель-ных процессов, примеры возможных архитектурных решений построения суперЭВМ
Основными управляющими элементами этой схемы являются триггера занятости входного канала по каждому направлению Тзк и триггера запроса по входным направлениям Тзап (Рис.14). Работа схемы начинается с импульса "пуск", который опрашивает занятость канала. Так, если триггер Тзкn стоит в "0", импульс "пуск" проходит через вентиль В4 и происходит опрос триггера занятости следующего канала Тзкк. Если входной канал не занят - Тзкк стоит в "единице", опрашивающий импульс проходит через В3 и вентили В1, последовательно опрашиваются все направления по наличию запроса на входе. Если запрос есть на каком-либо направлении, срабатывает вентиль B1 этого направления, триггер, управляющий элементами матрицы, встает в "единицу" (Тукк), тем самым соединяя свободное направление с соответствующим входным. Одновременно с этим вырабатывается импульс, устанавливающий в нулевое положение триггер запроса Тзапк и триггер занятости Тзкк скоммутированных направлений. Этот же импульс приходит на опрос триггера занятости следующего выходного направления.
Возможны два окончания работы схемы управления:
-
свободных направлений достаточно, чтобы удовлетворить все запросы;
-
свободных каналов недостаточно для удовлетворения запросов по входам.
В первом случае, импульс пуска, проходя через вентиль В3 свободного по
выходу направления, проходит по всем вентилям В2 этого направления и так как запросов на входе больше нет (все вентили В2 открыты), вырабатывает сигнал конец цикла, говорящий о том, что все запросы удовлетворены. В том случае, если импульс пуска проходит через все вентили В4, формируется сигнал конца цикла, говорящий о том, что ресурсы выходных сигналов исчерпаны, а запросы удовлетворены не полностью.
После работы схемы УКМР, работает система коммутатции и пакеты входных сигналов передаются на указанные триггерами Ту свободные направления.
Пакеты, для которых не нашлось свободных каналов, сбрасываются в буфер либо остаются на регистре в соответствии с алгоритмом работы устройства PPl-n.
Существенным недостатком работы этой схемы является слишком большое время ее работы - максимальное время работы равно n2τв, где τв - задержка в вентиле измеряется сотыми долями наносекунды. Время работы этой схемы управления можно существенно уменьшить (более чем на порядок), если разбить матрицу управляющих триггеров на подматрицы и организовать двухкаскадную работу схемы по времени. В этом случае, каждой подматрице может соответствовать свой триггер управления подматрицы. Управление этими триггерами можно организовать по той же, ранее описанной, схеме. В этом случае триггера занятости запросов должны соответствовать занятости группы выходных триггеров и триггера запросов - состоянию группы триггеров запросов (Рис.14).
Работы этой схемы по времени разбивается на два последовательных пакета. Сначала коммутируются триггера, управляющие подгруппой, а затем идет аналогичная, ранее описанная работа управления в подгруппе. После проведения одного такого двойного цикла работы системы управления, могут быть проведены повторные циклы.
71
В.С.Бурцев. Выбор новой системы организации выполнения высокопараллельных вычислитель-ных процессов, примеры возможных архитектурных решений построения суперЭВМ
Сравним времена работы двухкаскадной и однокаскадной схем. Так, если необходимо коммутировать 128 на 128 направлений, матрицу можно разбить на 64 подматрицы (8x8 подматриц, каждая по 256 элементов). Время первого подцикла в этом случае будет (8x8) τв, а время второго цикла будет (16x16) τв. Таким образом, общий цикл двухступенчатого управления не превзойдет 310 τв, в то время как максимальное время работы одноступенчатой схемы измеряется 16000 τв.
Двухступенчатая схема имеет и то преимущество перед одноступенчатой, что лучше адаптируется к интегральной технологии.
Взаимодействие с векторным исполнительным устройством и центральной вычислительной машиной.
Векторное исполнительное устройство работает только с векторами (строками) размером в i28 элементов (обработка больших векторов происходит построчно). Поэтому, обмен информацией между векторным исполнительным устройством и скалярным вычислителем происходит как в обычном для исполнительного устройства виде (пакеты и токены), так и векторами. Пакеты в векторное исполнительное устройство (ВИУ) подаются из устройства РР1 в буфер пакетов ВИУ, а токены из ВИУ поступают на входные регистры КМАП. Векторная информация, выходящая с ВИУ, поступает через коммутатор векторных регистров КВР в буфер векторных регистров. В КВР вектор преобразуется в вектор обычных токенов и поступает на входные регистры КМАП. Несколько сложнее обстоит дело с формированием вектора для передачи его из скалярного вычислителя в векторное исполнительное устройство. Дело в том, что различные элементы вектора формируются в АП в различные неопределенные времена. Поэтому, чтобы сформировать вектор, в систему запускается специальная команда "фишка". Эта команда "фишка" состоит: из кода операции, кода команды, индекса итерации, кода поколения, поля количества элементов. Из этой команды "фишки" формируется токен "фишка", состоящий из вышеперечисленных команды "фишки" и поля кода номера регистра БВР. Когда происходит объединение токен "фишки" с данным, образуется пакет "фишка", состоящий из полей токена "фишки" и поля данного (Рис.8г).
Поля I, Т, П и NK служат для нахождения в АП элемента массива. Выполнение этой команды на исполнительном устройстве сводится к выдаче токена через коммутатор выхода Квых в БВР, прибавлении D к одному из полей I, T, П, проверке на окончание цикла и выдачи нового токена на КМАП. Во вновь сформированном токене поле одного данного пустое. После нахождения нового элемента вектора в АП, этот пакет с одним данным передается на свободное ИУ и цикл повторяется, пока все элементы вектора не будут сформированы. После того как сформирован вектор, из БВР он передается в векторное устройство, но на этом работа команды "фишки" не прекращается, т.к. массив, который мы хотим сформировать в ВИУ, может состоять из нескольких подвекторов по 128 элементов. Существование команды "фишки" заканчивается после того, как все подвектора данного вектора сформированы. По окончанию работы, команда "фишка" формирует пакет для ВИУ, который предписывает ему сформировать вектор в векторной оперативной памяти (ОЗУ).
72
В.С.Бурцев. Выбор новой системы организации выполнения высокопараллельных вычислитель-ных процессов, примеры возможных архитектурных решений построения суперЭВМ
Исполнением этой операции будет токен, который ВИУ передаст через КМАП скалярному вычислителю. Этот токен известит систему о том, что данный вектор готов к работе. Виртуальный адрес вектора будет указан в передаваемом токене в поле данных.
Осталось рассмотреть вопрос выполнения команды "фишки" в первом цикле ее работы, когда адреса БВР еще нет. Работа команды начинается с того, что она присваивает себе номер свободного регистра БВР. Если свободного регистра нет, необходимо эту команду отложить. В этом случае команда "фишка" отправляется в один из выделенных в БВР регистр буфера команд "фишек". Как только один из регистров БВР освобождается, первой на выходе команде "фишке" присваивается номер этого свободного регистра и она запускается в систему. Далее работа команды "фишки" идет по вышеописанному стандартному циклу.
Таким образом, взаимодействие всей скалярной вычислительной системы с ВИУ концептуально ничем не отличается от взаимодействия с исполнительным устройством с той только разницей, что в полях данных токенов и пакетов стоят не сами их данные, а описание векторов, их виртуальный адрес в ОЗУ ВИУ (Рис.8г).
Ввод и вывод данных в ЦВМ может проходить через те же регистры БВР путем пословного заполнения регистров как со стороны ЦВМ через КМБ с последующей выдачей информации на КМАП, так и со стороны скалярного вычислителя через Квых аналогично тому, как это выполняется при формировании векторов. Ввод программы производится через коммутатор памяти команд КМПК на все ПК исполнительных устройств, одновременно включая ПК векторного исполнительного устройства.
7. Возможные варианты упрощения и развития структурной схемы машины потока данных
Прежде всего необходимо обратить внимание на то, что приведенные структурные схемы будут успешно работать, если в систему команд ввести команды, позволяющие работать с результатом предыдущей операции.
В этом случае, все арифметические команды могут быть как одновходовыми, так и двухвходовыми, что существенно может разгрузить АП и повысить эффективность выполнения, так называемых, сильно связанных участков программ.
Дальнейшее развитие оптимизации сильно связанных команд может привести к введению регистров внутри процессора. Возможность использования в предшествующей команде результата предыдущей команды, позволяет легко решить проблему ввода константы из памяти ПК в поле данных без расширения формата команды и т.д.
Однако, все изменения в системе команд хотя и не требуют существенных изменений в структуре процессора и машины в целом, должны быть детально изучены и промоделированы. Поэтому, для первого макетного образца возможно целесообразно будет в качестве исполнительных устройств использовать транспьютеры. В транспьютере есть собственная командная память, все
73
В.С.Бурцев. Выбор новой системы организации выполнения высокопараллельных вычислитель-ных процессов, примеры возможных архитектурных решений построения суперЭВМ
специальные команды процессора потока данных могут быть достаточно эффективно интерпретированы в командах транспьютера. Исследование ввода регистров и специальных экстракодов для вычислений функций по одному-двум параметрам и другие возможности эффективной обработки сильно связанных участков программ может с успехом проводиться на системе с использованием транспьютера для имитации работы исполнительных устройств (Рис.15). Безусловно, транспьютеры будут работать с меньшим быстродействием, чем специально разработанные для этих целей микропроцессорные наборы. Этот недостаток может быть в какой-то мере скомпенсирован увеличением числа транспьютеров внутри каждого исполнительного устройства.
8. Оценка производительности скалярного процессора на электронной элементной базе
Как уже говорилось, основным звеном, сдерживающим производительность машины потока данных, является ассоциативная память. Если реализовать модуль памяти на интегральных схемах БИКМОП структуры с разрешающей способностью технологического процесса 0,7 микрон, то можно говорить о темпе работы, период которого не превышает 10 нс [4].
Будем считать, что модуль такого порядка можно реализовать объемом в 32 тыс. ключей. Из ста модулей такой памяти можно иметь достаточный объем АП (более трех миллионов слов). Коммутатор-распределитель можно набирать из однотипных модулей для того, чтобы обеспечить необходимый средний темп для данных, поступающих из АП. Очевидно, двумя-четырьмя коммутаторами распределителями можно обеспечить необходимый темп обработки поступающих данных. При этом в каждом коммутаторе может одновременно обрабатываться два пакета по каждому направлению.
С таким темпом может справиться работа 2-4 транспьютеров, в каждом из которых может обрабатываться по два пакета одновременно в конвейерном режиме. Четыре коммутатора КМАП в построчном режиме обеспечат необходимый темп работы для АП.
Таким образом, максимальная производительность Пnk = 1010 операций в секунду будет реализована только в том случае, если параллелизм задачи на объеме памяти в 3 млн. слов будет не меньше
NC = NKaH ( NAПCAП + NkmpCkmp + NИУСИУ + NКМАПСКМАП )
Напомним, что NC - это общее количество операций, которое должно выполняться в системе при ее полной загрузке; NKaH - число каналов системы; Nап, NИУ, Nkmp, NКМАП - число однотипных устройств в блоке каждого канала; САП, Скмр, СИУ, СКМАП - уровень конвейеризации каждого устройства.
Так, для обеспечения темпа продвижения информации по кольцу, на современной технологической базе необходимо иметь NАП=1, Nkmp=2, Nиу=2, NКМАП=4 и соответственно Сап=2, Скмр=2, Сиу=2, СКМАП=1, что соответствует времени операции АП=20 нс, времени операции КМР=40 нс, времени операции на транспьютере 40 нс и времени операции КМАП=40 нс. Общая максимальная производительность системы каналов при полной загрузке будет 1010 оп/с. Полная загрузка системы будет на участках задачи, где параллелизм
Достарыңызбен бөлісу: |