【基本情報技術者試験対策】CPUの仕組みを図解で解説|命令実行サイクル・MIPS・FLOPS・RISC/CISC

基本情報技術者試験対策

基本情報技術者試験で頻出のCPUについて図解でわかりやすく解説します。

CPUの構成、命令実行サイクル、クロック周波数、MIPS・FLOPS、RISCとCISCの違いまで初心者向けに学べます。

コンピュータの基本構成

コンピュータは複数の装置が協力して処理を行う仕組みになっています。

コンピュータの五大装置とは

コンピュータの基本構成は「演算装置・制御装置・記憶装置・入力装置・出力装置」の5つです。

コンピュータの五大装置
装置名説明
演算装置(ALU)CPUの一部で、足し算・引き算・論理演算・シフト演算などを行う。加算器、論理回路
制御装置(CU)CPUの一部で、プログラムの命令を解釈し、演算装置や記憶装置を操作。命令デコーダ
記憶装置データやプログラムを保存RAM(メモリ)、HDD、SSD
入力装置データをコンピュータに読み込むキーボード、マウス
出力装置処理結果を外部に出力モニタ、プリンタ

CPUの構造と命令の流れ

CPUの構造

CPUの内部は大きく演算装置と制御装置に分かれています。

演算装置には、ALU(演算装置)と、汎用レジスタで構成されています。
制御装置には、プログラムカウンタ、命令レジスタ、デコーダー(命令解読器)で構成されています。

演算装置の構成

演算装置は主にALU、汎用レジスタで構成されています。

  • ALU
    演算を行う。
    (算術演算(加減乗除など)や論理演算(AND, OR, NOT など)を実行)
  • 汎用レジスタ
    ALUが演算をする値や演算結果を格納する。

制御装置の構成

制御装置は主にプログラムカウンタ、命令レジスタ、デコーダー(命令解読器)で構成されています。

  • プログラムカウンタ
    次に実行する命令が格納されている主記憶装置(メモリ)の番地を記憶する。
  • 命令レジスタ
    主記憶から取り出した命令を格納するレジスタ
  • 命令レジスタに格納された命令を解読し、制御信号を送る回路。

命令の流れ

CPUが命令を実行するときの流れを説明します。

