基本情報技術者

クロック周波数とMIPSがわかる【基本情報技術者試験対策】

2021年10月23日

今回のテーマはCPUの性能をあらわすクロック周波数とMIPSについてです。
まったくわからない・・・

問題

1GHzのクロックで動作するCPUがある。このCPUは,機械語の1命令を平均0.8クロックで実行できることが分かっている。このCPUは1秒間に平均何万命令を実行できるか。

ア:125 イ:250 ウ:80,000 エ:125,000

基本情報技術者令和元年秋期 午前問12

問題

動作クロック周波数が700MHzのCPUで,命令の実行に必要なクロック数とその命令の出現率が表に示す値である場合,このCPUの性能は約何MIPSか。

命令の種別 命令実行に必要なクロック数 出現率(%)
レジスタ間演算 4 30
メモリ・レジスタ間演算 8 60
無条件分岐 10 10

ア:10 イ:50 ウ:70 エ:100

基本情報技術者平成30年秋期 午前問9

基本情報技術者試験や応用情報技術者試験で出題されるクロック周波数やMIPS、命令ミックスの問題。過去問を見ると難しく感じる問題ですが、計算方法を知っていればそこまで難しい問題ではありません。

本記事では、「クロック周波数」「MIPS」「命令ミックス」について図解で分かりやすく解説していきます。

本記事で学べること

  • クロック周波数について理解する
  • MIPS、命令ミックスの計算方法を理解する
  • 基本情報技術者試験の過去問の解き方を学ぶ

クロック周波数

クロック信号とは

クロック信号(英:clock signal)とは、複数の電子回路が信号を送受信するタイミングを揃えるために、規則正しく刻まれる電気信号のことです。

コンピュータの各装置は、この「クロック」と呼ばれる周期的な信号にあわせて動作します。

クロック周波数

コンピュータの頭脳であるCPUもこの「クロック」にあわせて動作します。

スポンサーリンク

クロック周波数とは

クロック周波数(英:clock frequency)とは、CPUの性能をあらわすための指標値のひとつで、クロックが1秒間に繰り返される回数のことです。Hz(ヘルツ)という単位で表現します。

例えば、クロック周波数3HzのCPUというのは1秒間にクロックが3回、6HzのCPUは1秒間にクロックが6回繰り返されるという意味です。クロック周波数が高いと同じ時間内により多くの処理を行うことができます。

1周期の処理時間

MIPS(Million Instructions Per Second)

MIPS(読み:ミップス)とは、コンピュータの処理速度をあらわす単位のひとつで「1秒間に実行できる命令の数」をあらわしたものです。

  • Million(ミリオン):百万
  • Instructions(インストラクション):命令
  • Per(パー):「 / 」~あたり
  • Second(セカンド):秒

MIPSは「1秒あたりに実行できる百万単位の命令数」という意味であり、コンピュータの処理能力を示す単位です。例えば、3MIPS のコンピュータなら「3百万命令 / 秒」(1秒間で3百万命令を処理できる)の処理能力があるということです。

MIPSの計算例

MIPSは次の式で求めることができます。(※問題にCPU使用率の記載がない場合は100%として考える)

MIPSの公式

1 ÷ 平均命令実行時間(秒) × CPUの使用率

例えば「平均命令実行時間が2ナノ秒のコンピュータの性能は何MIPSか」という問題があるとします。2ナノ秒は2×10-9秒なので「1 ÷ (2×10-9)」の計算式でMIPSを求めることができます。(CPUの使用率は100%として考える)

1 ÷ (2 × 10-9)

= 500,000,000

= 500MIPS

※2ナノ秒は2×10-9秒

MIPSは百万単位であらわすので、最後に桁を百万単位にして「500MIPS」が答えです。

平均命令実行時間が2ナノ秒のコンピュータは、1秒間に500MIPS(500,000,000)の命令を処理できるということがわかりました。

スポンサーリンク

命令ミックス

命令ミックス(英:instruction mix)とは、コンピュータの処理能力を測定する際に用いる命令の組み合わせのことです。

コンピュータの処理能力はMIPSを使用することが多いが、実際には命令の種類によって所要時間は異なり、どの命令を実行するかによって計測値は変化します。

そこで用いられるのが命令ミックスです。命令ミックスというのは次の表のようによく使われる命令をひとつのセットにしたものです。

命令の種別命令実行に必要なクロック数出現率(%)
命令11060
命令2540

命令ミックスの計算例

平均命令実行時間から求める

例題1

表はあるコンピュータの命令ミックスである。このコンピュータの処理性能は約何MIPSか。

