プロセッサの基礎まとめ【CPUの構造・性能・高速化・割込みまで解説】

プロセッサに関するブログのアイキャッチ画像 コンピューター構成要素
広告

 中央処理装置(CPU)は,コンピューターの中枢であり,基本情報技術者試験をはじめとする情報処理技術者試験で頻出の重要分野です。CPUの役割やしくみを,きちんと整理できていますか?

  • CPU=「制御装置+演算装置」で命令を実行する中枢装置

 このページは,初学者の方や,基礎を体系的に復習したい方に向けたまとめページです。

 後半には練習問題も用意しています。処理の流れを意識しながら理解を確認していきましょう。

  1. CPU(Central Processing Unit:中央処理装置)とは
    1. CPUの構成
      1. レジスタとは
      2. 練習問題
    2. 命令の形式(CPUが扱う命令)
    3. 命令実行の流れ
      1. 練習問題
    4. アドレス指定方式(実効アドレスの求め方)
      1. 即値アドレス方式とは
      2. 直接アドレス方式(絶対アドレス方式)とは
      3. 間接アドレス方式とは
      4. 相対アドレス方式とは
      5. インデックス(指標)アドレス方式とは
      6. ベース(基底)アドレス方式とは
      7. 練習問題
    5. CISCとRISC(命令セット設計)
      1. CISC(Complex Instruction Set Computer)とは
      2. RISC(Reduced Instruction Set Computer)とは
      3. CISCとRISCの比較
      4. 練習問題
    6. CPUの性能指標
      1. クロック周波数とは
      2. CPI(Clocks cycles Per Instruction)とは
      3. MIPS(Million Instructions Per second)とは
      4. FLOPS(FLoating point number Operations Per Second)とは
      5. 練習問題(CPU性能計算)
    7. CPUの高速化技術
      1. 逐次制御方式とは
      2. パイプラインとは
      3. スーパースカラとは
      4. VLIW(Very Long Instruction Word)とは
      5. マルチスレッドとは
      6. 練習問題
    8. マルチプロセッサ
      1. 密結合マルチプロセッサとは
        1. マルチコアプロセッサとは
      2. 疎結合マルチプロセッサとは
      3. 練習問題
    9. 割込み(処理中断の仕組み)
      1. 外部(ハードウェア)割込みとは
      2. 内部(ソフトウェア)割込みとは
      3. 練習問題
  2. GPU(Graphics Processing Unit)とは
  3. まとめ
    1. 基本情報技術者試験の学習におすすめの参考書
    2. 学習のお役に立ちましたら
広告

CPU(Central Processing Unit:中央処理装置)とは

 CPUはコンピューターの中心となる装置です。主記憶装置からプログラムを読み出して,各装置の制御や演算などを行います。CPUは,制御装置や演算装置,レジスタという超高速の記憶装置などで構成されており,キャッシュメモリを内蔵したものもあります。

※ キャッシュメモリ…レジスタよりは遅いが主記憶装置よりは速い記憶装置

CPUの構成

CPUの構造に関する説明画像
デコーダCPUで実行する命令の内容を解読し,レジスタやALU,周辺装置を制御する
ALU(算術論理演算装置)算術演算や論理演算を行う。加算器や論理演算回路などで構成されている
レジスタプログラムカウンター次に実行する命令のアドレス(主記憶装置内のデータの保存場所)を格納する
メモリアドレスレジスタ操作の対象となる命令や,読み書きするデータのアドレス(主記憶装置内のデータの保存場所)を格納する
命令レジスタ操作の対象となる命令の内容を格納する
汎用レジスタ演算に使用するデータなどを格納する。汎用的(自由)に使用することができる
バスデータバスデータを伝送するバス
コントロールバス各装置を制御する信号を伝送するバス
アドレスバス各装置やメモリーの場所を指示する情報を伝送するバス

