こんにちは。
今回はノイマン型アーキテクチャについて紹介します。
ノイマン型アーキテクチャにおいて、重要なパーツは以下の3つとなります。
・Control Unit(制御装置)
・Processing Unit(処理装置)
・Memory Unit(メモリ)
まず、Memory Unitについて紹介します。
Memory Unitはデータや命令を記憶するための場所で、データと命令は同じメモリに記憶されています。
ここで、データと命令を同じ装置にまとめてしまうと、サイズ(容量)が大きくなるし、大変ではないかと考える人が多いと思いますが、ノイマンはデータ・命令どちらでも利用できるメモリの意義を見出していました。
しかし、データと命令の共通化によって、フォン・ノイマン・ボトルネックが発生してしまいます。
フォン・ノイマン・ボトルネックは、ノイマン型アーキテクチャに存在する性能上のボトルネックです。
ノイマン型コンピュータは記憶装置に命令を格納するため、プロセッサ(Processing Unit)が命令を実行するには、パスを通して記憶装置にアクセスする必要があります。
したがって、プロセッサもしくは記憶装置のアクセス速度が遅ければ、コンピュータ全体のボトルネックとなってしまいます。
次にControl Unit(制御装置)について紹介します。
Control Unitは、メモリ上にあるプログラムの場所を示すプログラムカウンタと、実行する命令コードを保存しておく命令レジスタを内蔵しています。
これによってメモリで展開されているプログラムのどの部分を実行しているのか、また、実際にどんな命令を実行するのかをコントロールできるようになります。
ノイマンは、「命令」というものをコードと呼びました。
現代では命令はinstructionまたはorderと呼ばれています。
この命令コードはCPUに強く依存しており、この命令コードを集めた命令セット(Instruction set)は、x86などが有名です。
次にProcessing Unitについて紹介します。
Processing Unitは、四則演算や論理演算をするArithmetic/Logic Unit(算術論理ユニット)と、データに素早くアクセスするために少量のデータを置いておく
プロセッサレジスタを内蔵しています。
ここで、なぜ少量のデータを置くレジスタが必要になるのでしょうか?
メモリへのアクセス速度は、算術論理ユニットの計算速度と比較すると非常に遅いです。
計算をするたびにメモリに値を保存しにいくよりは、高速にアクセスできる記憶領域であるプロセッサレジスタを、Processing Unitの内部に作成したほうが、全体の計算時間が短くなり、効率が良くなります。
これら3つの装置は私たちが普段使っているコンピュータの性能に大きく関わっています。
いかがでしたか?
これらの記事を読むことでコンピュータに対する知識を深めて貰えば嬉しいです。
ここまで読んでいただき、ありがとうございました。