1982年に発表したCPUのスピードを測るCPUBENCH
v0.980は、次のような内容でした。
・80X86系のCPU搭載マシンのスピードを測定します。
・CPU Type 表示を行う機能を追加しました。
・MS-DOS上でPC9801シリーズ(XA,LT含む)IBM-PC系(J3100,PS55Z etc.)
FM-R系(FM-R,TOWNS,松下製マシン)のマシンの計測を行なうことができます。
□テスト方法
のように表示されます。
Execute memory area: は,実行している測定ルーチンが存在するメモリアドレスを
示しています。
Ratio to the first PC9801:の数値は初代PC9801 に対するスピードを表します。
Execute time : は実行時間です。
□テスト内容
DHRYSTONE は整数演算と文字列演算を主体にしたベンチマークルーチンです。
CPUBENCHではこのDHRYSTONE を30000 回実行して計測を行なっています。
ただし,DHRYSTONE は Cコンパイラの性能等で大きく実行時間が変るため,そのま
までは純粋なマシンの性能を調べることができません。
(MicroSoft C Ver.60 では強度のオプティマイズを行なっているため,無駄だらけ
のDHRYSTONE では処理の一部をスキップしてしまうようです)
そこで,Borland C++ 2.0 (オプション -K -G )を使ってベンチマークルーチンの
部分のみをコンパイルして,アセンプラソースコードを出力させます。そのアセンブ
ラソースを参考にして,そのソースをハンドオプティマイズします。そして,ベンチ
マークルーチンを他のセグメントエリアに転送できるようコードをオフセット 0から
開始させデータとスタックもコードと同じセグメントに属するようにしてあります。
さらにベンチマークルーチン内でコールしている関数(strcoy,strcmp)を独自にア
センブラで作成して,ベンチマークルーチンのアセンブルソースの中に組込んでいま
す。ベンチマークルーチンのサイズは,コード+データ+スタックエリア=7208bytes
(1C28H)です。
これらのことを行なうことにより,マシン速度を測定するために必要なマシン命令の
集合したベンチマークルーチンを作成しています。