Advanced Technology Attachment

Advanced Technology Attachmentは、パーソナルコンピュータ  とハードディスク  間のインタフェースのひとつである。1989年に制定され、1990年代に主流となっていた。

1. 歴史
-----

本節での容量の単位は、一般的な1024をキロ  としているので、1000をキロ  とするHDDメーカーと異なることに注意されたい。

1.1. IDE
--------

PC/ATのハードディスクインタフェースは、当初ST-506、次いでST-506を高速化したESDIやSCSI等が使用されていたが、次第にST-506をインテリジェント化した1986年にコンパックとコナー・ペリフェラルが開発したIDE  が大勢を占めるようになった。

その後、各社独自の拡張が行われ、互換性に問題が出てきたため、1989年に各HDDメーカが共通仕様であるATA  を制定し、1994年にANSIでATA-1として規格化された。

IDE HDDには、504Mバイトを超える容量が認識されないという問題があった。これは「504MBの壁」といわれ、1993年頃までに発売されたPCではこの問題がある。HDD側のパラメータとPC/ATのBIOS  のパラメータのミスマッチに起因する。ただし、504MBの壁は、あくまでIDE HDDとPCのBIOSの組み合わせにより生じる問題であり、HDD側ではもっと大きな容量のアドレッシングが可能である。すなわち、一般には「504MBを境にEIDE HDDとIDE HDDが分かれる」と思われている場合があるが、実はHDD側にはそのような区別はない。

1.2. EIDE
---------

EIDE  とは、一般にIDE HDDの504MBの壁を超えるための規格として認識されているが、実際は以下のようなさまざまな拡張規格の総称である。ウェスタン・デジタルが提唱した。

504MBの壁を超えるための拡張
Logical Block Addressing  の導入
CHSトランスレーションの導入
ATAPIによるCD-ROMやリムーバブルディスクのサポート
転送モードの追加による高速化
プライマリ/セカンダリポートの標準化による最大4台のデバイスのサポート504MBの壁は、BIOSのCHS  をIDEのCHSに直結させていることが原因なので、途中でうまく変換してやることにより回避できる。その手段として、LBAとCHSトランスレーションが導入された。

LBAは、BIOSからHDDに対するアドレッシングをCHSでなく単一の連番で行う。
CHSトランスレーションは、BIOS内部でCHSの変換を行い、CHSの範囲を有効活用する。なお、LBAはHDD側でCHSレジスタを読み替えることで実現されており、アドレッシング可能な範囲はほとんど変わっていない。すなわち、HDD側ではLBAに対応することでとくに容量上限を増やせるわけではない。

1.3. ATAPI
----------

ATA Packet Interfaceの略。 HDDなどの非ATAPIのATAデバイスでの通信のデータに相当する部分にSCSIと同等のパケット形式のコマンドを発行することにより、ATAコマンドより多くのコマンド種が必要なCD-ROMのようなHDD以外のデバイスの接続を可能とした規格。一般には、CD-ROM等をサポートしたIDEとして認識されている。当初SFF-8020という規格だったが、ATA/ATAPI-4でATA規格に統合された。

1.4. 48bit LBA
------------------------

従来の28ビットLBAを48ビットに拡張し、128ペビバイトまでの容量を扱えるようにした規格。ATA/ATAPI-6で採用された。BigDriveはMaxtor社が発表したATAの拡張規格につけた名前で、ATA規格では48bitLBAと呼ばれる。

HDDをリセットした直後は従来モード  で動作し、ホストよりコマンドで48bitLBAモードに切り替える。切り替えた後はアドレスレジスタの意味が変わり2度書き込むことで1つのアドレスと解釈されるようになる。

この規格に対応したHDDを未対応の機器およびOSに接続すると、切り替えが発生しないため128GiBのドライブとして動作する。

