![見出し画像](https://assets.st-note.com/production/uploads/images/164721691/rectangle_large_type_2_1ea3f757f52ec2dd967861fe1ed69a8b.png?width=1200)
クロック周波数 過去問を解いてみよう!
早速ですが、基本情報の問題を解いてみましょう。
![](https://assets.st-note.com/img/1733492278-agOvr1VhyPsEBNuAbdXYz3L5.png?width=1200)
クロックって何?から説明します。
クロック
コンピュータは『クロック』と呼ばれる周期的な信号に合わせて動きます。『1周期』=『1クロック』といいます。
![](https://assets.st-note.com/img/1733490698-EWg24z0lPqVBcZ6jtO5MSdhr.png?width=1200)
![](https://assets.st-note.com/img/1733490747-R6GYeyShsLzAtpD0vwIoZi52.png)
1秒あたりに波形(クロック)が何個あるかを示したのが『クロック周波数(Hz)』。
100MHzのCPUがあった場合、1秒間に100✖️10の6乗回です。
100✖️10^6 / s
クロックサイクル時間[s]
1クロックに要する時間が何秒かを表したのが『クロック時間』(または、クロックサイクル時間)。
1秒の中に、1クロックが何回あるかは、100MHzの場合、100✖️10の6乗回でした。100✖️10の6乗は1✖️10の8乗ですね。
![](https://assets.st-note.com/img/1733491339-fX8q6aDvchrij9Lgu41CmPtT.png)
1クロックにかかる時間は何秒でしょうか。
1秒を10の8乗で割って出します。
つまり
クロック周波数の逆数(10^8 / 1 をひっくり返して1/10^8とすること)で求めることができます。
ここで、1秒をナノ秒に変換します。
1秒=1000,000,000ナノ秒
ですから、
![](https://assets.st-note.com/img/1733494280-yjs7B3fGQ0XNZETnWIFMtH2l.png?width=1200)
命令の実行に必要なクロックサイクル数(CPI:Cycles Per Instruction)
命令 (Instructions)
1命令を実行するのに1クロックと決まっているわけではなく、5クロック必要だったり10クロック必要だったりします。
下の図では、「aの命令を実行するのに6クロックが必要」となります。
![](https://assets.st-note.com/img/1733492690-yzsbSiEYncAWU9wC5Xh0xuTp.png)
この設問では、「実行時間は何ナノ秒か?」を求めたいので
a-c-b-a-c-d
6+4+2+6+4+8=30
CPI=30とは、「命令を実行するのに30クロックが必要」ですので
「実行時間は何ナノ秒か?」は
30✖️10ナノ秒=300ナノ秒 答え エ 300
ここからは余談ですが、
1秒あたり何命令実行できるかを表した指標に
MIPS(Million Instructions Per Second)
があります。
1MIPSは『1秒に百万回命令が実行できる』
もしCPUが500 MIPSを達成できる場合、それは500百万、つまり5億回の命令を1秒で実行できることを意味します。
1命令を何秒で実行できるかを表した指標、平均命令実行時間 [s]は
MIPSの逆数で求めることができます。
500MIPSなら平均命令実行時間は、
1 / 500×10^6 = 2ns
まとめ
クロック周波数⇨1秒あたりのクロック回数
クロック周波数の逆数⇨クロックサイクル時間
CPI (Clock Per Instructions) ⇨1命令に必要なクロック数
MIPS(Million Instructions Per Second)⇨1秒あたりの実行命令数
MIPSの逆数⇨平均命令実行時間
いいなと思ったら応援しよう!
![ReturnToHome](https://assets.st-note.com/production/uploads/images/25663044/profile_d5791614c10cdeb23385c5ade4398ab2.jpg?width=600&crop=1:1,smart)