世の中にはベンチマーク命という人がいます。私はむしろ静かか、とか、壊れないかとか(ATA-HDDは往々にして「速い」と「壊れない」は両立しませんが(^^;。 )の方が気になるので、ベンチマークなんてよほど良し悪しのはっきりしているとき以外は見る気がしません。しかし、自作BIOSとなればやらざるを得ないもんです。5月の川根OFFでまりもさんに「速度はかってよ」といわれて翌日測ってみて愕然とし、DMA転送を盛り込む決意をしたわけです。計測はリアルモードDOSプロンプト下でまりもさんのお作りになったHDB98を使用して行いました。
まずはPIO転送でREAD / WRITE SECTORS (EXT)コマンドのみサポートのBIOSのベンチです。
Machine name[65]: PC-9821V200/S7C3青札(YVZ) Disk interface : CHANPON2'TURBO-PCI (Chache line 0Ch=08h書き換え済み) Disk drive name : Maxtor 6Y160P0 [ IDE 接続ディスク 内蔵1 80h 総容量 156307(MB)] Grain size: 32768 16384 8192 4096 2048 1024 512 (B) ------------------------------------------------------------------------ Speed(top): 1960 1950 1940 1910 1850 1750 1580 (KB/sec) Speed(end): 1960 1960 1940 1920 1860 1750 1570 (KB/sec) Seek time : 1509 points.
内蔵IDEでも4MB/sは出るので、それ以下ということになります(滝汗)。原因はREAD MULTIPLEなどの連続読み/書きをしていないため、1セクタ(512バイト)読み書きの後に毎度割りこみコントローラの処理をしないと行けないためかと思い、とりあえずREAD MULTIPLEなどの連続読み/書きを行わせてみました。ところが、あまり高速化されませんでした。なぜか内蔵IDE-BIOSにすら負けてしまうと。何がおかしいのかはいまだに不明ですが、PIO-mode4の動作の面影すらありません。しかしそれじゃあんまりだろーということでUDMA転送およびWDMA転送を盛り込んでみました。ところが私はバスマスタDMA転送を盛り込むにあたり、延々とイバラの道を歩くことになります。Windows2000がブートできるようになってからWindows98がインストール出来るようになるまで5ヶ月近く悩みまして(^^;。詳細はソースファイルを見れば察することが出来るのでは無いかと思いますが、とにかく測ったのが次の通りです。
Machine name[65]: PC-9821 V200/S,166/S**2青札(YVZ) Disk interface : CHANPON2'TURBO-PCI (Chache line 0Ch=08h書き換え済み) Disk drive name : Maxtor 6Y160P0 [ IDE 接続ディスク 内蔵1 80h 総容量 156307(MB)] Grain size: 32768 16384 8192 4096 2048 1024 512 (B) ------------------------------------------------------------------------ Speed(top): 65500 60500 56500 37000 23600 11800 5910 (KB/sec) Speed(end): 31500 32700 31500 34000 23600 11800 5910 (KB/sec) Seek time : 248 points.
32768バイト転送時のtopの値はWindowsでのHDBENCH3.30のREADを上回る値であり、HDD本来の転送速度が十分出ていると思います。しかし、物事には比較対象が必要なので次のも。(UDMA-mode4と比べるのは酷ですが)
Machine name[65]: PC-9821V200/S7C3青札(YVZ) Disk interface : 他者(笑)製ATA133ボード Disk drive name : Maxtor 6Y160P0 [ IDE 接続ディスク 内蔵1 80h 総容量 156307(MB)] Grain size: 32768 16384 8192 4096 2048 1024 512 (B) ------------------------------------------------------------------------ Speed(top): 40500 35400 31500 24300 15700 9680 5870 (KB/sec) Speed(end): 31500 32700 31500 23600 15700 9680 5870 (KB/sec) Seek time : 282 points.
うーん、Silicon ImageのSiI680はかなり優秀ですね。山猫でも遅いながら動作しますし、名チップの予感(はぁと)。ここには掲載していませんが、UDMA転送未対応の旧型HDDでも、WDMA対応により、確実にPIO転送よりはパフォーマンスが向上します。最後に、私はSiI680という石の仕様はそれほど良く知りません。ですので、石の潜在能力はさらに上にある可能性があります。ですので、くれぐれも「なんだ、石(あるいはHDD)の能力はこの程度か」と思いませんように。
ちなみに以下はWindowsの起動の速さを多少左右するV86モードでの速度です。これはMMX-Pentiumですが、PentiumIIだとV86モードがやたら遅くなります。
Machine name[65]: PC-9821 V200/S,166/S**2青札(YVZ) Disk interface : CHANPON2'TURBO-PCI Disk drive name : Maxtor 6Y160P0 [ IDE 接続ディスク 内蔵1 80h 総容量 156307(MB)] Grain size: 32768 16384 8192 4096 2048 1024 512 (B) ------------------------------------------------------------------------ Speed(top): 65500 60500 44800 31500 17000 8350 5350 (KB/sec) Speed(end): 31500 32700 32700 31500 17700 9790 5320 (KB/sec) Seek time : 261 points.
Machine name[65]: PC-9821 V200/S,166/S**2青札(YVZ) Disk interface : 他者製ATA133ボード Disk drive name : Maxtor 6Y160P0 [ IDE 接続ディスク 内蔵1 80h 総容量 156307(MB)] Grain size: 32768 16384 8192 4096 2048 1024 512 (B) ------------------------------------------------------------------------ Speed(top): 40500 37000 31500 23600 15700 9790 5910 (KB/sec) Speed(end): 30400 32700 31500 23600 15700 9680 5910 (KB/sec) Seek time : 298 points.
DMA転送版だけ掲載します。WD-Raptorならどのくらい出るんでしょうかね。金が出来たら試してみたいものではありますが。
Machine name[69]: PC-9821 RaII23/W,Ra266/W Disk interface : SATARAID4P-PCI Disk drive name : Maxtor 6Y200M0 [ IDE 接続ディスク 内蔵1 80h 総容量 194471(MB)] Grain size: 32768 16384 8192 4096 2048 1024 512 (B) ------------------------------------------------------------------------ Speed(top): 60500 60500 50000 31500 20200 11800 5910 (KB/sec) Speed(end): 30400 31500 34000 30400 20200 11600 5870 (KB/sec) Seek time : 270 points.