分岐接続や冗長経路など豊富な接続形態をとれるシリアルATA II



 前回の記事「デバイスの外付けを正式にサポートするシリアルATA」ではシリアルATAの外付け仕様について解説したが、シリアルATA IIでは、さらに分岐接続や冗長経路など、従来のATAインタフェースには見られなかった豊富な接続形態をとれるようになる。今回は、こうしたシリアルATA IIの新しい接続形態について解説していく。

●ポイントツーポイント接続の制限から解き放たれるPort Multiplier

Port Multiplierの構成(出典:Knut Grimsrud - Intel, Serial ATA 3Gbps and the Next Frontier, Intel Developer Forum Fall 2003, Sept. 18, 2003)。ホストコントローラとデバイス間を結ぶ1本のシリアルATAリンクにPort Multiplierを追加することで、最大15台のデバイスを接続できるようになる

 シリアルATA IIでは、新たな接続形態として“信号経路の分岐”を可能にするPort Multiplierが規定された。これは、1つのホストの接続点に複数のデバイスを接続できるようにする仕様だ。アクティブなホストは1つ、分岐の深さは1段のみに限定されており、分岐先に接続可能なドライブ(ファンアウトデバイス)は最大15台となっている。

 Port Multiplierの機能は、USBでいうところの“ハブ”にあたる。ただし、繰り返しになるが、USBハブのように2段以上の階層構造はとれない。Port Multiplierでは、分岐先のドライブを識別する必要があるが、そのための識別子として、すべてのFIS(Frame Information Block)に4bitの「PM Port」が新設された。PM Portに割り当てられるbitは、シリアルATA 1.0ではもともと予約済みとして定義されていた部分だ。

 ホストコントローラは、分岐先の特定のドライブにアクセスするとき、送信するフレーム内のPM Portにそのドライブのポートアドレスを指定する。Port Multiplierは、受信したフレーム内のPM Portから分岐先のドライブを割り出し、そのドライブにフレームを転送する。こうすれば、ホストコントローラとドライブのエンドツーエンド間では、シリアルATA 1.0と同じポイントツーポイント接続と同様に取り扱える。


●Port Multiplierで広がるアプリケーションの数々

 Port Multiplierの用途には、主に外部ストレージアプリーション、そしてモジュラーおよびモバイルアプリケーションが考えられる。

Port Multiplierのアプリケーション例 その1(出典:Knut Grimsrud - Intel, Serial ATA 3Gbps and the Next Frontier, Intel Developer Forum Fall 2003, Sept. 18, 2003)。Serial ATA II Cables and Connectors Volume 2 specificationで規定された新しいケーブル/コネクタと組み合わせて、エンタープライズ向けの外部ストレージを実現したもの

 外部ストレージでは、Serial ATA II Cables and Connectors Volume 2 specificationで規定された新しいケーブル/コネクタとの組み合わせが生きてくる。例えば、ストレージサブシステムの筐体に16台のHDDが内蔵されている場合、外部コネクタとして4レーンのコネクタを4つ装備し、各コネクタの信号経路をPort Multiplierで4本に分岐する。こうすることで、HDD側では16本(=4コネクタ×4分岐)の信号経路を引き出せる。SATA 1チャネルに1台のHDDが割り当てられるため、後述するFISベーススイッチングに基づいてシステムを構成すれば信号帯域幅の面でも釣り合いがとれる。

 また、ケーブルの引き回しを簡素化できることから、ストレージサブシステム内のエアーフローを改善できる。さらに、Port MultiplierとHDD間は、従来ながらの信号経路(Gen1iやGen1mに準拠したもの)となることから、HDDにはシリアルATA 1.0に対応したこれまでの製品を流用できる。

 次に、モジュラーおよびモバイルアプリケーションだが、最も端的な例としてはノートPCのドッキングステーションが挙げられる。現在は、ノートPCに搭載されたATAコントローラの空きチャネルの信号線をドッキングステーションまで引き出すか、ドッキングステーションに新たなATAコントローラを搭載することでストレージ機器の搭載を可能にしている。


Port Multiplierのアプリケーション例 その2(出典:Knut Grimsrud and Amber Huffman - Intel, Extensions to Serial ATA Performance & Feature Enhancements, Intel Developer Forum Spring 2003, Feb. 19, 2003)。ドッキングステーション側にPort Multiplierを搭載することにより、1チャネルの信号線を引き出すだけで複数のドライブを搭載できるようになる

 Port Multiplierを利用すれば、こうしたストレージ機器のモジュール化がより容易になる。ノートPCに搭載されたATAコントローラの空きチャネルを使うことに変わりはないが、その空きチャネルの信号線をドッキングステーション上のPort Multiplierで分岐することにより、ドッキングステーションには1チャネルの信号線だけで複数のストレージ機器を搭載できるようになる。

 なお、Port Multiplierの仕様では、同じくシリアルATA IIのDigital 1.1仕様にある非同期の通知機能を追加できる。このため、ドッキングステーション上のデバイスを外したり、差し込んだりした場合に、ホストコントローラ側でポーリングを行うことなく挿抜の状況をホスト側に通知できる。この特徴をうまく活用すれば、ドッキングステーションのホットプラグ/アンプラグ機能も容易に実装可能だ。


