Архітектура потоків даних
Матеріал з Вікіпедії — вільної енциклопедії.
АРХІТЕКТУРА ПОТОКІВ ДАНИХ (dataflow architecture) - архітектура обчислювальних машин, в якій процесом обчислень керує потік даних, які переміщуються між обчислюючими пристроями в машині, де обробляються, поступово "приводячи себе" до "обробленого" вигляду.
Фактично, в архітектурах потоків даних, на відміну від класичних архітектур потоків команд (див. напр. Архітектура фон Ноймана, Гарвардська архітектура), процесом обчислень управляє безпосередньо потік даних, а не спеціалізовані команди. Критерієм того, що деякий обчислюючий пристрій в машині може приступити до обчислень, є готовність усіх необхідних для проведення обчислення операндів. Тому в машинах потоків даних, на відміну від фон-нойманівської та подібних послідовних архітектур, операції можуть виконуватись незалежно одна від одної. Машина потоків даних не має потреби в централізованому керуванні послідовністю виконання, в лічильниках команд і т. ін., взагалі в будь-якому централізованому керуванні.
Програма для машини потоків даних зазвичай представляється в виді графа потоків даних, на якому зображені шляхи руху даних через операційні пристрої. Наведений граф демонструє програму знаходження коренів квадратного рівняння. Операційні пристрої показані незаштрихованими кружечками з позначками операцій, а заштрихованими кружечками показані розмножувачі даних, функція яких очевидна.
Вхідні дані А, B та C (коефіцієнти рівняння), переміщуються по графу, "перетворюючись" в результаті в корені рівняння X та Y. Як бачимо, за умови наявності всіх операндів на момент запуску машини, обчислення може відбуватись одночасно в декількох напрямах на графі (оператори, що можуть за таких умов функціонувати паралельно, показані одним кольором). Якщо якийсь з операндів не готовий, но незалежні від цього операнда гілки обчислень все одно можуть продовжуватись до тих пір, поки на якомусь з операційних пристроїв обчислення виявисться залежним від цього операнда. Також ці архітектури доволі специфічні в програмуванні, і це навряд дозволяє їм конкурувати з фон-нойманівськими.
Тим не менш, деякі принципи машин потоків даних застосовуються в сучасних швидкодіючих процесорах (див. Суперскалярний мікропроцесор) для досягнення високого рівня паралелізму і зменшення простоїв внаслідок виникнення різних залежностей між операндами.