基本情報のCPU性能計算|クロック周波数・MIPS・CPIの解き方

基本情報のCPU性能計算を学ぶためのCPUと学習机のイメージ

基本情報のCPU性能計算は、クロック周波数、CPI、MIPS、命令数、実行時間が一気に出てくるので、最初はかなり混乱しやすい分野です。公式を丸暗記していても、MHzをHzに直すところや、百万命令という単位を見落とすところで点を落としがちですね。

この記事では、基本情報で出やすいCPU性能計算を、式の意味から例題の解き方まで順番に整理します。クロック周波数とCPIから実行時間を出す問題、MIPSから命令数や処理時間を求める問題、命令ミックスを平均する問題まで、科目Aで迷わない形にしていきます。

この記事のポイント
  • クロック周波数、CPI、MIPSの関係がわかる
  • 実行時間と命令数を公式でつなげられる
  • MHz、GHz、ナノ秒、百万命令の単位換算で迷わない
  • 科目AのCPU性能計算を得点源にする順番がわかる
無料

基本情報技術者試験 過去問アプリ

本番形式で繰り返し解ける。スキマ時間に1問から

2,000問以上収録
無料で過去問を解く
目次

基本情報のCPU性能計算の基本

クロック周波数とCPIからCPUの実行時間を考えるイメージ

まず単位をそろえる

CPU性能計算で最初に見るべきなのは、公式そのものよりも単位です。基本情報の問題では、クロック周波数がMHzやGHzで与えられたり、1命令当たりの実行時間がナノ秒で与えられたり、命令数が「何百万命令」と書かれたりします。ここをそろえずに計算を始めると、式は合っているのに答えだけ一桁、二桁ずれることがあります。

たとえば、1GHzは1秒間に10億回のクロック、500MHzは1秒間に5億回のクロックです。ナノ秒は10億分の1秒なので、20ナノ秒は20×10のマイナス9乗秒になります。MIPSは「Million Instructions Per Second」の略で、1秒間に実行できる命令数を百万単位で表します。20MIPSなら、1秒間に2,000万命令を実行できるという意味ですね。

ここで大事なのは、単位を全部Hzや秒に直すか、最初から百万命令やナノ秒に合わせて計算するかを決めることです。どちらでも答えは同じですが、途中で単位の基準を変えるとミスが増えます。私は、基本情報の本番では「秒」「Hz」「命令数」に一度そろえてから、最後にMIPSへ直す方法が一番安定するかなと思います。

単位意味計算での扱い
1GHz1秒間に10億クロック1,000,000,000Hz
1MHz1秒間に100万クロック1,000,000Hz
1ナノ秒10億分の1秒0.000000001秒
1MIPS1秒間に100万命令1,000,000命令/秒

問題用紙の余白には、数値を代入する前に「MHzなら10の6乗」「GHzなら10の9乗」「MIPSなら百万命令」とメモしておくと、計算の方向を見失いにくくなります。

クロック周波数の意味

クロック周波数は、CPUが動くテンポを表す数値です。1GHzなら、1秒間に10億回のタイミング信号が刻まれるという意味です。ただし、クロック周波数が高いほど必ず処理時間が短くなる、とだけ覚えるのは危険です。なぜなら、1つの命令を実行するのに何クロック必要かが問題によって変わるからです。

基本情報のCPU性能計算では、「1命令の実行に平均4クロック必要」「命令Aは2クロック、命令Bは5クロック」のように、クロック数とセットで出題されることが多いです。このときは、クロック周波数だけを見て処理能力を判断するのではなく、何クロックで1命令が終わるのかを合わせて見ます。クロックが速くても、1命令にたくさんのクロックが必要なら、命令の処理速度は思ったほど速くなりません。

たとえば、500MHzのCPUで1命令に5クロック必要な場合、1秒間に使えるクロックは5億回です。1命令に5クロック使うので、実行できる命令数は5億÷5で1億命令になります。これをMIPSに直すと100MIPSです。ここまで分けて考えると、「クロック周波数 ÷ 1命令当たりのクロック数」で命令実行速度が出る理由が見えてきます。

クロックだけで判断しない

本番で「クロック周波数が高い方が必ず速い」と早合点すると、CPIや平均クロック数を見落とします。基本情報では、クロック周波数と命令当たりのクロック数をセットで処理するのが安全です。

CPUの分野は、計算だけでなく用語もつながっています。プロセッサ、主記憶、キャッシュ、バスなどの出題範囲はIPAのシラバスにも含まれるため、性能計算だけを孤立して覚えるより、コンピュータ構成要素の一部として整理すると理解が安定します。公式情報を確認したい場合は、IPAの試験要綱・シラバスも見ておくとよいですね。

