基本情報技術者試験(FE) ~コンピュータシステム「コンピュータの構成要素(CPU)」~ 【第2回】

この記事は2013年5月31日に書かれたものです。内容が古い可能性がありますのでご注意ください。


コンピュータシステム

 

コンピュータの構成要素(CPU) その2

 

レジスタとは

 
レジスタとは,CPU内部にあり,CPUが処理を実行するために一時的にデータを格納しておくための小容量で高速なメモリ装置のことです。

四則演算や演算結果,実行中のメモリアドレスなどの処理に必要な数値の一時的な記憶場所として使います。役割によって,汎用レジスタやインデックスレジスタなどの名前が付いています。

あと,レジスタに記憶できる情報量が32ビットであるプロセッサを32ビットプロセッサ(32ビットCPU)と言います。また,この記憶できる量のことをレジスタ長(register length)といいます。
 

レジスタの種類

レジスタの種類には、以下のようなものがあります。
 

種類 内容
プログラムカウンタ(プログラムレジスタ) 次に実行される(フェッチされる)命令が格納されているメモリのアドレスが入っています。
このアドレスを用いることにより、用いるデータの有効アドレスを、命令のアドレスとの変位で指定することができます。
ベースレジスタ ベースとなる値を保持しているレジスタです。通常は、ベース値としてプログラムの先頭アドレスを設定しておきます。
インデックスレジスタ 例えば、データが配列などで、等間隔のアドレスに格納されている場合、その間隔値を格納するのに使われます。命令のアドレス部で配列の先頭のアドレスを指定すれば、インデクスレジスタの値を加えることにより、次の要素のアドレスを得ることができます。
通常は、汎用レジスタをインデックスレジスタとして用います。
汎用レジスタ 特定の機能に限定せず、多目的に使用されるレジスタです。アキュムレータとして演算に用いられるだけでなく、インデックスレジスタやベースレジスタとして用いられることもあります。
その他のレジスタ 命令レジスタ メモリからフェッチされた命令を格納
アキュムレータ 演算結果を一時的に格納
フラグレジスタ 演算結果の値である、正、0、負などを格納などがありますが、アドレス修飾には関係が少ないので省略します。

 

CPUの性能

 
CPUの性能を表す指標の1つに「MIPS(Million Instructions Per Second)」値があります。「MIPS」は、1秒単位当たりに実行可能な命令数を100万単位で表したものです。
「MIPS」の値は、「1命令の実行に必要な時間」がわかれば求めることができますが、これを求めるには、「クロック周波数」と「CPI」を知る必要があります。

①クロック周波数
クロック信号は、コンピュータ内部に設置されたは新規から発生する、電圧の工程が繰り返される信号です。CPUは、このクロック信号に同期して、命令を実行します。1秒間に発生するクロック信号の回数をクロック周波数を呼び、「Hz(ヘルツ)」の単位で表します。
1クロックにかかる時間は、クロック周波数から求まります。
 
kihon2-02-04
 
②CPI
「CPI(Cycles Per Instruction)」は、1命令の実行に必要なクロック数を表します。そのため、「CPI」が小さいほど1命令を短い期間で実行することができます。
「命令実行フェーズ」は、クロックに同期して次のステージへ移行します。よって、6ステージで命令を実行し終わる場合、「CPI」は「6」となります。
 
kihon2-02-05
 
③MIPS
1秒当たりの命令実行数は、1秒を1命令の実行時間を1秒で割れば、求まります。「MIPS」は、1秒間に100万命令を実行できることを表し、それを「1MIPS」としたものです。
 
kihon2-02-06
 

CPUのアーキテクチャ

 
コンピュータの処理速度を向上させるため、様々な技術が使用されています。「RISC」や「CISC」もその1つです。
現在のコンピュータは、集積回路を用いて作られており、その開発の方法に、「RISC」と「CISC」の2種類があります。
簡単な命令で構成し、ハードウェアを単純化して高速化を図ろうとするコンピュータのことを「RISC」といい、複雑な複雑な命令を1つの回路で構成するコンピュータのことを「CISC」といいます。

①RISC(Reduced Instruction Set Computer)
「RISC」は、「縮小命令セットコンピュータ」ともいいます。
「RISC」は、使用頻度の高い簡単な命令からなる命令セットのみを「VLSI(Very Large Scale Intergration)」にワンチップ化し、動作速度(マシンサイクル)の向上や命令の処理時間の短縮を図ることで高性能化しようとするコンピュータです。
パソコンやワークステーションと呼ばれるコンピュータの多くが、この考え方を取り入れています。
 
②CISC(Complex Instruction Set Computer)
「CISC」は、「複合命令セットコンピュータ」ともいいます。
「CISC」は、複雑な命令を「VLSI」でワンチップ化することで、全体として高性能化を図ろうとするコンピュータです。
汎用コンピュータは、ほとんどが「CISC」です。

「RISC」や「CISC」をまとめると、以下のような表にとなります。
 

RISC CISC
命令セット 単純な機能を持つ少数の命令 複雑な機能を持つ多数の命令
プログラムから生成される命令数 単純な命令の組み合わせになるので、命令数が多くなる 複合した機能が1命令になるので命令数が少ない
命令の長さ 固定長(オペランド個数も少ない) 可変長(長い)
演算装置での計算回路 ワイヤードロジック(結線論理) マイクロプログラム(ファームウェア)
パイプライン方式の適用性 クロック数が同じの命令が多いので採用しやすい 命令に要するクロック数が多様なので採用しにくい

 

CPUの高速化技法

 
CPUが1つの命令を順次処理する方式を「逐次制御方式」といいます。この場合、1つの命令を処理するには最低でも複数クロックが必要なので、「CPI」は「1」を超える値になります。「CPI」を減らすには、複数の命令の処理を同時並行に行う必要があります。この並列処理方式として、「パイプライン方式」と「スーパスカラ」があります。
 
kihon2-02-07
 
「パイプライン方式」では、1つの命令の実行を終える前に次の命令を先読みし、ステージをずらしながら並行して実行します。上の例では、「クロック2」で、命令①の「命令解読」ステージと命令②の「命令取出し」ステージが同時に実行されています。
「スーパスカラ」は、複数のパイプラインを同時に動かすため、さらに高速化できます。
 
kihon2-02-08
 

マルチコアプロセッサ

 
「マルチコアプロセッサ」は、1つのCPU内に複数のコア(演算回路の中核部分)を備えています。従来のシングルコアに比べて、消費電力を抑えながら、処理速度の高速化を図ることができます。
コアが2つのものを「デュアルコア」、4つのものを「クアッドコア」といい、それ以上のCPUも登場しています。
 

次回は、「コンピュータの構成要素(メモリ)」から説明していきたいと思います。

 

  • このエントリーをはてなブックマークに追加

PAGE TOP