(57)【特許請求の範囲】
【請求項１】
複数のＣＰＵ及び入出力装置と複数のメインメモリとをアクセス可能にするシステムコントローラ内にアドレス、リクエストの種類、アクセス先、および、キャッシュブロックを保持するレジスタを備え、新規リクエストを受け取ったとき、前記新規リクエストの種類に応じて前記レジスタの対応する項目を参照しアドレス排他制御中かを検索し、アドレス排他制御中でなければ相手先にアドレス排他制御を実施し且つ相手先にリクエストを発行することを特徴とするアドレス排他制御システム。
【請求項２】
応答リクエストを受け取ったとき、前記レジスタを参照して、そのアドレスが一致することを確認する手段と、応答元とロックフラグが一致することを確認する手段と、ロックが掛かった前記新規リクエストと前記応答リクエストとの整合性を確認する手段を有し、前記手段によって前記応答リクエストが真性であることの確認がすべてできなければロックを解除しないことを特徴とする請求項１記載のアドレス排他制御システム。
【請求項３】
前記ロックフラグが全て解除されたかをチェックし、全て解除されていれば発行元にリクエスト完了報告を行うことを特徴とする請求項２記載のアドレス排他制御システム。
【請求項４】
新規リクエストを受け取ったとき、前記新規リクエストの種類に応じてアドレス、リクエストの種類、アクセス先、および、キャッシュブロックを保持するレジスタの対応する項目を参照しアドレス排他制御中かを検索する過程と、アドレス排他制御中でなければ相手先にアドレス排他制御を実施する過程と、相手先にリクエストを発行する過程と、
を含むことを特徴とするアドレス排他制御方法。
【請求項５】
応答リクエストを受け取ったとき、前記レジスタを参照して、そのアドレスが一致することを確認する過程と、応答元とロックフラグが一致することを確認する過程と、ロックが掛かった前記新規リクエストと前記応答リクエストとの整合性を確認する過程と、すべての前記確認の過程で前記応答リクエストの真性を確認できればロックを解除する過程と、
を含むことを特徴とする請求項４記載のアドレス排他制御方法。
【請求項６】
前記ロックフラグが全て解除されたかをチェックし、全て解除されていれば発行元にリクエスト完了報告を行う過程を含むことを特徴とする請求項５記載のアドレス排他制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レジスタにアドレスだけではなくリクエストの種類、アクセス先を保持することによって、後続リクエストに対して厳密な排他制御を行うことができるアドレス排他制御システムおよびアドレス排他制御方法に関する。
【背景技術】
【０００２】
図１は、従来のアドレス排他制御システムの概略構成を示すブロック図である。図１において従来のアドレス排他制御システムは、第１のＣＰＵ１、第２のＣＰＵ２、第１のＩＯ（入出力装置）３、第２のＩＯ（入出力装置）４、第１のメインメモリ５、第２のメインメモリ６、および、システムコントローラ（ＳＣ）１０から構成されている。そしてシステムコントローラ（ＳＣ）１０には、新規リクエスト受信機能（Ａ）、アドレスロック判定機能（Ｂ）、リクエスト発行機能（Ｃ）および応答リクエスト受信機能（Ｄ）が備えられている。【０００３】
図２は、従来のアドレス排他制御システムにおけるフェッチ要求時の動作を説明するためのパケットフロー及び動作タイミングを示す図である。図２において第１のＣＰＵ（ＣＰＵ０）１からのフェッチ要求は、ＳＣ１０で受信されて検索され、当該フェッチ要求が第２のＣＰＵ（ＣＰＵ１）２に対するものであることを索引したら、ＳＣ１０は第２のＣＰＵ２にリード要求を発行する。第２のＣＰＵ２はこのリード要求に対する応答をＳＣ１０に返す。ＳＣ１０は返された応答を第１のＣＰＵ１にフェッチ要求に対する応答として返す。この場合、ＳＣ１０は、第１のＣＰＵ１からのフェッチ要求を受信しそれがどの装置に対するものであるかの検索を開始した後の検索途中から第２のＣＰＵ２によるリード要求の応答があるまでの間、アドレスロックを行い、同じアドレス指定に対してアクセスできないよう排他制御を実施している。【０００４】
図３は、従来のアドレス排他制御システムにおけるストア要求時の動作を説明するためのパケットフロー及び動作タイミングを示す図である。図３において第１のＣＰＵ（ＣＰＵ０）１からのストア要求は、ＳＣ１０で受信されて検索され、当該ストア要求が第１のメインメモリ（ＭＥＭ０）５に対するものであることを索引したら、ＳＣ１０は第１のメインメモリ５にストア要求を発行する。第１のメインメモリ５はこれに応じてメモリストアを実行し、メモリストアが終了したならば、ストア要求に対する応答をＳＣ１０に返す。この場合、ＳＣ１０は、第１のＣＰＵ１からのストア要求を受信しそれがどの装置に対するものであるかの検索を開始した後の検索途中から第１のメインメモリ５によるストア要求に対する応答があって応答が完了するまでの間、アドレスロックを行い、同じアドレス指定に対してアクセスできないよう排他制御を実施している。【０００５】
図４は、従来のアドレス排他制御システムの動作を説明するためのフローチャートである。図４を図１の構成を参照しながら説明すると、図４においてまずＳＣ１０の新規リクエスト受信機能（Ａ）が、新規のリクエストをリクエスト要求元（例えばＣＰＵ、ＩＯなど）から受信する（Ｓ１）。次いでＳＣ１０のアドレスロック判定機能（Ｂ）は、受信したリクエストのアドレスを検索しアドレスロックか、すなわちリクエストに含まれるアドレスがアドレスレジスタ（図示せず）内に保持されているアドレスとマッチするかを判定してアドレスロックマッチかを調べる(Ｓ２)。アドレスロックマッチかを調べる処理は図５で詳細に説明する。【０００６】
アドレスロックマッチであれば、排他制御中で新規リクエストのアクセスが許容されないのでステップＳ２に戻り、再度、ステップＳ２を実行する。アドレスロックマッチでないならば、ステップＳ３に進み、ステップＳ３において、新規リクエストの内容をレジスタにセットする。そしてＳＣ１０のリクエスト発行機能（Ｃ）は、相手先にリクエストを発行する（Ｓ４）。ステップＳ５では、ステップＳ４で発行されたリクエストが、相手先ＣＰＵ１，２、ＩＯ３，４、メインメモリ５，６のいずれかで受け取られる。そしてリクエストを受け取ったＣＰＵ１，２、ＩＯ３，４、メインメモリ５，６のいずれかからその処理に係る応答系リクエストが返されＳＣ１０の応答リクエスト受信機能（Ｄ）が応答系リクエストを受信する(Ｓ６)。ここでＳＣ１０のアドレスロック判定機能（Ｂ）は、応答リクエスト受信機能（Ｄ）が受け取った応答系リクエストに含まれるアドレスとアドレスロックレジスタ（図示せず）内に存在するロックされているアドレスを比較してアドレスロックマッチかを調べる（Ｓ７、図５参照）。そしてアドレスロック判定機能（Ｂ）は、アドレスロックマッチであれば、ステップＳ８に進み、ステップＳ８で応答先のロックフラグをリセットし、処理を終了する。一方、アドレスロックマッチでないならば、ステップＳ９に進み、ステップＳ９でプロトコルエラーを検出して終了する。【０００７】
図５は、従来のアドレス排他制御システムにおいてアドレスロックマッチを調べる動作を説明する図である。図５を図１の構成を参照しながら説明すると、図５においてＳＣ１０のアドレスロック判定機能（Ｂ）は、アドレスロックレジスタ７内に保持されているアドレスと、ＳＣ１０の新規リクエスト受信機能（Ａ）が受信したリクエスト８内のアドレスとをアドレスマッチ判別機能９で比較し、比較で一致すればアドレスロックマッチとして出力する（特許文献１参照）。なお上記ではリクエスト８が新規リクエストであるとして説明したが、これが応答系リクエストであっても同じである。【０００８】
上述した従来のアドレス排他制御システムは、先行するリクエストの種類やアクセス先に拘わらずアドレスのみでロックすべきアドレスの領域を決定している。しかしアドレスのみでロックすべきアドレスの領域を決定してしまうと、不必要なアクセス先までロックをかけてしまうという問題があった。また不必要なアクセス先までロックをかけてしまうことによって同時に複数の宛先にアクセスできなくなり、システム全体の性能を劣化させてしまうという問題があった。【０００９】
さらに、上述したアドレス排他制御システムによる排他制御が原因で障害（タイムアウト等）が発生した場合には、ロックされているアドレス以外の情報が何も残されていないため障害の被疑個所を特定するのが困難であるという問題があった。【００１０】
また応答リクエストの障害は対応する新規リクエストが発行されてからある程度の時間が経過しているため新規リクエストに関する情報がほとんどなく新規リクエストを含めた調査が困難であるという問題があった。
【特許文献１】特開平03-196249号公報
【発明の開示】
【００１１】
本発明は、アドレスの排他制御を管理しているアドレスロックレジスタにアドレスだけではなく、リクエストの種類、アクセス先、ＳＸ(キャッシュ)ブロックを保持させる。リクエストの種類は、ＣＰＵ、メモリ、ＩＯが出力する信号の種類である。アクセス先はリクエストの送出先であるＣＰＵ、メモリ、ＩＯ等のことである。ＳＸブロックは、ウェイと、ラインによって特定されるブロックである。そして新規にＳＣがリクエストを受け取った時、まずアドレスロックレジスタを参照して、排他条件に当てはまっているか、すなわちアドレスロックビジーかどうかを判断する。アドレスロックビジーでない時は新規リクエストを送出先に送る。これにより、本発明では、必要なアクセス先、ＳＸブロック以外にはロックを掛ける必要がない。従来はメモリ、ＣＰＵ、Ｉ／Ｏを含めてシステム全体をロックしていたことに比べて例えば１つのＣＰＵをロックしても、他のＣＰＵを同時に使えるので、データの転送効率等システムの運用効率が格段と向上する。また、送出先から新規リクエストに対する応答リクエストを受け取った時、アドレスロックレジスタを参照して、アドレスが一致することの確認の外、応答元とロックフラグが一致する、すなわち、送出先からの応答とＳＣが保持している送出先のフラグが一致することの確認、ロックが掛かった新規リクエストと応答リクエストのアドレス以外の整合性を確認して正しい応答をすれば、アクセス先のロック期間が正常に終了したことが分かるので、アドレスレジスタから、送出先のロックアドレスを除去する。正しい応答がなければ故障検出に入るため、アドレスレジスタからロック先アドレスを除去しない。
【００１２】
本発明によれば、同じアドレスであってもアクセス先やＳＸブロックが異なればリクエストの送出が可能となる。これによりＣＰＵ間やキャッシュメモリのデータ転送を効率的に実行することができる。
【００１３】
また本発明によれば、他ＣＰＵへのアドレス指定のリクエストに対する排他制御、自ＣＰＵへのキャッシュ(ＳＸ)ブロック指定のリクエストに対する排他制御、メインＭＥＭ／ＩＯへのアドレス指定のリクエストに対する排他制御、ＣＰＵ、メインＭＥＭ／ＩＯの応答系リクエストのプロトコルチェック、および、リクエストの識別子を開放するために発行元にリクエスト完了報告を行うことについて一つのレジスタを基に処理するため、全体の物量を大幅に削減することができる。
【００１４】
さらに、アドレスの排他制御を管理するアドレスロックレジスタにアドレス及び、アクセス先に加えてリクエストの種類を保持させるようにしているため、ロックが掛かった新規リクエストと応答リクエストの整合性を確認して正しい応答をしなければ障害と判断することにより、障害発生時の調査を容易に行うことができ、またハード自身で早期にエラー検出し被疑個所を特定することも可能となる。
【図面の簡単な説明】
【００１５】
【図１】従来のアドレス排他制御システムの概略構成を示すブロック図である。
【図２】従来のアドレス排他制御システムにおけるフェッチ要求時の動作を説明するためのパケットフロー及び動作タイミングを示す図である。
【図３】従来のアドレス排他制御システムにおけるストア要求時の動作を説明するためのパケットフロー及び動作タイミングを示す図である。
【図４】従来のアドレス排他制御システムの動作を説明するためのフローチャートである。
【図５】従来のアドレス排他制御システムにおいてアドレスロックマッチを調べる動作を説明する図である。
【図６】本発明の実施形態に係るアドレス排他制御システムの概略構成を示すブロック図である。
【図７】本発明の実施形態に係るアドレス排他制御システムの動作を説明するためのフローチャートである。
【図８】本発明の実施形態に係るアドレスロックビジーを調べる動作を説明する図である。
【図９】本発明の実施形態に係るリクエストマッチを調べる動作を説明する図である。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態を、図面を参照しながら詳細に説明する。
図６は、本発明の実施形態に係るアドレス排他制御システムの概略構成を示すブロック図である。図６において本発明の実施形態に係るアドレス排他制御システムは、第１のＣＰＵ（ＣＰＵ０）１１、第２のＣＰＵ（ＣＰＵ１）１２、第１のＩＯ（入出力装置）（ＩＯ０）１３、第２のＩＯ（入出力装置）（ＩＯ１）１４、第１のメインメモリ（ＭＥＭ０）１５、第２のメインメモリ（ＭＥＭ１）１６、および、システムコントローラ（ＳＣ）２０から構成されている。そしてシステムコントローラ（ＳＣ）２０には、新規リクエスト受信機能（ａ）、アドレスロックビジー判定機能（ｂ）、リクエスト発行機能（ｃ）、応答リクエスト受信機能（ｄ）およびリクエストマッチ判定機能（ｅ）が備えられている。【００１７】
本発明の実施形態に係るアドレス排他制御システムは、複数のＣＰＵ及び入出力装置と複数のメインメモリとをアクセス可能にするＳＣ２０において、アドレスの排他制御を管理しているアドレスロックレジスタにアドレスだけでなく、リクエストの種類、アクセス先、および、キャッシュブロックを保持させることによって、後続リクエストに対して厳密な排他制御を行い、同じアドレスであっても宛先が異なればリクエストの送出ができるようにし、ＣＰＵ間やキャッシュメモリのデータ転送を効率的に行うことを可能にする。さらに、障害発生時の調査を容易に行うことができ、またハード自身で早期に障害を検出し被疑個所を特定することを可能にする。【００１８】
具体的に説明すると、本発明の実施形態に係るアドレス排他制御システムでは、ＳＣ２０内に設けられたアドレスロックレジスタ（図示せず）が以下の（１）ないし（５）に示す全てのリクエスト処理に関わるようにしている。すなわち、
（１）他ＣＰＵへのアドレス指定のリクエストに対する排他制御
この場合、アクセス先のＣＰＵのみに対してアドレス排他制御を実施
（２）自ＣＰＵへのキャッシュ(ＳＸ)ブロック指定のリクエストに対する排他制御
この場合、アクセス先のキャッシュ(ＳＸ)ブロックのみに対してアドレス排他制御を実施（なおＳＸブロックは、SX−WAYとLINEで把握される）
（３）メインＭＥＭ／ＩＯへのアドレス指定のリクエストに対する排他制御
この場合、アクセス先に関係なくアドレス排他制御を実施
（４）ＣＰＵ,メインＭＥＭ／ＩＯの応答系リクエストのプロトコルチェック
（５）リクエストの識別子(ＩＤ)を開放するために発行元にリクエスト完了報告
図７は、本発明の実施形態に係るアドレス排他制御システムの動作を説明するためのフローチャートである。図７を図６の構成を参照しながら説明すると、図７においてまずＳＣ２０の新規リクエスト受信機能（ａ）が、新規のリクエストをリクエスト要求元（例えばＣＰＵ、ＩＯなど）から受信する（Ｓ１１）。ＳＣ２０のアドレスロックビジー判定機能（ｂ）は、受信したリクエスト内容とアドレスロックレジスタ（図示せず）に保持されている内容とを比較しアドレスロックビジーか、すなわちリクエストの種類が上記（１）〜（３）のいずれに係るアドレス指定なのかに応じて個別にアドレスマッチ、ＣＰＵマッチ、LINE(ライン)マッチ、SX(キャッシュ)−WAYマッチを判定し、その判定でマッチ出力がある場合にはさらにアドレスマッチとＣＰＵマッチの論理演算を、LINE(ライン)マッチとSX(キャッシュ)−WAYマッチの論理演算を行い、且つアドレスマッチの場合はアドレスロックレジスタに保持されているストアロック識別子との論理演算を更に行って、各論理演算結果を検索してアドレスロックビジーかを調べる(Ｓ１２)。アドレスロックビジーかを調べる処理は図８で詳細に説明する。【００１９】
調べてみてアドレスロックビジーであれば、排他制御中で新規リクエストのアクセスが許容されないのでステップ１２に戻り、再度、ステップ１２を実行する。調べてみてアドレスロックビジーでないならば、ステップ１３に進み、ステップ１３において、新規リクエストの内容をレジスタにセットする。そしてＳＣ２０のリクエスト発行機能（ｃ）は、相手先にリクエストを発行する（Ｓ１４）。ステップ１５では、ステップ１４で発行されたリクエストが、相手先ＣＰＵ１１，１２、ＩＯ１３，１４、メインメモリ１５，１６のいずれかで受け取られる。そしてリクエストを受け取ったＣＰＵ１１，１２、ＩＯ１３，１４、メインメモリ１５，１６のいずれかからその処理に係る応答系リクエストが返されＳＣ２０の応答リクエスト受信機能（ｄ）が応答リクエストを受信する（Ｓ１６）。【００２０】
ＳＣ２０のリクエストマッチ判定機能（ｅ）は、受信した応答系リクエスト内容とアドレスロックレジスタに保持されている内容とを比較しリクエストマッチか、すなわち応答リクエストの種類が上記（１）〜（４）のいずれに係るアドレス指定なのかに応じて個別にアドレスマッチ、ＣＰＵマッチ、MEM(メインメモリ)マッチ、プロトコルマッチを判定し、その判定でＣＰＵマッチ又はMEMマッチのいずれかに出力があればその出力と、アドレスマッチ出力と、プロトコルマッチ出力と、を論理積演算しその出力が得られるかを検索してリクエストマッチかを調べる(Ｓ１７)。リクエストマッチかを調べる処理は図９で詳細に説明する。【００２１】
調べてみてリクエストマッチであれば、ステップ１８に進み、ステップ１８で応答先のロックフラグをリセットする。ステップ１９ではロックフラグがすべてリセットされたかを判定する。すべてリセットされていれば、要求元に対し上記（５）に係るリクエストの識別子(ＩＤ)を開放するためのリクエスト完了報告を行い(Ｓ２０)、処理を終了する。またロックフラグがすべてリセットされていなければ、リクエスト処理未完了として処理を終了する。【００２２】
一方、ステップ１７で調べてみてリクエストマッチでないならば、ステップ２１に進み、ステップ２１でプロトコルエラーを検出する。そしてステップ２２ではエラー波及を未然に防ぐ応答先縮退を行う。【００２３】
図８は、本発明の実施形態に係るアドレスロックビジーを調べる動作を説明する図である。図８を図６の構成を参照しながら説明すると、図８においてＳＣ２０のアドレスロックビジー判定機能（ｂ）は、アドレスロックレジスタ４０内に保持されているアドレス４１と、ＳＣ２０の新規リクエスト受信機能（ａ）が受信した新規リクエスト３０内のアドレス３１とをアドレスマッチ判別機能５１で比較し、比較で一致すれば論理積回路５５、５６に出力を出す。【００２４】
また、アドレスロックレジスタ４０内に保持されている（ＣＰＵ毎の）オーダロック識別子(ＩＤ)４２と、新規リクエスト３０内の要求先ＣＰＵ識別子３２とをＣＰＵマッチ判別機能５２で比較し、比較で一致すれば論理積回路５５に出力を出す。【００２５】
また、アドレスロックレジスタ４０内に保持されているアドレス４１と、新規リクエスト３０内のアドレス３１とをLINEマッチ判別機能５３で比較し、比較で一致すれば論理積回路５７に出力を出す。【００２６】
また、アドレスロックレジスタ４０内に保持されているSX−WAY４４と、新規リクエスト３０内の要求元SX−WAY３３とをSX−WAYマッチ判別機能５４で比較し、比較で一致すれば論理積回路５７に出力を出す。【００２７】
また、アドレスロックレジスタ４０内に保持されているストアロック識別子４３は、論理積回路５６に出力され、アドレスマッチ判別機能５１の出力との間で論理積がとられる。【００２８】
そして論理積回路５５、５６、５７の論理積演算で一箇所でも出力が得られた場合には後段の論理和回路５８からの出力が得られ、その出力がアドレスロックビジーを示すこととなる。【００２９】
図９は、本発明の実施形態に係るリクエストマッチを調べる動作を説明する図である。図９を図６の構成を参照しながら説明すると、図９においてＳＣ２０のリクエストマッチ判定機能（ｅ）は、アドレスロックレジスタ４０内に保持されているアドレス４１と、ＳＣ２０の応答リクエスト受信機能（ｄ）が受信した応答リクエスト６０内のアドレス６１とをアドレスマッチ判別機能７１で比較し、比較で一致すれば論理積回路７６に出力を出す。【００３０】
また、アドレスロックレジスタ４０内に保持されている（ＣＰＵ毎の）オーダロック識別子(ＩＤ)４２と、応答リクエスト６０内の要求元ＣＰＵ識別子６２とをＣＰＵマッチ判別機能７２で比較し、比較で一致すれば論理和回路７５に出力を出す。論理和回路７５は入力があれば論理積回路７６に出力を出す。【００３１】
また、アドレスロックレジスタ４０内に保持されているストアロック識別子４３と、応答リクエスト６０内の要求元ＭＥＭ識別子６２とをＭＥＭマッチ判別機能７３で比較し、比較で一致すれば論理和回路７５に出力を出す。論理和回路７５は入力があれば論理積回路７６に出力を出す。【００３２】
また、アドレスロックレジスタ４０内に保持されている新規リクエスト識別子４５と、応答リクエスト６０内の応答リクエスト識別子６３とをプロトコルチェック機能７４で比較し、比較で一致すれば論理積回路７６に出力を出す。【００３３】
そして論理積回路７６のすべてに入力があってその論理積演算の結果で出力が得られた場合にはその出力がリクエストマッチを示すこととなる。つまりは真正な応答リクエストでなければロックを外さないようにしている。
【産業上の利用可能性】
【００３４】
上記ではシステムコントローラ(SC)における適用を説明したが、これへの適用に限定されず、他のコントローラ例えばメモリコントローラ等への適用も可能である。
【図１】
0004712863.tif 000002
【図４】
0004712863.tif 000003
【図５】
0004712863.tif 000004
【図６】
0004712863.tif 000005
【図７】
0004712863.tif 000006
【図８】
0004712863.tif 000007
【図９】
0004712863.tif 000008
【図２】
0004712863.tif 000009
【図３】
0004712863.tif 000010