CPIで実行時間を出す

CPIは「Cycles Per Instruction」の略で、1命令を実行するために平均何クロック必要かを表します。基本情報の問題文では、CPIという言葉の代わりに「1命令の実行に平均何クロックを要する」と書かれることもあります。言葉が違っても、考え方は同じです。命令数、CPI、クロック周波数がそろえば、プログラム全体の実行時間を求められます。

実行時間の基本式は、「命令数 × CPI ÷ クロック周波数」です。命令数にCPIを掛けると、プログラム全体で必要なクロック数が出ます。その必要クロック数を、1秒間に何クロック使えるかで割ると、何秒かかるかがわかります。式を丸暗記するより、「必要なクロック総数を、1秒当たりのクロック数で割る」と考える方が、ひっくり返しミスを防ぎやすいです。

例として、命令数が2,000万命令、CPIが4、クロック周波数が400MHzのCPUを考えます。必要なクロック数は2,000万×4で8,000万クロックです。400MHzは1秒間に4億クロックなので、実行時間は8,000万÷4億で0.2秒です。もしここで400MHzを400のまま使うと、単位が合わずに答えが崩れます。MHzのまま扱うなら、命令数も百万単位に寄せる必要があります。

項目使い方
命令数2,000万命令20,000,000
CPI4クロック/命令命令数に掛ける
周波数400MHz400,000,000Hz
実行時間0.2秒必要クロック数÷周波数

CPIの問題は「プログラム全体で何クロック必要か」を先に出すと安定します。命令数とCPIを掛ける順番を固定しておくと、式を逆にするミスが減ります。

CPU性能計算で単位換算ミスを防ぐための学習イメージ

MIPSの式を押さえる

MIPSは、1秒間に実行できる命令数を百万単位で表した値です。式で書くと、「MIPS = 1秒当たりの命令数 ÷ 1,000,000」です。CPU性能計算では、命令数と実行時間からMIPSを求める問題、MIPSから実行時間を求める問題、クロック周波数とCPIからMIPSを求める問題が出やすいです。

命令数と実行時間から求める場合は、まず1秒当たりの命令数に直します。たとえば、4,000万命令を0.5秒で実行するCPUなら、1秒当たりでは8,000万命令です。これを百万で割るので80MIPSになります。反対に、80MIPSのCPUが4,000万命令を実行する時間は、4,000万÷8,000万で0.5秒です。MIPSを命令/秒に戻す発想があれば、どちらの向きでも解けます。

クロック周波数とCPIからMIPSを出す場合は、「クロック周波数 ÷ CPI ÷ 1,000,000」と考えます。たとえば、400MHzでCPIが2なら、1秒当たりの命令数は4億÷2で2億命令です。2億命令は200百万命令なので、200MIPSです。ここでCPIを掛けてしまうと、命令1つに必要なクロックが増えるほどMIPSが大きくなるという変な結果になります。CPIは割るもの、と確認しておきましょう。

MIPSの基本式

MIPS = 命令数 ÷ 実行時間 ÷ 1,000,000。クロック周波数とCPIで考える場合は、MIPS = クロック周波数 ÷ CPI ÷ 1,000,000です。

基本情報では、MIPSという言葉だけを見ると難しく感じますが、実際には「百万命令/秒」という単位変換の問題です。英語の略語に引っ張られず、「秒あたり何百万命令か」を日本語で言い換えられれば、公式の意味もかなり楽になります。計算問題全体の考え方は、基本情報技術者試験の計算問題をまとめて攻略する記事でも整理しています。

命令ミックスを平均する

少し応用になるのが、命令ミックスの問題です。命令Aは2クロック、命令Bは4クロック、命令Cは8クロックというように、命令の種類ごとに必要クロック数と出現率が与えられます。この場合、いきなりMIPSを求めるのではなく、まず平均CPIを出します。平均CPIは、各命令のクロック数に出現率を掛けて合計します。

たとえば、命令Aが2クロックで50%、命令Bが4クロックで30%、命令Cが8クロックで20%出現するとします。平均CPIは、2×0.5 + 4×0.3 + 8×0.2 = 1.0 + 1.2 + 1.6 = 3.8です。ここまで出せば、あとは普通のCPI問題と同じです。クロック周波数が760MHzなら、MIPSは760÷3.8で200MIPSになります。MHzとMIPSはどちらも百万単位なので、この形なら百万の変換を省いて計算できます。

