Словник термінів в колекції "Обчислювальні системи"
Статичні потокові обчислювальні системи
Синоніми: Статичні потокові обчислювальні системи; Статична потоковая архітектура; Статична модель потокових обчислень;
Статична потоковая архітектура, відома також під назвою «єдиний-токен-на-дугу» (single- token-per-arc dataflow), була запропонована Деннісом в 1975 році. У ній допускається присутність на дузі графа не більше одного токена. Це виражається в правилі активації вершини: вершина активується, коли на всіх її вхідних дугах присутній по токені і ні на одному з її виходів токенов немає.
Токен в статичної потокової системі являє собою тріаду. а>, де v - це дані, що переносяться токеном, f - ідентифікатор функції, яка реалізується поточним потоковим графом, n - номер цільової вершини, куди повинен поступити даний токен, і, нарешті, a - це номер дуги, по якій токен повинен бути спрямований до цільової вершині. Поле називають тегом, воно визначає призначення токена певної вершини.
Для вказівки вершині про те, що її вихідний токен вже затребуваний подальшої вершиною (вершинами) графа, в ВС зазвичай вдаються до механізму підтвердження з квитированием зв'язку.
Пам'ять дій складається з двох блоків пам'яті: пам'яті команд / даних і керуючої пам'яті. Вершина потокового графа представлена в пам'яті команд / даних кадром, що містить поле коду операції, N полів операндів і К полів «вершина / дуга». Кожному кадру в пам'яті команд / даних відповідає кадр в керуючої пам'яті, що містить біти наявності операндів і зайнятості дуг. Біт наявності операнда встановлюється в одиницю, якщо цей операнд доступний, тобто якщо токен, що містить даний операнд, вже надійшов по вхідний дузі графа. Для кожного поля «вершина / дуга» встановлений біт зайнятості означає, що вихідна дуга, асоційована з даним полем, не містить токена. Вершина графа, описана в пам'яті команд / даних, може бути активована (операція може бути виконана), якщо всі біти в відповідному кадрі пам'яті управління встановлені в одиницю. Коли дана ситуація розпізнається блоком поновлення, він поміщає пакет команди в чергу команд. Спираючись на пакет команди і вміст пам'яті дій, блок вибірки формує пакет операції і направляє його в один з вільних функціональних блоків. Після виконання необхідної операції функціональний блок створює пакет результату і передає його в блок поновлення, який відповідно до отриманого результату оновлює вміст пам'яті дій.
Основна перевага цієї моделі потокових обчислень полягає в спрощеному механізмі виявлення активованих вузлів. На жаль, статична модель має безліч серйозних недоліків, однак основний недолік полягає в тому, що даний механізм не допускає паралельного виконання незалежних ітерацій циклу. Наприклад, операція додавання двох векторів може бути представлена циклічним процесом, де на кожній ітерації підсумовується пара однойменних елементів векторів-операндів. У статичної потокової ВС таке підсумовування має виконуватися послідовно в порядку збільшення індексів елементів. Це пов'язано з тим, що, по-перше, на кожній вхідний дузі вершини складання може перебувати лише по одному елементу, а по-друге, через те, що в тезі елемента відсутня інформація про його індексі в векторі.
Як приклади статичних потокових ВС можна згадати: LAU System, TI's Distributed Data Processor, DDMI Utah Data Driven Machine, NEC Image Pipelined Processor, Hughes Dataflow Multiprocessor.