ハードディスクブロックモデルの読み取り時間の計算


8

私の教授は、ブロックモデルを使用してハードディスクからのデータ取得を計算する方法についてのスライドを投稿しました。仕様は次のとおりです。

  • 7200 RPM
  • 5msシーク
  • 80MB /秒の転送速度
  • ブロックモデル:ブロックサイズ4KB

私は彼が次の計算をどのようにしたのか、またはいくつかの数字がどこから来たのかわかりません:

ブロックを読み取るための5ms + 1000/240 ms + 0.05ms = 9.216ms

1000/240 msと0.05msはどこから来たのですか?

編集:数字が完全に間違っている場合、どのようにこれを行いますか?


3つのコンポーネントがあります。シーク時間、データが読み取りヘッドの下で回転する時間(平均回転時間の半分を平均としてとります)と転送時間。
デビッドマーシャル

実際、4つ目の要素があります。「転送時間」は、2つの異なる重複しない操作にあります。まず、プラッターからセクターバッファーへの読み取りがあります。次に、ドライブインターフェース(SATAなど)を介してセクターバッファーからホストへの別の転送があります。これらの2つの転送が同時に発生する可能性があるという誤解が広まっています。彼らがすることはできません。セクターデータは、読み取られてからホストに送信される前に検証する必要があります。@Hennesはこれを無視されたアイテムの一部として言及しています。
おがくず

シーク時間の細かいポイントは、ほとんどの人がよく理解していないことに注意してください。シーク時間は線形関数ではなく、シリンダー数に基づく曲線です。(ボイスコイルアクチュエータを使用した)シークは、加速フェーズと減速フェーズで構成され、シークが十分に長い場合、その間の最大速度のフェーズになります。平均シーク時間にする必要があり加重のみ2可能フルストロークのアカウントには、求めているが、2 *(NCYL-1)シングルトラックを求めて、2 *(NCYL-2)2トラックシーク...とNCYLは「追求します」ヘッドの移動が不要な場合のゼロ時間。
おがくず2013年

回答:


11

問題のディスクの転送速度は80 MiB /秒、81920 KiB /秒、または 20480ブロック/秒です。ここでは、教授が行ったように見えるので、20,000ブロック/秒に丸めます。これは、ブロックを転送する0.05 msに相当し、方程式の最後の項を説明します。

最後に、シーク時間(ドライブヘッドをトラックに移動する時間)に加えて、処理するディスク自体の回転待ち時間もあります。7200 RPMでは、最悪の場合、1回転完全に待たなければなりませんが、平均して半回転-または4.166ミリ秒(7200 RPM = 120回転/秒= 8.333ミリ/回転)待たなければなりません。

したがって、1つのブロックをコンピューターに転送するには、同等のSeek Time+ Rotational Latency+を待つ必要がありますTransfer Time

5 ms + 4.166 ms + 0.05 ms = 9.216 ms

ソリッドステートドライブの場合、考慮すべき回転待ち時間はありませんが、測定可能なシーク時間(実際にはフラッシュメモリ内のセクターの内容に対処するため)と転送時間(バスによって大きく制限されます)があることに注意してくださいデータ自体を転送するために使用されています(SATAなど)。

したがって、一般的に、ドライブの単一セクターを読み取るための合計アクセス時間は(ソフトウェアを無視して)です。

Rotational/Hard Drive:  Seek Time + Rotational Latency + Transfer Time

Solid-State Drive:      Seek Time + Transfer Time

5

5ミリ秒の時間を求める右のトラックにその頭を移動するためのハードディスクのための時間です(と右のヘッドを選択するために、また、時間がかかりますが、あなたの教授の何か。無視されます)。


ヘッドが正しいトラック上にあると、正しいセクターがR / Wヘッドの下を通過するのを待つ必要があります。これは7200 RPMドライブであると想定されています。つまり:

  • 最悪の場合、渡されたばかりのデータは完全なローテーションを待たなければなりません。
  • 最良のケースでは、データセクターが到着しました。すべてが幸せです。
  • では平均的ケースのドライブは、半回転を待つ必要があります。

7200 RPMドライブの完全なドライブローテーションの時間を取得するには:

  • 毎分7200回転(別名7200 RPM)
  • または毎秒7200/60回。
  • または毎秒120回。
  • 又は単一回転がかかり1 / 120 番目の第二のを。
  • 8.3ミリ秒です

だから、半回転は、その半分の時間がかかるだろう必要があります1 / 240 番目の第二のを。

1秒は1000ミリ秒

これはあなたのである1000 / 240ミリ秒。


これはすべて、ドライブがデータの読み取りを開始できるようになるまでの時間です。それでも、それを読み取ってホストに渡す必要があります。

ドライブからの読み取りは、通常、それを渡すよりもはるかに速いため、遅い部分に焦点を当てます。

与えられた:

1)80 MB / s転送速度
2)ブロックモデル:ブロックサイズ4KB

  • 1秒あたり80 MiB、または1秒あたり80 * 1024 KiB、または4 * 20 * 1024 KiB /秒。
  • 20480で割ります。
  • あたり4キロバイト1 / 20480 番目秒。
  • または、0.488281ミリ秒。これは、最新の0.05ミリ秒です。


この回答はそれを無視していることに注意してください:

  1. ドライブはデータを送信する前にデータを読み取る必要があります。これにより、データが少し遅くなります。
  2. しかし、データがプラッターからどれだけ速く読み取られるかについての情報はありません。(これは、回転速度、読み取るデータの長さ、チェックサムデータの長さ、およびセクター間ギャップの問題です。(4KiBは、「ヘッダー|チェックサム|ギャップ」の8回の読み取りまたは1回の読み取りです。
  3. また、データがドライブのキャッシュにすでに存在している可能性があることも無視します。
  4. また、チェックサムの計算にほぼ一定の時間はかからないと想定しています。

これはおそらく、プラッター読み取りと(インターフェース)転送を区別するディスク転送時間についての正しい言及を見たのは初めてです。「チェックサム」は実際には、短いバーストエラーを検出して訂正できるエラー訂正コード(ECC)です。
おがくず2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.