フォン・ノイマン・ボトルネック
フォン・ノイマン・ボトルネック (英: Von Neumann bottleneck) またはノイマンズ・ボトルネックは、コンピュータ・アーキテクチャの1つの型であるノイマン型に存在する性能上のボトルネック。
概要
[編集]ノイマン型では同じ記憶装置に命令とデータを格納するのでプロセッサが命令を実行しデータを読み書きするには記憶装置(メモリなど)にアクセスしなければならない。ここで、プロセッサと記憶装置のアクセス速度が遅ければ、プロセッサの性能を高めてもコンピュータ全体の性能向上につながらない問題がある。
なお、この問題はノイマン型にかぎらずプロセッサと記憶装置の間で共通して発生する問題であるが、ノイマン型が代表的なプロセッサと記憶装置の間のアーキテクチャであるためこのように呼ばれる。
現代のコンピュータはノイマン型である。フォン・ノイマン・ボトルネックを避けるため、記憶装置のアクセス速度を高める開発が行われる他、キャッシュメモリなど記憶装置へのアクセス頻度を減らす機能が開発されている。コンピュータで実行するプログラムを設計する際には、使われやすい処理をサブルーチン化するとキャッシュメモリが有効に使え、フォン・ノイマン・ボトルネックの影響を低減できる。
歴史
[編集]フォン・ノイマン・ボトルネックは、今日では、コンピュータ設計上の留意点として扱われているが、もともとはプログラミングにおける問題意識から指摘されたものである。ジョン・バッカスがそのチューリング賞受賞講演「プログラムはフォン・ノイマン・スタイルから解放されうるか? 関数型プログラミング・スタイルとそのプログラム代数」において、従来型のプログラミング・スタイルの問題点について、それを実行するコンピュータの「CPUと記憶装置と、その2つをつなぐバス」という構成の影響を受けすぎており、この隘路(ボトルネック)の交通整理をすることがプログラミングになってしまっている、と主張した際に命名された。