規格上、従来の28bitLBAのパラレルATAコントローラでも48BitLBAは使えるように考慮されているため、動作するオペレーティングシステム並びにデバイスドライバが対応していれば、全領域利用可能である。ただし、ブートデバイスとして利用する場合にはBIOS側が対応する必要があり、非対応の場合はブートストラップローダに加工するか、起動に必要なシステム/データがBIOSが管理できる領域に入っている必要がある。

1.5. 規格のあゆみ
-----------

ATA/ATAPIの規格概要を以下に示す。

ATA-1 IDEの規格化 ATA-2 PIO 3,4 Multiword DMA 1,2追加による高速化 ATA-3 Singleword DMAの削除、リムーバブルメディアのサポート、S.M.A.R.T.対応。2.5インチHDD向け44ピンコネクタ規格制定 ATA/ATAPI-4 ATAPIの統合。スキャナ、プリンタ、メディアチェンジャー等SCSI準拠の多種デバイスのサポート。UltraDMA 0, 1, 2のサポート。コンパクトフラッシュ向けコマンドのサポート ATA/ATAPI-5 UltraDMA 3, 4のサポート。80ピンケーブルの規格制定 ATA/ATAPI-6 UltraDMA 5、48bit LBA のサポート ATA/ATAPI-7 UltraDMA 6のサポート。1.8、2.5インチHDDの3.3V規格定義。ストリーミング向けコマンドのサポート。シリアルATA1.0の仕様が追加。 ATA/ATAPI-8 コマンドセット ベリファイ付きWriteコマンド、疑似エラー発生コマンドのサポート。ハイブリッドHDD向けコマンドのサポート ATA-8 伝送規格は審議中

2. パラレルATA
----------

2.1. パラレルATAとは
--------------

シリアルATAが登場して以降、旧来のパラレル通信を行うATA規格を区別するレトロニムであり、正規の規格名称ではない。しかし本節および本節の下層節では可読性向上の便宜を図るため、シリアルATA登場以前の規格を含めて「パラレルATA」と表記する。シリアルATA登場以前の規格は単にATAと称されていたが、それらをここではパラレルATAと記述していることに留意が必要。 パラレルATAでは、ケーブル1本あたり、最大2台の機器が接続可能である。リセット時などにマスター側の機器がスレーブ側の機器を制御するタイミングがあるが、基本的にはホストから独立して制御できる。

2.2. ケーブル
---------

パラレルATAは規格制定当初40芯、Ultra DMA 66  以降は80芯40pinコネクターのフラットケーブルを用いて接続し、ケーブル長は最大18インチ  と規定されている。80芯フラットケーブルを用いたものであってもコネクタのコンタクトの数は従前同様40である。

2.2.1. 80芯ケーブル
--------------

80芯ケーブルは、信号線とグラウンド線を交互に配置し、40芯ケーブルの伝送特性を改良したものである。使われるコネクタには、GND信号が偶数ピンまたは奇数ピンに割り当てられる二つの仕様があり、それぞれコネクタに刻印されている ODD GND または EVEN GND の文字列で区別することが出来る。多くの市販ケーブルや、製品としてPCに組み込まれているコネクタはODD GNDの物である。柔軟な配線取り回しや筐体内の気流改善を目的として使われるスマートケーブルは、シールド付き40芯ケーブルを使うため、「Ultra DMA 66 対応」を謳うものであっても80芯フラットケーブルの特性を保持できないことがあり障害の原因になることがある。80芯ケーブルではケーブル部はすべてフラットケーブルであり、40芯ケーブルの一部に見られたリボンケーブルを用いたものはリボンケーブル用80芯コネクタが製造されなかったことからケーブルアセンブリとしても製造されていない。

コネクタには色分けがあり、デバイス側から見た場合、全40Pinのコンタクトにおいて下記の違いがある。なお、20Pinは逆差し防止の為のピンであり、埋められていたり、接点が無いこともある。

