以下ではHDDの転送能力の測定にCrystalDiskMark1.0系を使っています。このソフトウエアは、Random Read/Write 4Kの測定時に問題を抱えていることが公表されていますが、以下ではRandom Read/Write 4Kの値の変化に注目して使っていますので、結論に特段の影響を与えていないと考えています。
以下では、Generation 1:1.5Gbit/sec(SATA150接続)では、90MB/s程度の転送速度で頭打ちになると言う結論を記述しています。この時の測定結果としてはその通りです。しかし、2008/04/06 Sun、Generation 1:1.5Gbit/sec(SATA150接続)で100MB/sを超える転送速度を持つHDD(Seagate Barracuda 7200.11(ST31000340AS))が有ることが分かっています。
測定時点での実験結果としては、この通りですが、キャッシュアルゴリズムの変化などで、結果は変わるようですので、結論を参考になさるときはご注意ください。
SATAは、現在2つの接続速度をサポートします。
接続速度はHDDのインターフェイスの速度です。インターフェイスが速くなっても、HDD全体の性能を大きく超えるていれば性能の向上にはつながらないはずです。一方で、多くのHDDは比較的大きなキャッシュメモリを持つこともあり、高速な接続速度はこのキャッシュメモリとのやり取りの速度の向上に大きく貢献するはずです。特に、この頃のHDDはNCQ(Native Command Queuing)をサポートするため、高速にデータを送り込めれば読み出しや書き込み計画がより効率的に出来る可能性があります。HDDの性能によりこれらの効き方は大幅に変わるはずです。
これら二つの接続方法を変えると、どのように性能に影響を与えるかを調べます。さらにその結果を用いて次回のケーブルの互換のない大きな変化を伴うGeneration 3:6.0Gbit/sec(SATA600接続)への乗り換えについて考察します。
目的の所で述べたようにSATAは、現在2つの接続速度をサポートします。
これを比較する場合、HDD自身の転送速度がSTATAの実質の転送速度を超えるかどうかで振る舞いが大きく変わる可能性が高いと考えます。HDD自身の転送速度がGeneration 1:1.5Gbit/sec(SATA150接続)の実質の転送速度を超えない場合は、上記2つの差があまり出ないはずです。超える場合は、上記2つの差が出るはずです。
PATA(Parallel ATA)は接続インターフェイスとしての効率が悪く、実質の転送速度は接続速度の50%を少し超える程度になるといわれておりました。これはほぼベンチマークの実感覚にあっており、UltlaATA 100MB/s のインターフェイスでは、ほぼ50MB/s程度で頭打ちの傾向が出ていました。
それに対して、SATAではもともとの効率化やNCQの効果で実効転送速度が接続速度の60%位を少し超える程度になるといわれています。これはGeneration 1:1.5Gbit/sec(SATA150接続)の場合、90MB/sを少し超える程度の速度ということになります。(2008/04/06 Sun現在これに当てはまらない例も見つかっています。注意参照)
この、90MB/sを少し超える程度の速度を目安にして、HDD自身の転送速度がこれを超えるのものと超えないを用意すれば比較できることになります。
この比較を行う場合、他の要素の影響がなるべく少ない方が良いので、同一シリーズかつ同容量で超える物と超えない物が有れば、より比較が妥当な物になると考えます。そこで、Generation 1:1.5Gbit/sec(SATA150接続)の実質の転送速度を超えない物として80MB/s程度の転送能力を持つSeagate Barracuda 7200.10(ST3250620AS)を、超える物として100MB/sを少し超える転送能力を持つSeagate Barracuda 7200.10(ST3250410AS)を使って比較します。
まずは、超えないSeagate Barracuda 7200.10(ST3250620AS)の測定結果です。
| Test Size[ MB ] | 50 | 100 | 500 | 1000 |
|---|---|---|---|---|
| Sequential Read[MB/s] | 75.959 | 80.277 | 80.462 | 80.803 |
| Sequential Write[MB/s] | 82.826 | 79.825 | 77.730 | 78.669 |
| Random Read 512KB[MB/s] | 46.850 | 42.480 | 38.625 | 38.017 |
| Random Write 512KB[MB/s] | 39.215 | 31.785 | 2.788 | 0.894 |
| Random Read 4KB[MB/s] | 1.662 | 0.899 | 0.706 | 0.717 |
| Random Write 4KB[MB/s] | 1.950 | 1.571 | 1.020 | 1.021 |
BenchMark:CrystalDiskMark 1.0 (C) 2007 hiyohiyo Firmware : 3.AAC Date : 2008/01/09 IF : 玄人志向SATA2RAID-PCIX (Silicon Image SiI3124) Format : NTFS BM時IF : Generation 2:3.0Gbit/sec(SATA300接続)
| Test Size[ MB ] | 50 | 100 | 500 | 1000 |
|---|---|---|---|---|
| Sequential Read[MB/s] | 75.959 | 80.252 | 80.462 | 80.803 |
| Sequential Write[MB/s] | 81.958 | 81.059 | 78.439 | 78.422 |
| Random Read 512KB[MB/s] | 45.348 | 41.672 | 38.295 | 37.986 |
| Random Write 512KB[MB/s] | 39.667 | 30.127 | 1.573 | 0.898 |
| Random Read 4KB[MB/s] | 1.554 | 0.948 | 0.725 | 0.717 |
| Random Write 4KB[MB/s] | 1.973 | 1.581 | 1.025 | 1.008 |
BenchMark:CrystalDiskMark 1.0 (C) 2007 hiyohiyo Firmware : 3.AAC Date : 2008/01/12 IF : 玄人志向SATA2RAID-PCIX (Silicon Image SiI3124) Format : NTFS BM時IF : Generation 1:1.5Gbit/sec(SATA150接続)
次に超えるSeagate Barracuda 7200.10(ST3250410AS)の測定結果です。
| Test Size[ MB ] | 50 | 100 | 500 | 1000 |
|---|---|---|---|---|
| Sequential Read[MB/s] | 99.912 | 99.944 | 101.724 | 101.902 |
| Sequential Write[MB/s] | 101.459 | 98.365 | 97.970 | 97.578 |
| Random Read 512KB[MB/s] | 49.883 | 47.455 | 41.836 | 42.234 |
| Random Write 512KB[MB/s] | 46.170 | 35.969 | 6.814 | 1.069 |
| Random Read 4KB[MB/s] | 2.021 | 1.049 | 0.773 | 0.770 |
| Random Write 4KB[MB/s] | 2.090 | 1.759 | 0.914 | 0.934 |
BenchMark:CrystalDiskMark 1.0 (C) 2007 hiyohiyo Firmware : 3.AAA Date : 2008/01/10 IF : 玄人志向SATA2RAID-PCIX (Silicon Image SiI3124) Format : NTFS BM時IF : Generation 2:3.0Gbit/sec(SATA300接続)
| Test Size[ MB ] | 50 | 100 | 500 | 1000 |
|---|---|---|---|---|
| Sequential Read[MB/s] | 93.577 | 91.900 | 89.538 | 92.712 |
| Sequential Write[MB/s] | 86.033 | 85.472 | 84.932 | 85.112 |
| Random Read 512KB[MB/s] | 47.378 | 45.826 | 40.987 | 41.721 |
| Random Write 512KB[MB/s] | 41.562 | 34.704 | 1.735 | 0.977 |
| Random Read 4KB[MB/s] | 2.148 | 1.065 | 0.763 | 0.761 |
| Random Write 4KB[MB/s] | 2.022 | 1.673 | 0.899 | 0.922 |
BenchMark:CrystalDiskMark 1.0 (C) 2007 hiyohiyo Firmware : 3.AAA Date : 2008/01/12 Sat IF : 玄人志向SATA2RAID-PCIX (Silicon Image SiI3124) Format : NTFS BM時IF : Generation 1:1.5Gbit/sec(SATA150接続)
上記を見てもらえば、超えないSeagate Barracuda 7200.10(ST3250620AS)と超えるSeagate Barracuda 7200.10(ST3250410AS)で接続速度を変えた時に変化をしていることは分かるとは思います。しかし、変化傾向が異なることがわかりにくいと思います。そこで変化率を計算してみました。
まずは、超えないSeagate Barracuda 7200.10(ST3250620AS)の変化率です。
| Test Size[ MB ] | 50 | 100 | 500 | 1000 | 平均 | 平均(1) |
|---|---|---|---|---|---|---|
| Sequential Read[%] | 100.0 | 100.0 | 100.0 | 100.0 | 100.0 | |
| Sequential Write[%] | 99.0 | 101.5 | 100.9 | 99.7 | 100.3 | |
| Random Read 512KB[%] | 96.8 | 98.1 | 99.1 | 99.9 | 98.5 | |
| Random Write 512KB[%] | 101.2 | 94.8 | 56.4 | 100.4 | 88.2 | 98.4 |
| Random Read 4KB[%] | 93.5 | 105.5 | 102.7 | 100.0 | 100.4 | |
| Random Write 4KB[%] | 101.2 | 100.6 | 100.5 | 98.7 | 100.3 |
平均(1)は、変化点で誤差が大きくなるTest Size 500MBのRandom Write 512KBの値を除いた平均値です。
次に、超えるSeagate Barracuda 7200.10(ST3250410AS)の変化率です。
| Test Size[ MB ] | 50 | 100 | 500 | 1000 | 平均 | 平均(1) |
|---|---|---|---|---|---|---|
| Sequential Read[%] | 93.7 | 92.0 | 88.0 | 91.0 | 91.2 | |
| Sequential Write[%] | 84.8 | 86.9 | 86.7 | 87.2 | 86.4 | |
| Random Read 512KB[%] | 95.0 | 96.6 | 98.0 | 98.8 | 97.1 | |
| Random Write 512KB[%] | 90.0 | 96.5 | 25.5 | 91.4 | 75.8 | 92.6 |
| Random Read 4KB[%] | 106.3 | 101.5 | 98.7 | 98.8 | 101.3 | |
| Random Write 4KB[%] | 96.7 | 95.1 | 98.4 | 98.7 | 97.2 |
同様に平均(1)は、変化点で誤差が大きくなるTest Size 500MBのRandom Write 512KBの値を除いた平均値です。
「4−2.転送能力の変化」の表ST3250620AS Generation 1/Generation 2と表ST3250410AS Generation 1/Generation 2を比較してもらうと、以下のような傾向がわかると思います。
ReadよりWriteの転送速度の落ち込みが大きくなる原因は、遅延書き込みが有効なので速くバッファにデータをたくさん送り込んでもらえば、多くのバッファの内容を並び替えてより計画的に書き込めることと関係しているのではないかと推測します。
また、「4−1.転送能力の測定」の表ST3250410ASのGeneration 1接続時の転送能力から、Generation 1接続時の転送能力が90MB/s程度で頭打ちになっている傾向も分かります。これはGeneration 1:1.5Gbit/sec(SATA150接続)の場合、実質の転送速度が90MB/sを少し超える程度であるとした3−2.実質の転送速度の推定に当てはまっています。(2008/04/06 Sun現在これに当てはまらない例も見つかっています。注意参照)
これらの類推より、Generation 3:6.0Gbit/sec(SATA600接続)への移行は、HDD自身の転送速度がSATA300接続の転送速度の60%である180MB/s程度を超えると必要になると考えます。 これらの結果とは別に過去の出荷傾向よりGeneration 3対応製品はHDDの転送能力がSATA300接続の転送速度の45%である135MB/s程度を超えるあたりから供給されると考えます。