(57)【要約】  ポートＡリクエストキュー（２０５）は、リクエストタイプＱ０〜Ｑｎ毎のポートＡＱ０（＿２０５ａ００）〜ポートＡＱｎ（＿２０５ａ０ｎ）にそれぞれリクエスタ資源ビジーフラグ制御部（２０５ａ３０）〜リクエスタ資源ビジーフラグ制御部（２０５ａ３ｎ）が接続された構成である。ポートＸアービタ部（２０１ｂ）のポートＡ資源チェック部（２０１ｂ０）は、ポートＸ資源管理部（２０１ａ）の資源情報部（２０１ａ０）を参照した結果、ポートＡＱ０（＿２０５ａ００）からのデータリクエストが資源ビジーのためにポートＸポート間アービタ部（２０１ｂ２）へ出力可能でないと判断した場合、ポートＡＱ０（＿２０５ａ００）のリクエスタ資源ビジーフラグ制御部（２０５ａ４）に対してビジーフラグをオンにするよう指示する。ポートＡＱ０（＿２０５ａ００）は、ビジーフラグがオンである限りデータリクエストを出力することを抑止する。
2010113291.tif 000002
【特許請求の範囲】
【請求項１】
制御回路及びデータ入出力回路が接続され、前記制御回路及び／又は前記データ入出力回路の間のデータ転送を行うデータ転送回路であって、
前記データ転送を要求するデータリクエストに対応するデータを受信する受信側の前記制御回路及び／又は前記データ入出力回路の受信資源の使用状況を監視する受信資源使用状況監視部と、
前記データリクエスト及び対応するデータの送信側の前記制御回路及び／又は前記データ入出力回路から入力された前記データリクエストを格納するデータリクエスト格納部と、
前記データリクエスト格納部に格納される前記データリクエストを出力するか否かを制御する出力制御部と、
複数の前記データリクエスト格納部から出力された複数のデータリクエストを受信し、前記複数のデータリクエストから一つのデータリクエストを調停によって選択する調停部と、
前記調停部によって選択されたデータリクエストのデータ転送を行うデータ転送部と
を備え、
前記出力制御部は、前記受信資源使用状況監視部によって監視される前記受信資源の使用状況がビジー状態である場合、前記データリクエストの出力を抑止する
ことを特徴とするデータ転送回路。
【請求項２】
前記出力制御部は、前記受信資源使用状況監視部によって監視される前記受信資源の使用状況のビジー状態が解消された場合、前記データリクエストの出力の抑止を解除する
ことを特徴とする請求項１記載のデータ転送回路。
【請求項３】
前記調停部は、
送信側の前記制御回路又は前記データ入出力回路毎に前記複数のデータリクエストから一つのデータリクエストを調停によって選択する第一の調停部と、
受信側の前記制御回路又は前記データ入出力回路毎に前記複数のデータリクエストから一つのデータリクエストを調停によって選択する第二の調停部と
を含むことを特徴とする請求項１又は２記載のデータ転送回路。
【請求項４】
送信側の前記制御回路及び前記データ入出力回路毎、及び、前記データリクエストのタイプ毎に前記受信資源の使用状況のビジー状態の解消待ち情報を記憶するビジー状態解消待ち情報記憶部と、
送信側の何れかの前記制御回路及び前記データ入出力回路の前記ビジー状態解消待ち情報が前記ビジー状態解消待ち情報記憶部に記憶されている場合、全ての送信側の前記制御回路及び前記データ入出力回路の該当するデータリクエストと同一タイプのデータリクエストに対して前記受信資源の使用状況をビジー状態とするビジー状態解消待ち制御部と
を備えたことを特徴とする請求項３記載のデータ転送回路。
【請求項５】
前記ビジー状態解消待ち制御部は、前記第二の調停部による前記データリクエストの調停の際に前記受信資源使用状況監視部によって前記受信資源のビジー状態が検出された場合に前記ビジー状態解消待ち情報をセットし、前記第二の調停部によって前記データリクエストが選択された場合に前記ビジー状態解消待ち情報をリセットする
ことを特徴とする請求項４記載のデータ転送回路。
【請求項６】
送信側の前記制御回路及び前記データ入出力回路毎、及び、前記データリクエストのタイプ毎に前記受信資源使用状況監視部が監視する前記受信資源の使用状況がビジー状態であるため、前記第二の調停部へのデータリクエストの投入が抑止される際に計時を開始し、前記第二の調停部によって選択された際に計時を終了する計時部と、
前記計時部によって計時される時間が所定閾値を上回ったとき、前記ビジー状態解消待ち制御部の機能を有効化する機能有効化部と
を備えたことを特徴とする請求項５記載のデータ転送回路。
【請求項７】
制御回路及びデータ入出力回路が接続され、前記制御回路及び／又は前記データ入出力回路の間のデータ転送を行うデータ転送回路が行うデータ転送方法であって、
前記データ転送を要求するデータリクエストに対応するデータを受信する受信側の前記制御回路及び／又は前記データ入出力回路の受信資源の使用状況を監視する受信資源使用状況監視ステップと、
前記データリクエスト及び対応するデータの送信側の前記制御回路及び／又は前記データ入出力回路から入力された前記データリクエストをデータリクエスト格納部に格納するデータリクエスト格納ステップと、
前記データリクエスト格納部に格納される前記データリクエストを出力するか否かを制御する出力制御ステップと、
複数の前記データリクエスト格納部から出力された複数のデータリクエストを受信し、前記複数のデータリクエストから一つのデータリクエストを調停によって選択する調停ステップと、
前記調停ステップによって選択されたデータリクエストのデータ転送を行うデータ転送ステップと
を含み、
前記出力制御ステップは、前記受信資源使用状況監視ステップによって監視される前記受信資源の使用状況がビジー状態である場合、前記データリクエストの出力を抑止する
ことを特徴とするデータ転送方法。
【請求項８】
前記出力制御ステップは、前記受信資源使用状況監視ステップによって監視される前記受信資源の使用状況のビジー状態が解消された場合、前記データリクエストの出力の抑止を解除する
ことを特徴とする請求項７記載のデータ転送方法。
【請求項９】
前記調停ステップは、
送信側の前記制御回路又は前記データ入出力回路毎に前記複数のデータリクエストから一つのデータリクエストを調停によって選択する第一の調停ステップと、
受信側の前記制御回路又は前記データ入出力回路毎に前記複数のデータリクエストから一つのデータリクエストを調停によって選択する第二の調停ステップと
を含むことを特徴とする請求項７又は８記載のデータ転送方法。
【請求項１０】
送信側の前記制御回路及び前記データ入出力回路毎、及び、前記データリクエストのタイプ毎に前記受信資源の使用状況のビジー状態の解消待ち情報をビジー状態解消待ち情報記憶部に記憶するビジー状態解消待ち情報記憶ステップと、
送信側の何れかの前記制御回路及び前記データ入出力回路の前記ビジー状態解消待ち情報が前記ビジー状態解消待ち情報記憶部に記憶されている場合、全ての送信側の前記制御回路及び前記データ入出力回路の該当するデータリクエストと同一タイプのデータリクエストに対して前記受信資源の使用状況をビジー状態とするビジー状態解消待ち制御ステップと
を含むことを特徴とする請求項９記載のデータ転送方法。
【請求項１１】
前記ビジー状態解消待ち制御ステップは、前記第二の調停ステップによる前記データリクエストの調停の際に前記受信資源使用状況監視ステップによって前記受信資源のビジー状態が検出された場合に前記ビジー状態解消待ち情報をセットし、前記第二の調停ステップによって前記データリクエストが選択された場合に前記ビジー状態解消待ち情報をリセットする
ことを特徴とする請求項１０記載のデータ転送方法。
【請求項１２】
送信側の前記制御回路及び前記データ入出力回路毎、及び、前記データリクエストのタイプ毎に前記受信資源使用状況監視ステップによって監視される前記受信資源の使用状況がビジー状態であるため、前記第二の調停ステップへのデータリクエストの投入が抑止される際に計時を開始し、前記第二の調停ステップによって選択された際に計時を終了する計時ステップと、
前記計時ステップによって計時される時間が所定閾値を上回ったとき、前記ビジー状態解消待ち制御ステップの機能を有効化する機能有効化ステップと
を含むことを特徴とする請求項１１記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
情報処理装置としてのコンピュータ装置において、システムボード及びＩ／Ｏ（Input／Output、入出力）ボードが接続され、システムボード及びＩ／Ｏボードの各ボード間のデータ転送を調停するクロスバボード等のデータ転送回路及びデータ転送方法に関する。
【背景技術】
【０００２】
従来から、演算処理装置としてのＣＰＵ（Central  Processing  Unit）等の制御装置、Ｉ／Ｏポート、メモリ、システムコントローラを含むシステムボード、及び、外部記憶装置、Ｉ／Ｏポートを含むＩ／Ｏボードをクロスバボードで接続するような構成のコンピュータ装置が知られている。【０００３】
システムボード及びＩ／Ｏボードは、クロスバボードを介して他のシステムボード又はＩ／Ｏボードへデータを送信する。クロスバボードを介して複数のシステムボード及びＩ／Ｏボードが接続される構成の場合、各システムボード及びＩ／Ｏボードが送信するデータが経由するクロスバボードでは、優先制御によってデータ転送のリクエストのアービトレーション（調停）が行なわれる。【０００４】
クロスバボード内でデータの転送のアービトレーションを効率的に行い、データ転送効率を向上させるため、様々な従来技術が提供されてきた。例えば、従来技術として、コンピュータ装置のメモリアクセスに関し、メモリバンクビジー状態のメモリバンクに対するメモリバス獲得リクエストを対象から除外してアービトレーションを行うアービトレーション方法が提案されている。【０００５】
また、従来技術として、コンピュータ装置のメモリアクセスに関し、メモリバスの使用優先度の高い通信インターフェース装置は、優先度の低い通信インターフェース装置から送出されているメモリバス使用要求が待たされているとき、自装置からのバス使用要求の送出を抑止し、抑止回数が所定値以上になったとき抑止を解除するアービトレーション方法が提案されている。【０００６】
また、従来技術として、コンピュータ装置のメモリアクセスに関し、バス・エージェントがトランザクションを初めて実行し、中断されたのちに他のバス・エージェントがトランザクションを完了すると、トランザクションを完了できない状態が続くバス・エージェントにバス・アクセス権をトランザクションが終了するまで独占的に与えるアービトレーション方法が提案されている。【０００７】
また、従来技術として、クロスバボード内でデータの転送のアービトレーションを一段階ではなく二段階で行う事が提案されている。すなわち、データリクエスト元の各Ｉ／Ｏポート内でアービトレーションを一段階目のアービトレーションとして実行する、そして、送出権を獲得したデータリクエストをリクエスト先の各Ｉ／Ｏポートへ送信し、リクエスト先の各Ｉ／Ｏポートのそれぞれで複数のＩ／Ｏポートからのデータリクエストのアービトレーションを二段階目のアービトレーションとして実行する。このように、複数のリクエスト元からの複数のリクエスト先に対するデータリクエストを同時にアービトレーションすることによってデータ転送効率を向上させるアービトレーション方法が提案されている。【０００８】
【特許文献１】特開平１１−１６７５４６号公報
【特許文献２】特開平９−２９３０５０号公報
【特許文献３】特開平１１−１４３８２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ところで、近年、Ｉ／Ｏポート毎のリクエストタイプの種類が増加してきている。このため、上記従来技術では、リクエスト先のＩ／Ｏポートが資源ビジー状態であるデータリクエストを一段階目のアービトレーションに参加させない様に制御したとしても、リクエスト先のＩ／Ｏポートが資源ビジー状態でない多くのデータリクエストが一段階目のアービトレーションの参加対象となり、バスが占有される。このため、リクエスト先のＩ／Ｏポートの資源ビジー状態が解消したタイミングに、二段階目のアービトレーションに参加できず、データリクエストの権利を獲得できないデータリクエストが存在する状態が続くというライブロック状態が発生する可能性があった。【００１０】
また、同一データリクエスト元のリクエストタイプ同士、又は、データリクエスト先のＩ／Ｏポート同士で相互依存関係があるにも関わらず、二段階目のアービタに資源ビジーにより出力不可能なリクエストが留まった場合を考える。この場合、特定のデータリクエスト間でデータのリクエストの順序の追い越しを行わなければならないとき、追い越しを行わなければならないデータリクエストが一段階目のアービトレーションに参加できないため、アービトレーションにおいてデータリクエストの権利を獲得できない状態が続き、デッドロック状態が発生する可能性があった。【００１１】
また、相互依存関係に関わらず、二段階目のアービタに資源ビジーにより出力不可能なリクエストが留まった場合を考える。この場合、データリクエスト元のＩ／Ｏポートは、出力したデータリクエストがデータリクエスト先のＩ／Ｏポートの資源を獲得するまで他の種類のデータリクエストを出力しない。このため、他の種類のデータリクエストのリクエスト先のＩ／Ｏポートが資源ビジーでない状態であってもデータリクエストの権利を獲得できない状態が続き、データ転送のスループットを低下させていた。【００１２】
開示の技術は、上記問題点（課題）を解消するためになされたものであって、データリクエストのライブロック状態、デッドロック状態、及び、データ転送のスループットの低下を回避するデータ転送回路及びデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した問題を解決し、目的を達成するため、開示の技術は、制御回路及びデータ入出力回路が接続され、前記制御回路及び／又は前記データ入出力回路の間のデータ転送を行うデータ転送回路及び該当データ転送回路が行うデータ転送方法であって、データ転送を要求するデータリクエストに対応するデータを受信する受信側の前記制御回路及び／又は前記データ入出力回路の受信資源の使用状況を監視し、データリクエスト及び対応するデータの送信側の制御回路及び／又はデータ入出力回路から入力されたデータリクエストをデータリクエスト格納部に格納し、データリクエスト格納部に格納される前記データリクエストを出力するか否かを制御し、複数のデータリクエスト格納部から出力された複数のデータリクエストを受け付け、複数のデータリクエストから一つのデータリクエストを調停によって選択し、調停ステップによって選択されたデータリクエストのデータ転送を行い、受信資源の使用状況がビジー状態である場合、データリクエストの出力を抑止することを要件とする。
【発明の効果】
【００１４】
開示の技術によれば、クロスバを介したデータ転送に必要な資源が定常的に枯渇している場合、資源枯渇状態解消時に優先すべきＩ／Ｏポート以外のＩ／Ｏポートからのデータリクエストがアービトレーションに参加することを抑止して、ライブロック状態が発生することを回避することが出来るという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、従来技術及び開示の技術に係るコンピュータ装置の構成の概略を示すブロック図である。
【図２】図２は、従来技術のクロスバ１００の構成を示すブロック図である。
【図３】図３は、従来技術のアービトレーション処理手順を示すフローチャートである。
【図４】図４は、第一実施形態の一例に係るポートＡリクエストキューの構成を示すブロック図である。
【図５】図５は、第一実施形態の一例に係るクロスバの構成を示すブロック図である。
【図６】図６は、第一実施形態の一例に係るアービトレーション処理手順を示すフローチャートである。
【図７】図７は、第二実施形態の一例に係るポートＡアービタ部の構成を示すブロック図である。
【図８】図８は、第二実施形態の一例に係るクロスバの構成を示すブロック図である。
【図９】図９は、第二実施形態の一例に係るアービトレーション処理手順を示すフローチャートである。
【図１０】図１０は、第二実施形態の一例に係る資源解放待ちフラグ制御処理手順を示すフローチャートである。
【図１１】図１１は、第三実施形態の一例に係るポートＡリクエストキューの構成を示すブロック図である。
【図１２】図１２は、第三実施形態の一例に係るポートＸアービタ部の構成を示すブロック図である。
【図１３】図１３は、第三実施形態の一例に係るクロスバの構成を示すブロック図である。
【図１４】図１４は、第三実施形態の一例に係るアービトレーション処理手順を示すフローチャートである。
【図１５】図１５は、第三実施形態の一例に係る資源解放待ちフラグ制御処理手順を示すローチャートである。
【図１６】図１６は、第三実施形態の一例に係るライブロック防止回路制御処理手順を示すフローチャートである。
【符号の説明】
【００１６】
１０  コンピュータ装置
１００、２００、３００、４００  クロスバ
１０５ａ、２０５ａ、３０５ａ、４０５ａ  ポートＡリクエストキュー
１０５ａ００、２０５ａ００、３０５ａ００、４０５ａ００  ポートＡＱ０
２０５ａ３０、２０５ａ３１、２０５ａ３ｎ、３０５ａ３０、４０５ａ３０  リクエスタ資源ビジーフラグ制御部
１０５ａ１、２０５ａ１、３０５ａ１、４０５ａ１  ポートＡローカルアービタ部
１０５ａ２、２０５ａ２、３０５ａ２、４０５ａ２  宛先判定部
１０１、２０１、３０１、４０１  アービタ部
１０１ａ、２０１ａ、３０１ａ、４０１ａ  ポートＸ資源管理部
１０１ａ０、２０１ａ０、３０１ａ０、４０１ａ０  資源情報部（Ｑ０用）
１０１ａ１、２０１ａ１、３０１ａ１、４０１ａ１  資源情報部（Ｑ１用）
１０１ａｎ、２０１ａｎ、３０１ａｎ、４０１ａｎ  資源情報部（Ｑｎ用）
１０１ｂ、２０１ｂ、３０１ｂ、４０１ｂ  ポートＸアービタ部
１０１ｂ０、２０１ｂ０、３０１ｂ０、４０１ｂ０  ポートＡ資源チェック部
１０１ｂ１、２０１ｂ１、３０１ｂ１、４０１ｂ１  ポートＢ資源チェック部
１０１ｂ２、２０１ｂ２、３０１ｂ２、４０１ｂ２  ポートＸポート間アービタ部
１０１ｂ３、２０１ｂ３、３０１ｂ３、４０１ｂ３  出力制御部
２０１ｂ４、３０１ｂ４、４０１ｂ４  アービトレーション情報部
３０１ｂ５、４０１ｂ５  資源開放待ちフラグ格納部
４０５ａ４０、４０５ａ４１、４０５ａ４ｎ  ライブロック監視タイマ
４０５ａ５０、４０５ａ５１、４０５ａ５ｎ  比較器
４０５ａ７  ライブロック監視閾値格納部
４０１ｂ６  ライブロック防止回路有効化ビット格納部
５００  システムボードＡ
７００  Ｉ／ＯボードＸ
【発明を実施するための最良の形態】
【００１７】
以下に添付図面を参照し、開示の技術に係る実施形態の一例を詳細に説明する。従来技術及び開示の技術に係る情報処理装置としてのコンピュータ装置の構成の概略、従来技術のアービトレーション処理と問題点、従来技術を解決する第一実施形態の一例、第二実施形態の一例、及び、第三実施形態の一例の順序で説明を行う。なお、以下の説明で用いる「データ」は「パケット」であり、「データリクエスト」は、「リクエストパケット」である。以下においては、後述のポートＡ１０３から後述のポートＸ１１３へ後述のリクエストタイプＱ０のデータリクエストを送信する場合を例として説明する。【００１８】
［コンピュータ装置の構成の概略］
図１は、従来技術及び開示の技術に係るコンピュータ装置の構成の概略を示すブロック図である。コンピュータ装置１０は、クロスバボード（以下、「クロスバ」と略記する、データ転送回路に相当）１００にシステムボードＡ５００、システムボードＢ６００、Ｉ／ＯボードＸ７００、Ｉ／ＯボードＹ８００が接続されている。【００１９】
なお、従来技術及び開示の技術に関し、システムボード及びＩ／Ｏボードは、クロスバに対する位置付けは同じである。また、従来技術及び開示の技術に関し、「資源」とは、後述のシステムボード及びＩ／Ｏボードの受信バッファのリクエストタイプ毎の記憶領域を指す。なお、受信バッファ、リクエストタイプについては後述する。【００２０】
処理部としてのシステムボードＡ５００は、演算処理装置としてのＣＰＵ５０１及びＣＰＵ５０２、及び、メモリ５０３及びメモリ５０４がシステムコントローラ５０５に接続される。ＣＰＵ５０１及びＣＰＵ５０２は、コンピュータ装置１０における各種演算処理を行う演算装置である。メモリ５０３及びメモリ５０４は、ＣＰＵ５０１及びＣＰＵ５０２が行った演算結果を一時記憶し、また、Ｉ／ＯボードＸ７００及び／又はＩ／ＯボードＹ８００から転送されるデータを記憶する記憶部である。【００２１】
システムコントローラ５０５は、システムボードＡ５００全体の制御を司る制御回路である。特に、システムコントローラ５０５は、ＣＰＵ５０１及びＣＰＵ５０２、又は、メモリ５０３及びメモリ５０４とクロスバ１００との間で送受信される各種データリクエスト、各種データ等の送受信バッファを含む。システムコントローラ５０５は、ＣＰＵ５０１及びＣＰＵ５０２、又は、メモリ５０３及びメモリ５０４からクロスバ１００へ送信される各種データリクエスト、各種データ等の送信バッファ５０６と、クロスバ１００から受信する各種データリクエスト、各種データ等の受信バッファ５０７とを含む。【００２２】
送信バッファ５０６は、ＣＰＵ５０１又はＣＰＵ５０２から他のシステムボード若しくはＩ／Ｏボードへ出力される各種データリクエストを一時記憶するバッファである。送信バッファ５０６に一時記憶されるデータリクエストは、後述するクロスバ１００のポートＡ１０３の入力ポート１０４へ送信される。ここで、データリクエストとは、データの送受信に関するリクエストである。データリクエストに対応して送受信される実データが存在する。【００２３】
受信バッファ５０７は、後述するクロスバ１００から受信した各種リクエスト又はデータを一時記憶する。受信バッファ５０７に一時記憶される各種リクエスト、データは、ＣＰＵ５０１及び／又はＣＰＵ５０２、メモリ５０３及び／メモリ５０４にそれぞれ出力される。【００２４】
なお、システムボードＢ６００は、システムボードＡ５００と同一の構成である。システムボードＢ６００は、ＣＰＵ６０１及びＣＰＵ６０２、メモリ６０３及びメモリ６０４、送信バッファ６０６及び受信バッファ６０７を含むシステムコントローラ６０５を有する。システムボードＢ６００の各構成部の機能及び処理は、システムボードＡ５００の各構成部と同様である。符号を除き名称が一致する機能部は、同一の機能を有し、同一の処理を行う。【００２５】
また、クロスバ１００に接続されるシステムボードの数は、上記したシステムボードＡ５００及びシステムボードＢ６００の二つに限定されるものではない。また、各システムボードは、それぞれ二つのＣＰＵ及び二つのメモリを含むが、それぞれ「二つ」に限定されるものではなく、また、ＣＰＵ及びメモリ以外の機能部を含んでもよい。【００２６】
クロスバ１００は、アービタ部１０１、データクロスバ１０２、ポートＡ１０３及びポートＢ１０８、ポートＸ１１３及びポートＹ１１８を含む。アービタ部１０１は、ラウンドロビン、ＬＲＵ（Least  Recently  Used）アルゴリズム等の優先制御に従ってポートＡ１０３、ポートＢ１０８、ポートＸ１１３、ポートＹ１１８から出力される各種リクエストをアービトレーションする。【００２７】
データクロスバ１０２は、クロスバ１００内の各ポートから出力されるデータリクエストの内、アービタ部１０１によってアービトレーションに勝ったデータリクエストに対応するデータを宛先のポートへ出力する。ここで、「アービトレーションに勝つ」とは、アービタ部１０１におけるアービトレーションにおいてデータリクエストが実際のデータリクエストを行う権利を獲得することを意味する。ここで、アービトレーションに勝ったデータリクエストは、データクロスバから、宛先のポートへ出力されることになる。一方、「アービトレーションに負ける」とは、アービトレーションにおいてデータリクエストが実際のデータリクエストを行う権利を獲得出来なかったことを意味する。すなわち、アービトレーションに負けたデータリクエストは、データクロスバから、宛先のポートへは出力されない。【００２８】
ポートＡ１０３は、入力ポート１０４、ポートＡリクエストキュー１０５ａ、ポートＡデータ制御部１０６ａ、出力ポート１０７を含む。入力ポート１０４は、システムボードＡ５０５のシステムコントローラ５０５の送信バッファ５０６から受信したデータリクエストをポートＡリクエストキュー１０５ａへ、データをポートＡデータ制御部１０６ａへと振り分けて出力する。【００２９】
ポートＡリクエストキュー１０５ａは、入力ポート１０４から入力されるデータリクエストをアービタ部１０１へ出力する。ポートＡデータ制御部１０６ａは、入力ポート１０４からポートＡリクエストキュー１０５ａへ入力されるデータリクエストに対応するデータを一時記憶する。そして、ポートＡデータ制御部１０６ａは、対応するデータリクエストがアービトレーションに勝ったことをアービタ部１０１から通知されると、アービトレーションに勝ったデータリクエストに対応するデータをデータクロスバ１０２へ出力する。出力ポート１０７は、データクロスバから宛先のポートとして出力されるデータが入力される。【００３０】
なお、ポートＢ１０８は、システムボードＢ６００に対応するポートである。ポートＢ１０８は、ポートＡと同一の構成である。ポートＢ１０８は、入力ポート１０９、ポートＢリクエストキュー１０５ｂ、ポートＢデータ制御部１０６ｂ、出力ポート１１２を含む。符号を除き名称が一致する機能部は、ポートＡ１０３における機能部と同一の機能を有し、同一の処理を行う。【００３１】
また、ポートＸ１１３は、入力ポート１１４、リクエストキュー１１５、データ制御部、出力ポート１１７を含み、ポートＹ１１８は、入力ポート１１９、リクエストキュー１２０、データ制御部１２１、出力ポート１２２を含む。各機能部は、システムボードＡ５００又はシステムボードＢ６００の代わりにＩ／ＯボードＸ７００又はＩ／ＯボードＹ８００が接続される点のみが異なり、５００ポートＡ１０３及びポートＢ１０８の対応する機能部と同一の機能を有し、同一の処理を行う。【００３２】
Ｉ／Ｏボード７００は、カードスロット７０１及びカードスロット７０２、及び、ディスク記憶装置７０３及びディスク記憶装置７０４がＩ／Ｏコントローラ７０５に接続される構成である。カードスロット７０１及びカードスロット７０２は、コンピュータ装置１０に外部記憶装置を接続する機能拡張装置としてのインターフェースである。ディスク記憶装置７０３及びディスク記憶装置７０４は、コンピュータ装置１０で利用するデータを記憶する記憶装置である。【００３３】
Ｉ／Ｏコントローラ７０５は、Ｉ／ＯボードＸ７００全体のデータ入出力の制御を司る。特に、Ｉ／Ｏコントローラ７０５は、カードスロット７０１若しくはカードスロット７０２に接続される外部記憶装置、又は、ディスク記憶装置７０３若しくはディスク記憶装置７０４とクロスバ１００との間で送受信される各種データリクエスト、各種データ等の送受信バッファを含む。【００３４】
Ｉ／Ｏコントローラ７０５は、カードスロット７０１及びカードスロット７０２に接続される外部記憶装置、又は、ディスク記憶装置７０３及びディスク記憶装置７０４とクロスバ１００との間で送受信される各種データリクエスト、各種データ等の送信バッファ７０６と、クロスバ１００から受信する各種データリクエスト、各種データ等の受信バッファ７０７とを含む。【００３５】
送信バッファ７０６は、システムボードＡ５００又はシステムボードＢ６００からのデータリクエストに応じて送信されるデータを一時記憶するバッファである。送信バッファ７０６に一時記憶されるデータは、後述するクロスバ１００のポートＸ１１３の入力ポート１１４へ送信される。【００３６】
受信バッファ７０７は、後述するクロスバ１００から受信した各種データリクエストに対応するデータを一時記憶する。受信バッファ７０７に記憶される各種データは、カードスロット７０１及びカードスロット７０２に接続される外部記憶装置、又は、ディスク記憶装置７０３及びディスク記憶装置７０４にそれぞれ出力される。【００３７】
なお、Ｉ／ＯボードＹ８００は、Ｉ／ＯボードＸ７００と同一の構成である。Ｉ／ＯボードＹ８００は、カードスロット８０１及びカードスロット８０２、ディスク記憶装置８０３及びディスク記憶装置８０４、送信バッファ８０６及び受信バッファ８０７を含むＩ／Ｏコントローラ８０５を有する。各構成部の機能及び処理は、Ｉ／ＯボードＸ７００の各構成部と同様である。符号を除き名称が一致する機能部は、同一の機能を有し、同一の処理を行う。【００３８】
また、クロスバ１００に接続されるＩ／Ｏボードの数は、上記したＩ／ＯボードＸ７００及びＩ／ＯボードＹ８００の二つに限定されるものではない。また、各Ｉ／Ｏボードは、それぞれ二つのカードスロット及び二つのディスク記憶装置を含むが、それぞれ「二つ」に限定されるものではなく、また、カードスロット及びディスク記憶装置以外の機能部を含んでもよい。【００３９】
［従来技術のクロスバの詳細構成］
図２は、従来技術のクロスバ１００の構成を示すブロック図である。図２では、アービタ部１０１、データクロスバ１０２、ポートＡリクエストキュー１０５ａ及びポートＢリクエストキュー１０５ｂ、ポートＡデータ制御部１０６ａ及びポートＢデータ制御部１０６ｂのみを示し、その他の構成の記載を省略している。【００４０】
アービタ部１０１は、ポートＸ資源管理部１０１ａ、ポートＸアービタ部１０１ｂ、ポートＹ資源管理部１０１ｃ、ポートＹアービタ部１０１ｄを含む。なお、アービタ部１０１は、ポートＡ資源管理部、ポートＡアービタ部、ポートＢ資源管理部、ポートＢアービタ部を含むが、説明を省略する。これは、ポートＡ１０３のポートＡリクエストキュー１０５ａからポートＸ１１３宛てにデータリクエストを送信する場合を例に説明するためである。【００４１】
ポートＡリクエストキュー１０５ａ及びポートＢリクエストキュー１０５ｂは、入力ポート１０４及び入力ポート１０９から入力されるデータを管理するキューであり、アービトレーションに必要な情報、例えば、データの宛先、データサイズを保持する。【００４２】
ポートＡリクエストキュー１０５ａは、種類毎にデータリクエストを受け付けるポートＡＱ０＿１０５ａ００、ポートＡＱ１＿１０５ａ０１、・・・、ポートＡＱｎ＿１０５ａ０ｎ、ポートＡローカルアービタ部１０５ａ１、宛先判定部１０５ａ２を含む。なお、Ｑ０、Ｑ１、・・・、Ｑｎは、データリクエストの種類（以下、リクエストタイプと呼ぶ）を表す。【００４３】
ポートＡローカルアービタ部１０５ａ１は、ポートＡＱ０＿１０５ａ００、ポートＡＱ１＿１０５ａ０１、・・・、ポートＡＱｎ＿１０５ａ０ｎから入力されるデータリクエストのアービトレーションを行う。そして、宛先判定部１０５ａ２は、アービトレーションに勝ったデータリクエストを宛先に応じてポートＸアービタ部１０１ｂ又はポートＹアービタ部１０１ｄへ出力する。すなわち、ポートＡローカルアービタ部１０５ａ１と、ポートＸアービタ部１０１ｂ又はポートＹアービタ部１０１ｄとの二段階でアービトレーションを行う。【００４４】
なお、ポートＢリクエストキュー１０５ｂは、ポートＢＱ０＿１０５ｂ００、ポートＢＱ１＿１０５ｂ０１、・・・、ポートＢＱｎ＿１０５ｂ０ｎ、ポートＢローカルアービタ部１０５ｂ１、宛先判定部１０５ｂ２を含む。ポートＢリクエストキュー１０５ｂの各構成部の機能及び処理は、ポートＡリクエストキュー１０５ａの各構成部と同様である。符号を除き名称が一致する機能部は、同一の機能を有し、同一の処理を行う。【００４５】
アービタ部１０１のポートＸ資源管理部１０１ａは、資源情報部（Ｑ０用）１０１ａ０、資源情報部（Ｑ１用）１０１ａ１、・・・、資源情報部（Ｑｎ用）１０１ａｎを含む。なお、資源情報部（Ｑ０用）１０１ａ０、資源情報部（Ｑ１用）１０１ａ１、・・・、資源情報部（Ｑｎ用）１０１ａｎは、クロスバ１００に接続されるＩ／ＯボードＸ７００の受信バッファ７０７のリクエストデータの種類毎のキューＱ０、キューＱ１、・・・、キューＱｎの使用状況をそれぞれ取得及び管理する。【００４６】
なお、各資源情報部で管理される資源情報は、資源としての受信バッファ７０７の使用可能量を示す。データの出力時、受信バッファ７０７においてデータが一時記憶されると、使用可能量は減少し、データの一時記憶が解除されると、使用可能量は増加する。【００４７】
ポートＸアービタ部１０１ｂは、ポートＡ資源チェック部１０１ｂ０、ポートＢ資源チェック部１０１ｂ１、ポートＸポート間アービタ部１０１ｂ２、出力制御部１０１ｂ３、アービトレーション情報部１０１ｂ４を含む。ポートＡ資源チェック部１０１ｂ０は、ポートＡリクエストキュー１０５ａから入力されるデータリクエストのリクエストの種類に応じて資源情報部（Ｑ０用）１０１ａ０、資源情報部（Ｑ１用）１０１ａ１、・・・、資源情報部（Ｑｎ用）１０１ａｎを参照する。【００４８】
また、ポートＢ資源チェック部１０１ｂ１は、ポートＢリクエストキュー１０５ｂから入力されるデータリクエストのリクエストの種類に応じて資源情報部（Ｑ０用）１０１ａ０、資源情報部（Ｑ１用）１０１ａ１、・・・、資源情報部（Ｑｎ用）１０１ａｎを参照する。【００４９】
そして、ポートＡ資源チェック部１０１ｂ０は、受信バッファ７０７においてデータリクエストに対応するキューがビジー状態でない場合、データリクエストをポートＸポート間アービタ部１０１ｂ２へ出力する。同様に、ポートＢ資源チェック部１０１ｂ１は、受信バッファ７０７においてデータリクエストに対応するキューがビジー状態でない場合、データリクエストをポートＸポート間アービタ部１０１ｂ２へ出力する。【００５０】
そして、出力制御部１０１ｂ３は、ポートＸポート間アービタ部１０１ｂ２においてアービトレーションに勝ったデータリクエストに対応するデータを出力する様、ポートＡデータ制御部１０６ａ又はポートＢデータ制御部１０６ｂに指示する。アービトレーション情報部１０１ｂ４は、ポートＸポート間アービタ部１０１ｂ２においてアービトレーションの際に使用するポート間もしくはリクエストタイプ間の優先順位を示す情報を保持する。【００５１】
ポートＡデータ制御部１０６ａは、データバッファ１０６ａ１、リード制御部１０６ａ２を含む。また、ポートＢデータ制御部１０６ｂは、データバッファ１０６ｂ１、リード制御部１０６ｂ２を含む。出力制御部１０１ｂ３から指示を受けたポートＡデータ制御部１０６ａのリード制御部１０６ａ２、又は、ポートＢデータ制御部１０６ｂのリード制御部１０６ｂ２は、データバッファ１０６ａ１、データバッファ１０６ｂ１に対してそれぞれ該当データを読み出す様に指示する。【００５２】
そして、データバッファ１０６ａ１、データバッファ１０６ｂ１は、データクロスバ１０２のポートＸデータセレクタ１０２ａ、ポートＹデータセレクタ１０２ｂへそれぞれ該当データを出力する。【００５３】
アービタ部１０１のポートＹ資源管理部１０１ｃは、資源情報部（Ｑ０用）１０１ｃ０、資源情報部（Ｑ１用）１０１ｃ１、・・・、資源情報部（Ｑｎ用）１０１ｃｎを含む。なお、資源情報部（Ｑ０用）１０１ｃ０、資源情報部（Ｑ１用）１０１ｃ１、・・・、資源情報部（Ｑｎ用）１０１ｃｎは、資源情報部（Ｑ０用）１０１ａ０、資源情報部（Ｑ１用）１０１ａ１、・・・、資源情報部（Ｑｎ用）１０１ａｎと同様に、クロスバ１００に接続されるＩ／ＯボードＹ８００の受信バッファ８０７のリクエストデータの種類毎のキューＱ０、キューＱ１、・・・、キューＱｎの使用状況をそれぞれ取得及び管理する。【００５４】
ポートＹアービタ部１０１ｄは、ポートＡ資源チェック部１０１ｄ０、ポートＢ資源チェック部１０１ｄ１、ポートＹポート間アービタ部１０１ｄ２、出力制御部１０１ｄ３を含む。ポートＡ資源チェック部１０１ｄ０は、ポートＡリクエストキュー１０５ａから入力されるデータリクエストのリクエストの種類に応じて資源情報部（Ｑ０用）１０１ｃ０、資源情報部（Ｑ１用）１０１ｃ１、・・・、資源情報部（Ｑｎ用）１０１ｃｎを参照する。【００５５】
また、ポートＢ資源チェック部１０１ｄ１は、ポートＢリクエストキュー１０５ｂから入力されるデータリクエストのリクエストの種類に応じて資源情報部（Ｑ０用）１０１ｃ０、資源情報部（Ｑ１用）１０１ｃ１、・・・、資源情報部（Ｑｎ用）１０１ｃｎを参照する。【００５６】
そして、ポートＡ資源チェック部１０１ｄ０は、受信バッファ８０７においてデータリクエストに対応するキューがビジー状態でない場合、データリクエストをポートＹポート間アービタ部１０１ｄ２へ出力する。同様に、ポートＢ資源チェック部１０１ｄ１は、受信バッファ８０７においてデータリクエストに対応するキューがビジー状態でない場合、データリクエストをポートＹポート間アービタ部１０１ｄ２へ出力する。【００５７】
そして、出力制御部１０１ｄ３は、ポートＹポート間アービタ部１０１ｄ２においてアービトレーションに勝ったデータリクエストに対応するデータを出力する様、ポートＡデータ制御部１０６ａ又はポートＢデータ制御部１０６ｂに指示する。【００５８】
そして、出力制御部１０１ｄ３から指示を受けたポートＡデータ制御部１０６ａのリード制御部１０６ａ２、又は、ポートＢデータ制御部１０６ｂのリード制御部１０６ｂ２は、データバッファ１０６ａ１、データバッファ１０６ｂ１に対してそれぞれ該当データを読み出す様に指示する。そして、データバッファ１０６ａ１、データバッファ１０６ｂ１は、データクロスバ１０２のポートＸデータセレクタ１０２ａ、ポートＹデータセレクタ１０２ｂへそれぞれ該当データを出力する。【００５９】
［従来技術のアービトレーション処理と問題点］
図３は、従来技術のアービトレーション処理手順を示すフローチャートである。以下では、システムボードＡ５００からポートＡ１０３を介してポートＸへリクエストタイプＱ０のデータリクエストを送信する例を示す。なお、以下の第一実施形態の一例、第二実施形態の一例、第三実施形態の一例も同様である。【００６０】
先ず、ステップＳ１０１では、クロスバ１００は、システムボードＡ５００からリクエストタイプがＱ０のデータリクエスト及びデータ（パケット）を受け付ける。具体的には、クロスバ１００のポートＡリクエストキュー１０５ａのポートＡＱ０＿１０５ａ００は、システムボードＡ５００からのリクエストタイプＱ０のデータリクエストを登録する。また、ポートＡデータ制御部１０６ａのデータバッファ１０６ａ１は、システムボードＡ５００からのリクエストタイプＱ０のデータリクエストに対応するデータ（パケット）を格納する。【００６１】
ステップＳ１０２では、ポートＡＱ０＿１０５ａ００は、登録したリクエストタイプＱ０のデータリクエストを、ポートＡリクエストキュー１０５ａの内部で行われるポートＡローカルアービトレーションに参加させるため、ポートＡローカルアービタ部１０５ａ１に入力する。データリクエストを入力されるポートＡローカルアービタ部１０５ａ１は、ポートＡリクエストキュー１０５ａの内部でのローカルアービトレーションを行う。【００６２】
ステップＳ１０３では、ポートＡローカルアービタ部１０５ａ１は、ステップＳ１０２で入力されるデータリクエストがローカルアービトレーションに勝ったか否かを判定する。勝ったと判定された場合（ステップＳ１０３肯定）、ステップＳ１０４へ移り、勝ったと判定されなかった場合（ステップＳ１０３否定）、ステップＳ１０２へ移る。【００６３】
ステップＳ１０４では、ポートＡローカルアービタ部１０５ａ１は、ポートＡデータ制御部のリード制御部１０６ａ２がビジー状態であるか否かを判定する。ビジー状態であると判定された場合（ステップＳ１０４肯定）、ステップＳ１０２へ移り、ビジー状態であると判定されなかった場合（ステップＳ１０４否定）、ステップＳ１０５へ移る。【００６４】
ステップＳ１０５では、ポートＡローカルアービタ部１０５ａ１は、ローカルアービトレーションに勝ったデータリクエストを宛先判定部１０５ａ２から宛先ポートのアービタ部（ここでは、ポートＸアービタ部１０１ｂ）へ出力する。ポートＡローカルアービタ部１０５ａ１は、ポートＸ宛である該当データリクエストをアービタ部１０１のポートＸアービタ部１０１ｂのポートＡ資源チェック部１０１ｂ０へ出力する。【００６５】
ステップＳ１０６では、アービタ部１０１のポートＸアービタ部１０１ｂのポートＡ資源チェック部１０１ｂ０は、ポートＸ資源管理部１０１ａの資源情報部１０１ａ０を参照し、受信バッファ７０７のリクエストタイプＱ０の資源がビジー状態であるか否かを判定する。ビジー状態であると判定された場合（ステップＳ１０６肯定）、ステップＳ１０２（または、ステップＳ１０６）へ移り、ビジー状態であると判定されなかった場合（ステップＳ１０６否定）、ステップＳ１０７へ移る。【００６６】
ステップＳ１０７では、ポートＡ資源チェック部１０１ｂ０は、リクエストタイプＱ０のデータリクエストを、ポートＸアービタ部１０１ｂ２で行われるポートＸポート間アービトレーションに参加させるため、ポートＸポート間アービタ部１０１ｂ２に入力する。データリクエストが入力されるポートＸポート間アービタ部１０１ｂ２は、ポートＸアービタ部１０１ｂ２でのポートＸポート間アービトレーションを行う。【００６７】
ステップＳ１０８では、ポートＸポート間アービタ部１０１ｂ２は、リクエストタイプＱ０のデータリクエストがポートＸポート間アービトレーションに勝ったか否かを判定する。勝ったと判定された場合（ステップＳ１０８肯定）、ステップＳ１０９へ移り、勝ったと判定されなかった場合（ステップＳ１０８否定）、ステップＳ１０６へ移る。【００６８】
ステップＳ１０９では、ポートＸポート間アービタ部１０１ｂ２は、ポートＸポート間アービトレーションに勝ったポートＡＱ０＿１０５ａ００に登録されているリクエストタイプＱ０のデータリクエストのキューをクリアする。また、出力制御部１０１ｂ３は、ポートＸポート間アービトレーションに勝ったデータリクエストに対応するデータを出力する様、ポートＡデータ制御部のリード制御部１０６ａ２に対して指示する。【００６９】
ステップＳ１１０では、リード制御部１０６ａ２は、出力制御部１０１ｂ３からの指示に応じてポートＸ宛である該当データリクエストに対応するデータ（パケット）をデータバッファ１０６ａ１から読み出し、データクロスバ１０２のポートＸデータセレクタ１０２ａへ出力する。【００７０】
なお、上記ステップＳ１０１、ステップＳ１０５、ステップＳ１０６、ステップＳ１０７、ステップＳ１０９の各処理は、図２に各ステップ番号を付して示す各矢印で表される。【００７１】
ここで、上記従来技術のアービトレーション処理では、ステップＳ１０６において、アービタ部１０１のポートＸアービタ部１０１ｂのポートＡ資源チェック部１０１ｂ０は、ポートＸ資源管理部１０１ａの資源情報部１０１ａ０を参照し、受信バッファ７０７のリクエストタイプＱ０の資源がビジー状態である時、次の二通りの対応が考えられる。【００７２】
（１）データリクエストをキャンセルし、ポートＡリクエストキュー１０５ａにおけるローカルアービトレーションからやり直すこと（図２において（Ａ）で指し示される波線矢印参照、図３においてステップ１０６肯定の場合、ステップＳ１０２へ移る）。（２）受信バッファ７０７の資源のビジー状態が解消されるまでデータリクエストをポートＸアービタ部１０１ｂのポートＡ資源チェック部１０１ｂ０に再投入し続けること（図２において（Ｂ）で指し示される波線矢印参照、図３においてステップ１０６肯定の場合、ステップＳ１０６へ移る）。【００７３】
しかし、上記（１）では、次の問題点があった。すなわち、（問題点１）定常的な資源ビジー状態が続くとライブロック状態になる可能性がある。具体的には、ポートＸ１１３のリクエストタイプＱ０の資源情報が更新され、データ送信に必要な資源が確保されるタイミングで、ポートＡ１０３からの別のデータリクエスト（例えば、ポートＹ１１８宛のリクエストタイプＱ１）が選択され、ポートＢ１０８からポートＸ１１３宛のリクエストタイプＱ０のデータリクエストが選択される場合を考える。【００７４】
この場合、ポートＸ１１３のリクエストタイプＱ０用の資源は、ポートＢ１０８によって使用され、ポートＡ１０３からポートＸ１１３宛のリクエストタイプＱ０のデータリクエストは、再度資源ビジー状態に陥る。この状態が継続すると、資源は順次解放されるにも関わらず、例えばポートＡ１０３の様に一部のポートからのデータリクエストが定常的に選択されないライブロック状態となる。【００７５】
（問題点２）また、資源不足により受け付けられないデータリクエストの投入は、他の有効なデータリクエストの妨げとなる。具体的には、例えばローカルアービタは、ポートＸ１１３の資源情報を参照せずにデータリクエストを発行するため、ポートＸ１１３へ無駄なデータリクエストを出力してしまう可能性がある。このため、ポートＡリクエストキュー２０５ａは、資源不足ではない他のリクエストタイプのデータリクエストを投入する機会が減り、スループットが低下する可能性がある。【００７６】
また、上記（２）では、次の問題があった。すなわち、（問題点３）資源不足のデータリクエストがポートＸアービタ部１０１ｂに留まるため、デッドロック又は大幅なスループットの低下が発生する可能性がある。【００７７】
例えば、ポートＸ１１３内のリクエストタイプＱ０用の資源は、ポートＸ１１３内の別のリクエストタイプＱ１〜Ｑｎのデータリクエスト、若しくはポートＸ１１３とは異なる出力ポート内のリクエストタイプＱ０〜Ｑｎの何れかと相互依存関係を持つとする。特定のリクエストキュー間で追い越しを行わなければデッドロックが発生することがプロトコル上明白であるとき、アービタ部１０１に特定のデータリクエストが留まり、ポートＡローカルアービタ部１０５ａ１で追い越しが必要な別のデータリクエストを投入できなくなることにより、デッドロック発生の可能性がより高まる。アービタ部１０１に特定のデータリクエストが留まらなければ、ライブロック発生の可能性の問題がある。【００７８】
また、上記リクエストタイプの相互依存関係の有無に関わらず、ポートＸ１１３のリクエストタイプＱ０用の資源が解放されるまでの間、ポートＡ１０３から他のデータリクエストタイプＱ１〜Ｑｎのリクエストデータを出力する機会を逃す可能性があり、スループット低下の要因となる。開示の技術は、上記（問題点１）〜（問題点３）を解消するためになされた。【００７９】
［第一実施形態の一例］
以下に図４〜図６を参照して、開示の技術の第一実施形態の一例を説明する。図４及び図５のブロック図で示す各機能部は、符号の違いを除き名称が一致するものは同一の処理機能を有する。第一実施形態の一例に係るクロスバ２００は、ポートＡリクエストキュー１０５ａ及びポートＢリクエストキュー１０５ｂの代わりにポートＡリクエストキュー２０５ａ及びポートＢリクエストキュー２０５ｂを備える。詳細には、例えば、ポートＡリクエストキュー１０５ａに代えて、ポートＡリクエストキュー２０５ａを備えることを特徴とする。その他の各リクエストタイプのリクエストキューも同様である。【００８０】
図４に示す様に、例えば、ポートＡリクエストキュー２０５ａは、リクエストタイプＱ０〜Ｑｎ毎のポートＡＱ０＿２０５ａ００〜ポートＡＱｎ＿２０５ａ０ｎにそれぞれリクエスタ資源ビジーフラグ制御部２０５ａ３０〜リクエスタ資源ビジーフラグ制御部２０５ａ３ｎが接続される構成である。その他の入力ポートも同様である。【００８１】
さらに、図５を参照すると、ポートＸアービタ部２０１ｂのポートＡ資源チェック部２０１ｂ０は、ポートＸ資源管理部２０１ａの資源情報部２０１ａ０を参照した結果、ポートＡＱ０＿２０５ａ００からのデータリクエストが資源ビジーのためにポートＸポート間アービタ部２０１ｂ２へ出力可能でないと判断した場合、ポートＡＱ０＿２０５ａ００のリクエスタ資源ビジーフラグ制御部２０５ａ３０に対してビジーフラグをオンするように指示する。【００８２】
ポートＡＱ０＿２０５ａ００は、ビジーフラグがオンである限りデータリクエストを出力することを抑止する。なお、ビジーフラグがオフである場合、ポートＡＱ０＿２０５ａ００は、データリクエストを出力することを抑止しない。【００８３】
［第一実施形態の一例に係るアービトレーション処理］
図６は、第一実施形態の一例に係るアービトレーション処理手順を示すフローチャートである。図６のステップＳ２０１〜ステップＳ２１０は、図３に示した従来技術のアービトレーション処理手順と同一である。異なる点は、ステップＳ２０６の分岐処理である。【００８４】
ステップＳ２０６で、アービタ部２０１のポートＸアービタ部２０１ｂのポートＡ資源チェック部２０１ｂ０によって、ポートＸ資源管理部２０１ａの資源情報部２０１ａ０を参照し、受信バッファ７０７のリクエストタイプＱ０の資源がビジー状態であると判定された場合（ステップＳ２０６肯定）、ステップＳ２１１へ移る。【００８５】
ステップＳ２１１では、ポートＡ資源チェック部２０１ｂ０は、ポートＡリクエストキュー２０５ａに対してキャンセル通知を行う。ステップＳ２１２では、リクエスタ資源ビジーフラグ制御部２０５ａ３０は、キャンセル通知に応じて、リクエスタ資源ビジーフラグをセットする。【００８６】
ステップＳ２１３では、ポートＸ資源管理部２０１ａの資源情報部２０１ａ０は、資源ビジーが解消されたか否かを判定する。解消されたと判定された場合（ステップＳ２１３肯定）、ステップＳ２１４へ移り、解消されたと判定されなかった場合（ステップＳ２１３否定）、ステップＳ２１３へ移る。ステップＳ２１４では、リクエスタ資源ビジーフラグ制御部２０５ａ３０は、ポートＸ資源管理部２０１ａの資源情報部２０１ａ０から資源ビジーが解除されたことの通知を受け、リクエスタ資源ビジーフラグをリセット（オフに）する。この処理が終了すると、ステップＳ２０２へ移る。【００８７】
上記第一実施形態の一例のリクエスタ資源ビジーフラグ制御によって、リクエストキュー２０５ａ００は、リクエストタイプ毎の資源のビジー状態を知ることができ、ポート間アービトレーションで負ける可能性が高いデータリクエストの出力を抑制するので、上記（問題点２）を解決することができる。【００８８】
［第二実施形態の一例］
以下に図７〜図１０を参照して、開示の技術の第二実施形態の一例を説明する。図７及び図８のブロック図で示す各機能部は、符号の違いを除き名称が一致するものは同一の処理機能を有する。第二実施形態の一例に係るクロスバ３００は、第一実施形態の一例に係るクロスバ２００の構成に加え、アービタ部３０１のポートＸアービタ部３０１ｂが資源解放待ちフラグ格納部３０１ｂ５をさらに備える。【００８９】
資源解放待ちフラグ格納部３０１ｂ５は、図７及び図８に示す様に、リクエストタイプ毎、入力ポート毎に資源解放待ちフラグを保持する。資源解放待ちフラグ格納部３０１ｂ５は、出力ポート内の資源チェックにおいて、資源不足を検出した場合、資源解放待ちフラグをセットする（オンにする）。【００９０】
リクエストタイプの何れかの入力ポートの資源開放待ちフラグがセットされている場合、資源開放待ちフラグがセットされていない他の入力ポートからのデータリクエストは、資源ビジー状態でなくとも資源ビジー状態とする。これにより、先行する資源開放待ちの入力ポートよりも先に新規のデータリクエストがアービトレーションに勝つことを防止する。すなわち、資源開放待ちの順序を維持する。【００９１】
ポートＡ資源チェック部３０１ｂ０は、対応するリクエストタイプの資源不足を検出した場合、データリクエストをキャンセルする。また、ポートＡ資源チェック部３０１ｂ０は、対応するリクエストタイプの資源不足を検出しなかった場合、データリクエストをポートＸポート間アービタ部３０１ｂ２に入力する。この様に、資源不足でない場合、データリクエストをアービタ部３０１に留まらせることで、再度ローカルアービタからやり直す必要がなくなり、出力できる可能性が高いデータリクエストを効率よくポート間アービトレーションに参加させることが出来る。【００９２】
ポートＸ資源管理部の資源情報部３０１ａ０は、資源情報が更新され、資源不足が解消したことを認識すると、資源解放待ちフラグ格納部３０１ｂ５の情報、およびアービトレーション情報部３０１ｂ４に保持しているアービトレーション情報に基づいて最も優先度が高いデータリクエストを保持する入力ポートの該当するリクエストタイプのリクエスタ資源ビジーフラグをリセットする（オフにする）。【００９３】
資源解放待ちフラグ格納部３０１ｂ５に保持される資源開放待ちフラグは、リクエスタ資源ビジーフラグがリセットされることによって、再度ポートＡローカルアービタ部３０５ａ１を通ってポートＸポート間アービタ部３０１ｂ２で選択される時点でリセットされる。資源開放待ちフラグをリセットする場合、資源が残っており、他の資源開放待ちフラグが残っている場合、次に優先度が高い入力ポートの該当するリクエストタイプのリクエスタ資源ビジーフラグをリセットする。【００９４】
［第二実施形態の一例に係るアービトレーション処理］
図９は、第二実施形態の一例に係るアービトレーション処理手順を示すフローチャートである。ステップＳ３０１〜ステップＳ３０６では、上記ステップＳ１０１〜ステップＳ１０６と同一の処理を行う。ステップＳ３０６肯定の場合、ステップＳ３１５へ移り、ステップＳ３０６否定の場合、ステップＳ３０７へ移る。【００９５】
ステップＳ３０７では、ポートＡ資源チェック部３０１ｂ０は、資源開放待ちフラグ格納部３０１ｂ５を参照して、資源開放待ちフラグが全てオフ（“０”）か否かを判定する。資源開放待ちフラグが全てオフ（“０”）であると判定されなかった場合（ステップＳ３０７肯定）、ステップＳ３０８へ移り、資源開放待ちフラグが全てオフ（“０”）であると判定された場合（ステップＳ３０７否定）、ステップＳ３０９へ移る。【００９６】
ステップＳ３０８では、ポートＡ資源チェック部３０１ｂ０は、対象ポートの資源開放待ちフラグがオン（“１”）であるか否かを判定する。対象ポートの資源開放待ちフラグがオン（“１”）であると判定された場合（ステップＳ３０８肯定）、ステップＳ３０９へ移り、対象ポートの資源開放待ちフラグがオン（“１”）であると判定されなかった場合（ステップＳ３０８否定）、ステップＳ３１５へ移る。【００９７】
ステップＳ３０９、ステップＳ３１０では、上記ステップＳ１０７、ステップＳ１０８とそれぞれ同様の処理を行う。ステップＳ３１１では、ポートＸポート間アービタ部３０１ｂ２は、アービトレーションに勝ったポートの該当するリクエストタイプの資源開放待ちフラグがオン（“１”）であるか否かを判定する。アービトレーションに勝ったポートの該当するリクエストタイプの資源開放待ちフラグがオン（“１”）であると判定された場合（ステップＳ３１１肯定）、ステップＳ３１２へ移り、アービトレーションに勝ったポートの該当するリクエストタイプの資源開放待ちフラグがオン（“１”）であると判定されなかった場合（ステップＳ３１１否定）、ステップＳ３１３へ移る。【００９８】
ステップＳ３１２では、ポートＸポート間アービタ部３０１ｂ２は、対象ポートの該当するリクエストタイプの資源開放待ちフラグをリセットする様、資源開放待ちフラグ格納部３０１ｂ５に対して指示する。この指示に応じて、資源開放待ちフラグ格納部３０１ｂ５は、対象ポートの資源開放待ちフラグをリセットする。そして、ステップＳ３１３、ステップＳ３１４では、上記ステップＳ１０９、ステップＳ１１０と同様の処理をそれぞれ行う。【００９９】
一方、ステップＳ３１５では、ポートＡ資源チェック部３０１ｂ０は、データリクエストのキャンセルをポートＡリクエストキュー３０５ａへ通知し、対象ポートの資源開放待ちフラグをセットする様、資源開放待ちフラグ格納部３０１ｂ５に対して指示する。この指示に応じて、資源開放待ちフラグ格納部３０１ｂ５は、対象ポートの資源開放待ちフラグをセットする。ステップＳ３１６では、リクエスタ資源ビジーフラグ制御部３０５ａ３０は、キャンセル通知に応じてリクエスタ資源ビジーフラグをセットする。ステップＳ３１７では、リクエスタ資源ビジーフラグ制御部３０５ａ３０は、ポートＸ資源管理部の資源情報部３０１ａ０の情報が更新される事によるリセット指示を待つ。ステップＳ３１８では、上記ステップＳ２１４と同様の処理を行う。【０１００】
［第二実施形態の一例に係る資源解放待ちフラグ制御処理］
図１０は、第二実施形態の一例に係る資源解放待ちフラグ制御処理手順を示すフローチャートである。先ず、ステップＳ３２１では、資源開放待ちフラグ格納部３０１ｂ５は何れかの資源チェック部からのフラグのセット指示を待つ。何れの資源解放待ちフラグに対してもセットが指示されなかった場合（ステップＳ３２１否定）、ステップＳ３２１へ移る。何れかの資源解放待ちフラグに対してセットが指示された場合（ステップＳ３２１肯定）、ステップ３２２へ移る。【０１０１】
ステップＳ３２２では、ポートＸ資源管理部の資源情報部３０１ａ０は、資源ビジーが解消されたか否かを判定する。資源ビジーが解消されたと判定された場合（ステップＳ３２２肯定）、ステップＳ３２３へ移り、資源ビジーが解消されたと判定されなかった場合（ステップＳ３２２否定）、ステップＳ３２２へ移る。【０１０２】
ステップＳ３２３では、ポートＸ資源管理部の資源情報部３０１ａ０は、データリクエストの種類及び出力ポートのアービトレーション情報部３０１ｂ４と資源解放待ちフラグ格納部３０１ｂ５の情報に応じてリクエスタ資源ビジーフラグのリセット対象のデータリクエストを選択する。ステップＳ３２４では、ポートＸ資源管理部の資源情報部３０１ａ０は、対象ポートのリクエスタ資源ビジーフラグ制御部３０５ａ３０に対してリクエスタ資源ビジーフラグのリセットを指示する。ステップＳ３２４を受け、上記ステップ３１８が実行される。【０１０３】
ステップＳ３２５では、ポートＸ資源管理部の資源情報部３０１ａ０は、ステップＳ３１２の対象ポート資源解放フラグのリセット指示を待つ。ステップＳ３２６では、上記ステップＳ３１２の指示を受け、資源開放待ちフラグ格納部３０１ｂ５の該当資源解放待ちフラグをリセットする。【０１０４】
ステップＳ３２７では、ポートＸ資源管理部の資源情報部３０１ａ０は、資源開放待ちフラグ格納部３０１ｂ５の全ての資源解放待ちフラグがオフ（“０”）であるか否かを判定する。全ての資源解放待ちフラグがオフ（“０”）であると判定された場合（ステップＳ３２７肯定）、ステップＳ３２１へ処理を移し、全ての資源解放待ちフラグがオフ（“０”）であると判定されなかった場合（ステップＳ３２７否定）、ステップＳ３２２へ処理を移す。【０１０５】
上記第二実施形態の一例の資源開放待ちフラグ制御によって、資源開放待ちの入力ポートに対して資源が確保できていることが保証されているタイミングでアービトレーション情報部３０１ｂ４と資源解放待ちフラグ格納部３０１ｂ５の情報を用いて優先すべきポートに対して再度データリクエストをポート間アービトレーションに参加させる事が可能になり、上記（問題点１）を解決することができる。【０１０６】
［第三実施形態の一例］
以下に図１１〜図１６を参照して、開示の技術の第三実施形態の一例を説明する。図１１〜図１３のブロック図で示す各機能部は、符号の違いを除き名称が一致するものは同一の処理機能を有する。第三実施形態の一例に係るクロスバ４００は、第二実施形態の一例に係るクロスバ３００の構成に加え、リクエストタイプ毎のリクエストキュー毎にライブロック監視タイマを備え、ライブロック監視タイマの計数値がライブロック監視閾値を超えた場合に、ライブロック防止回路を起動させる構成となっている。【０１０７】
［ライブロック監視タイマ］
図１１及び図１３に示す様に、ポートＡリクエストキュー４０５ａのポートＡＱ０＿４０５ａ００には、ライブロック監視タイマ４０５ａ４０、比較器４０５ａ５０、宛先判定部４０５ａ６０がさらに備えられる。同様に、ポートＡＱ０＿４０５ａ０１には、ライブロック監視タイマ４０５ａ４１、比較器４０５ａ５１、宛先判定部４０５ａ６１がさらに備えられる。同様に、ポートＡＱ０＿４０５ａ０ｎには、ライブロック監視タイマ４０５ａ４ｎ、比較器４０５ａ５ｎ、宛先判定部４０５ａ６ｎがさらに備えられる。また、ポートＡリクエストキュー４０５ａには、ライブロック監視閾値格納部４０５ａ７が備えられ、比較器４０５ａ５０、比較器４０５ａ５１、比較器４０５ａ５ｎに接続されている。【０１０８】
ライブロック監視タイマについて、図１１及び図１３に示す様に、ポートＡＱ０＿４０５ａ００を例に説明する。ライブロック監視タイマ４０５ａ４０は、資源チェック部４０１ｂ０が資源ビジーによってリクエストをキャンセルすると計時を開始し、計時結果を比較器４０５ａ５０に入力する。比較器４０５ａ５０は、ライブロック監視閾値格納部４０５ａ７に格納されている時間の所定閾値と、入力される計時結果とを常に比較する。そして、計時結果が時間の所定閾値を越えた場合、宛先判定部４０５ａ６０にポートＡＱ０＿４０５ａ００から出力されるリクエストタイプＱ０のデータリクエストの宛先判定を行い、宛先の出力ポートにリクエストタイプＱ０のデータリクエストのライブロック防止機能を起動するよう指示する。【０１０９】
なお、ライブロック監視タイマ４０５ａ４０のタイマリセットのタイミングは、ポートＸポート間アービタ部４０１ｂ２で対象となるデータリクエストが選択されるときである。【０１１０】
［ライブロック防止回路有効化ビット格納部］
図１２及び図１３に示す様に、ポートＸアービタ部４０１ｂは、ライブロック防止回路有効化ビット格納部４０１ｂ６をさらに備える。ポートＸアービタ部４０１ｂのライブロック防止回路有効化ビット格納部４０１ｂ６は、リクエストタイプ毎にライブロック防止回路を有効化するライブロック防止回路有効化ビットを格納する。ライブロック防止回路有効化ビットは、ポートＡリクエストキューの宛先判定部４０５ａ６０から出力ポートを判定して出力される信号に基づきビット（“１”）がセットされる。【０１１１】
ライブロック防止回路有効化ビットがセットされるまで、資源開放待ちフラグがセットされていない入力ポートからのデータリクエストについては資源ビジーとして取り扱わない。そして、資源ビジーの解消を認識すると、対応する入力ポートのリクエスタ資源ビジーフラグと資源開放待ちフラグを全てリセットする。また、ライブロック防止回路有効化ビットは、ライブロック監視タイマによってライブロック状態を検出したリクエストがポートＸポート間アービタ部４０１ｂ２で選択される事によってライブロック監視タイマがリセットされ、比較器４０５ａ５０で閾値超えを検出しなくなるとリセットされる。【０１１２】
［第三実施形態の一例に係るアービトレーション処理］
図１４は、第三実施形態の一例に係るアービトレーション処理手順を示すフローチャートである。図１４のステップＳ４０１〜ステップＳ４０６は、図９に示した第二実施形態の一例のアービトレーション処理手順のステップＳ３０１〜ステップＳ３０６と同一である。【０１１３】
ステップＳ４０７では、ポートＡ資源チェック部４０１ｂ０は、ライブロック防止回路が有効かつ資源開放待ちフラグが全てオフ（“０”）か否かを判定する。ライブロック防止回路が有効かつ資源開放待ちフラグが全てオフ（“０”）でないと判定された場合（ステップＳ４０７肯定）、ステップＳ４０８へ移り、ライブロック防止回路有効かつ資源開放待ちフラグが全てオフ（“０”）でないと判定されなかった場合（ステップＳ４０７否定）、ステップＳ４０９へ移る。【０１１４】
図１４のステップＳ４０８、ステップＳ４０９及びステップＳ４１０は、図９に示した第二実施形態の一例のアービトレーション処理手順のステップＳ３０８、ステップＳ３０９及びステップＳ３１０と同一である。ステップＳ４１０の判定が肯定の場合、ステップＳ４１１へ移り、ステップＳ４１０の判定が否定の場合、ステップＳ４０６へ移る。【０１１５】
ステップＳ４１１では、ポートＸポート間アービタ部４０１ｂ２は、ライブロック防止回路有効かつアービトレーションに勝ったポートの資源解放待ちフラグがオン（“１”）であるか否かを判定する。ライブロック防止回路有効かつアービトレーションに勝ったポートの資源解放待ちフラグがオン（“１”）であると判定された場合（ステップＳ４１１肯定）、ステップＳ４１２へ移り、ライブロック防止回路有効かつアービトレーションに勝ったポートの資源解放待ちフラグがオン（“１”）であると判定されなかった場合（ステップＳ４１１否定）、ステップＳ４１３へ移る。図１４のステップＳ４１２〜ステップＳ４１４は、図９に示した第二実施形態の一例のアービトレーション処理手順のステップＳ３１２〜ステップＳ３１４と同一である。【０１１６】
一方、図１４のステップＳ４１５は、図９に示した第二実施形態の一例のアービトレーション処理手順のステップＳ３１５と同一である。ステップＳ４１６では、ポートＡ資源チェック部４０１ｂ０は、ライブロック監視タイマの計時の開始を指示する。図１４のステップＳ４１７〜ステップＳ４１９は、図９に示した第二実施形態の一例のアービトレーション処理手順のステップＳ３１６〜ステップＳ３１８とそれぞれ同一である。ステップＳ４１９が終了すると、ステップＳ４０１へ移る。【０１１７】
［第三実施形態の一例に係る資源解放待ちフラグ制御処理］
図１５は、第三実施形態の一例に係る資源解放待ちフラグ制御処理手順を示すフローチャートである。図１５のステップＳ４２１、ステップＳ４２２は、図１０に示した第二実施形態の一例の資源解放待ちフラグ制御処理手順のステップＳ３２１、ステップＳ３２２とそれぞれ同一である。【０１１８】
ステップＳ４２３では、ポートＸ資源管理部の資源情報部４０１ａ０は、ライブロック防止回路有効化ビット格納部４０１ｂ６を参照し、ライブロック防止回路有効化ビットがセットされ、ライブロック防止回路が有効となっているか否かを判定する。ライブロック防止回路が有効となっていると判定された場合（ステップＳ４２３肯定）、ステップＳ４２４へ移り、ライブロック防止回路が有効となっていると判定されなかった場合（ステップＳ４２３否定）、ステップＳ４２９へ移る。【０１１９】
図１５のステップＳ４２４〜ステップＳ４２８は、図１０に示した第二実施形態の一例の資源解放待ちフラグ制御処理手順のステップＳ３２３〜ステップＳ３２７とそれぞれ同一である。【０１２０】
一方、ステップＳ４２９は、ポートＸ資源管理部の資源情報部４０１ａ０は、全ポートのリクエスタ資源ビジーフラグのリセットを指示する。ステップＳ４３０では、ポートＸ資源管理部の資源情報部４０１ａ０は、全ポートの資源解放待ちフラグのリセットを指示する。この処理が終了すると、ステップＳ４２１へ処理を移す。【０１２１】
［第三実施形態の一例に係るライブロック防止回路制御処理］
図１６は、第三実施形態の一例に係るライブロック防止回路制御処理手順を示すフローチャートである。ステップＳ４３１では、ライブロック監視タイマ４０５ａ４０は、Ｓ４１６によって監視タイマが起動されるのを待つ。ライブロック監視タイマ４０５ａ４０が起動された場合（ステップＳ４３１肯定）、ステップＳ４３２へ移り、ライブロック監視タイマ４０５ａ４０が起動されなかった場合（ステップＳ４３１否定）、ステップＳ４３１へ移る。【０１２２】
ステップＳ４３２では、ライブロック監視タイマ４０５ａ４０は、監視対象であるデータリクエストがポートＸポート間アービタ部４０１ｂ２によって選択されたか否かを判定する。監視対象であるデータリクエストがポートＸポート間アービタ部４０１ｂ２によって選択されたと判定された場合（ステップＳ４３２肯定）、ステップＳ４３７へ移り、監視対象であるデータリクエストがポートＸポート間アービタ部４０１ｂ２によって選択されたと判定されなかった場合（ステップＳ４３２否定）、ステップＳ４３３へ移る。【０１２３】
ステップＳ４３３では、比較器４０５ａ５０は、ライブロック監視タイマ４５０ａ４０が計時する値がライブロック監視閾値格納部４０５ａ７に格納されるライブロック監視閾値を超えたか否かを判定する。ライブロック監視閾値を超えたと判定された場合（ステップＳ４３３肯定）、ステップＳ４３４へ移り、ライブロック監視閾値を超えたと判定されなかった場合（ステップＳ４３３否定）、ステップＳ４３５へ移る。【０１２４】
ステップＳ４３４では、ライブロック監視タイマ４０５ａ４０は、宛先判定部４０５ａ６０を通して、ライブロック防止回路有効化ビット格納部４０１ｂ６のリクエストタイプ毎のライブロック防止回路有効化ビットをセットし、ライブロック防止回路を有効化する。一方、ステップＳ４３５では、ライブロック監視タイマ４０５ａ４０が計時する値に所定値（例えば、１）を加算する。この処理が終了すると、ステップＳ４３２へ移る。【０１２５】
ステップＳ４３６では、ライブロック監視タイマ４０５ａ４０は、ライブロック防止回路有効化後に、監視対象であるデータリクエストがポートＸポート間アービタ部４０１ｂ２によって選択されたか否かを判定する。監視対象であるデータリクエストがポートＸポート間アービタ部４０１ｂ２によって選択されたと判定された場合（ステップＳ４３６肯定）、ステップＳ４３７へ移り、監視対象であるデータリクエストがポートＸポート間アービタ部４０１ｂ２によって選択されたと判定されなかった場合（ステップＳ４３６否定）、ステップＳ４３６へ移る。【０１２６】
ステップＳ４３７では、ポートＸポート間アービタ部４０１ｂ２で選択されたリクエストに対応する、ライブロック監視タイマ４０５ａ４０を初期化（リセット）する。ライブロック監視タイマ４０５ａ４０が初期化される事で比較器４０５ａ５０は閾値超えを検出しなくなり、ライブロック防止回路有効化ビット格納部４０１ｂ６のリクエストタイプ毎のライブロック防止回路有効化ビットがリセットされ、ライブロック防止回路を無効化する。この処理が終了すると、ステップＳ４３１へ移る。【０１２７】
第三実施形態の一例に係る資源解放待ちフラグ制御処理、及び、第三実施形態の一例に係るライブロック防止回路制御処理によれば、リクエスタ資源ビジーフラグ４０５ａ３０、資源解放待ちフラグ格納部４０１ｂ５、及び、これらを制御するポートＡ資源チェック部４０１ｂ０を含むライブロック防止回路の有効化をライブロック監視タイマの計時時間がライブロック監視閾値を超えるまでの短時間に発生する資源ビジー時に抑止する。そして、ライブロックの危険性がない状態で資源ビジーを検出した場合、ライブロック防止回路の動作を抑止することによって、クロスバ４００内でのデータ転送のスループットの低下を抑制することができる。【０１２８】
以上、本発明の実施例を説明したが、本発明は、これに限られるものではなく、請求の範囲に記載した技術的思想の範囲内で、更に種々の異なる実施例で実施されてもよいものである。また、実施例に記載した効果は、これに限定されるものではない。【０１２９】
また、上記実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記実施例で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【０１３０】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【図１】
2010113291.tif 000003
【図２】
2010113291.tif 000004
【図３】
2010113291.tif 000005
【図４】
2010113291.tif 000006
【図５】
2010113291.tif 000007
【図６】
2010113291.tif 000008
【図７】
2010113291.tif 000009
【図８】
2010113291.tif 000010
【図９】
2010113291.tif 000011
【図１０】
2010113291.tif 000012
【図１１】
2010113291.tif 000013
【図１２】
2010113291.tif 000014
【図１３】
2010113291.tif 000015
【図１４】
2010113291.tif 000016
【図１５】
2010113291.tif 000017
【図１６】
2010113291.tif 000018
【手続補正書】
【提出日】平成23年6月24日(2011.6.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
制御回路及びデータ入出力回路が接続され、前記制御回路及び／又は前記データ入出力回路の間のデータ転送を行うデータ転送回路であって、
前記データ転送を要求するデータリクエストに対応するデータを受信する受信側の前記制御回路及び／又は前記データ入出力回路の受信資源の使用状況を監視する受信資源使用状況監視部と、
前記データリクエスト及び対応するデータの送信側の前記制御回路及び／又は前記データ入出力回路から入力された前記データリクエストを格納するデータリクエスト格納部と、
前記データリクエスト格納部に格納される前記データリクエストを出力するか否かを制御する出力制御部と、
複数の前記データリクエスト格納部から出力された複数のデータリクエストを受信し、前記複数のデータリクエストから一つのデータリクエストを調停によって選択する調停部と、
前記調停部によって選択されたデータリクエストのデータ転送を行うデータ転送部と
を備え、
前記出力制御部は、前記受信資源使用状況監視部によって監視される前記受信資源の使用状況がビジー状態である場合、前記データリクエストの出力を抑止する
ことを特徴とするデータ転送回路。
【請求項２】
前記調停部は、
送信側の前記制御回路又は前記データ入出力回路毎に前記複数のデータリクエストから一つのデータリクエストを調停によって選択する第一の調停部と、
受信側の前記制御回路又は前記データ入出力回路毎に前記複数のデータリクエストから一つのデータリクエストを調停によって選択する第二の調停部と
を含むことを特徴とする請求項１記載のデータ転送回路。
【請求項３】
送信側の前記制御回路及び前記データ入出力回路毎、及び、前記データリクエストのタイプ毎に前記受信資源の使用状況のビジー状態の解消待ち情報を記憶するビジー状態解消待ち情報記憶部と、
送信側の何れかの前記制御回路及び前記データ入出力回路の前記ビジー状態解消待ち情報が前記ビジー状態解消待ち情報記憶部に記憶されている場合、全ての送信側の前記制御回路及び前記データ入出力回路の該当するデータリクエストと同一タイプのデータリクエストに対して前記受信資源の使用状況をビジー状態とするビジー状態解消待ち制御部と
を備えたことを特徴とする請求項２記載のデータ転送回路。
【請求項４】
前記ビジー状態解消待ち制御部は、前記第二の調停部による前記データリクエストの調停の際に前記受信資源使用状況監視部によって前記受信資源のビジー状態が検出された場合に前記ビジー状態解消待ち情報をセットし、前記第二の調停部によって前記データリクエストが選択された場合に前記ビジー状態解消待ち情報をリセットする
ことを特徴とする請求項３記載のデータ転送回路。
【請求項５】
送信側の前記制御回路及び前記データ入出力回路毎、及び、前記データリクエストのタイプ毎に前記受信資源使用状況監視部が監視する前記受信資源の使用状況がビジー状態であるため、前記第二の調停部へのデータリクエストの投入が抑止される際に計時を開始し、前記第二の調停部によって選択された際に計時を終了する計時部と、
前記計時部によって計時される時間が所定閾値を上回ったとき、前記ビジー状態解消待ち制御部の機能を有効化する機能有効化部と
を備えたことを特徴とする請求項４記載のデータ転送回路。
【請求項６】
制御回路及びデータ入出力回路が接続され、前記制御回路及び／又は前記データ入出力回路の間のデータ転送を行うデータ転送回路が行うデータ転送方法であって、
前記データ転送を要求するデータリクエストに対応するデータを受信する受信側の前記制御回路及び／又は前記データ入出力回路の受信資源の使用状況を監視する受信資源使用状況監視ステップと、
前記データリクエスト及び対応するデータの送信側の前記制御回路及び／又は前記データ入出力回路から入力された前記データリクエストをデータリクエスト格納部に格納するデータリクエスト格納ステップと、
前記データリクエスト格納部に格納される前記データリクエストを出力するか否かを制御する出力制御ステップと、
複数の前記データリクエスト格納部から出力された複数のデータリクエストを受信し、前記複数のデータリクエストから一つのデータリクエストを調停によって選択する調停ステップと、
前記調停ステップによって選択されたデータリクエストのデータ転送を行うデータ転送ステップと
を含み、
前記出力制御ステップは、前記受信資源使用状況監視ステップによって監視される前記受信資源の使用状況がビジー状態である場合、前記データリクエストの出力を抑止する
ことを特徴とするデータ転送方法。
【請求項７】
前記調停ステップは、
送信側の前記制御回路又は前記データ入出力回路毎に前記複数のデータリクエストから一つのデータリクエストを調停によって選択する第一の調停ステップと、
受信側の前記制御回路又は前記データ入出力回路毎に前記複数のデータリクエストから一つのデータリクエストを調停によって選択する第二の調停ステップと
を含むことを特徴とする請求項６記載のデータ転送方法。
【請求項８】
送信側の前記制御回路及び前記データ入出力回路毎、及び、前記データリクエストのタイプ毎に前記受信資源の使用状況のビジー状態の解消待ち情報をビジー状態解消待ち情報記憶部に記憶するビジー状態解消待ち情報記憶ステップと、
送信側の何れかの前記制御回路及び前記データ入出力回路の前記ビジー状態解消待ち情報が前記ビジー状態解消待ち情報記憶部に記憶されている場合、全ての送信側の前記制御回路及び前記データ入出力回路の該当するデータリクエストと同一タイプのデータリクエストに対して前記受信資源の使用状況をビジー状態とするビジー状態解消待ち制御ステップと
を含むことを特徴とする請求項７記載のデータ転送方法。
【請求項９】
前記ビジー状態解消待ち制御ステップは、前記第二の調停ステップによる前記データリクエストの調停の際に前記受信資源使用状況監視ステップによって前記受信資源のビジー状態が検出された場合に前記ビジー状態解消待ち情報をセットし、前記第二の調停ステップによって前記データリクエストが選択された場合に前記ビジー状態解消待ち情報をリセットする
ことを特徴とする請求項８記載のデータ転送方法。
【請求項１０】
送信側の前記制御回路及び前記データ入出力回路毎、及び、前記データリクエストのタイプ毎に前記受信資源使用状況監視ステップによって監視される前記受信資源の使用状況がビジー状態であるため、前記第二の調停ステップへのデータリクエストの投入が抑止される際に計時を開始し、前記第二の調停ステップによって選択された際に計時を終了する計時ステップと、
前記計時ステップによって計時される時間が所定閾値を上回ったとき、前記ビジー状態解消待ち制御ステップの機能を有効化する機能有効化ステップと
を含むことを特徴とする請求項９記載のデータ転送方法。
【手続補正書】
【提出日】平成24年5月11日(2012.5.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
制御回路及びデータ入出力回路が接続され、前記制御回路及び／又は前記データ入出力回路の間のデータ転送を行うデータ転送回路であって、
前記データ転送を要求するデータリクエストに対応するデータを受信する受信側の前記制御回路及び／又は前記データ入出力回路の受信資源の使用状況を監視する受信資源使用状況監視部と、
前記データリクエスト及び対応するデータの送信側の前記制御回路及び／又は前記データ入出力回路から入力された前記データリクエストを格納するデータリクエスト格納部と、
前記受信資源使用状況監視部により監視される前記受信資源の使用状況がビジー状態である場合に、前記データリクエスト格納部に格納される前記データリクエストのうち、使用状況がビジー状態である前記受信資源に対応するデータリクエストと同一のリクエストタイプに対応する前記データリクエスト格納部に格納される前記データリクエストの出力を抑止する出力制御部と、
複数の前記データリクエスト格納部から出力された複数のデータリクエストを受信し、送信側の前記制御回路又は前記データ入出力回路毎に前記複数のデータリクエストからデータリクエストを調停によって選択する第一の調停部と、
前記第一の調停部により選択されたデータリクエストから、受信側の前記制御回路又は前記データ入出力回路毎にデータリクエストを調停によって選択するとともに、前記受信資源使用状況監視部により監視される前記受信資源の使用状況がビジー状態である場合に、前記第一の調停部により選択された、ビジー状態である前記受信資源に対応するデータリクエストをキャンセルする第二の調停部と、
前記第二の調停部によって選択されたデータリクエストのデータ転送を行うデータ転送部と
を備えることを特徴とするデータ転送回路。
【請求項２】
送信側の前記制御回路及び前記データ入出力回路毎、及び、前記データリクエストのタイプ毎に前記受信資源の使用状況のビジー状態の解消待ち情報を記憶するビジー状態解消待ち情報記憶部と、
送信側の何れかの前記制御回路及び前記データ入出力回路の前記ビジー状態解の消待ち情報が前記ビジー状態解消待ち情報記憶部に記憶されている場合、全ての送信側の前記制御回路及び前記データ入出力回路の該当するデータリクエストと同一タイプのデータリクエストに対して前記受信資源の使用状況をビジー状態とするビジー状態解消待ち制御部と
を備えたことを特徴とする請求項１記載のデータ転送回路。
【請求項３】
前記ビジー状態解消待ち制御部は、前記第二の調停部による前記データリクエストの調停の際に前記受信資源使用状況監視部によって前記受信資源のビジー状態が検出された場合に前記ビジー状態解の消待ち情報をセットし、前記第二の調停部によって前記データリクエストが選択された場合に前記ビジー状態解の消待ち情報をリセットする
ことを特徴とする請求項２記載のデータ転送回路。
【請求項４】
送信側の前記制御回路及び前記データ入出力回路毎、及び、前記データリクエストのタイプ毎に前記受信資源使用状況監視部が監視する前記受信資源の使用状況がビジー状態であるため、前記第二の調停部へのデータリクエストの投入が抑止される際に計時を開始し、前記第二の調停部によって選択された際に計時を終了する計時部と、
前記計時部によって計時される時間が所定閾値を上回ったとき、前記ビジー状態解消待ち制御部の機能を有効化する機能有効化部と
を備えたことを特徴とする請求項３記載のデータ転送回路。
【請求項５】
制御回路及びデータ入出力回路が接続され、前記制御回路及び／又は前記データ入出力回路の間のデータ転送を行うデータ転送回路が行うデータ転送方法であって、
前記データ転送を要求するデータリクエストに対応するデータを受信する受信側の前記制御回路及び／又は前記データ入出力回路の受信資源の使用状況を監視する受信資源使用状況監視ステップと、
前記データリクエスト及び対応するデータの送信側の前記制御回路及び／又は前記データ入出力回路から入力された前記データリクエストをデータリクエスト格納部に格納するデータリクエスト格納ステップと、
前記受信資源使用状況監視ステップにより監視される前記受信資源の使用状況がビジー状態である場合に、前記データリクエスト格納部に格納される前記データリクエストのうち、使用状況がビジー状態である前記受信資源に対応するデータリクエストと同一のリクエストタイプに対応する前記データリクエスト格納部に格納される前記データリクエストの出力を抑止する出力制御ステップと、
複数の前記データリクエスト格納部から出力された複数のデータリクエストを受信し、送信側の前記制御回路又は前記データ入出力回路毎に前記複数のデータリクエストからデータリクエストを調停によって選択する第一の調停ステップと、
前記第一の調停ステップにより選択されたデータリクエストから、受信側の前記制御回路又は前記データ入出力回路毎にデータリクエストを調停によって選択するとともに、前記受信資源使用状況監視ステップにより監視される前記受信資源の使用状況がビジー状態である場合に、前記第一の調停ステップにより選択された、ビジー状態である前記受信資源に対応するデータリクエストをキャンセルする第二の調停ステップと、
前記第二の調停ステップによって選択されたデータリクエストのデータ転送を行うデータ転送ステップと
を含むことを特徴とするデータ転送方法。
【請求項６】
送信側の前記制御回路及び前記データ入出力回路毎、及び、前記データリクエストのタイプ毎に前記受信資源の使用状況のビジー状態の解消待ち情報をビジー状態解消待ち情報記憶部に記憶するビジー状態解消待ち情報記憶ステップと、
送信側の何れかの前記制御回路及び前記データ入出力回路の前記ビジー状態の解消待ち情報が前記ビジー状態解消待ち情報記憶部に記憶されている場合、全ての送信側の前記制御回路及び前記データ入出力回路の該当するデータリクエストと同一タイプのデータリクエストに対して前記受信資源の使用状況をビジー状態とするビジー状態解消待ち制御ステップと
を含むことを特徴とする請求項５記載のデータ転送方法。
【請求項７】
前記ビジー状態解消待ち制御ステップは、前記第二の調停ステップによる前記データリクエストの調停の際に前記受信資源使用状況監視ステップによって前記受信資源のビジー状態が検出された場合に前記ビジー状態の解消待ち情報をセットし、前記第二の調停ステップによって前記データリクエストが選択された場合に前記ビジー状態の解消待ち情報をリセットする
ことを特徴とする請求項６記載のデータ転送方法。
【請求項８】
送信側の前記制御回路及び前記データ入出力回路毎、及び、前記データリクエストのタイプ毎に前記受信資源使用状況監視ステップによって監視される前記受信資源の使用状況がビジー状態であるため、前記第二の調停ステップへのデータリクエストの投入が抑止される際に計時を開始し、前記第二の調停ステップによって選択された際に計時を終了する計時ステップと、
前記計時ステップによって計時される時間が所定閾値を上回ったとき、前記ビジー状態解消待ち制御ステップの機能を有効化する機能有効化ステップと
を含むことを特徴とする請求項７記載のデータ転送方法。
【国際調査報告】
2010113291.tif 000019
2010113291.tif 000020
2010113291.tif 000021
2010113291.tif 000022