(57)【要約】【課題】メモリデータを主記憶装置２から演算処理装置１へ高速に転送することができるようにする。【解決手段】入力バッファに入力されたリクエストのリプライのうち、ロードリクエストのリプライはロードリプライ競合調停回路２１０で競合調停され、レジスタ４１０乃至４１３からクロスバ５１０を介してセレクタ１１１０経由でレジスタ６１０に格納され、出力ポート０に出力される。ストアリクエストのリプライは、ストアリプライカウント回路８１０においてカウントされ、カウンタ９１０によってその累計がカウントされる。ストアリプライ生成回路１０１０によって、一定時間経過する毎にまたはロードリクエストのリプライがない場合にストアリクエストのリプライのリクエスト識別子と、カウンタ９１０のカウント値とからストアリクエストのリプライが生成され、セレクタ１１１０経由でレジスタ６１０に格納され、出力ポート０に出力される。【選択図】図１
2008250832.tif 000002
【特許請求の範囲】
【請求項１】
１または複数のプロセッサのメモリに対するデータのロードおよびストアを制御するメモリデータ転送制御装置であって、
入力された複数のリクエストのリプライうち、１または複数のストアリクエストのリプライを前記ストアリクエストに対応する前記プロセッサ毎にカウントするカウント手段と、
前記カウント手段によってカウントされたカウント値と前記リプライの識別情報を含むリプライを生成する生成手段と、
前記生成手段によって生成された前記リプライを前記プロセッサの対応するものに所定のタイミングで返送する返送手段と
を備えることを特徴とするメモリデータ転送制御装置。
【請求項２】
複数の前記リプライがロードリクエストのリプライであるか、ストアリクエストのリプライであるかを判別する判別手段をさらに備え、
前記カウント手段は、前記判別手段によってストアリクエストのリプライであると判別されたものカウントする
ことを特徴とする請求項１に記載のメモリデータ転送制御装置。
【請求項３】
前記返送手段は、前記生成手段によって生成された前記リプライを、ロードリクエストのリプライがないとき、または所定時間経過する毎に、前記プロセッサの対応するものに返送する
ことを特徴とする請求項１に記載のメモリデータ転送制御装置。
【請求項４】
１または複数のプロセッサのメモリに対するデータのロードおよびストアを制御するメモリデータ転送制御方法であって、
入力された複数のリクエストのリプライうち、１または複数のストアリクエストのリプライを前記ストアリクエストに対応する前記プロセッサ毎にカウントするカウントステップと、
前記カウントステップにおいてカウントされたカウント値と前記リプライの識別情報を含むリプライを生成する生成ステップと、
前記生成ステップにおいて生成された前記リプライを前記プロセッサの対応するものに所定のタイミングで返送する返送ステップと
を備えることを特徴とするメモリデータ転送制御方法。
【請求項５】
複数の前記リプライがロードリクエストのリプライであるか、ストアリクエストのリプライであるかを判別する判別ステップをさらに備え、
前記カウントステップにおいては、前記判別ステップにおいてストアリクエストのリプライであると判別されたものがカウントされる
ことを特徴とする請求項４に記載のメモリデータ転送制御方法。
【請求項６】
前記返送ステップにおいては、前記生成ステップにおいて生成された前記リプライを、ロードリクエストのリプライがないとき、または所定時間経過する毎に、前記プロセッサの対応するものに返送する
ことを特徴とする請求項１に記載のメモリデータ転送制御方法。
【請求項７】
１または複数のプロセッサのメモリに対するデータのロードおよびストアを制御するメモリデータ転送制御装置を制御するメモリデータ転送制御プログラムであって、
入力された複数のリクエストのリプライうち、１または複数のストアリクエストのリプライを前記ストアリクエストに対応する前記プロセッサ毎にカウントするカウントステップと、
前記カウントステップにおいてカウントされたカウント値と前記リプライの識別情報を含むリプライを生成する生成ステップと、
前記生成ステップにおいて生成された前記リプライを前記プロセッサの対応するものに所定のタイミングで返送する返送ステップと
を前記メモリデータ転送制御装置に実行させることを特徴とするメモリデータ転送制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリデータ転送制御方法に関し、特に、複数の演算処理装置と複数の主記憶装置が接続された情報処理装置の、主記憶装置から演算処理装置へのメモリデータ転送を高速化するメモリデータ転送制御方法に関するものである。
【背景技術】
【０００２】
従来、図５に示すように、コンピュータ装置において、演算処理装置１から発行されたリクエストは、主記憶装置２のリクエスト制御部１０を通り、メモリ制御部１１でメモリアクセスを行い、リプライ制御部１２から演算処理装置１にリプライを返す。図６に従来のリプライ制御部１２の回路構成の例を示す。メモリアクセスしたリクエストのリプライは、まず、リプライ制御部１２の入力バッファ１００乃至１０３（この例は４×１クロスバ構成）に格納され、リクエスト種別に関わらず、全リクエストが競合調停回路２００で競合調停に参加し、競合調停に勝ったリプライのみがクロスバ５００を通過し、レジスタ６００に格納され、一命令ずつ出力ポート０に出力されていた。
【０００３】
図７は、従来のストアリクエストのリプライの構成例を示している。同図に示すように、従来のストアリクエストのリプライは、所定ビット数のデータであり、先頭にはリクエスト識別子が配置され、残りの各ビットには０がセットされている。
【０００４】
次に、図８に従来のリプライ制御部１２のタイムチャートの一例を示し、その動作について説明する。まず、マシンサイクル０Ｔでリプライ制御部１２の入力ＣＨ０（以降ＣＨはチャネルを表す）乃至ＣＨ３にリクエストのリプライが入力されると、マシンサイクル１Ｔで入力バッファ１００乃至１０３にそのリプライが格納される。入力バッファ１００乃至１０３に格納されたリクエストのリプライは競合調停回路２００に入力され、競合調停に参加し（ここでは競合調停の優先順位を高い方からＣＨ０、ＣＨ１、ＣＨ２、ＣＨ３とする）、マシンサイクル２Ｔ乃至５Ｔでレジスタ３００に競合調停に勝ったリクエストのリプライが格納される。
【０００５】
競合調停回路２００で調合調停をしている間、リクエストのリプライはレジスタ４００乃至４０３に格納され、競合勝ちするまでホールドされる。例えば、マシンサイクル２Ｔで競合勝ちしたＣＨ０のストアリクエストのリプライは、レジスタ４００に格納されるとホールドされることなくクロスバ５００を通過し、マシンサイクル３Ｔでレジスタ６００に入力される。マシンサイクル３Ｔで競合勝ちしたＣＨ１のロードリクエストのリプライは１Ｔ間競合負けしたため、マシンサイクル２Ｔから１Ｔ間レジスタ４０１にホールドされた後、クロスバ５００を通過し、マシンサイクル４Ｔでレジスタ６００に格納される。
【０００６】
次に、マシンサイクル１Ｔでリプライ制御部の入力ＣＨ０乃至ＣＨ３にリクエストのリプライが入力されると、リクエストのリプライはマシンサイクル２Ｔで入力バッファ１００乃至１０３に格納される。入力バッファ１０１乃至１０３のリプライは自チャネルからの先行リプライが競合調停中であるため、競合調停には参加できず、入力バッファ１０１乃至１０３で先行リプライが競合勝ちするまでホールドされる。
【０００７】
以上の動作を繰り返し、マシンサイクル３Ｔから１４Ｔまで連続して出力ポート０にリクエストのリプライが出力される。
【０００８】
また、クロスバの通過速度をストア系リクエストに対しては１マシンクロック通過のみに制限することにより、ストア系リクエストのクロスバ占有率が下がり、結果ロード系リクエストのクロスバ総占有割合が増え、ロード系リクエストがよりクロスバを通過し易くなり、ＣＰＵに逸早くロードデータの供給をすることができ、ロードリクエスト待ちの演算リクエストや後続のリクエスト群の発行と実行が逸早く行えるようにしたものがある（例えば、特許文献１参照）。
【特許文献１】特開平１１−２５００１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来の構成では、ストアリクエストのリプライもロードリクエストのリプライも同じパスを使用するため、ストアリクエストのリプライの後続にロードリクエストのリプライを受け付けた場合は、ストアリクエストのリプライが競合調停回路２００で競合調停中の間、ロードリクエストのリプライは入力バッファ１００乃至１０３で待たされることになる。
【００１０】
また、リプライ制御部１２から演算処理装置１へのストアリクエストのリプライは、ストアリクエストの識別子と不要なデータを返し、リクエストの識別子は演算処理装置１のリクエスト数をカウントするカウンタでしか使用していなかった。
【００１１】
また、特許文献１記載の発明でも、ストア系リクエストのクロスバ占有率を下げることはできるが、クロスバを通過する点では図６の例と変わりはない。
【００１２】
本発明はこのような状況に鑑みてなされたものであり、ロードリクエストのリプライとストアリクエストのリプライのパスを別々のものにし、主記憶装置から演算処理装置へロードリクエストのリプライを優先的に返し、さらにストアリクエストのリプライはロードリクエストのリプライがないときのみに、あるいは一定時間経過する毎に同一演算処理装置毎にまとめて演算処理装置に返すことにより、主記憶装置から演算処理装置へのメモリデータ転送を高速に行うことを目的としている。
【課題を解決するための手段】
【００１３】
請求項１に記載のメモリデータ転送制御装置は、１または複数のプロセッサのメモリに対するデータのロードおよびストアを制御するメモリデータ転送制御装置であって、入力された複数のリクエストのリプライうち、１または複数のストアリクエストのリプライを前記ストアリクエストに対応する前記プロセッサ毎にカウントするカウント手段と、前記カウント手段によってカウントされたカウント値と前記リプライの識別情報を含むリプライを生成する生成手段と、前記生成手段によって生成された前記リプライを前記プロセッサの対応するものに所定のタイミングで返送する返送手段とを備えることを特徴とする。
また、複数の前記リプライがロードリクエストのリプライであるか、ストアリクエストのリプライであるかを判別する判別手段をさらに備え、前記カウント手段は、前記判別手段によってストアリクエストのリプライであると判別されたものカウントするようにすることができる。
また、前記返送手段は、前記生成手段によって生成された前記リプライを、ロードリクエストのリプライがないとき、または所定時間経過する毎に、前記プロセッサの対応するものに返送するようにすることができる。
請求項４に記載のメモリデータ転送制御方法は、１または複数のプロセッサのメモリに対するデータのロードおよびストアを制御するメモリデータ転送制御方法であって、入力された複数のリクエストのリプライうち、１または複数のストアリクエストのリプライを前記ストアリクエストに対応する前記プロセッサ毎にカウントするカウントステップと、前記カウントステップにおいてカウントされたカウント値と前記リプライの識別情報を含むリプライを生成する生成ステップと、前記生成ステップにおいて生成された前記リプライを前記プロセッサの対応するものに所定のタイミングで返送する返送ステップとを備えることを特徴とする。
また、複数の前記リプライがロードリクエストのリプライであるか、ストアリクエストのリプライであるかを判別する判別ステップをさらに備え、前記カウントステップにおいては、前記判別ステップにおいてストアリクエストのリプライであると判別されたものがカウントされるようにすることができる。
また、前記返送ステップにおいては、前記生成ステップにおいて生成された前記リプライを、ロードリクエストのリプライがないとき、または所定時間経過する毎に、前記プロセッサの対応するものに返送するようにすることができる。
請求項７に記載のメモリデータ転送制御プログラムは、１または複数のプロセッサのメモリに対するデータのロードおよびストアを制御するメモリデータ転送制御装置を制御するメモリデータ転送制御プログラムであって、入力された複数のリクエストのリプライうち、１または複数のストアリクエストのリプライを前記ストアリクエストに対応する前記プロセッサ毎にカウントするカウントステップと、前記カウントステップにおいてカウントされたカウント値と前記リプライの識別情報を含むリプライを生成する生成ステップと、前記生成ステップにおいて生成された前記リプライを前記プロセッサの対応するものに所定のタイミングで返送する返送ステップとを前記メモリデータ転送制御装置に実行させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、１または複数のプロセッサのメモリに対するデータのロードおよびストアを制御するときに、入力された複数のリクエストのリプライうち、１または複数のストアリクエストのリプライを前記ストアリクエストに対応する前記プロセッサ毎にカウントし、カウントされたカウント値とリプライの識別情報を含むリプライを生成し、そのリプライをプロセッサの対応するものに所定のタイミングで返送するようにしたので、同一プロセッサからのストアリクエストのリプライをまとめて返すことができ、ロードリクエストのリプライをストアリクエストのリプライに対して優先的に処理することができる。これにより、メモリからプロセッサへデータをへ高速に転送することが可能となり、処理能力を向上させることができる。
【発明を実施するための最良の形態】
【００１５】
図１は、本発明が適用されるコンピュータ装置を構成するリプライ制御部１２の回路構成例を示す図である。コンピュータ装置は、図５に示したものと同様であるのでその図示および説明は省略する。なお、図５では演算処理装置１は１つとしたが、複数の演算処理装置１が主記憶装置２に接続されていてもよい。
【００１６】
リプライ制御部１２は、メモリ制御部１１から入力された各チャネル（ＣＨ０乃至ＣＨ３）のリクエストが格納される入力バッファ１１０乃至１１３と、入力バッファ１１０乃至１１３から出力されるリクエストがそれぞれ入力され、リクエスト種別が判別されるリクエスト種別判別回路７１０乃至７１３と、各リクエスト種別判別回路７１０乃至７１３から出力されるロードリプライがそれぞれ入力され、競合調停を行うロードリプライ競合調停回路２１０と、各リクエスト種別判別回路７１０乃至７１３から出力されるストアリプライが入力され、ストアリプライの個数をカウントするストアリプライカウント回路８１０と、ストアリプライカウント回路８１０のカウント数の累計をカウントするカウンタ９１０と、ストアリプライのリクエストの識別子（リクエスト識別子）と、カウンタ９１０のカウント値からなるストアリクエストのリプライを生成するストアリプライ生成回路１０１０と、ロードリプライ競合調停回路２１０の調停結果が格納されるレジスタ３１０と、各リクエスト種別判別回路７１０乃至７１３を介して出力されるロードリプライ（ロードリプライ競合調停回路２１０で競合調停に参加しているＣＨ０乃至ＣＨ３からのロードリクエストのリプライ）のリクエスト識別子とリプライデータを保持するレジスタ４１０乃至４１３と、レジスタ３１０に格納された調停結果に従って各レジスタ４１０乃至４１３の所定のものに格納されたロードリクエストのリプライの所定のものを選択的に出力するクロスバ５１０と、クロスバ５１０から出力されるロードリクエストのリプライと、ストアリプライ生成回路１０１０から出力されるストアリクエストのリプライのいずれかを選択してレジスタ６１０に出力するセレクタ１１１０と、セレクタ１１１０において選択されたリプライを格納し、出力ポート０に出力するレジスタ６１０とから構成されている。
【００１７】
リプライ制御部１２を構成する入力バッファ１１０乃至１１３（この例は４×１クロスバ構成）は、リプライ制御部１２で受け付けたリクエストのリプライを格納するバッファである。リクエスト種別判別回路７１０乃至７１３は、ロードリクエストのリプライであるかストアリクエストのリプライであるかを判別する回路である。ロードリプライ競合調停回路２１０は、ロードリクエストのリプライについて競合調停を行う回路である。レジスタ３１０は、ロードリプライ競合調停回路２１０による競合調停の結果を格納するレジスタである。
【００１８】
レジスタ４１０乃至４１３は、ロードリプライ競合調停回路２１０で競合調停に参加しているＣＨ０乃至ＣＨ３からのロードリクエストのリプライのリクエスト識別子とリプライデータを保持するレジスタである。クロスバ５１０は、ロードリプライ競合調停回路２１０で競合調停に勝ったロードリクエストのリプライを選択する回路である。
【００１９】
ストアリプライカウント回路８１０は、あるタイミングで、リクエスト種別判別回路７１０乃至７１３においてストアリクエストのリプライであると判別されたリプライの個数をカウントする回路である。
【００２０】
ストアリプライ生成回路１０１０は、ストアリクエストのリプライの識別子（リクエスト識別子）とカウンタ９１０のカウント値によってストアリクエストのリプライ（図２）を生成する回路である。
【００２１】
セレクタ１１１０は、別々のパスで処理されたロードリクエストのリプライおよびストアリクエストのリプライのうち、ロードリクエストのリプライをレジスタ６１０へ送出するか、またはストアリクエストのリプライをレジスタ６１０へ送出するかを選択する回路であり、一定時間経過する毎に、あるいはロードリクエストのリプライが競合調停中でない（ロードリクエストのリプライがない）場合に、ストアリクエストのリプライを選択し、レジスタ６１０に供給する。
【００２２】
レジスタ６１０は、セレクタ１１１０によって選択され、供給されたリプライを出力するためのレジスタである。カウンタ９１０は、リプライ制御部１２で受け付けたストアリクエストのリプライのうち、演算処理装置１にリプライを返していない個数をカウントするカウンタである。即ち、ストアリクエストのリプライを演算処理装置１に返すまでの間にストアリプライカウント回路８１０においてカウントされたストアリクエストのリプライのカウント値の累計である。演算処理装置１にストアリクエストのリプライを返すと、カウンタ９１０のカウント値は０にリセットされる。
【００２３】
次に、リプライ制御部１２の動作について説明する。まず、各チャネル０乃至３（ＣＨ０乃至ＣＨ３）のリクエストのリプライは、入力バッファ１１０乃至１１３にそれぞれ格納され、リクエスト種別判別回路７１０乃至７１３に供給される。リクエスト種別判別回路７１０乃至７１３においては、各入力バッファ１１０乃至１１３からのリプライがロードリクエストのリプライであるかストアリクエストのリプライであるかが判別される。
【００２４】
リクエスト種別判別回路７１０乃至７１３においてロードリクエストのリプライであると判別されると、ロードリクエストのリプライであると判別されたリプライがロードリプライ競合調停回路２１０へ送出され、競合調停に参加する。競合調停に参加しているロードリクエストのリプライは、レジスタ４１０乃至４１３に格納され、ロードリプライ競合調停回路２１０による競合調停の結果、レジスタ３１０に競合勝ちとして選択されると（競合勝ちしたロードリクエストのリプライを示すデータ（競合調停結果）がレジスタ３１０に格納されると）、レジスタ４１０乃至４１３のいずれかに格納されている競合調停結果に対応するロードリクエストのリプライがクロスバ５１０を通過し、セレクタ１１１０へ出力される。
【００２５】
また、リクエスト種別判別回路７１０乃至７１３においてストアリクエストのリプライであると判別されると、ストアリクエストのリプライであると判別されたリプライがストアリプライカウント回路８１０へ送出され、ストアリプライカウント回路８１０はそのタイミングでＣＨ０乃至ＣＨ３から受け付けたストアリクエストのリプライの個数をカウントし、その個数分だけカウンタ９１０のカウント値をカウントアップする。カウンタ９１０のカウント値の初期値は０である。
【００２６】
ストアリプライ生成回路１０１０は、カウンタ９１０でカウントされたストアリクエストのリプライ数を従来のストアリクエストのリプライにおいて不要なデータが埋め込まれていた部分（図７のストアリクエストのリプライ構成において値０が埋め込まれていた部分）にストアリプライカウンタ値として埋め込み、ストアリクエストのリプライの識別子（リクエスト識別子）と合わせて、ストアリクエストのリプライデータを生成し（図２）、セレクタ１１１０へ送出する。
【００２７】
ストアリクエストのリプライとして生成されるストアリプライのカウンタ値は、従来不要なデータを返していたセレクタ１１１０によって、一定時間経過する毎に、あるいはロードリクエストのリプライがない場合にのみ、ストアリクエストのリプライが選択されることによってレジスタ６１０に出力される。それ以外の場合はロードリクエストのリプライが選択され、レジスタ６１０に出力される。
【００２８】
セレクタ１１１０においてストアリクエストのリプライが選択されると、ストアリクエストのリプライ構成の中のストアリプライカウンタ値として設定されたストアリクエストのリプライの個数分、カウンタ９１０がカウントダウンされる。また、演算処理装置１内のリクエスト数をカウントしているカウンタは、リプライ制御部１２から送出されたストアリクエストのリプライの個数分（ストアリクエストのリプライの中のストアリプライカウンタ値で表される個数分）だけリクエスト数をカウントダウンする。
【００２９】
図３は、ロードリクエストのリプライ構成例を示している。同図に示すように、ロードリクエストのリプライは、リクエスト識別子とリプライデータによって構成されている。
【００３０】
次に、図４に本実施の形態のリプライ制御部１２のタイムチャートの一例を示し、その動作を説明する。ここで、図４に示したタイムチャートのリプライ制御部１２で受け付けるリクエストのリプライのパターンは、図８のタイムチャートにおいて受け付けたリクエストのリプライのパターンと同様であるものとする。
【００３１】
まず、マシンサイクル０Ｔで、リプライ制御部１２により各入力チャネル（ＣＨ０乃至ＣＨ３）のリクエストのリプライを受け付けると、受け付けられたリクエストのリプライは、マシンサイクル１Ｔで入力バッファ１１０乃至１１３にそれぞれ格納される。ここで、リクエストのリプライは、ロードリクエストの場合、図３に示したような構成となっている。即ち、先頭には所定ビット数からなるリクエスト識別子が配置され、以降の残りのビットにはリプライデータが配置される。ストアリクエストの場合、図７に示したような構成となっている。即ち、先頭には所定ビット数からなるリクエスト識別子が配置され、その他の各ビットは０とされている。
【００３２】
入力バッファ１１０乃至１１３に格納されたリクエストのリプライは、リクエスト種別判別回路７１０乃至７１３において、リクエスト識別子に基づきロードリクエストのリプライであるかストアリクエストのリプライであるかが判別される。
【００３３】
この例では、最初、チャネル１（ＣＨ１）とチャネル２（ＣＨ２）からのリプライは、それぞれロードリクエストのリプライであるため、ロードリプライ競合調停回路２１０に入力され、競合調停に参加し、その結果がマシンサイクル２Ｔ〜３Ｔでレジスタ３１０に格納される。
【００３４】
ロードリプライ競合調停回路２１０で競合調停に参加している間、ＣＨ１からのロードリクエストのリプライはレジスタ４１１に格納され、マシンサイクル２Ｔで競合勝ちし、クロスバ５１０を通過して、マシンサイクル３Ｔでレジスタ６１０に格納され、出力ポート０に出力される。
【００３５】
ＣＨ２からのロードリクエストのリプライは、マシンサイクル３Ｔで競合勝ちをするため、レジスタ４１２で１Ｔ間（１マシンサイクル分の時間）ホールドされ、マシンサイクル４Ｔでレジスタ６１０に格納され、出力ポート０に出力される。
【００３６】
一方、マシンサイクル１Ｔで入力バッファ１１０，１１３にそれぞれ格納され、リクエスト種別判別回路７１０，７１３でそれぞれストアリクエストのリプライと判別されたＣＨ０およびＣＨ３からのリプライは、それぞれストアリプライカウント回路８１０に入力され、同タイミングでストアリクエストのリプライ個数がカウントされ（この場合は２）、マシンサイクル２Ｔでカウンタ９１０のカウント値を＋２（２だけ加算）する。カウンタ９１０のカウント値の初期値は０である。
【００３７】
以上の動作を繰り返し、マシンサイクル３Ｔ〜８Ｔでロードリクエストのリプライをレジスタ６１０から出力ポート０に出力する。マシンサイクル８Ｔで、競合負けをしているロードリクエストのリプライがレジスタ３１０からなくなるため、マシンサイクル９Ｔでストアリプライ生成回路１０１０においてストアリクエストのリプライの識別子（リクエスト識別子）とカウンタ９１０のカウント値からなるストアリクエストのリプライが生成され、レジスタ６１０に格納された後、出力ポート０に出力される。また、このタイミングでカウンタ９１０のカウント値が−６（６だけ減算）され、値０に初期化される。
【００３８】
図２は、ストアリプライ生成回路１０１０において生成されるストアリクエストのリプライの構成例を示している。同図に示すように、この例では、ストアリクエストのリプライは、先頭に所定ビット数のリクエスト識別子が配置され、末尾に所定ビット数からなるストアリプライカウンタ値（カウンタ９１０のカウント値）が配置される。その他の各ビットの値は０とされる。
【００３９】
図８のタイムチャートの動作と比べて、図４のタイムチャートの動作において特に改善された点は、まず１点目として、ＣＨ３からのリクエストのリプライでは、マシンサイクル０Ｔでリプライ制御部１２に入力されたストアリクエストが競合調停に参加しないため、その後続のロードリクエストのリプライが入力バッファ１１３で待たされることなく競合調停に参加でき、さらにその後続のロードリクエストが入力バッファ１１３でホールドされる時間が短縮される点が挙げられる。
【００４０】
これにより、従来は、図８に示したように、マシンサイクル３Ｔ〜１４Ｔにおいてロードリクエストのリプライをレジスタ６００に格納し、マシンサイクル１４Ｔで最後のロードリクエストのリプライをレジスタ６００に格納していたものが、本実施の形態により、図４に示すように、マシンサイクル３Ｔ〜８Ｔでロードリクエストのリプライをレジスタ６１０に格納し、マシンサイクル８Ｔで最後のロードリクエストのリプライがレジスタ６１０に格納される。このように、ロードリクエストのリプライがレジスタ６１０に格納される時間が短縮され、ロードリクエストのリプライを高速に処理できるようになる。
【００４１】
次に、２点目として、リプライ制御部１２から演算処理装置１へのパスは従来と同様であるため、同一演算処理装置１からのストアリクエストのリプライをまとめて返すことにより、効率よく転送を行うことができるようになる点が挙げられる。
【００４２】
上記実施の形態では、リプライ制御部１２で受け付けたリクエストのリプライは、入力バッファ１１０乃至１１３に一旦格納しているが、バッファ１１０乃至１１３には格納せず、直接、リクエスト種別判別回路７１０乃至７１３に入力し、ロードリクエストのリプライと判別されたものだけを入力バッファ１１０乃至１１３に格納し、ストアリクエストのリプライと判別されたものは、そのままストアリプライカウント回路８１０に入力するようにすることも可能である。
【００４３】
以上説明したように、本実施の形態では、リプライ制御部１２でロードリクエストのリプライとストアリクエストのリプライのパスを別々にし、主記憶装置２からストアリクエストのリプライを一命令ずつ演算処理装置１に返すのではなく、リプライ制御部１２内にストアリクエストのリプライ個数をカウントするカウンタ９１０を持ち、同一演算処理装置１からのストアリクエストに対するリプライをまとめ、一定時間経過する毎に、あるいはロードリクエストのリプライがない場合にだけ、ストアリクエストの識別子（リクエスト識別子）とカウンタ９１０のカウント値を演算処理装置１に返す。また、演算処理装置１内のリクエスト数をカウントするカウンタは、ストアリクエストのリプライの個数分だけマイナスできる（減算できる）ようにする。これにより、主記憶装置２から演算処理装置１へ、同一演算処理装置１からのストアリクエストのリプライをまとめて返すようにすることにより、ロードリクエストのリプライをストアリクエストのリプライに対して優先的に処理することができ、メモリデータを主記憶装置２から演算処理装置１へ高速に転送することが可能となる。これにより、コンピュータ装置の処理能力を向上させることができる。
【００４４】
なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更することができることは言うまでもない。
【産業上の利用可能性】
【００４５】
本発明は、ハイパフォーマンスコンピューティングを行うコンピュータに適用することができる。
【図面の簡単な説明】
【００４６】
【図１】本発明が適用されるコンピュータ装置のリプライ制御部の構成例を示すブロック図である。
【図２】ストアリクエストのリプライ構成例を示す図である。
【図３】ロードリクエストのリプライ構成例を示す図である。
【図４】図１のリプライ制御部の処理手順を示すタイムチャートである。
【図５】従来のコンピュータ装置の構成例を示すブロック図である。
【図６】図５のリプライ制御部の構成例を示すブロック図である。
【図７】従来のストアリクエストのリプライ構成例を示す図である。
【図８】図６のリプライ制御部の処理手順を示すタイムチャートである。
【符号の説明】
【００４７】
１  演算処理装置
２  主記憶装置
１０  リクエスト制御部
１１  メモリ制御部
１２  リプライ制御部
１００乃至１０３，１１０乃至１１３  入力バッファ
２００  競合調停回路
２１０  ロードリプライ競合調停回路
３００，３１０  レジスタ
４００乃至４０３，４１０乃至４１３  レジスタ
５００，５１０  クロスバ
６００，６１０  レジスタ
７１０乃至７１３  リクエスト種別判別回路
８１０  ストアリプライカウント回路
９１０  カウンタ
１０１０  ストアリプライ生成回路
１１１０  セレクタ
【図１】
2008250832.tif 000003
【図２】
2008250832.tif 000004
【図３】
2008250832.tif 000005
【図４】
2008250832.tif 000006
【図５】
2008250832.tif 000007
【図６】
2008250832.tif 000008
【図７】
2008250832.tif 000009
【図８】
2008250832.tif 000010