レジスタとは

 レジスタとは,命令やデータ,アドレス(主記憶装置内のデータの保存場所)などを一時的に格納する小容量で超高速な記憶装置のことをいいます。CPUの構成によりレジスタの数や種類,容量は異なります。上記以外の主な装置やレジスタには,次のようなものがあります。

FPU(浮動小数点演算装置)浮動小数点数専用の演算装置
レジスタインデックス(指標)
レジスタ
アドレス(主記憶装置内のデータの保存場所)の基準値からの相対的な位置を示す値を格納する。インデックスレジスタの値を変化させることで配列の添字操作の処理ができる。汎用レジスタを転用することが多い
ベース(基底)レジスタプログラムの開始位置を格納する。プログラムを主記憶装置内の任意の位置に再配置するのに適している
スタックポインタスタックの最上段のアドレスを保持するレジスタ。スタック内で最後に参照されたアドレスを保持している。割込み時や,関数呼び出し時などに使用する

※ スタックとは,後入れ先出しの規則でデータを保持するデータ構造のことをいう

練習問題

 次の①~③について,レジスタ名を答えなさい。

① 次に実行する命令のアドレスを格納するレジスタ

② 実行中の命令の内容を格納するレジスタ

③ 主記憶装置のアドレスを保持するレジスタ

① プログラムカウンター

② 命令レジスタ

③ メモリアドレスレジスタ

ITエンジニアに必要な最新技術を学びたい方におすすめです。

命令の形式(CPUが扱う命令)

 CPUが実行する命令の形式は次のようになっています。

命令の形式の説明画像
命令部実行する命令の種類を格納
オペランド部実行する命令のアドレス(主記憶装置内のデータの保存場所)やデータを格納

命令実行の流れ

 命令の実行は,いくつかのステージに分けて行います。ステージとは,命令を機能ごとに分けた各段階のことをいい,命令の読み出しや,命令の解読,データの読み出し,命令の実行,実行結果の格納などがあります。

※ CPUの種類によりステージの数やその内容は異なる

 処理の流れは次のようになります。

CPUの処理の流れに関する説明画像

① 命令の読み出し(フェッチ)

 プログラムカウンターが示すアドレス(主記憶装置内のデータの保存場所)から命令を読み出し,命令レジスタへ格納する。

キャッシュメモリから命令を読み出すこともある。キャッシュメモリとは,CPUと主記憶装置の間(実際にはCPU内部)に置かれることのある高速な記憶装置である。主記憶装置から命令やデータを読み出す際に,その命令やデータをキャッシュメモリにも格納しておき,次に読み出す際にはキャッシュメモリにアクセスすることによりメモリアクセスを高速化する

② 命令の解読(デコード)

 命令レジスタの命令を解読する。

③ 実効アドレスの計算

 主記憶装置からデータを読み出す命令の場合,オペランド部から実効アドレス(主記憶装置内のデータの保存場所)を計算し,メモリアドレスレジスタへ格納する。

実効アドレスとは,対象のデータが存在するアドレス(主記憶装置内のデータの保存場所)のことをいう。詳細は後述

④ データの読み出し

 主記憶装置,または,汎用レジスタからデータを読み出す。

※ キャッシュメモリからデータを読み出すこともある

⑤ 命令の実行

 命令部に指定した命令をALUで実行する。

⑥ 実行結果の格納

 主記憶装置,または,レジスタへ実行結果を格納する。

※ キャッシュメモリを内蔵するCPUで主記憶装置に実行結果を格納する場合は,キャッシュメモリにも格納する

 具体的には,次のようになります。

CPUの処理の具体例に関する説明画像

少し難しいかもしれません。よく分からない場合は,そのまま先に進み,あとでじっくり読んでみてください。

練習問題

 次の①~⑤の処理を,命令実行の流れの正しい順に並べなさい。

① 命令の解読

② データの読み出し

③ 命令の読み出し

④ 実効アドレスの計算

⑤ 命令の実行

③ → ① → ④ → ② → ⑤

広告

