Chapter 12

5日目::マザーボード5回目「CHSとHDD」

shiozumi
shiozumi
2021.07.29に更新

CHSとHDD物理イメージを結びつける!

さあ~ 前回のMBRの続き、パーテーションテーブルを解説する中で、CHS(シリンダ・ヘッド・セクタ)へと話が展開し、今回は、CHSの3バイトの値が、実際のハードディスクのどこを差しているのか学習していきますね~

M.2 SSDの性能UPも凄いですね~

いきなりの時事ネタで脱線しましたけど、是非、ハイスペックの性能を体感してみたいものですよね。それにしても、この文章を読み解くだけでも勉強になるものです。(^▽^;)

記事の引用
ソニーグループ傘下のメモリ/ストレージ事業であるNextorage株式会社は、PCI Express 4.0 x4接続のNVMe M.2 SSD「NEM-H」シリーズを21日にAmazonで発売する。価格はオープンプライスで、店頭予想価格は1TBモデルが2万5,190円、2TBモデルは4万8,560円。

NEM-Hシリーズは、M.2 2280フォームファクタのNVMe 1.4対応SSDで、これまでプロ向けや業務用ストレージを取り扱ってきた同社としては初のコンシューマ向けSSDとなる。

8チャネルのコントローラを実装し、NANDフラッシュの記憶方式は3D TLC。SSD全記憶領域の3分の1までをキャッシュサイズとして確保するダイナミックSLCキャッシュを採用し、アクセスの高速化と長寿命化に寄与する。キャッシュとして1TBモデルは1GB、2TBモデルは2GBのDDR4 DRAMも実装し、安定した速度を実現。

シーケンシャルリード最大7,100MB/s(1TBモデルは7,000MB/s)、シーケンシャルライト最大6,850MB/s(同5,500MB/s)、ランダムリード最大650K IOPS(同350K IOPS)、ランダムライト最大700K IOPSの高速アクセスが可能。高性能を求めるコアゲーマーやコンテンツクリエイターなどに最適とする。

TBW(総書き込みバイト量)は2TBモデルが1,400TB、1TBモデルが700TB。MTBF(平均故障間隔)は共通で160万時間。保証期間は5年間となる。

このほか、エラー訂正アルゴリズムの第4世代LDPC(Low Density Parity Check:低密度パリティチェック)に対応。また、SSDデータのクローンを作成する「Acronis True Image OEM」を1年間無償利用できる。

こんなに化け物のような、SSDの後になんですけど、、、じみ~に、HDDから学習して行きましょうね。ちなみに私が最初に開発で使っていたハードディスクは、20MBytesでした。いまのJPGなら、20ファイルぐらいで、いっぱいになりますね。('◇')ゞ パソコンは、PC-9801VX、CPU、Intel 80286 クロック8MHzだったかな?

動画解説1(M.2 SSD)

https://youtu.be/kwjOTCcQVdE

社長ブログからのコメントを引用!(by モリモリ)

M.2 SSDのスペックに関しましては普段使いの性能の指針としましては、シーケンシャルアクセスの性能よりもIOPSやSLCキャッシュ周りの性能を重視したほうが良いかもしれません。また、大容量の方が複数の記憶チップを並列で扱う性質上高速である場合が多いです (SSD内部でRAID0のような分散処理が行われるものと思われます)

なるほどね。SSD単体でも、RAID0のような動作を振舞うんですね~ この辺りも後で突っ込んで解説して行きたいとおもいま~す! ネタ提供ありがとう!


ハードディスクドライブ(hard disk drive, HDD)

https://ja.wikipedia.org/wiki/ハードディスクドライブ

では、実際にHDDを使って、CHS(シリンダ・ヘッド・セクタ)を学習していきますね。ちなみに動画の表紙は、HDDのヘッドの拡大写真ですけど、これで磁気データを読み書きしていますよ~

動画解説2 HDD解説(Wikipedia編)

https://youtu.be/jGyKaBp68sQ

プチ・ポイント(要点)

  1. トラックをまとめて、シリンダと呼んでいる。
  2. ヘッドの数は、プラッタの2倍ある。

更に追加で以下の4サイトもどうぞ!

以下の3つのサイトを使って、さらに、CHSの解説を繰り返して行きますね。サイトによっても、図とか説明文が違っていて、初心者の方は混乱していまうかも知れませんが、たくさん見ることでの理解度も深まると想像していますよ! (^^ゞ

http://kccn.konan-u.ac.jp/information/cs/cyber07/cy7_hdd.htm
http://hdd-data.jp/hdd-recovery/hdd-organization.html
https://upatissa.hatenablog.com/entry/2020/11/29/121003

ヘッド=1,シリンダ=0,セクタ=1 ここを参考に!

https://xtech.nikkei.com/it/pc/article/NPC/20070802/278982/

動画解説3 HDD解説(その他の参考サイト)

https://youtu.be/OFMrTn1DQNA

ヘッドのイメージ図と、CHSまとめ!

https://www.hazymoon.jp/OpenBSD/misc/hdd.html

ヘッドのイメージ図は、こちらが一番、分かりやすいですね~ ここを使って、CHSの解説を、まとめをしていきますね~ ちなみに動画の中でも、何度か注意を促していますが、トラックの値を直接指定することはありません。シリンダ番号とヘッド番号で、トラックの位置が決まります。

動画解説4(ヘッドのイメージ図)

https://youtu.be/FjKMXHpVsKM

まとめ(プチ)

  1. トラックをまとめて、シリンダと呼ぶ。
  2. ヘッドは、プラッタの表と裏の両方にあるので、プラッタ枚数の2倍の数になる。
  3. シリンダ0番は、ディスクの一番外側、そのひとつ内側が1番となる。
  4. シリンダ番号とヘッド番号の2つの値によって、トラックの位置が決まる。
  5. トラックの任意の場所は、セクタ番号によって決まる。

シリンダ=X座標、セクタ=Y座標、ヘッド=Z座標という3次元のイメージで理解すると分かりやすいのかな?

このページの下には、INT 13H (ソフトウェア割り込み)とか、IDEとの信号線の作図などもあり、プログラマー的には、このようなサイトの作りには、自然と目が奪われますね。(^▽^;) その後も、このページを使って解説して行きますよ!

BIOS設定画面のキャプチャー

さて、少し余談ですが、キャプチャーボードを購入したので、BIOS設定画面の録画ができるようになりました! 2~3分程度ですがサンプル動画を作りましたので覧ください。OBSOBS Studio を使ってみました!

動画解説5(OBS Studio+Zoom)

https://youtu.be/Z7kTeaJEbK8

OBS Studio は、複数の入力を一つの画面に納めることが可能ですね!

  1. SWITCHと、PCの二系統の入力を切り替え可能(hdmi接続)
  2. Webカメラも2台接続(それ以上も可能)
  3. その他、ブラウザー、アプリなども可能です

ご興味のある方、よろしければ、ご覧ください。

https://damonge.com/post/4921

528MBytesの容量の壁、CHSとIDEの関係!

引き続き、こちららのサイトを使って学習して行きます。IDEなんて、もう~化石のような存在ですけど、(^^ゞ 初心者の題材としては良いと感じています。というのも、ここにも基礎が凝縮されているんですよね。パソコン全般、こういう風に成り立っていると理解できる! ほどよいさじ加減なんですよね~

HDD容量を計算するのに、Windows10の電卓アプリも使います。2進数(bit)、10進数(dec)、16進数(hex)に慣れていない方は、是非、この機会に覚えてくださいね!

https://www.hazymoon.jp/OpenBSD/misc/hdd.html

動画解説6(528M bytes 計算・・・前半)

https://youtu.be/EWK9lto-goY

動画解説7(528M bytes 計算・・・後半)

https://youtu.be/KzCdX8W9B5Q

動画解説8(CHS 8.5G bytes, ATA 137G bytes 計算)

https://youtu.be/qqaCNsO2I8Y

相変わらず動画の中では、ところどころで単位を間違っていますね。コメントや文字で補ってますけど、みなさんが理解しているなら安心なのですが。(;^_^A

CHSジオメトリ変換(8.4GBの壁)

先ほどの動画の中では、約8.5Gの計算結果となっていました。
C:1024 × H:255 × S:64 × 512 = 8,589,934,592 bytes セクタの値を、0~63の範囲で計算していましたからね。実際は、1~63となり、2^6-1 = 63 となります。

名称 記号 2のべき乗 小計
シリンダ C 2^10 1024
ヘッド H 2^8 256
セクタ S 2^6 64

S:2^6-1 の63で再計算!

尚、LBAジオメトリ変換では、C:2^10 × H:2^8 × S:2^6-1 × 512 となりますので、C:1024 × H:255 × S:63 × 512 = 8,455,716,864 bytes ですね。

名称 記号 2のべき乗 小計
シリンダ C 2^10 1024
ヘッド H 2^8 256
セクタ S 2^6-1 63

プチ(まとめ)BIOS側とATA仕様のミスマッチ

- BIOS ATA仕様 最小値
シリンダ C 2^10 2^16 2^10
ヘッド H 2^8 2^4 2^4
セクタ S 2^6 2^8 2^6
合計 24ビット 28ビット 20ビット
最大容量 8.4GB 137GB 528MB

BIOS側では24ビット、ATA規格では28ビットの仕様にも関わらず、お互いの有効な結線が、20ビットとなり、528MBytesの壁が出来てしまった。('◇')ゞ


今回のまとめ、次回のLBAとは?

いやあ~ それにしても、このあたりの仕様拡張の変化の歴史については、ほんと複雑ですし、混沌とした時代でしたね~ (^^ゞ そもそも論ですが、BIOS側の仕様でヘッダーが8bitで指定されて、0~255なんてありえない。想像してみると分かりますが、プラッターが128枚、ヘッド数が256個、超、厚いHDDになりますからね。

実際のハードディスクの画像ですけど、プラッタ枚数は、たったの4枚ですからね。(^^ゞ

もしも、プラッタの枚数が、128枚あったら?

結局のところHDDメーカーは、プラッタを128枚も重ねるような製品は当然作らず、プラッタの密度を上げていきます。シリンダの数も1024を越えて、全てのセクタにアクセスするために、BIOS側での対応を迫られてましたね。(^▽^;)

世界初のハードディスク(IBM,1956年)

https://xtech.nikkei.com/it/article/Watcher/20070702/276451/

こちらのサイトから画像を引用させて頂きました!

まあ~、直径24インチのディスクを50枚も使っているとのこと。そういった時代の背景もあって、ヘッダは、0~255(プラッタ枚数128枚)ぐらい必要かと思って当然の時代だったんでしょうね。

540MBのハードディスク画像をネットで発見

CHS
シリンダ C 1050
ヘッド H 16
セクタ S 63
1セクタ 512 bytes
容量 1050 × 16 × 63 × 512 = 541,900,800 bytes

みなさんも、是非、電卓を使って計算をしてください!(笑)

Logical Block Addressing(ロジカルブロックアドレッシング)

次回は、このLBAについて解説して行きますね。CHS->LBAジオメトリ変換です!