(57)【要約】【課題】本発明の目的は、入力ポート内の同一メモリのアクセス順序を守りながらクロスバ性能を向上させるマルチプロセッサシステムを提供することにある。【解決手段】  複数の中央処理装置と複数の主記憶装置とを備えるマルチプロセッサシステムは、複数の出力部と、複数の入力ポートと、クロスバ部と、出力先情報比較部とを具備する。複数の出力部は、主記憶装置に内蔵されるメモリをアクセスする。複数の入力ポートは、中央処理装置と接続され、中央処理装置がメモリをアクセスするために発行するメモリアクセスリクエストを保持する複数の入力部を備える。クロスバ部は、メモリアクセスリクエストを複数の出力部のうち中央処理装置により指定される指定出力部に出力する。出力先情報比較部は、複数の入力ポートのうち第１入力ポートに保持されるメモリアクセスリクエストを、複数の入力ポートのうち未使用の入力部を有する第２入力ポートに移動させる。【選択図】  図５
2006277404.tif 000002
【特許請求の範囲】
【請求項１】
主記憶装置に内蔵されるメモリをアクセスする複数の出力部と、
中央処理装置に接続し、前記中央処理装置が前記メモリをアクセスするために発行するメモリアクセスリクエストを保持する複数の入力部を備える複数の入力ポートと、
前記メモリアクセスリクエストを前記複数の出力部のうち前記中央処理装置により指定される指定出力部に出力するクロスバ部と、
前記複数の入力ポートのうち第１入力ポートに保持される前記メモリアクセスリクエストを、前記複数の入力ポートのうち未使用の入力部を有する第２入力ポートに移動させる出力先情報比較部と
を具備し、
前記メモリアクセスリクエストは、入力した前記第１入力ポートと異なる前記第２入力ポートを介して前記クロスバ部を通過するマルチプロセッサシステム。
【請求項２】
前記入力部は、前記指定出力部を示す出力先情報を保持する
請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記出力先情報は、
前記入力部に保持される前記メモリアクセスリクエストが有効であることを示す有効ビットと、
前記メモリアクセスリクエストの出力先のアドレスを示すルーティングアドレスビットと
を具備する
請求項２に記載のマルチプロセッサシステム。
【請求項４】
前記出力先情報比較部は、前記出力先情報に基づいて未使用入力部を検出し、前記第１入力ポートの前記メモリアクセスリクエストを前記第２入力ポートに移動させる
請求項２または請求項３に記載のマルチプロセッサシステム。
【請求項５】
前記出力先情報比較部は、前記第１入力ポートと前記第２入力ポートとに保持される前記出力先情報を比較して、前記第１入力ポートに保持される後続のメモリアクセスリクエストが先行するメモリアクセスリクエストを追い越して前記クロスバ部を通過しない場合だけ前記第２入力ポートに前記メモリアクセスリクエストを移動させる
請求項２から請求項４のいずれかに記載のマルチプロセッサシステム。
【請求項６】
前記出力先情報比較部は、前記第１入力ポートに保持される前記出力先情報に基づいて前記メモリアクセスリクエストを前記第２入力ポートに移動させるか否かを判定する
請求項２または請求項３に記載のマルチプロセッサシステム。
【請求項７】
動作している前記中央処理装置が前記入力ポートに接続しているか否かを示す構成情報を保持する構成保持部をさらに具備し、
前記出力先情報比較部は、前記構成情報に基づいて未使用入力ポートを検出し、前記第１入力ポートの前記メモリアクセスリクエストを前記第２入力ポートに移動させる
請求項２、請求項３、請求項６のいずれかに記載のマルチプロセッサシステム。
【請求項８】
前記複数の入力ポートは、複数のメモリアクセスリクエストを保持して先入れ先出しする入力バッファを具備する
請求項１から請求項７のいずれかに記載のマルチプロセッサシステム。
【請求項９】
前記第２入力ポートは、前記出力先情報比較部から出力される選択信号に基づいて前記第１入力ポートと前記第２入力ポートとに保持される前記メモリアクセスリクエストのいずれかを選択して出力する選択部を備える
請求項１から請求項８のいずれかに記載のマルチプロセッサシステム。
【請求項１０】
主記憶装置に内蔵されるメモリをアクセスする複数の出力部と、
中央処理装置と接続され、前記中央処理装置が前記メモリをアクセスするために発行するメモリアクセスリクエストを保持する複数の入力部を備える複数の入力ポートと、
前記メモリアクセスリクエストを前記複数の出力部のうち前記中央処理装置により指定される指定出力部に出力するクロスバ部と
を具備するマルチプロセッサシステムのメモリアクセス方法であって、
前記複数の入力ポートのうち未使用の入力部を有する第２入力ポートを検出する検出ステップと、
前記検出ステップにより検出された前記第２入力ポートに前記複数の入力ポートのうち第１入力ポートに保持される前記メモリアクセスリクエストを移動させる移動ステップと
を具備するメモリアクセス方法。
【請求項１１】
前記検出ステップは、前記指定出力部を示す出力先情報に基づいて未使用入力部を検出する
請求項１０に記載のメモリアクセス方法。
【請求項１２】
前記移動ステップは、前記第１入力ポートと前記第２入力ポートとに保持される前記出力先情報を比較して、前記第１入力ポートに保持される後続のメモリアクセスリクエストが先行するメモリアクセスリクエストを追い越して前記クロスバ部を通過しない場合だけ前記第２入力ポートに前記メモリアクセスリクエストを移動させる
請求項１１に記載のメモリアクセス方法。
【請求項１３】
前記マルチプロセッサシステムは、動作している前記中央処理装置が前記入力ポートに接続しているか否かを示す構成情報を保持する構成保持部をさらに具備し、
前記検出ステップは、前記構成情報に基づいて未使用入力ポートを検出する
請求項１０に記載のメモリアクセス方法。
【請求項１４】
前記移動ステップは、前記第１入力ポートに保持される前記メモリアクセスリクエストの前記指定出力部を示す出力先情報に基づいて前記メモリアクセスリクエストを前記第２入力ポートに移動させるか否かを判定する
請求項１３に記載のメモリアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の中央処理装置（ＣＰＵ）と複数の主記憶装置（ＭＭＵ）とを具備するマルチプロセッサシステムに関し、特に中央処理装置の主記憶装置アクセスに関する。
【背景技術】
【０００２】
図１は、マルチプロセッサシステムの構成例を示すブロック図である。マルチプロセッサシステムは、複数の中央処理装置（ＣＰＵ）１０１−１〜４と複数の主記憶装置（ＭＭＵ）１０２−１〜４とを具備する。ここでは４ＣＰＵ構成を例示して説明する。中央処理装置１０１−１〜４は、主記憶装置１０２−１〜４のいずれにもアクセスできるように、それぞれ主記憶装置１０２−１〜４に接続されている。中央処理装置１０１−ｍは、主記憶装置１０２−ｎをアクセスする場合、アクセス先の主記憶装置１０２−ｎに対してメモリアクセスリクエストを送出する。主記憶装置１０２−ｎは、中央処理装置１０１−ｍから送出されるメモリアクセスリクエストと他の中央処理装置１０１−ｍ’から送出されるメモリアクセスリクエストとの競合状態を調停し、要求されるメモリアクセスを実行する。したがって、この競合調停によって待ち状態が発生すると、このシステムの性能低下に繋がる。
【０００３】
主記憶装置１０２−１〜４に内蔵される中央処理装置１０１−１〜４とのインタフェース部分（ここではクロスバ装置と称することにする）の構成が図２に示される。クロスバ装置は、メモリアクセスリクエストを保持する入力部１−１〜４、２−１〜４、３−１〜４と、メモリアクセスリクエストの競合を調停する競合調停部２１と、競合調停部２１の制御を受けて接続先を切り替えるクロスバ部３０と、メモリ部（図示せず）にメモリアクセスリクエストを出力する出力部４−１〜４とを具備する。
【０００４】
クロスバ装置は、クロックに同期して動作している。クロスバ装置は、各中央処理装置１０１−ｍ（ｍ：１〜４）に接続されるポート１〜４からメモリアクセスリクエストを入力し、１段目の入力部１−１〜４に保持する。入力部１−１〜４に保持されるメモリアクセスリクエストは、次の時刻において、次段の入力部２−１〜４が空いていれば、次段の入力部２−１〜４に送出される。次段の入力部が次の時刻に空いていなければ、そのメモリアクセスリクエストはそのまま入力部１−ｎに留まる。同様に、入力部２−１〜４に保持されるメモリアクセスリクエストは、次段の入力部３−１〜４が空いていれば、次段の入力部３−１〜４に送出される。入力３−１〜４に保持されるメモリアクセスリクエストは、競合調停部２１によりアクセスするメモリの競合状態により調停される。競合状態がある場合、メモリアクセスリクエストの優先順位に応じてメモリアクセスが許可される。したがって、優先順位の低いメモリアクセスリクエストは、待ち状態になる。クロスバ部３０は、競合の無いメモリアクセスリクエストと優先順位の高いメモリアクセスリクエストとを指定されるメモリに接続される出力部４−１〜４に出力する。出力部４−１〜４は、メモリアクセスリクエストを主記憶を構成するメモリ部に送出する。
【０００５】
このメモリアクセスリクエスト競合処理の動作例が、図３を参照して説明される。図３は、クロスバ装置の動作を示すタイムチャートである。図３の縦方向は入力部１−１〜４、２−１〜４、３−１〜４、出力部４−１〜４を示し、横方向は状態Ｔ（時刻Ｔ）を示す。状態Ｔにおける各入力部、出力部に保持されるメモリアクセスリクエストが図中に示され、その括弧内にクロスバ部３０の出力先が示される。
【０００６】
状態Ｔ＝１において、入力部３−１〜４にはメモリアクセスリクエストＡ１（１）、Ｂ１（２）、Ｃ１（３）、Ｄ１（４）がそれぞれ保持され、入力部２−１、２−３、２−４にはＡ２（２）、Ｃ２（４）、Ｄ２（１）が保持され、入力部１−１にはＡ３（３）が保持されている。競合調停部２１は、入力部３−１〜４に保持されているメモリアクセスリクエストの競合を調停し、クロスバ出力を制御する。入力部３−１〜４に保持されているメモリアクセスリクエストは、全て異なる出力部に出力されるため、状態Ｔ＝２に遷移する。
【０００７】
状態Ｔ＝２では、Ｔ＝１の状態で競合がないため入力部３−１〜４に保持されているメモリアクセスリクエストはクロスバ部３０を通過して出力部４−１〜４に移動する。入力３−１〜４は空き状態になるため、入力部２−１、２−３、２−４に保持されていたメモリアクセスリクエストは、それぞれ入力部３−１、３−３、３−４に移動する。入力部３−２は有効なメモリアクセスリクエストを保持していない。同様に、メモリアクセスリクエストＡ３（３）は、入力部２−１に保持される。この状態でも競合はない。
【０００８】
状態Ｔ＝３において、入力部３−１、３−３、３−４に保持されていたメモリアクセスリクエストＡ２（２）、Ｃ２（４）、Ｄ２（１）は、クロスバ部３０を通過してそれぞれ出力部４−２、４−４、４−１に保持される。入力部２−１に保持されていたメモリアクセスリクエストＡ３（３）は、入力部３−１に保持される。
【０００９】
状態Ｔ＝４において、メモリアクセスリクエストＡ３（３）が出力部４−３に移動し、全てのメモリアクセスリクエストがクロスバ部３０を通過したことになる。この場合、競合の無い例を示したが、処理が終わるまで４状態を遷移することがわかる。
【００１０】
次に、競合がある場合の例を、図４を参照して説明する。状態Ｔ＝１において、入力部３−１〜４にはメモリアクセスリクエストＥ１（４）、Ｆ１（２）、Ｇ１（３）、Ｈ１（４）が保持されている。また、入力部２−１にメモリアクセスリクエストＥ２（１）、入力１−１にＥ３（３）が保持されている。競合調停部２１は、入力３−１〜４に保持されているメモリアクセスリクエストの競合を調停し、クロスバ出力を制御する。この場合、メモリアクセスリクエストＥ１（４）とＨ１（４）が共に出力部４−４に出力要求しているため、競合調停部２１は調停を行う。メモリアクセスリクエストＨ１（４）を先に出力部４−４に出力するものとして、メモリアクセスリクエストＥ１は入力部３−１で待機状態となる。メモリアクセスリクエストＦ１（２）とメモリアクセスリクエストＧ１（３）とは、競合しないため、クロスバ部３０を通過して出力部４−２、４−３に移動するように制御される。
【００１１】
したがって、状態Ｔ２において、出力部４−２、４−３、４−３にメモリアクセスリクエストＦ１（２）、Ｇ１（３）、Ｈ１（４）が保持されることになる。入力部３−１にはメモリアクセスリクエストＥ１（４）が保持されたままになるため、入力２−１、１−１にはメモリアクセスリクエストＥ２（１）、Ｅ３（３）が待機状態となる。ポート１以外の入力部にはメモリアクセスリクエストが残っていないため、その後メモリアクセスリクエストＥ１（４）、Ｅ２（１）、Ｅ３（３）が順次クロスバ部３０を通過して出力部に到達する。即ち、状態Ｔ＝３においてメモリアクセスリクエストＥ１（４）が出力部４−４に、状態Ｔ＝４においてメモリアクセスリクエストＥ２（１）が出力部４−１に、状態Ｔ＝５においてメモリアクセスリクエストＥ３（３）が出力部４−３に保持され、メモリ部に出力される。したがって、この場合、競合が１度発生して処理終了まで５状態遷移することがわかる。
【００１２】
このようにＣＰＵからのメモリアクセスリクエストは、順次クロスバ部３０を通過していくことになる。しかし、メモリアクセスリクエストは入力ポートに固定されているため、他の入力ポートが未使用状態であっても、同じ入力ポートに先に入力されたメモリアクセスリクエストが処理されるまで待たされることになる。
【００１３】
即ち、従来のクロスバ装置において、メモリアクセスリクエストは、入力された入力ポート以外の入力部を使用することができない。つまり、ＣＰＵに接続する入力ポートに対応した入力部を介してクロスバを通過するため、他に未使用の入力ポートがあったとしても他の入力ポートの入力部から競合に参加できないという欠点がある。そのため、入力ポートに先行するメモリアクセスリクエストがあれば、その先行するメモリアクセスリクエストがクロスバ部３０を通過しないと競合調停にすら参加できないという欠点もある。
【００１４】
このため、クロスバ部３０の性能は、入力部の未使用の割合によって性能を活かしきれないことになる。例えば、図２に示される従来例の構成は、最大で同時に４つのメモリアクセスリクエストがクロスバ部３０を通過できる構成となっているが、１つの入力部が未使用になっていると、同時に３つのメモリアクセスリクエストしか処理できない。即ち、このクロスバ装置としてみるとクロスバ部３０の性能は最大で２５％低下することになる。
【００１５】
特開２００１−１７５６３４号公報によれば、クロスバネットワークによって接続されるデータ転送装置の技術が開示されている。このデータ転送装置は、複数のインタリーブ構成されたメモリと内蔵するクロスバネットワークによって接続される。データ転送装置は、このクロスバネットワークに残存するメモリへのリクエストの有無を示す信号を用いてメモリへのリクエストを発行または抑止し、メモリアクセス順序を保証する。
【００１６】
また、このデータ転送装置は、リクエストを発行する手段と、残存リクエストの有無を通知する手段と、同期命令を挿入する手段と、リクエストの発行を再開する手段とを設けたことを特徴としている。リクエストを発行する手段は、メモリに対するデータ転送命令に基づくリクエストを発行する。残存リクエストの有無を通知する手段は、一つのリクエストが後続のリクエストによって追い越される可能性がなくなる多段クロスバネットワークの部分までの多段クロスバスイッチにおける残存リクエストの有無を通知する。同期命令を挿入する手段は、このデータ転送装置からメモリアクセス順序の保証が必要なリクエストを発行する際に、各リクエスト間に同期命令を挿入する。リクエストの発行を再開する手段は、残存リクエストが有れば同期命令によって後続のリクエストの発行を抑止し、また、残存リクエストが無ければ同期命令を破棄することによって後続のリクエストの発行を再開する。
【００１７】
また、特開２００２−３２８８３８号公報によれば、クロスバ装置に関する技術が開示されている。このクロスバ装置は、複数の入力ポートと、各入力ポート毎のデータ入力部と、複数の出力部と、各出力部毎のセレクタ部と、セレクト信号生成手段とを備えたことを特徴とする。このセレクト信号生成手段は、出力先が複数の出力部の内の特定の出力部に固定される入力ポートを示す情報および特定の出力部を示す情報に基づいて、出力先が特定の出力部に固定される入力ポートについては、対応するデータ入力部をバイパスさせるバイパス信号線を有効にする。そして、特定の出力部に対応するセレクタ部に、有効にしたバイパス信号線を選択させる。
【００１８】
また、このクロスバ装置は、複数の入力ポートと、各入力ポート毎のデータ入力部と、第１のセレクタ部と、第２のセレクタ部と、セレクト信号生成手段とを備えたことを特徴とする。第１のセレクタ部は、各データ入力部毎に設けられ、対応するデータ入力部をバイパスするバイパス信号線と、各データ入力部毎に設けられ、対応するデータ入力部或いは対応するバイパス信号線の内の何れか一方を選択する。第２のセレクタ部は、各第１のセレクタ部毎のタイミングレジスタと、各出力部毎に設けられ、複数のタイミングレジスタの内の１つを選択する。セレクト信号生成手段は、出力先が複数の出力部の内の特定の出力部に固定される入力ポートを示す情報および特定の出力部を示す情報に基づいて、複数の第１のセレクタ部の内の、出力先が特定の出力部に固定される入力ポートと対応する第１のセレクタ部にバイパス信号線を選択させる。また、セレクト信号生成手段は、他の第１のセレクタ部にデータ入力部を選択させる。さらに、セレクト信号生成手段は、複数の第２のセレクタ部の内の、特定の出力部に対応する第２のセレクタ部に、バイパス信号線を選択させた第１のセレクタ部に対応するタイミングレジスタを選択させる。また、セレクト信号生成手段は、他の第２のセレクタ部に、ルーティングアドレスと予め定められている優先順位とに基づいて決まるタイミングレジスタを選択させる。
【００１９】
また、特開平１１−６６０２４号公報によれば、クロスバスイッチ切換システムに関する技術が開示されている。このクロスバスイッチ切換システムは、複数の情報処理装置間のデータ転送路を切換えるクロスバスイッチ切換システムである。クロスバスイッチ切換システムは、前段及び後段のクロスバスイッチからなる。後段のクロスバスイッチは、自己のクロスバスイッチの出力ポートが使用中であるか否かを示す使用状態情報を前段のクロスバスイッチへ通知する通知手段を有する。前段のクロスバスイッチは、後段のクロスバスイッチからの使用状態情報に基づき後段のクロスバスイッチとの接続を切換える切換制御手段を有する。切換制御手段は、使用状態情報により後段のクロスバスイッチの出力ポートが使用中であることを認識すると、出力ポートが空きの後段のクロスバスイッチに接続を切換える。
【００２０】
特開平１１−２１２８６６号公報によれば、多段クロスバに関する技術が開示されている。多段クロスバは、複数の入力部と、複数の出力部と、複数の入力部を介して供給される各信号をセレクト信号に従って複数の出力部に供給するセレクタ部とを有するクロスバを複数組み合わせて構成される。この多段クロスバは、構成情報を保持する構成情報保持手段と、バイパス手段とを具備することを特徴とする。このバイパス手段は、構成情報保持手段に保持されている構成情報により複数のクロスバにおける一部のクロスバにおいて入力部、出力部およびセレクタ部のいずれかをバイパスさせる。
【００２１】
【特許文献１】特開２００１−１７５６３４号公報
【特許文献２】特開２００２−３２８８３８号公報
【特許文献３】特開平１１−６６０２４号公報
【特許文献４】特開平１１−２１２８６６号公報
【発明の開示】
【発明が解決しようとする課題】
【００２２】
以上のように、マルチプロセッサシステムにおける従来のクロスバ部および入力部は、ＣＰＵからの入力に対応した入力部のみからクロスバ部を通過するため、未使用部の入力ポートから競合に参加できない。また、ＣＰＵからの入力に対応した入力部のみからクロスバ部を通過するため、先行するメモリアクセスリクエストが競合調停の結果でクロスバの入力部で待たされていると後続のメモリアクセスリクエストは、クロスバを通過することが出来ない。
【００２３】
本発明の目的は、入力ポート内の同一メモリアドレスにアクセスするメモリアクセスリクエスト間のアクセス順序を守りながらクロスバ性能を向上させるマルチプロセッサシステムを提供することにある。
【課題を解決するための手段】
【００２４】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００２５】
本発明の観点では、複数の中央処理装置（１０１−ｎ；ｎ＝１〜４）と複数の主記憶装置（１０２−ｍ；ｍ＝１〜４）とを備えるマルチプロセッサシステムは、複数の出力部（４−ｍ）と、複数の入力ポート（１〜４）と、クロスバ部（３０）と、出力先情報比較部（２０、４１）とを具備する。複数の出力部（４−ｍ）は、主記憶装置（１０２−ｍ）に内蔵されるメモリをアクセスする。複数の入力ポート（１〜４）は、中央処理装置（１０１−ｎ）と接続され、中央処理装置（１０１−ｎ）がメモリをアクセスするために発行するメモリアクセスリクエストを保持する複数の入力部（１−ｎ／２−ｎ／３−ｎ／４−ｎ；ｎ＝１〜４）を備える。クロスバ部（３０）は、メモリアクセスリクエストを複数の出力部（４−ｍ）のうち中央処理装置（１０１−ｎ）により指定される指定出力部（４−ｋ；ｋ＝１〜４）に出力する。出力先情報比較部（２０、４１）は、複数の入力ポートのうち第１入力ポート（１）に保持されるメモリアクセスリクエストを、複数の入力ポートのうち未使用の入力部（２−２）を有する第２入力ポート（２）に移動させる。移動したメモリアクセスリクエストは、入力した第１入力ポート（１）と異なる第２入力ポート（２）を介してクロスバ部（３０）を通過する。
【００２６】
本発明の入力部（１−ｎ／２−ｎ／３−ｎ／４−ｎ）は、指定出力部（４−ｋ）を示す出力先情報（ＲＡ）を保持する。この出力先情報（ＲＡ）は、有効ビット（Ｖｂｉｔ：３１）と、ルーティングアドレスビット（Ｒｂｉｔ：３２）とを具備する。有効ビット（Ｖｂｉｔ：３１）は、入力部（１−ｎ／２−ｎ／３−ｎ／４−ｎ；ｎ：１〜４）に保持されるメモリアクセスリクエストが有効であることを示す。ルーティングアドレスビット（Ｒｂｉｔ：３２）は、メモリアクセスリクエストの出力先のアドレスを示す。
【００２７】
本発明の出力先情報比較部（２０）は、出力先情報（ＲＡ）に基づいて未使用入力部（２−２）を検出する。出力先情報比較部（２０）は、検出された未使用入力部（２−２）を含む第２入力ポート（２）に第１入力ポート（１）のメモリアクセスリクエストを移動させる。
【００２８】
本発明の出力先情報比較部（２０）は、第１入力ポート（１）と第２入力ポート（２）とに保持される出力先情報（ＲＡ）のルーティングアドレスビットを比較する。比較の結果、第１入力ポート（１）に保持される後続のメモリアクセスリクエストが、先行するメモリアクセスリクエストを追い越してクロスバ部（３０）を通過しない場合だけ、出力先情報比較部（２０）は、第２入力ポート（２）にメモリアクセスリクエストを移動させる。
【００２９】
また、本発明の出力先情報比較部（４１）は、第１入力ポート（１）に保持されるメモリアクセスリクエストの出力先情報（ＲＡ）に基づいて、メモリアクセスリクエストを第２入力ポート（２）に移動させるか否かを判定する。
【００３０】
本発明のマルチプロセッサシステムは、構成保持部（４０）をさらに具備する。構成保持部（４０）は、動作している中央処理装置（１０１−１〜４）が入力ポート（１〜４）に接続しているか否かを示す構成情報を保持する。出力先情報比較部（４１）は、この構成情報に基づいて未使用入力ポート（２）を検出し、第１入力ポート（１）のメモリアクセスリクエストを第２入力ポート（２）に移動させる。
【００３１】
本発明の複数の入力ポート（１〜４）は、複数のメモリアクセスリクエストを保持して先入れ先出しする入力バッファ（５−１〜４）を具備する。また、第２入力ポート（２）は、出力先情報比較部（２０、４１）から出力される選択信号（２２０、２４１）に基づいて第１入力ポート（１）と第２入力ポート（２）とに保持されるメモリアクセスリクエストのいずれかを選択して出力する選択部（１０、５０）を備える。
【００３２】
本発明の他の観点では、メモリアクセス方法は、複数の出力部（４−ｍ）と、複数の入力ポート（１〜４）と、クロスバ部（３０）とを具備するマルチプロセッサシステムのメモリアクセス方法であって、検出ステップと、移動ステップとを具備する。複数の出力部（４−ｍ）は、主記憶装置（１０２−ｍ）に内蔵されるメモリをアクセスする。複数の入力ポート（１〜４）は、中央処理装置（１０１−ｎ）と接続され、中央処理装置（１０１−ｎ）が主記憶装置（１０２−ｍ）のメモリをアクセスするために発行するメモリアクセスリクエストを保持する複数の入力部（１−ｎ／２−ｎ／３−ｎ／４−ｎ）を備える。クロスバ部（３０）は、メモリアクセスリクエストを複数の出力部（４−ｍ）のうち中央処理装置（１０１−ｎ）により指定される指定出力部（４−ｋ）に出力する。検出ステップは、複数の入力ポートのうち未使用の入力部（２−２）を有する第２入力ポート（２）を検出する。移動ステップは、検出ステップにより検出された第２入力ポート（２）に複数の入力ポートのうち第１入力ポート（１）に保持されるメモリアクセスリクエストを移動させる。移動したメモリアクセスリクエストは、入力した第１入力ポート（１）と異なる第２入力ポート（２）を介してクロスバ部（３０）を通過する。
【００３３】
本発明の検出ステップは、指定出力部（４−ｋ）を示す出力先情報（ＲＡ）に基づいて未使用入力部（２−２）を検出する。また、移動ステップは、第１入力ポート（１）と第２入力ポート（２）とに保持される出力先情報（ＲＡ）を比較して、第１入力ポート（１）に保持される後続のメモリアクセスリクエストが先行するメモリアクセスリクエストを追い越してクロスバ部（３０）を通過しない場合だけ第２入力ポート（２）にメモリアクセスリクエストを移動させる。
【００３４】
本発明において、マルチプロセッサシステムは、動作している中央処理装置（１０１−１〜４）が入力ポート（１〜４）に接続しているか否かを示す構成情報を保持する構成保持部（４０）をさらに具備する。検出ステップは、この構成情報に基づいて未使用入力ポート（２）を検出する。また、移動ステップは、第１入力ポート（１）に保持されるメモリアクセスリクエストの指定出力部（４−ｋ）を示す出力先情報（ＲＡ）に基づいて、メモリアクセスリクエストを第２入力ポート（２）に移動させるか否かを判定する。
【発明の効果】
【００３５】
本発明によれば、未使用の入力部がある場合には、未使用の入力部を使用してクロスバを通過させることにより、入力ポート内の同一メモリアドレスにアクセスするメモリアクセスリクエスト間のアクセス順序を守りながらクロスバ性能を向上させるマルチプロセッサシステムを提供することができる。
【発明を実施するための最良の形態】
【００３６】
図を参照して第１の実施の形態を説明する。図１に、中央処理装置−主記憶装置間がクロスバで接続されたマルチプロセッサシステムの構成が示される。複数の中央処理装置（ＣＰＵ）１０１−１〜４と複数の主記憶装置（ＭＭＵ）１０２−１〜４が相互に接続される。ここでは、４×４の構成が示される。中央処理装置１０１−ｍ（ｍ：１〜４）は、アクセス先にメモリアクセスリクエストを送出して主記憶装置１０２−ｎ（ｎ：１〜４）をアクセスする。主記憶装置１０２−ｎは、中央処理装置１０１−ｍから送出されるメモリアクセスリクエストと他の中央処理装置１０１−ｍ’から送出されるメモリアクセスリクエストとの競合状態を調停し、要求されるメモリアクセスを実行する。
【００３７】
主記憶装置１０２−１〜４に内蔵される中央処理装置１０１−１〜４とのインタフェース部分（以降クロスバ装置と称する）の構成が図５に示される。クロスバ装置は、ポート１の入力部１−１、２−１、３−１と、ポート２の入力部１−２、２−２、３−２と、ポート３の入力部１−３、２−３、３−３と、ポート４の入力部１−４、２−４、３−４と、クロスバ部３０と、出力部４−１、４−２、４−３、４−４と、競合調停部２１と、ＲＡ比較部２０と、セレクタ１０とを具備する。
【００３８】
ポート１〜４にＣＰＵ１０１−１〜４が接続され、メモリアクセスリクエストが送られてくる。ポート１から入力されるメモリアクセスリクエストは、入力部１−１から入力部２−１、入力部３−１を経てクロスバ部３０に入力される。また、入力部１−１と入力部２−１の出力は、セレクタ１０にも入力される。ポート２から入力されるメモリアクセスリクエストは、入力部１−２から入力部２−２を経てセレクタ１０に入力される。セレクタ１０の出力は、入力部３−２に接続される。入力部３−２の出力はクロスバ部３０に入力される。ポート３入力されるメモリアクセスリクエストは、入力部１−３、２−３、３−３を経て、ポート４に入力されるメモリアクセスリクエストは、入力部１−４、２−４、３−４を経て、クロスバ部３０に入力される。入力部１−１〜４、２−１〜４、３−１〜４には、メモリアクセスリクエストおよび出力先情報（ＲＡ）が保持される。出力先情報（ＲＡ）は、図６に示されるように、有効ビット（Ｖｂｉｔ）３１とルーティングアドレスビット（Ｒｂｉｔ）３２とを含む。有効ビット３１は、メモリアクセスリクエストの有効／無効を示す。ルーティングアドレスビット３２は、メモリアクセスリクエストのクロスバ部３０からの出力先を示す。
【００３９】
クロスバ部３０にメモリアクセスリクエストを出力する入力部３−１、３−２、３−３、３−４は、保持するメモリアクセスリクエストの出力先情報（ＲＡ）を競合調停部２１に出力する。競合調停部２１は、これらの出力先情報に基づいて競合状態を調停し、クロスバ部３０を制御してメモリアクセスリクエストをその出力先の出力部４−１〜４に送る。競合調停部２１は、競合調停結果２２１をＲＡ比較部２０に送る。競合調停結果２２１は、入力部３−１のメモリアクセスリクエストが待機となることを示すＨ１と、入力３−２のメモリアクセスリクエストが待機になることを示すＨ２とを含む。このとき、競合調停によりクロスバ部３０を通過できなかったメモリアクセスリクエストは、入力部３−１〜４で待機状態となる。クロスバ部３０の出力は、出力部４−１〜４に保持され、保持されたメモリアクセスリクエストは、メモリ部（図示せず）に出力される。
【００４０】
ＲＡ比較部２０は、入力部３−１、３−２、２−１、２−２、１−１が保持する出力先情報（ＲＡ）２０３−１、２０３−２、２０２−１、２０２−２、２０１−１および競合調停結果２２１を取り込み、先行するメモリアクセスリクエストと後続のメモリアクセスリクエストの出力先を比較する。ＲＡ比較部２０は、比較の結果、出力先が異なり、且つメモリアクセスリクエストが保持されない入力部がある場合に、後続のメモリアクセスリクエストを空いている入力部を経由してクロスバを通過させるようにセレクタ１０を制御する。
【００４１】
セレクタ１０は、ＲＡ比較部２０から出力される選択信号２２０に基づいて、入力部３−２に保持すべきメモリアクセスリクエストと出力先情報とを入力部２−２、２−１、１−１の出力のいずれかから選択し、出力する。
【００４２】
図７にＲＡ比較部２０の構成の一例が示される。ＲＡ比較部２０は、比較回路６１〜６５、論理積回路７１〜７５、論理和回路７７、７８、選択信号号生成部２２を備える。
【００４３】
比較回路６１は、入力部１−１の出力先情報２０１−１のルーティングアドレスビットＲ１と入力部２−１の出力先情報２０１−１のルーティングアドレスビットＲ２とを比較し、一致を示す比較結果を論理積回路７１に出力する。論理積回路７１は、出力先情報２０２−１の有効ビットＶ２に基づいて、入力部２−１のメモリアクセスリクエストが有効であるときのみその一致を示す比較結果を論理和回路７７に出力する。
【００４４】
比較回路６２は、入力部１−１の出力先情報２０１−１のルーティングアドレスビットＲ１と入力部３−１の出力先情報２０３−１のルーティングアドレスビットＲ３とを比較し、一致を示す比較結果を論理積回路７２に出力する。論理積回路７２は、出力先情報２０３−１の有効ビットＶ３に基づいて、入力部３−１のメモリアクセスリクエストが有効であるときのみその一致を示す比較結果を論理和回路７７に出力する。
【００４５】
比較回路６３は、入力部２−１の出力先情報２０２−１のルーティングアドレスビットＲ２と入力部３−１の出力先情報２０３−１のルーティングアドレスビットＲ３とを比較し、一致を示す比較結果を論理積回路７３に出力する。論理積回路７３は、出力先情報２０３−１の有効ビットＶ３に基づいて、入力部３−１のメモリアクセスリクエストが有効であるときのみその一致を示す比較結果を論理和回路７８に出力する。
【００４６】
比較回路６４は、入力部１−１の出力先情報２０１−１のルーティングアドレスビットＲ１と入力部３−２の出力先情報２０３−２のルーティングアドレスビットＲ５とを比較し、一致を示す比較結果を論理積回路７４に出力する。論理積回路７４は、出力先情報２０３−２の有効ビットＶ５に基づいて、入力部３−２のメモリアクセスリクエストが有効であるときのみその一致を示す比較結果を論理和回路７８に出力する。
【００４７】
比較回路６５は、入力部２−１の出力先情報２０２−１のルーティングアドレスビットＲ２と入力部３−２の出力先情報２０３−２のルーティングアドレスビットＲ５とを比較し、一致を示す比較結果を論理積回路７５に出力する。論理積回路７５は、出力先情報２０３−２の有効ビットＶ５に基づいて、入力部３−２のメモリアクセスリクエストが有効であるときのみその一致を示す比較結果を論理和回路７８に出力する。
【００４８】
論理和回路７７は、論理積回路７１、７２、７４の出力の論理和をとり信号Ｃ１を生成する。論理和回路７８は、論理積回路７３、７５の出力の論理和をとり信号Ｃ２を生成する。したがって、信号Ｃ１は、入力部１−１と入力部２−１のメモリアクセスリクエストが有効で出力先が同じ場合、入力部１−１と入力部３−１のメモリアクセスリクエストが有効で出力先が同じ場合、入力部１−１と入力部３−２のメモリアクセスリクエストが有効で出力先が同じ場合に出力が“１”となる。また、信号Ｃ２は、入力部２−１と入力部３−１のメモリアクセスリクエストが有効で出力先が同じ場合、入力部２−１と入力部３−２のメモリアクセスリクエストが有効で出力先が同じ場合に出力が“１”となる。即ち、一致信号Ｃ１は、入力部１−１に格納されるメモリアクセスリクエストの出力先が同じポート系列の入力部２−１、３−１もしくは他のポート系列の入力部３―２に格納されるメモリアクセスリクエストの出力先と同じかどうかを示す。また、一致信号Ｃ２は、入力部２−１の出力先が入力部３−１もしくは入力部３−２と同じかどうかを示す。
【００４９】
選択信号生成部２２は、競合調停部２１が出力する競合調停結果２２１に含まれる入力部３−１、３−２の待機状態を示すＨ１、Ｈ２と、有効ビットＶ１、Ｖ２、Ｖ４と一致信号Ｃ１、Ｃ２とに基づいて、選択信号２２０を生成する。
【００５０】
図７の場合、選択信号生成部２２は、入力部２−２が空き状態で（Ｖ４＝０）、入力３−１、３−２が待機状態になく（Ｈ１＝Ｈ２＝０）、入力部１−１、２−１にメモリアクセスリクエストが保持され（Ｖ１＝Ｖ２＝１）、入力部１−１に格納されるメモリアクセスリクエストの出力先が他と一致しない（Ｃ１＝０）場合、セレクタ１０に入力部１−１の出力を選択する選択信号２２０（ＳＥＬ＝１１）を生成する。即ち、ポート１にメモリアクセスリクエストが続き、ポート２が空いている場合には、メモリアクセスリクエストの順番が逆転しない範囲で、ポート２を使用してメモリアクセスリクエストを処理することが可能となる。
【００５１】
また、選択信号生成部２２は、入力部２−２が空き状態で（Ｖ４＝０）、入力部３−１が待機状態（Ｈ１＝１）、入力部３−２が待機状態になく（Ｈ２＝０）、入力部２−１にメモリアクセスリクエストが保持され、入力部２−１に格納されるメモリアクセスリクエストの出力先が先行するメモリアクセスリクエストと一致しない（Ｃ２＝０）場合、セレクタ１０の入力部２−１の出力を選択する選択信号２２０（ＳＥＬ＝１０）を生成する。即ち、入力部３−１のメモリアクセスリクエストが待機状態であってポート２が空いている場合には、メモリアクセスリクエストの順番が逆転しない範囲で、ポート２を使用してメモリアクセスリクエストを処理することが可能となる。
【００５２】
これらの条件に当てはまらない場合、選択信号生成部２２は、入力部２−２の出力を選択する選択信号２２０（ＳＥＬ＝００）を生成する。このように、ＲＡ比較部２０においてクロスバ装置の入力部で先行するメモリアクセスリクエストと後続のメモリアクセスリクエストの出力先を比較し、出力先が異なり、かつ、メモリアクセスリクエストを保持しない入力部がある場合に、後続のメモリアクセスリクエストをメモリアクセスリクエストのない入力部を経由してクロスバ部３０を通過させるよう制御するする。そのため、クロスバ性能を向上させることが出来る。以上詳細に構成を述べたが、ＣＰＵ／メモリ本体は、当業者にとってよく知られており、また本発明とは直接関係しないので、その構成、動作の詳細な説明は省略する。
【００５３】
次に図８に示されるタイムチャートを参照してメモリアクセスリクエスト競合処理動作を説明する。図８は、図５に示されるクロスバ装置の動作を示すタイムチャートである。図８の縦方向は入力部１−１〜４、２−１〜４、３−１〜４、出力部４−１〜４を示し、横方向は状態Ｔ（時刻Ｔ）を示す。状態Ｔにおける各入力部出力部に保持されるメモリアクセスリクエストが図中に示され、その括弧内にクロスバ部３０の出力先が示される。例えば、“Ａ１（３）”は、出力先が出力部４−３であるメモリアクセスリクエストＡ１を示し、“Ｂ１（２）”は、出力先が出力部４−２であるメモリアクセスリクエストＢ１を示すこととする。
【００５４】
状態Ｔ＝１において、入力部３−１〜４にはメモリアクセスリクエストＡ１（１）、Ｂ１（２）、Ｃ１（３）、Ｄ１（４）がそれぞれ保持され、入力部２−１、２−３、２−４にはＡ２（２）、Ｃ２（４）、Ｄ２（１）が保持され、入力部１−１にはＡ３（３）が保持されている。この状態は、図３（Ｔ＝１）に示される状態と同じである。競合調停部２１は、入力部３−１〜４に保持されているメモリアクセスリクエストの競合を調停し、クロスバ出力を制御する。入力部３−１〜４に保持されているメモリアクセスリクエストは、全て異なる出力部に出力されるため、競合調停部２１は、調停による待機制御を行わない。
【００５５】
ＲＡ比較部２０は、入力部１−１、２−１、３−１、２−２、３−２に保持されるメモリアクセスリクエストの出力先情報の有効ビット３１とルーティングアドレスビット３２と、競合調停結果２２１とに基づいて選択信号２２０を生成する。このとき、入力部２−１、１−１にメモリアクセスリクエストが保持され（Ｖ１＝Ｖ２＝１）、入力部２−２は空き状態である（Ｖ４＝０）。また、クロスバ部３０に接続する入力部３−１〜４に格納されるメモリアクセスリクエストの出力先は全て異なるので、これらのメモリアクセスリクエストは全てクロスバ部３０を通過し、待機状態になるメモリアクセスリクエストはない（Ｈ１＝Ｈ２＝０）。したがって、ＲＡ比較部２０は、入力部１−１に格納されているメモリアクセスリクエストを入力部３−２に移動するかどうかを判定することになる。入力部１−１に保持されるメモリアクセスリクエストＡ３（３）は、先行するメモリアクセスリクエストＡ２（２）、Ａ１（１）およびメモリアクセスリクエストＢ１（２）と出力先が異なる。即ち、一致信号Ｃ１は“０”である。したがって、選択信号生成部２２は、ＳＥＬ＝１１とする。ＲＡ比較部２０は、セレクタ１０に対して入力部１−１の出力を選択する選択信号２２０を出力する。
【００５６】
状態Ｔ＝２では、セレクタ１０は選択信号２２０に基づいて入力部１−１の出力を選択するため、入力部３−２はメモリアクセスリクエストＡ３（３）を保持する。また、入力部３−１、３−３、３−４は、それぞれ入力部２−１、２−３、２−４からメモリアクセスリクエストが移動し、Ａ２（２）、Ｃ２（４）、Ｄ２（１）を保持する。即ち、メモリアクセスリクエストＡ３（３）は、状態Ｔ＝２において、競合調停に参加することになる。出力部４−１、４−２、４−３、４−４は、クロスバ部３０を通過したメモリアクセスリクエストＡ１（１）、Ｂ１（２）、Ｃ１（３）、Ｄ１（４）を保持することになる。全てのメモリアクセスリクエストはクロスバ部３０に入力される状態になる。このとき、各メモリアクセスリクエストの出力先は全て異なるため、調停処理による待機なしに状態Ｔ＝３に遷移する。
【００５７】
状態Ｔ＝３では、出力部４−１、４−２、４−３、４−４にメモリアクセスリクエストＤ２（１）、Ａ２（２）、Ａ３（３）、Ｃ２（４）がセットされる。この状態で全てのメモリアクセスリクエストはクロスバ部３０を通過したことになり、図３に示される処理に比べて１タイミング早いことがわかる。また、メモリアクセスリクエストＡ２（２）は、メモリアクセスリクエストＡ３（３）に追い越されてクロスバ部３０を通過することはなく、処理秩序が保たれている。
【００５８】
また、図９には図４に対応する競合がある場合の動作を示すタイムチャートが示される。図９の状態Ｔ＝１は、図４の状態Ｔ＝１と同じ状態である。状態Ｔ＝１において、入力部３−１〜４にはメモリアクセスリクエストＥ１（４）、Ｆ１（２）、Ｇ１（３）、Ｈ１（４）が保持されている。また、入力部２−１にメモリアクセスリクエストＥ２（１）、入力１−１にＥ３（３）が保持されている。競合調停部２１は、入力３−１〜４に保持されているメモリアクセスリクエストの競合を調停し、クロスバ出力を制御する。この場合、メモリアクセスリクエストＥ１（４）とメモリアクセスリクエストＨ１（４）とが共に出力部４−４に出力要求しているため、競合調停部２１は調停処理を行う。メモリアクセスリクエストＨ１（４）を先に出力部４−４に出力するものとして、メモリアクセスリクエストＥ１は入力部３−１で待機状態となる。メモリアクセスリクエストＦ１（２）とメモリアクセスリクエストＧ１（３）とは、競合しないため、クロスバ部３０を通過して出力部４−２、４−３に移動するように制御される。
【００５９】
ＲＡ比較部２０は、入力部１−１、２−１、３−１、２−２、３−２に保持されるメモリアクセスリクエストの出力先情報の有効ビット３１とルーティングアドレスビット３２と、競合調停結果２２１とに基づいて選択信号２２０を生成する。このとき、入力部２−１、１−１にメモリアクセスリクエストが保持され（Ｖ１＝Ｖ２＝１）、入力部２−２は空き状態である（Ｖ４＝０）。入力部３−１に保持されるメモリアクセスリクエストＥ１（４）は待機状態になっているが（Ｈ１＝１）、入力部３−２のメモリアクセスリクエストＦ１（２）は調停を受けず、クロスバ部３０を通過する（Ｈ２＝０）。したがって、ＲＡ比較部２０は、入力部２−１に格納されているメモリアクセスリクエストＥ２（１）を入力部３−２に移動するかどうかを判定することになる。入力部２−１に保持されるメモリアクセスリクエストＥ３（１）は、先行するメモリアクセスリクエストＥ１（４）、Ｆ１（２）と出力先が異なる。即ち、一致信号Ｃ２は“０”である。したがって、選択信号生成部２２は、ＳＥＬ＝１０とする。ＲＡ比較部２０は、セレクタ１０に対して入力部２−１の出力を選択する選択信号２２０を出力する。
【００６０】
状態Ｔ＝２において、入力部３−１は待機状態のメモリアクセスリクエストＥ１（４）を保持する。セレクタ１０は選択信号２２０に基づいてメモリアクセスリクエストＥ２（１）を選択して出力し、入力部３−２に保持させる。入力部２−１には入力部１−１に保持されていたメモリアクセスリクエストＥ３（３）が移動し、保持される。出力部４−２、４−３、４−４は、クロスバ部３０を通過したメモリアクセスリクエストＦ１（２）、Ｇ１（３）、Ｈ１（４）を保持する。この状態で、待機状態のメモリアクセスリクエストＥ１（４）とともにメモリアクセスリクエストＥ２（１）も競合調停に加わることができる。
【００６１】
状態Ｔ＝３において、メモリアクセスリクエストＥ１（４）、Ｅ２（１）はクロスバ部３０を通過し、出力部４−４、４−１に保持される。また、入力部３−１は、メモリアクセスリクエストＥ３（３）を保持する。状態Ｔ＝４において、メモリアクセスリクエストＥ３（３）はクロスバ部３０を通過して出力部４−３に保持される。ここまで４状態を遷移することにより処理が終わる。図４において説明した５状態に比べ、１タイミング早く処理が完了することが判る。これは、メモリアクセスリクエストＥ２（１）がポート２の入力部３−２を使用することにより１タイミング早くクロスバ部３０を通過することができたためである。また、状態Ｔ＝２においてメモリアクセスリクエストＥ２（１）が入力部３−２に移動するため、後続のメモリアクセスリクエストＥ３（３）は入力部２−１に移動できるようになる。したがって、状態Ｔ＝４のタイミングで出力部４−３に送ることが可能となる。
【００６２】
ここで、ＲＡ比較部２０において、クロスバ部３０の出力先が異なる場合に出力先が異なると判断しているが、アクセスするメモリアドレスが異なる場合に出力先が異なると判断しても問題ない。
【００６３】
以上説明したように、本発明によれば、入力ポート内の同一メモリアドレスにアクセスするリクエスト間のアクセス順序を守りながらクロスバ性能を向上できる。これは、マルチプロセッサシステムにおいて、クロスバ装置の入力部で先行するメモリアクセスリクエストと後続のメモリアクセスリクエストの出力先が異なり、かつ、リクエストの無い入力部がある場合に、後続のメモリアクセスリクエストをメモリアクセスリクエストのない入力部を経由してクロスバを通過させるため、可能となる。また、システム構成上未使用の入力部を経由してクロスバ部を通過させるため、入力ポート内の同一メモリアドレスにアクセスするリクエスト間のアクセス順序を守りながらクロスバ性能を向上できる。
【００６４】
図１０、図１１を参照して第２の実施の形態を説明する。第２の実施の形態の基本的構成は第１の実施の形態と同じであるが、未使用ポートの検出方法が異なる。図１０に第２の実施の形態に係るクロスバ装置の構成が示される。クロスバ装置は、入力部１−１〜４、３−１〜４、入力バッファ５−１〜４、出力部４−１〜４、クロスバ部３０、競合調停部２１、構成保持部４０、ＲＡ比較部４１、セレクタ５０を具備する。
【００６５】
ポート１〜４にＣＰＵ１０１−１〜４が接続され、メモリアクセスリクエストが送られる。ポート１から入力されるメモリアクセスリクエストは、入力部１−１、入力バッファ５−１、入力部３−１を介してクロスバ部３０に入力される。入力部１−１の出力は、セレクタ５０にも入力される。ポート２から入力されるメモリアクセスリクエストは、入力部１−２を介してセレクタ５０に入力される。セレクタ５０は、ＲＡ比較部４１から出力される選択信号２４１に基づいて、入力部１−１の出力と入力部１−２の出力との一方を選択して出力する。セレクタ５０の出力は、入力バッファ５−２、入力部３−２を介してクロスバ部３０に入力される。ポート３から入力されるメモリアクセスリクエストは、入力部１−３、入力バッファ５−３、入力部５−３、入力部３−３を介してクロスバ部３０に入力される。ポート４から入力されるメモリアクセスリクエストは、入力部１−４、入力バッファ５−４、入力部３−４を介してクロスバ部３０に入力される。
【００６６】
入力バッファ５−１〜４は、メモリアクセスリクエスト競合発生時の緩衝用として設けられるバッファであり、複数のメモリアクセスリクエストを格納できる先入れ先出し（ＦＩＦＯ）回路である。入力部１−１〜４、３−１〜４、入力バッファ５−１〜４は、メモリアクセスリクエストおよび出力情報（ＲＡ）を保持する。クロスバ部３０にメモリアクセスリクエストを出力する入力部３−１〜４に保持される出力先情報は、競合調停部２１に入力される。競合調停部２１は、これらの出力先情報に基づいて競合状態を調停し、クロスバ部３０を制御してメモリアクセスリクエストをその出力先の出力部４−１〜４に送る。このとき、競合調停によりクロスバ部３０を通過できなかったメモリアクセスリクエストは、入力部３−１〜４で待機状態となる。クロスバ部３０の出力は、出力部４−１〜４に保持され、保持されたメモリアクセスリクエストは、メモリ部（図示せず）に出力される。
【００６７】
構成保持部４０は、ポート２に接続されるＣＰＵが停止状態、或いはポート２にＣＰＵが接続されていない場合に、入力部１−２は未使用であるという情報を保持し、その入力部の使用／未使用情報２４０をＲＡ比較部４１に通知する。
【００６８】
ＲＡ比較部４１は、入力部１−１の出力先情報２０１−１を入力し、入力部１−１に保持されるメモリアクセスリクエストの移動先を決定する。図１１は、ＲＡ比較部４１の構成を示すブロック図である。ＲＡ比較部４１は、入力部１−２の使用／未使用情報２４０と入力部１−１の出力先情報２０１−１とを入力し、選択信号２４１を生成する選択信号生成部４２を備える。
【００６９】
構成保持部４０から出力される入力部１−２の使用／未使用情報２４０は、ポート２に接続されるＣＰＵが停止状態、或いはポート２にＣＰＵが接続されていない場合に、入力部１−２は未使用であることを示す使用中情報Ｖを含む。使用中情報Ｖは、未使用の場合“０”、使用中の場合“１”となる。入力部１−１から出力される出力先情報２０１−１は、図６に示されるように、有効ビット３１により示される有効無効情報Ｖ１と、ルーティングアドレスビット３２により示されるアドレスＲ１とを含む。
【００７０】
使用中情報Ｖが“１”の場合、ポート２に入力されるメモリアクセスリクエストがあるため、選択信号生成部４２は、セレクタ５０が入力部１−２の出力を選択するように選択信号２４１を生成する（ＳＥＬ＝０）。また、使用中情報Ｖが“０”の場合、アドレスＲ１に基づいてセレクタ５０が選択するメモリアクセスリクエストを決定し、選択信号２４１を生成する。出力先が出力部４−１（Ｒ１＝００１）または出力部４−２（Ｒ１＝０１０）のとき、セレクタ５０が入力部１−２の出力を選択するように選択信号２４１を生成する（ＳＥＬ＝０）。出力先が出力部４−３（Ｒ１＝０１１）または出力部４−４（Ｒ１＝１００）のとき、セレクタ５０が入力部１−１の出力を選択するように選択信号２４１を生成する（ＳＥＬ＝１）。
【００７１】
このように制御することにより、入力部１−２が未使用である場合に、入力部１−１に格納されるメモリアクセスリクエストは、入力部１−１のメモリアクセスリクエストの出力先情報に基づいて、入力バッファ５−１もしくは入力バッファ５−２に入力されるようになる。入力バッファ５−２に入力部１−１に保持されるメモリアクセスリクエストを送るとき、そのメモリアクセスリクエストが入力バッファ５−１に入力されないように制御されるのはいうまでもない。
【００７２】
したがって、入力部１−２が未使用である場合には従来使用されていなかった入力バッファ５−２および入力部３−２を使用し、メモリアクセスリクエストがクロスバを通過できるようにすることでクロスバ性能を向上させることが出来る。また、このように出力先により入力部の経路を固定することにより、出力先が同じメモリアクセスリクエストはアクセス順序が守られることになる。
【００７３】
第１および第２の実施の形態では、説明を簡略にするために１入力ポートのみにＲＡ比較部およびセレクタを設けた構成により説明したが、ＲＡ比較部およびセレクタは複数ポートに設けてもよいし、全ポートに設けてもよい。
【００７４】
以上説明したように、マルチプロセッサシステムにおいて、入力ポート内の同一メモリアドレスにアクセスするメモリアクセスリクエスト間のアクセス順序を守りながらクロスバ性能を向上できる。これは、クロスバ装置の入力部でメモリアクセスリクエストの出力先が異なり、かつ、メモリアクセスリクエストの無い入力部がある場合に、後続のメモリアクセスリクエストをリクエストのない入力部を経由してクロスバを通過させることにより可能となる。
【００７５】
また、システム構成上未使用のクロスバ入力部を経由してクロスバを通過させることにより、入力ポート内の同一メモリアドレスにアクセスするリクエスト間のアクセス順序を守りながらクロスバ性能を向上できる。
【図面の簡単な説明】
【００７６】
【図１】マルチプロセッサシステムの構成を示すブロック図である。
【図２】従来のクロスバ装置の構成を示すブロック図である。
【図３】従来のクロスバ装置の動作を示すタイムチャート（１）である。
【図４】従来のクロスバ装置の動作を示すタイムチャート（２）である。
【図５】本発明の第１の実施の形態に係るクロスバ装置の構成を示すブロック図である。
【図６】同出力先情報の構成を示す図である。
【図７】同ＲＡ比較部の構成を示すブロック図である。
【図８】同クロスバ装置の動作を示すタイムチャート（１）である。
【図９】同クロスバ装置の動作を示すタイムチャート（２）である。
【図１０】本発明の第２の実施の形態に係るクロスバ装置の構成を示すブロック図である。
【図１１】同ＲＡ比較部の構成を示すブロック図である。
【符号の説明】
【００７７】
１−１〜４、２−１〜４、３−１〜４  入力部
４−１〜４  出力部
５−１〜４  入力バッファ
１０  セレクタ
２０  ＲＡ比較部
２１  競合調停部
２２  選択信号生成部
３０  クロスバ部
３１  有効ビット（Ｖｂｉｔ）
３２  ルーティングアドレスビット（Ｒｂｉｔ）
４０  構成保持部
４１  ＲＡ比較部
４２  選択信号生成部
５０  セレクタ
６１〜６５  比較回路
７１〜７５  論理積回路
７７、７８  論理和回路
１０１−１〜４  中央処理装置（ＣＰＵ）
１０２−１〜４  主記憶装置（ＭＭＵ）
２０１−１、２０２−１、２０２−２、２０３−１、２０３−２  出力先情報
２２０  選択信号
２２１  競合調停結果
２４０  入力部使用／未使用情報
２４１  選択信号
【図１】
2006277404.tif 000003
【図２】
2006277404.tif 000004
【図３】
2006277404.tif 000005
【図４】
2006277404.tif 000006
【図５】
2006277404.tif 000007
【図６】
2006277404.tif 000008
【図７】
2006277404.tif 000009
【図８】
2006277404.tif 000010
【図９】
2006277404.tif 000011
【図１０】
2006277404.tif 000012
【図１１】
2006277404.tif 000013