この文書は、Serial ATA (SATA) development resourcesを著者のJeff Garzik([email protected])に許可を得て、五十嵐 正尚([email protected])が翻訳し、GentooJPで公開しているものです。翻訳版に関することは訳者に連絡してください。
日本語翻訳版 最終更新日 2005-05-17
ATAは歴史的な慣習と仕様がすばらしいほどに腹立たしく混合されたものです。 パラレルATA (PATA)は、電気的なバス上の信号を操作するためにOSドライバを必要とします。 シリアルATA (SATA)は、一般的にはATAコマンドやデータを含むパケットを送信することような、より高レベルの働きをするOSドライバを必要とします。
コマンドセットのレベルにおいては、OSドライバは、以下の二つ、もしくはそれ以上のコマンドセットで動作しなければなりません。 ベーシックATAコマンド。 ATAPIコマンド("大部分はSCSI/MMC")。 完全なSCSIコマンド。 各コマンドセットは、デバイスのクラスに関連付けされています。 ATAコマンドセットのドキュメントはかなり整備されております。 一方、ATAPIはほとんど整備されていません。 ときどき、デバイスの振舞いの背景にある原理を見つけるために、長い間重版されてない/絶版になった仕様書を掘り出して自分自身で探す必要があります。
ATA/ATAPI-7:
vol. 1、
vol. 2、
vol. 3
ATA/ATAPI-6: spec(訳注: 仕様)
ATA/ATAPI-5: spec(訳注: 仕様)、proposed errata(訳注: 改訂案)。
ATA/ATAPI-4: spec(訳注: 仕様)、errata(訳注: 改訂箇所)。
ATA-3: (withdrawn 2002(訳注: 廃案 2002)): spec(訳注: 仕様)
ATA-2: (withdrawn 2001(訳注: 廃案 2001)): spec(訳注: 仕様)
ATA-1: (withdrawn 1999(訳注: 廃案 1999)): spec(訳注: 仕様)
このコマンドセットに加えて、これらドキュメントにはPATAプロトコルと電気的な仕様も記述されており、SATAも(ATA/ATAPI-7で)記述され始めています。 現在のところ、シリアルATAの開発者はwww.serialata.orgにあるドキュメントも徹底的に読んでおくことをお勧めします。
SATA 1.0a spec(訳注: SATA 1.0a仕様)が、ベーシックSATA仕様です。 この情報は、ATA/ATAPI-7に受け継がれていますが、ここにあるSATA仕様の方がいつもより新しい情報です。 1.0aのPDFファイルは、一部のPDFリーダで開くのに異常に長い時間がかかりますが、辛抱してください。 10分から20分かかることもあります。 一度開いてしまえば、そこそこの速度で読み進めることができます。
SATA、SATA IIの次のリビジョンは、SATA II 1.2 spec(訳注: SATA II 1.2仕様)にあります。 特に、ネイティブコマンドキューイング(NCQ)、非同期通知機能(CD-ROMの常時監視をなくす)、その他機能が記述されています。
それ以外のとても興味深い仕様(現時点で)にPort Multiplier specがあります。Port Multiplierによって、単一のSATAポートに一つだけでなく複数のディスクを割り当てることができるようになります。
関連する規格は、 MMC、 MMC-2、 MMC-3、 MMC-4、 MMC-5です。 ほとんどの人がSFF 8020iに心底消えて欲しいと考えていますが(もう無効なんですよ。Jim)、今でもまだ使われている古いATAPIデバイスを動かす場合に、残念ながら参照する必要があります。どこかにあるコピーを探してください。
一世代目のSATAコントローラは、同様にその設計に従っています。 通常の一世代目のチップは、PATA<->SATAブリッジチップに既存のPATAチップを繋げることによる実装がされているからです。 したがって、多くのSATAコントローラは、PATAをまねて、SATA物理層を制御するための単一拡張レジスタブロック(single additional register block)で設計されています。
AHCIなどのより最近のSATAコントローラは、大体は、すべてのATAコマンドに対する非同期DMAインターフェース(DMAリング、アレイ、双方向リスト)を実装しており、より高レベルです。 "FIS"と言われる、SATAデータをパケットに分割して与えられるため、ほとんどの新しいSATAコントローラはFISベースであり、OSドライバはそれを作成し、SATA FIS構造を判別できる必要があります。
PCI規格のDMA拡張での伝統的なATAシャドウレジスタインターフェースは、ATA Host Adapter Standards spec(訳注: ATAホストアダプタ標準規格)に記述されています。 そのドキュメントには、より新しい、ほとんど一般的ではない"ADMA"ホストコントローラインターフェースも記述されています。 PATAホストコントローラインターフェースも記述されていますが、多くの一世代目のSATAコントローラは、後方互換性のためにATAシャドウレジスタインターフェースが継続採用されています。 このインターフェースは、元々SFF 8038iで記述されていました(どこにあるか誰か知りませんか)。
より新しいFISベース機構の例は、AHCI 1.0 spec(訳注: AHCI 1.0仕様)にあります。 これは、ほとんどの主要なマザーボードチップセットベンダ(Intel、VIA、SiS、ULi、その他?)によって実装されているインターフェースです。 AHCIの設計は、伝統的なATAシャドウレジスタインターフェースより、最近の新しいコンピュータには非常に効率的なものです。
garzik's sata pagesに行く。 日本語翻訳版のLinuxでのシリアルATAトップページに行く。
Copyright 2004-2005 Dunvegan Media, Inc. All rights reserved.