初期の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として扱える範囲がなぜか異なっており以下のようになっていた。
CHSとして扱える範囲 | ||||||
---|---|---|---|---|---|---|
HDD側 | BIOS側 | |||||
C | 0-65535 | 0-1023 | ||||
H | 0-15 | 0-254 | ||||
S | 1-255 | 1-63 |
この関係で、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/秒)まで利用可能になった。
週刊アスキーの最新情報を購読しよう
本記事はアフィリエイトプログラムによる収益を得ている場合があります