- アーキテクチャの改善
- 原点
- 型番
- -中央処理装置(CPU)
- 論理演算ユニット
- コントロールユニット
- 記録
- -メモリ
- -入口出口
- - バス
- フォンノイマンアーキテクチャはどのように機能しますか?
- 検索する
- デコード
- 走る
- 在庫する
- ボトルネック
- 利点
- オペレーティングシステムの開発
- 短所
- 参考文献
ノイマン型は、コンピュータが現在行われているほとんどすべてのコンピュータの基礎となる、内部に格納されているプログラムを持つことができるように、理論的なデザインです。
フォンノイマンマシンは、算術論理演算ユニットと制御ユニットを含む中央処理装置と、メインメモリ、セカンダリストレージ、および入出力デバイスで構成されます。
出典:David strigoi-独自の作品、パブリックドメイン、commons.wikimedia.org
このアーキテクチャでは、すべての計算がメモリからデータを抽出して処理し、それをメモリに送り返すことを前提としています。
フォンノイマンアーキテクチャでは、同じメモリと同じバスを使用して、データとプログラムを実行する命令の両方を格納します。
アーキテクチャの改善
データメモリとプログラムメモリに同時にアクセスできないため、フォンノイマンアーキテクチャはボトルネックになりやすく、コンピュータのパフォーマンスが低下する傾向があります。これは、フォンノイマンボトルネックとして知られているもので、電力、パフォーマンス、およびコストが影響を受けます。
加えられた変更の1つには、実際にメモリに送信する必要があるデータの量と、ローカルに保存できるデータの量を再考することが含まれていました。
このように、すべてをメモリに送信する代わりに、複数のキャッシュとプロキシキャッシュにより、プロセッサチップからさまざまなデバイスへのデータの流れを減らすことができます。
原点
第二次世界大戦後の1945年、2人の科学者が独立して、より柔軟なコンピュータを構築する方法を提唱しました。そのうちの1人は数学者のアランチューリングで、もう1人は同様に才能のある科学者のジョンフォンノイマンでした。
英国のアランチューリングは、「巨像」コンピューターを使用して、ブレッチリーパークのエニグマコードの解読に関与していました。一方、アメリカ人のジョンフォンノイマンはマンハッタンプロジェクトで最初の原子爆弾の建設に取り組んでおり、手作業による大量の計算が必要でした。
それまでは、戦時中のコンピュータは、別のタスクを実行するためにマシン全体を再接続することにより、多かれ少なかれ「プログラム」されていました。たとえば、ENIACと呼ばれる最初のコンピューターは、再接続して別の計算を行うのに3週間かかりました。
新しいコンセプトは、メモリにデータを格納する必要があるだけでなく、そのデータを処理するプログラムも同じメモリに格納する必要があるというものでした。
この内部に格納されたプログラムアーキテクチャは、一般に「フォンノイマン」アーキテクチャと呼ばれます。
この斬新なアイデアは、このアーキテクチャを備えたコンピュータの再プログラミングがはるかに容易になることを意味しました。実際、プログラム自体はデータと同じように扱われます。
型番
フォンノイマンモデルの主な基盤は、プログラムがマシンの内部に格納されるという考えです。メモリユニットには、データとプログラムコードが含まれています。アーキテクチャの設計は、次の要素で構成されています。
出典:UserJaimeGallegoから-このファイルは、Von Neumann Architecture.svg、CC BY-SA 3.0、commons.wikimedia.orgから派生
-中央処理装置(CPU)
プログラムの命令の実行を担当するのはデジタル回路です。プロセッサとも呼ばれます。CPUには、ALU、制御ユニット、およびレジスタのセットが含まれています。
論理演算ユニット
アーキテクチャのこの部分は、データの算術演算と論理演算の実行にのみ関与します。
加算、乗算、除算、減算の通常の計算が利用できますが、「より大きい」、「より小さい」、「等しい」などのデータ比較も利用できます。
コントロールユニット
これは、コンピューターのALU、メモリ、および入力/出力デバイスの動作を制御し、メモリから読み取ったプログラムの命令にどのように作用するかを指示します。
制御ユニットは、データとプログラムをメモリとの間で移動するプロセスを管理します。また、プログラムの命令を一度に1つずつ、または順次実行します。これには、中間値を保持するレジスターのアイデアが含まれます。
記録
これらは、CPU上の高速ストレージ領域です。すべてのデータは、処理する前にレジスタに格納する必要があります。
メモリアドレスレジスタには、アクセスするデータのメモリ位置が含まれています。メモリデータレジスタには、メモリに転送されるデータが含まれています。
-メモリ
コンピュータには、データを保持できるメモリと、そのデータを処理するプログラムがあります。最近のコンピュータでは、このメモリはRAMまたはメインメモリです。このメモリは高速で、CPUから直接アクセスできます。
RAMはセルに分割されています。各セルは、アドレスとその内容で構成されています。アドレスは、メモリ内の各場所を一意に識別します。
-入口出口
このアーキテクチャでは、入出力デバイスを介して、人がマシンと対話する必要があるという考えを捉えることができます。
- バス
コンピュータのさまざまな部分の間で情報が流れる必要があります。フォンノイマンアーキテクチャのコンピューターでは、バスに沿ってデバイス間で情報が送信され、すべてのCPUユニットがメインメモリに接続されます。
アドレスバスは、プロセッサとメモリの間でデータではなくデータのアドレスを伝送します。
データバスは、プロセッサ、メモリ、および入出力デバイス間でデータを伝送します。
フォンノイマンアーキテクチャはどのように機能しますか?
フォンノイマンアーキテクチャに関連する原則は、データと命令の両方がメモリに格納され、同じように処理されることです。つまり、命令とデータは方向性を持っています。
「マシンサイクル」と呼ばれる、検索、デコード、実行、保存の4つの簡単なステップを使用して機能します。
命令はメモリからCPUによって取得されます。次に、CPUはこれらの命令をデコードして実行します。命令実行サイクルが完了した後、結果はメモリに戻されます。
検索する
このステップでは、命令はRAMから取得され、制御ユニットによるアクセスのためにキャッシュされます。
デコード
制御ユニットは、論理演算ユニットがそれらを理解できるように命令を解読し、次にそれらを論理演算ユニットに送る。
走る
算術論理装置は命令を実行し、結果をキャッシュに送り返します。
在庫する
プログラムカウンターが停止を示すと、最終結果がメインメモリにダウンロードされます。
ボトルネック
フォンノイマンマシンがメモリ内のデータを使用して操作を実行する場合は、バスを介してCPUに転送する必要があります。計算を実行した後、同じバスを介して結果をメモリに移動する必要があります。
フォンノイマンのボトルネックは、現在のメモリ操作が完了するまでの間、データの入力またはメモリからの削除が滞る必要がある場合に発生します。
つまり、プロセッサが計算を完了し、次の計算を実行する準備ができている場合、同じバスを使用するメモリから新しいデータを取得する前に、バスを占有する完了した計算をメモリに書き込む必要があります。
このボトルネックは時間の経過とともに悪化してきました。マイクロプロセッサの速度が向上している一方で、メモリがそれほど急速に進んでいないためです。
利点
-コントロールユニットは、メモリから同じ方法でデータと命令を取得します。したがって、制御ユニットの設計と開発が簡素化され、安価で高速になります。
-入力/出力デバイスとメインメモリからのデータは同じ方法で取得されます。
-メモリの編成は、すべてのメモリ容量を使用できるようにするプログラマによって行われます。
-単一のメモリブロックの管理は、より簡単で簡単に実現できます。
-アクセスされるメモリは1つだけなので、マイクロコントローラーチップの設計ははるかに単純です。マイクロコントローラの最も重要なことはRAMへのアクセスであり、フォンノイマンアーキテクチャでは、これはデータの保存とプログラム命令の保存の両方に使用できます。
オペレーティングシステムの開発
プログラムとデータに同じメモリを使用する主な利点は、プログラムをデータのように処理できることです。つまり、データが他のプログラムであるプログラムを書くことができます。
データが別のプログラムであるプログラムは、オペレーティングシステムにすぎません。実際、フォンノイマンアーキテクチャの場合のように、プログラムとデータが同じメモリ空間で許可されていなければ、オペレーティングシステムは決して開発されていなかったでしょう。
短所
長所は短所をはるかに上回りますが、問題は、メモリをプロセッサに接続するバスが1つしかないため、一度にフェッチできる命令またはデータ項目が1つだけであることです。
これは、データまたは命令が到着するまでプロセッサがより長く待機する必要があることを意味します。これはフォンノイマンボトルネックとして知られています。CPUはデータバスよりもはるかに高速であるため、アイドル状態になることがよくあります。
-命令が順次処理されるため、プログラムの並列実装は許可されません。
-メモリを共有することにより、プログラムのエラーにより、ある命令が別の命令に上書きされ、システムがクラッシュする危険性があります。
-一部の欠陥のあるプログラムは、使用後にメモリを解放できないため、メモリ不足のためにコンピュータがハングする可能性があります。
-データと命令は同じデータバスを共有しますが、それぞれを取得する速度は通常非常に異なります。
参考文献
- 半導体工学(2019)。フォンノイマンアーキテクチャ。取得元:semiengineering.com
- スコット・ソーントン(2018)。フォンノイマンアーキテクチャとハーバードアーキテクチャの違いは何ですか?マイクロコントローラのヒント。取得元:microcontrollertips.com。
- ICTを教える(2019)。フォンノイマンマシン。取得元:teach-ict.com。
- コンピュータサイエンス(2019)。フォンノイマンアーキテクチャ。取得元:computerscience.gcse.guru。
- C氏とITを学ぶ(2019)。フォンノイマンマシン。取得元:learnitwithmrc.co.uk。
- Solid State Media(2017)。コンピュータはどのように機能しますか?フォンノイマンアーキテクチャ。取得元:solidstateblog.com。