Web Analytics Made Easy - StatCounter

工業大学生ももやまのうさぎ塾

うさぎでもわかるをモットーに大学レベルの数学・情報科目をわかりやすく解説! 数式が読み込まれない場合は1回再読み込みしてみてください。

うさぎでもわかる計算機システム(基本情報) Part16 磁気ディスクの構造とアクセス時間の求め方

こんにちは、ももやまです。

今回は補助記憶装置の1つである磁気ディスク(ハードディスク)のアクセス時間についてまとめていきたいと思います。

 

第1章:補助記憶装置とは
第2章:磁気ディスクとは
第3章以降:本題のアクセス時間

についてまとめています。

 

なのでアクセス時間について知りたい人は1章, 2章をスキップしてください。

 

 

前回の記事(うさぎでもわかる計算機システムPart15)はこちら!

www.momoyama-usagi.com

 

1.補助記憶装置と主記憶装置の違い

(1) 主記憶装置

まず復習ですが、補助記憶装置と主記憶装置の2つの違いについて簡単にですが説明していきましょう。

 

主記憶装置とは、CPUが直接データをアクセスすることができる記憶装置のことを表します。

パソコン内のメモリが主記憶装置に該当します(RAMとも呼ばれますね)。

 

主記憶装置はデータの読み書きの速度がとても速いメリットがある一方、単位容量あたりの値段が高いです。

また、シャットダウンを行うとデータが消滅する特徴もあります。

 

(2) 補助記憶装置(2次記憶装置)

補助記憶装置は、主記憶装置以外の記憶装置、つまりCPUが直接データをアクセスすることができない記憶装置のことを表します。

 

補助記憶装置の例として、ハードディスク(HDD)、SSD、USBメモリ、SDカード、DVD(光学ディスク)などがあります。

 

補助記憶装置は主記憶装置と比べるとデータの読み書き速度が遅いですが、単位容量あたりの値段がメモリに比べて安いです。

(皆さんが持っているようなパソコンのRAM(主記憶)は4~16GBなのに対し、補助記憶装置(HDD・SSD)は200GB~2TBと容量が全然違いますよね)

 

また、シャットダウンを行ってもデータは消滅しません。

 

主記憶装置・補助記憶装置の違いを表にまとめてみました。

  主記憶 補助記憶
CPUへのアクセス ×
読み書き速度 速い 遅い
容量 小容量 大容量

 

主記憶装置、補助記憶装置を実生活に例えると、皆さんの記憶が主記憶、ノートなどのメモが補助記憶装置になります。

 

f:id:momoyama1192:20191202211312g:plain

2.磁気ディスクの構造

磁気ディスクのアクセス時間の求め方の前に磁気ディスクとはどんなものなのかを簡単に説明したいと思います。

 

まずは磁気ディスク(ハードディスク)の構造を見ていきましょう。

f:id:momoyama1192:20191210114246g:plain

それぞれの用語を簡単にですが説明しています。

(1) プラッタ

ハードディスクは、図のようにディスクが何枚か重なっています。このディスクのことをプラッタと呼びます。

(2) トラック

プラッタ(ディスク)上にある1周分の記憶領域(灰色の部分)をトラックと呼びます。

図では1枚のプラッタに1重にしかトラックが描かれていませんが、実際には、1枚のプラッタに何重にもトラックがあります。

(例えば下の図だと赤・黄・緑・青の4重のトラックがありますね)

 

f:id:momoyama1192:20191210083409g:plain

(3) シリンダ

プラッタ(ディスク)を複数層にしたものシリンダと呼びます。

(※1層のプラッタでもシリンダと呼べます。)

(4) セクタ

トラックをさらに放射上に等分したものをセクタと呼びます。

1セクタとは、ハードディスクの最小記録単位(512バイト)を表します。

(5) ヘッド

ハードディスクに記録されている情報を読み書きする部分をヘッドと言います。

なお、目的のデータを探す際にはヘッドではなくディスクを回転させることでデータを探します。

 

3.磁気ディスクのアクセス時間の3つの要素

磁気ディスクにあるデータをアクセスするためには、データを実際に転送する時間だけではなく転送までの下準備にかかる時間も考える必要があります。

 

ディスクにアクセスするためにかかる時間は下の3つの要素にわけることができます。

その1 シーク時間(位置決め時間)

