ATA (AT Attachment interface) の歴史と技術詳細
ATA (AT Attachment interface) は、
パーソナルコンピュータ (PC) と
ハードディスクドライブ (HDD) を接続するためのインタフェース規格です。
1989年に制定され、
1990年代には主流の技術となりました。本記事では、ATAの歴史、技術的な詳細、および関連する規格について解説します。
IDE (Integrated Drive Electronics) と 504MB の壁
初期のPC/ATでは、ST-506 や ESDI、SCSI といったハードディスクインタフェースが使用されていましたが、
1986年にコンパックとコナー・ペリフェラルが開発したIDEが普及しました。IDEはドライブとコントローラを統合することで、簡素化と低コスト化を実現しました。
しかし、IDEには504MBを超える容量のHDDを認識できないという問題(504MBの壁)がありました。これは、HDD側のパラメータとPC/ATのBIOS (INT 13H API) のパラメータのミスマッチが原因でした。この問題は、1993年頃までに発売されたPCで多く見られました。ただし、これはIDE HDDとPCのBIOSの組み合わせによる問題であり、HDD自体には容量の制限はありませんでした。
EIDE (Enhanced IDE) と規格の拡張
504MBの壁を克服するために、ウェスタン・デジタルが提唱したEIDEが登場しました。EIDEは、複数の拡張規格を包含する総称であり、以下の技術的向上を含んでいました。
Logical Block Addressing (LBA): CHS (Cylinder, Head, Sector) ではなく、単一の連番でHDDをアドレス指定する方式。
CHSトランスレーション: BIOS内部でCHSを変換することで、CHSの範囲を有効活用する方式。
ATAPI (ATA Packet Interface): SCSIと同等のパケット形式のコマンドを用いることで、CD-ROMなどのHDD以外のデバイスを接続可能とした規格。
転送モードの追加: PIO、Singleword DMA、Multiword DMA、Ultra DMAといった転送モードを追加し、転送速度を向上。
プライマリ/セカンダリポートの標準化: 最大4台のデバイス接続を可能に。
LBAはHDD側でCHSレジスタを読み替えることで実現されますが、アドレス指定可能な範囲は大きく増加するわけではありませんでした。CHSトランスレーションはBIOS側の変換によってCHSの範囲を有効活用するものでした。
48bit LBA (BigDrive)
28ビットLBAを48ビットに拡張した48bit LBA (BigDrive) は、最大128ペビバイトの容量を扱えるようにした規格です。ATA/ATAPI-6で採用されました。HDDをリセットした直後は従来モード (28ビットLBA) で動作し、ホストからのコマンドで48bitLBAモードに切り替わります。しかし、未対応の機器やOSでは、128GiBのドライブとして動作する(127GiBの壁)問題が発生しました。
パラレルATA の詳細
シリアルATAが登場する以前のATA規格を、ここではパラレルATAと呼びます。パラレルATAでは、ケーブル1本あたり最大2台の機器を接続できました (マスタースレーブ接続)。ケーブルには、40ピンと80ピンのフラットケーブルがあり、ケーブル長は最大18インチと規定されていました。80ピンケーブルは、信号線とグラウンド線を交互に配置することで、40ピンケーブルよりも伝送特性が向上していました。また、ケーブルセレクト機能により、ケーブルへの接続位置でマスタースレーブを設定することができました。
転送モード
パラレルATAは、以下の転送モードを持っていました。
PIO (Programmed Input / Output): CPUが直接データの送受信を行う。
Singleword DMA: 8ビットDMAコントローラを使用。ATA/ATAPI-3で廃止。
Multiword DMA: 16ビットDMAコントローラを使用。
*
Ultra DMA: 専用の高速DMAコントローラを使用。CRCによる信頼性向上。
シリアルATA
シリアルATAは、パラレルATAの後継規格として登場した高速なインタフェースです。本稿では詳細には触れませんが、パラレルATAと比較して高速な転送速度と、より柔軟な接続性を提供しました。
まとめ
ATAは、PCとHDDの接続技術として長年にわたって進化を遂げてきました。504MBの壁や127GBの壁といった課題を克服しながら、高速化と大容量化を実現してきました。IDE、EIDE、そしてシリアルATAと、それぞれの規格が持つ特徴を理解することで、PC周辺機器の歴史と技術的な発展をより深く理解することができるでしょう。