●FISベーススイッチングをいち早くサポートしたSilicon Imageの製品

 Port Multiplierに関する実機デモは、昨年9月に開催されたIntel Developer Forum Fall 2003の会場で披露されている。

Intel Developer Forum Fall 2003の会場で披露された、Intel、Maxtor、Silicon ImageによるPort Multiplierのデモ(出典:Silicon Image)

 会場では、Intel、Maxtor、Silicon ImageによるPort Multiplierのデモが披露された。ホストコントローラには、Silicon ImageのSiI 3124を使用している。SiI 3124は、4ポートのシリアルATAチャネルを搭載した64bit/133MHz PCI-Xバス対応のホストコントローラである。SiI 3124-1は第一世代の1.5Gbpsに、SiI 3124-2は第二世代の3.0Gbpsに対応する。Port Multiplierのスイッチング方式には、最新のFISベーススイッチングを採用している。

 Port Multiplierの仕様書では、ホストコントローラと末端のデバイス間の通信方式として、コマンドベースとFISベースの2種類が規定されている。

 コマンドベーススイッチングは、特定のドライブにコマンドを発行したら、そのコマンドが完了するまでそのまま待機する方式だ。この間、ホストは他のドライブに対してコマンドを発行できず、他のドライブとのデータ転送は完全にシャットアウトされる。もし、コマンドキューイングも併用している場合、特定のドライブに対して複数のコマンドが発行されるために、これらのコマンドをすべて消化しなければ他のドライブに作業を移行できず、無駄はさらに広がる結果となる。

 一方のFISベーススイッチング(コンテキストベーススイッチングとも呼ばれる)は、複数のドライブに対して自由にコマンドを発行できる方式だ。コマンドキューイングを併用している場合でも、複数のドライブに対する複数のコマンドを入れ混ぜてPort Multiplierに送り込むことができる。シリアルATA IIから利用が本格化するNative Command Queuingとの親和性もきわめて高く、まさに本命のスイッチング方式といえよう。もちろん、コマンドベースよりも仕組みが複雑であるため、シリアルATAコントローラのロジック規模は大きくなる。また、複数のドライブに効率よくコマンドを引き渡せるように、Port Multiplierにも高度なアービトレーション機構を搭載する必要がある。

コマンドベーススイッチングとFISベーススイッチング(出典:Silicon Image)。複数のドライブに対して自由にコマンドを発行できるFISベーススイッチングが理想的なスイッチング方式となる

 Silicon Image, Storage Semiconductors, Product Marketing ManagerのMark Hartney氏は、FISベーススイッチングの効果を次のように説明する。

 「弊社のSiI 3124は、業界でいち早くFISベーススイッチングを採用した。これにより、コマンドベースでは得られない非常に高いスループットを実現している。昨年のIDF Fall 2003の会場では、ホストとPort Multiplier間のリンクとして、より高速な3Gbps版も披露している。会場では“ドライブが1.5Gbpsなのに、なぜホストとPort Multiplier間のリンクを3Gbpsにするのか? 無駄ではないか?”という質問を多く受けたが、この質問が成り立つのはコマンドベースの場合だ」。

 「弊社のデモ機は、FISベーススイッチングに対応したSiI 3124-2とPort Multiplierを使用しており、複数のドライブに対するコマンドをPort Multiplierへと次々に送り込める。このため、複数のドライブを通じて3Gbpsリンクの帯域幅を最大限に活用できる。この結果、IDFで披露したシステムは、バースト転送で240MB/sec、サステイン・シーケンシャル転送で180MB/secものデータ転送速度を達成している」。

●信号経路の冗長化を可能にするPort Selector

 もう一つ、エンタープライズストレージ向けの機能としてPort Selectorがある。Port Selectorは、異なる2つのホストコントローラのポートを同一のデバイスに接続できるようにし、そのデバイスへの経路を冗長化するものだ。これは、冗長化されたストレージトポロジを構築するRAIDベンダやNASベンダ、Disk to Diskバックアップを手掛けるストレージベンダなどにとって重要な要素技術となる。

