戻る
閉じる

GiGA CHANNELシリーズ
APC-732に関するQ&A


『APC-732』は、ご好評頂いております『ギガチャネル』シリーズの上位機種に位置し、搭載メモリが128MB, 通信速度が4.2Gbpsと大幅な性能アップが図られています。また、『APC-732 』の大きな特徴として、高速な転送速度を生かすためインターフェイスが PCI-X に対応しています。

APC-732/AGM-730に関する共通Q&A

15

APC-732はPCI空間にどのようにマッピングされますか?

16

APC-732のメモリ容量は?

17

他社のファイバーチャネル製品と互換はありますか?

18

トークン、フレームなど言葉の意味を教えて下さい。

19

AGM-730とAPC-732は接続可能でしょうか?

20

DMAで自ノード共有メモリへライトした場合、他ノードの共有メモリの更新タイミングは?

21

ドアベルレジスタとはどういった機能のレジスタでしょうか?

22

ブロックバーストモードとはどういったものですか?

23

ブロックバーストモードはどのように設定しますか?

24

一般的なデータ転送はどういったフローとなりますか?

25

データエラーのチェックなどありますか?エラー発生時は、再送処理など行われますか?

26

ループの中の1台が故障するとどうなりますか?

27

フレームの管理はどの様に行われていますか?

28

BER(ビットエラーレート)はどのくらいですか?

29

ノード遅延とはどういう意味ですか?

30

カタログに記載されている転送速度はどういった測定方法となりますか?

31

転送速度の理論値は算出可能でしょうか?

32

OSによる転送時間の差はありますか?

33

AGM-730同士の接続の場合は、実際にはどのようにデータ転送を行うのですか?

34

AGM-730にはレジスタはありますか?

35

AGM-730を実装するボード(システムボード)の設計で注意することはありますか?

36

AGM-730 Host I/FバスにあるBG#(バスグラント)はループ上のある1台が取得すると 他のノードは取得できないという事でしょうか? 言い換えるとループ上にAGM-730が複数台存在する場合送信可能なノードは同時刻で1台だけになりますか?

37

AGM-730はバッファ(FIFO)を持っていますか?

38

