データフロー
プロセッサ駆動機能分散型のデータフローマシンは、ノード(プロセッサ機能すなわち命令)とトークン(入力データ)とアーク(出力データの出力先ノードを示す一種のポインタ)をパケットとし、メモリに格納しておく。各パケットは必要なトークンが全て揃うと実行可能になる。実行可能なパケットはプロセッサに送られ、プロセッサはそれを解釈実行し、出力トークンをメモリに戻す。その出力トークンは元のアークで示されているノードのパケット内に格納される。これを繰り返すことで処理が行われる。
例えば、2つの整数の加算命令パケットには、加算命令のノード情報と2つの入力トークンと加算結果の出力先情報(複数の場合もある)が格納されており、2つのトークンが揃うと実行可能と判断され、プロセッサに送られる。プロセッサはノードに示された加算命令を実行し、結果のトークンをアークで示されたアドレスに書き込む(正確にはタグによるパターンマッチングを伴うことが多い)。
コンパイラはプログラムを解析してデータの依存関係を明らかにする。
データフローネットワークとは、プロセス群やオートマトンを並行的に実行するネットワークであり、通信路を通してデータを相互にやり取りする(メッセージパッシング参照)。
カーン・プロセス・ネットワーク(英語版) はデータフローネットワークの中でも特に重要なクラスである。この場合、各プロセスは継続的に入ってくるデータに何らかの変換を加えて出力する。信号処理の抽象モデルとして重要とされている。
データフローネットワークの概念はアクターモデルと呼ばれる並行性モデルとも密接に関連している。
コンピュータ・アーキテクチャを分類するにあたって、ここでは処理を進行させる鍵は何であるかに着目する。
プロセッサ駆動 - プログラムやデータが先に用意されていて、プロセッサによって処理の進行が駆動される方式 機能集中型 - 汎用的なプロセッサが自ら命令やデータを格納場所から取り出す方式。ノイマン型 機能分散型 - プロセッサ群に命令やデータが送られてくる方式。静的データフローアーキテクチャ
トークン駆動 - プロセッサ群にプログラムの命令を割り付けておき、トークンと呼ばれるデータや制御がそのプロセッサに到着した時点で処理が行われる方式。動的データフローアーキテクチャ プロセッサ仲介型 - 他のプロセッサからトークンが送られてくる方式。 通信仲介型 - 通信網を仲介してトークンが送られてくる方式。
デニスの先駆的研究は静的データフローアーキテクチャである。動的データフローアーキテクチャの例としては、Manchester Dataflow Machine や MIT Tagged Token がある。