ノイマン型
[Wikipedia|▼Menu]
□記事を途中から表示しています
[最初から表示]

また、ノイマンの思考はチューリングマシンを通してのものではなく、ゲーデル数からの直接のものではないだろうか、とする論者もいる(ノイマンは不完全性定理とも深くかかわっている)[4]

プログラムのチューリング完全性は、命令の書き換えをしなくても、インタプリタの原理により可能とわかったり、また一般に自己書き換えコードは特殊な技法とされるため、システムソフトウェアを除いて、特に一般ユーザの通常のプログラミングでは、命令とデータは区別するのが一般的である。特に近年ではマルウェア対策として、命令を置いたメモリは書き換え禁止に設定されることがある。また、組み込みシステムなどの専用コンピュータなどで、プログラムを入れ替える必要がないなど、命令とデータを区別するハーバード・アーキテクチャもある。しかし、汎用コンピュータにおけるプログラムの入れ換えなどは、ノイマン型に依っており、システムソフトウェアや性能のため(インタプリタは遅い)などで、依然として重要な原理であることに変わりない。

また性能の点では、バスが細いとそれがボトルネックになってコンピュータ全体の性能がそれで決まってしまう。これをフォン・ノイマン・ボトルネックと言う。
経緯と現状
過去

EDVACの開発は遅れ、世界初のプログラム内蔵方式の全電子式コンピュータはSSEM、同じく実用的な実現はEDSACとなった。これらのマシンは「報告書」に影響されたものとされる。EDVACの遅れは、エッカートとモークリーの離脱が大きな理由とされており、離脱の理由は諸説ある。ともあれ、「ノイマンの法則『いつ聞かれても完成は半年後』」などと言われながら、1949年8月に大学から軍の施設に運ばれ、1951年に稼動をはじめた。

ノイマンの草稿の構成に近いマシンとして、EDVACの他に、IASマシンがある。

池田敏雄が1965年にコンピュータについてまとめた報告[5]では、電子計算機の最も基本的な概念はフォン・ノイマンによって確立されたプログラム内蔵方式で、(主)記憶装置にアドレスを付け命令をそれに記憶しシーケンシャルに取り出して実行すること、としている。またノイマンは「コンピュータはすべからく2進法たるべきである」と言っている、としている(この点については十進演算を併用すべき場合とのバランス感覚が必要と、少々辛い見解を池田敏雄は示している)。
現状

21世紀初頭におけるコンピュータのほとんどはノイマン型である。これに対しデータフローマシンなどは非ノイマン型と呼ばれる。この場合の「ノイマン型」とは、次に実行すべき命令が記憶装置に順番に並んでおり(ジャンプ命令等の直後の命令など例外以外は)それをバスを通して記憶装置から順番に次々と取り出してくる、というモデルのことを指している。データフローマシンには、何らかの方法で「必要なデータが揃っているので、今から実行できる命令」を決定できる仕掛けがある(そういった意味ではアウト・オブ・オーダー実行などは部分的に非ノイマン的であるといえる)。普通のハーバード・アーキテクチャなどを非ノイマン型とすることはまずない。さらに、再構成可能コンピューティング光コンピューティング量子コンピュータニューロコンピュータDNAコンピュータ等のより先進的な、新しい型の計算の実現法を意図して使われていると思われることもあり、「非ノイマン」という語だけでは具体的に何を意図しているかを推し量ることは不可能である。

データフロープロセッサの一例としては、NECのμPD7281(1984年、ImPP:Image Pipelined Processor)[6][7]がある。画像処理などへの応用を意図されており、非ノイマン型として言及がある[8]。後に、μPD7281を通常のメモリに接続するためのLSIとしてμPD9305[6]が製品化されている。

また、次のような要素なども、ノイマン型には含まないが、ノイマン型のモディファイの範囲内とみなし、ふつうノイマン型でないとはしない。

キャッシュ主記憶補助記憶のような、記憶階層

外部から直接、命令の実行順を変える割り込み

チャネル・コントローラDMAバスマスタリングなどによる、CPUを介さない、周辺機器や記憶装置の間の直接入出力



脚注[脚注の使い方]
注釈^ 『ウィルクス自伝』では、そういった主張をした人物としてハワード・エイケンを挙げている。

