SATA-PATA変換アダプタを介して
ATAPIデバイスが動かないワケ



 CD-RWドライブや書き換え型のDVDドライブなど、いわゆる光ディスクドライブをシリアルATA経由で接続したいと考えているユーザはきっと多いはず。しかし、現在発売されている光ディスクドライブはパラレルATAインターフェイスを搭載しており、シリアルATAポートへの接続には、シリアルATAとパラレルATAの変換を行なうSATA-PATA変換アダプタ、しかもATAPI(ATA Packet Interface)に対応したものを中継する必要がある。

 今回は、一部のSATA-PATA変換アダプタでしか既存のATAPIデバイスが動かない理由と、その解決に向けたアプローチを解説していく。

●現在広く出回っているSATA-PATA変換アダプタが抱えている問題点

 シリアルATAは、HDDを接続するATAインターフェイスのシリアル版にあたるものだ。CD-RWドライブや書き換え型のDVDドライブなど、HDD以外のドライブを利用するには、シリアルATA上でATAPIプロトコルをサポートする必要がある。こうしたシリアル版のATAPIを一般に「シリアルATAPI」と呼んでいる。しかし、現時点において、シリアルATAPIを正式にサポートするデバイスはまだ登場していない。

 そこで、現在活用されているのが、シリアルATAとパラレルATAの変換を行うSATA-PATA変換アダプタである。このSATA-PATA変換アダプタを使用すれば、シリアルATAコントローラに従来のパラレルATAPIデバイスをそのまま接続できる。

 しかし、どの変換アダプタでもATAPIに対応できるわけではないのが問題だ。現在、ATAPIを正式にサポートしている製品は、Silicon ImageとACARD Technologyの製品くらいしかない。では、なぜすべてのSATA-PATA変換アダプタでATAPIデバイスをサポートできないのだろうか。

DMAパケットコマンドの処理に関する不具合を記載した資料
(出典:Mark Hartney - Silicon Image, Proposal to enable ATAPI devices using SATA bridges, T-13 document 03131r1, October 21, 2003)

 Silicon ImageがT13技術委員会に提出した資料(ATAPI DMA Direction Issue Presentation, T-13 document e03131r0, August 21, 2003)によれば、SATA-PATA変換アダプタに搭載されているSATA-PATAブリッジコントローラ(以下、ブリッジ)が、ATAPIのDMA転送モード(Multiword DMA転送モードまたはUltra DMA転送モード)をうまく処理できないことが非対応の原因とされている。

 現行のATA/ATAPI-6で定められた手順では、DMAパケットコマンドに含まれるアクセス要求が書き込みなのか、読み出しなのかをブリッジが判断できないことがあり、これが原因で動作不良を引き起こす。

 ブリッジがDMA転送モードの読み書き方向を判断するには、デバイス上のすでに確定されたタスクファイルを読み出す方法が理想とされている。しかし、ブリッジがATAPIデバイスにDMARQ(DMA転送の要求コマンド)をアサートし、その後にタスクファイルを読もうとしても、ATAPIデバイスが肝心のタスクファイルを正しく持っていないことが多い。

 ブリッジは、この段階で読み書き方向を確定できないと、PIO転送モードにダウングレードするか、そのままコマンドの実行中止ないしはハングアップに至る。前者に移行できればATAPIデバイスは何とか動作を継続できるものの、後者の場合にはATAPIデバイスそのものが使用できなくなる。通常は、後者の結末を迎える。

●SATA-PATAブリッジを介してパラレルATAPIデバイスをサポートする3つの方法

 この問題を解決するには、大きく分けて3通りの方法が考えられる。1つ目は、ブリッジの中にパケットコマンドをデコードするための回路やデバイスを追加するハードウェアデコード方式だ。ただし、新しいコマンドやベンダー独自のコマンドに対応できないという欠点を持っており、実際の製品に採用するのは難しい。

 2つ目は、ATAPIデバイスのコントローラ内でデコードを行ない、ブリッジとの通信に専用の信号を設ける方式だ。専用の信号を設ける都合上、ブリッジとコントローラには追加のピンが必要になる。また、デバイス間の通信には、標準化されていない特別なソフトウェアコードを用意しなければならない。この方式は、デバイスのプリント基板にSATA-PATAブリッジのシリコンを統合するソリューションでは都合がいいものの、パラレルATAデバイスに装着するSATA-PATA変換アダプタには対応できないという欠点を持つ。

 3つ目は、ブリッジにDMA転送のデータ方向を持たせる方法である。ホストドライバに加え、デバイスのDevice Configuration Dataフィールドを修正する必要があるが、ホストはすでにデータの方向を知っているため、追加のデコードは不要になる。また、SATA-PATA変換アダプタと統合チップソリューションの両方に適している。

 そこで、Silicon Imageは、3つ目の方法をATA/ATAPI-7に取り入れるようにT13技術委員会に働きかけた。同社の提案は、これまで予約済みだったパケットコマンドのFeatures Registerのbit 2を「DMADIR」と定義し、ここにデータ方向を持たせるというものだ。DMADIRが1なら読み出し要求、0なら書き込み要求である。また、Identify Packet Device Informationコマンドでデバイスから読み込まれるDevice Configuration DataフィールドのWord 63、bit 15に、この機能のサポート有無を知らせるフラグを追加する。