アドレス指定方式(実効アドレスの求め方)

 主記憶装置にある命令やデータは,アドレス(主記憶装置内のデータの保存場所)を指定することによって読み出します。次に実行する命令のアドレスはプログラムカウンターが指定し,データのアドレス(実効アドレス)はオペランドの値から計算し求めます。

即値アドレス方式とは

 即値アドレス方式は,オペランド部にデータを格納する方式です。主記憶装置へのアクセスはありません。

即値アドレス方式の説明画像

直接アドレス方式(絶対アドレス方式)とは

 直接アドレス方式は,オペランド部に実効アドレスを格納する方式です。

直接アドレス方式の説明画像

間接アドレス方式とは

 間接アドレス方式は,オペランド部のアドレスに格納されたデータ(アドレス)を実効アドレスとする方式です。

間接アドレス方式の説明画像

相対アドレス方式とは

 相対アドレス方式は,オペランド部の値とプログラムカウンターの値を加算した値を実効アドレスとする方式です。プログラムを主記憶装置内の任意の位置に再配置するのに適しています。

相対アドレス方式の説明画像

インデックス(指標)アドレス方式とは

 インデックスアドレス方式は,オペランド部の値とインデックスレジスタの値を加算した値を実効アドレスとする方式です。

インデックスアドレス方式の説明画像

ベース(基底)アドレス方式とは

 ベースアドレス方式は,オペランド部の値とベースレジスタの値を加算した値を実効アドレスとする方式です。

ベースアドレス方式の説明画像

練習問題

 次の①~⑥について,アドレス指定方式の種類を答えなさい。

① オペランド部の値と,プログラムカウンターの値を加算して実効アドレスを求める方式は?

② オペランド部にデータを格納する方式は?

③ オペランド部の値と,ベースレジスタの値を加算して実効アドレスを求める方式は?

④ オペランド部に実効アドレスを格納する方式は?

⑤ オペランド部のアドレスに格納されたデータ(アドレス)を実効アドレスとする方式は?

⑥ オペランド部の値と,インデックスレジスタの値を加算して実効アドレスを求める方式は?

① 相対アドレス方式

② 即値アドレス方式

③ ベース(基底)アドレス方式

④ 直接アドレス方式(絶対アドレス方式)

⑤ 間接アドレス方式

⑥ インデックス(指標)アドレス方式

広告

CISCとRISC(命令セット設計)

 CPUには主に2種類のアーキテクチャがあります。

※ アーキテクチャとは,コンピューターシステムの論理的構造のことをいう

CISC(Complex Instruction Set Computer)とは

 CISCでは,演算や処理をマイクロプログラムの組み合わせによりソフトウェア的に実行します。そのため,1つの命令で複雑な処理を行うことができます。また,各命令の長さは可変長です。

※ マイクロプログラムとは,CPUに対する命令を分割した単純な命令のことをいう

RISC(Reduced Instruction Set Computer)とは

 RISCでは,演算や処理を論理回路によりハードウェア的に実行します(ワイヤードロジック方式)。一つひとつの命令は単純で,高速に実行できるよう設計されています。また,各命令の長さは固定長で,命令数は少なくなります。

CISCとRISCの比較

CISCRISC
処理マイクロプログラムの組み合わせによりソフトウェア的に実行ワイヤードロジック方式によりハードウェア的に実行
特徴1つの命令で複雑な処理を行うことができる1つの命令で単純な処理を行う
命令数多い少ない(通常100未満)
命令長可変長(16~64ビット)固定長(32ビット)
具体例

Intel(Core i7,celeronなど)
AMD(Ryzen 7など)

※ パソコンに使われることが多い

ARM

※ スマホやタブレット,組込みシステムに使われることが多い

練習問題

 次は,CPUのアーキテクチャに関する説明文である。(  )内に適語を入れよ。

① (  )では,演算や処理を(  )の組み合わせによりソフトウェア的に実行する。そのため,1つの命令で複雑な処理を行うことができる。また,各命令の長さは(  )長である。

② (  )では,演算や処理を(  )方式によりハードウェア的に実行する。一つひとつの命令は単純で,高速に実行できるように設計されている。また,各命令の長さは(  )長であり,命令数は少ない。

