# ノイマン型コンピュータ ノイマン型コンピューターとは、現代のコンピューターのほとんどが採用している基本的な設計様式のことです。1946年にハンガリー出身の数学者ジョン・フォン・ノイマンが考案したことから、その名がつけられました。 主な特徴は以下の通りです。 1. **プログラム内蔵方式(ストアードプログラム方式)**: * プログラム(コンピューターに指示する命令の集合)とデータを同じ記憶装置(メモリ)に格納します。 * これにより、同じハードウェアで様々なプログラムを実行できる柔軟性と汎用性が高まりました。 * 現代のコンピューターがソフトウェアを入れ替えるだけで様々な用途に使えるのは、この方式のおかげです。 2. **逐次制御方式**: * 中央処理装置(CPU)が、記憶装置からプログラムの命令やデータを一つずつ順番に読み込み、実行していきます。 * 具体的には、「命令の取り出し」「命令の解読」「命令の実行」「結果の書き込み」といった一連の流れを繰り返します。 3. **主要な構成要素**: ノイマン型コンピューターは、主に以下の5つの要素で構成されています。 * **中央処理装置(CPU)**: コンピューターの「頭脳」にあたり、計算処理や制御、命令の実行を行います。 * **制御装置**: 命令の取得と実行を監督し、コンピューター全体の動作を管理します。 * **演算装置**: データに対して計算や論理演算を行います。 * **レジスタ**: 演算中に一時的にデータを保持するための高速な記憶領域です。 * **記憶装置(メモリ)**: データやプログラムを一時的に保存する「作業場」のような役割を果たします。主記憶装置(メインメモリ)などがこれにあたります。 * **入出力装置**: 外部の周辺機器(キーボード、マウス、ディスプレイなど)やユーザーとの間でデータのやり取りを行います。 * **補助記憶装置**: データやプログラムを永続的に保存するための装置です(ハードディスク、SSDなど)。 * **バス**: これらの各要素を結びつけ、データや命令をやり取りするための通路です。 **ノイマン・ボトルネック**: ノイマン型コンピューターの構造的な課題として、「ノイマン・ボトルネック」という問題があります。これは、CPUと記憶装置の間をつなぐバスのデータ転送速度が、CPUの処理速度に比べて遅いため、データのやり取りがボトルネックとなり、全体の処理速度に限界が生じる現象です。現代のコンピューターでは、キャッシュメモリの多段階化などによってこの問題が緩和されています。 まとめると、ノイマン型コンピューターは、プログラムとデータを同じメモリに格納し、CPUがそれらを順次実行していくことで動作するコンピューターの基本的な仕組みであり、現在普及しているほとんどのコンピューターに採用されています。 ## 5大要素 ![5大要素](./images/computer/five_major_elements.png) 「5大要素」という言葉は文脈によって様々な意味を持ちますが、前回のノイマン型コンピューターに関する質問から、コンピューターの主要な構成要素について尋ねられていると判断できます。 コンピューターの「5大要素」または「5大装置」とは、コンピューターが機能するために不可欠な以下の5つの要素を指します。 1. **入力装置(Input Unit)**: * 外部からのデータや命令をコンピューターに入力するための装置です。 * 例:キーボード、マウス、スキャナー、マイクなど。 2. **出力装置(Output Unit)**: * コンピューターが処理した結果や情報を、人間が認識できる形(視覚、聴覚など)で外部に出力するための装置です。 * 例:ディスプレイ、プリンター、スピーカーなど。 3. **記憶装置(Memory Unit / Storage Unit)**: * プログラムやデータを一時的、または永続的に保存するための装置です。 * CPUが直接アクセスする高速な「主記憶装置(メインメモリ)」と、大量のデータを保存する「補助記憶装置(ハードディスク、SSDなど)」があります。 * **主記憶装置(メインメモリ)** * 電気的にデータを記録するので高速ですが、電気で記録しているので、電源を切るとデータが消えてしまいます。 * **補助記憶装置(ハードディスク、SSDなど)** * 電源切ってもデータが保持できるよう記憶しておく装置で、主に磁気や光で記録を行います。外部記憶装置と呼ばれます。 * OSやアプリケーションなどの各プログラムは、電源を切っても消えないように、普段は 補助記憶装置(ハードディスク)に格納されていますが、実行時に主記憶装置(メモリー)に読み込まれ、CPUによってデータの処理が行われます。 4. **演算装置(Arithmetic Logic Unit: ALU)**: * 四則演算(足し算、引き算、掛け算、割り算)や論理演算(AND、OR、NOTなど)といった、あらゆる計算処理を行う装置です。 5. **制御装置(Control Unit)**: * コンピューター全体の動作を制御し、各装置間のデータの流れや命令の実行順序を管理する装置です。 * 入力装置からの命令を解釈し、記憶装置からデータを取り出し、演算装置に計算を指示し、出力装置に結果を出力させるといった、一連の処理を統括します。 現代のコンピューターでは、このうち「演算装置」と「制御装置」が統合されて「中央処理装置(CPU: Central Processing Unit)」と呼ばれ、コンピューターの「脳」として機能しています。