ブリッジにDMA転送のデータ方向を持たせるソリューション。Silicon Imageは、このソリューションをATA/ATAPI-7に包含するように提案した
(出典:Mark Hartney - Silicon Image, Proposal to enable ATAPI devices using SATA bridges, T-13 document 03131r1, October 21, 2003)
パケットコマンドへの変更内容。Features Registerのbit 2を「DMADIR」と定義し、ここにデータ方向を持たせる形とする
(出典:Silicon Image, Packet DMA Issue with Serial ATA Device Bridges (with Proposed Changes to the ATA/ATAPI-7 Specification), T-13 Document e03132r3, December 4, 2003)

 Silicon ImageからDMADIRの提案がなされた後、T13技術委員会のメールリフレクタ(いわゆるメーリングリスト)では、この提案に反対の意見を持つ人が現れた。しかし、Silicon Imageによれば、そのような反対者の多くはT13技術委員会のミーティングに参加していない人、そしてSATA-PATAブリッジの問題やSilicon Imageの提案を十分に理解していない人なのだという。

 提案を通過させるためにはメンバーの3分の2以上の賛成投票が必要だが、DMADIRの提案は、昨年10月のミーティングにおいて、賛成が16人、不賛成が0人、欠席が1人となり、事実上満場一致で通過している。つまり、T13技術委員会のメンバーの中には反対者がいないのだ。

 「昨年12月に開催されたミーティングには、弊社のProduct Marketing Managerの一人が参加した。すでにDMADIRの提案は通過しているので、このミーティングでは完成に向けた細かい最終調整を行なった」(Silicon Image, Public Relations, ManagerのSheryl M. Gulizia氏)。

●DMADIRをいち早く実装したSilicon ImageのシリアルATA製品

 Silicon Imageが発表した2003年2月18日付のプレスリリースによれば、現時点では同社のSATALink SiI 3112(シリアルATAコントローラ)とSiI 3611(ブリッジコントローラ)の組み合わせがATAPIを正式にサポートしているという。プレスリリース内では、DMA転送モードの問題をどのように解消したかまでは触れられていないが、T13技術委員会への提案内容を考えれば、DMADIRによって解決していると考えるのが自然だろう。

 念のため同社に確認してみたところ、Storage Semiconductors, Product Marketing ManagerのMark Hartney氏から次のような回答が返ってきた。

 「T13技術委員会にDMADIRの提案を行なう前から、弊社の製品にはすでにDMADIRの仕様が実装されている。SiI 3112、SiI 3114、SiI 3124、SiI 3512といったシリアルATAコントローラ向けにはDMADIRをサポートするデバイスドライバを用意し、SATA-PATAブリッジのSiI 3611にはDMADIRのサポートを追加している。弊社のコントローラ群を使用したATAPIサポートのデモンストレーションは、すでに1年以上も前から披露されており、これがあったからこそT13技術委員会でスムーズに提案が通過したものと考えている」。

 「DMADIRのサポートが非常に簡単である点も大きな特徴といえる。どんなホストコントローラも、デバイスドライバの細かな修正だけでDMADIRを簡単にサポートできる。また、ブリッジコントローラにDMADIR bitを使用することを伝えるために、光ディスクドライブ側の修正が必要だが、それも非常に細かなレベルで抑えられる。他のメンバから賛同が得られやすかった理由はここにある」。

Silicon ImageのSATALink SiI 3112(シリアルATAコントローラ)とSiI 3611(ブリッジコントローラ)。マザーボードやシリアルATAカードにSiI 3112、変換アダプタにSiI 3611を搭載したものを組み合わせることで、ATAPIデバイスをサポート可能だ

●ACARD Technologyは独自の手法でサポートか?

