2016/06/06

いちおうベンチマーク

どんくらいの転送速度が出てんのか、やっぱり気になる。

 SCSI BIOSを使用して、標準的なHDDの最大容量である10MB分の読み出しを行なって計測したいのだけど、一度には無理なので、20KBの読み出しを512回行う事で10MBとする。

いまさらだが、基本仕様を押さえよう。X1turboは4MHzのZ80システムなので、
I/Oリードサイクルは4クロックの1000ns
メモリライトは3クロックの750ns
DMAを使用して1バイト転送は、所要7クロックで1750ns
単純に10MB分(10,485,760回)繰り返すと約18.35秒(約558.0KB/秒)、これが理論的速度となるわけだが、実際にはDMAへのパラメータ設定、SCSIコマンド処理、BIOS呼出し、BASICでの処理等々の、オーバーヘッド盛り沢山(しかも、512回も繰り返す)なので、理論的な値よりもグッと遅くなることは確実だが、果たしてどこまで理論値に近付けるか…

 SCSIターゲットは、おなじみ変換番長。プログラム構成ですが、転送処理のみマシン語で、時間の処理は楽をしてBASICのTIME関数を用います。なので、結果には+1秒未満の誤差が出ます。

そしてベンチマーク。

20KB毎に表示を行っていたら21秒で、表示無しで19秒(538.95KB/秒)。512回ものオーバーヘッド要素を考えれば、いい数字ではないだろうか。

さらに試行回数を増やし、もうちょっと計測してみる。

16倍の160MBならば、何秒なのか。19×16=304秒?

実際には306秒でした。ということは、10MBの19秒は19.125秒くらいなのだろう。

0 件のコメント:

コメントを投稿