① CISC,マイクロプログラム,可変

② RISC,ワイヤードロジック,固定

広告

CPUの性能指標

クロック周波数とは

 クロック信号とは,一定時間ごとに電圧の高低が切り替わる信号のことをいいます。発信器により生成され,各回路が処理のタイミングを合わせるために使用します。
 クロック周波数とは,1秒間に発生するクロック信号の回数のことをいい,Hz(ヘルツ)という単位で表します。たとえば,クロック周波数が100Hzの場合,1秒間に100回のクロック信号が生成されます。また,1クロックにかかる時間は,クロック周波数の逆数になります。

1クロックに関する説明画像

例)クロック周波数が1GHzの場合,1秒間に109(=10億)回,信号が生成される

1クロックにかかる時間(秒)
  =1(秒)÷クロック周波数(Hz)
  =1÷109
  =10-9(=1ns)

※ Hz=1s (1クロックにかかる時間は,クロック周波数の逆数)

CPI(Clocks cycles Per Instruction)とは

 CPIとは,1つの命令を実行するのに必要なクロック数のことをいいます。

例)クロック周波数が1GHzでCPIが4の場合の,1命令の実行時間

1命令の実行時間(秒)
  =1クロックにかかる時間(秒)×CPI
  =1(ns)×4
  =4(ns)

※ CPIが小さいと1つの命令の実行時間も短くなる

※ 1クロックにかかる時間(秒)については上記参照

MIPS(Million Instructions Per second)とは

 MIPSとは,1秒間に実行できる命令数を100万単位で表したものをいいます。

例)クロック周波数が1GHzでCPIが4の場合の,1秒間に実行できる命令数

1秒間に実行できる命令数
  =1(秒)÷1命令の実行時間(秒)
  =1÷4(ns)
  =250(MIPS)

※ 1秒間に2億5千万命令実行できる

※ 1命令の実行時間(秒)については上記参照

FLOPS(FLoating point number Operations Per Second)とは

 FLOPSは,1秒間に実行できる浮動小数点数演算の回数を表します。3Dグラフィックスなどの性能指標として用いられます。

例)1GFLOPS=1秒間に10億回の浮動小数点数演算を実行できる

練習問題(CPU性能計算)

 クロック周波数が2.5GHzのCPUについて,各問いに答えなさい。

① 1クロックにかかる時間は何ナノ秒か。

② CPIが4の場合,1つの命令の実行時間は何ナノ秒か。

③ 1秒間に実行できる命令の数は何MIPSか。

① 1÷2.5(GHz)=0.4(ns)

② 0.4(ns)×4=1.6(ns)

③ 1÷1.6(ns)=625(MIPS)

高性能かつコストを抑えたい方におすすめです。Ryzen 5 PRO搭載で、ビジネスからクリエイティブ用途まで幅広く活躍します。
【Amazon売れ筋モデル】
GMKtec ミニPC M8
・Ryzen 5 PRO 6650H
・16GB LPDDR5
・512GB SSD
・3画面出力
・Wi-Fi 6E
最新CPU搭載モデルやお得なキャンペーンを実施中です。高性能ミニPCを探している方におすすめの公式ストアです。

CPUの高速化技術

 CPUを高速化するためには,クロック周波数を上げること以外に次のような技術もあります。

逐次制御方式とは

 逐次制御方式とは,各命令を1つずつ順に処理する方式です。

※ 逐次制御方式は高速化技術ではない

逐次制御方式の説明画像

パイプラインとは

 パイプラインの場合,ステージをずらしながら命令を実行します。CPIは1に近づきます。

パイプラインの説明画像

スーパースカラとは

 スーパースカラの場合は,パイプライン処理を行う回路を複数持ち,複数の命令を並行して実行します。CPIは1に近づきます。

スーパースカラの説明画像

VLIW(Very Long Instruction Word)とは

 VLIWとは,依存関係のない複数の命令を1つの命令にまとめ,同時に実行できるようにしたものをいいます。