命令ミックスで注意したいのは、出現率を百分率のまま掛けないことです。50%は50ではなく0.5です。もし2×50のように計算すると、平均CPIが極端に大きくなり、MIPSがありえないほど小さくなります。選択肢を見て違和感に気づけることもありますが、本番では焦るので、出現率の表を見たら先に小数に直す癖をつけましょう。

命令必要クロック出現率平均への寄与
A250%1.0
B430%1.2
C820%1.6
合計100%3.8

命令ミックスは、平均CPIを作る問題です。平均ができたら、クロック周波数÷平均CPIで命令実行速度を出し、必要に応じてMIPSへ直します。

基本情報のCPU性能計算の解き方

MIPSと実行時間を比較しながら基本情報の計算問題を解くイメージ

問題文の数値を拾う

CPU性能計算を安定して解くには、問題文から数値を拾う順番を決めておくのが有効です。最初にクロック周波数、次にCPIまたは平均クロック数、次に命令数、最後に求めるものを確認します。この順番でメモすると、問題文が長くても必要な情報だけを切り出しやすくなります。選択肢を先に見ると、似た数値に引っ張られることがあるので、まずは条件を整理する方が安全です。

たとえば、「クロック周波数が800MHz、平均CPIが4、2,000万命令を実行する時間を求める」と書かれていたら、メモは「周波数800MHz、CPI4、命令数20百万、求めるものは秒」です。MHzと百万命令の組み合わせなら、800百万クロック/秒、20百万命令とそろえられるので、必要クロックは20×4=80百万クロック、実行時間は80÷800=0.1秒と短く処理できます。

このように単位をそろえてメモできると、計算量はかなり減ります。逆に、すべてをHzや命令数に直してから計算しても問題ありません。800MHzを800,000,000Hz、2,000万命令を20,000,000命令として、20,000,000×4÷800,000,000=0.1秒です。どちらのやり方でもよいので、自分が本番で間違えにくい形を固定しましょう。

STEP
周波数を確認する

MHz、GHz、ナノ秒のどれで与えられているかを最初に見ます。

STEP
CPIを確認する

平均クロック数、命令ごとのクロック数、出現率のどれが出ているかを見ます。

STEP
求める値を決める

MIPS、実行時間、命令数のどれを求める問題かを最後に確認します。

頻出パターン別の解法

基本情報のCPU性能計算は、出題パターンを分けるとかなり見通しがよくなります。1つ目は、クロック周波数とCPIからMIPSを求める問題です。これは「周波数÷CPI÷百万」で処理します。MHzで与えられていれば、MHzの数値をCPIで割るだけでMIPSになることが多いです。たとえば600MHzでCPIが3なら200MIPSです。

2つ目は、命令数と実行時間からMIPSを求める問題です。これは「命令数÷実行時間÷百万」です。6,000万命令を0.3秒で実行するなら、1秒当たり2億命令なので200MIPSです。3つ目は、MIPSと命令数から実行時間を求める問題です。これは、MIPSを命令/秒に戻してから、命令数÷命令/秒で求めます。200MIPSなら1秒当たり2億命令です。

4つ目は、命令ミックスから平均CPIを出して、そのあとMIPSや実行時間を求める問題です。このパターンだけは、表の処理が一段増えます。命令ごとの必要クロック数と出現率を掛けて平均CPIを作り、その平均CPIを使って通常の式へ進みます。問題文が長く見えますが、やっていることは「平均を作る」だけです。

パターン見る条件使う式
周波数とCPIMHz、GHz、CPIMIPS = 周波数÷CPI÷百万
命令数と時間命令数、実行時間MIPS = 命令数÷時間÷百万
MIPSと命令数MIPS、命令数時間 = 命令数÷命令/秒
命令ミックスクロック数、出現率平均CPIを先に作る

計算が苦手な人は、問題文を読んだ瞬間に公式へ飛びつかず、まずパターン名を決めると楽です。「これは平均CPIを作る問題」と言えた時点で、半分は解けています。

単位換算ミスを防ぐ

CPU性能計算で一番多いミスは、単位換算です。特に、MHzとMIPSを同じ「百万単位」として扱える場面と、Hzや秒へ直さないと危ない場面の区別がつかないと、選択肢で迷います。MHzは百万クロック/秒、MIPSは百万命令/秒なので、クロック数と命令数がうまく対応している問題では、百万単位のまま計算できます。ただし、ナノ秒やマイクロ秒が出てくるときは、秒へ直す方が安全です。

