基本情報技術者〜CPU[4]〜



f:id:potato_head0809:20210116010233p:plain




こんにちは!ポテトヘッド(@potato_head0809)です!



前回はアドレスの指定方式について学びました。



まだ読んでいない方はぜびこちらからご覧になってください!



potato-head0809.hatenablog.com

今回は「CPUの性能」について触れていこうと思います!



何を基準に性能を評価しているのか。



そのような感じで学んでいきましょう!



CPUの性能指標



f:id:potato_head0809:20200711162408p:plain



上の図を見て、初めての方は何を言っているのか分からないでしょう。笑



これを理解できるようにしていこうと思います。



CPUの性能は「クロック周波数」や「CPI」「MIPS」などの



指標値を用いて評価されています。



CPUの性能が良い方が良いですよね?



性能が良いと、高速で処理能力が高くなります。



そこで比較するための指標値として、先程挙げたものが



使われているのです。



クロック周波数



コンピュータには様々な装置が入っているということを



学んだのを覚えていますか?



それらの装置がバラバラぶ動いていても、上手く動作できません。



そこで、「クロック」という周期的な信号に合わせて



動くようになっています。



図で表すとこんなものです。



f:id:potato_head0809:20200711163159p:plain



もちろんCPUもこのクロックに合わせて動きます。



このクロックですが、一周期の時間が短いほど



より多くの処理が可能になるということはイメージが持てますでしょうか。



下の図を参考にしてみてください!



f:id:potato_head0809:20200711163439p:plain




クロックが1秒間に繰り返される回数のことを



「クロック周波数」と言います。



では、「クロック周波数10GHzのCPU」の場合、



1秒間に何回繰り返されているか分かりますか?



正解は10億回です。



f:id:potato_head0809:20200711163940p:plain



ちなみに1Gは1,000,000,000回と変換されます。



この当たりの数字のことについて詳しく知りたい方は



調べてみてください...。



1クロックに要する時間



さて、先程は1秒間に何回繰り返されるのかについて



少しだけ触れました。



今からは、1回の振動にいくら時間を要するのかについて見ていきましょう!



f:id:potato_head0809:20200711164317p:plain



上記の場合だと、1クロックに要する時間は0.2秒です。



つまり、クロック周波数で秒数の1を割れば、答えが出てきます。



この時間のことを「クロックサイクル時間」と言います!

f:id:potato_head0809:20200711164525p:plain



CPI



では、CPIについて見ていきましょう!



CPIは「1命令あたり、何クロックサイクル必要か」を示すものです。



f:id:potato_head0809:20200711164821p:plain




このCPIと先程のクロックサイクル時間を利用して、



命令の実行時間を求めることが出来ます。



以下の図を参考にしてみてください。



f:id:potato_head0809:20200711164956p:plain



このあたりの数字の変換が私は苦手です...。





では続いては「MIPS」です。



MIPSは「1秒間に実行できる命令の数」を示すものです。



f:id:potato_head0809:20200711165205p:plain




例を挙げると、「1つの命令を実行するのに平均2ナノ秒必要です」



というようなCPUがあるとき、MIPSの値は以下のようになります。



f:id:potato_head0809:20200711165339p:plain




ここでも最後に桁合わせ...。笑



命令ミックス



では最後に命令ミックスについて触れていきます!



まず、CPUの基本的な命令実行手順があったのを覚えていますか??



そんな命令実行手順ですが、命令によっては必要の無い作業があったりします。



f:id:potato_head0809:20200711165530p:plain




この作業が必要無いということは...。



その命令の種類によって必要なクロックサイクル数が異なるということです。



「3クロックで終わる命令」もあれば、



「5クロックで終わる命令」もあります。



では、どの命令でMIPSの値を計算するのでしょうか。



そこで用いられるのが今回の「命令ミックス」です!



命令ミックスとは、よく使用される命令をセットにしたものです。



f:id:potato_head0809:20200711170131p:plain




それぞれが使われる頻度を元に



命令の実行に要する平均時間を求めたりします。



では、1GHzのCPUが以下のようなセットで出来ていた時の



MIPSの値はどのようになるのかを求めましょう。



f:id:potato_head0809:20200711170436p:plain




がっつり計算です。



しかし、理解できていれば、そんなに難しくない計算だと思います!



最後に。



お疲れ様でした。



今回は計算が多めに出てきましたね。



でも求めているものが分かっていれば慣れると思います。



クロック数からクロックサイクル時間を求めたり、



1命令あたりに必要なクロックサイクルを求めたり、



そして、1秒間に実行できる命令の数を求めたり...。



難しそうですね。



でも、コンピュータについて詳しく知りたいと思う気持ちがあれば



乗り越えられるはず!根拠はないですが!



最後までご覧頂きありがとうございました!



次回でCPU編はラストになると思います!



次回もよろしくお願いします!Twitter(@potato_head0809)もみてくださいね〜!