Port Selectorの構成(出典:Knut Grimsrud - Intel, Serial ATA 3Gbps and the Next Frontier, Intel Developer Forum Fall 2003, Sept. 18, 2003)。Port Selectorを利用することで、シリアルATAの信号経路を冗長化できる Port Selectorのアプリケーション例(出典:Knut Grimsrud - Intel, Serial ATA 3Gbps and the Next Frontier, Intel Developer Forum Fall 2003, Sept. 18, 2003)。Port Selectorによって2つの信号経路を設け、ストレージサブシステム内のコントローラを冗長化したもの。片方のホストまたはコントローラが故障しても、もう片方のホストまたはコントローラに切り替えることで運用を継続できる

 Port Selectorは、単純な2方向スイッチの役割を果たすものなので、接続元にあたる2つのホストポートをActive/Activeで動作させることはできない。ホストポートの動作はあくまでもActive/Stand-byであり、片方のホスト(ホストコントローラもしくは信号経路)に障害が発生したら、もう片方のホストポートをActiveとして、Port Selectorでその代替ポートに信号経路をすばやく切り替える。ただし、Port Multiplierとの組み合わせが可能なので、構成次第ではかなりのハイアベイラビリティを実現できる。

 Port Selectorの方式には、プロトコルベースとサイドバンドの2種類がある。プロトコルベース方式は、アクティブなホストポートの選択にシリアルATAのアウトオブバンド物理層信号を使用する方式だ。通常のデバイスに対して通信開始の初期化に使用されるCOMRESET信号をホストからPort Selectorに送信し、その後のネゴシエーションを通じてアクティブなホストポートが決定される。Port Selectorの利用には、Serial ATA 1.0aに準拠したホストコントローラとデバイスが必要だが、ソフトウェアドライバの修正のみで対応できるため、新たなプリミティブやFISタイプを追加する必要はない。

 サイドバンド方式は、別途設けられた信号線によってポート選択を行うもので、信号線の信号電圧がハイかローかによってアクティブなポートを決定する。サイドバンド方式のハードウェア実装の仕方はいろいろと考えられるが、Port Selector 1.0仕様では具体的な実装方法に関してまったく触れられていない。つまり、ベンダが自由なスタンスで実装してよいということだ。サイドバンド方式の利点は、エンクロージャサービスプロセッサなど、他ベンダのコントロールに対応するための簡単なインタフェースを提供できる点にある。

 Port Selectorを実現するコントローラには、例えばVitesse SemiconductorのVSC7175(2:1 Serial ATA Failover Switch)がある。VSC7125は、信号経路中の信号減衰に対応するための信号補正技術(pre-emphasis)、高感度のレシーバ、ハイエンドストレージの設計にも対応可能な透過的なアウトオブバンド管理機能を搭載している。また、信号帯域幅として従来の1.5Gbpsに加え、第二世代の3.0Gbpsにも対応している。

●Serial Attached SCSIにも匹敵するパワーを手にするシリアルATA

 前回の連載記事で取り上げたGen1x、Gen2xによるデバイスの外付けに加え、Port Multiplierによる接続の分岐、Port Selectorによる冗長構成をサポートした次世代のシリアルATA IIは、これまで内蔵および少数のデバイス接続に限定されていたATAインタフェースの制限を大きく取り払うことになる。

 高いパフォーマンスと柔軟な接続形態をサポートしたSerial Attached SCSIに注目しているハイエンドユーザはかなり多いと思うが、外付けやPort Multiplier、Port Selector、さらにはNative Command Queuingなどをサポートした次世代のシリアルATA IIは、Serial Attached SCSIにも匹敵する高性能なインタフェースとなりうる。

 最後に、Comax Technology, Serial ATA Marketing and SalesのJay Wang氏から興味深いコメントをいただいたので付記しておきたい。

 「今後、エンタープライズストレージのインタフェースは、続々とシリアルATAに鞍替えしていくだろう。2006年には、世界で出荷されるHDDの98%がシリアルATAに対応したものになり、残り2%がFibre ChannelとSCSIになるという大胆な予測さえある」。

□Technical Committee T13 - AT Attachment
http://www.t13.org/
□Serial ATA Working Group
http://www.serialata.org/
□Silicon Image, SILICON IMAGE AND MAXTOR DEMONSTRATE NEW SERIAL ATA PORT MULTIPLIER CAPABILITIES WITH SUPPORT FROM INTEL
http://www.siliconimage.com/press/09_16_03_2.asp
□Vitesse Semiconductor
http://www.vitesse.com/
□関連記事
【1月26日】【伊勢】デバイスの外付けを正式にサポートするシリアルATA
http://pc.watch.impress.co.jp/docs/2004/0126/it016.htm
【2002年2月26日】次世代ストレージI/F規格「シリアルATA II」のワーキンググループ発足
http://pc.watch.impress.co.jp/docs/2002/0226/intel2.htm

バックナンバー

(2004年2月9日)

[Text by 伊勢雅英]


【PC Watchホームページ】


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

Copyright (c) 2004 Impress Corporation All rights reserved.