(57)【要約】【目的】内部に共有バッファを有し、単数もしくは複数の命令処理装置から送られるメモリ参照要求を処理する記憶制御装置を備えた情報処理装置において、メモリ参照要求の待ち時間を低減する。【構成】共有バッファ８のミスなどによりあるメモリ参照要求２０，２１が待たされた場合に、同一命令処理装置１，２から送られる後続メモリ参照要求の追い越し処理の可否を判定する順序保証判定部３９を設け、所定のメモリ参照順序が保証される場合に後続のメモリ参照要求を先に処理する。順序保証判定のために、メモリ参照要求に含まれるメモリ参照アドレス，命令処理装置１，２の識別子，メモリ参照要求の種類，命令順序判定番号を用いる。【選択図】図１
2004005710.tif 000002
【特許請求の範囲】
【請求項１】
命令処理部と、主記憶のデータの写しを保持するバッファと、前記命令処理部から送られるメモリ参照要求に応じて前記バッファに対してデータの読み書きを行なう記憶制御部と、先行するメモリ書き込み要求にバッファミスが生じた場合に後続するメモリ参照アドレスの異なるメモリ読み出し要求の追い越し処理を可能にする制御部とを備えた情報処置装置。
【請求項２】
命令処理部と、主記憶のデータの写しをストアイン方式で保持するバッファと、前記命令処理部から送られるメモリ参照要求に応じて前記バッファに対してデータの読み書きを行なう記憶制御部と、先行するメモリ書き込み要求にバッファミスが生じた場合に後続するメモリ参照アドレスの異なるメモリ読み出し要求の追い越し処理を可能にする制御部とを備えた情報処置装置。
【請求項３】
命令処理部と、主記憶のデータの写しを保持するバッファと、前記命令処理部から送られるメモリ参照要求に応じて前記バッファに対してデータの読み書きを行なう記憶制御部と、先行するメモリ書き込み要求にバッファミスが生じた場合に、後続するメモリ書き込み要求がヒットしても先行するメモリ書き込み要求を追い越すことができないが、後続するメモリ参照アドレスの異なるメモリ読み出し要求の追い越し処理を可能にする制御部とを備えた情報処置装置。
【請求項４】
命令処理部と、主記憶のデータの写しをストアイン方式で保持するバッファと、前記命令処理部から送られるメモリ参照要求に応じて前記バッファに対してデータの読み書きを行なう記憶制御部と、先行するメモリ書き込み要求にバッファミスが生じた場合に、後続するメモリ書き込み要求がヒットしても先行するメモリ書き込み要求を追い越すことができないが、後続するメモリ参照アドレスの異なるメモリ読み出し要求の追い越し処理を可能にする制御部とを備えた情報処置装置。
【請求項５】
命令処理部と、主記憶のデータの写しを保持するバッファと、前記命令処理部から送られるメモリ参照要求に応じて前記バッファに対してデータの読み書きを行なう記憶制御部と、先行するメモリ書き込み要求又はメモリ読み出し要求にバッファミスが生じた場合に、後続するメモリ書き込み要求は先行するメモリ書き込み要求又はメモリ読み出し要求を追い越すことができないが、先行するメモリ書き込み要求にバッファミスが生じた場合に、後続するメモリ読み出し要求の追い越し処理を可能にする制御部とを備えた情報処置装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、主記憶のデータの写しを保持するバッファを内部に保持し、単数または複数の命令処理装置から送られるメモリ参照要求を処理する記憶制御装置を備えた情報処置装置に係り、特に、記憶制御装置の高速化技術に関する。
【０００２】
【従来の技術】
まず初めに、本発明に関連するデータ処理システムの構成と記憶制御装置の動作について図３を用いて説明する。データ処理システムは、命令処理装置１〜２，記憶制御装置５，主記憶装置７で構成される。記憶制御装置は、主記憶のデータの写しをブロックと呼ばれる単位で保持する共有バッファ８、共有バッファに保持されるデータのアドレスなどの情報を保持するアドレスアレイ４２などを内部に有する。各命令処理装置から記憶制御装置に対し、命令の読みだし要求（ＩＦ），メモリオペランドの読みだし要求（ＯＦ），メモリオペランドの書き込み要求（ＳＴ）の３種類のメモリ参照要求が発行される。記憶制御装置は各メモリ参照要求に応じて、それに対応する処理を複数のステージ（Ｐ，Ｊ０，Ｊ１，ＮＣ）に分けて実行する。
【０００３】
記憶制御装置は、メモリ参照要求を受け付けるキュー２０〜２１を各命令処理装置に対応して備え、キューは命令処理装置から送られるメモリ参照要求を到着順に保持する。各キューの先頭に保持されるメモリ参照要求の中から１マシンサイクル毎に一つを選択し、セレクタ４０を通してレジスタ２３に送る。以下、この処理をＰステージと呼ぶ。
【０００４】
次に、Ｐステージで選択されたメモリ参照要求はセレクタ４１を通ってアドレスアレイ４２に送られる。通常セレクタ４１はレジスタ２３のメモリ参照要求を選択するように制御される。アドレスアレイには共有バッファ８に保持されるデータブロックのアドレスが保持され、メモリ参照要求に含まれる参照アドレスと比較することにより、データの有無を判定する。この処理を、以下、Ｊ０ステージと呼ぶ。
【０００５】
共有バッファに必要なデータがあった場合（この場合をヒットと呼ぶ）、メモリ参照要求はレジスタ２６に送られる。そこで共有バッファ８を参照する。読みだし要求であれば、読みだしたデータをレジスタ２８に格納し、メモリ参照要求を発行した命令処理装置に転送する。書き込み要求であればメモリ参照要求に含まれる書き込みデータを共有バッファに書き込む。この処理を、以下、Ｊ１ステージと呼ぶ。
【０００６】
共有バッファに必要なデータがなかった場合（この場合をミスと呼ぶ）、レジスタ２３のメモリ参照要求は、主記憶参照待ち部２５に送られ、主記憶装置７にデータ転送要求を発行する。メモリ参照要求は主記憶から必要なデータが共有バッファに転送されるまで主記憶参照待ち部に保持される。この処理を、以下、ＮＣステージと呼ぶ。なお主記憶装置から送られる応答８５に応じて、セレクタ４１は主記憶参照待ち部側を選択し、主記憶参照待ち部２５のメモリ参照要求はレジスタ２６に送られ、Ｊ１ステージの処理が行なわれる。
【０００７】
このようなメモリ参照要求の制御は、メモリ参照要求遷移制御部３０によってなされる。
【０００８】
共有バッファを持つデータ処理システムにおいて、一般に主記憶参照に要するマシンサイクル数は数十マシンサイクルかかるため、この待ち時間は大きい。あるメモリ参照要求が主記憶装置から必要なデータを転送されるまで待っている間に、後続メモリ参照要求を待たせることなく処理すること（追い越し処理）により、記憶制御装置の性能を向上させることができる。
【０００９】
一方、同じ命令処理装置から送られるメモリ参照要求には、処理する順序をある定められた範囲内で守ることが要求されることが多い。例えばＩＢＭ社、３７０／エックス　エー　プリンシプル　オブ　オペレーション’（３７０／ＸＡＰｒｉｎｃｉｐｌｅ　ｏｆ　Ｏｐｅｒａｔｉｏｎ’）には、「メモリへの書き込みが命令の実行順序に従っていないことが、主記憶に接続されている他の命令処理装置から観測されないことを保証する」と記されている。この例では命令の実行順序に対し図５に示すようにメモリ参照順序を守る必要がある。通常、これは命令処理装置側で守られるので、記憶制御装置はメモリ参照要求を受付順に処理すればよい。しかし、高速化のために記憶制御装置の内部で追い越し処理を実現しようとすると、その中でメモリ参照順序を保証しなくてはならない。このため、例えば図６に示すような表を用いて、共有バッファのミスなどにより処理が待たされた先行メモリ参照要求の種類と、同じ命令処理装置から送られる後続メモリ参照要求の種類との組み合わせに応じて、追い越しの可否を判定する必要がある。なお、図６において、無効欄は対応するメモリ参照要求がない場合を示し、ハッチングがかかっている欄はメモリ参照要求の発行順序と命令の実行順序が一致するように命令処理装置側で保証する組み合わせを示す。
【００１０】
メモリ参照要求を送った命令処理装置が異なる場合に、メモリ参照要求の追い越しを実現する例として特許文献１がある。ここではメモリ参照要求遷移制御部３０の内部に追い越し判定部３４を設け、メモリ参照要求に含まれる要求元番号（命令処理装置の識別子）を用いて要求元番号が異なる場合に追い越し可能指示信号３７を生成することにより、ミスを生じたメモリ参照要求を別の命令処理装置から送られるメモリ参照要求が追い越して処理する例が示されている。この例では、ある命令処理装置から送られたメモリ参照要求がミスすると、主記憶装置から必要なデータが共有バッファに転送されて処理が再開されるまで各命令処理装置に対応させて設けたキューを単位にメモリ参照要求の選択を抑止することにより、同じ命令処理装置から送られるメモリ参照要求を到着順に処理する。またこの例では、共有バッファのヒットミス判定に時間がかかるため、ヒットすることを仮定してメモリ参照要求を選択し、ミスした場合はキューに戻している。
【００１１】
図４に追い越し処理のタイムチャートを示す。命令処理装置０から送られたメモリ参照要求１がクロックサイクルＴ２でミスと判定され、Ｔ３でＮＣステージに遷移する。このため続けて選択されたメモリ参照要求２は、仮にメモリ参照要求１を追い越しても所定のメモリ参照順序が保証される場合であってもＰステージに戻され、メモリ参照要求１がＮＣステージにいる間（Ｔ８まで）Ｐステージで待たされる。一方、命令処理装置１から送られたメモリ参照要求３はメモリ参照順序を保証する必要がないため、メモリ参照要求１，２を追い越すことができる。
【特許文献１】
特開昭６１−２０１５３号公報
【００１２】
【発明が解決しようとする課題】
先に述べたように所定のメモリ参照順序が保証されるならば、記憶制御装置の内部において同じ命令処理装置から送られるメモリ参照要求の間で追い越すことができる。追い越すことができれば、メモリ参照要求の記憶制御装置内部での待ち時間を減らすことができる。しかし従来例では、追い越した場合にメモリ参照順序を保証できないため、追い越すことのできる範囲を悪目に制限している。
【００１３】
本発明の目的は、同じ命令処理装置から送られるメモリ参照要求に対し、所定のメモリ参照順序を保証しながら追い越しを可能にすることにより、メモリ参照要求を高速に処理できる記憶制御装置を備えた情報処理装置を提供することにある。
【００１４】
【課題を解決するための手段】
上記目的を達成するため、本発明に示される情報処理装置は、命令処理部と、主記憶のデータの写しを保持するバッファと、前記命令処理部から送られるメモリ参照要求に応じて前記バッファに対してデータの読み書きを行なう記憶制御部と、先行するメモリ書き込み要求にバッファミスが生じた場合に後続するメモリ参照アドレスの異なるメモリ読み出し要求の追い越し処理を可能にする制御部とを備える。
【００１５】
さらに本発明の一つの態様では、命令処理部と、主記憶のデータの写しをストアイン方式で保持するバッファと、前記命令処理部から送られるメモリ参照要求に応じて前記バッファに対してデータの読み書きを行なう記憶制御部と、先行するメモリ書き込み要求にバッファミスが生じた場合に、後続するメモリ書き込み要求がヒットしても先行するメモリ書き込み要求を追い越すことができないが、後続するメモリ参照アドレスの異なるメモリ読み出し要求の追い越し処理を可能にする制御部とを備える。
【００１６】
順序制御部を備えたことにより、同じ命令処理装置から送られるメモリ参照要求に対し、所定のメモリ参照順序を保証しながら追い越しが可能になる。
【００１７】
【発明の実施の形態】
まず初めに、本発明の第１の実施例について図１を用いて説明する。本発明に示される記憶制御装置の構成は図３で説明した従来例と類似しているので、相異点を中心に説明する。
【００１８】
各命令処理装置から送られるメモリ参照要求は、先に述べたように、共有バッファがヒットした場合、Ｐ，Ｊ０，Ｊ１ステージという順に処理され、ミスした場合はＰ，Ｊ０，ＮＣ，Ｊ１ステージという順に処理される。なお以下の説明において、Ｐステージは各命令処理装置毎に定められるため、命令処理装置の番号をＰの後に付けて区別する場合がある。ミスしたメモリ参照要求を保持する主記憶参照待ち部２５（ＮＣステージに相当）には複数のメモリ参照要求を保持することができる。待ち部２５に保持されるメモリ参照要求は、到着順に主記憶に対してデータ転送要求を送り、必要なデータが共有バッファに転送されるまでそこに保持される。
【００１９】
追い越し処理はレジスタ２３に保持されるメモリ参照要求が待ち部２５に保持されるメモリ参照要求よりも先に保持部２６に遷移することにより実現される。このため、追い越しの可否はレジスタ２３に保持されるメモリ参照要求と待ち部２５に保持される全てのメモリ参照要求とを比較し、可と判定された場合にレジスタ２３に保持されるメモリ参照要求を保持部２６に遷移させる。このようなメモリ参照要求の遷移はメモリ参照要求遷移制御部３０で制御され、追い越しの可否の判定は追い越し判定部３３で判定される。
【００２０】
メモリ参照要求には、参照アドレスと、要求元番号（命令処理装置の識別子）と、命令の読みだし要求（ＩＦ），メモリオペランドの読みだし要求（ＯＦ），メモリオペランドの書き込み要求（ＳＴ）のいずれかを示すメモリ参照要求の種類と、命令順序判定番号と、メモリオペランドの書き込み要求（ＳＴ）の場合は書き込みデータとが付加されて、各ステージを遷移する。命令順序判定番号は、そのメモリ参照要求を発行した命令の実行順序を示し、追い越しの可否を判定するために使われる。命令順序判定番号は、例えば、命令の実行順に従って番号を付けることにより生成できる。
【００２１】
実施例１と従来例とは追い越し判定部の構成が異なる。図７は実施例１の追い越し判定部３３の構成を、図８は従来例の追い越し判定部３４の構成を示す。従来例では要求元番号のみを用いて追い越しの可否を判定していたのに対し、実施例１では要求元番号に加えて、参照アドレス，メモリ参照要求の種類，命令順序判定番号を用いて追い越しの可否を判定する。
【００２２】
従来例の追い越し判定部３４はレジスタ２３に保持されるメモリ参照要求保持情報３５と待ち部２５に保持されるメモリ参照要求保持情報３６からそれぞれ要求元番号を引き出して比較し、待ち部２５に保持される有効なメモリ参照要求を発行した命令処理装置とレジスタ２３に保持されるメモリ参照要求を発行した命令処理装置とが異なる場合に、追い越し可能指示信号３７を１（有効）にする。
【００２３】
実施例１の追い越し判定部３３は、待ち部２５に保持される有効なメモリ参照要求を発行した命令処理装置とレジスタ２３に保持されるメモリ参照要求を発行した命令処理装置とが異なる場合に加えて、それ以外の場合、すなわち、待ち部２５に保持されるメモリ参照要求を発行した命令処理装置とレジスタ２３に保持されるメモリ参照要求を発行した命令処理装置が同じ場合についても、所定の条件を満たす場合に追い越し可能指示信号３７を１にする。これは順序保証判定部３９で制御される。
【００２４】
所定の条件は命令処理装置の仕様に依存するので、ここでは一例として、図６に示される条件を満たす追い越し判定部の構成を示す。図６に示される記号は図７（ａ）に示されるＰＣで符号化される。
【００２５】
ＰＣが１の場合、レジスタ２３に保持される後続メモリ参照要求は追い越しできないと判定されるので、順序保証判定部３９は０（無効）を出力する。ＰＣが１になる場合は、図５に示されるように、メモリ参照要求の発行順序と命令の実行順序を一致させる必要があり、また図６に示されるように命令処理装置側でメモリ参照要求の発行順序と命令の実行順序を一致させてメモリ参照要求が発行されるため、記憶制御装置内で追い越しすることはできない。
【００２６】
ＰＣが２の場合、アドレスの競合がない（参照するデータ領域が重ならない）場合に追い越しが許可されるので、アドレス不一致指示信号１０３を出力する。アドレス不一致指示信号はアドレス競合がない場合に１を出力する。アドレス競合の検出は、例えば、レジスタ２３に保持されるメモリ参照要求が参照する共有バッファのデータブロックのアドレスと待ち部２５に保持されるメモリ参照要求が参照する共有バッファのデータブロックのアドレスとを比較することにより判定できる。ＰＣが２になる場合は、図６に示されるように命令処理装置側でメモリ参照要求の発行順序と命令の実行順序を一致させてメモリ参照要求が発行されるが、図５に示されるように、アドレスの競合がない場合に追い越しが認められているため、アドレスの競合がない場合に限って追い越しを許可する。
【００２７】
ＰＣが３の場合、メモリ参照要求の発行順序と命令の実行順序が正しい場合と逆転している場合で動作が異なる。正しい場合は図５に示されるように追い越しが禁止されているため０を出力する。逆転している場合は、追い越しによりメモリ参照要求の発行順序と命令の実行順序が正しくなるので１を出力する。ＰＣが３になる場合は、命令処理装置の内部でアドレス競合がないため追い越し可能と判定され、後続命令のＯＦメモリ参照要求が先行命令のＳＴメモリ参照要求を追い越した場合に生じる。この例では、命令順序判定番号を比較することにより順序関係を判定し、メモリ参照要求の発行順序と命令の実行順序が逆転している場合に１を出力する命令順序逆転指示信号１０４を用いている。
【００２８】
ＰＣが４の場合、追い越し可能と判定されるため１を出力する。ＰＣが４になる場合は、先行メモリ参照要求がない場合とメモリ参照要求の種類がＩＦの場合である。先行メモリ参照要求がない場合は追い越しされるメモリ参照要求が存在しないが、レジスタ２３に保持されるメモリ参照要求を保持部２６に遷移させるため１を出力する。またメモリ参照要求の種類がＩＦの場合は、図５に示されるように追い越し可能であるので１を出力する。
【００２９】
このようにして、実施例１の追い越し判定部はメモリ参照要求の発行順序と命令の実行順序に関して所定の条件を満たしながら、追い越しの可否を判定している。実施例１では追い越し条件を詳細に判定するために、メモリ参照アドレス，メモリ参照要求の種類，命令順序判定番号を用いていたが、その一部を用いることもできる。ただしこの場合は追い越しのできる範囲が多少制限されてしまうが、従来例よりは追い越しのできる範囲は広い。例えば、メモリ参照要求の種類のみを用いた場合は、メモリ参照要求の種類がＩＦの場合のみ、すなわち、ＰＣが４の場合のみ追い越しするようにできる。またメモリ参照要求の種類と参照アドレスを用いた場合は、ＰＣが２の場合と４の場合に追い越しするようにできる。さらにまたメモリ参照要求の種類と命令順序判定番号を用いた場合は、ＰＣが３の場合と４の場合に追い越しするようにできる。メモリ参照要求の発行順序と命令の実行順序に関する所定の条件は命令処理装置の仕様に依存するので、命令処理装置の仕様に合わせて図６に示されるような追い越し判定表を定義することにより、他の仕様であっても追い越し処理を実現できる。
【００３０】
次に、先行メモリ参照要求がミスしたときに、同一要求元からの後続のメモリ参照要求が図６に示される所定の条件を満たさず、追い越しを行なわない場合の動作を図４を用いて説明する。
【００３１】
命令処理装置０から送られＴ１のタイミングでキュー２０に保持されたメモリ参照要求１は、セレクタ４０に選択されて、Ｔ２のタイミングでレジスタ２３に遷移する。Ｔ２において主記憶からの応答はないのでＪ１選択回路はＪ０側を選ぶように指示する。これを受けてメモリ参照要求１はセレクタ４１を通ってアドレスアレイ４２に伝えられる。アドレスアレイを検索した結果、メモリ参照要求１はミスと判定されミス指示信号５２（ＭＩＳＳ）は１となる。この時、ＮＣにはメモリ参照要求が存在しないので待ち部２５キュー全使用中指示信号５１（ＮＣＦＵＬＬ）は０，Ｊ０側を選択していることを示すレジスタ２３選択指示信号７５（Ｊ０ＳＥＬ）は１であるので、図９に示す遷移先決定部の論理回路により、待ち部２５入力ポインタ更新指示信号８１（ＮＣＳ）が１となる。これを受けて、Ｔ３ではメモリ参照要求１は待ち部キュー２５へ遷移する。メモリ参照要求１が待ち部２５に遷移すると、主記憶７に必要なデータの転送要求を発行する。Ｔ８でＮＣ処理終了信号８５が送られると、Ｊ１選択回路は待ち部２５を選択し、待ち部２５選択指示信号７６（ＮＣＳＥＬ）を１にする。それを受けて、図９の論理回路により保持部２６セット信号８２（Ｊ１Ｓ）が１となるので、メモリ参照要求１がＴ９で保持部２６に遷移して共有バッファを参照する。
【００３２】
次に命令処理装置０から送られＴ２のタイミングでキュー２０に保持されたメモリ参照要求２は、Ｔ３のタイミングでレジスタ２３に遷移する。ここでキュー２５に保持されるメモリ参照要求の要求元とレジスタ２３に保持されるメモリ参照要求の要求元が等しいため、要求元非同一指示信号１０１は０となる。更にメモリ参照要求の種類の組み合わせを図６に示される表を用いて調べた結果、追い越し可能指示信号３７は０となり追い越しが不可と判定される。この場合として種々の場合が考えられるが、先に追い越しが不可になる場合を説明したので省略する。ここで、アドレスアレイ４２の検索結果はヒット、すなわち、ミス指示信号５２は０であり、Ｊ０側を選択していることを示すレジスタ２３選択指示信号７５（Ｊ０ＳＥＬ）は１であり、レジスタ２３に保持されるメモリ参照要求２は命令処理装置０から送られたことがレジスタ２３に保持されるメモリ参照要求保持情報３５を調べることにより分かるので、図９に示す遷移先決定部の論理回路により、Ｐ０ステージ出力ポインタ戻し指示信号７７（Ｐ０Ｒ）が１となる。これを受けて、Ｐ０ステージの出力ポインタが戻され、Ｔ４ではメモリ参照要求２はＰ０ステージに差し戻されることになる。差し戻されたメモリ参照要求２は、Ｔ８のタイミングで主記憶からメモリ参照要求１に対するＮＣ処理終了信号８５が返るので、Ｊ０選択回路４６の制御に従いＴ９で再度レジスタ２３に遷移する。Ｔ９ではＮＣに保持されるメモリ参照要求はないため追い越し可能信号３７は１となり、アドレスアレイの検索結果はヒット、すなわち、ミス指示信号５２は０であり、Ｊ０側を選択していることを示すレジスタ２３選択指示信号７５（Ｊ０ＳＥＬ）は１であるので、図９に示す遷移先決定部の論理回路により、保持部２６セット信号８２（Ｊ１Ｓ）が１となる。これを受けてメモリ参照要求２はＴ１０で保持部２６に遷移して共有バッファを参照する。
【００３３】
命令処理装置１から送られＴ３のタイミングでキュー２１に保持されたメモリ参照要求３は、Ｔ４のタイミングでレジスタ２３に遷移する。このときレジスタ２３に保持されるメモリ参照要求の要求元と待ち部２５に保持されるメモリ参照要求の要求元とが異なるために、要求元非同一指示信号１０１が１となり追い越し可能指示信号３７は１となる。これを受けてメモリ参照要求３はＴ４のタイミングで保持部２６に遷移して共有バッファを参照する。
【００３４】
以上、同一命令処理装置から送られるメモリ参照要求が追い越しできない場合の動作を説明した。この動作は従来例と同じである。
【００３５】
次に実施例１に特有の動作例すなわち、図６に示される所定の条件を満たすため、追い越しする場合の動作を図１１を用いて説明する。ここでは図４に示されるようにメモリ参照要求が到着した場合に、メモリ参照要求２が追い越し可能と判定された場合の動作について、特にＴ３におけるメモリ参照要求２の動作について詳細に説明する。
【００３６】
メモリ参照要求２はＴ３のタイミングでキュー２０からレジスタ２３に遷移する。ここでキュー２５に保持されるメモリ参照要求の要求元とレジスタ２３に保持されるメモリ参照要求の要求元が等しいため、要求元非同一指示信号１０１は０となる。しかしメモリ参照要求の種類の組み合わせを図６に示される表を用いて調べた結果、先に仮定したように、追い越し可能指示信号３７は１となり追い越し可能と判定される。例えば、追い越し可能範囲指示信号１０２の値が４の場合に追い越し可能と判定される。ここで、アドレスアレイ４２の検索結果はヒット、すなわち、ミス指示信号５２は０であり、Ｊ０側を選択していることを示す選択指示信号７５（Ｊ０ＳＥＬ）は１であるので、セット信号８２（Ｊ１Ｓ）が１となる。これを受けてメモリ参照要求２はＴ４で保持部２６に遷移して共有バッファを参照することができる。
【００３７】
実施例１の説明の最後にＰ０，Ｐ１，ＮＣステージのキューのポインタを制御するポインタ制御部について図１５を用いて説明する。ポインタ制御部は、入力ポインタ指示レジスタ１３３，出力ポインタ指示レジスタ１３４を内部に持つ。これらがキューのどのエントリに入力されるデータを保持すべきか、またキューのどのエントリからデータを出力すべきかを指定する。入力ポインタ指示レジスタ１３３，出力ポインタ指示レジスタ１３４の値により、キューが全て使用中であることを判定するキュー全使用中（ＦＵＬＬ）判定部１３６、およびキュー内に保持しているメモリ参照要求の数を判定する保持要求数判定部１３５が設けられる。入力ポインタ更新指示信号１２０が１となったとき、入力ポインタ指示レジスタ１３３の値が１加算回路１３０により更新される。出力ポインタ更新指示信号１２１が１となると、出力ポインタ指示レジスタ１３４の値が１加算回路１３１により更新される。また、出力ポインタ後退指示信号１２２が１となると、出力ポインタ指示レジスタ１３４の値が１減算回路１３２により戻されることになる。出力ポインタ更新指示信号１２１と出力ポインタ後退指示信号１２２が同時に発行された場合には、後退指示信号を優先する。
【００３８】
次に本発明の第２の実施例について図２を用いて説明する。
【００３９】
実施例２は実施例１の不具合点を解消する。実施例１ではレジスタ２３に保持されるメモリ参照要求と待ち部２５に保持されるメモリ参照要求を比較し、追い越し不可と判定された場合にキュー２０または２１に戻される。また特に説明しなかったがメモリ参照要求がミスしたが待ち部２５が一杯のため待ち部２５に遷移できない場合にキュー２０または２１に戻される。このため一度キュー２０または２１に戻されると、主記憶から応答が返り再度選択されるまで、戻されたメモリ参照要求と、それに後続するメモリ参照要求が待たされることになる。そこで実施例２では先行要求処理待ち部２４を設け、実施例１において戻されていたメモリ参照要求をそこに保持する。これによりそれに後続するリクエストがレジスタ２３に遷移できるので、追い越し処理ができる場合を増やすことができる。
【００４０】
実施例２では先行要求処理待ち部２４（ＰＲＷステージ）を設けたため、実施例１の動作に加えて、レジスタ２３から待ち部２４に遷移する場合と、待ち部２４からレジスタ２３に遷移する場合がある。これらは遷移先決定部３２、およびＪ０選択回路４４で制御される。遷移先決定部３２の回路構成を図１０に示す。また追い越し可否は待ち部２５に保持されるメモリ参照要求に加えて、待ち部２４に保持されるメモリ参照要求に対して判定する必要がある。このため追い越し判定部には待ち部２４および待ち部２５に保持されるメモリ参照要求保持情報３６を入力している。
【００４１】
まず、図１２を用いて、同一命令処理装置から送られるメモリ参照要求が追い越しできず、待ち部２４に遷移する場合の動作を説明する。ここでは図４に示されるようにメモリ参照要求が到着した場合に、メモリ参照要求２が追い越し不可と判定された場合の動作について、特にＴ３におけるメモリ参照要求２の動作について説明する。
【００４２】
メモリ参照要求２はＴ３のタイミングでキュー２０からレジスタ２３に遷移する。先に仮定したように、追い越し可能指示信号３７は０となり追い越し不可と判定される。ここで、アドレスアレイ４２の検索結果はヒット、すなわちミス指示信号５２は０であり、待ち部２４に保持されるメモリ参照要求はないので待ち部２４キュー全使用中指示信号５０も０であるので、図１０に示す遷移先決定部の論理回路により、待ち部２４入力ポインタ更新指示信号（ＰＲＳ）が１となる。これを受けてメモリ参照要求２はＴ４で待ち部２４に遷移する。なお待ち部２４が一杯の場合はキュー２０出力ポインタ戻し指示信号７７（Ｐ０Ｒ）が１になるのでキュー２０に戻される。Ｔ８のタイミングで主記憶からメモリ参照要求１に対するＮＣ処理終了信号８５が返るので、Ｊ０選択回路４４は待ち部２４にメモリ参照要求があることを認識して、Ｔ９でメモリ参照要求２を再度レジスタ２３に遷移させる。Ｊ０選択回路４４は、通常はキュー２０または２１に保持されるメモリ参照要求をある優先順位に基づいて選択するが、ＮＣ処理終了信号８５を受けると、その時に待ち部２４に保持されているメモリ参照要求を優先的に処理する。後の動作は図４に示される動作と同じである。
【００４３】
図１３は実施例１において図４に示されるようにメモリ参照要求が到着し、さらにＴ４のタイミングにおいて、命令処理装置０から送られるメモリ参照要求４を受け付けた場合の動作を示す。この例ではメモリ参照要求４がメモリ参照要求１ないしメモリ参照要求４を追い越し可能であったとしても、メモリ参照要求２にブロックされてしまう。これに対し、実施例２では図１４に示すように、図１３と同じ様にメモリ参照要求が到着しても、メモリ参照要求２は追い越し不可と判定されると待ち部２４に遷移するため、メモリ参照要求４はＴ５で追い越しの可否を判定し、追い越し可能な場合に保持部２６に遷移することができる。このように実施例２では実施例１に比べ、追い越しできる場合を増やすことができる。
【００４４】
【発明の効果】
本発明により、同じ命令処理装置から送られるメモリ参照要求に対し、所定のメモリ参照順序を保証しながら追い越し処理が可能になるので、メモリ参照要求が高速に処理される。よって記憶制御装置とそれに接続された命令処理装置からなるデータ処理システムの性能が向上する。
【００４５】
特に命令処理装置から送られるメモリ参照要求に含まれる命令処理装置の識別子，メモリ参照要求の種類，命令順序判定番号の全て、もしくはその一部を用いて追い越しの許可，不許可を詳細に判定することにより、追い越しのできる場合を増やすことができるので、さらに性能が向上する。
【図面の簡単な説明】
【図１】本発明の実施例１のブロック図である。
【図２】本発明の実施例２のブロック図である。
【図３】従来例のブロック図である。
【図４】追い越し処理をしない場合の動作例の説明図である。
【図５】命令間のメモリ参照順序規定の例の説明図である。
【図６】メモリ参照要求間のメモリ参照順序規定の例の説明図である。
【図７】追い越し判定部の実施例の説明図である。
【図８】追い越し判定部の従来例の説明図である。
【図９】従来例および実施例１の遷移先決定部の論理回路の説明図である。
【図１０】実施例２の遷移先決定部の論理回路の説明図である。
【図１１】追い越し処理をする場合の動作例の説明図である。
【図１２】実施例２の動作例の説明図である。
【図１３】実施例１において追い越し処理ができない場合の動作例の説明図である。
【図１４】実施例２において追い越し処理をする場合の動作例の説明図である。
【図１５】ポインタ制御部の論理回路のブロック図である。
【符号の説明】
１，２…命令処理装置、７…主記憶装置、８…共有バッファ、２０，２１…メモリ参照要求キュー、２３…レジスタ、２５…主記憶参照待ち部、２６…メモリ参照要求保持部、２８…読みだしデータレジスタ、３０…メモリ参照要求遷移制御部、３１…遷移先決定部、３３，３４…追い越し判定部、３５，３６…メモリ参照要求保持情報、３７…追い越し可能指示信号、３８…要求元不一致判定部、３９…順序保証判定部、４０，４１…セレクタ、４２…共有バッファ用アドレスアレイ、４３…ヒット／ミス判定回路、４５，４６…選択回路、５１…キュー全使用中指示信号、５２…ミス指示信号、６８，６９…入力ポインタ制御信号、７０，７１…選択元指示信号、７２，７５，７６…選択指示信号、７７，７８…出力ポインタ戻し指示信号、７９，８２…セット信号、８１…入力ポインタ更新指示信号、８５…ＮＣ処理終了信号、８６…共有バッファ書き込み中指示信号
【図１】
2004005710.tif 000003
【図２】
2004005710.tif 000004
【図３】
2004005710.tif 000005
【図４】
2004005710.tif 000006
【図５】
2004005710.tif 000007
【図６】
2004005710.tif 000008
【図７】
2004005710.tif 000009
【図８】
2004005710.tif 000010
【図９】
2004005710.tif 000011
【図１０】
2004005710.tif 000012
【図１１】
2004005710.tif 000013
【図１２】
2004005710.tif 000014
【図１３】
2004005710.tif 000015
【図１４】
2004005710.tif 000016
【図１５】
2004005710.tif 000017