Архитектура машин управляемых потоком данных



бет3/9
Дата16.10.2023
өлшемі0,54 Mb.
#185870
түріРеферат
1   2   3   4   5   6   7   8   9
Байланысты:
prorobot.ru-19-0101

2.2. Язык потоков данных

О дин из языков для машин потоков данных был предложен Деннисом и его коллегами из Массачусетского технологического института, где проводятся наиболее серьезные исследования в области машин потоков данных.


Хотя язык Денниса является двумерного графического описания объектов программирования, существуют и другие предложения по построению подобных языков, предполагающие представление программ потоков данных в более привычном виде – в форме последовательности операндов, подчиняющихся определенному синтаксису такого языка.
Как упоминалось выше, в языке потоков данных не используются понятия «переменная» и «передача управления». Программа записывается в виде набора операторов, активируемых данными и соединенных однонаправленными линиями передачи. В основу языка Денниса положены следующие три основных понятия: исполнительный элемент, информация и линия связи.
Исполнительный элемент символизирует операцию, готовую к выполнению при поступлении информации на входные линии этого элемента и при отсутствии информации на его входных линиях. Существует два типа исполнительных элементов – блоки (actor) и размножители (link). Блок – это исполнительный элемент с одной выходной линией и одной или несколькими входными, размножитель – с одной входной линией и несколькими выходными.
Информация в языке Денниса представляется в виде токенов, которые передаются по линиям связи, обрабатываются и выдаются исполнительными элементами.
Различаются два вида информации: значение данных (например, числовые величины) и значения управляющих сигналов (логические величины TRUE – ИСТИННО или FALSE – ЛОЖНО). В описываемом языке отсутствуют средства для распознавания типов значений данных (целые, с фиксированной точкой, комплексные и т. д.).
Используемые в языке Денниса понятие линия связи (arc) символизирует однонаправленный тракт, по которому информация передается от одного исполнительного элемента к другому. Сигналы на линии связи могут отсутствовать либо на ней может находиться только 1 токен информации. Следовательно, линию связи можно рассматривать как определенный эквивалент традиционных понятий «переменная» и «область памяти».
В соответствии с классификацией информации на значения данных и значения управляющих сигналов линии также разделяются на линии данных (обозначены на рисунках сплошными стрелками) и управляющие линии (обозначены штриховыми стрелками).





Размножитель данных

Размножитель



Блок выполнения операций



Блок принятия решений

Вентиль Т

Вентиль F



Смеситель



Рис. 2. Исполнительные элементы графического языка

На рис. 2. изображены исполнительные элементы языка: сплошные стрелки показывают места подсоединения линий данных, штриховые – управляющих линий. Операция размножения готова к выполнению при появлении токена на единственной входной линии размножителя и при условии, что все его выходные линии пусты. Размножитель распределяет полученный токен по выходным линиям. Блок выполнения операции обычно имеет одну или две входных линии. Блок готов к работе при наличии токенов данных на всех его входных линиях и при условии, что выходная линия пуста. Он принимает входные токены, выполняет некоторые преобразования над полученными величинами и помещает результирующий токен данных на свою выходную линию. Типичными операциями таких блоков являются сложение, вычитание, умножение, инвертирование, извлечение квадратного корня и т. д.
Блок принятия решения функционирует аналогичным образом, однако результатом его работы является управляющий сигнал (логическая величина). В этом блоке вычисляется отношение, составленное из выходных данных, и формируется в результат в виде логической величины TRUE (ИСТИННО) или FALSE (ЛОЖНО). Типичными операциями отношения являются операции сравнения двух величин по одному из критериев типа «равны», «не равны», «первая величина больше второй» и т. д.
Остальные три блока имеют на входе и данные, и управляющие сигналы. Блок типа вентиль Т (Т – от английского слова TRUE) готов к работе при наличии на его входах как токена данных, так и токена управляющей информации (при этом, как обычно, выходная линия должна быть пуста). Как и все остальные исполнительные элементы, этот блок «поглощает» входную информацию во время выполнения. Если значение управляющего сигнала TRUE, то имеющийся на входе блока токен данных передается на выходную лини. Если значение управляющего сигнала FALSE, то сигнал на выходе блока не формируется. Таким образом, вентиль T либо пропускает входные данные на свой вход, либо просто «поглощает» их. Блок типа вентиль F (F – от английского слова FALSE) работает аналогичным образом, только для передачи токена данных на выходную линию требуется управляющий сигнал, имеющий значение FALSE.
С реди различных блоков рассматриваемого языка потоков данных блок типа «смеситель» является исключением: выполнение предписываемых им действий не вызывает уничтожения всех токенов на входных линиях, и для перехода его в состояние готовности к работе не требуется наличия всех входных токенов. Этот блок готов к работе при соблюдении одного из следующих условий: 1) одновременное присутствие управляющего токена TRUE и токена данных на линии с меткой Т; 2) одновременное присутствие управляющего токена FALSE и токена данных на линии с меткой F. В обоих случаях выходная линия должна быть пуста. Если присутствует управляющий токен TRUE, токен данных с входной линии Т пересылается на выходную линию. В результате эти два токена на входных линиях уничтожаются, но при наличии токена данных на линии F он сохраняется. Если присутствует управляющий токен FALSE, то токен данных на входной линии F пересылается на выходную линию. В результате этого два токена на входных линиях уничтожаются, но токен данных на линии Т, если он присутствовал, сохраняется.




Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет