pafuイーランスクール 学んでできる

メニューへ戻る

CPU(コンピュータシステム)

学習のポイント

CPUは、コンピュータの「頭脳」に該当します。CPUがどのような手順で「命令」を実行していくかを理解し、その時の制御装置・演算装置の役割を理解しましょう。

●命令サイクル
1. 制御装置
下記がCPU「制御装置・演算装置」の概要図です。この図が説明できるようにしましょう。
制御装置の役割
主記憶装置にあるプログラムや命令を1個ずつ取り出して解読して他の装置を制御します。色々な種類の「レジスタ」があります。
※レジスタとは…データ・命令・主記憶装置のアドレスなどを格納する「高速小容量」の記憶素子。

デコーダ
機械語命令を解読して、その結果、他の装置へ制御信号を出します。
プログラムカウンタ(命令アドレスレジスタ)
現在のの命令の主記憶装置のアドレスか次の命令のアドレスを保持します。
命令レジスタ
主記憶装置から取り出した命令を格納するレジスタです。
メモリアドレスレジスタ
演算操作の対象となる主記憶装置のアドレスを保持するレジスタ
汎用レジスタ
演算で使用するデータを格納する汎用的なレジスタ。インデックスレジスタやベースレジスタなどの役割も担います。
インデックスレジスタ(指標レジスタ)
インデックスアドレス指定で使用する指標値を保持するレジスタ。
ベースレジスタ(基底レジスタ)
ロードしたプログラムの先頭アドレスを格納します。

2. 演算装置
演算装置は、制御装置から送られてくる制御信号に従い、四則演算論理演算を行います。

ALU(算術論理演算装置)
四則演算論理演算を行います。
アキュームレータ
演算の対象となるデータや演算結果を格納する専用のレジスタです。
フラグレジスタ
CPUが特定の命令を実行した後に自動的に付与される。主な値としては、桁あふれの発生に対して付けられる「OF」(オーバーフロー)や、演算結果がゼロになった場合に付けられる「ZF」(ゼロ)、同じく演算結果が負の値になった場合に付けられる「SF」(サイン)などがあります。

3. 命令語の構成
プログラムは、アルゴリズムに基づいて、プログラムを構成している命令語を1つずつ実行します。命令語のビット長には、CPUによって、32ビット長や64ビット長と固定と固定長です。
●命令語の構成
命令部 オペランド部(アドレス部)

命令部実行する操作
オペランド部(アドレス部)操作の対象となるデータのアドレスを示します。

4. アドレス指定方式
命令の対象となるデータが格納されているアドレスを「実効アドレス」を求めることです。通常は、何らかの操作を加えて実効アドレスとします。このように、命令のオペランド部にある操作を行って決定づけることを「アドレス指定(アドレス修飾)」と言います。以下の方法があります。
即値アドレス指定方式
オペランド部の内容が操作対象のデータとする方式。
直接アドレス指定方式
オペランド部が直接、実効アドレスとなる方式。
間接アドレス指定方式
オペランド部に指定したアドレスに格納している主記憶装置のデータを実効アドレスとする方式。
相対アトレス指定方式
オペランド部とプログラムカウンタの和を実効アドレスとする方式。
インデックス(指標)アドレス指定方式
オペランド部の内容とインデックレジスタの内容を加算したものを実効アドレスとする方式。この方法は主記憶上の連続した繰り返し処理に適しています。配列のインデックス操作など。
ベース(基底)アドレス指定方式
オペランド部とベースレジスタの内容の和を実効アドレスとする方式。
レジスタアドレス方式
指定されたレジスタの内容を操作対象のデータとする方式。
過去問題 平成27年春期
(解説)
アドレス部(オペランド部)が「20」で主記憶装置のアドレスの「20」値である「25」をアドレスとしている。よって、間接アドレス指定です。アが正解。
5. 命令の種類
比較命令
レジスタの内容と主記憶装置の内容との大小比較を行います。結果を「フラグレジスタ」へセットします。
分岐命令
プログラムカウントに任意の値を設定することにより、次に実行する命令を本欄の順番とは別のアドレスにある命令とすること。
シフト命令
レジスタの内容を指定したビット数分だけシフトさせる命令です。以下の種類があります。
シフト命令 内容
論理左シフト 3ビットシフトさせる場合、左3桁は捨てられ、右に「0」を補います
論理右シフト 3ビットシフトさせる場合、右3桁は捨てられ、左に「0」を補います
算術左シフト 3ビットシフトさせる場合、最上位ビットはシフトせず、それ以降の3ビットは捨てられ、右に「0」を補います。
算術右シフト 3ビットシフトさせる場合、右3桁は捨てられ、左は、最上位ビットはシフトせず、その他は、最上位ビットの値を補います。
回転シフト シフトを巡回していくような方法で行うものです。例を以下に示します。
・10110を右へ3ビット回転シフトすると、01101
・10110を左へ3ビット回転シフトすると、10101
※(ポイント)
左シフト」の場合は、nビットのシフトで、2nになる。
右シフト」の場合は、nビットのシフトで、2-nになる。
6. 命令の実行の流れ
命令は、「命令取出し段階」と「命令実行段階」に分けられます。これを「命令サイクル」と言い、それに要する時間を「サイクルタイム」と言います。命令は、以下の6ステージで実行されます。
命令取出し段階 命令実行段階
1. 2. 3. 4. 5. 6.
命令の取出し
(フェッチ)
命令の解読
(デコード)
実効アドレス計算 データの取出し 命令の実行 演算結果の格納
●命令実行の様子
1. 命令の取出し プロクラムカウンタが示すメモリ番地から命令を取り出し、命令レジスタへ格納する。
2. 命令の解読 命令レジスタの命令を解読する。
3. 実効アドレス計算 メモリからデータを取り出す場合、オペランド部から取り出し先のアドレスを求め、メモリアドレスレジスタへ格納します。
4. データの取出し メモリまたは、汎用レジスタからデータを取り出します。
5. 命令の実行 ALUが命令部の命令を実行します。
6. 演算結果の格納 実行結果をメモリまたはレジスタへ格納します。
※命令の対象となるデータは、「メモリから取り出す」か「レジスタから取り出す」かの2パターンがあります。
7. CPUの高速化技法
逐次制御方式」では、命令は1個ずつ実行されます。先行制御では命令の実行中に同時に他の命令を実行します。つまり、CPUの命令の高速化を行っています。これには以下の2種類があります。
パイプライン方式
1つの命令が実行を終える前に次の命令を先読みして、ステージをずらしながら並列に実行すること。これにより単位時間当たりの命令数(スループット)が増加します。
スーパースカラ方式
処理装置内部の構成要素を多重化して、複数のパイプラインのステージを用意する方式。
8. CPUのアーキテクチャ
CPUのアーキテクチャ(設計方針のこと)は、大きく分けて、「RISC」と「CISC」の2種類があります。
RISC
「RISC」とは、「縮小命令セットコンピュータ」とも言い、「命令を使用頻度の高い、単純な命令に限定して処理装置」です。「ワイヤードロジック方式」と言って「命令を解読する作業(デコード)をハードウェアで実現する」方式を取ります。命令語の長さは固定です。
CISC
「CISC」とは、「複合命令セットコンピュータ」とも言い、「複雑な命令を多く用意する処理装置」です。「マイクロプログラム制御方式」と言って「処理装置内に記憶されたマイクロプログラム(ファームウェア)を使用してデコードする」方式を取ります。これは、デコードはRISCより時間がかかりますが、以下の利点があります。
・命令語の長さは可変
・命令の種類を多くしやすい。
・新規に命令を追加しやすい。
・エミュレーション(他の処理装置の動作を真似ること)が可能。
9. CPUの並列処理
マルチプロセッサ
複数のCPUを使用して並行して処理を行うこと。
アレイプロセッサ
主記憶装置付きの多数のCPUを格子状に配置したもの。スーパーコンピュータで採用されています。
10. CPUの性能指標
クロック
クロック」とは、コンピュータ内部の動作のタイミングを取るために正確な周期的信号であるクロック信号を発生させる回路を言います。1秒間に発生するクロック信号の回数を「クロック周波数」と言い、HZ」が単位です。

1クロックの時間 = 1秒 ÷ クロック周波数

CPI
CPIとは、1命令の実行に要する平均クロック数を表します。

1命令の実行時間 = 1クロックの時間 × CPI

MIPS
1秒間に実行出来る命令数の平均を百万命令単位で表現したものです。例えば、「3MIPS」とは、1秒間に300万命令となります。

1秒あたりの命令実行数 = 1秒 ÷ 1命令の実行時間
MIPS = 1秒あたりの命令実行数 ÷ 106


過去問題 平成26年秋期
(解説)
クロック周波数が1GHzということは、1秒間に1×109回のクロックです。 1命令は0.8クロックですから、0.8で除算して
109 ÷ 0.8 = 109 × 1.25 回/秒
= 1250000000 回
= 125000 万回
となります。答えは、エです。
メニューへ戻る

pafuイーランスクール

pafuイーランスクール 学んでできる