(57)【要約】【課題】２つの通信インタフェース間でクレジットを効率化に変換する。【解決手段】本実施形態に係るインタフェース装置は、変換部と、第１及び第２のフロー制御部と、第１及び第２のクレジット変換部とを含む。変換部は、第１の通信インタフェースに準拠するデータと第２の通信インタフェースに準拠するデータとの間で互いに変換を行う。第１のフロー制御部は、第１のデバイスに対する第１の通信インタフェースに準拠する第１のフロー制御を実行する。第２のフロー制御部は、第２のデバイスに対する第２の通信インタフェースに準拠する第２のフロー制御を実行する。第１のクレジット変換部は、第１のフロー制御で用いられる第１のクレジットを、第２のフロー制御で用いられる第２のクレジットへ変換する。第２のクレジット変換部は、第２のフロー制御で用いられる第３のクレジットを、第１のフロー制御で用いられる第４のクレジットへ変換する。【選択図】  図１
2020048030.tif 000002
【特許請求の範囲】
【請求項１】
第１のデバイスから第１の通信インタフェースに準拠する第１のデータを受信し、前記第１のデータを第２の通信インタフェースに準拠する第２のデータへ変換し、前記第２のデータを第２のデバイスへ送信し、前記第２のデバイスから前記第２の通信インタフェースに準拠する第３のデータを受信し、前記第３のデータを前記第１の通信インタフェースに準拠する第４のデータへ変換し、前記第４のデータを前記第１のデバイスへ送信する変換部と、
前記第１のデバイスに対する前記第１の通信インタフェースに準拠する第１のフロー制御を実行する第１のフロー制御部と、
前記第２のデバイスに対する前記第２の通信インタフェースに準拠する第２のフロー制御を実行する第２のフロー制御部と、
前記第１のフロー制御で用いられる第１のクレジットを、前記第２のフロー制御で用いられる第２のクレジットへ変換する第１のクレジット変換部と、
前記第２のフロー制御で用いられる第３のクレジットを、前記第１のフロー制御で用いられる第４のクレジットへ変換する第２のクレジット変換部と、
を具備する、インタフェース装置。
【請求項２】
前記第１のクレジット変換部は、前記第１のクレジットを、前記第１のデバイスへ送信可能なデータ量に相当する前記第２のクレジットに変換し、
前記第２のクレジット変換部は、前記第３のクレジットを、前記第２のデバイスへ送信可能なデータ量に相当する前記第４のクレジットへ変換する、
請求項１のインタフェース装置。
【請求項３】
前記第１のクレジット変換部は、第１のレートにしたがって前記第１のクレジットを前記第２のクレジットへ変換し、
前記第１のレートは、前記第１の通信インタフェースに準拠するクレジットの所定の単位数に相当する前記第２の通信インタフェースに準拠するクレジットの単位数を表し、
前記第２のクレジット変換部は、第２のレートにしたがって前記第３のクレジットを前記第４のクレジットへ変換し、
前記第２のレートは、前記第２の通信インタフェースに準拠するクレジットの所定の単位数に相当する前記第１の通信インタフェースに準拠するクレジットの単位数を表す、
請求項１又は請求項２のインタフェース装置。
【請求項４】
前記第１のレートは、前記第１の通信インタフェースに準拠するパケット用クレジットの６単位が、前記第２の通信インタフェースに準拠するコマンド用クレジットの１単位と前記第２の通信インタフェースに準拠するデータ用クレジットの１単位とに相当することを表し、
前記第２のレートは、前記第２の通信インタフェースに準拠するコマンド用クレジットの２単位と前記第３の通信インタフェースに準拠するデータ用クレジットの１単位とが、前記第１の通信インタフェースに準拠するパケット用クレジットの１単位に相当することを表す、
請求項３のインタフェース装置。
【請求項５】
前記第１の通信インタフェースに準拠する前記第１のクレジット及び前記第４のクレジットは、コマンド及び／又はデータを含むパケット用クレジットであり、
前記第２の通信インタフェースに準拠する前記第２のクレジット及び前記第３のクレジットは、コマンド用クレジット及びデータ用クレジットである、
請求項１乃至請求項３のいずれか１項のインタフェース装置。
【請求項６】
前記パケット用クレジットは、前記コマンドと前記データとを含むパケットの通信を管理するためのクレジットであり、
前記コマンド用クレジットは、１以上のコマンドを含むコントロールフリットの通信を管理するためのクレジットであり、
前記データ用クレジットは、１以上のデータを含むデータフリットの通信を管理するためのクレジットである、
請求項５のインタフェース装置。
【請求項７】
前記第１の通信インタフェースの規格は、Ｇｅｎ−Ｚ規格であり、
前記第２の通信インタフェースの規格は、ＯＰＥＮＣＡＰＩ（登録商標）規格である、
請求項１乃至請求項６のいずれか１項のインタフェース装置。
【請求項８】
前記変換部から前記第１のデバイスへ前記第４のデータを送信することによって使用された第１の実使用クレジットを監視する第１の監視部と、
前記変換部から前記第２のデバイスへ前記第２のデータを送信することによって使用された第２の実使用クレジットを監視する第２の監視部と、
をさらに具備し、
前記第１のクレジット変換部は、前記第１のデバイスが保有する前記第１のクレジットから前記第１の実使用クレジットを減算した第１の残りクレジットが前記第１の通信インタフェースの送信単位以上の場合に、前記第２のフロー制御で用いられる前記第２のクレジットを第５のクレジットへ変換し、
前記第１のクレジット変換部は、前記第２のデバイスが保有する前記第３のクレジットから前記第２の実使用クレジットを減算した第２の残りクレジットが前記第２の通信インタフェースの送信単位以上の場合に、前記第１のフロー制御で用いられる前記第４のクレジットを第６のクレジットへ変換する、
請求項１乃至請求項７のいずれか１項のインタフェース装置。
【請求項９】
コンピュータに、
第１のデバイスから第１の通信インタフェースに準拠する第１のデータを受信し、前記第１のデータを第２の通信インタフェースに準拠する第２のデータへ変換し、前記第２のデータを第２のデバイスへ送信し、前記第２のデバイスから前記第２の通信インタフェースに準拠する第３のデータを受信し、前記第３のデータを前記第１の通信インタフェースに準拠する第４のデータへ変換し、前記第４のデータを前記第１のデバイスへ送信する変換機能と、
前記第１のデバイスに対する前記第１の通信インタフェースに準拠する第１のフロー制御を実行する第１のフロー制御機能と、
前記第２のデバイスに対する前記第２の通信インタフェースに準拠する第２のフロー制御を実行する第２のフロー制御機能と、
前記第１のフロー制御で用いられる第１のクレジットを、前記第２のフロー制御で用いられる第２のクレジットへ変換する第１のクレジット変換機能と、
前記第２のフロー制御で用いられる第３のクレジットを、前記第１のフロー制御で用いられる第４のクレジットへ変換する第２のクレジット変換機能と、
を実現させるためのプログラム。
【請求項１０】
第１のデバイスに対して第１の通信インタフェースに準拠する第１のクレジット内で通信を許可することと、
前記第１のクレジットを、第２の通信インタフェースに準拠する第２のクレジットへ変換することと、
第２のデバイスに対して前記第２の通信インタフェースに準拠する第２のクレジット内で通信を許可することと、
前記第２のデバイスから前記第２のクレジットにしたがって前記第２の通信インタフェースに準拠する第１のデータを受信することと、
前記第１のデータを前記第１の通信インタフェースに準拠する第２のデータへ変換することと、
前記第２のデータを前記第１のクレジットにしたがって前記第１のデバイスへ送信することと、
を具備する、データ通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、インタフェース装置及びプログラム並びにデータ通信方法に関する。
【背景技術】
【０００２】
近年、多数の高速通信インタフェースが様々な機関又は企業から提案されている。高速通信インタフェースを用いることにより、送信側デバイスから受信側デバイスへ大きいサイズのデータを高速に通信可能である。ある通信インタフェースに準拠するデータ通信を他の通信インタフェースに準拠するデータ通信へ変換することの必要性は高い。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第７７５２３７６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本実施形態は、異なる通信インタフェースに準拠するデバイス間で高速な通信を可能とするインタフェース装置及びプログラム並びにデータ通信方法を提供する。
【課題を解決するための手段】
【０００５】
本実施形態に係るインタフェース装置は、変換部と、第１のフロー制御部と、第２のフロー制御部と、第１のクレジット変換部と、第２のクレジット変換部とを含む。変換部は、第１のデバイスから第１の通信インタフェースに準拠する第１のデータを受信し、第１のデータを第２の通信インタフェースに準拠する第２のデータへ変換する。また、変換部は、第２のデータを第２のデバイスへ送信し、第２のデバイスから第２の通信インタフェースに準拠する第３のデータを受信し、第３のデータを第１の通信インタフェースに準拠する第４のデータへ変換し、第４のデータを第１のデバイスへ送信する。第１のフロー制御部は、第１のデバイスに対する第１の通信インタフェースに準拠する第１のフロー制御を実行する。第２のフロー制御部は、第２のデバイスに対する第２の通信インタフェースに準拠する第２のフロー制御を実行する。第１のクレジット変換部は、第１のフロー制御で用いられる第１のクレジットを、第２のフロー制御で用いられる第２のクレジットへ変換する。第２のクレジット変換部は、第２のフロー制御で用いられる第３のクレジットを、第１のフロー制御で用いられる第４のクレジットへ変換する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態に係るインタフェースブリッジ装置の構成の一例を示すブロック図。
【図２】第１のデバイスに関するクレジットに基づいて、第２のデバイスによるコマンド／データの通信量が制御される通信システムの一例を示すブロック図。
【図３】第２のデバイスに関するクレジットに基づいて、第１のデバイスによるコマンド／データの通信量が制御される通信システムの一例を示すブロック図。
【図４】第１の実施形態に係る第１の通信インタフェースと第２の通信インタフェースとの比較結果の一例を示す図。
【図５】第１の通信インタフェースに準拠するパケットのフォーマットの一例を示すブロック図。
【図６】第２の通信インタフェースに準拠するフリットのフォーマットの一例を示すブロック図。
【図７】第１の実施形態に係るインタフェースブリッジ装置の第１の処理の一例を示すフローチャート。
【図８】第１の実施形態に係るインタフェースブリッジ装置の第２の処理の一例を示すフローチャート。
【図９】第２の実施形態に係るインタフェースブリッジ装置によるクレジット変換の実行状態を例示するブロック図。
【図１０】第２の実施形態に係るインタフェースブリッジ装置による残りクレジットを有効利用するためのクレジット変換の実行状態を例示するブロック図。
【図１１】第３の実施形態に係るインタフェースブリッジ装置によるクレジット変換の実行状態を例示するブロック図。
【図１２】第３の実施形態に係るインタフェースブリッジ装置による残りクレジットを有効利用するためのクレジット変換の実行状態を例示するブロック図。
【発明を実施するための形態】
【０００７】
以下に、本実施形態について図面を参照して説明する。なお、以下の説明において、同一又は実質的に同一の機能を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。本実施形態は、技術的思想を具体化するための装置及び方法を例示するものであって、本実施形態の技術的思想は、構成部品の材質、形状、構造、配置等を下記のものに特定するものでない。本実施形態の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【０００８】
本実施形態では、第１の通信インタフェースに準拠する第１のデータ通信を第２の通信インタフェースに準拠する第２のデータ通信へ変換するインタフェース装置を説明する。以下において、互いにプロトコルの異なる通信インタフェースを用いるデバイス間でコマンド及び／又はデータ（以下、「コマンド／データ」と表記する）を通信可能とするインタフェース装置を、インタフェースブリッジ装置という。
【０００９】
第１の通信インタフェースは、例えば、様々なサーバ又はデバイスを単一のプロトコルで接続し、多対多の通信に適したインタフェースとする。第１の通信インタフェースの規格として、例えばＧｅｎ−Ｚ規格が用いられるが、これに限定されない。
【００１０】
第２の通信インタフェースは、例えば、サーバとＦＰＧＡ（Field Programmable Gate array）とを高速かつコヒーレントにピア・ツー・ピア接続するインタフェースとする。第２の通信インタフェースの規格として、例えばＯＰＥＮＣＡＰＩ（登録商標）規格が用いられるが、これに限定されず、例えば、ＰＣＩ Ｅｘｐｒｅｓｓ（登録商標）などでもよい。
【００１１】
本実施形態において、クレジットとは、例えば、受信側デバイスのバッファメモリの容量とする。換言すれば、クレジットとは、例えば、送信側デバイスからの送信が許容されるデータ量である。
【００１２】
フロー制御とは、受信側デバイスのバッファメモリのクレジットを確認し、送信側デバイスが受信側デバイスのクレジット内でコマンド／データを通信するための制御とする。本実施形態では、送信側デバイスに対して、受信側デバイスのクレジット内で通信を許可することを、クレジットを付与すると表記する。
【００１３】
本実施形態においては、クレジットの変換及びフロー制御に特徴があるため、この点を詳細に説明する。通信インタフェースの変換に必要であるがクレジットの変換及びフロー制御ではない他の制御に関しては、説明を省略するか、又は、簡単に説明する。
【００１４】
図１は、本実施形態に係るインタフェースブリッジ装置１の構成の一例を示すブロック図である。この図１は、クレジットの変換及びフロー制御に関連する構成要素のみを図示しており、その他の構成要素は省略している。
【００１５】
通信システム２は、第１のデバイス３と、第２のデバイス４と、第１のデバイス３と第２のデバイス４との間でデータ通信を中継するインタフェースブリッジ装置１とを備える。
本実施形態においては、第１のデバイス３が送信側デバイスとなる場合もあり受信側デバイスとなる場合もある。同様に、第２のデバイス４が送信側デバイスとなる場合もあり受信側デバイスとなる場合もある。
【００１６】
第１のデバイス３は、例えば、ホストデバイス、サーバ、ＳｏＣ（System on a Chip）、ＦＰＧＡ、メモリデバイス、アクセラレータ、プロセッサ、又は、入出力デバイスなどでもよい。第１のデバイス３は、インタフェースブリッジ装置１から受信したコマンド／データを蓄える受信バッファメモリ３Ａと、フロー制御部３Ｂとを備える。フロー制御部３Ｂは、第１の通信インタフェースＩ１に準拠するフロー制御を実行する。
【００１７】
第１のデバイス３は、第１の通信インタフェースＩ１に準拠するコマンド／データの通信を行う。
【００１８】
第２のデバイス４は、例えば、上記の第１のデバイス３と同様に、様々な種別のデバイスのうちのいずれかでもよい。第２のデバイス４は、インタフェースブリッジ装置１から受信したコマンド／データを蓄える受信バッファメモリ４Ａと、フロー制御部４Ｂとを備える。フロー制御部４Ｂは、第２の通信インタフェースＩ２に準拠するフロー制御を実行する。
【００１９】
第２のデバイス４は、第２の通信インタフェースＩ２に準拠するコマンド／データの通信を行う。
【００２０】
第１のデバイス３と第２のデバイス４は、インタフェースブリッジ装置１経由で、相互に通信可能となる。
【００２１】
インタフェースブリッジ装置１は、第１のデバイス３と通信可能に接続されており、第２のデバイス４と通信可能に接続されている。
【００２２】
インタフェースブリッジ装置１は、電子回路により構成されてもよく、又は、プロセッサ又はコントローラがプログラムを実行することにより実現されてもよい。
【００２３】
インタフェースブリッジ装置１は、変換部１１と、第１のインタフェース部５Ａと、第２のインタフェース部５Ｂとを備える。
【００２４】
変換部１１は、第１のデバイス３から、第１の通信インタフェースＩ１に準拠する第１のデータ（後で説明する図３のコマンド／データＤ１に相当）を、第１のインタフェース部５Ａ経由で受信する。次に、変換部１１は、第１のデータを第２の通信インタフェースＩ２に準拠する第２のデータ（後で説明する図３のコマンド／データＤ２に相当）へ変換する。そして、変換部１１は、第２のデータを、第２のインタフェース部５Ｂ経由で第２のデバイス４へ送信する。
【００２５】
これとは逆に、変換部１１は、第２のデバイス４から、第２の通信インタフェースＩ２に準拠する第３のデータ（後で説明する図２のコマンド／データＤ３に相当）を、第２のインタフェース部５Ｂ経由で受信する。次に、変換部１１は、第３のデータを第１の通信インタフェースＩ１に準拠する第４のデータ（後で説明する図２のコマンド／データＤ４に相当）へ変換する。そして、変換部１１は、第４のデータを、第１のインタフェース部５Ａ経由で第１のデバイス３へ送信する。
【００２６】
第１のインタフェース部５Ａは、第１の通信インタフェースＩ１に準拠するクレジットＣ１を、第２の通信インタフェースＩ２に準拠するクレジットＣ２へ等価的に変換する。第１のインタフェース部５Ａは、第１の通信部６Ａ、第１のフロー制御部７Ａ、第１のクレジット変換部８Ａ、第１の監視部９Ａを備える。また、第１の通信部６Ａは、受信バッファメモリ１０Ａを備える。
【００２７】
第２のインタフェース部５Ｂは、第２の通信インタフェースＩ２に準拠するクレジットＣ３を、第１の通信インタフェースＩ１に準拠するクレジットＣ４へ等価的に変換する。第２のインタフェース部５Ｂは、第２の通信部６Ｂ、第２のフロー制御部７Ｂ、第２のクレジット変換部８Ｂ、第２の監視部９Ｂを備える。また、第２の通信部６Ｂは、受信バッファメモリ１０Ｂを備える。
【００２８】
本実施形態において、第１のインタフェース部５Ａと第２のインタフェース部５Ｂとは組み合わされもよく、さらに分割されてもよい。また、第１のインタフェース部５Ａの各構成要素と、第２のインタフェース部５Ｂの各構成要素とは、組み合わされてもよく、さらに分割されてもよい。具体的には、例えば、第１の通信部６Ａと第２の通信部６Ｂとは組み合わされてもよく、第１のフロー制御部７Ａと第２のフロー制御部７Ｂとは組み合わされてもよく、第１のクレジット変換部８Ａと第２のクレジット変換部８Ｂとは組み合わされてもよく、第１の監視部９Ａと第２の監視部９Ｂとは組み合わされてもよい。例えば、受信バッファメモリ１０Ａと受信バッファメモリ１０Ｂとは組み合わされてもよい。例えば、受信バッファメモリ１０Ａは、第１の通信部６Ａと分離されてもよい。受信バッファメモリ１０Ｂは、第２の通信部６Ｂと分離されてもよい。
【００２９】
第１の通信部６Ａは、第１のデバイス３との間で、コマンド／データの送信及び受信を行う。第１の通信部６Ａは、第１のデバイス３から受信したコマンド／データを、第１の受信バッファメモリ１０Ａに蓄える。
【００３０】
第１のフロー制御部７Ａは、第１のデバイス３の受信バッファメモリ３Ａに関するクレジットＣ１の情報を第１の通信部６Ａ経由で受信すると、クレジットＣ１に基づき第１の通信インタフェースＩ１に準拠する第１のフロー制御を実行する。また、第１のフロー制御部７Ａは、クレジットＣ１を第１のクレジット変換部８Ａへ通知する。
【００３１】
第１のクレジット変換部８Ａは、第１のレートＲ１にしたがって第１のフロー制御部７Ａから受けたクレジットＣ１を第２の通信インタフェースＩ２に準拠するクレジットＣ２へ変換し、変換したクレジットＣ２を第２のフロー制御部７Ｂへ通知する。このクレジットＣ１からクレジットＣ２への変換をより具体的に説明すると、第１のクレジット変換部８Ａは、クレジットＣ１を第１のデバイス３へ送信可能なデータ量に相当するクレジットＣ２に変換する。
第１のレートＲ１は、第１の通信インタフェースＩ１に準拠するクレジットの所定の単位数に相当する第２の通信インタフェースＩ２に準拠するクレジットの単位数を表す。
【００３２】
第２のフロー制御部７Ｂは、第１のクレジット変換部８Ａから変換によって得られたクレジットＣ２を受けると、クレジットＣ２に基づき第２の通信インタフェースＩ２に準拠する第２のフロー制御を実行する。また、第２のフロー制御部７Ｂは、クレジットＣ２の情報を第２の通信部６Ｂ経由で第２のデバイス４へ送信する。
【００３３】
これにより、受信側デバイスである第１のデバイス３のクレジットＣ１に対応するクレジットＣ２が送信側デバイスである第２のデバイス４へ通知される。
【００３４】
第２のデバイス４は、クレジットＣ２にそってコマンド／データをインタフェースブリッジ装置１経由で第１のデバイス３へ送信する。
【００３５】
ここで、クレジットＣ１がクレジットＣ２よりもあるレベルを超えて小さい場合（Ｃ１≪Ｃ２）を仮定する。インタフェースブリッジ装置１は、第２のデバイス４からクレジットＣ２にそって第３のデータを受信し、この第３のデータを第４のデータへ変換する。しかしながら、クレジットＣ１がクレジットＣ２よりもあるレベルを超えて小さい場合には、インタフェースブリッジ装置１は、クレジットＣ１にそって、変換された第４のデータの全てを所定の期間内に第１のデバイス３へ送信することが困難な場合がある。第４のデータの全てを所定の期間内に第１のデバイス３へ送信できない場合、インタフェースブリッジ装置１は、第４のデータの一部をクレジットＣ１にそって第１のデバイス３へ送信し、第３のデータの他の部分を通信可能となるまで保持することになり、インタフェースブリッジ装置１に第３のデータの他の部分が留まり、データ通信に遅延が発生する。
【００３６】
これに対して、本実施形態では、先に説明したように、クレジットＣ１とクレジットＣ２とがほぼ等価となるように変換されている。このため、インタフェースブリッジ装置１は、クレジットＣ２にそって通信可能なデータ量の第３のデータを第４のデータに変換し、第４のデータを所定の期間内にクレジットＣ１にそって第１のデバイス３へ送信可能である。したがって、本実施形態においては、コマンド／データの通信がインタフェースブリッジ装置１で待ち状態になることを防止することができる。
【００３７】
ここで説明されている待ち状態とは、インタフェースブリッジ装置１が、受信側デバイスである第１のデバイス１から、送信のために必要なクレジットを付与されないため、第４のデータをスムーズに第１のデバイス３へ送信できない状態を意味する。本実施形態においては、第１のデバイス３から付与されたクレジットＣ１にそって第２のデバイス４へクレジットＣ２が付与される。このため、インタフェースブリッジ装置１でデータ転送待ちが生じることを防止でき、レイテンシが抑制され、送信待ちのデータを蓄えるための大容量のバッファメモリを持たなくてもよい。
【００３８】
第１の監視部９Ａは、例えば第１の通信部６Ａを監視することにより、変換部１１から第１のデバイス３へ第４のデータを送信することによって使用された第１の実使用クレジット（後で説明する図２の第１の実使用クレジットＡＣ１に相当）を監視する。第１の監視部９Ａは、例えば、所定周期ごとに第１の通信部６Ａを監視してもよく、所定の条件が成り立つ場合に第１の通信部６Ａを監視してもよい。
【００３９】
そして、第１の監視部９Ａは、第１の実使用クレジットを第１のクレジット変換部８Ａへ通知する。
【００４０】
第１のクレジット変換部８Ａは、例えば、第１のデバイス３が保有するクレジットＣ１から第１の実使用クレジットを減算し、第１の残りクレジット（後で説明する図２の第１の残りクレジットＲＣ１に相当）を求める。
【００４１】
第１のクレジット変換部８Ａは、例えば、第１の残りクレジットが第１の通信インタフェースＩ１の送信単位以上の場合に、第２のフロー制御で用いられるクレジットＣ２に第１の残りクレジット分を加えたデータ量に相当するクレジットＣ５を求める。
【００４２】
第１のクレジット変換部８Ａは、第２の通信インタフェースＩ２に準拠するクレジットＣ５を第２のフロー制御部７Ｂへ通知する。
【００４３】
第２のフロー制御部７Ｂは、第１のクレジット変換部８Ａから受けたクレジットＣ５に基づき第２の通信インタフェースＩ２に準拠する第２のフロー制御を実行する。また、第２のフロー制御部７Ｂは、クレジットＣ５の情報を第２の通信部６Ｂ経由で第２のデバイス４へ送信する。
【００４４】
これにより、第１の残りクレジットが１送信単位に十分な量余っている場合に、この第１の残りクレジットを有効利用するためのクレジットの変換を行うことができる。
【００４５】
より詳しく説明すると、クレジットＣ１と、このクレジットＣ１を変換して得られるクレジットＣ２とは、完全な等価ではなく、容量に差がある場合がある。第１の実使用クレジットが、クレジットＣ２と完全に同じにならない場合、第１の残りクレジットが生じる。この第１の残りクレジットが第１の通信インタフェースＩ１の１送信単位以上となった場合に、インタフェースブリッジ装置１は、第２のデバイス４に対してクレジットＣ２に代えてクレジットＣ５を付与する。
【００４６】
第２の通信部６Ｂは、第２のデバイス４との間で、コマンド／データの送信及び受信を行う。第２の通信部６Ｂは、第２のデバイス４から受信したコマンド／データを、第２の受信バッファメモリ１０Ｂに蓄える。
【００４７】
第２のフロー制御部７Ｂは、第２のデバイス４の受信バッファメモリ４Ａに関するクレジットＣ３の情報を第２の通信部６Ｂ経由で受信すると、クレジットＣ３に基づき第２の通信インタフェースＩ２に準拠する通信のフロー制御を実行する。また、第２のフロー制御部７Ｂは、クレジットＣ３を第２のクレジット変換部８Ｂへ通知する。
【００４８】
第２のクレジット変換部８Ｂは、第２のレートＲ２にしたがって第２のフロー制御部７Ｂから受けたクレジットＣ３を第１の通信インタフェースＩ１に準拠するクレジットＣ４へ変換し、変換したクレジットＣ４を第１のフロー制御部７Ａへ通知する。このクレジットＣ３からクレジットＣ４への変換をより具体的に説明すると、第２のクレジット変換部８Ｂは、クレジットＣ３を第２のデバイス４へ送信可能なデータ量に相当するクレジットＣ４に変換する。
第２のレートＲ２は、第２の通信インタフェースＩ２に準拠するクレジットの所定の単位数に相当する第１の通信インタフェースＩ１に準拠するクレジットの単位数を表す。
【００４９】
第１のフロー制御部７Ａは、第２のクレジット変換部８Ｂから変換によって得られたクレジットＣ４を受けると、クレジットＣ４に基づき第１の通信インタフェースＩ１に準拠する通信のフロー制御を実行する。また、第１のフロー制御部７Ａは、クレジットＣ４の情報を第１の通信部６Ａ経由で第１のデバイス３へ送信する。
【００５０】
これにより、受信側デバイスである第１のデバイス３のクレジットＣ３に対応するクレジットＣ４が送信側デバイスである第１のデバイス３へ通知される。
【００５１】
第１のデバイス３は、クレジットＣ４にそってコマンド／データをインタフェースブリッジ装置１経由で第２のデバイス４へ送信する。
【００５２】
ここで、クレジットＣ３がクレジットＣ４よりもあるレベルを超えて小さい場合（Ｃ３≪Ｃ４）を仮定する。インタフェースブリッジ装置１は、第１のデバイス３からクレジットＣ４にそって第１のデータを受信し、この第１のデータを第２のデータへ変換する。しかしながら、クレジットＣ３がクレジットＣ４よりもあるレベルを超えて小さい場合、インタフェースブリッジ装置１は、クレジットＣ３にそって、変換された第２のデータの全てを所定の期間内に第２のデバイス４へ送信することが困難な場合がある。第２のデータの全てを所定の期間内に第２のデバイス４へ送信できない場合、インタフェースブリッジ装置１は、第２のデータの一部をクレジットＣ３にそって第２のデバイス４へ送信し、第２のデータの他の部分を通信可能となるまで保持することになり、データ通信に遅延が発生する。
【００５３】
これに対して、本実施形態では、先に説明したように、クレジットＣ３とクレジットＣ４とがほぼ等価となるように変換されている。このため、インタフェースブリッジ装置１は、クレジットＣ４にそって通信可能なデータ量の第１のデータを第２のデータに変換し、第２のデータを所定の期間内にクレジットＣ３にそって第２のデバイス４へ送信可能である。したがって、本実施形態においては、コマンド／データの通信がインタフェースブリッジ装置１で待ち状態になることを防止し、レイテンシを抑制することができる。インタフェースブリッジ装置１は、送信待ちのデータを蓄えるための大容量のバッファメモリを持たなくてもよい。
【００５４】
第２の監視部９Ｂは、例えば第２の通信部６Ｂを監視することにより、変換部１１から第２のデバイス４へ第２のデータを送信することによって使用された第２の実使用クレジット（後で説明する図３の第２の実使用クレジットＡＣ２に相当）を監視する。第２の監視部９Ｂは、例えば、所定周期ごとに第２の通信部６Ｂを監視してもよく、所定の条件が成り立つ場合に第２の通信部６Ｂを監視してもよい。
【００５５】
そして、第２の監視部９Ｂは、第２の実使用クレジットを第２のクレジット変換部８Ｂへ通知する。
【００５６】
第２のクレジット変換部８Ｂは、例えば、第２のデバイス４が保有するクレジットＣ３から第２の実使用クレジットを減算し、第２の残りクレジット（後で説明する図３の第２の残りクレジットＲＣ２に相当）を求める。
【００５７】
第２のクレジット変換部８Ｂは、例えば、第２の残りクレジットが第２の通信インタフェースＩ２の送信単位以上の場合に、第１のフロー制御で用いられるクレジットＣ４に第２の残りクレジット分を加えたデータ量に相当するクレジットＣ６を求める。
【００５８】
第２のクレジット変換部８Ｂは、第１の通信インタフェースＩ１に準拠するクレジットＣ６を第１のフロー制御部７Ａへ通知する。
【００５９】
第１のフロー制御部７Ａは、第２のクレジット変換部８Ｂから受けたクレジットＣ６に基づき第１の通信インタフェースＩ１に準拠する第１のフロー制御を実行する。また、第１のフロー制御部７Ａは、クレジットＣ６の情報を第１の通信部６Ａ経由で第１のデバイス３へ送信する。
【００６０】
これにより、第２の残りクレジットが１送信単位に十分な量余っている場合に、この第２の残りクレジットを有効利用するためのクレジットの変換を行うことができる。
【００６１】
本実施形態において、第１のデバイス３からインタフェースブリッジ１経由で第２のデバイス４へコマンド／データを送信する流れと、第２のデバイス４からインタフェースブリッジ１経由で第１のデバイス３へコマンド／データを送信する流れとは、独立して実行可能である。したがって、クレジットＣ１の付与は、クレジットＣ３及び／又はクレジットＣ４の付与と並列に行われてもよい。同様に、クレジットＣ２の付与は、クレジットＣ３及び／又はクレジットＣ４の付与と並列に行われてもよい。
【００６２】
図２は、第１のデバイス３に関するクレジットＣ１に基づいて、第２のデバイス４によるコマンド／データＤ３の通信量が制御される通信システム２の一例を示すブロック図である。なお、この図２の受信バッファメモリ３Ａ，１０Ｂにおける斜線部は使用中のメモリ領域を示し、白抜き部は未使用のメモリ領域を示す。以下の他の図面についても同様に、受信バッファメモリ３Ａ，４Ａ，１０Ａ，１０Ｂにおける斜線部は使用中のメモリ領域を示し、白抜き部は未使用のメモリ領域を示す。
【００６３】
この図２では、第１のデバイス３が受信側デバイスであり、第２のデバイス４が送信側デバイスであり、第１のデバイス３に対応するクレジットＣ１が、第２のデバイス４に対応するクレジットＣ２へ変換される。
【００６４】
まず、第１のデバイス３は、インタフェースブリッジ装置１へクレジットＣ１を付与する。
【００６５】
インタフェースブリッジ装置１は、第１の通信インタフェースＩ１に準拠するクレジットＣ１を、クレジットＣ１と等価に近く第２の通信インタフェースＩ２に準拠するクレジットＣ２に変換する。そして、インタフェースブリッジ装置１は、クレジットＣ２の情報を第２のデバイスＣ２へ通知する。
【００６６】
クレジットＣ１をクレジットＣ２へ変換する場合に、インタフェースブリッジ装置１は、第１の通信インタフェースＩ１に準拠するクレジットの所定の単位数に相当する第２の通信インタフェースＩ２に準拠するクレジットの単位数を用いる。
【００６７】
これにより、第１のデバイス３に対応するクレジットＣ１を等価的に変換して得られるクレジットＣ２が、第２のデバイス４に付与される。
【００６８】
第２のデバイス４は、クレジットＣ２にしたがってインタフェースブリッジ装置１へコマンド／データＤ３を送信し、さらに、インタフェースブリッジ装置１は、クレジットＣ１にしたがって第１のデバイス３へコマンド／データＤ４を送信する。
【００６９】
その後、インタフェースブリッジ装置１は、第１のデバイス３とインタフェースブリッジ装置１との間の第１の実使用クレジットＡＣ１を監視し、インタフェースブリッジ装置１から第２のデバイス４へ付与されるクレジットＣ２をクレジットＣ５へ更新する。図２は、クレジットＣ５を破線で図示することにより、インタフェースブリッジ装置１が、クレジットＣ２に代えてクレジットＣ５を第２のデバイス４に付与することを表現している。
【００７０】
具体的には、インタフェースブリッジ装置１は、例えば、クレジットＣ１から第１の実使用クレジットＡＣ１を減算した第１の残りクレジットＲＣ１が１送信単位に十分なデータ量である場合に、第１の残りクレジットＲＣ１が使用されるような第２の通信インタフェースＩ２に準拠するクレジットＣ５を求める。そして、インタフェースブリッジ装置１は、クレジットＣ５を第２のデバイス４へ付与する。
【００７１】
なお、インタフェースブリッジ装置１の受信バッファメモリ１０Ｂのデータ容量は、第１のデバイス３の受信バッファメモリ３Ａのデータ容量以上であるとする。
【００７２】
図３は、第２のデバイス４に関するクレジットＣ３に基づいて、第１のデバイス３によるコマンド／データＤ１の通信量が制御される通信システム２の一例を示すブロック図である。
【００７３】
この図３は、上記図２と逆方向の通信である。図３では、第２のデバイス４が受信側デバイスであり、第１のデバイス３が送信側デバイスであり、第２のデバイス４に対応するクレジットＣ３が、第１のデバイス３に対応するクレジットＣ４へ変換される。
【００７４】
まず、第２のデバイス４は、インタフェースブリッジ装置１へクレジットＣ３を付与する。
【００７５】
インタフェースブリッジ装置１は、第２の通信インタフェースＩ２に準拠するクレジットＣ３を、クレジットＣ３と等価に近く第１の通信インタフェースＩ１に準拠するクレジットＣ４に変換する。そして、インタフェースブリッジ装置１は、クレジットＣ４の情報を第１のデバイス３へ通知する。
【００７６】
クレジットＣ３をクレジットＣ４へ変換する場合に、インタフェースブリッジ装置１は、第２の通信インタフェースＩ２に準拠するクレジットの所定の単位数に相当する第１の通信インタフェースＩ１に準拠するクレジットの単位数を用いる。
【００７７】
これにより、第２のデバイス４に対応するクレジットＣ３を等価的に変換して得られるクレジットＣ４が、第１のデバイス３に付与される。
【００７８】
第１のデバイス３は、クレジットＣ４にしたがってインタフェースブリッジ装置１へコマンド／データＤ１を送信し、さらに、インタフェースブリッジ装置１は、クレジットＣ３にしたがって第２のデバイス４へコマンド／データＤ２を送信する。
【００７９】
その後、インタフェースブリッジ装置１は、第２のデバイス４とインタフェースブリッジ装置１との間の第２の実使用クレジットＡＣ２を監視し、インタフェースブリッジ装置１から第１のデバイス３へ付与されるクレジットＣ４をクレジットＣ６へ更新する。図３は、クレジットＣ６を破線で図示することにより、インタフェースブリッジ装置１が、クレジットＣ４に代えてクレジットＣ６を第１のデバイス１に付与することを表現している。
【００８０】
具体的には、インタフェースブリッジ装置１は、例えば、クレジットＣ３から第２の実使用クレジットＡＣ２を減算した第２の残りクレジットＲＣ２が１送信単位に十分なデータ量である場合に、第２の残りクレジットＲＣ２が使用されるような第１の通信インタフェースＩ１に準拠するクレジットＣ６を求める。そして、インタフェースブリッジ装置１は、クレジットＣ６を第１のデバイス３へ付与する。
【００８１】
なお、この図３において、インタフェースブリッジ装置１の受信バッファメモリ１０Ａのデータ容量は、第２のデバイス４の受信バッファメモリ４Ａのデータ容量以上であるとする。
【００８２】
図４は、本実施形態に係る第１の通信インタフェースＩ１と第２の通信インタフェースＩ２との比較結果の一例を示す図である。
【００８３】
第１の通信インタフェースＩ１のクレジットの管理単位は、パケット用クレジットである。パケット用クレジットは、パケットの通信を管理するためのクレジットである。パケットは、コマンドとデータとを含む。
【００８４】
第１の通信インタフェースＩ１は、パケット用クレジットとして、例えば１６バイト単位でクレジットを付与する。
【００８５】
第１の通信インタフェースＩ１において、クレジットとは、例えば、受信バッファメモリの残り容量を意味する。
【００８６】
第１の通信インタフェースＩ１において、最小パケット長は、例えば８バイトとする。
【００８７】
これに対して、第２の通信インタフェースＩ２のクレジットの管理単位は、コマンド用クレジットの場合とデータ用クレジットの場合とがある。コマンド用クレジットは、１以上のコマンドを含むコントロールフリットの通信を管理するためのクレジットである。データ用クレジットは、１以上のデータを含むデータフリットの通信を管理するためのクレジットである。
【００８８】
第２の通信インタフェースＩ２は、コマンド用クレジットとして、例えば１コマンド単位でクレジットを付与する。
【００８９】
第２の通信インタフェースＩ２は、データ用クレジットとして、例えば６４バイト単位でクレジットを付与する。
【００９０】
第２の通信インタフェースＩ２においては、クレジットが、例えば、送信を許可されるコマンド／データの数で表現される。
【００９１】
第２の通信インタフェースＩ２において、最大コマンド長は、例えば２１バイト（３．５バイト×６スロット）である。
【００９２】
図４に示すように、本実施形態では、互いに異なる２つの通信インタフェースＩ１，Ｉ２に準拠するフロー制御のクレジットを、ほぼ等価となるように調整する。
【００９３】
図５は、第１の通信インタフェースＩ１に準拠するパケットＰＫ１〜ＰＫｍのフォーマットの一例を示すブロック図である。
【００９４】
パケットＰＫ１〜ＰＫｍのそれぞれは、コマンドとデータ（又はペイロード）を含む。パケットＰＫ１〜ＰＫｍは、例えば可変長としてもよい。
【００９５】
図６は、第２の通信インタフェースＩ２に準拠するフリットＦＬ１〜ＦＬｎのフォーマットの一例を示すブロック図である。
【００９６】
フリットとは、例えば、フロー制御の最小単位とする。第２の通信インタフェースＩ２では、１以上のコマンドがコントロールフリットＦＬ１に格納される。また、１以上のデータがデータフリットＦＬｎに格納される。
【００９７】
コントロールフリットＦＬ１及びデータフリットＦＬｎは、それぞれ固定長であるとし、例えば、６４バイトとしてもよい。
【００９８】
図７は、本実施形態に係るインタフェースブリッジ装置１の処理の一例を示すフローチャートである。
【００９９】
この図７では、第２のデバイス４からインタフェースブリッジ装置１経由で第１のデバイス３へコマンド／データが送信される場合を例として説明する。
【０１００】
ステップＳ７０１において、通信システム２は、インタフェース物理層の初期化、同期、リンクの確立を含む初期化シーケンスを開始する。
【０１０１】
ステップＳ７０２において、第１のフロー制御部７Ａは、第１のデバイス３からクレジットＣ１に関する情報を第１の通信部６Ａ経由で受信し、クレジットＣ１を第１のクレジット変換部８Ａへ通知する。このステップＳ７０２は、クレジットＣ１の付与に相当する。
【０１０２】
ステップＳ７０３において、第１のクレジット変換部８Ａは、第１の通信インタフェースＩ１に準拠するクレジットＣ１を、当該クレジットＣ１と等価的であり第２の通信インタフェースＩ２に準拠するクレジットＣ２へ変換し、クレジットＣ２を第２のフロー制御部７Ｂへ通知する。
【０１０３】
ステップＳ７０４において、第２のフロー制御部７Ｂは、クレジットＣ２に関する情報を、第２の通信部６Ｂ経由で第２のデバイス４へ送信する。このステップＳ７０４は、クレジットＣ２の付与に相当する。
【０１０４】
ステップＳ７０５において、第２の通信部６Ｂは、第２のデバイス４から、第２の通信インタフェースＩ２に準拠するコマンド／データＤ３を受信し、受信したコマンド／データＤ３を受信バッファメモリ１０Ｂに蓄える。
【０１０５】
ステップＳ７０６において、変換部１１は、受信バッファメモリ１０Ｂのコマンド／データＤ３を、第１の通信インタフェースＩ１に準拠するコマンド／データＤ４へ変換する。
【０１０６】
ステップＳ７０７において、第１の通信部６Ａは、第１の通信インタフェースＩ１に準拠するコマンド／データＤ４を、第１のデバイス３へ送信する。
【０１０７】
ステップＳ７０８において、第１の監視部９Ａは、第１の実使用クレジットＡＣ１の監視を実行するか否か判断する。
【０１０８】
監視を実行する場合、ステップＳ７０９において、第１の監視部９Ａは、クレジットの実使用分である第１の実使用クレジットＡＣ１を求める。
【０１０９】
ステップＳ７１０において、第１のクレジット変換部８Ａは、第１のフロー制御で付与されているクレジットＣ１から第１の実使用クレジットＡＣ１を減算した第１の残りクレジットＲＣ１を求め、第２のフロー制御で付与されているクレジットＣ２に第１の残りクレジットＲＣ１分を加えたデータ量に相当するクレジットＣ５を求め、クレジットＣ２をクレジットＣ５へ変換する要求を第２のフロー制御部７Ｂへ通知する。
【０１１０】
ステップＳ７１１において、第２のフロー制御部７Ｂは、クレジットＣ５に関する情報を、第２の通信部６Ｂ経由で第２のデバイス４へ送信する。このステップＳ７１１は、クレジットＣ５の付与に相当する。
【０１１１】
その後、処理は、ステップＳ７０５へ移動する。
【０１１２】
上記ステップＳ７０８において監視を実行しないと判断された場合、ステップＳ７１２において、インタフェースブリッジ装置１は、通信を終了するか否か判断する。
【０１１３】
通信を終了しない場合、処理はステップＳ７０５へ移動する。
通信を終了する場合、処理は終了する。
【０１１４】
図８は、本実施形態に係るインタフェースブリッジ装置１の処理の第２の例を示すフローチャートである。
【０１１５】
この図８では、第１のデバイス３からインタフェースブリッジ装置１経由で第２のデバイス４へコマンド／データが送信される場合を例として説明する。
【０１１６】
ステップＳ８０１において、通信システム２は、初期化シーケンスを開始する。
【０１１７】
ステップＳ８０２において、第２のデバイス４は、インタフェースブリッジ装置１へクレジットＣ３を付与する。
【０１１８】
ステップＳ８０３において、第２のクレジット変換部８Ｂは、クレジットＣ３をクレジットＣ４へ変換する。
【０１１９】
ステップＳ８０４において、第１のフロー制御部７Ａは、第１のデバイス３へクレジットＣ４を付与する。
【０１２０】
ステップＳ８０５において、第１の通信部６Ａは、第１のデバイス４からコマンド／データＤ１を受信する。
【０１２１】
ステップＳ８０６において、変換部１１は、コマンド／データＤ１をコマンド／データＤ２へ変換する。
【０１２２】
ステップＳ８０７において、第２の通信部６Ｂは、コマンド／データＤ２を、第２のデバイス４へ送信する。
【０１２３】
ステップＳ８０８において、第２の監視部９Ｂは、第２の実使用クレジットＡＣ２の監視を実行するか否か判断する。
【０１２４】
監視を実行する場合、ステップＳ８０９において、第２の監視部９Ｂは、クレジットの実使用分である第２の実使用クレジットＡＣ２を求める。
【０１２５】
ステップＳ８１０において、第２のクレジット変換部８Ｂは、クレジットＣ３から第２の実使用クレジットＡＣ２を減算した第２の残りクレジットＲＣ２を求め、クレジットＣ４に第２の残りクレジットＲＣ２分を加えたデータ量に相当するクレジットＣ６を求め、付与されているクレジットＣ４をクレジットＣ６へ代える要求を第１のフロー制御部７Ａへ通知する。
【０１２６】
ステップＳ８１１において、第１のフロー制御部７Ａは、第１のデバイス３へクレジットＣ６を付与する。
【０１２７】
その後、処理は、ステップＳ８０５へ移動する。
【０１２８】
上記ステップＳ８０８において監視を実行しないと判断された場合、ステップＳ８１２において、インタフェースブリッジ装置１は、通信を終了するか否か判断する。
【０１２９】
通信を終了しない場合、処理はステップＳ８０５へ移動する。
通信を終了する場合、処理は終了する。
【０１３０】
以下で、本実施形態によって得られる効果を説明する。
【０１３１】
クレジット管理をデータ通信のリンク単位で行う比較例のブリッジ装置では、受信側デバイスとブリッジ装置との間のクレジットと、送信側デバイスとブリッジ装置との間のクレジットとは非同期である。このように、クレジット管理をデータ通信のリンク単位で行うと、一方のデバイスに付与された一方のクレジットが他方のデバイスに付与された他方のクレジットよりもある程度小さくなる場合があり得る。この場合、比較例のブリッジ装置は、他方のデバイスから他方のクレジットにしたがって受信したデータを変換し、変換したデータを一方のクレジットにしたがって一方のデバイスに所定期間内に送信できず、レイテンシが増加する場合がある。また、比較例のブリッジ装置においてレイテンシが増加すると、この比較例のブリッジ装置に保持されるデータが多くなるため、バッファメモリを大量に保有する必要があり、コストも増加する場合がある。
【０１３２】
これに対して、本実施形態に係るインタフェースブリッジ装置１は、受信側デバイスが受信できるコマンド／データの量に応じて、送信側デバイスに付与されるクレジットが決定される。送信側デバイスは、この決定されたクレジットの範囲内でデータ通信を実行し、クレジットを超えるデータ通信を行わない。換言すれば、受信側デバイスとブリッジ装置との間のクレジットと、送信側デバイスとブリッジ装置との間のクレジットとが同期する。これにより、本実施形態においては、受信バッファメモリ１０Ａ，１０Ｂのサイズを小さくすることができ、製造コストを低減させることができる。また、送信側デバイスから送信されたコマンド／データが受信バッファメモリ１０Ａ，１０Ｂに長時間維持され、インタフェースブリッジ装置１で遅延が発生することを抑制することができ、低レイテンシな通信システム２を実現することができる。
【０１３３】
本実施形態においては、インタフェースブリッジ装置１が受信側デバイスに付与したクレジットを、インタフェースブリッジ装置１と送信側デバイスとの間のクレジットに反映させる。本実施形態では、クレジットの単位が異なる２つの通信インタフェースＩ１，Ｉ２に関して相互にクレジットを等価的に変換可能である。本実施形態においては、双方向通信で用いられる２つの異なる通信インタフェースＩ１，Ｉ２間のクレジットを調整し、データ通信を円滑化し、送信側デバイスから受信側デバイスまでのデータの透過性を向上させることができ、通信システム２のレイテンシを低下させることができる。
【０１３４】
本実施形態においては、受信側デバイスとインタフェースブリッジ装置１との間の残りのクレジットを、送信側デバイスとインタフェースブリッジ装置１との間のクレジットへフィードバックすることができ、通信システム２で実行されるデータ通信を効率化することができる。
【０１３５】
本実施形態においては、クレジットの付与を並列化することができ、クレジット付与に伴う処理時間を低減することができる。
【０１３６】
（第２の実施形態）
本実施形態は、上記第１の実施形態の具体例を説明する。本実施形態では、インタフェースブリッジ装置１が第２の通信インタフェースＩ２に準拠するコマンド／データＤ３を第１の通信インタフェースＩ１に準拠するコマンド／データＤ４へ変換する場合を例として説明する。
【０１３７】
図９は、本実施形態に係るインタフェースブリッジ装置１によるクレジット変換の実行状態を例示するブロック図である。
【０１３８】
処理ＰＡ１は、第１の通信インタフェースＩ１の６つのパケット用クレジット（例えば９６バイト）を、第２の通信インタフェースＩ２の１つのコマンド用クレジットと１つのデータ用クレジットへ変換する。
【０１３９】
具体的には、例えば、第２の通信インタフェースＩ２のコマンド用クレジットの最大長が２１バイトであるとする。この場合、第１の通信インタフェースＩ１のパケット用クレジットの２つ分（３２バイト）が、第２の通信インタフェースＩ２の１つのコマンド用クレジットに割り当てられる。
【０１４０】
また、例えば、第２の通信インタフェースＩ２のデータ用クレジットが６４バイトであるとする。この場合、第１の通信インタフェースＩ１のパケット用クレジットの４つ分（６４バイト）が、第２の通信インタフェースＩ２の１つのデータ用クレジットに割り当てられる。
【０１４１】
この結果、上記処理ＰＡ１のように、第１の通信インタフェースＩ１の６つのパケット用クレジットＰＣが、第２の通信インタフェースＩ２の１つのコマンド用クレジットＣＣ１と１つのデータ用クレジットＤＣ１へ変換される。
【０１４２】
図１０は、本実施形態に係るインタフェースブリッジ装置１による残りクレジットを有効利用するためのクレジット変換の実行状態を例示するブロック図である。
【０１４３】
上記図９の処理ＰＡ１によりクレジットが付与された後、第２のデバイス４は、インタフェースブリッジ装置１へ第２の通信インタフェースＩ２に準拠するコマンド／データＤ３を送信する。インタフェースブリッジ装置１は、第２のデバイス４から第２の通信インタフェースＩ２に準拠するコマンド／データＤ３を受信し、受信したコマンド／データＤ３を第１の通信インタフェースＩ１に準拠するコマンド／データＤ４（例えばパケット）へ変換し、コマンド／データＤ４を第１のデバイス３へ送信する。
【０１４４】
図１０の処理ＰＡ２は、第１のデバイス３の受信バッファメモリ３Ａで使用された第１の実使用クレジットＡＣ１を監視する。そして、処理ＰＡ２は、第１の通信インタフェースＩ１の６つのパケット用クレジット（例えば９６バイト）から第１の実使用クレジットＡＣ１を減算し、第１の通信インタフェースＩ１の第１の残りクレジットＲＣ１を求める。
【０１４５】
処理ＰＡ３は、第１の残りクレジットＲＣ１がクレジット変換を実行すべきデータ量（例えば、第１の通信インタフェースＩ１の１送信単位）以上の場合に、第１の残りクレジットＲＣ１を有効利用可能な第１の通信インタフェースＩ１に準拠するクレジットを、第２の通信インタフェースＩ２のコマンド用クレジットＣＣ２とデータ用クレジットＤＣ２へ変換する。図１０は、コマンド用クレジットＣＣ２及びデータ用クレジットＤＣ２を破線で図示することにより、インタフェースブリッジ装置１が、上記の図９のコマンド用クレジットＣＣ１及びデータ用クレジットＤＣ１に代えて図１０のコマンド用クレジットＣＣ２及びデータ用クレジットＤＣ２を第２のデバイス４に付与することを表現している。
【０１４６】
以上説明したように、本実施形態においては、第１の通信インタフェースＩ１に準拠するクレジットを、当該第１の通信インタフェースＩ１に準拠するクレジットとほぼ等価であり第２の通信インタフェースＩ２に準拠するクレジットへ適切に変換することができる。
【０１４７】
また、本実施形態においては、第１の通信インタフェースＩ１に準拠する第１の実使用クレジットＡＣ１を求め、付与されているクレジットから第１の実使用クレジットＡＣ１を減算することにより第１の残りクレジットＲＣ１を算出することができる。
【０１４８】
そして、本実施形態においては、第２のデバイス４に付与されるクレジットを、第２の通信インタフェースＩ２に準拠しており第１の残りクレジットＲＣ１を有効利用可能なクレジットへ適切に切り替えることができる。
【０１４９】
（第３の実施形態）
本実施形態は、上記第１の実施形態の具体例を説明する。本実施形態では、インタフェースブリッジ装置１が第１の通信インタフェースＩ１に準拠するコマンド／データＤ１を第２の通信インタフェースＩ２に準拠するコマンド／データＤ２へ変換する場合を例として説明する。
【０１５０】
図１１は、本実施形態に係るインタフェースブリッジ装置１によるクレジット変換の実行状態を例示するブロック図である。
【０１５１】
処理ＰＢ１は、第２の通信インタフェースＩ２の２つのコマンド用クレジットと１つのデータ用クレジットを、第１の通信インタフェースＩ１の１つのパケット用クレジット（例えば１６バイト）へ変換する。
【０１５２】
具体的には、例えば、第２の通信インタフェースＩ２の最短のコマンド用クレジットは８バイトであるとする。データ（例えばペイロード）がない場合、最大で２つの最短のコマンド用クレジットを第１の通信インタフェースＩ１の１つのパケット用クレジットへ割り当て可能である。データがある場合、第２の通信インタフェースＩ２の１つのデータ用クレジットを第１の通信インタフェースＩ１の１つのパケット用クレジットへ割り当て可能である。クレジット変換を行う時点で、第２の通信インタフェースＩ２のクレジットは、データあり、または、データなしのいずれで使用されるか分からない。
【０１５３】
したがって、上記処理ＰＢ１では、第２の通信インタフェースＩ２のクレジットがデータありで使われても、または、データなしで使われてもよいように、第２の通信インタフェースＩ２の２つのコマンド用クレジットと１つのデータ用クレジットが、第１の通信インタフェースＩ１の１つのパケット用クレジットＰＣ１へ変換される。
【０１５４】
図１２は、本実施形態に係るインタフェースブリッジ装置１による残りクレジットを有効利用するためのクレジット変換の実行状態を例示するブロック図である。
【０１５５】
上記図１１の処理ＰＢ１によりクレジットが付与された後、第１のデバイス３は、インタフェースブリッジ装置１へ第１の通信インタフェースＩ１に準拠するコマンド／データＤ１（例えばパケット）を送信する。インタフェースブリッジ装置１は、第１のデバイス３から第１の通信インタフェースＩ１に準拠するコマンド／データＤ１を受信し、受信したコマンド／データＤ１を第２の通信インタフェースＩ２に準拠するコマンド／データＤ２へ変換し、コマンド／データＤ２を第２のデバイス４へ送信する。
【０１５６】
図１２の処理ＰＢ２は、第２のデバイス４の受信バッファメモリ４Ａで使用された第２の実使用クレジットＡＣ２を監視する。そして、処理ＰＢ２は、第２のデバイス４に付与されているクレジットから第２の実使用クレジットＡＣ２を減算し、第２の通信インタフェースＩ２の第２の残りクレジットＲＣ２を求める。
【０１５７】
処理ＰＢ３は、第２の残りクレジットＲＣ２がクレジット変換を実行すべきデータ量（例えば、第２の通信インタフェースＩ２の１送信単位）以上の場合に、第２の残りクレジットＲＣ２を有効利用可能な第２の通信インタフェースＩ２に準拠するクレジットを、第１の通信インタフェースＩ１のパケット用クレジットＰＣ２へ変換する。図１２は、パケット用クレジットＰＣ２を破線で図示することにより、インタフェースブリッジ装置１が、上記の図１１のパケット用クレジットＰＣ１に代えて図１２のパケット用クレジットＰＣ２を第１のデバイス３に付与することを表現している。
【０１５８】
以上説明したように、本実施形態においては、第２の通信インタフェースＩ２に準拠するクレジットを、当該第２の通信インタフェースＩ２に準拠するクレジットとほぼ等価であり第１の通信インタフェースＩ１に準拠するクレジットへ適切に変換することができる。
【０１５９】
また、本実施形態においては、第２の通信インタフェースＩ２に準拠する第２の実使用クレジットＡＣ２を求め、付与されているクレジットから第２の実使用クレジットＡＣ２を減算することにより第２の残りクレジットＲＣ２を算出することができる。
【０１６０】
そして、本実施形態においては、第１のデバイス３に付与されるクレジットを、第１の通信インタフェースＩ１に準拠しており第２の残りクレジットＲＣ２を有効利用可能なクレジットへ適切に切り替えることができる。
【０１６１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１６２】
１…インタフェースブリッジ装置、２…通信システム、３…第１のデバイス、３Ａ，４Ａ，１０Ａ，１０Ｂ…受信バッファメモリ、４…第２のデバイス、Ｉ１…第１の通信インタフェース、Ｉ２…第２の通信インタフェース、５Ａ…第１のインタフェース部、５Ｂ…第２のインタフェース部、６Ａ…第１の通信部、６Ｂ…第２の通信部、７Ａ…第１のフロー制御部、７Ｂ…第２のフロー制御部、８Ａ…第１のクレジット変換部、８Ｂ…第２のクレジット変換部、９Ａ…第１の監視部、９Ｂ…第２の監視部、１１…変換部、Ｒ１…第１のレート、Ｒ２…第２のレート。
【図１】
2020048030.tif 000003
【図２】
2020048030.tif 000004
【図３】
2020048030.tif 000005
【図４】
2020048030.tif 000006
【図５】
2020048030.tif 000007
【図６】
2020048030.tif 000008
【図７】
2020048030.tif 000009
【図８】
2020048030.tif 000010
【図９】
2020048030.tif 000011
【図１０】
2020048030.tif 000012
【図１１】
2020048030.tif 000013
【図１２】
2020048030.tif 000014