非ノイマン型コンピュータ
非ノイマン型コンピュータとは、文字通り、
ノイマン型 でない、コンピュータシステムのことです。
つまり、ノイマン型とは、異なる動作原理で計算機が行われている計算機システム
全てのの総称なわけです。
一般に、非○○というのは、ようするに、「○○でない」ものを指す言葉ですが、
例えば、非人といえば、人間でない、といった形で、かなり否定的な意味で用いられる
ことが多いようです(例えば、「平家にあらずば、人にあらず」など.. )。
「非ノイマン型」という言葉も、裏を返せば、如何に世の中のほとんどが
「ノイマン型」の計算機ばかりであるかを如実に表している表現だと言えます。
つまり、言うならば、「ノイマン型であらずんば、計算機にあらず」というのが
現在の状況だということです。
ノイマンボトルネック
こんなに、流行るほど、ノイマン型計算機システムが利用されるには、
それなりの理由があるはずです。つまり、何らかの利点があるから
こそ、利用されているはずです。
その理由は、厳密には言いきれないのですが、恐らく、ノイマン型計算機
システムの動作原理である「一度に一つずつの命令を順に実行する」ことに
あると思われています。
「一度に一つのことをしない」、なんと、簡単かつ明快な原理でしょう。
おそらく、その分、実現も容易でしょうし、理解もし易いと思われます。
これなら流行るのも理解できそうではないでしょうか。
もともと、ノイマン型計算機システムの動作原理は、
チューリング が、自分の研究の都合が良いように、計算機の原理を
単純化したことにあるわけですから、その分、単純で明快なのもうなずける
話だと思われます。
では、なぜ、これで満足しないのでしょうか ? 今、あるものが十分に便利で
実用的であれば、新しいものなど考える必要はないはずです。すでに、我々
は、ノイマン型計算機を手にしています。そして、それは十分に利用可能で、
いま、人間社会は、この計算機なしでは、済まされない状況になっています。
実は、その答えは、その「一度に一つのことしかしない」という原理にあります。
つまり、「一度に一つのことしかしない」ように作られた計算機は「一つに
一つのことしか *できない*」のです。
この性質を「ノイマンボトルネック」と呼んでいます。ボトルネックというのは、
ようするに、ビンの口の部分の狭くなった所を指す言葉で、ちょうど、コップを
逆さにすると、内容が全部一度に出るのに対し、ビンの場合は、逆さにしても、
このボトルネックが原因となって、一度にはでてきません。
中身が漏れないという意味では、このボトルネックは、良い性質のように、
思われますが、計算機システムの場合は、逆で、本来なら、「一度に計算できる
ことがたくさんあり、同時にできるはずなのに、それができない」という
欠点になります。
同時にできることを、同時にするのと、順番にするのでは、当然のことながら
同時にできた方が速いに決まっています。「ノイマンボトルネック」を持つ
ということは、要するに、高速化が難しいということを意味するわけです。
つまり、「ノイマン型計算機」は、その原理からいって、「ノイマンボトルネック」
を潜在的に抱えており、その結果として、その「ノイマンボトルネック」により
計算が速くできないということになります。
非ノイマン型コンピュータの意義
計算機は、速ければ速いほど良いに決まっています。その目的には、
ノイマン型コンピュータの抱えるノイマンボトルネックは大きな
障害になっていると考えて良いでしょう。
ここにきて、非ノイマン型コンピュータは、決して、否定的な表現では
ないことがわかったかと思います。
つまり、非ノイマン型コンピュータとは、いわば、「ノイマンボトルネックを
持たないコンピュータ」といえるでしょう ( 二重否定なわけですね.. )。
実際に、データフロー計算機システムでは、一度に複数の計算が同時に
行われていることが解るかと思います(実際に触ってみて、実感して
くださいね..)。
その意味では、次世代の計算機を占うシステムといえるでしょう。
もちろん、データフローを始めとした非ノイマン型計算機しすてむにも
大きな欠点があります。それは、端的にいえば、解り難いの一言に尽きる
と思います。
そこで、様々な研究が行われているわけです。
今回のデータフローコンピュータエミュレータでは、そんな計算機原理を
直感的に解りやすく表現してみようという試みの一つです。
ぜひ、試みてあげてください。