AGM-730アプリケーションノート 『2-15 2.2.7項  送信側 FIFO のオーバーフロー防止のため、 Memory Host Write アクセスを行う場合、1Block ごとにバスの取得(#BR のアサート)、 開放(#BR ネゲート)動作を行うことをお薦めします』とありますが詳しい説明をお願いします。

39

AGM-Host I/Fバスでは64ビットアクセスのみ可能でしょうか?また2Gbpsと4Gbpsでは バスの動作やバス幅は変わるのでしょうか?

40

AGM-730を複数台接続して通信する場合、特定の2台だけで通信する事は可能ですか?

41

AGM-730を評価する機材はありますか?

42

APC-732はDualCPUに対応していますか?

 

Q1 APC-732の仕様を教えて下さい。

答え

主な違いは以下の通りです。

機種 形状 対応バス 標準メモリ容量(最大)
APC-732 PCIカード

PCI = 3.3V 66MHz 64Bit
PCIX = 3.3V 133MHz 64Bit

128MB

Q2 どんなコンセプトの製品ですか?

答え

複数のボードを光ケーブルで接続し、通信する為のボードです。ソフトウェアから見れば、 PCIバス上に共有メモリが128MByte がアサインされているように見えます。 その共有メモリを介してお互いが通信します。全ノードでデータを共有出来ますので、 処理の分散化/共有化等に威力を発揮します。

Q3 何台接続可能なのですか?

答え

128台まで接続可能です。接続形態はループ・トポロジーとなります。 またノード間の最大距離は125mです。(マルチモードのケーブル使用時は300m)

Q4 各ノードのアドレスはPnPですか?

答え

いいえ。各ノードはジャンパスイッチで自己のIDを固定指定します。 同一ループ内に同じIDを指定することは出来ません。またマスタ・ノードが1つ存在する必要があります。 マスタ・ノードはループ上を流れるパケットの管理ノードで、マスタ・ノードもジャンパで固定指定します。

Q5 通信の為の特別なプロトコル・スタックは必要ですか?

答え

いいえ。プロトコルは全てH/Wで行いますのでS/Wで制御を行う必要はありません。 S/Wは共有メモリをR/Wするだけで通信が可能です。 データを他ノードに送信する場合は共有メモリに書き込むだけで、 接続されている全ノードはそのデータを参照する事が可能です。

Q6 データ通信(共有)以外の機能はありますか?

答え

ID=0〜31のノードでは任意のノードに対して割り込みを発生させる事が可能です。 従ってデータの準備が出来た時点や変更を行った時点で一斉通知や個別通知が可能になります。 また、エラーが発生した時点での割り込み通知や、共有メモリの排他同期をとるセマフォ機能があります。

Q7 セマフォ機能とはどのような使い方をするものですか?

答え

共有メモリの「あるエリア」を複数のノードで同時に更新/参照するような アプリケーションを作成する場合に、他ノードとの同期を簡単に行う為のH/W機能です。
例えばアプリケーションでセマフォに対応するエリアを決めておき、 そこに対するアクセスを「セマフォ取得」→(参照や更新)→「セマフォ開放」の手順で行います。 これにより全ノード間での排他アクセスが簡単に実現出来ます。 セマフォは8個用意されていますのでシステム全体で独立した8箇所の排他領域を持つ事が可能です。
この機能は共有メモリのアクセスをH/W的に制限するものではなく、アプリケーションで同期を取る為の機能です。 従って共有メモリのアクセスの為だけに使用するのではなく、 複数ノード間で任意のリソースに対する排他同期をとる場合にも使用できます。

Q8 実際の転送速度はどのくらいですか?

答え

リードでおよそ720MByte/s。ライトでおよそ330MByte/sです。
また共有メモリ⇔メインメモリ間の転送はDMAをサポートしています。

Q9 接続されるノード数によって速度は変わりますか?

答え

はい。各ノードを通過する際のオーバーヘッドがあります。 データを送出したノードのすぐ隣のノードと一番遠いノードとではデータの到着時間が異なります。 ノードを通過する際のオーバーヘッドは約450ns〜500nsです。またケーブル長によっても遅延が発生します。 1m当たり約5nsで計算されます。

Q10 データの遅延時間を計算できますか?

答え

はい。通信プロトコルは独自のトークン方式を採用しており、各ノードはトークンが自ノードに来た時点でデータを送出します。送信を行う場合のベストケースはトークンが自ノード上にある場合、ワーストケースはトークンが過ぎた時点で送信する場合です。以下に例を示します。

【ノード数=4、ID 0からID 3へ送信する場合(ノード間10m想定)】
・ ベストケース 0→1→2→3  ノード通過数=3×(450+60)ns 約1.5μs
・ ワーストケース 1→2→3→0→1→2→3 ノード通過数=6×(450+60)ns 約3.0μs

Q11 サポートするOSは何ですか?

答え

Windows2000/XP, Linux、VxWorksの各ドライバーを用意しています。
詳しくは弊社営業にご相談ください

Q12 ITRONや他OSでも使用できますか?

答え

もちろん可能です。標準ドライバーは用意しておりませんが、 実際にはメモリアクセスの概念ですので特別なS/Wは不要です。 アプリケーションから直接R/Wする事も可能です。 MMUを使用している場合や割り込みを使用する場合はOSによっては ドライバーをお客さまで用意する必要があります。
詳しくは弊社営業にご相談ください

Q13 その他、注意する点はありますか?

答え

例えばx86システムとPowerPCシステムで通信をする場合は、 「エンディアン」が異なりますので注意が必要です。 通信するデータの特性によっては相手のエンディアンに合わせる必要があります。

Q14 どんなアプリケーションが考えられますか?

答え

分散処理を考えると、あるノードでデータを収集しそれを他ノードで分散処理するようなケースです。データは画像データであったり、他ノードの演算結果であるケースも考えられます。
逆に集中処理を考えると、各ノードが収集したデータを管理ノードで一括管理するような場合にも利用できます。また単純にデータ転送の経路としても利用できますので、画像データ+制御データを同じ経路に流す事が可能となり省配線化にも有効です。

Q15 APC-732はPCI空間にどのようにマッピングされますか?

答え

APC-732はベースアドレスを3個持っています。これらはPCIのメモリ空間としてマッピングされますのでドライバの対応していない環境(OS)でも容易にアクセスする事が可能です。
また、共有メモリ空間はそのまま128MBがアサインされますのでウィンドウ切り替えなども必要ありません。

Q16 APC-732のメモリ容量は?

答え

128MByteとなります。現状これ以上のメモリを登載している製品はありません。

Q17 他社のファイバーチャネル製品と互換はありますか?

答え

プロトコルがアバールデータオリジナルとなっているため互換はありません。

Q18 トークン、フレームなど言葉の意味を教えてください。

答え

以下に主な語彙を解説します。

トークン ループを常に巡回していてループ中に1個だけ存在する。
データがないフレームはTokenのみとなるのでフレーム=Tokenとして説明している部分もある。
フレーム フレームは SOF, Block(データ),Token,CRC,EOFで構成。
ブロック 1KB(最大)のデータ+ヘッダ8バイトで構成。
ノード APC-732やAGM-730を指す。
ループ APC-732やAGM-730間を光ケーブルで接続した通信路。

フレーム構成
SOF
(Start Of Frame)
4Byte
Block1
Header
8Byte
Data
1KB(max)
Token
4Byte
CRC
4Byte
EOF
(End Of Frame)
4Byte

Q19 AGM-730とAPC-732は接続可能でしょうか?

答え

2Gbps製品同士(APC-732-2GとAGM-730-2G)は接続可能です。 また4Gbps製品同士(APC-732-4GとAGM-730-4G)も接続可能です。
ただし、2Gbpsと4Gbps製品の混在では接続は不可能です。

Q20 DMAで自ノード共有メモリへライトした場合、他ノードの共有メモリの更新タイミングは?

答え

DMA、PIOを問わず共有メモリへのライト動作では同時にデータの送信を行っています。 よってメモリへのライトが完了した時点でデータの送信は完了します。

但し、正確には送信完了=受信完了ではないので、データ更新の同期をとるには、データ送信後に ドアベルレジスタを用いて各ノード間でハンドシェイクをとる事をお奨めします。

Q21 ドアベルレジスタとはどういった機能のレジスタでしょうか?

答え

複数ノード間でステータスをやり取りできるレジスタです。
ステータス通知に合わせて割り込みも発生させる事が可能です。
制限事項として対応ノード数は 32台までとなります。またAGM-730には実装されていないレジスタですのでAPC-732とAGM-730間でやり取りを行う時はAGM-730 Host I/Fバスに別途回路を用意する必要があります。

参考資料: APC-732ユーザーズマニュアル『3.8.15 ドアベル要求レジスタ』 AGM-730アプリケーションノート『2.8 ドアベルレジスタアクセス』

Q22 ブロックバーストモードとはどういったものですか?

答え

ノーマルモード時は1ノード当たりの送信ブロックが1ブロック( 1Kbyte)となります。
ブロックバーストモード時は送信ブロックが最大16ブロック(16Kbyte)となりますので転送速度が向上します。 (下図参照)
但し、 ブロックバーストモード使用時はリトライ動作が無効となるのでご注意ください。

ノーマル時のフレーム構成

SOF Block1 Token CRC EOF

ブロックバースト時のフレーム構成
SOF Block1 Block2 Block3 ・・・ Block1 Block1 Token CRC EOF

Q23 ブロックバーストモードはどのように設定しますか?

答え

APC-732では回線制御レジスタ(Offset C0h)にて行います。
AGM-730では『BB_Size[1:0]』信号で設定可能です。
設定時は『RETRY_EN』信号の設定を“0”(無効)としてください。

Q24 一般的なデータ転送はどういったフローとなりますか?

答え

APC-732からAGM-730へデータを送る場合を例に以下説明します。

1)APC-732に対してライトDMAで共有メモリへ指定サイズ分データ転送します。
2) 指定サイズ分のDMAが終了(DMA終了割り込みで確認)したら、ドアベルレジスタにてAGM-730へデータ転送が終了した事を通知します。
3)AGM-730側でドアベルを受信し、AGM-730 Host I/Fバス側の処理が完了した時点でAPC-732に対してドアベルで受信完了を通知します。
4)APC-732側はAGM-730からの受信完了通知(ドアベル)を待ち、受信完了が確認できたら次のDMAライトの作業へ移行します。

