(57)【要約】【課題】  リトライタイムアウトを回避可能な通信制御装置を提供する。【解決手段】  パケット判定制御回路１０３は、受信した非同期パケットがリトライパケットか否かを判定し、格納先判定制御回路１０４は、受信ビジー状態を監視し、リトライパケット受信時、受信ビジー状態であれば、リトライパケット受信専用ＦＩＦＯ１０２−１、１０２−２、…、１０２−ｎを、受信したリトライパケットの格納先に指定する。【選択図】  図１
2006109312.tif 000002
【特許請求の範囲】
【請求項１】
非同期パケットの送受信を制御する通信制御装置において、
受信した非同期パケットを格納する第１の記憶部と、
非同期リトライパケットのみを格納する少なくとも１つ以上の第２の記憶部と、
前記非同期パケット受信時に、受信した前記非同期パケットが前記非同期リトライパケットか否かを判定するパケット判定制御回路と、
受信ビジー状態を監視し、前記非同期リトライパケット受信時、受信ビジー状態であれば、前記第２の記憶部を、受信した前記非同期リトライパケットの格納先に指定する格納先判定制御回路と、
を有することを特徴とする通信制御装置。
【請求項２】
前記格納先判定制御回路は、前記非同期リトライパケット受信時、受信ビジー状態でなければ、前記第１の記憶部を、受信した前記非同期リトライパケットの格納先に指定することを特徴とする請求項１記載の通信制御装置。
【請求項３】
前記格納先判定制御回路は、複数の前記第２の記憶部のうち、使用中ではない前記第２の記憶部を、受信した前記非同期リトライパケットの格納先に指定することを特徴とする請求項１記載の通信制御装置。
【請求項４】
非同期パケットの送受信を制御する通信制御方法において、
非同期パケット受信時に、非同期リトライパケットか否かを判定し、
受信ビジー状態を監視して、前記非同期リトライパケット受信時、受信ビジー状態であれば、受信した前記非同期パケットを格納する第１の記憶部とは別に設けられた非同期リトライパケットのみを格納する少なくとも１つ以上の第２の記憶部を、受信した前記非同期リトライパケットの格納先に指定することを特徴とする通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信制御装置及び通信制御方法に関し、特にＩＥＥＥ１３９４に準拠したシリアルバスで接続された機器における非同期転送を制御する通信制御装置及び通信制御方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータやその周辺機器及びＡＶ（Audio/Visual）機器を接続することが可能な高速シリアルバスの規格として、ＩＥＥＥ（the Institute of Electrical and Electronic Engineers）により提唱されたＩＥＥＥ１３９４シリアルバス・インタフェース規格（以下、ＩＥＥＥ１３９４という。）が用いられている。ＩＥＥＥ１３９４では、同期（アイソクロナス）転送と、非同期（アシンクロナス）転送の２つのデータ転送モードが規定されている。同期転送は、データを転送するために予め帯域を確保し、１２５μｓごとに一定量のパケットを送受信することが保証されたデータ転送モードであり、映像やオーディオなどのリアルタイム転送に適している。一方、非同期転送は、帯域は保障していないがエラーが発生した場合には再送手続きを行い、確実なデータの転送が可能なデータ転送モードである。ストレージデバイスやプリンタやスキャナなどのデータの欠落が許されないデバイスには、主に非同期転送が使用される。
【０００３】
非同期転送を制御する通信用ＬＳＩ（Large Scale Integrated circuit）（以下通信制御装置という。）の例として、従来、トランザクション・レイヤ回路に、データを含む容量の大きいパケットを格納する記憶容量の大きいＦＩＦＯ（First-In First-Out）メモリ（以下単にＦＩＦＯという。）と、データを含まない容量の小さいパケットを格納する記憶容量の小さいＦＩＦＯと、これらのＦＩＦＯを選択するセレクタを設け、データを含む大容量のデータをＩＥＥＥ１３９４規格のパケットにして送受信し、且つ、ＦＩＦＯを効率よく使用できる回路が開示されている（例えば、特許文献１参照。）。
【０００４】
図５は、従来の通信制御装置における通常状態の非同期転送を説明する通信シーケンス図である。
非同期転送では、送信装置側が非同期パケット送信すると、受信装置側ではその非同期パケットを受信し、受信を完了した旨の信号（ａｃｋ＿ｃｏｍｐｌｅｔｅパケット）を送信装置側に送信する。
【０００５】
図６は、従来の通信制御装置における受信ビジー状態の非同期転送を説明する通信シーケンス図である。
受信装置は、通信制御装置内の非同期パケット受信専用ＦＩＦＯから、受信したパケットを全て読み出すまで受信ビジー状態となる。受信装置は、受信ビジー状態のときに新たに非同期パケットを受信すると、非同期パケット受信専用ＦＩＦＯには受信した非同期パケットを格納せず、ａｃｋ＿ｂｕｓｙ＿Ｘパケットを送信装置に返送する。これにより、受信ビジー状態であることを送信装置に通知する。
【０００６】
送信装置は、ａｃｋ＿ｂｕｓｙ＿Ｘパケットを受信すると、非同期リトライパケット（以下リトライパケットという。）を送信することにより、非同期パケットの再送を行う。
【特許文献１】特開平１１−１７７１０号公報（第４−８頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、受信装置は、リトライパケットの受信時、図６のように受信ビジー状態が続いていると、再び送信装置にａｃｋ＿ｂｕｓｙ＿Ｘパケットを返送する。この通信状態が続くと、いずれ送信装置は、リトライパケットの送信による非同期パケットの再送を停止する。つまりリトライタイムアウトが発生する。リトライタイムアウトが発生すると、送信装置は受信装置がハングしたと誤認識する。また、当該アプリケーションを一旦停止して、初期状態からアプリケーションの再起動を開始することとなり、アプリケーションの処理効率が低下するという問題があった。
【０００８】
本発明はこのような点に鑑みてなされたものであり、リトライタイムアウトを回避可能な通信制御装置及び通信制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では上記問題を解決するために、図１に示すように、非同期パケットの送受信を制御する通信制御装置１００において、受信した非同期パケットを格納する第１の記憶部（非同期パケット受信専用ＦＩＦＯ）１０１と、非同期リトライパケットのみを格納する少なくとも１つ以上の第２の記憶部（リトライパケット受信専用ＦＩＦＯ）１０２−１、１０２−２、…、１０２−ｎと、非同期パケット受信時に、受信した非同期パケットがリトライパケットか否かを判定するパケット判定制御回路１０３と、受信ビジー状態を監視し、リトライパケット受信時、受信ビジー状態であれば、第２の記憶部１０２−１、１０２−２、…、１０２−ｎを、受信したリトライパケットの格納先に指定する格納先判定制御回路１０４と、を有することを特徴とする通信制御装置１００が提供される。
【００１０】
上記の構成によればパケット判定制御回路１０３は、受信した非同期パケットがリトライパケットか否かを判定し、格納先判定制御回路１０４は、受信ビジー状態を監視し、リトライパケット受信時、受信ビジー状態であれば、第２の記憶部１０２−１、１０２−２、…、１０２−ｎを、受信したリトライパケットの格納先に指定する。
【発明の効果】
【００１１】
本発明によれば、リトライパケットのみを格納する記憶部を設け、受信した非同期パケットがリトライパケットか否かを判定し、リトライパケット受信時、受信ビジー状態であってもリトライパケットをその記憶部に格納できるので、１回目のリトライパケットを受信装置が必ず受信できるようになり、リトライパケットの送信回数を減らすことができる。これにより、通信効率が向上する。
【００１２】
また、リトライタイムアウトの発生により、受信装置がハング状態と誤認識されることを回避できる。
また、受信ビジー状態時に、リトライパケットのみを格納する記憶部にリトライパケットを格納し、通常の非同期パケットを格納する記憶部からデータを読み出す時間をかせぐことができるので、データを読み出す速度が遅い安価なＭＰＵ（Micro Processing Unit）などを使用することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図１は、本実施の形態の通信制御装置の概要を示す図である。
通信制御装置１００は、非同期パケット受信専用ＦＩＦＯ１０１と、リトライパケット受信専用ＦＩＦＯ１０２−１、１０２−２、…、１０２−ｎと、パケット判定制御回路１０３と、格納先判定制御回路１０４と、非同期パケット送信専用ＦＩＦＯ１０５を有する。さらに、データの送受信のための制御部である、トランザクション層制御回路１０６、リンク層制御回路１０７及び物理層制御回路１０８を有する。
【００１４】
非同期パケット受信専用ＦＩＦＯ１０１は、非同期パケット受信専用のデータバッファである。
リトライパケット受信専用ＦＩＦＯ１０２−１、１０２−２、…、１０２−ｎは、リトライパケット受信専用のデータバッファである。
【００１５】
非同期パケット受信専用ＦＩＦＯ１０１及びリトライパケット受信専用ＦＩＦＯ１０２−１、１０２−２、…、１０２−ｎの記憶容量は、転送レートによって１パケットで転送可能なデータの最大サイズが決まっているので、例えば、１００Ｍｂｐｓの場合には５１２ｂｙｔｅ、２００Ｍｂｐｓの場合は１ｋｂｙｔｅと設定すればよい。
【００１６】
パケット判定制御回路１０３は、非同期パケット受信時に、受信した非同期パケットがリトライパケットか否かを判定する。具体的には、受信した非同期パケットのヘッダ内のリトライコードの値により、リトライパケットか否かを判定する。
【００１７】
図２は、非同期パケットのフォーマットを示す図である。
ＩＥＥＥ１３９４では、取り扱う最小データの単位は１クワドレット（＝４バイト＝３２ビット）である。非同期パケットの第１クワドレットは、送信先を示す１６ビットのデスティネーションＩＤ領域“ｄｅｓｔｉｎａｔｉｏｎ＿ＩＤ”、トランザクションのラベルを示す６ビットのトランザクション・ラベル領域“ｔｌ”（デフォルトでは全て“０”）、２ビットのリトライコード領域“ｒｔ”、非同期パケットのフォーマットの種類を示す４ビットのトランザクションコード領域“ｔｃｏｄｅ”、優先度を示す４ビットのプライオリティ領域“ｐｒｉ”から構成されている。
【００１８】
２ビットのリトライコード領域“ｒｔ”において、“００”の場合は、その非同期パケットはリトライパケットではなく、“０１”の場合は、リトライパケットであることを示す。
【００１９】
第２クワドレット及び第３クワドレットは、送信側のＩＤを示す１６ビットのソースＩＤ領域“ｓｏｕｒｃｅ＿ＩＤ”、送信先装置のアドレス空間のアドレスを示す４８ビットのディスティネーションオフセット領域“ｄｅｓｔｉｎａｔｉｏｎ＿ｏｆｆｓｅｔ”から構成されている。
【００２０】
第４クワドレットは、非同期パケットのデータ長を示す１６ビットのデータ長領域“ｄａｔａ＿ｌｅｎｇｔｈ”及び、１６ビットのゼロ領域“ｚｅｒｏ”から構成されている。
第５クワドレットは、ヘッダについてのデータ伝送を巡回冗長検査（ＣＲＣ：Cyclic Redundancy Check）により検査するための３２ビットのヘッダＣＲＣ領域“ｈｅａｄｅｒ＿ＣＲＣ”から構成される。
【００２１】
以降のクワドレットは、データ領域“ｄａｔａ”であり、データ領域の後には、データについてのデータ伝送を巡回冗長検査により検査するための、３２ビットのデータＣＲＣ領域“ｄａｔａ＿ＣＲＣ”が付加される。
【００２２】
図１に戻って、格納先判定制御回路１０４は、受信ビジー状態を監視し、受信した非同期パケットの格納先を指定する。リトライパケット受信時、受信ビジー状態であれば、リトライパケット受信専用ＦＩＦＯ１０２−１、１０２−２、…、１０２−ｎのいずれかを、受信したリトライパケットの格納先に指定する。受信ビジー状態でなければ、非同期パケット受信専用ＦＩＦＯ１０１を、受信したリトライパケットの格納先に指定する。
【００２３】
非同期パケット送信専用ＦＩＦＯ１０５は、非同期パケットを送信する際のデータバッファである。記憶容量は、非同期パケット受信専用ＦＩＦＯ１０１及びリトライパケット受信専用ＦＩＦＯ１０２−１、１０２−２、…、１０２−ｎと同様に設定する。
【００２４】
トランザクション層制御回路１０６は、各種インストラクションにより、ＩＥＥＥ１３９４バスのプロトコルを制御する。具体的には、非同期転送などを制御する機能を有する。
【００２５】
リンク層制御回路１０７は、ＩＥＥＥ１３９４の標準パケットの生成及び転送を管理する。
物理層制御回路１０８は、ＩＥＥＥ１３９４の物理層レイヤの制御回路部である。具体的には、図示しないＩＥＥＥ１３９４シリアルバスを直接駆動する。
【００２６】
以下、本実施の形態の通信制御装置１００の非同期パケット受信時の動作について図３のフローチャートを用いて説明する。
通信制御装置１００は、物理層制御回路１０８、リンク層制御回路１０７、トランザクション層制御回路１０６の制御のもと非同期パケットを受信すると（ステップＳ１）、パケット判定制御回路１０３は、図２で示したような、非同期パケットのヘッダ内のリトライコード“ｒｔ”により、受信した非同期パケットがリトライパケットか否かを判定する（ステップＳ２）。ここで、リトライコードが“００”の場合、リトライパケットではないと判定される。そして次に、格納先判定制御回路１０４は、受信ビジー状態か否かを判定する（ステップＳ３）。非同期パケット受信専用ＦＩＦＯ１０１が、データ書き込み中、または図示しないＭＰＵによるデータ読み出し中などの使用状態にある場合には受信ビジー状態と判定され、トランザクション層制御回路１０６によって、ａｃｋ＿ｂｕｓｙ＿Ｘパケットが生成され、送信元に対して送信し、受信ビジー状態である旨を通知する（ステップＳ４）。そうでない場合には、受信した非同期パケットを非同期パケット受信専用ＦＩＦＯ１０１に格納する（ステップＳ５）。
【００２７】
一方、ステップＳ２で、リトライコードが“０１”の場合、リトライパケットであると判定される。そして次に、格納先判定制御回路１０４は、受信ビジー状態か否かを判定する（ステップＳ６）。非同期パケット受信専用ＦＩＦＯ１０１にデータが書き込み中か、または図示しないＭＰＵなどの制御部によって、データが読み出し中などの使用状態の場合には受信ビジー状態と判定されるが、本実施の形態の通信制御装置１００によれば、格納先判定制御回路１０４は、リトライパケット受信専用ＦＩＦＯ１０２−１、１０２−２、…、１０２−ｎのいずれかを、受信したリトライパケットの格納先に指定して格納する（ステップＳ７）。これにより、受信側からはａｃｋ＿ｂｕｓｙ＿Ｘパケットが送信元に送信されない。そして、ａｃｋ＿ｃｏｍｐｌｅｔｅパケットを生成して送信元に返信し、受信が完了したことを通知する（ステップＳ８）。一方、ステップＳ６の処理で、受信ビジー状態ではないと判定された場合には、ステップＳ５の処理によってリトライパケットを非同期パケット受信専用ＦＩＦＯ１０１に格納する。
【００２８】
図４は、本実施の形態の通信制御装置を適用した場合の通信シーケンスの一例を示す図である。
同図のように本実施の形態の通信制御装置１００を内蔵した受信装置は、送信装置からの非同期パケットを受信した際、非同期パケット受信専用ＦＩＦＯ１０１が使用中の場合には受信ビジー状態となり、従来通りａｃｋ＿ｂｕｓｙ＿Ｘパケットを送信装置に通知する。送信装置は、ａｃｋ＿ｂｕｓｙ＿Ｘパケットを受信すると、リトライパケットを受信装置に送信する。受信装置はリトライパケットを受信すると、非同期パケット受信専用ＦＩＦＯ１０１が使用中である受信ビジー状態の場合でも、格納先判定制御回路１０４は、リトライパケットをリトライパケット受信専用ＦＩＦＯ１０２−１、１０２−２、…、１０２−ｎのいずれかに格納できる。そしてａｃｋ＿ｂｕｓｙ＿Ｘパケットを送信装置に送信することなく、ａｃｋ＿ｃｏｍｐｌｅｔｅパケットを返すことができる。
【００２９】
ところで送信装置が複数あるような場合、受信装置は、リトライパケットを複数続けて受信する場合がある。そのために格納先判定制御回路１０４は、受信ビジー状態のとき、例えば、リトライパケット受信専用ＦＩＦＯ１０２−１が、ある送信装置からのリトライパケットにより使用されている場合には、使用されていない他のリトライパケット受信専用ＦＩＦＯ１０２−２に、他の送信装置からのリトライパケットを格納する。
【００３０】
以上のような通信制御装置１００によれば、１回目のリトライパケットを受信装置が必ず受信できるようになり、リトライパケットの送信回数を減らすことができる。これにより、通信効率が向上する。
【００３１】
また、従来の図６のようにａｃｋ＿ｂｕｓｙ＿Ｘパケットの返送が繰り返されることによるリトライタイムアウトの発生を防止することができ、送信装置によって、受信装置がハングしたと誤認識されることを防止することができる。また、これにより、アプリケーションの処理効率の低下を防止することができる。
【００３２】
また、受信ビジー状態時に、リトライパケット受信専用ＦＩＦＯ１０２−１、１０２−２、…、１０２−ｎにリトライパケットを格納し、非同期パケット受信専用ＦＩＦＯ１０１からデータを読み出す時間をかせぐことができるので、データを読み出す速度が遅い安価なＭＰＵを使用することができる。
【図面の簡単な説明】
【００３３】
【図１】本実施の形態の通信制御装置の概要を示す図である。
【図２】非同期パケットのフォーマットを示す図である。
【図３】通信制御装置の動作を説明するフローチャートである。
【図４】本実施の形態の通信制御装置を適用した場合の通信シーケンスの一例を示す図である。
【図５】従来の通信制御装置における通常状態の非同期転送を説明する通信シーケンス図である。
【図６】従来の通信制御装置における受信ビジー状態の非同期転送を説明する通信シーケンス図である。
【符号の説明】
【００３４】
１００  通信制御装置
１０１  非同期パケット受信専用ＦＩＦＯ
１０２−１、１０２−２、…、１０２−ｎ  リトライパケット受信専用ＦＩＦＯ
１０３  パケット判定制御回路
１０４  格納先判定制御回路
１０５  非同期パケット送信専用ＦＩＦＯ
１０６  トランザクション層制御回路
１０７  リンク層制御回路
１０８  物理層制御回路
【図１】
2006109312.tif 000003
【図２】
2006109312.tif 000004
【図３】
2006109312.tif 000005
【図４】
2006109312.tif 000006
【図５】
2006109312.tif 000007
【図６】
2006109312.tif 000008