命令やデータはメモリに格納されていますので、そこから実行に必要な命令を取り出します。

  • 命令取り出し(フェッチ)
    CPUのプログラムカウンタには次に実行する命令のメモリアドレスが入っています。
    命令取り出し(フェッチ)
    プログラムカウンタが指定するメモリ番地の命令を命令レジスタに記憶します。
    その後、プログラムカウンタには次の命令が格納されているメモリ番地をセットしておきます。
    命令取り出し(フェッチ
  • 命令解読
    命令解読器(デコーダ)が命令レジスタ内の命令を解読します。
    命令の種類が演算の場合はALUへ連携します。
    命令解読
  • オペランド読み出し
    命令レジスタは「オペランド部」というのがあります。
    オペランドとは、CPUが命令を実行するときの「対象となるデータ」や、「データの場所(メモリのアドレス)」のことです。
    この例ではオペランド「0001」はメモリアドレスを表しており、CPUは0001番地のデータを読み出します。
    オペランド部読み出し
  • 命令実行
    ALUが汎用レジスタのデータを使って演算を行い、演算結果を汎用レジスタへ記憶させます。
    命令実行

■CPUの命令について
命令は、大きくオペコード(命令)と、オペランドに分かれています。
例えばAとBを足す足し算の演算は、以下のようになります。
 ADD A,B
これを、オペコード(命令)と、オペランドに分解すると以下のようになります。
 ADD → オペコード(何をするか)
 A,B → オペランド(対象データ)

CPUの性能指標

クロック周波数とは

CPUが1秒間に実行できるクロック信号(動作のタイミングを刻む信号)の回数を表す指標です。
単位はHz(ヘルツ)で、一般的にはGHz(ギガヘルツ)が用いられます。

例えば、3GHzのCPUは1秒間に30億回のクロック信号を発生させます。
ただし、クロック周波数が高いほど必ずしも処理性能が高いとは限らず、CPUの構造や命令実行効率も性能に大きく影響します。

CPI(Clock Per Instruction)とは

1つの命令を実行するために必要な平均クロック数を表す指標です。

例えば、CPIが2の場合、1命令を実行するのに平均2クロック必要となります。

CPIの値が小さいほど効率よく命令を実行できるため、高性能なCPUであるといえます。


クロック周波数とCPIから実行時間を求める

CPU性能を評価する際には、クロック周波数と組み合わせて考えます。

【例題】:あるCPUのクロック周波数は2GHz、CPIは2である。実行する命令数は10億命令の場合の実行時間を求めよ。

 ・命令数は10億で、CPIは2(1命令あたり2クロック必要)なので、20億クロック必要
 ・CPUのクロック周波数は2GHz(20億)は、1秒間に20億クロックの性能
 ・よって実行時間は1秒である。

クロック周波数とCPIから実行時間を求める計算は、次の式を覚えておくとスムーズです。
CPU実行時間の式

MIPSとは

「Million Instructions Per Second」の略で、CPUが1秒間に何百万個の命令を実行できるかを表す性能指標です。

例えば、100MIPSは1秒間に1億命令を実行できることを意味します。

FLOPSとは

「Floating Point Operations Per Second」の略で、1秒間に実行できる浮動小数点演算(小数を扱う計算)の回数を表す指標です。

プロセッサの種類

CPUの設計思想には、大きく分けてCISCとRISCがあります。
CISCは1命令で複数の処理を行うことができ、RISCは単純な命令を組み合わせるというのが特徴です。

CISC(Complex Instruction Set Computer)

複雑な命令を数多く持つCPUで、1つの命令で複数の処理を実行できます。
IntelのCPUはCISCがベースです。

  • 1命令で複雑な処理が可能
  • 命令の種類が多い
  • プログラムサイズを小さくできる
  • CPU内部の構造は複雑
  • 消費電力が大きい

CISCの1文字目「Complex」は「複雑な」という意味なので、「CISC=複雑命令」と覚えるとよいです。

RISC(Reduced Instruction Set Computer)

単純な命令を少数持つCPUで、複数の命令を組み合わせて処理を実行します。

  • 1命令で実行する処理が単純
  • 命令の種類が少ない
  • 命令の実行速度が速い
  • CPU内部の構造が比較的単純
  • 消費電力が小さい

RISCの1文字目「Reduced」は「削減された」という意味なので、「RISC=命令を絞り込んだCPU」と覚えるとよいです。

パイプライン処理とは

CPUは通常、①命令を取り出す(フェッチ)→ ②命令を解読する(デコード)→ ③命令を実行する(実行)という順番で処理を行いますが、1つの命令が完了するまで次の命令を待っていると、CPUの処理能力を十分に活用できません。

そこで利用されるのがパイプライン処理です。
パイプライン処理では、複数の命令を異なるステージで並行して処理します。

パイプライン処理

試験では「1命令が3ステージで完了する命令が10命令ある。パイプライン処理した場合の処理サイクルはいくつか。」という内容で出題されることがあります。
下のように表を描いても良いですが、サイクル数は「 命令数 + 深さ(ステージ数) – 1」という式でも求めることができます。
パイプライン処理サイクルを求める

キャッシュメモリとは

CPUは非常に高速に処理を行いますが、主記憶装置(メモリ)はCPUよりも低速なので、CPUが主記憶へ頻繁にアクセスすると処理待ちが発生し、性能が低下します。

そこで、CPUと主記憶の間に配置される高速な記憶装置がキャッシュメモリです。

キャッシュメモリには、よく使用するデータや命令を一時的に保存しておきます。

CPUはまずキャッシュメモリを参照し、必要なデータがあれば高速に読み出します。

腕試し

腕試し(理解テスト)に挑戦する場合はこちらをクリック。

コメント

タイトルとURLをコピーしました