性能の役割


(2.1)はじめに

スループット: 一定時間内に終了した作業の総量

応答時間: 作業を開始してから終了するまでの時間であり、実行時間とも言う

 

(例題 P52)

 

マシン性能を検討するにあたり、主に応答時間に注目する。

あるマシンXの性能を以下に定義する(性能は実行時間の逆数)

性能x = 1/実行時間x

すなわち、マシンXはマシンYよりn倍速いとは、

性能x/性能y = n =実行時間y/実行時間x

 

(例題 P53)


(2.2)性能の測定

コンピュータの性能は実行時間で計測できる

応答時間(response time)、
経過時間(elapsed time)
タスク完了に要した時間
ディスクアクセス、メモリアクセス、I/O動作、OSのオーバーヘッド等
色々な時間が含まれる
CPU実行時間(CPU execution time)、
CPU時間(CPU time)
CPUが費やした時間であり、
入出力待ち時間や他のプログラムの実行時間は含まれない。
ユーザCPU時間(User CPU time) ユーザプログラム実行に費やされた時間
システムCPU時間(system CPU time) OSがユーザプログラムに代わって、タスクを遂行した時間

この本ではCPU性能とはユーザCPU時間を指す

 

マイクロプロセッサはクロックに基づいて動作を行う。

その時間間隔: クロック・サイクル時間(clock cycle time)、クロック周期(clock period)

その逆数を: クロック周波数(clock rate)といい、

1GHz Pentium4ではCPU内部のクロック周波数は1GHz=1000MHz、クロック周期は1nsである。


(2.3)測定基準同士の関係

ユーザと設計者がCPU性能を議論する場合、最終的な性能測定基準はCPU実行時間である。

最も、基本的な測定基準(クロック・サイクル数とクロック・サイクル時間)をCPU時間と関連づける公式を以下にしめす。

あるプログラムのCPU実行時間 = CPUクロック・サイクル数 X クロック・サイクル時間

あるプログラムのCPU実行時間 = CPUクロック・サイクル数 / クロック・サイクル周波数

 

(例題、P55)

 

この例題では命令の数には触れていないが、実行すべき命令数が増加すれば通常プログラム実行に必要なクロック・サイクル数は増加する。ここでCPIなる値を導入する。

CPUクロック・サイクル数=プログラム中の実行命令数 X 1命令当たりの平均クロック数(CPI)

 

(例題、P57)

以下の公式も便利

CPU時間 = 実行命令数 X CPI X クロック・サイクル時間

CPU時間 = 実行命令数 X CPI / クロック周波数

性能を決める要因 尺度
CPU実行時間 プログラムの実行にかかった時間 (秒)
実行命令数 プログラム内で実行された命令数
1命令当たりの平均クロック・サイクル数 (CPI)  平均クロックサイクル数/1命令
クロック・サイクル時間 秒/クロック・サイクル数

 

(例題、コード系列の比較、P59)


(2.7)誤診(まちがって信じ込む)、と落とし穴(うっかり間違う)

アムダールの法則(Amdahl's law)で有名である。

MIPS = 実行命令数 / (実行時間 X 1000000)
1秒当たりの命令実行数を100万単位で数えたもの
原始MIPS(native MIPS)とも言う


クイズ

1)演習問題2.1から2.5

宿題1

1)演習問題2.10から2.12

2)演習問題2.18から2.20

以上