たとえば、平均命令実行時間が20ナノ秒のCPUのMIPSを求める問題を考えます。20ナノ秒は20×10のマイナス9乗秒です。1秒÷20ナノ秒で、1秒当たり5,000万命令を実行できるとわかります。これを百万単位に直すと50MIPSです。ここで20をそのまま使って1÷20=0.05のように処理すると、単位が完全にずれてしまいます。

もう1つの注意点は、MIPSをそのまま命令数として扱わないことです。100MIPSは100命令/秒ではなく、1億命令/秒です。命令数が5,000万命令で、CPUが100MIPSなら、実行時間は5,000万÷1億で0.5秒です。「MIPSの数値に百万を掛ける」と毎回書くのが面倒な場合でも、頭の中では必ず百万命令/秒に戻して考えましょう。

迷ったら秒に戻す

百万単位のまま計算できる問題もありますが、少しでも迷ったらHz、秒、命令数へ戻すのが堅実です。途中式は長くなりますが、単位の意味が崩れにくくなります。

単位換算に慣れるには、似た形式の問題を数問まとめて解くのが早いです。計算手順の型を増やしたい場合は、基本情報技術者試験のアプリ選びの記事を参考に、スマホで短い演習を回すのもよいですね。CPU性能計算は、1問に時間をかけるより、同じ型を繰り返して反射的に処理できる状態を目指す方が得点につながります。

科目Aでの得点戦略

CPU性能計算は、基本情報の科目Aで出ると差がつきやすいテーマです。暗記だけで解く用語問題とは違い、手順を知っている人は短時間で取れます。一方で、式の意味があいまいな人は、選択肢を見比べても判断できません。だからこそ、満点を狙うというより「出たら落とさない計算パターン」にしておく価値があります。

勉強順としては、まずMIPSの意味、次にクロック周波数とCPI、最後に命令ミックスの順番がおすすめです。いきなり命令ミックスの表を解こうとすると、MIPSとCPIの関係がまだ固まっていないため、どこで割るのか掛けるのかが曖昧になります。逆に、MIPSが「百万命令/秒」、CPIが「1命令に必要なクロック数」と言える状態なら、命令ミックスも平均CPIを作るだけになります。

本番では、CPU性能計算に時間を使いすぎないことも大切です。単位換算で詰まって2分以上止まるようなら、一度印をつけて次へ進む判断も必要です。ただ、過去問演習の段階では、途中式を省略しすぎない方が伸びます。なぜその式になるのかを言葉で説明できるようにしてから、計算速度を上げる順番が堅実です。

  • MIPSを百万命令/秒と言い換えられる
  • CPIは大きいほど1命令に時間がかかると理解している
  • 命令数×CPIで必要クロック数を出せる
  • 命令ミックスでは出現率を小数に直せる

科目A全体の勉強配分に迷う場合は、基本情報技術者試験の科目Aを効率よく攻略する勉強法も合わせて確認しておくと、CPU性能計算をどのくらい深掘りするか決めやすくなります。

計算問題を短時間で固めたいなら

CPU性能計算は、公式を読むだけより同じ型を何度も解く方が定着します。スキマ時間に少しずつ演習して、単位換算まで手を慣らしておきましょう。

過去問アプリで演習する →

まとめ

基本情報のCPU性能計算は、クロック周波数、CPI、MIPSの関係を一度つなげてしまえば、かなり機械的に解ける分野です。クロック周波数は1秒間に刻めるクロック数、CPIは1命令に必要なクロック数、MIPSは1秒間に実行できる百万命令数です。この3つを別々に暗記するのではなく、必要クロック数と命令実行速度の関係として整理しましょう。

実行時間を求めるときは、命令数×CPIで必要クロック数を出し、クロック周波数で割ります。MIPSを求めるときは、1秒当たりの命令数を出してから百万で割ります。命令ミックスが出たときは、命令ごとのクロック数と出現率から平均CPIを先に作ります。この順番を守れば、問題文が少し変わっても対応しやすくなります。

最後に、単位換算だけは丁寧に扱ってください。MHz、GHz、ナノ秒、MIPSは、どれも見慣れると簡単そうに見えますが、焦っているとズレやすいです。迷ったら秒、Hz、命令数へ戻す。慣れてきたら百万単位のまま短く計算する。この流れで練習すると、CPU性能計算は科目Aの取りやすい得点源になります。

CPU性能計算の結論

クロック周波数、CPI、MIPSは、単位をそろえて「必要クロック数」と「1秒当たりの命令数」に分解すれば解けます。公式暗記より、単位の意味を確認しながら例題を反復するのが近道です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次