高速インターフェース規格ガイド ――Serial ATA,3GIO,InfiniBandから10GビットEthernetまで
●2種類のデータ転送方式と2種類の通信プロトコルを採用
1394aはアシンクロナス転送とアイソクロナス転送の2種類のデータ転送方式に対応しています.また,プロトコルには,ストレージ機器で使用されるSBP-2(Serial Bus Protocol-2)と,DVビデオ・カメラなどで使われているAV/Cプロトコルがあります.
アシンクロナス転送は非同期通信であり,数バイトのヘッダ情報と実データを特定のノードに転送します.データを受信したノードは,必ずアクノリッジを返さなければなりません.この転送では,一定のバス帯域幅を要求しません.そのためバスを定期的に使用しませんが,長期的には平等なアクセスが可能です.アシンクロナス転送ではSBP-2プロトコルが用いられます(図5).1394aのデータリンク層(ハードウェア)では,読み出し/書き込みといった低レベルのプロトコルを規定しています.さらに上位のプロトコルとして定義されているのがSBP-2です.SBP-2にはSCSIコマンド・セットが用いられています.このため周辺機器メーカは,デバイス・ドライバやソフトウェアなどを比較的容易に開発することができます.
アイソクロナス転送は,パケットを規則的な間隔(125μs)で転送します.アシンクロナス転送よりも高いバス優先度を持ち,リアルタイム性を保証したデータ転送が可能です.特定のノードに転送するのではなく,チャネル・アドレスを使用してバス全体に送信するので,アドレスは単純化されています.データを受信したノードは,アクノリッジを返す必要がありません.
〔図5〕 SBP-2コマンド取得手順
まず,イニシエータはターゲットのORB(Operation Request Block)ポインタ・レジスタにコマンドORBのアドレスを書き込む.ターゲットは書き込まれたコマンドORBデータからCDB(Command Descriptor Block)データ・フィールドにあるSCSIコマンドを読み出し,解析する.ORBには,制御情報としてデータの方向や格納形式を示すビットなどがある.次にターゲットはORBで指定されたバッファ・アドレスからデータ・アドレスとデータ・サイズが格納されたページ・テーブルを読み出し,そのサイズ分のデータを転送する.コマンド処理が終了したら,ターゲットはイニシエータへステータス・データを書き込み,データ転送は終了する.
参考・引用*文献
(1) Don Anderson,『FireWireシステムアーキテクチャ』,ピアソン・エデュケーション,2000年12月.
(2) 北山洋幸,大庭政司,吉本廣雅,有田大作,『IEEE1394の徹底研究』,CQ出版,p.17,p.28,2000年10月.
みかみ・ゆうじ
セイコーエプソン(株)