マルチスレッドとは

 スレッドとは,プロセス(実行中のプログラム)内での命令の流れ(処理の実行単位)のことをいいます。シングルスレッドの場合は,1つのプロセスで1つのスレッドを動作させ,マルチスレッドの場合は,1つのプロセスで複数のスレッドを動作させます。

マルチスレッドの説明画像

練習問題

問1 CPUの高速化技術について,①~③に答えよ。

① 各命令のステージをずらしながら実行する方式は?

② ①の処理を行う回路を複数持ち,複数の命令を並行して実行する方式は?

③ 各命令を1つずつ順に処理する方式は?

① パイプライン

② スーパースカラ

③ 逐次制御方式(高速化技術ではない)

問2 マルチスレッドの説明文の(  )内に適語を入れよ。

 ( ① )とは,( ② )内での命令の流れのことをいう。シングル( ① )の場合は,1つの( ② )で1つの( ① )を動作させ,マルチ( ① )の場合は,1つの( ② )で複数の( ① )を動作させる。

① スレッド

② プロセス

マルチプロセッサ

 複数のプロセッサを同時に動かすことで高速化を図ります。複数の命令を並行して処理できるようになります。

密結合マルチプロセッサとは

 密結合マルチプロセッサとは,複数のプロセッサが主記憶装置を共有し,1つのOSで制御されるものをいいます。複数のCPUが同一のメモリ領域にアクセスした場合,競合によりアクセス遅延が発生します。

密結合マルチプロセッサに関する説明画像
マルチコアプロセッサとは

 マルチコアプロセッサとは,CPUのコアである制御装置と演算装置が,1つのCPUの中に複数あるものをいいます。密結合マルチプロセッサの一種で現在の主流です。

1コアシングルコア
2コアデュアルコア
4コアクアッドコア
6コアヘキサコア
8コアオクタコア

疎結合マルチプロセッサとは

 疎結合マルチプロセッサとは,複数のプロセッサがそれぞれ別々の主記憶装置を持ち,別々のOSのインスタンスにより動作するものをいいます。複数の独立したコンピューターがあるのと同じです。

※ インスタンスとは,あらかじめ定義されたコンピュータプログラムやデータを,主記憶装置に読み出して実行・処理できる状態にしたものをいう

疎結合マルチプロセッサに関する説明画像

練習問題

 次の①~③について,マルチプロセッサの種類を答えなさい。

① 複数のプロセッサがそれぞれ別々の主記憶装置を持ち,別々のOSのインスタンスにより動作するものを何というか?

② 複数のプロセッサが主記憶装置を共有し,1つのOSで制御されるものを何というか?

③ ②の一種で,CPUのコアである制御装置と演算装置が,1つのCPUの中に複数あるものを何というか?

① 疎結合マルチプロセッサ

② 密結合マルチプロセッサ

③ マルチコアプロセッサ(現在の主流)

広告

割込み(処理中断の仕組み)

 割込みとは,実行中の処理を中断させ,強制的に別の処理を実行させることをいいます。

割込みに関する説明画像

 同時に複数の割込みが発生した場合は,優先順位の高いものから実行されます。

外部(ハードウェア)割込みとは

 外部割込みとは,実行中のプログラム以外の外部の要因によって発生する割込みをいいます。ハードウェアの処理要求により引き起こされる割込みです。

機械チェック割込みハードウェアの異常が検出されたときに発生する割込み
タイマ割込み組込みタイマ(ハードウェア)による割込み
入出力割込みキーボードやマウスなど,入出力装置から行われる割込み

内部(ソフトウェア)割込みとは

 内部割込みとは,実行中のプログラム内部からの割込みをいいます。

プログラム割込み0による除算や,オーバーフローが起きたときなどに発生する割込み
SVC割込み実行中のプログラムからOSに処理を依頼するときに行われる割込み
ページフォールト割込み仮想記憶において,存在しない仮想記憶領域にアクセスしたときに発生する割込み

