(57)【特許請求の範囲】
【請求項１】
実行結果の大きさを含むコマンドの実行結果を表すリプライをバスを介して第１の装置から受け取る受信部と、
前記受信部で受信されたリプライを一時記憶するとともに、この記憶したリプライを前記コマンドの送信元である第２の装置に出力する第１バッファと、
実行結果の大きさを含むコマンドを前記第２の装置から受け取り一時記憶する第２バッファと、
前記第２バッファに記憶されたコマンドを前記バスを介して前記第１の装置に出力する送信部と、
前記第２バッファに前記第２の装置からのコマンドが一時記憶された場合に、このコマンドに含まれる実行結果の大きさに基づいて、このコマンドに対応する第１の装置からのリプライを一時記憶するのに必要な領域を前記第１バッファに予め確保する記憶領域制御部と
を備えたことを特徴とする通信制御装置。
【請求項２】
前記リプライは、その大きさを表すリプライ数量を含んでおり、前記記憶領域制御部は、前記受信部で受信され前記第１バッファに一時格納されたリプライが前記第２の装置へ出力されたときに、このリプライに含まれるリプライ数量に基づいて、前記第１バッファに予め確保しておいた領域を開放することを特徴とする請求項１に記載の通信制御装置。
【請求項３】
前記記憶領域制御部は、カウンタを有し、領域を確保する場合にはカウンタの値を増加させる一方、領域を開放する場合にはカウンタの値を減少させて、前記第１バッファの記憶領域確保及び解放を行うことを特徴とする請求項１又は２に記載の通信制御装置。
【請求項４】
前記記憶領域制御部が前記第１バッファに確保しようとする領域の大きさと、前記第１バッファに書き込み可能な領域の大きさとを比較することにより、前記第１バッファの空領域不足を検出する空領域不足検出部をさらに備えたことを特徴とする請求項２に記載の通信制御装置。
【請求項５】
前記空領域不足検出部は、前記第１バッファの空領域不足を検出したことを前記送信部に通知し、前記送信部は、空領域不足の通知を受けた場合に、前記第２バッファに一時記
憶されたコマンドについて、このコマンドに対応するリプライの格納領域が前記記憶領域制御部によって前記第１バッファに確保されるまで、当該コマンドを前記第１の装置へ送信することを停止する
ことを特徴とする請求項４に記載の通信制御装置。
【請求項６】
リプライを生成するリプライ生成部をさらに備え、
前記空領域不足検出部は、前記第１バッファの空領域不足を検出したことを前記受信部に通知し、
前記受信部は、空領域不足の通知を受けている間に前記第１の装置から前記第２の装置宛のコマンドを受信した場合に、リプライ生成に必要なデータを前記リプライ生成部に出力し、
前記リプライ生成部は、リプライ生成に必要なデータが入力された場合に、データが受け取れないという内容のリプライを生成し、
前記送信部は、前記リプライ生成部で生成されたリプライを前記バスを介して前記第１の装置に送信する
ことを特徴とする請求項４に記載の通信制御装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、通信制御装置に関し、特に、コマンドが再送可能である一方、リプライが再送不可能な装置又はシステムに関する。
【０００２】
【従来の技術】
複数のモジュールがバスに接続され、バスを介してモジュール間の通信を行う従来の通信システムにおいて、あるモジュールがバスを介して他のモジュールにコマンドを転送すると、コマンドを受けたモジュールは、実行結果であるリプライを、コマンドを送ってきたモジュールに通知する。ここで、コマンドは再転送可能であるのに対し、リプライは再転送できないようになっている。
【０００３】
図２は、そのような従来の通信システムの構成ブロック図を示している。この通信システムは、内部処理を行う第２の装置４０、この第２の装置４０に接続し通信制御を行う通信制御装置１０、及びこの通信制御装置１０にバス５０を介して接続する複数のモジュール（第１の通信装置）３０から構成されている。なお、通信制御装置１０は、モジュール３０から第２の装置４０に転送されたデータを格納する第１バッファ１１を有するとともに、第２の装置４０からモジュール３０に転送されたデータを格納する第２バッファ１２を有している。
【０００４】
そして、前記従来の通信システムにおいて、第２の装置４０が通信制御装置１０及びバス５０を介して他のモジュール３０にコマンドを送った場合、そのリプライが通信制御装置１０に送られて内部の第１バッファ１１に一時的に格納される。
【０００５】
ここで、図３は、第２の装置４０よりモジュール３０にコマンドを転送した場合の通常のデータの流れを示している。即ち、第２の装置４０から出力されたコマンドは、通信制御装置１０の第２バッファ１２に格納された後、バス５０を介してモジュール３０に転送される。
【０００６】
転送先のモジュール３０では、コマンドを内部処理してリプライを生成するが、このリプライは、バス５０を介して通信制御装置１０の第１バッファ１１に格納された後、第２の装置４０に転送される。
【０００７】
【発明が解決しようとする課題】
前記従来の通信システムにおいて、通信制御装置１０の第１バッファ１１が既に他のデータで埋まっていて空領域が無い場合、リプライは第１バッファ１１に格納されず、しかもリプライは再転送できないので、このリプライは途中で失われてしまう、即ち第２の装置４０はリプライを受けることができないという問題が生じている。
【０００８】
図４は、そのような問題が生じる場合のデータの流れ図を示している。即ち、第２の装置４０から出力されたコマンドは、通信制御装置１０の第２バッファ１２に格納された後、バス５０を介してモジュール３０に転送される。コマンドを受け取ったモジュール３０は、内部処理を行ってリプライを生成するが、このリプライは、バス５０を経由して通信制御装置１０の第１バッファ１１に到達する。しかし、第１バッファ１１に空が無いためリプライが消失してしまう。
【０００９】
本発明は、このような事情に鑑みてなされたもので、リプライが送り返されてきた場合に、バッファにリプライを格納する領域が不足することに原因するリプライ喪失を防止することが可能な通信制御装置を提供することを課題とする。
【００１０】
【課題を解決するための手段】
本発明の通信制御装置は、前述した課題を解決するため、受信部１３、第１バッファ１１、第２バッファ１２、送信部１４及び記憶領域制御部１５を必須構成要素として備えて構成されている（請求項１に対応）。以下、この構成を本発明の通信制御装置の第１の構成と呼ぶ。
【００１１】
（受信部１３）
受信部１３は、実行結果の大きさを含むコマンド及びこのコマンドの実行結果を表すリプライをバス５０を介して第１の装置３０から入力する。
【００１２】
（第１バッファ１１）
第１バッファ１１は、前記受信部１３で受信されたコマンド及びリプライを一時記憶するとともに、この記憶したコマンド及びリプライが第２の装置４０に出力される。
【００１３】
（第２バッファ１２）
第２バッファ１２は、実行結果の大きさを含むコマンド及びこのコマンドの実行結果を表すリプライを前記第２の装置４０から入力し一時記憶する。
【００１４】
（送信部１４）
送信部１４は、前記第２バッファ１２に記憶されたコマンド及びリプライを前記バス５０を介して前記第１の装置３０に出力する。
【００１５】
（記憶領域制御部１５）
記憶領域制御部１５は、前記コマンドに格納された実行結果の大きさに基づいて、リプライを一時記憶するのに必要な領域を前記第１バッファ１１に予め確保しておく。
【００１６】
次に、本発明の第１の構成を下記の（イ）及び（ロ）ように構成することもできる。
（イ）前記記憶領域制御部１５は、前記第２バッファ１２に接続し、前記第２バッファ１２に記憶されたコマンド及びリプライのうちコマンドのみを識別し、識別されたコマンドに格納されたリプライ数量に基づいて、リプライを一時記憶するのに必要な領域を前記第１バッファ１１に予め確保しておくことである（請求項２に対応）。以下、この構成を本発明の通信制御装置の第２の構成と呼ぶ。
【００１７】
（ロ）前記リプライは、その大きさを表すリプライ数量を含んでおり、前記記憶領域制御部１５は、前記受信部１３に接続し、前記受信部１３で受信されたコマンド及びリプライのうちリプライのみを識別し、識別されたリプライに格納されたリプライ数量に基づいて、前記第１バッファ１１に予め確保しておいた領域を開放することである（請求項３に対応）。以下、この構成を本発明の通信制御装置の第３の構成と呼ぶ。
【００１８】
次に、本発明の第２又は第３の構成を以下のように構成することもできる。
即ち、前記記憶領域制御部１５は、カウンタを有し、領域を確保する場合にはカウンタの値を増加させる一方、領域を開放する場合にはカウンタの値を減少させて、前記第１バッファ１１の記憶領域確保及び解放を行うことである（請求項４に対応）。以下、この構成を本発明の通信制御装置の第４の構成と呼ぶ。
【００１９】
次に、本発明の第３の構成を以下のように構成することもできる。
即ち、前記記憶領域制御部１５が前記第１バッファ１１に確保しようとする領域の大きさと、前記第１バッファ１１に書き込み可能な領域の大きさとを比較することにより、前記第１バッファ１１に空領域不足を検出する空領域不足検出部１６を設けたことである（請求項５に対応）。以下、この構成を本発明の通信制御装置の第５の構成と呼ぶ。
【００２０】
次に、本発明の第５の構成を下記の（イ）及び（ロ）のように構成することもできる。
（イ）前記空領域不足検出部１６は、空領域不足を検出したことを前記送信部１４に通知し、前記送信部１４は、空領域不足の通知を受けた場合に、新たなコマンドの送信を抑止することである（請求項６に対応）。以下、この構成を本発明の通信制御装置の第６の構成と呼ぶ。
【００２１】
（ロ）リプライを生成するリプライ生成部１８を設け、前記空領域不足検出部１６は、空領域不足を検出したことを前記受信部１３に通知し、前記受信部１３は、空領域不足の通知を受けている間にコマンドを受信した場合に、リプライ生成に必要なデータを前記リプライ生成部１８に出力し、前記リプライ生成部１８は、リプライ生成に必要なデータを入力した場合に、データが受け取れないという内容のリプライを生成し、前記送信部１４は、前記リプライ生成部１８で生成されたリプライを前記バス５０を介して前記第１の装置３０に送信することである（請求項７に対応）。以下、この構成を本発明の通信制御装置の第７の構成と呼ぶ。
【００２２】
【作用】
第１から第４の構成の通信制御装置によれば、第２の装置４０から出力されたコマンド及びリプライは、第２バッファ１２に一時格納される。この後、コマンドは、送信部１４及びバス５０を経由して第１の装置３０に転送される。このとき、記憶領域制御部１５は、コマンドに含まれた実行結果の大きさに基づいて、リプライを一時記憶するのに必要な領域を第１バッファに予め確保しておく。第１の装置３０は、転送されたコマンドに対してリプライを返すが、このリプライは、記憶領域制御部１５により予め確保されていた領域に一時記憶された後、第２の装置４０に出力される。
【００２３】
また、第３及び第４の構成の通信制御装置によれば、記憶領域制御部１５により、第１バッファ１１に予め確保された領域が解放されるようになる。
そして、第５の構成の通信制御装置によれば、空領域不足検出部１６により、第１バッファ１１の空領域不足が検出されるようになる。
【００２４】
さらに、第６の構成の通信制御装置によれば、空領域不足検出部１６が空領域不足を検出した場合に、送信部１４により、新たなコマンドの送信が抑止される。このことにより、第１バッファ１１に格納することができないと予想されるリプライが受信されないようになる。
【００２５】
次に、第７の構成の通信制御装置によれば、受信部１３が、空領域不足検出部１６から空領域不足の通知を受けている間にコマンドを受信した場合に、リプライ生成に必要なデータがリプライ生成部１８に出力される。そして、リプライ生成部１８により、データが受け取れないという内容のリプライを生成される。そして、このリプライは、送信部１４により、バス５０を介して第１の装置３０に送信される。
【００２６】
【実施例】
以下、本発明の実施例を図面を参照して説明する。
《実施例の構成》
図５は、実施例の構成ブロック図である。同図に示すように、本実施例は、内部処理を行う第２の装置４０、この第２の装置４０に接続し通信制御を行う通信制御装置１０、及びこの通信制御装置１０にバス５０を介して接続する２台の第１の通信装置３０から構成されている。
【００２７】
第１の通信装置３０は、図５では２台示されているが、１台でも良いし、３台以上あってもよい。また、複数設けられる場合に、同種のものであることもあるし、そうでないこともある。
【００２８】
通信制御装置１０は、第１バッファ１１、第２バッファ１２、受信部１３、送信部１４、記憶領域制御部１５、空領域不足検出部１６、双方向バッファ１７、リプライ生成部１８、書込位置保持カウンタ１９ａ及び読出位置保持カウンタ１９ｂを備えて構成されている。以下、通信制御装置１０の各構成要素を説明する。
【００２９】
（第１バッファ１１）
第１バッファ１１は、受信部で受信されたコマンド及びリプライを一時記憶するとともに、この記憶したコマンド及びリプライが第２の装置に出力される。
【００３０】
（第２バッファ１２）
第２バッファ１２は、実行結果の大きさ（リプライ数量）を含むコマンド及びリプライを第２の装置から入力し一時記憶する。
【００３１】
（受信部１３）
受信部１３は、リプライ数量を含むコマンド及びリプライを双方向バッファ１７及びバス５０を介して第１の装置３０から入力する。
【００３２】
（送信部１４）
送信部１４は、第２バッファ１２に記憶されたコマンド及びリプライを、双方向バッファ１７及びバス５０を介して第１の装置３０に出力する。
【００３３】
（記憶領域制御部１５）
記憶領域制御部１５は、第２バッファ１２に接続し、第２バッファ１２に記憶されたコマンド及びリプライのうちコマンドのみを識別し、識別されたコマンドに格納されたリプライ数量に基づいて、リプライを一時記憶するのに必要な領域を第１バッファ１１に予め確保する。
【００３４】
また、受信部１３に接続し、受信部１３で受信されたコマンド及びリプライのうちリプライのみを識別し、識別されたリプライに格納されたリプライ数量に基づいて、第１バッファ１１に予め確保しておいた領域を開放する。
【００３５】
（空領域不足検出部１６）
空領域不足検出部１６は、記憶領域制御部１５が第１バッファ１１に確保しようとする領域の大きさと、第１バッファ１１に書き込み可能な領域の大きさとを比較することにより、第１バッファ１１の空領域不足を検出する。
【００３６】
そして、空領域不足を検出した場合には、そのことを受信部１３及び送信部１４に通知する。
（双方向バッファ１７）
双方向バッファ１７は、受信部１３、送信部１４及びバス５０に接続する。そして、送信部１４から入力した通信データ、即ち第２の装置４０から出力されたコマンド及びリプライをバス５０に出力する。また、バス５０から入力した通信データ、即ち第１の装置３０から出力されたコマンド及びリプライを受信部１３に出力する。
【００３７】
（リプライ生成部１８）
リプライ生成部１８は、リプライ生成に必要なデータを受信部１３から入力した場合に、データが受け取れないという内容のリプライを生成し、送信部１４に通知する。
【００３８】
（書込位置保持カウンタ１９ａ）
書込位置保持カウンタ１９ａは、第１バッファ１１に対する書込位置を保持する。
【００３９】
（読出位置保持カウンタ１９ｂ）
読出位置保持カウンタ１９ｂは、第１バッファ１１に対する読出位置を保持する。
【００４０】
《実施例の動作例》
次に、本実施例の動作例を説明する。
（第１動作例）
図８は、第１バッファ１１にリプライを記憶する領域を確保した場合のデータの流れを示している。即ち、第２の装置４０から出力されたコマンドは、通信制御装置１０の第２バッファ１２に格納された後、バス５０に出力される。この時、リプライを一時記憶する領域が第１バッファ１１に確保される。
【００４１】
そして、バス５０に出力されたコマンドは第１の装置３０に転送される。転送先の第１の装置３０では、コマンドを内部処理してリプライを生成する。このリプライは、バス５０を介して通信制御装置１０の受信部１３に到達する。
【００４２】
そして、予め領域が確保された第１バッファ１１に一時記憶された後、第２の装置４０に転送される。
（第２動作例）
図９は、第１バッファ１１にリプライを記憶する領域が不足して、コマンド転送を抑止する場合のデータの流れを示している。即ち、第２の装置４０からコマンドが出力された時点で、第１バッファ１１にリプライを記憶する領域が不足しているものとする。この場合、コマンドは通信制御装置１０の第２バッファ１２に格納されるが、第１バッファ１１に記憶領域が不足している間は、バス５０に出力されない。
【００４３】
そして、第１バッファ１１に空ができてリプライを記憶する領域が確保されると、第２バッファ１２に格納されていたコマンドが、バス５０に出力される。
そして、バス５０に出力されたコマンドは第１の装置３０に転送される。転送先のモジュール３０では、コマンドを内部処理してリプライを生成するが、このリプライは、バス５０を介して通信制御装置１０の受信部１３に到達する。
【００４４】
そして、予め領域が確保された第１バッファ１１に一時記憶された後、第２の装置４０に転送される。
（第３動作例）
図１０は、第１の装置３０からコマンドが送られてきた場合のデータの流れを示している。即ち、第１の装置３０から出力されたコマンドは、バス５０を経由して通信制御装置１０の第１バッファ１１に格納される。ただし、ここでは、第１バッファ１１にコマンドを格納するだけの空があるとする。
【００４５】
そして、第１バッファ１１に格納されたコマンドは第２の装置４０に転送される。転送先の第２の装置４０では、コマンドを内部処理してリプライを生成する。このリプライは、第２バッファ１２に格納された後、バス５０を経由して第１の装置３０に転送される。
【００４６】
（第４動作例）
図１１は、第１バッファ１１にコマンドを記憶する領域が不足して、リプライを生成する場合のデータの流れを示している。即ち、第１の装置３０からコマンドが出力された時点で、第１バッファ１１にコマンドを記憶する領域が不足しているものとする。この場合、コマンドは通信制御装置１０の受信部１３に受信されるが、第１バッファ１１にそのコマンドを記憶するだけの空領域が無いことを空領域不足検出部１６が検出し、リプライ生成部１８に通知する。
【００４７】
リプライ生成部１８は、内部処理を行って、データが受け取れないという内容のリプライを生成する。このリプライは、バス５０を経由して第１の装置３０に転送される。
【００４８】
そして、第１の装置は、適当な間隔をおいて、コマンドの再転送を試みる。
【００４９】
【発明の効果】
第１から第７の構成の通信制御装置によれば、リプライを記憶するのに必要な領域が記憶領域制御部により第１バッファに予め確保される。そのため、リプライが通信制御装置に送り返されてきた場合に、第１バッファにリプライを格納する領域が不足することがなくなり、リプライ喪失を防止することが可能となる。
【００５０】
特に、第６の構成の通信制御装置によれば、新たなコマンドの送信が抑止されるため、リプライ喪失防止を能動的に行うことが可能となる。
また、第７の構成の通信制御装置によれば、通信制御装置がビジーである状態を第１の装置が速やかに認識することが可能となる。
【図面の簡単な説明】
【図１】本発明の通信制御装置の原理ブロック図である。
【図２】従来の通信システムの構成ブロック図である。
【図３】従来の通信システムにおいて、第２の装置より第１の装置にコマンドを転送した場合の通常のデータの流れ図である。
【図４】従来の通信システムにおいて、通信制御装置の第１バッファに空が無い場合のデータの流れ図である。
【図５】実施例の構成ブロック図である。
【図６】実施例のコマンドのフォーマットを示す図である。
【図７】実施例のリプライのフォーマットを示す図である。
【図８】実施例において、第１バッファにリプライを記憶する領域を確保した場合のデータの流れ図である。
【図９】実施例において、第１バッファにリプライを記憶する領域が不足して、コマンド転送を抑止する場合のデータの流れ図である。
【図１０】実施例において、第１の装置からコマンドが送られてきた場合のデータの流れ図である。
【図１１】実施例において、第１バッファにコマンドを記憶する領域が不足して、リプライを生成する場合のデータの流れ図である。
【符号の説明】
１１・・・・第１バッファ
１２・・・・第２バッファ
１３・・・・受信部
１４・・・・送信部
１５・・・・記憶領域制御部
１６・・・・空領域不足検出部
１７・・・・双方向バッファ
１８・・・・リプライ生成部
１９ａ・・・書込位置保持カウンタ
１９ｂ・・・読出位置保持カウンタ
３０・・・・第１の装置
４０・・・・第２の装置
５０・・・・バス
【図１】
0003554602.tif 000002
【図２】
0003554602.tif 000003
【図３】
0003554602.tif 000004
【図４】
0003554602.tif 000005
【図５】
0003554602.tif 000006
【図６】
0003554602.tif 000007
【図７】
0003554602.tif 000008
【図８】
0003554602.tif 000009
【図９】
0003554602.tif 000010
【図１０】
0003554602.tif 000011
【図１１】
0003554602.tif 000012