ヘッドを目的のシリンダに位置付けるために必要な時間のことをシーク(seek)時間と呼びます。位置決め時間とも呼ばれます。

(ちなみにシーク時間のseekは Hide and Seek の Seek と同じ意味です。)

 

徒競走で例えると位置についての段階です。

 

その2 回転待ち時間

目的のデータがヘッドの位置に来るまでにかかる時間回転待ち時間と呼びます。

 

徒競走で例えるとよーいの段階です。

 

その3 データ転送時間

実際にデータにアクセスする時間(データを読み書きする時間)のことをデータ転送時間と呼びます。

 

徒競走で例えるとどんの段階です。

 

 

以上3つの時間をすべて足したものをアクセス時間と呼びます。

f:id:momoyama1192:20191202211308g:plain

 

4.平均アクセス時間の求め方

アクセス時間の平均、つまり平均アクセス時間は「平均シーク時間」・「平均回転待ち時間」・「データ転送時間」の3つの合計で求めることができます。

 

また、平均シーク時間、平均回転待ち時間の2つを合わせて平均待ち時間と呼ばれます。

f:id:momoyama1192:20191202211317g:plain

 

ここで平均回転待ち時間について考えましょう。

 

回転待ち時間が一番短くなるときは、目的のデータがちょうどヘッドの位置にあるときですね。なので待ち時間は0です。

一方回転待ち時間が一番長くなるときは、目的のデータがちょうどヘッドの位置から少し過ぎた状態ですね。このときはディスク1回転分の待ち時間が発生します。

 

なので平均の回転待ち時間は最小(0回転)と最大(1回転)の平均であるディスク0.5回転分(1/2回転分)の時間で求めることができますね。

 

5.練習問題

では、何問か練習してみましょう。

練習1

ハードディスクのアクセス時間に含まれないものを1つ選びなさい。

  1. 回転待ち時間
  2. シーク時間
  3. セッション時間
  4. データ転送時間

 

練習2

回転速度が 10,800回転/分(rpm) の磁気ディスクがある。この磁気ディスクの平均回転待ち時間を有効数字2桁で答えなさい。

 

練習3

回転速度が5,000 回転/分(rpm)、平均シーク時間が20ミリ秒の磁気ディスクがある。この磁気ディスクの1トラック当たりの記憶容量は、15,000バイトである。このとき、1ブロックが4,000バイトのデータを1ブロック転送するために必要な平均アクセス時間は何ミリ秒か。

ア:27.6
イ:29.2
ウ:33.6
エ:35.2

 

(ヒント:1トラック当たり=1回転当たりと同じ意味です)

 

6.練習問題の答え

練習1

解答:3

アクセス時間は、シーク時間・回転待ち時間・データ転送時間の3つの合計で表される。よって、アクセス時間に含まれないのは3のセッション時間となる。

練習2

解答:2.8ミリ秒(0.0028秒・ 2.8 \times 10^{-3} 秒)

1分間(60秒・60,000ミリ秒)に10,800回転するので、1回転にかかる時間は\[
\frac{60000}{18000} \fallingdotseq 5.56
\]となり、5.56ミリ秒(もしくは 0.00556秒)となる。

(途中の計算は有効数字より1桁多めに出しておきましょう。)

 

ここで平均回転待ち時間は0.5回転するまでにかかる時間なので2.8ミリ秒(0.0028秒)となる。

練習3

解答:イ

1分間(60秒・60,000ミリ秒)に5,000回転するので、1回転にかかる時間は\[
\frac{60000}{5000} = 12
\]となり、12ミリ秒となる。

 

ここで平均回転待ち時間は0.5回転するまでにかかる時間なので6ミリ秒となる。

また、1トラックあたり、つまり1回転あたり15,000バイトを記録できるので4,000バイトを記録するのにかかる時間は\[
\frac{4000}{15000} \times 12 = \frac{48}{15} = 3.2
\]となり3.2ミリ秒となる。

 

よって、

平均シーク時間 :20ミリ秒
平均回転待ち時間:6ミリ秒
データ転送時間 :3.2ミリ秒

となるので 20 + 6 + 3.2 = 29.2ミリ秒がアクセス時間となる。

 

7.さいごに

今回は補助記憶装置の復習と、補助記憶装置の1つである磁気ディスクのアクセス時間の求め方について説明しました。

 

次回はUnixにおけるファイルシステムについて説明したいと思います。

ではまた次回。さらばだー!