この記事は、絵でわかる プログラムとは何か(1)~コンピューターの原理から~ の一記事です。
この記事は、メモリ からの続編です。
この記事のポイント
- 汎用的に使える、高機能になった集積回路をプロセッサと言う。
- プロセッサの中には、レジスタと言われる、小容量の超高速メモリが、いくつか入っている。
- 高機能なプロセッサの中には、マイクロプログラムと言われる複雑な処理に対応したマシンコードプログラムが組み込まれているものもある。
- 複雑な工程を担当する高機能かつ高性能のプロセッサをCPU(Central Processing Unit)と言う。
- 単純な工程を担当する低性能のプロセッサをコントローラー(controller)と言う。
レジスタ
メモリには、集積回路(同期回路)の一時的な入出力も記録しておくことができましたが、計算途中で、その前の計算結果をすぐ次の計算に使いたい場合にも、集積回路とメモリ間で、アドレス指定して入出力するのは、若干、無駄なやりとりです。
このため、集積回路の中にも、一時的に ON / OFF パターン を保持できる、より高速なメモリが入れられました。この集積回路内の高速メモリを レジスタ (register)と言います。
レジスタの主な目的は、集積回路が処理途中で一時的に使うデータの保持です。
よって、1つのレジスタに必要なデータ保持量は、せいぜい1バイト~数バイト程度です。
通常、集積回路内には、目的に応じた複数のレジスタが組み込まれ、それぞれ区別する名前も付けられています。
参照
レジスタの中には、処理に必要なデータが記録されているメモリアドレスを保持しておくことを目的とするレジスタもあります。
このように、メモリアドレスやレジスタ名を指定してデータの読み書きをさせることを参照と言います。
例えば、メモリアドレス参照のためのレジスタには、以下のような専用レジスタがあります。
- プログラムカウンタ[PC]
- 次クロックでプロセッサ入力されるオペコードのメモリアドレスを保持するレジスタ。
- スタックポインタ[SP]
- メモリ上のコールスタック領域のトップアドレスを保持するレジスタ。
- ベースポインタ[BP]
- 現在処理中のスタックフレームのベースアドレスを保持するレジスタ。
トップアドレス、スタックフレーム、ベースアドレスは、コールスタックの用語です。コールスタックについては、こちらを参照してください。
複雑な処理も可能に
プロセッサ
かつての集積回路は、論理回路でデータ(ON / OFF パターン)の簡単な変換だけをしていました。
しかし集積回路は進化しました。レジスタを持ち、あとで使うデータのメモリアドレスを保持し、分岐や反復を含む一連の複雑な工程(process: プロセス)も、処理できるようになりました。
こうして、汎用的に使える高機能の集積回路はプロセッサ(processor)と呼ばれるようになりました。
マイクロプログラム
高機能なプロセッサの中には、ワイヤードロジックだけでなく、複雑な処理をプログラミングしたマシンコードプログラムが、プロセッサ内部にあらかじめ記録されていて、外部からはそれを一つのオペコードで呼び出せるようにしているものもあります。これをマイクロプログラム方式と言います。
CPUとコントローラー
さらに、1つのコンピューターに二種類以上のプロセッサを入れ、計算処理などの複雑な工程と、入出力制御などの単純な工程で使い分ける構成も出てきました。この場合、複雑な工程を担当する高機能かつ高性能のプロセッサをCPU(Central Processing Unit)と言い、単純な工程を担当する低性能のプロセッサをコントローラー(controller)とも言います。
この記事のまとめ
プロセッサの中には、レジスタと言われる、小容量の超高速メモリが、少量、入っています。
高機能なプロセッサの中には、マイクロプログラムと言われる複雑な処理に対応したマシンコードプログラムが組み込まれたものもあります。
レジスタやマイクロプログラムが入り、高機能になった集積回路をプロセッサと言います。特に、複雑な工程を担当する高機能かつ高性能のプロセッサをCPU(Central Processing Unit)と言い、単純な工程を担当する低性能のプロセッサをコントローラー(controller)と言います。
以上で、絵でわかる プログラムとは何か(1)~コンピューターの原理から~ は終わりです。
次は、絵でわかる プログラムとは何か(2)~翻訳と管理のプログラム~ へ進みましょう。
コンピューターのしくみ全体を理解したい場合は、以下の2コースがお勧めです。
日本全国 オンラインレッスン にも対応しています。
知りたいことだけ単発で聞きたい場合は、 オンラインサポート をご利用ください。