
応用情報技術者試験を受けるので勉強した内容をこちらの記事にまとめていきます。
今回はCPUについてまとめました。
参考書籍としてきたみりゅうじさんの書籍がイラスト多めでわかりやすいので使っています。他にも書籍を使ったり、ググったりしてしてまとめているのでこの記事が応用情報技術者試験を受ける方のお役に立てればうれしいです。
ALU

CPUの内部にはALU(Arithmetic Logic Unit)という算術論理演算器が含まれています。
加算や減算、AND演算、OR演算、NOT演算などの論理演算を実行する回路となっています。
レジスタ

CPU内部にはデータや命令を一時的に記憶しておく回路がありそれをレジスタと言います。
レジスタには様々な種類がありそれぞれ役割が違います。
レジスタ名 | 説明 |
---|---|
プログラムカウンタ | 次に命令を取り出すアドレスを記憶する。 |
命令レジスタ | 取り出した命令を一時的に記憶する。 |
ベースレジスタ | プログラムの先頭アドレスを記憶する。 |
アキュムレータ | 演算対象、演算結果を格納する。 |
汎用レジスタ | 特に目的は定められてなく状況に応じて用途が変わる。(アキュムレータの代用など) |
命令の構成

CPU処理には「命令」というものがあります。
命令は「命令部」と「オペランド部」というものがあり命令部は実行させたい命令の種類のコード番号が入っており、オペランド部には処理となるデータのメモリアドレスなどが入っています。
命令の流れ
上記でレジスタについて説明したので次はレジスタが活躍する命令について説明していきます。
命令の流れはこちらの様になります。
- 命令の取り出し
- 命令の解読
- オペランド読み出し
- 命令実行
では1つずつ説明していきます。
①命令の取り出し
まず最初に命令の取り出しです。プログラムカウンタに記憶されたアドレスから命令を取り出します。命令が取り出されたら命令レジスタに記憶されプログラムカウンタの値が1つ上がります
②命令の解読
①命令の取り出しが終わったら次は②命令の解読です。取り出した命令を命令デコーダ(命令を解読し必要な装置に制御信号を送る)に渡し必要な装置に制御信号を送ります。
③オペランド読み出し
命令レジスタではオペランド部からメモリアドレスも算出できるので算出しオペランドを汎用レジスタ等に取り出します。
④命令実行
最後は命令実行です。取り出したデータを処理して処理した結果をレジスタに書きだして終了となります。
アドレス指定方式

命令の流れについて説明しましたが「③オペランド読み出し」ではオペランドを読みだす前にオペランドのメモリアドレスを算出していましたね。これには様々な方法があるので解説していきます。
即値アドレス指定方式
即値アドレス指定方式はオペランド部に対象データそのものが入っているためメモリの算出は行われません。
直接アドレス指定方式
直接アドレス指定方式はデータが入っているアドレスがオペランド部に示されています。例えばオペランド部に10番地と示されていればメモリの10番地の値を取り出します。
間接アドレス指定方式
間接アドレス指定方式はデータのアドレスが入っているアドレスを指定します。
少しややこしいのですが簡単にするとこんな感じです。
オペランドのメモリアドレスを参照メモリアドレスは10番地。
↓
10番地のアドレスには20重番地のアドレスが示されているので20番地を参照する。
↓
20番地にデータがある。
このように間接的にデータのありかを指定しています。
ベースレジスタ指定方式
こちらは命令中に指定されたアドレスとベースレジスタ(プログラムの先頭アドレスを記憶する。)に入っているアドレスを加算しアドレスを求めます。
次の記事はこちら↓↓
