Chapter 14

7日目::マザーボード7回目「CHS,LBA変換」

shiozumi
shiozumi
2021.08.06に更新

LBAモード解説

さあ~、7回目となりました。今回は前回のCHSトランスレーションの続きで、LBAモードについて、学習して行きましょう! まずは、電卓の練習も兼ねて、アドレスの変換練習からですね。なかなか普段から、このような計算はしませんからね~、慣れるのに時間も掛かると思います。('◇')ゞ とはとは言うものの、やっぱりPCのスペックやパフォーマンス測定では、数字は切り離せませんからね。是非、この機会に身に着けて置きましょう!

ちなみに単位変換には慣れましたか? MB(メガバイト)とMiB(ミビバイト)の違い、GB(ギガバイト)とGiB(ギビバイト)の違いも忘れずに! 念のため、前回と同じリンクアドレスを、貼り付けておきますね!

単位変換(MBとMib)について

Googleで検索しながら文献を読んでいると、割と多く、Mib、Gibの単位が出てくるので、この辺りは、しっかり覚えて置きましょう!

https://academy.gmocloud.com/keywords/20170510/4314

Googleの単位変換でデバッグ!

https://www.google.com/search?q=単位変換&oq=単位変換&aqs=chrome..69i57j0l9.3338j0j15&sourceid=chrome&ie=UTF-8

動画解説1(単位と電卓)

https://youtu.be/IkIxko_duBA

LBAモード説明図はこちらから!

索引:LARGEモード同様、HDDの話さんのサイトからの作図を利用させて貰いますね。
https://www.hazymoon.jp/OpenBSD/misc/hdd.html (前回でも説明で紹介したサイトです)

HDD側が、LBA(Logical Block Addressing)方式に対応していることが必須となる。

CHSジオメトリLBA変換の計算式

CHSジオメトリー (c,h,s) から線形アドレスを計算する式は、c × H × S + h × S + (s-1)
H=最大ヘッダ数、S=最大セクタ数 となります。仮にH=256、S=64で計算してみましょう!
c=1,h=1,s=1 のときは、0000 0000 0100 0000 0100 0001 (24bit)
16進数なら、00 40 41 となりますね。

拡張INT 13H で、更に容量増設!

容量 8.4G bytesの壁 137G bytesの壁
ソフトウェア割り込み INT 13H 拡張 INT 13H
仕様変更 各レジスタにCHSの値 レジスタに構造体のアドレス指定
設定方式 CHS LBA
設定値 C:1023 H:255 S:63 0から始まるリニアな連番 2^28
有効ビット数 24bit 28bit
BIOS設定画面 LARGE/LBA LBA

BIOSが用意しているソフトウェア割り込み、INT 13Hでは、24bit迄。拡張INT 13H では、28bitの指定が可能なので、最大容量は、137G bytes となる。※尚、指定方法は、CHSではなく、リニアなアドレスを用いるLBA(Logical Block Addressing)方式

動画解説2(LBA変換式)

https://youtu.be/Je9Gfj6-KyI

(;^_^A 訂正です。正しくは、24bit!

動画の中では、24ビットではなく、28ビットまで、勝手に増やしてしまいましたね。(;^_^A

ATAのバージョン、LBA modeの設定動作

割り込み 指定方式 変換方式 HDD側の規格 有効ビット 容量
INT 13 CHS CHSジオメトリLBA変換 EIDE 24bit 8.4G bytes
拡張INT 13 LBA なし EIDE 28bit 137G bytes
拡張INT 13 LBA なし Big Drive 48bit 144P bytes

Big Driveは、ATA/ATAPI-6から採用されました(2002年ANSI)

動画解説3(28bit 48bitの容量計算)

https://youtu.be/rIp6IeDZEWw

Logical Block Addressing 概要

https://e-words.jp/w/LBA.html

説明するのが、後になってしまいましたけど、LBAは、こちらをご覧ください!

LBAのセクタ番号イメージ図

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

https://kimamani89.com/2020/05/01/【linux】ブートローダーからカーネルまでの起動プ/

動画解説4(LBAセクタ番号)

https://youtu.be/fzOLL2lBXEw

解説を書き込み後の図も!

CHS方式では、Sの値は、1~63で、63セクターしか使えませんでしたけど、物理的には、実は64セクターあります。従って、LBAモードでは、0~63で、64セクターフルに使用可能です。

LBAのプチまとめ!

  1. 0から始まる連番となり、一本の線が、蚊取り線香のように渦巻き状になっている。
  2. セクター数は、外周と内周で数が異なってくる。当然、外周の方が数は多い。
  3. LBAの48bitは、144PBバイトに容量が増えて、現実的に壁の問題はなくなった。

ATA復習 Wikipediaにて解説!

https://ja.wikipedia.org/wiki/Advanced_Technology_Attachment

動画解説5(ATA復習・目次概要)

https://youtu.be/HmYbX-9ngbM

ST-506は、厚さ10cm以上ありそうですね。(^▽^;)

https://xtech.nikkei.com/it/pc/article/trend/20090115/1011349/

ST-506(ATAとSCSIも解説)

https://www.rescue-center.jp/elementary/vol34.html

チップセット図(ノース、サウスブリッジ)

動画の中で、BIOS設定の画面が出てきますので、こちらの図も、少し思いだしてみましょう!

動画解説5(ATA復習・詳細説明)

https://youtu.be/m1Iltw9dWQY

DMA転送

https://e-words.jp/w/DMA.html

スーファミの時代から、DMA転送は可能でした~ メガドラでも出来たような!?
CG転送(グラフィックデータを、VRAMに転送)が、主な利用方法でしたね~

DMA転送参考ページ

https://ednjapan.com/edn/articles/1608/18/news015.html

BIOS設定画面と実機との比較


ここでは、STAT2に、Hard Disk が接続さて、SATA4に、ATAPI CD-ROMが接続されています。そして、SATA1、SATA3は、何も接続されていない状態ですね。

動画解説6(BIOS設定画面、SATAポート接続)

https://youtu.be/u1iPmh9U1-c

SATA1とSATA3に接続変更!

今度は、STAT1に、Hard Disk が接続さて、SATA3に、ATAPI CD-ROMが接続されています。先ほどの接続状態と変わりましたので、これでBIOS設定画面を確認して行きましょう!

BIOS設定画面にて、無事に認識されました

動画解説7(BIOS設定画面、SATA接続切り替え後)

https://youtu.be/u1iPmh9U1-c

さあ~、今回は少しだけですが、BIOS設定画面を実際に変更して、動作検証してみましたけど、まずは、HDDが認識しなくても慌てないように、(^▽^;) また、PCが正常に起動しないことも時にはありますけど、まずは落ち着いて! 電源コンテントや接続ケーブルの抜き差しなどを行って、電源スイッチON!・・・ですね。(笑) 尚、今回のBIOSは、もう数世代も昔のものですから、細かいことを覚える必要もありません。ただ、マザーボードの仕様上、設定によっては、接続が無効になることもあるってことを、頭の片隅に置いといてくださいね。

動画解説8(BIOS設定画面、その2)

https://youtu.be/A8SujoYjCPg

BIOS設定画面のまとめ

  1. SATA Pri, PATA Sub では、SATA1,3 が有効となり、SATA2,4は、無効となる。
  2. PATA Pri, SATA Sub では、SATA2,4 が有効となり、SATA1,3は、無効となる。
  3. PATA Only では、当然ですが、SATAを認識しなくなる。(^^ゞ
  4. BIOSの設定画面を変更したら、必ず保存して再起動。もう一度、BIOS画面で再確認すること!
  5. このBIOSそのものは、既に古いので、詳細を覚える必要はなし!('◇')ゞ

Compatible まとめ表

- SATA1 SATA2 SATA3 SATA4
SATA Pri, PATA Sub × ×
PATA Pri, SATA Sub × ×
PATA Only × × × ×

こんな感じの表にまとめると、分かりやすくなりますね~ (o^―^o)ニコ

IDEホストコントローラー、IDEディスクコントローラー

以下のサイトからの作図を、引用させて頂いています! こちらを取り上げたのは、IDEコントローラーについては、特に区別せずに説明している文献も多く、私自身も混乱してました。(^^ゞ それがディスク側なのか、ホスト側なのかわかりずらいので、まずは、それらを踏まえておきましょう。

https://www.atmarkit.co.jp/fpc/experiments/009over137hdd/over137hdd_01.html

動画解説9(IDEコントローラー解説)

https://youtu.be/usvjQ4KhGoc

48bit LBA対応の、拡張IDEホストコントローラー(PCIバス用)

動画の中でも説明していますが、マザーボード側のIDEホストコントローラが対応していない(ハードウェア未対応)場合は、上記のような拡張カードをPCIバスに差して対応させます。ソフトウェア(IDEドライバー)のみで対応可能な時もあれば、そうでない場合もありますので忘れないように。まあ~、技術の進歩も速いので、新製品(新技術のハードウェアー)に対して、1~2年前のマザボですら、ハードウェアー的に未対応なのも当たり前ですけどね~ (;^_^A

7日目のまとめ(学習ポイント)

さあ~ MBRの学習からはじまり、内容も展開を積み重ねてここまで解説して来ましたけど、基本的なポイントとしては、電卓を使った容量計算が主題だったりします。(^^ゞ 特にビット計算は、今となっては意識することもありませんけど、基礎の基礎ですからね。この業界で仕事をしていく上では必須科目、小学校一年生の算数のようなものです。そもそも、IDE,ATAの規格については、枯れてしまったものですから、その詳細については、かる~く覚えて置けば十分ですね。(;^_^A

今回は、BIOS設定画面も合わせて説明してみましたが、ひとつひとつの項目を丁寧に調べれば、それなりに意味も分かるものであり、その大半の項目は、接続する機器とのデーターの転送速度だったりするんですよね~、また、Autoにして置けば、ほぼ適切な値、最大値の設定になりますから、初心者の方は、なるべくAutoでOKです!

また、周辺機器を接続したときの、BIOS設定画面での認識を、調べる方法を動画でご紹介しましたけど、みなさんどうでしたか? 内容そのものを覚えることではなく、このようなアプローチを積み重ねながら、少しずつ慣れていくものだと感じて貰えれば、まずは、宜しいかと思います。

習うより慣れろ!!

そんな、諺「ことわざ」もありますけど、実験感覚で楽しんでいけば、いいんじゃないかな~
と、書いておきながら、ふと頭をよぎるのは、おそらく大半の方が、もしもPCが壊れてしまったら、どうしよう。(´;ω;`) 高価なものだけに、ショック!

リスクを背負わないのが、リスク!(笑)

是非、勇気を出して、、、挑戦、アタックして行きましょう!
そういう意味では、中古パーツで、型落ちPCを組み立てるのも、一考ですね。