少し間が空いてしまったが、消え去った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も怪しいが、これが当初の仕様にあったかどうかは確認できなかった)。
週刊アスキーの最新情報を購読しよう
本記事はアフィリエイトプログラムによる収益を得ている場合があります