項目1)〜4)の繰り返してAPC-732とAGM-730双方のハンドシェイクを取りながらデータ転送を行います。ハンドシェイクせずに次々とDMAしても動作上問題ありませんが、受信側のデータを処理する時間が間に合わないとデータを上書きするので、データの整合性が保証されません。

Q25 データエラーのチェックなどありますか?エラー発生時は、再送処理など行われますか?

答え

CRC及び8B10Bコードチェックでエラーを検出しています。 回線上でエラーが発生した時はハードウェアによるリトライ(データ再送)が行われます。 ただしブロックバーストモード時はリトライ無効です。

Q26 ループの中の1台が故障するとどうなりますか?

答え

トークンリング方式による通信なので 1箇所でも故障、ケーブル断線が発生すると通信が出来なくなります。故障個所の特定はLNK(リンク)LED又は回線制御レジスタで確認する事が出来ます。

Q27 フレームの管理はどの様に行われていますか?

答え

ディップスイッチで設定したマスターノードがフレームを発行します。 また各ノードはタイマーを内蔵しており、設定時間内にフレームが巡回してきているかをチェックします。 これらの制御はハードウェアが処理しており、ソフトウェアの介在はありません。

Q28 BER(ビットエラーレート)はどのくらいですか?

答え

ボードとしての保証値ではありませんが、光モジュール単体と SERDESデバイス単体では、それぞれ1×10 -12 を保証しています。

