Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учеб пособие по КР, СПО.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.72 Mб
Скачать

4. Потоковая обработка информации

в вычислительных системах

на асинхронном решающем поле

4.1. Организация потоковой обработки информации

Одним из практических способов организации управления совместной работой исполнительных устройств при выполнении одной программы в ВС является управление потоком данных или организация потоковой обработки информации. При этом способе поступление необходимых данных непосредственно в текст команды – единственное условие, определяющее возможность ее выполнения одним из исполнительных устройств системы. Таким образом, достигается предельно простая синхронизация взаимосвязанных работ и параллельное выполнение независимых работ, определенных программой. В идеальном случае параллельное выполнение алгоритма в ВС обусловлено его информационно-логическим графом.

В различных вариантах построения ВС, управляемой потоком данных, по одной команде может выполняться как элементарная операция, так и некоторая программно реализованная процедура. Известны два способа реализации метода управления потоком данных.

Первый способ предполагает размещение всей программы или ее частей в активной памяти, состоящей из ячеек команд. В каж­дую ячейку предусмотрена запись кода операции (идентификато­ра процедуры), всех необходимых операндов и адреса ячейки, в которую надлежит отправить результат. Готовые к выполнению команды, т. е. те, в тексте которых имеются все операнды, выби­раются исполнительными устройствами – вычислителями решающего поля для выполнения. Предполагается возможность одновре­менной выборки вычислителями достаточно большого числа гото­вых к выполнению команд. После выборки команды вычислителем операнды в ее тексте уничтожаются, что обеспечивает повторное выполнение команды в цикле. Результаты направляются по ука­занным в командах адресам в качестве операндов для последую­щего выполнения других команд. Данный способ требует разра­ботки специальной многовходовой активной памяти большого объ­ема, развитой переключающей сети, нуждается в решении ряда вопросов хранения и подкачки исходной информации, организа­ции процесса в случае, когда память команд не вмещает прог­рамму полностью, и т. д.

Второй способ предполагает динамическую коммутацию исполнительных устройств при одновременном выполнении ими предпи­санных операций таким образом, чтобы результаты выполнения одних команд служили аргументами для выполнения других команд, назначенных к выполнению на том же или другом испол­нительном устройстве. Данный способ требует разработки специ­альных коммутирующих устройств, распределяющих команды между ограниченным числом исполнительных устройств и устанавливающих связи между ними. Способ получил распростране­ние при построении модульных арифметическо-логических уст­ройств.

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

Важно также сохранить для универсальной потоковой системы традиционную форму программ, отражающую отработанные способы параллельно-последовательного представления алгоритмов.

Для иллюстрации решения проблем, связанных с организацией потоковой обработки информации, выберем модель асинхронной модульной ВС, в которой применение указанных способов управления потоком данных сочетается с последовательной обработкой команд программы коммутации ВС состоит (рис. 4.1) из m про­цессоров коммутации (которые будем называть просто процессора­ми), памяти команд (ПК), адресного генератора (АГ) с табли­цами соответствия TCj, j=1, ..., m, исполнительных устройств ре­шающего поля, буферов исполнительных устройств, оперативной памяти данных (ОПД). В состав исполнительных устройств вхо­дят вычислители Вi (с буферами Бi,), i=l, ..., n, и процессор па­мяти (ПП), осуществляющий обмен информацией с ОПД и свя­занный со своим буфером – очередью заявок к памяти (ОЗП). Вы­числители могут быть построены на основе микро- и миниЭВМ, что способствует унификации устройств, реализации большого на­бора операций с учетом модификации и расширяемости, возмож­ности переменной комплектации, повышению надежности.

Рассмотрим кратко принципы работы такой ВС.

Каждый процессор выполняет свою программу коммутации (так как такая программа является единственным представителем вычислительного процесса в ВС, будем называть ее просто прог­раммой), соответствующую задаче, программному модулю, про­цессу и так далее на основе реализации первого уровня распараллели­вания.

Р и с. 4.1. Схема ВС, управляемой потоком данных

Программа, записанная в ПК, имеет традиционный вид, но может содержать математические адреса вычислителей, интерпре­тируемые как адреса особой области памяти, не допускающей пов­торного использования данных. Процессоры и решающее поле работают независимо друг от друга, за исключением выполнения условных переходов, определяемых результатами счета. Процессоры производят модификацию команд и полностью выполняют команды индексации, цикла, переходов, организации векторных операций. Как средство частичного выполнения команд они выс­тупают как исполнительные устройства, в связи с чем, наряду со специальным, предусматривается их стандартное подключение к решающему полю. С помощью базирования программ и дан­ных реализуется стековый принцип обработки.

При обработке основной группы команд из системы команд ВС процессор по дисциплине, реализуемой адресным генератором, занимает или использует ячейки команд буферов исполнительных устройств, организованных по первому способу управления потоком данных. Он записывает в эти ячейки коды операций и физи­ческие адреса ячеек команд буферов, в которые необходимо пере­дать результаты. Подобные же команды формируются в ОЗП. Команда на считывание располагает адресом ячейки команды в некотором буфере, куда должна направляться информация. При формировании команды записи ее адрес как адрес результата сообщается той команде, по которой он вырабатывается. Таким образом, процессор выполняет функции динамической коммутации исполнительных устройств для реализации второго уровня распараллеливания. Предусмотрены команды вычисления условных выражений, исключающие необходимость условных переходов при счете значений арифметических операторов. Это минимизирует задержки коммутации для определения направлений ветвления.

Асинхронно работающие исполнительные устройства (вычисли­тели и ПП) выполняют команды из своих буферов, располагаю­щие всеми операндами. Результаты направляются по указанным адресам, что реализует второй способ управления потоком дан­ных.

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

Таким образом, в выбранной модели потоковая обработка инфор­мации основана на динамическом преобразовании схемы обработ­ки информации в схему коммутации исполнительных устройств решающего поля.

Программа коммутации представляет в ВС вычислительный процесс и является объектом программирования или трансляции. Ее выполнение и работа исполнительных устройств происходят асинхронно, т. е. процесс коммутации отделен от процесса выполнения исполнительными устройствами предписанных им операций. Простыми средствами достигается виртуализация вычислительного ресурса.

По мере того как частичная коммутация позволяет начать выполнение операций, исполнительные устройства выполняют пред­писанные им операции асинхронно после поступления на их вход необходимых операндов. Они передают результаты на входы дру­гих (или, в частности, этого же) исполнительных устройств в соответствии с необходимостью дальнейшей обработки информации, определенной данным алгоритмом и учтенной на этапе коммута­ции связей. При этом становится принципиально возможным аб­солютное распараллеливание участков выполняемого алгоритма, так как каждое исполнительное устройство получает возможность выполнения операции сразу же, как только будут получены от других исполнительных устройств необходимые операнды. От скорости процесса коммутации зависит возможность распараллеливания вычислений на уровне исполнительных устройств. Вместе с тем очевидно, что практически разница скоростей ком­мутации и выполнения не может быть столь значительной, что воз­можна и целесообразна коммутация связей исполнительных уст­ройств для выполнения всего алгоритма сразу. Да и ограничен­ный вычислительный ресурс этого не позволит. Поэтому по прог­рамме коммутации происходит постепенное «развертывание» гра­фа, отражающего вычислительный процесс.