※ SVC…Super Visor Call。スーパーバイザコール

練習問題

 次の①~⑥について,各状況が発生した場合に起こる割込みはどれか。また,外部(ハードウェア)割込みか,内部(ソフトウェア)割込みかについても答えよ。

① 0による除算や,オーバーフローが起きたときなどに発生する割込みは?

② キーボードやマウスなど,入出力装置から行われる割込みは?

③ ハードウェアの異常が検出されたときに発生する割込みは?

④ 仮想記憶において,存在しない仮想記憶領域にアクセスしたときに発生する割込みは?

⑤ 組込みタイマによる割込みは?

⑥ 実行中のプログラムからOSに処理を依頼するときに行われる割込みは?

① プログラム割込み(内部割込み)

② 入出力割込み(外部割込み)

③ 機械チェック割込み(外部割込み)

④ ページフォールト割込み(内部割込み)

⑤ タイマ割込み(外部割込み)

⑥ SVC割込み(内部割込み)

GPU(Graphics Processing Unit)とは

 GPUとは,画像処理に特化したプロセッサです。3Dグラフィックスで座標変換やピクセル処理などを高速に処理するために使用されています。CPUに内蔵されていたり,拡張ボードに搭載されたりしています。

GPUの画像
ゲームも配信も快適!高性能パーツを搭載しながらコストを抑えた人気のゲーミングPCです。スタイリッシュなデザインと高い拡張性を兼ね備え,初めてのゲーミングPCにもおすすめです。
最新ゲームから動画編集まで幅広く対応できる高性能モデル。性能と価格のバランスが良く,長く使えるゲーミングPCを探している方におすすめです。
【Amazon人気モデル】
NEWLEAGUE ゲーミングPC
・Core i5-14400F
・RTX 5060 8GB
・メモリ16GB
・SSD 1TB
・Windows 11 Pro

まとめ

 今回は,プロセッサについて,全体像を意識しながらシンプルにまとめてみました。内容が多く,難しく感じる部分や覚えることも多かったかもしれません。一度で完璧に理解するのは難しいですので,分からないところがあれば,時間をおいて何度でも読み返してみてください。プロセッサは,試験で頻出の重要分野です。避けて通ることはできませんが,少しずつ理解を積み重ねていけば必ず身につきます。根気よく頑張っていきましょう。

 プロセッサの理解を深めるには,メモリーやシステム全体との関係をあわせて押さえることが重要です。

 理解が進んだら,基本情報技術者試験の過去問題等にもチャレンジしてみてください。

 また,コンピューター全体のつながりや性能評価の考え方を整理したい方は、こちらも確認しておきましょう。

※ このページでは読みやすさを考慮し「コンピューター」,「サーバー」など長音付きで表記していますが,試験では「コンピュータ」,「サーバ」と表記されます

基本情報技術者試験の学習におすすめの参考書

基本情報技術者試験の合格を目指す方におすすめの参考書です。

令和08年 イメージ&クレバー方式でよくわかる かやのき先生の基本情報技術者教室
基礎理論からコンピュータ・ネットワーク・データベースまで、基本情報技術者試験の全範囲をわかりやすく学べる定番テキストです。図解が豊富で、初学者にもおすすめです。

キタミ式イラストIT塾 基本情報技術者 令和08年
イラストを使った解説が特徴の人気参考書です。基礎理論の考え方や計算問題もイメージで理解しやすく、独学学習との相性が良い一冊です。

令和08年 基本情報技術者 合格教本
試験範囲を体系的に学習したい方におすすめの教科書です。基礎理論の各テーマも丁寧に解説されており、理解を深めながら学習を進められます。

学習のお役に立ちましたら

この記事が少しでも学習のお役に立ちましたら,今後も分かりやすい解説や学習コンテンツを継続してお届けする励みになります。

よろしければ、このサイトを応援いただけますと嬉しいです。

※OFUSEは,クリエイターやコンテンツ制作を直接支援できるサービスです。

広告