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



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

2.3. Машина потоков данных


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


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

Код операции



Адрес(а) назначения

В ентиль-ный код

Вентиль-ный флаг

Ф лаг данных



Данные

В ентиль-ный код

Вентиль-ный флаг

Ф лаг данных


Рис. 3. Содержимое ячейки команд.


Данные

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


П рограмма потоков данных размещаются в ячейках команд. Операция, заданная в команде, соответствует одному из рассмотренных выше блоков, однако вентили Т и F, а также смеситель и размножитель не имеют явно выраженных эквивалентов в наборе команд: их функции могут быть включены во все ячейки команд.
На рис. 3. в упрощенном виде представлено размещение команды в ячейке. Командой может быть, например, команда сложения, состояние готовности которой определяется наличием двух входных токенов.
Содержимое поля «вентильный код», задаваемое для каждого входа, определяет вентильные свойства, управляющие приемом данных. Ниже приведены четыре возможных значения этого кода:
N – вентильные функции не выполняются; любой результат, направляемый к данному входу, помещается в поле данных (разумеется, при условии, что оно свободно);
Т – данные, направленные в это поле, будут приняты, если управляющий токен TRUE (вентильный флаг) уже поступил или поступит в требуемый момент; при значении вентильного флага FALSE поступающие данные игнорируются вентилем;
F – данные, направленные в этот поле, будут приняты, если вентильный флаг, имеющий значение FALSE, уже поступили или поступят в требуемый момент времени; при значении вентильного флага TRUE поступающие на вентиль данные игнорируются;
С – содержимое поля является константой и не стирается в результате выполнения команды.
Вентильный флаг поступает из управляющей сети и может принимать одно из трех значений:
Off – управляющий пакет (вентильный флаг) не был получен;
Т – получен управляющий пакет TRUE;
F – получен управляющий пакет FALSE;
Данные поступают из распределительной сети. Флаг данных указывает, содержит ли порт данные в текущий момент.




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




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

    Басты бет