更新:2024/12/09

磁気ディスクのアクセス時間の計算方法についてゆるーくわかりやすく解説

ふゅか
ふゅか
磁気ディスクのアクセス時間って、結構いろいろな要素で決まるのね!
はるか
はるか
うん、平均シーク時間、平均回転待ち時間、データ転送時間。この3つ。

1. 磁気ディスクのアクセス時間の構成

磁気ディスクの平均アクセス時間は次のように求められます。

\[ \text{平均アクセス時間} = \text{平均シーク時間} + \text{平均回転待ち時間} + \text{データ転送時間} \]

このように、平均アクセス時間は3つの要素で成り立っています。

  • 平均シーク時間
  • 平均回転待ち時間
  • データ転送時間

2. 平均アクセス時間の構成要素

2.1. 平均シーク時間(平均位置決め時間)

これは、磁気ディスクのヘッド(データを読み書きする部分)が、目的のデータが保存されている位置まで移動するのにかかる時間の平均です。

  • イメージ: 本棚から特定の本を探して、目の前に持ってくる作業に相当します。
ふゅか
ふゅか
平均シーク時間って、ヘッドがデータのある場所まで動く時間のことよね?本棚で本を探す感じ!

2.2. 平均回転待ち時間

ヘッドが目的の場所に移動した後、データが保存されている位置(セクタ)がヘッドの下まで回転してくるのを待つ時間の平均です。これはディスクの回転速度によって決まります。

  • 計算方法: 平均回転待ち時間は、ディスクが1回転する時間の 半分 です。
  • 計算例:
    • 回転速度が 6,000 回転/分(RPM)の場合
    • 1回転にかかる時間は \( 60秒 ÷ 6,000回転 = 10ミリ秒 \)。
    • 平均回転待ち時間は \( 10ミリ秒 ÷ 2 = 5ミリ秒 \)。
ふゅか
ふゅか
たとえば、回転速度が6,000RPMなら1回転が10ミリ秒、その半分の5ミリ秒が平均待ち時間になるのね。簡単!
はるか
はるか
RPMが変われば、計算も変わる。

2.3. データ転送時間

ヘッドが目的のデータを実際に読み取るのに要する時間です。これは読み取るデータ量とディスクの回転速度に依存します。

  • 計算方法: データ転送時間は次の式で求めます。
    \[ \text{データ転送時間} = 1回転の時間 × \left( \frac{\text{読み取るデータ量}}{\text{1回転で読み取れるデータ量}} \right) \]
  • 計算例:
    • 1トラック(1回転)で読み取れるデータ量が 20kバイト、
    • 読み取るデータ量が 4kバイトの場合、
    • データ転送時間は \( 10ミリ秒 × \left( \frac{4,000}{20,000} \right) = 2ミリ秒 \)。
ふゅか
ふゅか
データ転送時間は、読み取るデータ量に反比例するってこと?
はるか
はるか
そう。1トラック(1回転)で大量に読み取ることがでるなら、0に近づいて、転送時間も高速になる。

3. 平均アクセス時間を求める例題

3.1. 例題1

磁気ディスクの平均シーク時間は 15ミリ秒 です。回転速度は 7,200回転/分、1回転で読み取れるデータ量は 25kバイト です。目的のデータ量は 5kバイト の場合、平均アクセス時間を求めなさい。

条件をまとめると、

  • 平均シーク時間: 15ミリ秒
  • 回転速度: 7,200回転/分
  • 1回転で読み取れるデータ量: 25kバイト
  • 読み取るデータ量: 5kバイト

平均回転待ち時間を求めます。まず、1回転にかかる時間は、

\[ 60\ \text{秒} ÷ 7,200\ \text{回転} = 8.33\ \text{ミリ秒} \]

したがって、平均回転待ち時間はその半分です

\[ 8.33\ \text{ミリ秒} ÷ 2 = 4.17\ \text{ミリ秒} \]

1回転で読み取れるデータ量が 25kバイト、読み取るデータ量が 5kバイトなので、データ転送時間を計算すると

\[ 8.33\ \text{ミリ秒} × \left( \frac{5}{25} \right) = 1.67\ \text{ミリ秒} \]

したがって、平均アクセス時間は、

\[ 15\ \text{ミリ秒} + 4.17\ \text{ミリ秒} + 1.67\ \text{ミリ秒} = 20.84\ \text{ミリ秒} \]

3.2. 例題2

平均シーク時間が 10ミリ秒 と非常に短い高速ディスクがあります。回転速度は 10,000回転/分、1回転で読み取れるデータ量は 30kバイト です。目的のデータ量が 6kバイト の場合、平均アクセス時間を求めなさい。

条件をまとめると、

  • 平均シーク時間: 10ミリ秒
  • 回転速度: 10,000回転/分
  • 1回転で読み取れるデータ量: 30kバイト
  • 読み取るデータ量: 6kバイト

1回転にかかる時間を求めます

\[ 60\ \text{秒} ÷ 10,000\ \text{回転} = 6\ \text{ミリ秒} \]

平均回転待ち時間はその半分です。

\[ 6\ \text{ミリ秒} ÷ 2 = 3\ \text{ミリ秒} \]

1回転で読み取れるデータ量が 30kバイト、読み取るデータ量が 6kバイトなので、データ転送時間を計算すると

\[ 6\ \text{ミリ秒} × \left( \frac{6}{30} \right) = 1.2\ \text{ミリ秒} \]

平均アクセス時間は

\[ 10\ \text{ミリ秒} + 3\ \text{ミリ秒} + 1.2\ \text{ミリ秒} = 14.2\ \text{ミリ秒} \]

3.3. 例題3

平均シーク時間は 25ミリ秒 の磁気ディスクがあります。回転速度は 5,400回転/分、1回転で読み取れるデータ量は 15kバイト です。目的のデータ量が 12kバイト の場合、平均アクセス時間を求めなさい。

条件をまとめると、

  • 平均シーク時間: 25ミリ秒
  • 回転速度: 5,400回転/分
  • 1回転で読み取れるデータ量: 15kバイト
  • 読み取るデータ量: 12kバイト

1回転にかかる時間を求めます。

\[ 60\ \text{秒} ÷ 5,400\ \text{回転} = 11.11\ \text{ミリ秒} \]

平均回転待ち時間はその半分です。

\[ 11.11\ \text{ミリ秒} ÷ 2 = 5.56\ \text{ミリ秒} \]

1回転で読み取れるデータ量が 15kバイト、読み取るデータ量が 12kバイトなので、データ転送時間を計算すると

\[ 11.11\ \text{ミリ秒} × \left( \frac{12}{15} \right) = 8.89\ \text{ミリ秒} \]

平均アクセス時間を計算すると、

\[ 25\ \text{ミリ秒} + 5.56\ \text{ミリ秒} + 8.89\ \text{ミリ秒} = 39.45\ \text{ミリ秒} \]

PR