ACARD TechnologyのAEC-7900A。ブリッジコントローラには、自社製のARC770-Aを搭載している。IntelのICH5またはICH5-Rを搭載したマザーボードとの組み合わせで、ATAPIをサポートする

 Silicon Imageの他にATAPIデバイスのサポートをうたっている変換アダプタには、ACARD TechnologyのAEC-7900Aがある。AEC-7900Aには、ブリッジコントローラとして自社製のARC770-Aが搭載されている。

 ACARD Technologyは、ATAPI DMA Directionの問題をどのように解決し、ATAPIをサポートしているのだろうか。同社のMarketing, Product EngineerのJim Yeh氏は、ATAPIのサポートに関して次のように説明する。

 「競争が激化しているハイテク業界の現状を考慮すると、企業秘密により残念ながら弊社のテクノロジの詳細を明かすことはできない。ただし、ATAPIデバイスの動作の検証結果だけはお伝えできる。AEC-7900Aは、単純にデータのシリアル化とパラレル化を行なうブリッジコントローラであるため、ホストコントローラがATAPIプロトコルをサポートしていれば、原則的にはATAPIデバイスが問題なく動作することになる」。

 「弊社が確認したところによれば、IntelのICH5との組み合わせではATAPIデバイスが問題なく動作している。しかし、Silicon Image、Marvell Technology、VIA Technologiesといった他のベンダのホストコントローラとの組み合わせについては、Ultra DMAのサポートに互換性がないため、ATAPIデバイスがうまく動作しなかった。従って、弊社が自信をもってお勧めできるのは、ICH5とAEC-7900Aの組み合わせということになる」。

 ATA/ATAPI-7にDMADIRの仕様を含めることが決定した以上、ATA/ATAPIに準拠するという意味では、ACARD Technology自身も独自の手法だけではなくDMADIRも新たにサポートする必要がありそうだ。これに関して、同社のJim Yeh氏は次のように述べる。

 「弊社のブリッジコントローラは、今後もDMADIRをサポートするつもりはない。DMADIRを採用するには、ソフトウェアの再プログラミングを必要とするが、特に既存のソフトウェアを対象とした場合、再プログラミングの労力は想像以上に大きい。このため、他のベンダがDMADIRを積極的にサポートするとは考えにくい。少なくとも、弊社のAEC-7900Aは、DMADIRを使用しなくてもICH5との組み合わせでATAPIデバイスをサポートできており、弊社にとってDMADIRは不要だと思っている」。

 このように、同じくATAPIをサポートするベンダ同士でありながら、考え方には少なからず隔たりがあるようだ。しかし、現在はパラレルATAPIデバイスしか存在しない過渡期であり、SATA-PATAブリッジ回路をドライブのプリント基板上に統合したソリューションや、パラレルATAをいっさい経由しない完全なシリアルATAPIデバイスが登場すれば、エンドユーザ自身がSATA-PATA変換アダプタを使用する必要性はなくなるため、SATA-PATA変換アダプタにまつわる問題は事実上解消される。

 Intel, Senior Staff System ArchitectでSerial ATA Working Group, ChairmanのKnut Grimsrud氏は、ATAPIデバイスのシリアル化の動向を次のように説明する。

 「パラレルATAからシリアルATAへの流れは、まずデータ転送速度が高速なHDDから始まった。現在順調にシリアル化が進んでおり、シリアルATAデバイスを直結できるシリアルATAのポート数が急速に増大している。このように、ある程度シリアルATAのポート数が増えた段階になって、ようやくATAPIデバイスもシリアル化への流れが始まる」。

 「シリアルATAPIデバイスの出荷は、シリアルATA HDDに対して約1年ほど遅れをとっている。シリアルATA HDDが初めて登場したのは2003年春だったので、シリアルATAPIデバイスは2004年の春あたりに登場するのではないだろうか。Intelは、多くの光ディスクドライブベンダと共同で技術開発にあたっているが、シリアルATAPIデバイスの開発はおおむね順調に進んでいる。また、2004年内に開催されるシリアルATAプラグフェスト(plugfest、異なるベンダ製品間の相互運用性を検証するイベント)では、シリアルATAPIデバイスの検証も本格的に着手される予定だ」。

□Technical Committee T13 - AT Attachment
http://www.t13.org/
□Silicon Image, Press Release - PHILIPS, INTEL AND SILICON IMAGE DEMONSTRATE WORLD'S FIRST DVD+RW DRIVE WITH INTEGRATED SERIAL ATA INTERFACE, February 19, 2003
http://www.siimage.com/press/02_18_03_3.asp
□Silicon Image, Storage Products, Semiconductors
http://www.siliconimage.com/products/storage.asp#semic
□ユニティ コーポレーション, ACARD Technology AEC-7900A
http://www.unitycorp.co.jp/products/acard/detail/aec7900a/aec7900a.html

バックナンバー

(2004年1月5日)

[Text by 伊勢雅英]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp 個別にご回答することはいたしかねます。

Copyright (c) 2004 Impress Corporation All rights reserved.