LoginSignup
0
0

More than 1 year has passed since last update.

基本情報(ハードディスクの構造と記録方法)

Posted at

ハードディスクは大容量で安価、かつ比較的高速のため、ほとんど全てのパソコンに搭載されるほどの代表的な補助記憶装置です。

Harddisk-head.jpeg

上記のアーム部分がアクセスアームと呼ばれているところで、ディスク上の目的地まで磁気ヘッドを運ぶためにあります。
アクセスアームの先端部分が磁気ヘッドと呼ばれる部分です。微小な磁気コイルで、ディスク表面の磁性体を磁化させたり、読み取ったりします。
**ディスク(プラッタ)**は金属やガラスで出来ている硬い円盤です。表面に磁性体が塗布されていて、ディスクを磁化させることで情報を記録します。

200px-Hard_disk_head.jpeg
磁気ヘッド拡大画像

セクタとトラック

200px-Cylinder_Head_Sector.svg.png
ハードディスクを最初に使う時は初期化作業が必要です。ディスク(プラッタ)の上にデータを記録するための領域が作成されます。
作成された領域の扇状に分かれた最小範囲をセクタ、そのセクタを複数集めた1周分の領域をトラックと呼びます。

トラックを複数集めるとシリンダと呼ばれる単位になります。

ハードディスクの記憶容量

セクタの集まったものがトラックでトラックの集まったものがシリンダです。
ハードディスクの仕様表から記憶容量を算出することができます。

下記のハードディスクがあった時にその総容量は幾つになるか計算してみます。

シリンダ数 1,500
1シリンダあたりのトラック数 20
1トラックあたりのセクタ数 40
1セクタあたりのバイト数 512

1セクタが512バイトです。40個集まると1トラックです。
1トラックは 512 * 40 = 20,480バイトです。

トラックが20個集まってシリンダを形成します。
20,480 * 20 = 409,600
上記が1シリンダです。

409,600 * 1,500 = 614,400,000バイト
614MBとなります。

ファイルはクラスタ単位で記録する

ハードディスクが扱う最小単位はセクタです。基本ソフトウェアであるOSがファイルを読み書きするときは、複数のセクタを1ブロックと見なした
クラスタという単位を用いるのが一般的です。

例えば8セクタを1つクラスタとします。
1セクタ512バイトだとすると1クラスタが4096バイトです。

OSはクラスタ単位でファイルを読み書きするため、クラスタ内で余った部分は使用されない無駄な領域となってしまいます。

データへのアクセス時間

データへアクセスするのは、実際にデータを書き込んだり、書き込み済みのデータを読み込んだりする作業のことです。
ハードディスクはこれらの作業を次の3ステップで行います。

①シーク(位置決め)
②サーチ(回転待ち)
③データ転送

シーク時間 + サーチ時間 + データ転送時間 = アクセス時間
となります。

回転速度 5,000回転/分
平均シーク時間 20m秒
1トラックあたりの記憶容量 15,000バイト

このハードディスクから5,000バイトのデータを読み出す場合のアクセス時間はいくつか計算します。

シーク時間とサーチ時間は平均値を使います。
平均シーク時間は出ているので、平均サーチ時間を求めます。

1分間に5000回転するので、1分(60,000m秒) / 5,000回転 = 12ミリ秒
上記は1回転する時間です。その1/2が平均サーチ時間 6ミリ秒です。

1回転するのが12ミリ秒で、その時間に転送できるデータ量が1トラック15,000バイトです。
15,000 / 12ミリ秒 = 1,250バイト/ミリ秒

5,000バイト / 1,250バイト = 4ミリ秒

3つの時間を合わせて

20ミリ秒 + 6ミリ秒 + 4ミリ秒 = 30ミリ秒
上記がアクセス時間となります。

画像は全てwikipedia引用

まとめ

何の計算しているかたまにわからなくなりますが、覚えます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0