HDDがデータにアクセスするまでの合計時間(シーク+回転待ち+転送)
アクセス時間とは、HDD(=ハードディスク、磁気を使った補助記憶装置)に「このデータをちょうだい」と要求してから、実際にそのデータを読み終える(または書き終える)までにかかる合計時間のことです。HDDの速さを測る代表的な指標で、短いほど反応が速いディスクといえます。
身近な例で考えると、レコードプレーヤーで曲を聴く場面に似ています。針(ヘッド)を目的の曲の溝へ動かし(シーク)、レコードが回って曲の頭が針の下に来るのを待ち(回転待ち)、そこから実際に音を再生する(転送)──この3つの動作にかかる時間を全部足したものがアクセス時間です。
上のツールで3つのスライダーを動かすと、それぞれの時間と合計アクセス時間がリアルタイムで計算され、内訳が積み上げバーで表示されます。
アクセス時間は、3つの時間を順番に足すだけで求められます。
アクセス時間 = シーク時間 + 回転待ち時間 + データ転送時間
それぞれの時間は次の意味を持ちます。HDDがデータを読む順番どおりに並んでいます。
・シーク時間:ヘッドを目的のトラック(=ディスク上の同心円の道)まで横移動させる時間。距離が遠いほど長くなる
・回転待ち時間:目的のセクタがヘッドの真下まで回ってくるのを待つ時間。平均すると「1回転の半分」かかる
・データ転送時間:到達したデータを実際に読み書きする時間。データ量÷転送速度で求まる
3つのうち、シーク時間と回転待ち時間は「データの場所を探して位置を合わせる」ための準備時間で、データ転送時間だけが「実際に読み書きする時間」です。小さなデータでは準備時間が大半を占めるため、シーク時間と回転待ち時間を短くすることがHDD高速化のカギになります。
実際に数値を当てはめて、アクセス時間を求めてみましょう。題材として一般的なHDDを考えます。
例1: 小さなデータを読む場合
シーク時間 = 9 ms
回転待ち時間 = 5.6 ms
データ転送時間 = 0.4 ms
──────────────────
アクセス時間 = 9 + 5.6 + 0.4
= 15 ms
この例では、転送時間は全体15msのうちわずか0.4ms(約2.7%)。準備時間(シーク+回転待ち=14.6ms)が大半を占めていることが分かります。
例2: 平均回転待ち時間を回転数から求める場合
回転数 = 5400 rpm(1分間に5400回転)
1回転 = 60秒 ÷ 5400 ≒ 11.1 ms
平均回転待ち = 1回転の半分
= 11.1 ÷ 2 ≒ 5.6 ms
平均回転待ち時間は「1回転にかかる時間の半分」で計算します。なぜ半分かというと、目的のセクタがちょうどヘッドの下にある幸運なときは待ち時間ゼロ、逆に通り過ぎた直後なら丸1回転待つことになり、その平均が半回転ぶんになるからです。上のツールで3つの値を変えながら、合計アクセス時間がどう変わるか確かめてみてください。