(57)【特許請求の範囲】
【請求項１】
データ転送先に対するリクエストを送信するプロセッサと、
データ転送の対象であるデータを格納するバッファを有する制御部と、
前記プロセッサからの前記リクエストに対し、前記バッファにデータを格納することにより、前記データ転送先へ非同期転送を行うための第１の転送路と、
前記プロセッサからの前記リクエストに対し、前記制御部を介さず前記データ転送先へ同期転送を行うための第２の転送路と、
前記制御部と前記第１の転送路に接続され、前記データ転送における排他制御を行うための情報が格納されるリザーブレジスタと、
前記プロセッサに接続され、前記制御部を介して前記リザーブレジスタに格納された前記情報を取得することにより前記第１の転送路を選択し、前記制御部を介さず前記リザーブレジスタに格納された前記情報を取得することにより前記第２の転送路を選択するセレクタを有することを特徴とする情報処理装置。
【請求項２】
前記データ転送先は、前記プロセッサとは異なる他のプロセッサであることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記リザーブレジスタは、第１及び第２のリザーブレジスタとから構成され、
前記セレクタは、前記制御部を介して前記第１のリザーブレジスタに格納された前記情報を取得することにより前記第１の転送路を選択し、前記制御部を介さず前記第２のリザーブレジスタに格納された前記情報を取得することにより前記第２の転送路を選択することを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記第１のリザーブレジスタは、前記第１の転送路を介して、前記制御部と前記セレクタに接続され、
前記第２のリザーブレジスタは、前記第２の転送路を介して、前記セレクタに接続されることを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記セレクタは、前記リクエストの優先順位に基づいて前記第１の転送路又は前記第２の転送路を選択することを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記情報処理装置はさらに、
前記プロセッサが前記リザーブレジスタに格納された前記情報を取得した場合において、
前記セレクタが、前記データ転送の終了後に新たにリザーブレジスタに格納された情報を取得し直すことなく、連続して次のデータ転送を行うことを特徴とする請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記情報処理装置は、前記セレクタに接続された複数のプロセッサを有し、
前記セレクタは、前記リクエストに対して前記リザーブレジスタに格納された前記情報を取得した場合には、前記情報を取得したリクエスト以外のリクエストに対しては前記情報を取得しない排他制御を行うことを特徴とする請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
前記リクエストは前記データ転送先への経路情報を含み、
前記経路情報が前記第１の転送路を経由することを示している場合には、前記セレクタが前記第１の転送路を選択し、前記経路情報が前記第２の転送路を経由することを示している場合には、前記セレクタが前記第２の転送路を選択することを特徴とする請求項１〜７のいずれか１項に記載の情報処理装置。
【請求項９】
データ転送先に対するリクエストを送信するプロセッサからのデータを格納するバッファを有する制御部と、
前記プロセッサからの前記リクエストに対し、前記バッファにデータを格納することにより、前記データ転送先へ非同期転送を行うための第１の転送路と、
前記プロセッサからの前記リクエストに対し、前記制御部を介さず前記データ転送先へ同期転送を行うための第２の転送路と、
前記制御部と前記第１の転送路に接続され、前記データ転送における排他制御を行うための情報が格納されるリザーブレジスタと、
前記プロセッサに接続され、前記制御部を介して前記リザーブレジスタに格納された前記情報を取得することにより前記第１の転送路を選択し、前記制御部を介さず前記リザーブレジスタに格納された前記情報を取得することにより前記第２の転送路を選択するセレクタを有することを特徴とするデータ転送装置。
【請求項１０】
データ転送の対象であるデータを格納するバッファを有する制御部と、データ転送先へ非同期転送を行うための第１の転送路と、前記データ転送先へ同期転送を行うための第２の転送路と、前記データ転送における排他制御を行うための情報を格納するリザーブレジスタと、前記第１又は第２の転送路を選択するセレクタを有する情報処理装置のデータ転送方法において、
前記データ転送先に対するリクエストをプロセッサから送信するステップと、
前記セレクタが、前記プロセッサが前記制御部を介して前記リザーブレジスタに格納された前記情報を取得することにより前記第１の転送路を選択し、又は、前記プロセッサが前記制御部を介さず前記リザーブレジスタに格納された前記情報を取得することにより前記第２の転送路を選択するステップを有することを特徴とするデータ転送方法。
【請求項１１】
前記データ転送先は、前記プロセッサとは異なる他のプロセッサであることを特徴とする請求項１０記載のデータ転送方法。
【請求項１２】
前記リザーブレジスタは、第１及び第２のリザーブレジスタとから構成され、
前記第１又は第２の転送路を選択するステップは、前記セレクタが前記制御部を介して前記第１のリザーブレジスタに格納された前記情報を取得することにより前記第１の転送路を選択し、前記制御部を介さず前記第２のリザーブレジスタに格納された前記情報を取得することにより前記第２の転送路を選択することを特徴とする請求項１０又は１１記載のデータ転送方法。
【請求項１３】
前記第１のリザーブレジスタは、前記第１の転送路を介して、前記制御部と前記セレクタに接続され、
前記第２のリザーブレジスタは、前記第２の転送路を介して、前記セレクタに接続されることを特徴とする請求項１２記載のデータ転送方法。
【請求項１４】
前記第１又は第２の転送路を選択するステップは、前記セレクタが前記リクエストの優先順位に基づいて前記第１の転送路又は前記第２の転送路を選択することを特徴とする請求項１０〜１３のいずれか１項に記載のデータ転送方法。
【請求項１５】
前記データ転送方法はさらに、
前記プロセッサが前記リザーブレジスタに格納された前記情報を取得した場合において、
前記セレクタが、前記データ転送の終了後に新たにリザーブレジスタに格納された情報を取得し直すことなく、連続して次のデータ転送を行うステップを有することを特徴とする請求項１０〜１４のいずれか１項に記載のデータ転送方法。
【請求項１６】
前記情報処理装置は、前記セレクタに接続された複数のプロセッサを有し、
前記データ転送方法はさらに、
前記セレクタが、前記リクエストに対して前記リザーブレジスタに格納された前記情報を取得した場合には、前記情報を取得したリクエスト以外のリクエストに対しては前記情報を取得しない排他制御を行うステップを有することを特徴とする請求項１０〜１５のいずれか１項に記載のデータ転送方法。
【請求項１７】
前記リクエストは前記データ転送先への経路情報を含み、
前記経路情報が前記第１の転送路を経由することを示している場合には、前記セレクタが前記第１の転送路を選択し、前記経路情報が前記第２の転送路を経由することを示している場合には、前記セレクタが前記第２の転送路を選択することを特徴とする請求項１０〜１６のいずれか１項に記載のデータ転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は転送制御方法及び情報処理装置に係り、特に複数のプロセッサに対するデータやコマンド等の情報転送を制御する転送制御方法及びそのような転送制御方法を用いる情報処理装置に関する。
複数のプロセッサを備えた情報処理装置では、扱うデータの量が膨大である。このため、プロセッサ間のデータ転送を高速に行える転送制御方法が望まれている。
【０００２】
【従来の技術】
図１は、従来の転送制御方法の一例を説明するためのブロック図である。同図に示す情報処理装置は、大略複数のプロセッサ１−１〜１−ｎと、制御ブロック２と、リザーブ３とからなる。制御ブロック２は、排他制御用に設けられた、バッファ機能を有する一種のプロセッサである。リザーブ３は、プロセッサ（転送ユニット）間のデータ又はコマンドの転送ステータス（ｂｕｓｙ  ｏｒ  ｆｒｅｅ）を示すレジスタであり、転送の排他制御を行う際のステータスとして用いられる。説明の便宜上、プロセッサ１−１がリクエスト元であり、プロセッサ１−２〜１−ｎがリクエスト先であるものとする。
【０００３】
リクエスト元のプロセッサ１−１がリクエストを発生すると、プロセッサ１−１からのデータやコマンドは、一旦制御ブロック２に供給されて格納される。制御ブロック２は、格納されたデータやコマンドに基づいて、制御ブロック２とリクエスト先の例えばプロセッサ１−２との間のリザーブ３を取得して、リクエスト先のプロセッサ１−２にデータやコマンドを転送する。
【０００４】
従って、リクエスト元のプロセッサ１−１は、制御ブロック２にデータやコマンドを供給した後は、他の処理を行うことができる。
【０００５】
【発明が解決しようとする課題】
しかし、従来の転送制御方法では、リクエスト元のプロセッサ１−１からリクエスト先のプロセッサ１−２へのデータやコマンドの転送が非同期に行われ、同期転送が行えないという問題があった。
又、リクエスト元のプロセッサ１−１が連続してリクエストを発生するような場合には、リクエストが発生する都度リザーブ３を取得し直す必要があり、転送効率が悪いという問題もあった。
【０００６】
そこで、本発明は、データやコマンドの同期転送及び非同期転送を可能とすると共に、転送効率を向上することのできる転送制御方法及び情報処理装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記の課題は、リクエスト元からのリクエストに対し、制御ブロックを介してリクエスト先へ非同期転送を行うための第１のルート又は該制御ブロックを介さずリクエスト先へ同期転送を行うための第２のルートを選択するステップを含む転送制御方法によって達成される。
【０００８】
前記ステップは、前記制御ブロックを介してリザーブを取得することで前記第１のルートを選択し、直接該リザーブを取得することで前記第２のルートを選択するようにしても良い。又、前記ステップは、前記制御ブロックを介して第１のリザーブを取得することで前記第１のルートを選択し、直接該第１のリザーブとは異なる第２のリザーブを取得することで前記第２のルートを選択するようにしても良い。
【０００９】
前記ステップは、前記リクエスト元の優先順位及び／又はリクエストの優先順位に基づいて前記第１のルート又は前記第２のルートを選択するようにしても良い。
転送制御方法は、１度取得したリザーブを保持して新たにリザーブを取得し直すことなく連続して転送を行うステップを更に含んでも良い。
【００１０】
又、転送制御方法は、前記リザーブの取得の排他制御を行うステップを更に含んでも良い。
上記の課題は、少なくともバッファ機能を有する制御ブロックと、リクエスト元からのリクエストに対し、該制御ブロックを介してリクエスト先へ非同期転送を行うための第１のルート又は該制御ブロックを介さずリクエスト先へ同期転送を行うための第２のルートを選択するセレクタとを備えた情報処理装置によっても達成される。
【００１１】
情報処理装置は、リザーブを更に備え、前記セレクタは、前記制御ブロックを介して該リザーブを取得することで前記第１のルートを選択し、直接該リザーブを取得することで前記第２のルートを選択する構成としても良い。又、情報処理装置は、第１のリザーブと、該第１のリザーブとは異なる第２のリザーブとを更に備え、前記セレクタは、前記制御ブロックを介して該第１のリザーブを取得することで前記第１のルートを選択し、直接該第２のリザーブを取得することで前記第２のルートを選択する構成としても良い。
【００１２】
前記セレクタは、前記リクエスト元の優先順位及び／又はリクエストの優先順位に基づいて前記第１のルート又は前記第２のルートを選択するようにしても良い。
情報処理装置は、１度取得したリザーブを保持して新たにリザーブを取得し直すことなく連続して転送を行う手段を更に備える構成としても良い。
【００１３】
又、情報処理装置は、前記リザーブの取得の排他制御を行う手段を更に備える構成としても良い。
従って、本発明によれば、データやコマンドの同期転送及び非同期転送を可能とすると共に、転送効率を向上することのできる転送制御方法及び情報処理装置を実現することができる。
【００１４】
【発明の実施の形態】
以下、図２以降と共に、本発明になる転送制御方法及び情報処理装置の実施例を説明する。
【００１５】
【実施例】
図２は、本発明になる情報処理装置の第１実施例を示すブロック図である。情報処理装置の第１実施例では、本発明になる転送制御方法の第１実施例を採用する。
図２に示す情報処理装置は、大略複数のプロセッサ１１−１〜１１−ｎと、制御ブロック１２と、リザーブ１３と、セレクタ１５とからなる。制御ブロック１２は、排他制御用に設けられた、バッファ機能を有する一種のプロセッサである。説明の便宜上、プロセッサ１１−１がリクエスト元であり、プロセッサ１１−２〜１１−ｎがリクエスト先であるものとする。
【００１６】
リクエスト元のプロセッサ１１−１がリクエストを発生すると、プロセッサ１１−１からのデータやコマンドは、一旦セレクタ１５に供給される。セレクタ１５は、供給されるデータやコマンドに含まれるルート情報に基づいて、供給されたデータやコマンドを制御ブロック１２又はリザーブ１３に供給する。ルート情報は、リクエスト元のプロセッサ１１−１からのデータやコマンドが、制御ブロック１２を介してリザーブ１３に供給される非同期転送のためのルートであるか、リザーブ１３に直接供給される同期転送のためのルートであるかを示す。
【００１７】
従って、ルート情報が非同期転送のためのルートを示す場合、プロセッサ１１−１からのデータやコマンドは、一旦制御ブロック１２に供給されて格納される。制御ブロック１２は、格納されたデータやコマンドに基づいて、制御ブロック１２とリクエスト先の例えばプロセッサ１１−２との間のリザーブ１３を取得して、リクエスト先のプロセッサ１１−２にデータやコマンドを転送する。このため、リクエスト元のプロセッサ１１−１は、制御ブロック１２にデータやコマンドを供給した後は、他の処理を行うことができる。
【００１８】
他方、ルート情報が同期転送のためのルートを示す場合、データやコマンドは直接リザーブ１３に供給される。つまり、セレクタ１５とリクエスト先の例えばプロセッサ１１−２との間のリザーブ１３を取得して、リクエスト先のプロセッサ１１−２にデータやコマンドを転送する。
このようにして、本実施例によれば、同期転送と非同期転送とを選択的に行うことができる。
【００１９】
尚、１度取得したリザーブ１３は保持して、新たにリザーブ１３を取得することなく連続して転送を行うようにしてもよい。つまり、同期転送のためのルートを選択してデータやコマンドを直接リザーブ１３に供給した後は、リザーブ１３を取得し続けて、新たにリザーブ１３を取得し直すことなく、引き続きリクエスト元のプロセッサ１１- １からの転送を可能とする構成としても良い。又、リクエスト元がリクエスト先にリクエストを送出した後、そのリクエストに対するリクエスト先の応答等をすぐに受け取りたい場合にも、リザーブを保持して、あたかもリクエスト先がリザーブを取得したようにして、リクエスト先からの転送を行う構成としても良い。
【００２０】
図３は、本発明になる情報処理装置の第２実施例を示すブロック図である。情報処理装置の第２実施例では、本発明になる転送制御方法の第２実施例を採用する。同図中、図２と同一部分には同一符号を付し、その説明は省略する。
本実施例では、図３に示すようにルート毎に１つのリザーブが設けられている。具体的には、非同期転送のためのルートに対してはリザーブ１３−１が設けられ、同期転送のためのルートに対してはリザーブ１３−２が設けられている。
【００２１】
リザーブ１３−１，１３−２の状態を状態コード（Ｘ，Ｙ）で表し、「１」を使用状態、「０」を非使用状態とすると、非同期転送のためのルートを選択した場合は、リザーブ１３−１，１３−２の状態に拘わらず、リザーブ１３−１の取得を可能とする。他方、同期転送のためのルートを選択した場合は、リザーブ１３−１，１３−２の状態コードが（０，０）の時だけ、リザーブ１３−２の取得を可能とする。これにより、同期転送のためのルートが既に選択されており、リザーブ１３−１，１３−２の状態コードが（０，１）となっていても、非同期転送のリクエストが発生すれば、仮にリザーブ１３−１を取得してリザーブ１３−１，１３−２の状態をコードを（１，１）とすることができる。
【００２２】
又、非同期転送のためのルートで転送されるデータやコマンドの中に、同期転送のためのルートで転送されるデータやコマンドより優先して転送するか否かを示す情報を含めることにより、制御ブロック１２は、リザーブ１３−１，１３−２からの状態コードが（１，１）であると、状態コードを（０，１）に変更するか（１，１）のままで保持するかを指示する命令を選択して送出できる。制御ブロック１２は、非同期転送のためのルートのリクエストを優先させる場合、リザーブ１３−１，１３−２の状態コードを（１，１）のまま保持するように指示する命令を送出する。
【００２３】
同期転送のためのルートのリクエストは、リザーブ１３−１，１３−２の状態コードが（０，０）の場合にのみリザーブ１３−２を取得できる。そこで、同期転送のためのルートのリクエストの終了後は、仮にリザーブ１３−１を取得していた非同期転送のためのルートのリクエストの方を優先して、データやコマンドの転送を行うことができる。
【００２４】
他方、非同期転送のためのルートのリクエストを優先させない場合には、制御ブロック１２はリザーブ１３−１，１３−２の状態コードを（０，１）に変更するように指示する命令を送出する。その後は、非同期転送のためのルートのリクエストでも、同期転送のためのルートのリクエストでも受け付けることができる。
【００２５】
このように、ルートに応じてリザーブを分けることで、リクエストの状況を詳細に把握することが可能となり、エラー時の原因解析等を容易に行うことができる。
図４は、本実施例において、非同期転送のためのルートを選択した場合の動作を説明するフローチャートである。同図中、ステップＳ１では、リクエスト元のプロセッサ１１−１からセレクタ１５を介して制御ブロック１２にデータやコマンドを供給する。ステップＳ２では、制御ブロック１２からリザーブ１３−１を取得しに行く。ステップＳ３では、リザーブ１３−１，１３−２の状態コードが（０，１）であるか、（０，０）であるか、或いは（１，０）又は（１，１）であるかを判定する。
【００２６】
ステップＳ３での判定の結果、リザーブ１３−１，１３−２の状態コードが（０，１）であると、ステップＳ４では、状態コードを（１，１）にセットして、制御ブロック１２に状態コード（１，１）を返す。又、ステップＳ５では、制御ブロック１２がリザーブ１３−１をオフにする命令を送出し、状態コードを再び（０，１）にセットする。ステップＳ５の後、処理はステップＳ２へ戻る。
【００２７】
ステップＳ３での判定の結果、リザーブ１３−１，１３−２の状態コードが（０，０）であると、ステップＳ６では、状態コードを（１，０）にセットして、制御ブロック１２に状態コード（１，０）を返す。又、ステップＳ７では、制御ブロック１２からデータやコマンドをリザーブ１３−１へ転送し、処理は終了する。
【００２８】
他方、ステップＳ３での判定の結果、リザーブ１３−１，１３−２の状態コードが（１，０）又は（１，１）であると、ステップＳ８では、制御ブロック１２にエラー状態コードを返し、処理は終了する。
図５は、本実施例において、同期転送のためのルートによるリクエスト終了後に非同期転送のためのルートを優先した場合の動作を説明するフローチャートである。同図中、図４と同一ステップには同一符号を付し、その説明は省略する。
【００２９】
この場合、ステップＳ３での判定の結果、リザーブ１３−１，１３−２の状態コードが（０，１）であると、ステップＳ４では、状態コードを（１，１）にセットして、制御ブロック１２に状態コード（１，１）を返す。又、ステップＳ１１では、制御ブロック１２はリザーブ１３−１をオフとすることなく、状態コード（１，１）を保持する。更に、ステップＳ１２では、制御ブロック１２は状態コードが（１，１）になるまで定期的に再実行を繰り返し、ステップＳ１２の後に処理はステップＳ７へ進む。ステップＳ７では、制御ブロック１２からデータやコマンドをリザーブ１３−１へ転送し、処理は終了する。
【００３０】
図６は、本実施例において同期転送のためのルートを選択した場合の動作を説明するフローチャートである。同図中、ステップＳ２１では、リクエスト元のプロセッサ１１−１がリザーブ１３−２を取得しに行く。ステップＳ２２では、リザーブ１３−１，１３−２の状態コードが（０，１）又は（１，０）又は（１，１）であるか、或いは（０，０）であるかを判定する。
【００３１】
ステップＳ３での判定の結果、リザーブ１３−１，１３−２の状態コードが（０，１）又は（１，０）又は（１，１）であると、ステップＳ２３では、リザーブ１３−１，１３−２の状態コードはそのままにして、リクエスト元のプロセッサ１１−１にリザーブ１３−２が取得できなかった旨を報告し、処理はステップＳ２１へ戻る。他方、ステップＳ３での判定の結果、リザーブ１３−１，１３−２の状態コードが（０，０）であると、ステップＳ２４では、リザーブ１３−１，１３−２の状態コードを（０，１）にセットして、リクエスト元のプロセッサ１１−１にリザーブ１３−２が取得できた旨を報告すると共に、データやコマンドをプロセッサ１１−１からリザーブ１３−２へ転送し、処理は終了する。
【００３２】
図７は、本発明になる情報処理装置の第３実施例を示すブロック図である。情報処理装置の第３実施例では、本発明になる転送制御方法の第３実施例を採用する。同図中、図３と同一部分には同一符号を付し、その説明は省略する。
本実施例では、図７に示すように、リザーブ１３−１，１３−２とプロセッサ１１−２〜１１−ｎとの間に、セレクタ１６が設けられている。セレクタ１６は、非同期転送のためのルートを介して得られるデータやコマンドと、同期転送のためのルートを介して得られるデータやコマンドとを、夫々リクエスト先のプロセッサ１１−２〜１１−ｎに供給するルートを選択する。このため、セレクタ１６からリクエスト先のプロセッサ１１−２〜１１−ｎへのルートは、各プロセッサに対して１つ設ければ良く、プロセッサ１１−２〜１１−ｎに対する接続を簡略化することができる。
【００３３】
図８は、本実施例において、非同期転送のためのルートを選択した場合の動作及び同期転送のためのルートによるリクエスト終了後に非同期転送のためのルートを優先した場合の動作を説明するフローチャートである。同図中、図４及び図５と同一ステップには同一符号を付し、その説明は省略する。
図８において、ステップＳ４の後、ステップＳ３１では、制御ブロック１２がリザーブ１３−１をオンのまま保持するか否かを判定する。ステップＳ３１の判定結果がＮＯであると、ステップＳ５では、制御ブロック１２がリザーブ１３−１をオフにする命令を送出し、状態コードを再び（０，１）にセットする。ステップＳ５の後、処理はステップＳ２へ戻る。他方、ステップＳ３１の判定結果がＹＥＳであると、ステップＳ１２では、制御ブロック１２は状態コードが（１，１）になるまで定期的に再実行を繰り返し、ステップＳ１２の後に処理はステップＳ７へ進む。ステップＳ７では、制御ブロック１２からデータやコマンドをリザーブ１３−１へ転送し、処理は終了する。
【００３４】
本実施例において同期転送のためのルートを選択した場合の動作は、図６と共に説明した動作と同じであるため、その説明は省略する。
図９は、本発明になる情報処理装置の第４実施例を示すブロック図である。情報処理装置の第４実施例では、本発明になる転送制御方法の第４実施例を採用する。同図中、図７と同一部分には同一符号を付し、その説明は省略する。
【００３５】
本実施例では、図９に示すように、リクエスト元のプロセッサが複数設けられている。尚、本実施例では、２つのリクエスト元のプロセッサ１１−１，１１−ｎ＋１が設けられているが、リクエスト元のプロセッサの数は３以上であっても良いことは、言うまでもない。又、プロセッサ１１−１は、非同期転送のためのルートに対して固定的に設けられており、プロセッサ１１−ｎ＋１は、同期転送のためのルートに対して固定的に設けられている。
【００３６】
このように、リクエスト元の各プロセッサに対して１つのリザーブを固定的に設けることで、セレクタ１５を設けることなく、非同期転送及び同期転送を選択的に行うことができる。
図１０は、本発明になる情報処理装置の第５実施例を示すブロック図である。情報処理装置の第５実施例では、本発明になる転送制御方法の第５実施例を採用する。同図中、図７及び図９と同一部分には同一符号を付し、その説明は省略する。
【００３７】
本実施例では、図１０に示すように、２つのリクエスト元のプロセッサ１１−１，１１−ｎ＋１が設けられているが、リクエスト元のプロセッサの数は３以上であっても良いことは、言うまでもない。又、リクエスト元のプロセッサ１１−１，１１−ｎ＋１と、非同期転送のためのルート及び同期転送のためのルートとの間には、セレクタ１５が設けられている。従って、セレクタ１５は、リクエスト元のプロセッサ１１−１，１１−ｎ＋１からのリクエストに応じて、非同期転送のためのルートと、同期転送のためのルートとを選択できる。
【００３８】
本実施例では、リクエスト元のプロセッサに応じて、絶対的な優先順位を設定することもできる。例えば、プロセッサ１１−１の優先順位をプロセッサ１１−ｎの優先順位より高く設定しておくと、プロセッサ１１−１からのリクエストと、プロセッサ１１−ｎ＋１からのリクエストとが同じルートを指定している場合、セレクタ１５は、リクエストが同時に入力されても、優先順位の高い方のプロセッサ１１−１からのリクエストを受け付ける。これにより、優先順位の高いプロセッサからのリクエストを優先順位の低いプロセッサからのリクエストより優先して早く処理することができる。
【００３９】
他方、セレクタ１５は、リクエスト元のプロセッサ１１−１，１１−ｎ＋１に応じて、非同期転送のためのルート又は同期転送のためのルートを固定的に選択する構成としても良い。
又、リクエスト元のプロセッサに応じて、絶対的な優先順位を設定しないようにすることもできる。この場合、リザーブ１３−１，１３−２は、各リザーブ１３−１，１３−２を最後に取得したリクエスト元のプロセッサの履歴を保持するように構成される。これにより、同じルートを指定するリクエスト元のプロセッサ１１−１，１１−ｎ＋１からのリクエストが同時に発生しても、上記履歴に基づいて前回リザーブ１３−１，１３−２を取得しなかった方のプロセッサからのリクエストを優先的に処理することができる。この結果、複数のリクエスト元のプロセッサの間で、リザーブの取得頻度の偏りを防止することが可能となる。
【００４０】
このように、リクエスト元の各プロセッサに対して共通のセレクタ１５を設けることで、複数のリクエスト元のプロセッサからのリクエストに応じて、非同期転送及び同期転送を固定的に、或いは、選択的に行うことができる。
図１１は、本発明になる情報処理装置の第６実施例を示すブロック図である。情報処理装置の第６実施例では、本発明になる転送制御方法の第６実施例を採用する。同図中、図１０と同一部分には同一符号を付し、その説明は省略する。尚、上記図１０等では、説明の便宜上、データ及び制御信号用のバスを１本の信号線として図示したが、図１１及び後述する図１２〜図１５では、データ用のバスは太い実線で示し、制御信号用のバスは破線で示す。又、図１１において、ＲＳＶ１は制御ブロック１２を介する非同期転送のためのルートを用いる場合のリザーブ、ＲＳＶ２は制御ブロックを介さない同期転送のためのルートを用いる場合のリザーブを示す。
【００４１】
本実施例では、図１１に示すように、リクエスト元のプロセッサ１１−１は、ＣＰＵで構成され、リクエスト先のプロセッサ１１−２〜１１−ｎは、排他用ビットが予め設けられた、夫々リザーブ１１３−２〜１１３−ｎを備えた汎用のプロセッサで構成される。制御ブロック１２は、バッファ１２１と、ＲＳＶ１を含む複数のリザーブ１３とからなる汎用のプロセッサで構成される。本実施例では、複数のリザーブ１３は、マイクロプログラムによる制御により実現される。セレクタ１５ｄ，１６ｄは、データバスに対して設けられている。他方、セレクタ１５ｃ，１６ｃ−１，１６ｃ−２は、制御信号バスに対して設けられている。
【００４２】
セレクタ１５ｄは、リクエスト元のプロセッサ１１−１からのデータやコマンドを、制御ブロック２を介する非同期転送のためのルートに供給するか、制御ブロック２を介さない同期転送のためのルートに供給するかをコマンド内のオペレーションコードに基づいて選択する。
図１２は、コマンド及びデータのフォーマットを示す図である。プロセッサ１１−１からのデータやコマンドは、例えば図１２に示すワードＷｏｒｄ０〜Ｗｏｒｄ９からなるパケット単位で転送される。ワードＷｏｒｄ０は、コマンドを構成するオペレーションコードＯＰ、リクエスト先のプロセッサを示すプロセッサ識別情報ＣＨＩＤ、リクエスト元のプロセッサを示すプロセッサ識別情報ＣＰＵＩＤ等を含む。オペレーションコードＯＰは、非同期転送を指定する場合と同期転送を指定する場合とで異なる値を有する。ワードＷｏｒｄ１は、リザーブドフィールドからなる。ワードＷｏｒｄ２〜Ｗｏｒｄ９は、夫々データＤＡＴＡ０〜ＤＡＴＡ７からなる。
【００４３】
セレクタ１５ｃは、リクエスト元のプロセッサ１１−１が制御ブロック１２内のリザーブ１３内の情報を知りたい場合に、複数のリザーブ１３のうち知りたいリザーブ１３内の情報をだけを選択する。セレクタ１６ｃ−１は、リクエスト元のプロセッサ１１−１がリクエスト先のプロセッサ１１−２〜１１−ｎのリザーブ１１３−２〜１１３−ｎ内の情報を知りたい場合に、複数のリザーブ１１３−２〜１１３−ｎのうち知りたいプロセッサのリザーブ内の情報だけを選択する。セレクタ１６ｃ−２は、制御ブロック１２がリクエスト先のプロセッサ１１−２〜１１−ｎのリザーブ１１３−２〜１１３−ｎ内の情報を知りたい場合に、複数のリザーブ１１３−２〜１１３−ｎのうち知りたいプロセッサのリザーブ内の情報だけを選択する。又、セレクタ１６ｄは、リクエスト元のプロセッサ１１−１又は制御ブロック１２から送られてくるデータやコマンドをリクエスト先のプロセッサに送るように、非同期転送のためのルート又は同期転送のためのルートを選択する。
【００４４】
複数のリザーブ１３をマイクロプログラムによる制御により実現し、セレクタ１５ｄ，１５ｃ，１６ｃ−１，１６ｃ−２，１６ｄを汎用のセレクタにより実現することで、情報処理装置のコストを抑えることができる。
図１３は、本発明になる情報処理装置の第７実施例を示すブロック図である。情報処理装置の第７実施例では、本発明になる転送制御方法の第７実施例を採用する。同図中、図１１と同一部分には同一符号を付し、その説明は省略する。
【００４５】
制御ブロック１２は、バッファ１２１と、複数のリザーブ１３と、セレクタ１５ｄ，１５ｃ，１６ｃ−１，１６ｃ−２とからなるプロセッサで構成される。複数のリザーブ１３と、セレクタ１５ｄ，１５ｃ，１６ｃ−１，１６ｃ−２とをマイクロプログラムによる制御により実現した場合には、制御ブロック１２は汎用のプロセッサで実現できるので、制御ブロック１２のコストを抑えることができる。又、複数のリザーブ１３と、セレクタ１５ｄ，１５ｃ，１６ｃ−１，１６ｃ−２とをハードウェアで実現した場合には、制御ブロック１２は専用のプロセッサで実現されるので、処理を高速に行うことができる。
【００４６】
図１４は、本発明になる情報処理装置の第８実施例を示すブロック図である。情報処理装置の第８実施例では、本発明になる転送制御方法の第８実施例を採用する。同図中、図１１と同一部分には同一符号を付し、その説明は省略する。
本実施例では、図１４に示すように、リクエスト元のプロセッサ１１−１は、ＣＰＵで構成され、リクエスト先のプロセッサ１１−２〜１１−ｎは、排他用ビットが予め設けられていない汎用のプロセッサで構成される。制御ブロック１２は、バッファ１２１と、ＲＳＶ１含む複数のリザーブ１３−１と、ＲＳＶ２を含む複数のリザーブ１３−２とからなる汎用のプロセッサで構成される。本実施例では、複数のリザーブ１３−１，１３−２は、マイクロプログラムによる制御により実現される。セレクタ１５ｄ，１６ｄは、データバスに対して設けられている。他方、セレクタ１５ｃ−１，１５ｃ−２は、制御信号バスに対して設けられている。
【００４７】
セレクタ１５ｄは、リクエスト元のプロセッサ１１−１からのデータやコマンドを、制御ブロック２を介する非同期転送のためのルートに供給するか、制御ブロック２を介さない同期転送のためのルートに供給するかをコマンド内のオペレーションコードに基づいて選択する。セレクタ１５ｃ−１は、リクエスト元のプロセッサ１１−１が制御ブロック１２内のリザーブ１３−１内の情報を知りたい場合に、複数のリザーブ１３−１のうち知りたいリザーブ１３−１内の情報をだけを選択する。セレクタ１５ｃ−２は、リクエスト元のプロセッサ１１−１が制御ブロック１２内のリザーブ１３−２内の情報を知りたい場合に、複数のリザーブ１３−２のうち知りたいリザーブ１３−２内の情報をだけを選択する。セレクタ１６ｄは、リクエスト元のプロセッサ１１−１又は制御ブロック１２から送られてくるデータやコマンドをリクエスト先のプロセッサに送るように、非同期転送のためのルート又は同期転送のためのルートを選択する。
【００４８】
このように、制御ブロック１２内でリザーブ１３−１，１３−２の管理を行う場合には、制御ブロック１２により排他制御を高速に行うことができる。又、セレクタ１５ｄ，１５ｃ−１，１５ｃ−２，１６ｄを汎用のセレクタで実現すれば、情報処理装置のコストを抑えることができ、セレクタ１５ｄ，１５ｃ−１，１５ｃ−２，１６ｄを専用のハードウェアで実現すれば、情報処理装置の処理速度を向上することができる。
【００４９】
図１５は、本発明になる情報処理装置の第９実施例を示すブロック図である。情報処理装置の第９実施例では、本発明になる転送制御方法の第９実施例を採用する。同図中、図１４と同一部分には同一符号を付し、その説明は省略する。
本実施例では、図１５に示すように、リクエスト元のプロセッサ１１−１は、ＣＰＵで構成され、リクエスト先のプロセッサ１１−２〜１１−ｎは、排他用ビットが予め設けられていない汎用のプロセッサで構成される。制御ブロック１２は、バッファ１２１と、ＲＳＶ１含む複数のリザーブ１３−１と、ＲＳＶ２を含む複数のリザーブ１３−２と、セレクタ１５ｄ，１５ｃ−１，１５ｃ−２とからなるプロセッサで構成される。
【００５０】
複数のリザーブ１３−１，１３−２と、セレクタ１５ｄ，１５ｃ−１，１５ｃ−２とをマイクロプログラムによる制御により実現した場合には、制御ブロック１２は汎用のプロセッサで実現できるので、制御ブロック１２のコストを抑えることができる。又、複数のリザーブ１３−１，１３−２と、セレクタ１５ｄ，１５ｃ−１，１５ｃ−２とをハードウェアで実現した場合には、制御ブロック１２は専用のプロセッサで実現されるので、処理を高速に行うことができる。
【００５１】
次に、本発明になる情報処理装置及び転送制御方法が適用されたシステムについて、図１６〜図１８と共に説明する。図１６は、本発明を適用可能なシステムを示すブロック図であり、同図中、図２と同一部分には同一符号を付し、その説明は省略する。又、図１７及び図１８は、図１６に示すシステムの動作を説明するタイムチャートである。
【００５２】
図１６に示すシステムは、複数のクラスタ５１−１〜５１−ｎと、ファイルシステム５２とからなり、本発明の第１実施例が適用されている。各クラスタ５１−１〜５１−ｎは同じ構成を有し、クラスタ５１−１がマスタとして機能し、クラスタ５１−２〜５１−ｎがスレーブとして機能する。同図では、便宜上、４つのクラスタ５１−１〜５１−４のみを示す。又、同図では、図を見やすくするために、データやコマンドが転送されるルートの一例のみを示し、バスによる実際の接続の図示は省略する。同図中、同期転送のためのルートは太い実線で示し、非同期転送のためのルートは太い破線で示す。
【００５３】
各クラスタ５１−１〜５１−４は、プロセッサ１１−１〜プロセッサ１１−ｎと、入出力（ＩＯ）プロセッサ６１と、主記憶装置６２とからなる。図１６では、説明の便宜上、４つのプロセッサ１１−１〜１１−４のみを示す。プロセッサ１１−１は主記憶装置６２に接続されたＣＰＵにより構成され、プロセッサ１１−２〜１１−４は夫々チャネルプロセッサにより構成されている。ＩＯプロセッサ６１は、制御ブロック１２と、リザーブ１３と、セレクタ１５とからなる。制御ブロック１２は、チャネルマネージャにより構成されている。
【００５４】
ファイルシステム５２は、コントローラ６５と、複数のディスクＤｉｓｋ０，Ｄｉｓｋ１，．．．とからなる周知の構成を有する。
図１６は、システムの動作の一例として、非同期転送により各スレーブクラスタ５１−２〜５１−４からファイルシステム５２をアクセスし、非同期転送によりアクセスした結果をマスタクラスタ５１−１の主記憶装置６２に格納する場合のデータやコマンドの流れを示す。この時、スレーブクラスタがファイルシステムにアクセスするのに先立って、マスタクラスタの主記憶装置にアクセスする。スレーブクラスタがファイルシステムにアクセスするためには、マスタクラスタの主記憶装置内にある制御テーブルを書き換えなければならない。
【００５５】
図１７は、各クラスタ５１−１〜５１−４において、プロセッサ１１−１及び制御ブロック１２、即ち、ＣＰＵからの同期転送リクエスト及びチャネルマネージャからの非同期転送リクエストに優先順位を設けない場合のデータやコマンドの転送タイミングを説明するタイムチャートである。同図中、（ａ）はＣＰＵからリクエストが転送されるタイミング、（ｂ）は制御ブロック１２、即ち、チャネルマネージャからリザーブ１３のＲＳＶ１をセットするタイミング、（ｃ）はリザーブ１３からＲＳＶ１のセット完了をチャネルマネージャに通知するタイミング、（ｄ）はチャネルマネージャからＲＳＶ１をリセットするタイミング、（ｅ）はＲＳＶ１の取得されるタイミング、（ｆ）はチャネルマネージャからリクエストが転送されるタイミングを示す。又、同図中、（ｇ）はＣＰＵからリザーブ１３のＲＳＶ２をセットするタイミング、（ｈ）はリザーブ１３からＲＳＶ２のセット完了をＣＰＵに通知するタイミング、（ｉ）はＣＰＵからＲＳＶ２をリセットするタイミング、（ｊ）はＲＳＶ２の取得されるタイミング、（ｋ）はＣＰＵからリクエストが転送されるタイミングを示す。尚、同図中、ＯＫはリザーブ１３の取得が成功したことを示し、ＮＧは失敗したことを示す。
【００５６】
図１８は、各クラスタ５１−１〜５１−４において、制御ブロック１２及びプロセッサ１１−１、即ち、チャネルプロセッサからの非同期転送リクエストをＣＰＵからの同期転送リクエストより優先する場合のデータやコマンドの転送タイミングを説明するタイムチャートである。同図中、（ａ）はＣＰＵからリクエストが転送されるタイミング、（ｂ）は制御ブロック１２、即ち、チャネルマネージャからリザーブ１３のＲＳＶ１をセットするタイミング、（ｃ）はリザーブ１３からＲＳＶ１のセット完了をチャネルマネージャに通知するタイミング、（ｄ）はチャネルマネージャからＲＳＶ１をリセットするタイミング、（ｅ）はＲＳＶ１の取得されるタイミング、（ｆ）はチャネルマネージャからリクエストが転送されるタイミングを示す。又、同図中、（ｇ）はＣＰＵからリザーブ１３のＲＳＶ２をセットするタイミング、（ｈ）はリザーブ１３からＲＳＶ２のセット完了をＣＰＵに通知するタイミング、（ｉ）はＣＰＵからＲＳＶ２をリセットするタイミング、（ｊ）はＲＳＶ２の取得されるタイミング、（ｋ）はＣＰＵからリクエストが転送されるタイミングを示す。尚、同図中、ＯＫはリザーブ１３の取得が成功したことを示し、ＮＧは失敗したことを示す。
【００５７】
尚、例えば図９に示す第４実施例では、プロセッサ自体に優先順位を設ける場合について説明したが、例えば図３に示す第２実施例では、リクエスト自体に優先順位を設けて非同期又は同期転送用のルートを選択しても良く、又、プロセッサ及びリクエストの両方に優先順位を設けても良い。
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは、言うまでもない。
【００５８】
【発明の効果】
本発明によれば、データやコマンドの同期転送及び非同期転送を可能とすると共に、転送効率を向上することのできる転送制御方法及び情報処理装置を実現することができる。
【図面の簡単な説明】
【図１】従来の転送制御方法の一例を説明するためのブロック図である。
【図２】本発明になる情報処理装置の第１実施例を示すブロック図である。
【図３】本発明になる情報処理装置の第２実施例を示すブロック図である。
【図４】第２実施例において非同期転送のためのルートを選択した場合の動作を説明するフローチャートである。
【図５】第２実施例において同期転送のためのルートによるリクエスト終了後に非同期転送のためのルートを優先した場合の動作を説明するフローチャートである。
【図６】第２実施例において同期転送のためのルートを選択した場合の動作を説明するフローチャートである。
【図７】本発明になる情報処理装置の第３実施例を示すブロック図である。
【図８】第３実施例において、非同期転送のためのルートを選択した場合の動作及び非同期転送のためのルートを優先した場合の動作を説明するフローチャートである。
【図９】本発明になる情報処理装置の第４実施例を示すブロック図である。
【図１０】本発明になる情報処理装置の第５実施例を示すブロック図である。
【図１１】本発明になる情報処理装置の第６実施例を示すブロック図である。
【図１２】コマンド及びデータのフォーマットを示す図である。
【図１３】本発明になる情報処理装置の第７実施例を示すブロック図である。
【図１４】本発明になる情報処理装置の第８実施例を示すブロック図である。
【図１５】本発明になる情報処理装置の第９実施例を示すブロック図である。
【図１６】本発明を適用可能なシステムを示すブロック図である。
【図１７】図１６に示すシステムの動作を説明するタイムチャートである。
【図１８】図１６に示すシステムの動作を説明するタイムチャートである。
【符号の説明】
１１−１〜１１−ｎ＋１      プロセッサ
１２      制御ブロック
１３，１３−１、１３−２      リザーブ
１５，１６      セレクタ
５１−１〜５１−４      クラスタ
５２      ファイルシステム
６１      ＩＯプロセッサ
６２      主記憶装置
１２１      バッファ
【図１】
0004119582.tif 000002
【図２】
0004119582.tif 000003
【図３】
0004119582.tif 000004
【図４】
0004119582.tif 000005
【図５】
0004119582.tif 000006
【図６】
0004119582.tif 000007
【図７】
0004119582.tif 000008
【図８】
0004119582.tif 000009
【図９】
0004119582.tif 000010
【図１０】
0004119582.tif 000011
【図１１】
0004119582.tif 000012
【図１２】
0004119582.tif 000013
【図１３】
0004119582.tif 000014
【図１４】
0004119582.tif 000015
【図１５】
0004119582.tif 000016
【図１６】
0004119582.tif 000017
【図１７】
0004119582.tif 000018
【図１８】
0004119582.tif 000019