2015年7月に投稿した記事

CPUBENCH v.99

Software Design 2015年8月号の「ITむかしばなし」で紹介しました。
CPUBENCH02
1996年の段階でv.98はCPUの速度の変化に追いつかなくなっていました。
前ページで紹介したZOB/Vプロジェクトで使えるように v.99を作成し、ZOB Station BBS(1992~2013)でこじんまりと公開していました。

□プログラム内容
cpubench v.0.98 を発表してから4年の歳月が経過しようとしています。
そのように古いソフトウェアでは、最新のマシンのスピードを測定するのには限界が生じています。

○v0.99とv0.98の違い
・測定タイムが100倍の精度。
・最新のcpuを判別できる。
・メインルーチンを Boralnd C++ から Visual C++ 1.51に変更
測定ルーチンはアセンブラのため変更なし。
・AT互換機のチェック機能を強化。

再びこじんまりと公開します。

CPUBENCH v.990c

16ビットプログラムを実行できる環境でないと、動作は厳しいと思います。

CPUBENCHの結果 1992年当時

CPU スピードレース 結果 1992 1/19

Machine CPU CLOCK Ratio PC9801 Execute time
1 VEGA 486AT 80486DX 50MHz 63.98 1.08
2 PC-98RA21改
Turbo486DX改
80486DX 40MHz 46.06 1.5
3 Qualest 486DX/33 80486DX 33MHz 44.29 1.56
4 COMPAQ SYSTEMPRO
Model510
80486DX 33MHZ 42.91 1.61
5 COMPAQ DESKPRO
486/33L
80486DX 33MHz 42.65 1.62
6 HITACH FLORA 3020 80486DX 33MHz 39.94 1.73
7 PC-H98 modelU90改 80486DX 33MHz 38.38 1.8
8 if-486 VX520 80486DX 33MHz 38.17 1.81
9 PC-98DA2改 Turbo486DX 80486DX 32MHz 36.75 1.88
10 PC-98RA2改 Turbo486DX 80486DX 32MHz 35.98 1.92
11 FMR-80HL1 80486DX 25MHz 31.12 2.22
12 PC-H98 model90 Normal 80486SX 25MHz 30.57 2.26
13 PC-H98 model100
Normal
80486DX 25MHz 30.57 2.26
14 PC-H98S8改 80486SX 24MHz 29.4 2.35
15 FMR-80HE1 80486SX 20MHz 24.85 2.78
16 PC-H98S8 80486SX 20MHz 24.5 2.82
17 Acer 1100/33 80386DX 33MHz 24.33 2.84
18 PC-H98model70 Normal 80386DX 33MHz 23.18 2.98
19 PC-H98model80 Hires 80486SX 16MHz 20.2 3.42
20 PC-H98model80 Normal 80486SX 16MHz 20.02 3.45
21 DAISIN DS386/25 80386DX 25MHz 17.4 3.97
22 FMR-70HX3 80386DX 25MHz 17.31 3.99
23 PC-H98 model60 80386DX 33MHz 17.06 4.05
24 J-3300/50 80386DX 25MHz 16.29 4.24
25 J-3100SGX101T 80386DX 20MHz 14.15 4.88
26 Canon AXi DX-20 80386DX 20MHz 14.04 4.92
27 PC-9801RA21 80386DX 20MHz 13.49 5.12
28 PC-386STD 80386DX 20MHz 13.49 5.12
29 PC-9801DA 80386DX 20MHz 13.49 5.12
30 PC-386GS5 Normal 80386DX 20MHz 13.46 5.13
31 PC-386V 80386DX 20MHz 13.46 5.13
32 PC-386GS 80386DX 20MHz 13.44 5.14
33 PC-386GS5 Hires 80386DX 20MHz 13.44 5.14
34 PC-386S-UST 80386DX 25MHz 13.33 5.18
35 PC-386S 80386DX 25MHz 13.33 5.18
36 Compaq SLT386s/20 80386SX 20MHz 12.94 5.34
37 PowerMate SX/20 80386SX 20MHz 12.47 5.54
38 PC-9801NC 80386SX 20MHz 12.16 5.68
39 PC-98RL2 Hires 80386DX 20MHz 11.85 5.83
40 PC-98RL2 Normal 80386DX 20MHz 11.85 5.83
41 Acer 1120SX 80386SX 20MHz 11.73 5.89
42 PC-9801T modelF5 80386SX 20MHz 11.4 6.06
43 PS/55 model 5545TOB 80386DX 20MHz 11.38 6.07
44 IBM PS55
model5551-T1A
80386DX 20MHz 11.34 6.09
45 IBM 5530T 80386DX 20MHz 11.32 6.1
46 IBM PS/2 model70 80386DX 20MHz 11.29 6.12
47 PC-9801NS改20MHz 80386SX 20MHz 11.25 6.14
48 FMR-50TX 80386DX 20MHz 10.35 6.67
49 FMR-70HX2 80386DX 20MHz 10.32 6.69
50 PC-286VX 80286 20MHz 10.17 6.79
51 SANYO MBC-18TJH 80386DX 20MHz 10.1 6.84
52 PC-98XL^2改20MHz
Normal
80386DX 20MHz 10.01 6.9
53 J-3100SX001P 80386SX 20MHz 9.95 6.94
54 J-3100GT-SX041 80386SX 20MHz 9.58 7.21
55 if-386AX51L 80386DX 16MHz 9.16 7.54
56 PC-9801RA2 80386DX 16MHz 9.12 7.57
57 CompuAdd 386DX/16 80386DX 16MHz 9.09 7.6
58 PC-9801DS 80386SX 16MHz 9.02 7.66
59 PC-9801CS 80386SX 16MHz 9.02 7.66
60 PC-9801ES 80386SX 16MHz 9.02 7.66
61 COMPAQ DESKPRO 386/25 80386DX 25MHz 8.97 7.7
62 PC-9801NS改16MHz 80386SX 16MHz 8.97 7.7
63 FM-TOWNS 2F Wait
cancel
80386DX 16MHz 8.89 7.77
64 SANYO MBC-18JH40B 80386DX 16MHz 8.88 7.78
65 PC-9801RS21 80386SX 16MHz 8.83 7.82
66 PC-386book L 80386SX 16MHz 8.8 7.85
67 PC-386M 80386SX 16MHz 8.8 7.85
68 PC-386LS 80386SX 16MHz 8.8 7.85
69 PC-386LS 80386SX 16MHz 8.8 7.85
70 PC-386VR 80386SX 16MHz 8.8 7.85
71 PC-9801VM2改 CUBE386 80386SX 16MHz 8.62 8.01
72 FMR-50Λ 80386DX 16MHz 8.52 8.11
73 PC-386NOTE A 80386SX 16MHz 8.48 8.14
74 PC-386GE 80386SX 16MHz 8.46 8.16
75 PC-386P 80386SX 16MHz 8.31 8.31
76 PC-286VS 80286 16MHz 8.24 8.38
77 PC-286X 80286 16MHz 8.2 8.42
78 PC-286VG 80286 16MHz 8.2 8.42
79 PC-98XL^2 Normal 80386DX 16MHz 8.14 8.48
80 PCX-300 Quarter L 80386SX 16MHz 7.95 8.69
81 J-3100SX001 80386SX 16MHz 7.93 8.71
82 PS/55 model 5535S04 80386SX 16MHz 7.87 8.77
83 PC-9801NS/E 80386SX 16MHz 7.86 8.79
84 FM-TOWNS model2 B
mode
80386DX 16MHz 7.64 9.04
85 FMR-50NBX 80386SX 16MHz 7.61 9.07
86 PC-98DO+ V33A 16MHz 7.46 9.26
87 PS/55note 5523SJ4 80386SX 12MHz 7.11 9.71
88 PC-9801DX 80286 12MHz 7.08 9.75
89 PC-9801LX5 80286 12MHz 7.07 9.76
90 PC-9801RX2 80286 12MHz 7.07 9.76
91 PC-9801EX 80286 12MHz 7.07 9.76
92 PC-9801RX21 80286 12MHz 7.07 9.77
93 PC-9801VX21改 386SXGT 80386SX 16MHz 6.91 9.99
94 PC-286VF 80286 12MHz 6.86 10.06
95 PC-9801VX2改386SXGTmark2 80386SX 16MHz 6.86 10.07
96 PC-9801NS 80386SX 12MHz 6.82 10.12
97 EPSON 286book 80286 12MHz 6.7 10.3
98 PC-286VE 80286 12MHz 6.63 10.41
99 SANYO MBC-17JH20 80286 12MHz 6.06 11.39
100 FMR-50HX 80286 12MHz 5.84 11.83
101 FMR-50FX 80286 12MHz 5.84 11.83
102 FMR-60HX 80286 12MHz 5.82 11.86
103 PC-9801UX21 80286 10MHz 5.69 12.14
104 PC-9801VX21 80286 10MHz 5.69 12.14
105 PC-286V 80286 10MHz 5.39 12.81
106 PC-9801NV V30HL 16MHz 5.26 13.12
107 PC-9801UF V30HL 16MHz 5.19 13.31
108 Panacom M530FD 80286 8MHz 4.8 14.38
109 Panacom M353FD 80286 8MHz 4.79 14.41
110 PC-98XA 80286 8MHz 4.79 14.41
111 FMR-60HD 80286 8MHz 4.79 14.42
112 FMR-50NB1 80C286 8MHz 4.65 14.86
113 PC-9801VX2 80286 8MHz 4.57 15.1
114 IBM-PC AT 80286 6MHz 3.82 18.06
115 J-3100GT 80286 8MHz 3.79 18.2
116 FM16βFD2 80286 8MHz 3.72 18.54
117 PC-286NOTE F V30 10MHz 3.14 21.97
118 PC-9801LV21 V30 10MHz 3.11 22.17
119 PC-9801N V30 10MHz 3.11 22.17
120 PC-9801CV21 V30 10MHz 3.11 22.17
121 PC-9801VM11 V30 10MHz 3.11 22.17
122 PC-9801UV11 V30 10MHz 3.11 22.17
123 PC-286L V30 10MHz 3.1 22.27
124 PC-286LE V30 10MHz 3.1 22.28
125 PC-9801UV2 V30 10MHz 2.75 25.1
126 PC-9801VM2 V30 10MHz 2.75 25.1
127 PC-9801VM21 V30 10MHz 2.75 25.1
128 PC-98LT V50 8MHz 2.53 27.3
129 J-3100SS01 80C86 9.54MHz 2.4 28.7
130 J-3100SS001 80C86 9.54MHz 2.4 28.7
131 PC-9801M改 V30 8MHz 2.3 29.94
132 PC-9801F改 V30 8MHz 2.3 29.97
133 FMR-30HD 80C86 8MHz 1.97 35.06
134 PC-9801M 8086 8MHz 1.75 39.41
135 PC-9801E 8086 8MHz 1.75 39.42
136 PC-9801F 8086 8MHz 1.75 56.26
137 PC-9801改 V30 5MHz 1.34 51.21
138 PC-9801 8086 5MHz 1 69.1

 

 

CPUBENCH

1982年に発表したCPUのスピードを測るCPUBENCH
v0.980は、次のような内容でした。

・80X86系のCPU搭載マシンのスピードを測定します。
・CPU Type 表示を行う機能を追加しました。
・MS-DOS上でPC9801シリーズ(XA,LT含む)IBM-PC系(J3100,PS55Z etc.)
FM-R系(FM-R,TOWNS,松下製マシン)のマシンの計測を行なうことができます。

□テスト方法

CPUBENCHI01

のように表示されます。

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)です。
これらのことを行なうことにより,マシン速度を測定するために必要なマシン命令の
集合したベンチマークルーチンを作成しています。