HDDのコントローラーとI/Fを一体化して爆発的に普及したIDE 消え去ったI/F史
ASCII.jp / 2024年4月29日 12時0分
少し間が空いてしまったが、消え去ったI/F史の今回の話はIDEである。IDEの生みの親はConner Peripheralsであり、同社のCP341が最初のIDEを利用した製品である。
Conner氏が開発したI/Fを COMPAQが採用して業界標準に
Conner Peripheralは連載374回で取り上げたが、簡単に説明するとSeagate Technology創業者の1人であるFinis F. Conner氏がSeagateを退社後に立ち上げたConner Peripheralsで3.5インチHDDを開発する。
この際にHDDのコントローラーとI/Fを一体化したものを開発。これのプロトタイプをCOMPAQに持ち込んだところ直ちに採用が決まり、大量出荷が始まった。競合メーカーも互換製品を製造、結果的に業界標準になったというものだ。
ちなみにConnerがIDEのプロトタイプをCOMPAQに持ち込んだのは1986年頃で、1987年にConnerが出荷したHDDの9割はCOMPAQが買い取っている。とはいえ、まだ従来のST-506 I/Fやその改良型のESDIのI/Fを搭載した製品も少なくはなかった。
下の画像はPC Magazine 1990年5月15日号に掲載されたHARD DRIVE Internationalというショップの広告であるが、まださまざまな方式のHDDが販売されていたのがわかる。ただ筆者の記憶で言えば、1992年頃からはもうHDDと言えばIDEとSCSIがメインで、ST-506やESDIのHDDは入手不能とまでは言わないまでも、かなり数を減らしていたように思う。
さて、IDEはIntegrated Drive Electronicsの略である。SASIやST-506、ESDIといったI/Fは、ホストとのI/FとHDDのコントローラーは別々になっており基板が2つ必要だった。これを簡単化し、1つの基板でホストとのI/FとHDDのコントローラーをまかなえるようにしたので"Integrated"という名前がついたわけだ。
ちなみにSCSIは最後までホストとの接続のためのI/Fに留まっており、HDDなどのコントロールは別の制御基板が必要になっている。それに比べて安価に実装できる、というのがIDEの売りだったわけだ。これを実現するために、IDEでは本来HDDのコントローラーが担っていた処理を、一部バスプロトコルに持ち込んだ。それがCHSと呼ばれる場所指定の方式である。
前回のSASIの時も少し書いたが、SASIやSCSIはバスプロトコルには「どんなデータを流すかは一切関与していない」。したがって「HDDのどこからどういうふうにデータを読み出すか、あるいはデータを書き込むか」に関しては、そのSASIなりSCSIの上位プロトコルで解決していた。
要するにコントローラーに対してホストから「HDDのここからこういう具合に読み/書きせよ」と命令を送る形になっていた。
これに対してIDEでは、当初からCHS(Cylinder/Head/Sector)というパラメータを送る仕組みや、明示的にRead/Writeのコマンド、さらに転送速度などがバスプロトコルに組み込まれた。IDEの配線は下表のとおり。
40本の配線をフラットケーブルで接続するという形になっている。うちPin 20は逆挿し防止のキーになっており、冒頭の画像でもここだけピンがないのがわかる。データ幅は16bitで、当初のサイクルタイムは600ナノ秒ほど。つまり3.3MB/秒であった。これはのちにPIO Model 0と定義される。
ちなみに上の表は、当初Connerが策定したIDEの仕様そのものではなく、続くATA-1として標準化される予定のモノである。なにが違うか? というと、当初の仕様にはDMA転送が含まれていない。DMA REQUESTやDMA ACKNOWLEDGEの信号は、後で追加されたものである(HOST 16 BIT I/Oも怪しいが、これが当初の仕様にあったかどうかは確認できなかった)。
IDEの仕様をCOMPAQが開示 普及を促進するも、独自に拡張するものが出てくる
IDEはまずCOMPAQのマシンに搭載されることになったわけだが、COMPAQはConnerだけからHDDを調達したわけではなく、ほかのHDDメーカーからも同じ仕様のHDDを調達している。これにともないIDEの仕様がCOMPAQからHDDメーカーに開示されることになった。
この結果として他のメーカーもIDEのHDDを手掛けるようになるわけだが、そうなると独自拡張を施すものが出てくる。HOST 16 BIT I/Oが怪しいというのはまさにこのあたりである。IDEは基本16bitでの転送で、これはIDEのコントローラーが16bit幅のISAカードなので、これに合わせているわけだ。
ただISAには8bitのXT互換動作モードもある。実際8bit幅のIDEコントローラーカードも実在している。ただこうなると、16bitでデータを受け取ってしまうとコントローラーカード側でこれを2回の8bit転送に分割する(逆に書き込みの際は2回の8bit転送をまとめて16bit幅にしてHDDに送り出す)必要がある。
これは面倒なので、8bitのIDEコントローラーを使う場合は、HDDからの転送も8bitに制限することで帯域を合わせようという仕組みで使われるのがHOST 16 BIT I/Oという信号である。この信号がない場合、HDDとのやりとりはDD0~DD7までの8bit幅で行なわれ、DD8~DD15は未使用になる。
確かCOMPAQのIDEコントローラーカードは全部16bit ISAだった記憶があるので、この機能を持ち込んだのはCOMPAQ以外ではいかと筆者は疑っている。DMAもそうで、これを利用するとコントローラーカードはISAバスに対してDMA転送でデータの送受信を行なう。このため、600ナノ秒よりもっと短い時間で転送が可能であり、HDDの転送速度をもっと引き上げることが可能になった。
ただこれも確かCOMPAQの当初のコントローラーカードにはなかった機能である。結果、多くのメーカーがIDEを独自拡張した製品(コントローラーカードとHDDの両方)を出すようになり、混乱し始めた。そこでANSIでこのIDEの標準化をしようという機運が高まる。
最終的にこれはANSIで1994年にX3.221-1994として標準化が完了した。先の表は、このX3.221-1994のドラフトから持ってきたものである。X3.221-1994では規格の名前をAT Attachment for Disk Drives、通称ATAと定めた(ATA-1ではない)。
ただし、続く1996年にはANSI X3.279-1996がAT Attachment Interface with Extensions(ATA-2)としており、1997年にはANSI X3.298-1997がAT Attachment-3 Interface(ATA-3)、1998年にはAT Attachment with Packet Interface Extension(ATA/ATAPI-4)と毎年のように新仕様が登場しており、こうした流れから最初のものはATA-1と呼ばれることも多い。
このATAシリーズ、最終的には2009年にANSIの諮問機関であるINCITS(International Committee for Information Technology Standards:情報技術規格国際委員会)からINCITS 452-2009としてATA8-ACS(ATAPI Command Set)がリリースされている。ただ世間的にはその前の2005年に出たATA/ATAPI-7でATA/ATAPIの利用はほぼ終わりになっており、この後はSerial ATAへの移行が進んでいる。
実際製品という観点でも、一部のメーカー(主にMaxtor)くらいしかATA-7を採用したメーカーはく、ほとんどのメーカーは2002年に出たANSI INCITS 361-2002で策定されたATA-6への対応を最後に、SATAへの移行をスタートしている(ATA-8で策定された167MB/秒の転送モードは、コンパクトフラッシュでのみ採用された)。
ただこのATA-X(X:1~8)と言う呼び方はあまり一般的ではなく、EIDE(Enhanced IDE)と呼ぶ方が一般的だった。これは正式名称ではないのだが、こちらの方が通りが良い。ただATA-4以降になると、実際に速度がどの程度かわかりにくくなってきた。それもあってATA-4をUltraATA 33、ATA-5をUltraATA 66、以下UltraATA 100/133などと呼ぶのが一般的になっていた。
初期のHDD最大容量は504MB 現在は128PBにまで増大
一連のATA/ATAPIの仕様をまとめたのが下表である。ここで"○"は対応している転送モードを示す。例えばATA-3ならPIO Mode 0~Mode 4とMulti-Mode DMA Mode 0~2に対応しているが、Single Mode DMAには未対応というわけだ。
表にあるLBAとは、Logical Block Numberのことである。当初のIDEは先にも触れたCHSというパラメーターでHDD上の位置を指定していた。これはC(シリンダ番号:プラッター上の円周の位置)、H(ヘッド番号:どのヘッドを使うか)、S(セクタ番号:円周上の位置)を指定してアクセス箇所を定めるという方式であるが、HDDとPCのBIOS側でCHSとして扱える範囲がなぜか異なっており以下のようになっていた。
この関係で、Cは0~1023、Hは0~15、Sは1~63となり、1セクター512Bytesでは最大504MB(1024×16×63×512Bytes=528,482,304Bytes=504MB)に限られてしまう、という意味不明な制約があった。
要するに504MBを超えるHDDはその容量を使いきれなくなってしまうわけだ。これを回避するため、CHS Translation(1024を超えるシリンダー数について、それをヘッドが増えたように見せかけることで回避する)が考案され、最大8.4GBまでのHDDが利用できるようになったが、これも一時的な対策でしかなかった。
また、初期のHDDはプラッター上の最外周と最内周が持つセクターの数は一致していたが、記録密度が向上してくると最外周には多くのセクターが格納できるようになり、内周になるほどセクター数が減るという不均一な構成になり、そもそもCHSのモデルが崩壊している。
そこでCHSの方式をやめ、一番上のプラッター(ヘッド番号0)の最外周の先頭セクターを0とし、そこからセクターごとにアドレスを振っていくというLBAで管理する仕組みがATAで導入された。ATAでは22bit、つまり最大419万4304個のセクターを管理可能で、この際のHDDの最大容量は2GBに過ぎなかったが、ATA-2でこれは28bit、つまり128GBに拡張。ATA-6では48bit、128PBの容量を可能にしており、今のところまだこれで不足するという話は出ていない。
表にあるPIOはPort I/Oの意味だ。CPUからI/O命令を利用して、2Byte(16bit)単位で読み取っていく方法。当然ながらCPUの負荷は大きく、性能も出ない。
Single word DMAは、コントローラーから直接DMAを利用してデータの読み書きを行なうので、CPUの負荷が大幅に減り、転送速度も上る方法だ。ただしDMA転送はたったの1word(2Bytes)単位なので、DMA転送のオーバーヘッドそのものがバカにならず、性能も上りにくい。これもあってATA-3では廃止されてしまった。
Multi word DMAは名前の通り、複数wordのDMA転送をまとめて行なう方式であり、これによりDMAのオーバーヘッドが大幅に削減された。
Ultra DMAは、コントローラーとホストの間の転送方式そのものはMulti word DMAと同じで、異なるのはコントローラーとHDDの間の転送方式である。IDEの配線表でHost I/O Write/Read(Pin 23/25)は本来はPIO mode用の信号だが、Ultra DMAではここにDMA readyおよびData Strobeという信号を割り当て、このData Strobeを利用してコントローラーとHDDでのバースト転送を行なった。結果、転送速度をMulti-mode DMAの場合の2倍に引き上げることに成功している。
ちなみに1998年からはATAに加えてATAPI(AT Attachment with Packet Interface Extension)も追加されている。これはATAのI/FにHDD以外のドライブを接続するためのものである。CD-ROMが一番代表的であるが、ほかにもMOドライブやZipドライブなどもATAPI対応の製品が投入された。
ATAPIは名前のとおり、ATAのI/Fを経由して任意のデータパケットを通す拡張機能であり、極端なことを言うとSCSIデバイスにSCSI/ATAPIのブリッジをつないで、IDEの上にSCSIプロトコルを流して接続できる。初期には本当にそういうデバイスが存在した。
あと2000年にリリースされたATA-5の世代、転送モードで言えばUltraDMA Mode 3以上に関しては、従来の40pinのフラットケーブルに代わり、80pinのフラットケーブルが用いられるようになった。といっても信号ピンそのものは40pinのままである。
ではなぜ80pinのケーブルが利用されているか? 下図の左側が、従来の40pinケーブルで、コネクターのピンとフラットケーブルの配線が一対一対応になっている。対して80pinの方は右図のように、80本の配線のうち半分はそのままコネクターにつながるが、残りの40本はまとめてGNDに接続されるようになっている(実際にはコネクターのPin 2やPin 40などにつながっている模様)。
なぜこんなことになったかと言うと、信号速度が速くなりすぎて、配線同士での干渉が無視できないレベルになってきたので、信号線の間にGND線を挟み込んで、ここで干渉の影響を緩和しようというわけだ。この80pinケーブルで、一応ATA-7のUltraATA Mode 6(133MB/秒)まで利用可能になった。
Serial ATAが標準化 次第にSATAに移行していく
以上のように1990年台から2000年台前半にかけては圧倒的な普及ぶりを誇ったEIDEであるが、2000年にSerial ATAの最初の標準化が完了した。2002年頃からSerial ATAに対応した製品の市場投入が始まり、2005年頃にはもうSerial ATAが主流になった。理由はいくつかある。
①フラットケーブルの幅は50mmほどあり、取り回しにけっこう苦労する。しかも全長は仕様上46cmに限られ、大きなケースでは届かないこともしばしばある。これを超えるケーブルも市販され、またフラットケーブルではなく間をほぐして丸くした(スマートケーブルなんて商品名で販売されていた)ものも存在したが、取り回しはそう楽にならなかった。おまけに仕様を外れているので、動く時もあれば動かない時もあった。
②1本のケーブルに最大2台までしかHDDやATAPI機器を接続できず、拡張性に乏しかった。このあたりはもっと台数をつなげるSCSIの方が柔軟性が高かった。
③データの通信方式が、リファレンスクロックに合わせる同期式ではなく、Strobe信号などを利用してハンドシェイクする非同期式で、これ以上の高速化が困難だった。
④コネクターが大きいため、小型化には適さなかった。2.5インチHDD用に44pin化したうえでコネクターの寸法を小さくしたものもATA-3で追加されたが、それでもまだ大きかった。
⑤2台のHDDのマスター/スレーブの設定はジャンパーピン(40pinコネクターと電源コネクターの間にある8本のpinにジャンパーピンを装着する)で設定する必要があり、Plug & Playからほど遠い状況だった。もちろんHot Plug&Unplugなどには未対応だった。
2005年頃には、EIDE HDDをSATA I/Fに接続するためのアダプターなども販売されており、2010年台に入るともうほとんどEIDEに対応したHDDは見かけなくなった。
ちなみに2000年台中頃からは、Serial ATA/SATAとの対比でParallel ATAあるいはPATAと呼ぶことも増えてきた。理由の1つにはチップセット側の対応もあるだろう。インテルで言えば、連載37回で示したIntel 965~45世代のロードマップを見るとわかるが、2007年のGM965にはまだPATAが残っているが、2008年のGM45ではPATAが消えてSATAのみになっている。
これに先んじてHDDはSerial ATAに移行しており、このGM965世代でのPATAの主な用途はCD-ROM/DVD-ROMなどの光学ドライブ向けとなっていた。IDE/EIDEは技術の発展に追従できずに消えていった、というべきなのだろう。
この記事に関連するニュース
-
スマートデジタルミラー「LMR-001」登場!カー用品メーカー『MAXWIN』とドラレコ専門サイト『LaBoon!!』が共同企画
@Press / 2024年5月15日 9時0分
-
TerraMaster D5 Hybrid、5ベイ・USB 3.2 10Gbps対応・大容量HDD+高速NVMe SSDのハイブリッドストレージ
PR TIMES / 2024年5月14日 19時15分
-
277もの特許を使用して標準化した高速シリアルバスIEEE 1394 消え去ったI/F史
ASCII.jp / 2024年5月13日 12時0分
-
キーボードとマウスをつなぐDINおよびPS/2コネクター 消え去ったI/F史
ASCII.jp / 2024年5月6日 12時0分
-
PCI-SIG、OCuLinkの後継となるCopprLink Cable Specification 1.0をリリース
マイナビニュース / 2024年5月6日 8時0分
ランキング
-
1貼り付ければOK、配線不要の小型ドライブレコーダーを実際に試してみた 画質やWi-Fiスマホ連携の使い勝手を検証
ITmedia Mobile / 2024年5月21日 12時30分
-
2今なら最大3500ポイント獲得 銀行の振込手数料を0円にする「エアウォレット」
ASCII.jp / 2024年5月21日 7時0分
-
3Xアカウントの乗っ取りDMが再流行中 インスタグラムへのリンクに見えるけど……じゃない!
おたくま経済新聞 / 2024年5月21日 18時6分
-
4加護亜依、夫が1年前から病魔に襲われ……“嫌がらせ記事”と発覚時期かぶり「メンタル凹んでるときにダブルでやられて」「苦しかった」
ねとらぼ / 2024年5月21日 13時40分
-
5クライアントのダメ出しに"ボロ泣き"した彼女が、電通デジタル史上最年少女性マネージャーに抜擢されたワケ
マイナビニュース / 2024年5月21日 8時0分
記事ミッション中・・・
記事にリアクションする
記事ミッション中・・・
記事にリアクションする
エラーが発生しました
ページを再読み込みして
ください