出典^ 岸 & 野田 2016, p. 43.
^ 『ウィルクス自伝』 p. 141
^ 『ACMチューリング賞講演集』 p. 234
^ ノーマン・マクレイ 『フォン・ノイマンの生涯』、紀華彦『計算機科学の発想』16章「ゲーデル数とプログラム内蔵方式」
^ 『電子計算機の発展過程』FUJITSU Vol. 16, No. 1, pp. 95?105(1965), 『池田記念論文集』pp. 170?182に再録
^ a b“ImPP”. st.rim.or.jp. ⇒http://www.st.rim.or.jp/~nkomatsu/nec/uPD7281.html 2020年10月4日閲覧。 
^ “Data flow chip ImPP and its system for image processing”. IEEE (ICASSP '86. IEEE International Conference on Acoustics, Speech, and Signal Processing). 2021年5月24日閲覧。
^“非ノイマン型データ駆動プロセッサImPPの開発 (NEC)”. shmj.or.jp. (2010年10月16日). ⇒http://www.shmj.or.jp/museum2010/exhibi704.htm 2020年9月26日閲覧。 

参考文献

ノイマンによる原稿は(列車の中で書かれたと伝えられる)手書きであり、タイプライタにより清書されたものはノイマンによるチェックを経ていない。スタンフォード大の Michael D. Godfrey によりプルーフリーディングされたバージョンがメンテナンスされており https://sites.google.com/site/michaeldgodfrey/other
から参照できる。このページからタイプライタ版をスキャンしたものも取得できる

岸 知二、野田 夏子『ソフトウェア工学』近代科学社、2016年。.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation.cs-ja1 q,.mw-parser-output .citation.cs-ja2 q{quotes:"「""」""『""』"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#3a3;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}ISBN 978-4-7649-0509-2。 

関連項目

プログラム内蔵方式

フォン・ノイマン・ボトルネック
.mw-parser-output .asbox{position:relative;overflow:hidden}.mw-parser-output .asbox table{background:transparent}.mw-parser-output .asbox p{margin:0}.mw-parser-output .asbox p+p{margin-top:0.25em}.mw-parser-output .asbox{font-size:90%}.mw-parser-output .asbox-note{font-size:90%}.mw-parser-output .asbox .navbar{position:absolute;top:-0.90em;right:1em;display:none}

この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めていますPJ:コンピュータ/P:コンピュータ)。
.mw-parser-output .hlist ul,.mw-parser-output .hlist ol{padding-left:0}.mw-parser-output .hlist li,.mw-parser-output .hlist dd,.mw-parser-output .hlist dt{margin-right:0;display:inline-block;white-space:nowrap}.mw-parser-output .hlist dt:after,.mw-parser-output .hlist dd:after,.mw-parser-output .hlist li:after{white-space:normal}.mw-parser-output .hlist li:after,.mw-parser-output .hlist dd:after{content:" ・\a0 ";font-weight:bold}.mw-parser-output .hlist dt:after{content:": "}.mw-parser-output .hlist-pipe dd:after,.mw-parser-output .hlist-pipe li:after{content:" |\a0 ";font-weight:normal}.mw-parser-output .hlist-hyphen dd:after,.mw-parser-output .hlist-hyphen li:after{content:" -\a0 ";font-weight:normal}.mw-parser-output .hlist-comma dd:after,.mw-parser-output .hlist-comma li:after{content:"、";font-weight:normal}.mw-parser-output .hlist-slash dd:after,.mw-parser-output .hlist-slash li:after{content:" /\a0 ";font-weight:normal}.mw-parser-output .hlist dd:last-child:after,.mw-parser-output .hlist dt:last-child:after,.mw-parser-output .hlist li:last-child:after{content:none}.mw-parser-output .hlist dd dd:first-child:before,.mw-parser-output .hlist dd dt:first-child:before,.mw-parser-output .hlist dd li:first-child:before,.mw-parser-output .hlist dt dd:first-child:before,.mw-parser-output .hlist dt dt:first-child:before,.mw-parser-output .hlist dt li:first-child:before,.mw-parser-output .hlist li dd:first-child:before,.mw-parser-output .hlist li dt:first-child:before,.mw-parser-output .hlist li li:first-child:before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child:after,.mw-parser-output .hlist dd dt:last-child:after,.mw-parser-output .hlist dd li:last-child:after,.mw-parser-output .hlist dt dd:last-child:after,.mw-parser-output .hlist dt dt:last-child:after,.mw-parser-output .hlist dt li:last-child:after,.mw-parser-output .hlist li dd:last-child:after,.mw-parser-output .hlist li dt:last-child:after,.mw-parser-output .hlist li li:last-child:after{content:")\a0 ";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li:before{content:" "counter(listitem)" ";white-space:nowrap}.mw-parser-output .hlist dd ol>li:first-child:before,.mw-parser-output .hlist dt ol>li:first-child:before,.mw-parser-output .hlist li ol>li:first-child:before{content:" ("counter(listitem)" "}.mw-parser-output .navbar{display:inline;font-size:75%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}.mw-parser-output .infobox .navbar{font-size:88%}.mw-parser-output .navbox .navbar{display:block;font-size:88%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:28 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef