...

ハード・ディスク制御の 素朴な疑問 10選

by user

on
Category: Documents
1

views

Report

Comments

Transcript

ハード・ディスク制御の 素朴な疑問 10選
第3 章
設計に入る前に確認しておこう
ハード・ディスク制御の
素朴な 疑問 10選
猪狩 史
ような手順になります(図 1).
本稿では,ハード・ディスク・ドライブ(HDD)を使った機器
を開発するにあたって疑問に思いやすい 10 項目を厳選し,
(1)アプリケーション・ソフトウェアが,読み出したい(あ
Q & A 形式で紹介する.設計に入る前にぜひ確認しておこう.
るいは書き込みたい)ファイルを OS のライブラリの一
(編集部)
つである API( Application Programming Interface)
に対して要求する.
Q1
(2)OS(API)はそれに基づいたI/O 要求を,ストレージ・
ソフトウェアからどのようにハード・
Q2
Q3
Q4
Q5
ディスクを制御するのですか?
デバイス内のデータ位置情報,サイズとともにデバイ
Q6
Q7
Q8
Q9
Q10
デバイス・ドライバと呼ばれるソフトウェアが
A1
A2
A3
A4
A5
ス・ドライバに渡す.
(3)デバイス・ドライバは,実際のプロトコル制御を行う
HBA(Host Bus Adapter)というハードウェ
ハードウェアである HBA(Host Bus Adapter)に対し
がハードウェアを制御
A6 アの設定を行い,HBA
A7
A8
A9
A10
て,I/O 要求に必要な設定を行う.
します.
(4)HBA は,接続されているストレージ・デバイスのイ
ンターフェースに合わせて,実際にストレージ・デバ
ハード・ディスク・ドライブ(HDD)などのストレージ・
イスにコマンドを発行する.
デバイスを制御するといっても,実際にはいろいろな段階
(1)∼(4)のそれぞれの段階で,直接ではないとしても,
があります.例えばWindows などのOS を使う場合,アプ
ストレージ・デバイスを制御している,ともいえます.
リケーション・ソフトウェアによる HDD の制御は,次の
本特集では,主にストレージ・デバイスや実際にスト
レージ・デバイスにアクセスを行う HBA に相当する部分
アプリケーション・ソフトウェア
について解説しています.
I/O 要求
ソフト
ウェア
OS,API(Application Programming Interface)
内容を解釈
デバイス・ドライバ
AP
Iへの指示に対応して必要な動作をHBAに指示
動作に必要な設定を実施
HBA
(Host Bus Adapter)
実際のプロトコル制御を行うハードウェア(チップセットなど)
ハード
ウェア
ストレージ・インターフェース
ハード・ディスク・ドライブ(HDD)などの
ストレージ・デバイス
図1
ストレージ・デバイスの制御構成
Keyword
50
Q1
Q2
よく使われるハードウェア構成は?
Q3
Q4
Q5
A1
Q6
A2
Q7
ストレージ・インターフェースや CPU の種類
A6
A7
A3
Q8
A4
Q9
A5
Q10
A8
A9
A10
によって,いくつかの方法があります.
HDD にデータをリード/ライトする場合,データ転送が
必要になります.HDD を制御するという観点からすれば,
データの送受信用に用いるメイン・メモリにどのようにア
HDD,ハード・ディスク,HBA,OS,デバイス・ドライバ,ATA,SATA,シリンダ,ヘッド,セクタ,
トラック,アドレス,ブロック,コマンド,CHS 方式,LBA 方式,AHCI
Design Wave Magazine 2008 November
クセスするのか,ということになります.
例えば,PCI バス(PCI Express でも同様)を備えたシス
Q1
Q2
HDD
Q4 にデータを読み書きするには,
Q5
どのような情報が必要なのですか?
Q3
テムにおいて,よく使われるシステム構成と特徴を以下に
示します.
(1)チップセットの機能を用いる場合
Q6
A1
Q7
A2
現在のパソコン向け CPU のチップセットでは,内部に
A6
データ転送を自動的に実行する機能が搭載されています〔図
Q8
Q9
Q10
アクセス先の情報(アドレス)とアクセスする
A3
A4
A5
データ量(ブロック数)
,させたい動作(コマン
A7
A8 ド)を発行する必要があります.
A9
A10
2(a)〕.例えば,米国 Intel 社の ICH5 シリーズ以降のチッ
ストレージ・デバイスは一般に次のことがいえます.
プセットでは,コマンドに付随するデータ転送をメイン・
¡記録領域があるサイズのデータを格納するブロックに分
メモリのどこに格納,あるいはどこから出すかということ
をあらかじめ指定しておくと,コマンドの応答に従って勝
手にデータを転送する機能があります.データ転送が終了
したら CPU に対して割り込みを発生します.
このような自動化機能を持つ LSI を介して SATA(Serial
1
割されている.
¡アクセスすべき場所と,そこを先頭にして何ブロックの
データをアクセスするかを決める.
¡アクセスの目標情報,アクセス・ブロック数とともにコマ
ンドを発行する(一般的にリード用コマンドとライト用コ
ATA)インターフェースを備えた HDD を制御する場合,
マンドではコマンド・コードやプロトコルが異なる)
.
インターフェースの詳細なプロトコルよりも,LSI の自動化
¡コマンドを発行すると,インターフェースの転送プロト
機能をどのように使うのかを理解することがまず重要です.
(2)PCI バスに接続した SATA 制御 LSI を用いる場合
最近パソコンで使われるHDD の多くは,インターフェー
Pro
App1
2
3
コルに応じてストレージ・デバイスが応答する
¡書き込みコマンドの場合,コマンド・コードに引き続き,
4
書き込みを行うべきデータを送信する.
スとして SATA を備えています.SATA 対応 HDD を制御
するには,SATA 制御LSI を使うという選択肢があります.
メイン・メモリ
SATA 制御LSI を用いた場合の制御は,基本的にはチップ
セットを用いた場合と大差ありません〔図2(b)
〕
.SATA の
自動制御
チップセット内
HBA
CPU
制御部はPCI などのバスに接続されているため,CPU から見
HDD
App2
FIS(応答など)
PCIバスなど
るとチップセット内の機能を使うのか,SATA 制御LSI の機
(a)チップセットを用いた場合
能を使うのか,ということで,本質的な差はありません.
説明が前後しますが,SATA の制御系を一般には HBA
App3
チップセット
(Host Bus Adapter)と呼びます.チップセット内に搭載
メイン・メモリ
されている SATA の制御系も HBA の一つになります.
(3)ブリッジ LSI を用いる場合
5
FIS(命令など)
自動制御
CPU
FIS(命令など)
HDD
SATA制御LSI
ブリッジ LSI は,SATA を別のインターフェースに変換
FIS(応答など)
PCIバスなど
します.図 2(c)は PATA(Parallel ATA)-SATA ブリッ
(b)SATA制御LSIを用いた場合
ジ LSI を用いているシステム構成例です.
ブリッジ LSI はインターフェースの変換しか行わないの
チップセット
で,CPU がデータ転送をすべて制御しなければなりませ
メイン・メモリ
ん.この場合,習熟が必要なのは変換後のインターフェー
CPUが制御
FIS(命令など)
スのプロトコル制御となります.PATA ブリッジを用いた
場合の制御方法はここでは割愛します.
CPU
HDD
PATA SATA
FIS(応答など)
PCIバスなど
(c)ブリッジLSIを用いた場合
図2
ハード・ディスクを使う場合のハードウェア構成
Design Wave Magazine 2008 November
51
Fly UP