Q29 ノード遅延とはどういう意味ですか?

答え

1ノードでフレームが通過するのに要する時間です。この時間はノード数が多くなればなるだけ加算されます。フレームがループを1周する時間もそれだけ長くなりますので転送レートも比例して低下する傾向にあります。

各機種ごとのノード遅延値

機種名 ノード遅延
APC-732-2G/AGM-730-2G 500ns
APC-732-4G/AGM-730-4G 450ns



(ケーブル遅延は除く)
732-4Gが2ノードの場合フレームがループを1周する時間は450ns×2=1us
732-4Gが4ノードの場合フレームがループを1周する時間は450ns×4=2us

Q30 カタログに記載されている転送速度はどういった測定方法となりますか?

答え

1 ノード、ループバック接続で測定しています。
ライトは DMA にて共有メモリへ転送。リードは共有メモリから PC のメインメモリまでの時間を測定しています。
ライト時間が遅い理由はモリへライトしながら回線へ送信するハード仕様となっているため回線の帯域に依存した数値となっているためです。

ここで示す値はボード単体の能力を示していますので、実アプリケーションでの転送速度は OS や PC 環境、使用ノード数、光ケーブル長により可変しますので別途測定が必要となります。

Q31 転送速度の理論値は算出可能でしょうか?

答え

ハードウェアのみを考慮した理論値は算出可能です。

APC-732-4Gを例に以下計算します。
転送速度=データ数÷転送時間
    =データ数÷(データ転送時間+回線遅延時間)
    =8192bit÷(データ転送時間+(ノード遅延+ケーブル遅延))

APC-732-4Gを1mケーブルで2ノード接続した場合(送信は1ノードのみ)
  データ転送時間:((8192bit+64bit)×1.25 )÷ 4.25Gbps≒2.428us
  ノード遅延  :450ns×2ノード=1us
  ケーブル遅延 :約5ns/m×2本≒10ns
  これらの値を代入すると、
  8192bit÷(2.428us+1us+10ns)≒2.4Gbps÷8=300MByte/s

回線部分のみを考慮した理論値となります。OSやPCの構成によっても転送速度は変化しますのでボード検討の際は実機による速度評価をお奨めいたします。

Q32 OSによる転送時間の差はありますか?

答え

OSやPCの環境等により転送速度に差が生じます。
理論値ではこれらの要因を考慮していませんのでご注意ください。
ご使用のシステムがusオーダのリアルタイム性を要求する場合は実機での評価をお奨めします。
実機での評価や転送速度の詳細は別途、弊社営業までお問い合わせください。

Q33 AGM-730同士の接続の場合は、実際にはどのようにデータ転送を行うのですか?

答え

送信時は、システム側より Host I/Fバスに対しMemory Host Writeサイクルを発生させることでデータの送信が行えます。
『AGM-730 アプリケーションノート』内のPage2-10参照

受信時は、AGM-730がデータを受信するとHost I/Fバスに対しMemory Host Readサイクルを自動的に発生させます。Host I/Fバスから受け取ったデータをお客様システムのメモリへ格納します。
『AGM-730 アプリケーションノート』内のPage2-12参照

Q34 AGM-730にはレジスタはありますか?

答え

レジスタは存在しません。 Host I/Fバス上に別途構築する必要があります。

Q35 AGM-730を実装するボード(システムボード)の設計で注意することはありますか?

答え

AGM-730アプリケーションノート 『第3章 システムボードデザイン』を参照ください。
ボード設計に関する推奨事項が掲載されています。

Q36 AGM-730Host I/FバスにあるBG#(バスグラント)はループ上のある1台が取得すると他のノードは取得できないという事でしょうか?言い換えるとループ上にAGM-730が複数台存在する場合送信可能なノードは同時刻で1台だけになりますか?

答え

ループ上にはフレームが常に巡回しており、自ノードに来た時に送信 FIFOにあるデータを送信可能となります。同時刻にはフレームがあるノードのみが送信可能ですがBG#(バスグラント)が取得できないと言うわけではありません。AGM-730内部には送信FIFOが3Kbyte用意されているので受信がなく送信FIFOに空きがあればBG#を取得する事が出来ます。
ループ内の各AGM-730は非同期でアクセスする事が可能です。

Q37 AGM-730はバッファ(FIFO)を持っていますか?

答え

送信FIFOとして用意している容量は、3KByteになります。
受信FIFOとして用意されている容量は、2KByteになります。

Q38 AGM-730アプリケーションノート 『2-15 2.2.7項  送信側 FIFO のオーバーフロー防止のため、Memory Host Write アクセスを行う場合、1Block ごとにバスの取得(#BR のアサート)、開放(#BR ネゲート)動作を行うことをお薦めします』とありますが詳しい説明をお願いします。

答え

この注記は受信データを考慮しての内容となります。(受信FIFOのオーバーフロー防止) 自ノードにフレーム及びデータがありデータの受信が発生している場合、ユーザ回路からの送信によりHost I/Fバスが取られていると受信したデータをHost I/Fバスに出力できず、AGM-730内部受信FIFOのオーバーフローを発生させる可能性があります。
フレームが他のノードにある場合や、データ連結されていない場合などデータ受信が発生しないときは、1Blockのデータを書き込みバスを開放した後、またバス取得要求を行えばすぐにバスを取得することが可能になります。

Q39 AGM- Host I/Fバスでは64ビットアクセスのみ可能でしょうか?また2Gbpsと4Gbpsではバスの動作やバス幅は変わるのでしょうか?

答え

2Gbps/4Gbpsともに64ビットアクセスですがバイトイネーブルを使用することで64ビット以下のアクセス(8/16/24/32/40/48/56ビット)も可能となります。2Gbps/4Gbpsでバスの信号や動作に違いはありません。

Q40 AGM-730を複数台接続して通信する場合、特定の2台だけで通信する事は可能ですか?

答え

1台からのライトデータは接続される全ノードへ送信されます。特定のノードのみ受信するには以下の様な回路を構築する必要があります。
・ データの先頭数バイトに送信したいノード番号を書き込んで送信し、受信側で先頭データに書かれたノード番号をチェックする。該当していればデータ取得、非該当ならば読み捨てる。
・ ノード間のハンドシェイクレジスタを構築し、レジスタでハンドシェイクしているノードのみデータを取得。それ以外のノードは読み捨てる。

*参考ですので、お客様に沿った対応方法は弊社営業までお問い合わせください。

Q41 AGM-730を評価する機材はありますか?

答え

ATB-425があります。この基板はAGM-730を実装できるコネクタとFPGAが登載されておりUSBのインターフェイスも実装されています。カタログ品ではありませんので弊社営業までお問い合わせください。

Q42 APC-732はDualCPUに対応していますか?

答え

APC-732はPCIバスからのバスサイクルを順に処理する設計となっています。(図1)
Dual CPU環境でマルチスレッドによるAPC-732へのアクセスは図2の様になります。

図2の赤枠部分を注目するとスレッド2からのリード要求が完了する前にスレッド1からのライト要求が発生します。APC-732は仕様上、リード要求を受け付けるとリード 動作が完了するまで次のサイクル要求を受け付けません。その結果OSが全く動作しない(ハングアップ)現象となります。

APC-732をマルチスレッドで動作させるアプリケーションでは図3に示すような排他アクセスを行うことでハングアップを回避することが可能です。