Архітектура потоків даних

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Граф потоків даних знаходження коренів квадратного рівняння

Архітектура потоків даних (dataflow architecture) — архітектура обчислювальних машин, у якій процесом обчислень керує потік даних, що переміщуються між обчислювальними пристроями у машині, де опрацьовуються, поступово «приводячи себе» до «опрацьованого» вигляду.

Фактично, у архітектурах потоків даних, на відміну від класичних архітектур потоків команд (див. напр. Архітектура фон Ноймана, Гарвардська архітектура), процесом обчислень керує безпосередньо потік даних, а не спеціалізовані команди. Критерієм того, що деякий обчислювальний пристрій в машині може приступити до обчислень, є готовність усіх необхідних до проведення обчислення операндів. Тому у машинах з керуванням від потоку даних, на відміну від фон-нойманівської та подібних послідовних архітектур, операції можуть виконуватись паралельно та незалежно одна від одної. Машина з керуванням від потоку даних не має потреби у централізованому керуванні послідовністю виконання, у лічильниках команд, тощо, та взагалі у будь-якому централізованому керуванні.

Програма машини з керуванням від потоку даних зазвичай надається у вигляді графа потоків даних, на якому зображено шляхи руху даних через операційні пристрої. Наведений граф демонструє програму знаходження коренів квадратного рівняння. Операційні пристрої показані незаштрихованими кружечками з позначками операцій, а заштрихованими кружечками показані розмножувачі даних, функція яких є наочною.

Вхідні дані А, B та C (коефіцієнти рівняння), переміщуються графом, «перетворюючись» в результаті у корені рівняння X та Y. Як бачимо, за умови наявності всіх операндів на момент запуску машини, обчислення може відбуватись одночасно у декількох напрямах на графі (оператори, що можуть за таких умов функціонувати паралельно, показані одним кольором). Якщо якийсь з операндів не готовий, но незалежні від цього операнда гілки обчислень все одно можуть продовжуватись доти, доки обчислення на якомусь з операційних пристроїв виявиться залежним від цього операнда. Також ці архітектури доволі незвичні у програмуванні, що є вадою у порівнянні з фон-нойманівськими архітектурами.

Однак в одночас та в однораз, деякі принципи машин з керуванням від потоку даних застосовуються в сучасних надпродуктивних процесорах (див. Суперскалярний мікропроцесор) з метою досягнення високого рівня паралелізму.

Див. також[ред.ред. код]