ノイマン型
ノイマン型(-がた、von Neumann architecture)は、計算機の基本的な構成法のひとつである。今日では基本的なコンピュータ・アーキテクチャのひとつとされるが、そもそもコンピュータの要件とされることもありこのあたりの定義は循環的である。
プログラム内蔵方式のデジタルコンピュータで、CPU(中心となるプロセッサ、今日では一つの部品としてまとめて考えることが多いが、オリジナルの報告書では制御装置と演算装置に分けている)とアドレス付けされた記憶装置とそれらをつなぐバスを要素に構成され、命令(プログラム)とデータを区別せず記憶装置に記憶する。
プログラムカウンタを構成要素に含め、またより抽象的なモデルにおける命令スケジューラの実装とみる[1]ことがある。また、今日では、演算などの命令の実行は演算装置を含む実行ユニットでおこなわれる、というように考えられることもある。
オリジナルの報告書では、入出力について特別に扱っているが、今日の視点からではメモリマップドI/Oを考えれば特に必要ない。また、バスは、報告書では明示的に数え上げてはいないが(言及はある)、こんにちではフォン・ノイマン・ボトルネックのように明確に認識される存在である。
ノイマン型の名は、最初にこれを広めたEDVACに関する報告書 w:First Draft of a Report on the EDVAC(1945)の著者がジョン・フォン・ノイマン(ひとり)になっていることに由来する。誰がなんのためにそうしたかについては諸説ある。このアイディア、特にプログラム内蔵方式のアイディアは、ジョン・モークリーとジョン・エッカートによるENIACのプロジェクト中の検討にその芽があった。ノイマンは(理論的な、とされる)助言役として加わり、執筆者はノイマンであった。誰にどのような功績があったかは諸説ある。
この方式について、以後のコンピュータ研究開発に大きな影響を与えた1946年夏のムーアスクールで講義したのは、ノイマンではなくモークリーとエッカートであったし[2]、ノイマン型という用語は不当だとして、使わない者もいる[3]。一方で、EDSACの設計・建造者であるモーリス・ウィルクスは、ENIACが軍事機密の下にあった時に、ノイマンの草稿がその保護に入らず、多くの人がノイマンを発明者だとみなしたことは不公平な結果だったとし、ノイマンの参加以前に本質的な先進があった[4]、としながらも、数値データと命令を同じ記憶装置の中に置くのは不自然である、とか、そのために必要な遅延記憶装置は信頼性に欠ける、といった、新規技術への疑念[5]に対し、物理学者として、また数学者(計算理論)として、ノイマンが計算機の潜在能力を見抜き、信望と影響力を行使したことは重要だった[6]、とも述べている。
概要 [編集]
チューリングマシンを、可能な範囲で実現・具体化(実装)するもので、記憶装置を仮に無限だとすれば、あるいは必要な計算に対し十分であれば、計算模型として(「ノイマンマシン」と呼ばれることがある)みた場合チューリング完全とみなせることになる。また、二進法の採用も、要件に含めることがある(二進法と、二進法の基本的な演算(論理演算)の組み合わせで、あらゆるデジタル処理が可能である)。
プログラムのチューリング完全性は、命令の書き換えをしなくても、インタプリタの原理により可能とわかったり、また一般に自己書き換えコードは特殊な技法とされるため、システムソフトウェアを除いて、特に一般ユーザの通常のプログラミングでは、命令とデータは区別するのが一般的である。特に近年ではマルウェア対策として、命令を置いたメモリは書き換え禁止に設定されることがある。また、組み込みシステムなどの専用コンピュータなどで、プログラムを入れ替える必要がないなど、命令とデータを区別するハーバード・アーキテクチャもある。しかし、汎用コンピュータにおけるプログラムの入れ換えなどは、ノイマン型に依っており、システムソフトウェアや性能のため(インタプリタは遅い)などで、依然として重要な原理であることに変わりない。
また性能の点では、バスが細いとそれがボトルネックになってコンピュータ全体の性能がそれで決まってしまう。これをフォン・ノイマン・ボトルネックと言う。
EDVACの開発は遅れ、世界初のプログラム内蔵方式の全電子式コンピュータはSSEM、同じく実用的な実現はEDSACとなった。これらのマシンは「報告書」に影響されたものとされる。EDVACの遅れは、エッカートとモークリーの離脱が大きな理由とされており、離脱の理由は諸説ある。ともあれ、「ノイマンの法則『いつ聞かれても完成は半年後』」などと言われながら、1949年8月に大学から軍の施設に運ばれ、1951年に稼動をはじめた。
ノイマンの草稿ほぼそのままの構成のマシンとして、EDVACの他に、IASマシンがある。IASマシンとほぼ同じ構成のマシンが世界で複数作られたが、特にそれらを指してvon Neumann-architecture computersとすることもある。
21世紀初頭におけるコンピュータのほとんどはノイマン型である。これに対し、データフローマシンなどは非ノイマン型と呼ばれる。この場合、「次に実行すべき命令」をバスを通して記憶装置から次々と取り出してくる、というモデルのことを指しており、ふつうハーバード・アーキテクチャなどは非ノイマン型としない。 たとえばNECから、1984年非ノイマン型の画像処理用LSIとしてμPD7281(ImPP:Image Pipelined Processor)が発表されている[7]。
また、次のような要素なども、ノイマン型には含まないが、ノイマン型のモディファイの範囲内とみなし、ふつうノイマン型でないとはしない。
- キャッシュ、主記憶と補助記憶のような、記憶階層
- 外部から直接、命令の実行順を変える割り込み
- チャネル・コントローラ・DMA・バスマスタリングなどによる、CPUを介さない、周辺機器や記憶装置の間の直接入出力
Further reading [編集]
- ノイマンによる原稿は(列車の中で書かれたと伝えられる)手書きであり、タイプライタにより清書されたものはノイマンによるチェックを経ていない。スタンフォード大の Michael D. Godfrey によりプルーフリーディングされたバージョンがメンテナンスされており http://sites.google.com/site/michaeldgodfrey/other から参照できる。このページからタイプライタ版をスキャンしたものも取得できる
脚注 [編集]
- ^ 曽和『コンピュータアーキテクチャ原理』1993, §3.2
- ^ ウィルクスのチューリング賞授賞講演から引用:「以後の開発は,1946年にエッカートとモークリの講義した方式が正しかったことを(略)」。西村恕彦訳 モーリス V. ウィルクス「電子計算機の過去と現在」(赤攝也ほか『ACMチューリング賞講演集』 p. 234 )より
- ^ パタヘネ第3版別冊 歴史展望 p. 10
- ^ 『ウィルクス自伝』 p. 141
- ^ 『ウィルクス自伝』では、そういった主張をした人物としてハワード・エイケンを挙げている。
- ^ 『ACMチューリング賞講演集』 p. 234
- ^ “非ノイマン型データ駆動プロセッサImPPの開発 (NEC)”. ssis.or.jp. (2010年10月16日) 2011年3月13日閲覧。
|
||||||||||||||||||||||||||||