黒:全ピンある。
青:40芯ケーブルとの識別の為、34PinがケーブルではなくGNDに接続される。
灰:ケーブルセレクトの為、28Pinが存在しない。デバイス側ケーブル端から見て2番目に配される。製品に組み込み済みのものなどでは、全ピン結線の黒コネクタや青コネクタを用い、適宜ピンを抜いてケーブルセレクトを実装している製品もある。

2.2.2. ケーブルセレクト
---------------

80芯ケーブルには、ケーブルへの接続位置でマスタースレーブを設定するケーブルセレクトという機能が実装されている。

40芯ケーブルのケーブルセレクトケーブルセレクト対応の40芯ケーブルは実装手法が2種類あり、80芯ケーブル同様にスレーブデバイス用のコネクタから28Pinコンタクトを除去する方法と、フラットケーブルの途中でライン28を切断手法があった。28Pinコンタクトを除去する方法は80芯ケーブル登場以降そのコネクタを流用したものであり、40芯ケーブルが主流であった頃の実装はケーブルのライン28を切断加工する方法がほとんどであった。このため残存する40芯ケーブルがケーブルセレクト対応であるか否かを判別する方法にケーブル外観から切断部分を見つける方法が紹介される場合があるが、確実な判別方法ではない。また、後者のケーブルセレクト対応40芯ケーブルの場合、80芯ケーブルと異なりデバイス側ケーブル端がスレーブとなるので機器接続の際には注意が必要である。

2.3. 転送モード
----------

パラレルATAはその長い歴史を反映して数々の転送モードが存在する。

2.3.1. PIO転送モード
---------------

PIO  転送モードは、CPUが直接IDEコントローラI/Oポートを経由してデータの送受信を行う。

5種類のモードが存在するが、基準となるクロック周波数が異なるだけである。全てのATA機器は機器転送速度、転送モードのネゴシエートの為、PIO Mode 0をサポートする。

今日でも、速度を必要としない機器はこのモードのみをサポートする。

2.3.2. Singleword DMA転送モード
--------------------------

Singleword DMAモードは、IBM PC本体に搭載されていた8ビットのDMA転送が可能なDMAコントローラを用いて転送を行うことを想定したモードである。これはATA/ATAPI-3規格において廃止されている。

2.3.3. Multiword DMA転送モード
-------------------------

Multiword DMAモードは、PC/ATで拡張された16ビットのDMA転送が可能なDMAコントローラを用いて転送を行うことを想定したモードである。ハードディスクではUltra DMA規格化後はあまり使用されていないが、光ディスクドライブでは前述したATAPIの転送モードとして用いられることが多い。

2.3.4. Ultra DMA転送モード
---------------------

Ultra DMA転送モードは、ATA/ATAPI-4以降で追加されたチップセットやUIDEコントローラカードに搭載された、専用の高速なDMAコントローラを使用して転送を行うモード。転送時のデータにCRCを付加し、信頼性を向上させている。

2.4. その他
--------

UDMA 6において、32ビット 33MHzのPCIと同じ、最大133Mbytes/secでの転送が可能となっているが、これは、あくまでもバスの転送帯域である。HDDに搭載されているキャッシュメモリからのデータを転送する時にのみ、額面通りの性能が発揮できるが、ほとんどの場合はハードディスクの読み出し速度が追従できない。また、SCSIでは普通に用いられている、コマンド投入からデータ転送開始までの間、バスの開放を行い、バスの使用効率を上げる仕組み  は、ATA / ATAPI-6以降で規格化されているものの、実装されている機器はほとんど存在しないため、複数デバイスがある場合のスループットは数値から期待されるほどは高くないのが普通。

3. シリアルATA
----------

4. 関連項目
-------

SASI
SCSI 
ST-506
ESDI
シリアルATA
RAID
ATA over Ethernet
転送速度

5. 外部リンク
--------

5.1. パラレルATA
------------

[1]
[2]
[3]
[4]
[5]

5.2. シリアルATA
------------

[6]
[7]