命令種類 実行速度(ナノ秒) 出現頻度(%)
命令1 10 60
命令2 5 40

上記のような問題は、次の式を使ってMIPSを求めます。

MIPSの公式

1 ÷ 平均命令実行時間(秒)

まずは、表から平均命令実行時間を求めます。

10 × 0.6 + 5 × 0.4

= 6 + 2

= 8ナノ秒

あとは「1 ÷ 平均命令実行時間(秒)」でMIPSを求めます。(MIPSは百万単位であらわすので、最後に桁を百万単位にする)

1秒 ÷ (8 × 10-9秒)

= 125000000

= 125MIPS

※8ナノ秒は8×10-9

平均命令実行時間MIPSを求めた時のイメージ例

1命令の平均実行時間が8ナノ秒のコンピュータが1秒間に実行できる命令の数は125MIPS(125000000回)と求めることができました。

平均クロック数から求める

例題2

クロック周波数が1GHzのCPUで,命令の実行に必要なクロック数とその命令の出現率が表に示す値である場合,このCPUの性能は約何MIPSか。

命令種類 実行時間(クロック) 出現頻度(%)
命令1 10 60
命令2 5 40

上記のような問題は、次の式を使ってMIPSを求めます。

1秒間に処理できる命令数の求め方

CPUのクロック周波数(Hz) ÷ 1命令に要する平均クロック数(クロック)

まずは、表から1命令に要する平均クロック数を求めます。

10 × 0.6 + 5 × 0.4

= 6 + 2

= 8クロック

あとは「CPUのクロック周波数(Hz) ÷ 1命令に要する平均クロック数(クロック)」でMIPSを求めます。(MIPSは百万単位であらわすので、最後に桁を百万単位にする)

109Hz ÷ 8クロック

= 125000000

= 125MIPS

※1GHzは109Hz

1命令に要する平均クロック数

平均クロック数からMIPSを求めた場合の例

クロック周波数が1GHz、1命令に要する平均クロック数が8クロックのCPUが1秒間に実行できる命令の数は125MIPS(125000000回)と求めることができました。

基本情報技術者試験 過去問の解説

スポンサーリンク

基本情報技術者令和元年秋期 午前問12

問題

1GHzのクロックで動作するCPUがある。このCPUは,機械語の1命令を平均0.8クロックで実行できることが分かっている。このCPUは1秒間に平均何万命令を実行できるか。

ア:125 イ:250 ウ:80,000 エ:125,000

基本情報技術者令和元年秋期 午前問12

1秒間に処理できる命令数は次の公式で求めることができます。

1秒間に処理できる命令数の求め方

CPUのクロック周波数(Hz) ÷ 1命令に要する平均クロック数(クロック)

設問では、CPUのクロック周波数が1GHz、平均クロック数が0.8クロックとなっているので、上記の公式にあてはめて計算します。(「このCPUは1秒間に平均何万命令を実行できるか」かと書かれているので、最後に桁を万単位にする)

109Hz ÷ 0.8クロック

= 1,250,000,000

= 125,000万

※1GHzは109Hz

「エ」の「125,000」が正解です。

基本情報技術者平成30年秋期 午前問9

問題

動作クロック周波数が700MHzのCPUで,命令の実行に必要なクロック数とその命令の出現率が表に示す値である場合,このCPUの性能は約何MIPSか。

命令の種別 命令実行に必要なクロック数 出現率(%)
レジスタ間演算 4 30
メモリ・レジスタ間演算 8 60
無条件分岐 10 10

ア:10 イ:50 ウ:70 エ:100

基本情報技術者平成30年秋期 午前問9

上記は命令ミックスの問題です。設問より「クロック周波数が700MHz」「命令実行に必要なクロック数」「出現率(%)」がわかっているので、次の式でMIPSを求めることができます。

1秒間に処理できる命令数の求め方

CPUのクロック周波数(Hz) ÷ 1命令に要する平均クロック数(クロック)

まずは、表から1命令に要する平均クロック数を求めます。

4 × 0.3 + 8 × 0.6 + 10 × 0.1

=1.2 + 4.8 + 1.0

=7クロック

あとは「CPUのクロック周波数(Hz) ÷ 1命令に要する平均クロック数(クロック)」でMIPSを求めます。(MIPSは百万単位であらわすので、最後に桁を百万単位にする)

(700 × 106) ÷ 7

=100,000,000

= 100MIPS

※700MHzは700 × 106Hz

「エ」の「100」が正解です。

helpful