(57)【要約】【課題】ローカルスヌープで処理できるケースを追加し、記憶装置へのアクセスを高速化すること。【解決手段】ローカルスヌープ制御部３２は、キャッシュミスケースであってもリクエストの宛先がローカルの記憶装置である場合には、宛先アドレスをアドレスロック制御部３３に登録してアドレスをロックし、メモリアクセス処理部３６にメモリアクセスを実行させる。グローバルスヌープ制御部３４は、ブロードキャストされたアクセス要求のうち、宛先がローカルの記憶装置であるものについてロック制御を行なう。【選択図】図１
2010238191.tif 000002
【特許請求の範囲】
【請求項１】
自らに接続されたアクセス元装置からの記憶装置に対するアクセス要求を他のシステムコントローラ装置に転送する出力部と、
自らに接続されたアクセス元装置からの記憶装置に対するアクセス要求の宛先が自らに接続されたローカル記憶装置であるか否かを判定し、前記宛先が前記ローカル記憶装置である場合に、当該宛先をロックして前記アクセス要求を実行可能な状態とするローカルスヌープ制御部と、
前記出力部が出力したアクセス要求、および他のシステムコントロール装置が出力したアクセス要求を受け付ける受付部と、
前記受付部が受け付けたアクセス要求の宛先が自らに接続されたローカル記憶装置である場合に、当該アクセス要求を実行可能であるか否かを示す応答の送信と、当該アクセス要求の宛先のロック制御と、を行なうグローバルスヌープ制御部と、
自らに接続されたアクセス元装置からのアクセス要求が実行可能となった場合に、前記記憶装置に対するアクセスを実行して前記ロックを解除するアクセス処理部と、
を備えたことを特徴とするシステムコントロール装置。
【請求項２】
前記グローバルスヌープ制御部は、前記ローカル記憶装置に対するアクセス要求の宛先がロック中でない場合には、当該アクセス要求にロック識別情報を対応付けて、当該アクセス要求が実行可能であることと、当該アクセス要求に対応付けたロック識別情報とを前記応答として送信し、前記アクセス処理部は、前記ロック識別情報を指定してアクセス処理を実行することを特徴とする請求項１に記載のシステムコントロール装置。
【請求項３】
前記グローバルスヌープ制御部は、他のシステムコントロール装置内のグローバルスヌープ制御部から前記応答を受信して前記アクセス要求が実行可能であるか否かを判定し、当該判定の結果、前記アクセス要求が実行可能であり、かつ当該アクセス要求の宛先が前記ローカル記憶装置である場合に、前記ロック制御として前記宛先をロックすることを特徴とする請求項１または２に記載のシステムコントロール装置。
【請求項４】
前記ローカルスヌープ制御部は、自らに接続されたアクセス元装置から記憶装置に対するアクセス要求があった場合に、当該アクセス要求の宛先のデータがキャッシュされているか否かを判定し、キャッシュされていない場合に、前記アクセス要求の宛先が自らに接続されたローカル記憶装置であるか否かの判定を行なうことを特徴とする請求項１〜３のいずれか一つに記載のシステムコントロール装置。
【請求項５】
少なくとも記憶装置と、前記記憶装置にアクセスするアクセス元装置のいずれかを１以上接続したシステムコントロール装置を複数備え、前記複数のシステムコントロール装置間の通信によって前記アクセス元装置が任意の記憶装置に対してアクセス可能な情報処理システムであって、
前記複数のシステムコントロール装置のうち少なくともいずれか一つは、
自システムコントロール装置に接続されたアクセス元装置から前記記憶装置に対するアクセス要求があった場合に、当該アクセス要求を転送する出力部と、
自システムコントロール装置に接続されたアクセス元装置から記憶装置に対するアクセス要求があった場合に、当該アクセス要求の宛先が自システムコントロール装置に接続されたローカル記憶装置であるか否かを判定し、前記宛先が前記ローカル記憶装置である場合に、当該宛先をロックして前記アクセス要求を実行可能な状態とするローカルスヌープ制御部と、
自システムコントロール装置の出力部が出力したアクセス要求、および他のシステムコントロール装置が出力したアクセス要求を受け付ける受付部と、
前記受付部が受け付けたアクセス要求の宛先が自システムコントロール装置に接続されたローカル記憶装置である場合に、アクセス要求を実行可能であるか否かを示す応答の送信と、当該宛先のロック制御と、を行なうグローバルスヌープ制御部と、
自システムコントロール装置に接続されたアクセス元装置からのアクセス要求が実行可能となった場合に、前記記憶装置に対するアクセスを実行して前記ロックを解除するアクセス処理部と、
を備えたことを特徴とする情報処理システム。
【請求項６】
前記アクセス元装置のうち、キャッシュ機能を有するアクセス元装置は、単一のシステムコントロール装置に接続することを特徴とする請求項５に記載の情報処理システム。
【請求項７】
少なくとも記憶装置と前記記憶装置にアクセスするアクセス元装置のいずれかを１以上接続したシステムコントロール装置を複数備え、前記複数のシステムコントロール装置間の通信によって前記アクセス元装置が任意の記憶装置に対してアクセス可能な情報処理システムにおけるアクセス処理方法であって、
自装置に接続するローカルアクセス元装置から記憶装置に対するアクセス要求を受信したシステムコントロール装置が、当該受信したアクセス要求を他のシステムコントロール装置に転送するステップと、
前記アクセス元装置からアクセス要求を受信したシステムコントロール装置が、前記受信したアクセス要求の宛先が自システムコントロール装置に接続されたローカル記憶装置であるか否かを判定するステップと、
前記アクセス要求が転送されたシステムコントロール装置が、前記転送されたアクセス要求の宛先が自システムコントロール装置に接続されたローカル記憶装置であるか否かを判定するステップと、
前記ローカルアクセス元装置から受信したアクセス要求もしくは前記転送されたアクセス要求の宛先が自らのローカル記憶装置であったシステムコントロール装置が、前記アクセス要求の宛先である記憶装置をロックして前記アクセス要求を実行可能な状態とするステップと、
前記ローカルアクセス元装置からアクセス要求を受信したシステムコントロール装置が、当該受信したアクセス要求を実行するステップと、
前記ローカルアクセス元装置から受信したアクセス要求もしくは前記転送されたアクセス要求の宛先が自らのローカル記憶装置であったシステムコントロール装置が、実行されたアクセス要求の宛先である記憶装置をロック解除するステップと
を実行することを特徴とするアクセス処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも記憶装置とアクセス元装置とのいずれかを１以上接続したシステムコントロール装置と、該システムコントロール装置を複数接続した情報処理システム、および該情報処理システムにおけるアクセス処理方法に関する。
【背景技術】
【０００２】
従来、記憶装置に対して複数の装置がアクセスする構成が用いられてきた。この記憶装置に対するアクセスを行なうアクセス元装置としては、ＣＰＵ（Central Processing Unit）などの演算装置や、ＩＯ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）と呼ばれる入出力装置がある。
【０００３】
記憶装置とアクセス元装置との間には、システムコントロール装置が介在し、ストアアクセスが発生した記憶装置のストア先の宛先アドレスをシステムコントロール装置がロックして排他制御を行なうことで、アクセス元装置が複数である場合であっても、データの整合性を保つ。また、ＣＰＵのようにキャッシュを有するアクセス元装置が接続されている場合には、システムコントロール装置はアクセス要求の宛先アドレスのキャッシュデータがあるかを確認してコヒーレンシを確保する。
【０００４】
さらに、システムコントロール装置に記憶装置とアクセス元装置とを接続してシステムボードとし、このシステムボードを複数接続した大規模な情報処理システムも利用されている。システムボードを複数有する情報処理システムでは、個々のシステムボード上に搭載されたシステムコントロール装置が互いに通信してアクセス要求の転送を行なうことで、各アクセス元装置は自ボードの記憶装置にも他ボードの記憶装置にもアクセスできる。
【０００５】
このようなシステムボードを跨いだストアアクセスでデータの整合性を確保するため、各システムコントロール装置は、自ボードでのアクセスの発生状況やキャッシュ状況を相互に通知してシステム全体のアクセス状態を判定するグローバルスヌープを行なっている。
【０００６】
グローバルスヌープによってアクセス可能な状態であることが判明した場合には、アクセス要求が発生したボードのシステムコントロール装置がアクセス要求の宛先アドレスをロックし、アクセス処理を実行していた。
【０００７】
さらに、自ボード内のＣＰＵがキャッシュしているデータについては、他のボードでのキャッシュやアクセスが発生していないことが保証されている。そこで従来のシステムコントロール装置は、自ボードで発生したアクセス要求の宛先アドレスが自ボードでキャッシュされているか否かを判定するローカルスヌープを実施していた。このローカルスヌープで、自ボードでキャッシュされていた場合には、システムコントロール装置は、グローバルスヌープの判定結果を待たずに記憶装置へのアクセスを行なって処理の高速化を図っていた。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平７−２１０７７号公報
【特許文献２】特開昭５８−１０７９７７号公報
【特許文献３】特開平４−２７１４５０号公報
【特許文献４】特開２００６−７２５０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来、複数のシステムボードを接続する構成では、各システムボードにＣＰＵを持たせて処理能力を向上することが一般的であった。しかし近年、ＣＰＵの処理能力が向上したことで、ＣＰＵは単一のシステムボードに集約し、他のシステムボードのアクセス元装置はＩＯのみとする構成が採用されている。
【００１０】
２以上のシステムボードにＣＰＵを搭載する構成では、各システムボードは自ボード上のＣＰＵのキャッシュがヒットした場合にはローカルスヌープで処理できるが、自ボードでキャッシュミスした場合には他ボード上のＣＰＵにデータがキャッシュされている可能性がある。そのため、従来のシステムコントローラ装置は、自ボードでキャッシュミスした場合には、グローバルスヌープで処理していた。
【００１１】
ＣＰＵを一のシステムボードに集約する構成では、他ボードでのデータのキャッシュの可能性を排除することができる。しかしながら、従来のアクセス制御では、自ボードの記憶装置に対して他のボードからストアアクセスする場合に、アクセス元のボードでアドレスロックをかけていた。そのため、自ボードの記憶装置に対するアクセス状態を知るためにグローバルスヌープを実行していた。
【００１２】
開示の技術は、上記に鑑みてなされたものであって、ローカルスヌープで処理できるケースを追加し、記憶装置へのアクセスを高速化したシステムコントロール装置、情報処理システムおよびアクセス処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本願の開示するシステムコントロール装置、情報処理システムおよびアクセス処理方法では、システムコントロール装置は、自らに接続されたアクセス元装置からの記憶装置に対するアクセス要求を他のシステムコントローラ装置に転送し、自らに接続されたアクセス元装置からの記憶装置に対するアクセス要求の宛先が自らに接続されたローカル記憶装置であれば宛先をロックしてアクセス要求を実行可能な状態とし、自らが転送したアクセス要求もしくは他のシステムコントロール装置から転送されたアクセス要求の宛先がローカル記憶装置であれば当該アクセス要求の実行可否を示す応答の送信と、当該アクセス要求の宛先のロック制御と、を行なう。そして、自らに接続されたアクセス元装置からのアクセス要求が実行可能となったシステムコントロール装置がアクセスを実行してロックを解除する。
【発明の効果】
【００１４】
本願の開示するシステムコントロール装置、情報処理システムおよびアクセス処理方法によれば、ローカルスヌープで処理できるケースを追加し、記憶装置へのアクセスを高速化したシステムコントロール装置、情報処理システムおよびアクセス処理方法を得ることができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、本実施例にかかるシステムコントロール装置の概要構成を示す概要構成図である。
【図２】図２は、本実施例にかかる情報処理システムの概要構成を示す概要構成図である。
【図３】図３は、ローカルスヌープの処理動作について説明するフローチャートである。
【図４】図４は、グローバルスヌープの処理動作について説明するフローチャートである。
【図５】図５は、ＩＯがストア要求を発行した場合の従来の処理動作を説明する説明図である。
【図６】図６は、アドレスロックを要求先で制御する本実施例の処理動作を説明する説明図である。
【図７】図７は、従来のローカルメモリへのアクセスにおけるキャッシュヒットケースについて説明する説明図である。
【図８】図８は、従来のローカルメモリへのアクセスにおけるキャッシュミスケースについて説明する説明図である。
【図９】図９は、本実施例におけるキャッシュミスケースでのローカル処理について説明する説明図である。
【図１０】図１０は、本実施例におけるローカルメモリへのアクセス競合について説明する説明図である。
【図１１】図１１は、ローカルで解決可能なケースの増加について説明する説明図である。
【図１２】図１２は、情報処理システムの変形例について説明する説明図である。
【発明を実施するための形態】
【００１６】
以下に、本願が開示するシステムコントロール装置、情報処理システムおよびアクセス処理方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１７】
図１は、本実施例にかかるシステムコントロール装置の概要構成を示す概要構成図である。また、図２は、図１に示したシステムコントロール装置を有する情報処理システムの概要構成を示す概要構成図である。
【００１８】
図２に示した情報処理システム１は、システムボード１０とシステムボード２０とを有する。システムボード１０は、システムコントロール装置であるシステムコントローラ１７にＣＰＵ１１，１２、ＩＯ１３，１４、メモリ１５，１６を接続している。また、システムボード２０は、システムコントロール装置であるシステムコントローラ２５にＩＯ２１，２２、メモリ２３，２４を接続している。システムボードの数は２には限定されない。
【００１９】
メモリ１５，１６，２３，２４は、記憶装置である。ＣＰＵ１１，１２は、演算装置であり、キャッシュメモリを有するアクセス元装置として機能する。ＩＯ１３，１４，２１，２２は、入出力装置であり、キャッシュメモリを持たないアクセス元装置として機能する。
【００２０】
システムコントローラ１７とシステムコントローラ２５とは互いに通信している。具体的には、システムコントローラ１７は、システムボード１０内のアクセス元装置、すなわちＣＰＵ１１，１２、ＩＯ１３，１４からのアクセス要求をシステムコントローラ２５にブロードキャスト（ＢＣ）する。システムコントローラ２５は、システムコントローラ１７からブロードキャストされたアクセス要求に対する応答（ＣＳＴ）をシステムコントローラ１７に返す。同様に、システムコントローラ２５は、システムボード２０内のアクセス元装置、すなわちＩＯ２１，２２からのアクセス要求をシステムコントローラ１７にブロードキャスト（ＢＣ）する。システムコントローラ１７は、システムコントローラ２５からブロードキャストされたアクセス要求に対する応答（ＣＳＴ）をシステムコントローラ２５に返す。
【００２１】
システムコントローラ１７は、図１に示したように、その内部にブロードキャスト出力部３１、ローカルスヌープ制御部３２、アドレスロック制御部３３、グローバルスヌープ制御部３４、ブロードキャスト受付部３５、メモリアクセス処理部３６を有する。
【００２２】
システムコントローラ１７は、自身に直接接続されたアクセス元装置であるＣＰＵ１１，１２、ＩＯ１３，１４からアクセス要求を受けると、受け付けたアクセス要求をブロードキャスト出力部３１とローカルスヌープ制御部３２に入力する。
【００２３】
ブロードキャスト出力部３１は、入力されたアクセス要求をブロードキャストして他のシステムボード２０に送ると共に、システムコントローラ１７内部のブロードキャスト受付部３５に入力する。
【００２４】
ローカルスヌープ制御部３２は、入力されたアクセス要求、すなわち、自ボードで発生したアクセス要求の宛先アドレスが、自ボードでキャッシュされているか否かを判定する。システムボード１０において、キャッシュメモリを有するアクセス元装置はＣＰＵ１１，１２であるので、ローカルスヌープ制御部３２は、入力されたアクセス要求の宛先アドレスがＣＰＵ１１，１２にキャッシュされているか否かを判定することとなる。
【００２５】
入力されたアクセス要求、すなわち、自ボードで発生したアクセス要求の宛先アドレスが自ボードでキャッシュされていた場合、所謂キャッシュヒットケースでは、その宛先アドレスのデータについては他のボードでキャッシュされていない、あるいは他ボードからのアクセスによってロックされていないことが保証されている。そこでローカルスヌープ制御部３２は、アクセス要求がストアアクセス要求のときには、アドレスロック制御部３３にアクセス要求の宛先アドレスをロックさせ、メモリアクセス処理部３６にストアアクセス要求を処理させる。
【００２６】
さらに、ローカルスヌープ制御部３２は、その内部にローカルメモリロック処理部３２ａを有する。ローカルメモリロック処理部３２ａは、自ボードで発生したアクセス要求の宛先アドレスが自ボードでキャッシュされていない場合、所謂キャッシュミスケースにおいて、アクセス要求の宛先がメモリ１５，１６のいずれかであるか否かを判定する。
【００２７】
ストアアクセス要求の宛先がメモリ１５，１６の何れかである場合、すなわち、ストアアクセス要求の宛先が自らに接続されたローカルの記憶装置すなわちローカルメモリである場合、ローカルメモリロック処理部３２ａは、アドレスロック制御部３３にストアアクセス要求の宛先アドレスをロックさせ、メモリアクセス処理部３６にストアアクセス要求を処理させる。
【００２８】
ブロードキャスト受付部３５は、ブロードキャストされたアクセス要求ＢＣを受け付けてグローバルスヌープ制御部３４に送る。ブロードキャスト受付部３５は、自ボードであるシステムボード１０内のブロードキャスト出力部３１がブロードキャストしたアクセス要求と、外部のシステムボード、例えばシステムボード２０がブロードキャストしたアクセス要求とを同様に扱う。
【００２９】
グローバルスヌープ制御部３４は、ブロードキャスト受付部３５を介して入力されたアクセス要求、すなわち、ブロードキャストされたアクセス要求の宛先が、システムコントローラ１７に接続されたローカル記憶装置、すなわちメモリ１５，１６である場合に、アクセス要求を実行可能であるか否かを示す応答の送信と、当該宛先のロック制御とを行なう。
【００３０】
具体的には、グローバルスヌープ制御部３４は、アクセス要求の宛先アドレスをキーにアドレスロック制御部３３を検索する（図１、ＣＨＫ参照）。アドレスロック制御部３３の検索の結果、アクセス要求の宛先アドレスがロック中である場合、すなわちアドレスロック制御部３３に宛先アドレスが登録済みである場合には、ストアアクセス処理の実行ができないことを示す判定結果を応答ＣＳＴとしてアクセス要求元のシステムコントローラに送信する。
【００３１】
そして、アクセス要求の宛先アドレスがロック中でない場合、すなわちアドレスロック制御部３３に宛先アドレスが登録されていない場合、グローバルスヌープ制御部３４内部のローカルメモリロック処理部３４ａは、アクセス要求の宛先がローカル記憶装置であるか否かを判定する。
【００３２】
ローカルメモリロック処理部３４ａは、アクセス要求の宛先がローカル記憶装置、すなわちメモリ１５，１６ではない場合、アクセス処理が実行可能であることを示す判定結果を応答ＣＳＴとしてアクセス要求元のシステムコントローラに送信する。一方、アクセス要求の宛先がローカル記憶装置、すなわちメモリ１５，１６である場合、ローカルメモリロック処理部３４ａは、アクセス要求にロック識別情報を対応付け、アクセス処理が実行可能であることを示す判定結果にロック識別情報を付加してアクセス要求元のシステムコントローラに送信する。ロック識別情報は、宛先アドレスに対応して付され、ロック識別情報から宛先アドレスを一意に特定可能な情報である。ロック識別情報としては、例えば宛先アドレスをロックするのに使用するロックレジスタのＩＤを用いることが好適である。
【００３３】
グローバルスヌープ制御部３４が送出する応答ＣＳＴにおいて、「アクセス処理が実行可能である」とは、アドレスロック制御部３３においてロックされていないことを示すローカルな判定結果である。グローバルスヌープ制御部３４は、自らがアドレスロック制御部３３を検索し、検索結果を応答ＣＳＴとして送信する。
【００３４】
同様に、システムボード２０に搭載されたシステムコントローラ２５は、自らのアドレスロック制御部を検索し、検索結果を応答ＣＳＴとして送信する。
【００３５】
システムボード１０のグローバルスヌープ制御部３４は、自らの検索結果と、システムコントローラ２５から受信した応答とを用いて、情報処理システム１全体でアクセス要求が実行可能であるか否かのグローバルな判定を行なう。システムコントローラ２５も同様に、自らの検索結果とシステムコントローラ１７から受信した応答とを用いて、システムコントローラ１７と同じタイミングでグローバルな判定を行なう。システムコントローラ１７とシステムコントローラ２５とは同一の情報に基づいてグローバルな判定を行なっているので、それぞれのシステムコントローラでグローバルな判定結果は一致する。
【００３６】
グローバルな判定の結果、アクセス要求が実行可能であり、そのアクセス要求の発行元がローカルのアクセス元装置、すなわちＣＰＵ１１，１２、ＩＯ１３，１４の何れかである場合、グローバルスヌープ制御部３４は、メモリアクセス処理部３６にアクセス処理を行なわせる。また、アクセス要求が実行可能であり、そのストアアクセス要求の宛先がローカルの記憶装置、すなわちメモリ１５，１６の何れかである場合、ローカルメモリロック処理部３４ａは、ストアアクセス要求の宛先アドレスをアドレスロック制御部３３に登録（ＳＥＴ）してロックさせる。
【００３７】
メモリアクセス処理部３６は、ローカルスヌープ制御部３２やグローバルスヌープ制御部３４からの指示を受けた場合にアクセス要求を処理する。具体的には、メモリアクセス処理部３６は、ストアアクセス要求の宛先がローカル記憶装置、すなわちメモリ１５，１６である場合、ストアアクセス要求を直接処理する。その後、メモリアクセス処理部３６は、アクセス元装置にアクセス応答を行なうとともに、アドレスロック制御部３３にアクセスした宛先アドレスのロックをリセットさせる。
【００３８】
一方、アクセス要求の宛先がローカル記憶装置でない場合、すわなち、システムボード２０に搭載されたメモリ２３，２４である場合、メモリアクセス処理部３６は、アクセス要求をシステムコントローラ２５のメモリアクセス処理部に転送する。そして、メモリアクセス処理部３６はシステムコントローラ２５からアクセス要求の処理結果を受信し、アクセス元装置に対してアクセス応答を行なう。
【００３９】
また、メモリアクセス処理部３６は、システムコントローラ２５内部のメモリアクセス処理部から転送されたメモリ１５，１６に対するストアアクセス要求を受けた場合、転送されたストアアクセス要求を直接処理する。その後、メモリアクセス処理部３６は、システムコントローラ２５に処理結果を送信するとともに、アドレスロック制御部３３にアクセスした宛先アドレスのロックをリセットさせる。
【００４０】
このように、ローカルスヌープ制御部３２とグローバルスヌープ制御部３４は、ストアアクセス要求の宛先がローカル記憶装置のメモリ１５，１６である場合に、宛先アドレスをアドレスロック制御部３３に登録する。そして、メモリアクセス処理部３６はメモリ１５，１６に対するストアアクセス処理の終了時に、アドレスロック制御部３３に登録されたアドレスを削除してリセットする。したがって、アドレスロック制御部３３は、ローカル記憶装置に対するアクセス状態を管理する。そのため、情報処理システム１は、アクセス先のボードでロック制御を行なうこととなる。
【００４１】
図３は、ローカルスヌープの処理動作について説明するフローチャートである。ローカルスヌープ制御部３２は、ローカルのアクセス元装置で発生したアクセス要求が入力されると、まず、アクセス要求の宛先アドレスのデータがシステムボード１０に搭載されているＣＰＵ１０、１１にキャッシュされているか否かを判定する（Ｓ１０１）。システムコントローラ１７は、ＣＰＵ１１，１２がキャッシュしているデータのアドレス部分のテーブルを保持しており、ローカルスヌープ制御部３２は宛先アドレスをキーにこのテーブルを検索することで、宛先アドレスに対応するデータがＣＰＵ１０、１１にキャッシュされているか否かを判定することができる。
【００４２】
そして、アクセス要求の宛先アドレスがＣＰＵ１０あるいはＣＰＵ１１にキャッシュされている、すなわちキャッシュヒットした場合（Ｓ１０１，Ｙｅｓ）、ローカルスヌープ制御部３２は、グローバルスヌープをキャンセルし（Ｓ１０６）、データを保持しているキャッシュに対するアクセス要求を処理して（Ｓ１０７）、ローカルスヌープを終了する。
【００４３】
一方、アクセス要求の宛先アドレスがＣＰＵ１０にもＣＰＵ１１にもキャッシュされておらず、キャッシュミスした場合（Ｓ１０１，Ｎｏ）、ローカルメモリロック処理部３２ａは宛先アドレスをキーにアドレスロック制御部３３を検索し、宛先アドレスのロックが有効であるか否かを判定する（Ｓ１０２）。判定の結果、宛先アドレスがロックされている場合（Ｓ１０２，Ｙｅｓ）、システムコントローラ１７は、そのまま処理を終了する。
【００４４】
そして、宛先アドレスのロックが有効でない場合（Ｓ１０２，Ｎｏ）、ローカルメモリロック処理部３２ａは、宛先アドレスがローカルメモリ、つまりメモリ１５あるいはメモリ１６であるか否かを判定する（Ｓ１０３）。判定の結果、宛先アドレスがローカルメモリでない、言い換えるとローカルメモリに対するアクセス要求ではない場合（Ｓ１０３，Ｎｏ）、ローカルスヌープ制御部３２はそのまま処理を終了する。
【００４５】
一方、宛先アドレスがローカルメモリである場合（１０３，Ｙｅｓ）、ローカルメモリロック処理部３２ａは、グローバルスヌープをキャンセルし（Ｓ１０４）、ストアアクセス要求の宛先アドレスをアドレスロック制御部３３に登録して宛先アドレスのアドレスロックを有効にする。そして、ローカルメモリロック処理部３２ａは、メモリアクセス処理部３６にストアアクセス要求の処理を実行させて（Ｓ１０５）、ローカルスヌープを終了する。
【００４６】
図４は、グローバルスヌープの処理動作について説明するフローチャートである。グローバルスヌープ制御部３４は、ブロードキャスト受付部３５からアクセス要求が入力されると、アクセス要求に含まれる宛先アドレスをキーにアドレスロック制御部３３を検索し、宛先アドレスのロックが有効であるか否かを判定する（Ｓ２０１）。判定の結果、宛先アドレスがロックされている場合（Ｓ２０１，Ｙｅｓ）、グローバルスヌープ制御部３４は、アクセス処理の実行ができないことを示す判定結果「処理不可」を応答ＣＳＴとしてアクセス元に送出する（Ｓ２０４）。
【００４７】
宛先アドレスのロックが有効でない場合（Ｓ２０１，Ｎｏ）、ローカルメモリロック処理部３４ａは、アクセス要求がローカルメモリに対するものであるか否か、言い換えると宛先アドレスがローカルメモリであるか否かを判定する（Ｓ２０２）。判定の結果、ローカルメモリに対するアクセス要求ではない場合（Ｓ２０２，Ｎｏ）、グローバルスヌープ制御部３４は、アクセス処理の実行が可能であることを示す判定結果「処理可能」を応答ＣＳＴとしてアクセス元に送出する（Ｓ２０５）。
【００４８】
一方、ローカルメモリに対するアクセス要求である場合、言い換えると宛先アドレスがローカルメモリである場合（Ｓ２０２，Ｙｅｓ）、ローカルメモリロック処理部３４ａは、アクセス要求にロック識別情報（ロックＩＤ）を対応付け、グローバルスヌープ制御部３４は、アクセス処理が実行可能であることを示す判定結果にロック識別情報を付加してアクセス元に送信する（Ｓ２０３）。
【００４９】
グローバルスヌープ制御部３４は、自らのローカルな判定結果をアクセス元に送信した後、他のボードでの検索結果、すなわち他のボードでのローカルな判定結果を他のボードから受信し（Ｓ２０６）、情報処理システム１全体でそのアクセス要求が処理可能であるか否かのグローバルな判定を行なう（Ｓ２０７）。
【００５０】
その結果、アクセス要求が処理可能でなければ（Ｓ２０８，Ｎｏ）、グローバルスヌープ制御部３４は再びステップＳ２０１に戻る。一方、アクセス要求が処理可能な状態となった場合（Ｓ２０８，Ｙｅｓ）、ローカルメモリロック処理部３４ａは、ローカルメモリに対するアクセスであるか否か、言い換えると宛先アドレスがローカルメモリであるか否かを判定する（Ｓ２０９）。その結果、ローカルメモリに対するストアアクセス要求であれば（Ｓ２０９，Ｙｅｓ）、ローカルメモリロック処理部３４ａは、アクセス要求の宛先アドレスをアドレスロック制御部３３に登録してアドレスロックを有効にする（Ｓ２１１）。
【００５１】
ステップＳ２１１終了後、もしくはローカルメモリに対するアクセスではない場合（Ｓ２０９，Ｎｏ）、グローバルスヌープ制御部３４ａは、アクセス要求の発行元がローカルのアクセス元装置であるか否かを判定する（Ｓ２１０）。その結果、ローカルのアクセス元装置からのアクセス要求でない場合（Ｓ２１０，Ｎｏ）には、そのまま処理を終了する。一方、ローカルのアクセス元装置からのアクセス要求である場合（Ｓ２１０，Ｙｅｓ）には、メモリアクセス処理部３６にアクセス要求の処理を実行させて（Ｓ２１２）、グローバルスヌープを終了する。
【００５２】
つぎに、図２に示した情報処理システム１における具体的なアクセス要求の処理動作を、従来の情報処理システムにおける処理動作と比較して説明する。
【００５３】
図５は、ＩＯがストア要求を発行した場合の従来の処理動作を説明する説明図である。情報処理システム１が従来の処理動作をするならば、システムボード２０に搭載されたＩＯ２１がシステムコントローラ２５を介してシステムボード１０に搭載されたメモリ１５にストア要求（ＳＴＲ）を発行すると、システムコントローラ２５がローカルスヌープした後（Ｌスヌープ）、システムコントローラ２５と、システムコントローラ１７とがグローバルスヌープする（Ｇスヌープ）。このグローバルスヌープで、システムコントローラ１７，２５はそれぞれストア要求の宛先についてロックがされているか否かを検査し、検査結果ＣＳＴを互いに送信しあう。図５の例では、ロック検査がＯＫ、つまり宛先アドレスがロックされていないと判定されたものとする。
【００５４】
システムコントローラ１７，２５は、自らの検査結果と他方のシステムコントローラから受信した検査結果とを用いてロック状態の判定を行なう。自らの検査結果と他方のシステムコントローラから受信した検査結果がともにロックＯＫ、すなわちストア要求の宛先アドレスがロックされていないことを示すものである場合、システムコントローラ１７，２５は、メモリストア要求を実行可能であると判定する。
【００５５】
そして、ストア要求の発行元であるシステムボード２０のシステムコントローラ２５が、宛先アドレスをアドレスロック制御部に登録してアドレスロックを有効する。システムコントローラ２５は、登録したロックレジスタのＩＤをロックＩＤとして、メモリストア要求とともにアクセス先のシステムボード１０に送信する。
【００５６】
システムボード１０のシステムコントローラ１７は、メモリストア要求を受けてメモリ１５にストア処理し、ストア応答をシステムボード２０に返す。また、システムコントローラ１７は、ストア要求と共にシステムコントローラ２５から受信したロックＩＤをストア応答とともにシステムコントローラ２５に返す。
【００５７】
システムコントローラ１７からストア応答とロックＩＤを受け取ったシステムコントローラ２５は、受け取ったロックＩＤに基づいて宛先アドレスのアドレスロックを解除し、ストア応答をＩＯ２１に送る。
【００５８】
この従来の処理動作では、アドレスロックの制御をストア要求の発行元であるシステムボード２０で行なっていた。これに対し、本実施例では、既に述べたようにストア要求の要求先の記憶装置が接続されたシステムコントローラ、言い換えるとターゲットメモリが接続されたシステムコントローラでアドレスロックを制御する。
【００５９】
図６は、アドレスロックを要求先、つまりシステムボード１０に搭載されたシステムコントローラ１７で制御する本実施例の処理動作を説明する説明図である。図６に示した例では、図５と同様にＩＯ２１がストア（ＳＴＲ）要求を発行している。このストア要求に対し、システムコントローラ２５がローカルスヌープした後（Ｌスヌープ）、システムコントローラ２５と、システムコントローラ１７とがグローバルスヌープする（Ｇスヌープ）。このグローバルスヌープで、システムコントローラ１７，２５はそれぞれストア要求の宛先についてロックがされているか否かを検査し、検査結果ＣＳＴを互いに送信しあう。
【００６０】
また、ストア要求の要求先であるシステムボード１０のシステムコントローラ１７は、ロック検査がＯＫである場合に、そのストア要求のロックに使用するロックレジスタのＩＤを決定し、決定したロックＩＤを検査結果ＣＳＴとともにシステムコントローラ２５に送信する。
【００６１】
システムコントローラ１７，２５は、自らの検査結果と他方のシステムコントローラから受信した検査結果とを用いて判定を行なう。自らの検査結果と他方のシステムコントローラから受信した検査結果がともにロックＯＫ、すなわちストア要求の宛先アドレスがロックされていないことを示すものである場合、システムコントローラ１７，２５は、メモリストア要求を実行可能であると判定する。
【００６２】
そして、ストア要求の発行元であるシステムボード２０のシステムコントローラ２５は、システムコントローラ１７から受信したロックＩＤとともにメモリストア要求をシステムボード１０に送信する。また、ストア要求の要求先であるシステムボード１０のシステムコントローラ１７は、システムコントローラ２５から受信したストア要求の宛先アドレスをアドレスロック制御部に登録して、宛先アドレスのアドレスロックを有効にする。
【００６３】
システムボード１０のシステムコントローラ１７は、システムコントローラ２５からのメモリストア要求を受けてメモリ１５にストア処理し、ストア応答をシステムボード２０に返す。また、システムコントローラ１７は、ストア応答に合わせ、ストア要求と共にシステムコントローラ２５から受信したロックＩＤに基づいて、宛先アドレスのアドレスロックを解除する。そして、システムコントローラ１７からストア応答を受け取ったシステムコントローラ２５は、ストア応答をＩＯ２１に送る。
【００６４】
この処理動作では、アドレスロックの制御をストア要求の要求先であるシステムボード１０で行なっている。また、グローバルスヌープの際に、ストア要求の要求先のシステムボード１０はロック検査結果と共にロックＩＤをストア要求の要求元であるシステムボード２５に通知する。
【００６５】
ストア要求の宛先アドレスをロックし、ストア応答時にロックを解除する場合、ストア要求とストア応答との対応付けを行なう必要がある。ストア応答のパケットにアドレス自体を持たせれば、ストア要求との対応が分かり、どのアドレスロックを解除すべきかを特定することができる。しかし、ストア応答にアドレス自体を持たせるとアドレス分だけストア応答のパケットが大きくなる。そこで、ストア応答のパケットを小さくするため、アドレスロック時に宛先アドレスに対してロックＩＤを付し、ストア応答にはロックＩＤを持たせるように構成することで、ストア応答のパケットのサイズを小さくすることができる。
【００６６】
図５に示した例では、システムコントローラ２５がアドレスロックを行い、ロックＩＤを付したストア要求をシステムコントローラ１７に送っている。システムコントローラ１７は、ストア処理を実行した後、ストア応答にロックＩＤを付してシステムコントローラ２５に返す。システムコントローラ２５は、ストア応答に示されたロックＩＤのアドレスロックを解除する。
【００６７】
図６に示した例では、システムコントローラ１７がアドレスロックを行なう。システムコントローラ１７は、そのため、グローバックスヌープの結果を応答するときに宛先アドレスにロックＩＤを対応付けておき、グローバルスヌープの応答ＣＳＴにロックＩＤを付してシステムコントローラ２５に送る。システムコントローラ２５は、グローバルスヌープの応答ＣＳＴに付されたロックＩＤをストア要求に付してシステムコントローラ１７に送る。システムコントローチ１７は、ストア要求に付されたロックＩＤをアドレスロックに使用してストア要求を実行する。ストア要求の実行後、システムコントローラ１７はストア応答に付されたロックＩＤに対応するアドレスロックを解除する。
【００６８】
図７は、従来のローカルメモリへのアクセスにおけるキャッシュヒットケースについて説明する説明図である。情報処理システム１が従来の処理動作をするならば、システムボード１０に搭載されたＣＰＵ１１がシステムコントローラ１７に対してフェッチ要求（ＦＣＨ）を発行すると、まずシステムコントローラ１７がローカルスヌープする。このローカルスヌープでＣＰＵ１２のキャッシュにヒットすると、システムコントローラ１７は、グローバルスヌープをキャンセルし、ＣＰＵ１２に対してリード処理を実行し、フェッチデータ応答をＣＰＵ１１に返す。
【００６９】
図８は、従来のローカルメモリへのアクセスにおけるキャッシュミスケースについて説明する説明図である。情報処理システム１が従来の諸動作をするならば、システムボード１０に搭載されたＣＰＵ１１がシステムコントローラ１７に対してフェッチ要求（ＦＣＨ）を発行すると、まずシステムコントローラ１７がローカルスヌープする。このローカルスヌープでＣＰＵ１１，１２のいずれにもフェッチ対象のデータがキャッシュされていなければ、従来の動作ではアクセス要求先のシステムコントローラ１７はシステムボード２０でのアドレスロック状態を把握していないことから、システムボード２０でのアドレスロックの状態が不明であるため、ローカルスヌープでのフェッチ要求の解決はできない。
【００７０】
つぎに、システムコントローラ１７と、システムコントローラ２５とがグローバルスヌープする。このグローバルスヌープで、システムコントローラ１７，２５はそれぞれフェッチ要求の宛先についてロックがされているか否かを検査し、検査結果ＣＳＴを互いに送信しあう。
【００７１】
システムコントローラ１７，２５は、自らの検査結果と他方のシステムコントローラから受信した検査結果とを用いて、フェッチ要求の宛先におけるロック状態の判定を行なう。自らの検査結果と他方のシステムコントローラから受信した検査結果がともにロックＯＫ、すなわちフェッチ要求の宛先アドレスがアドレスロック制御部に登録されておらず、ロックされていないことを示すものである場合、システムコントローラ１７，２５は、フェッチ要求を実行可能であると判定する。
【００７２】
そして、フェッチ要求の発行元であるシステムボード１０のシステムコントローラ１７が、ローカルメモリであるメモリ１５に対してリード処理を実行し、フェッチデータ応答をＣＰＵ１１に返す。
【００７３】
このように、従来の処理動作では、キャッシュヒットケースではローカルでアクセスの処理ができるが、キャッシュミスケースではグローバルスヌープで処理することとなる。これに対し、本実施例にかかるシステムコントローラでは、キャッシュヒットケースでローカル処理が可能であるのに加え、キャッシュミスケースでもローカルメモリに対するアクセスであればローカルに処理が可能である。
【００７４】
図９は、本実施例におけるキャッシュミスケースでのローカル処理について説明する説明図である。図９に示した例では、システムボード１０に搭載されたＣＰＵ１１がシステムコントローラ１７にフェッチ要求（ＦＣＨ）を発行すると、まずシステムコントローラ１７がローカルスヌープする。このローカルスヌープでＣＰＵ１１，１２にキャッシュされていなくとも、本実施例ではアクセス要求先であるシステムコントローラ１７がアドレスロックの状態を把握しているため、ローカルメモリに対するアクセスであれば、アドレスロックの状態が確認できる。
【００７５】
そこで、システムコントローラ１７は、ローカルスヌープでロック検査がＯＫであり、宛先アドレスがロックされていないことが確認できれば、システムコントローラ２５に対する確認を要することなくメモリ１５に対してリード処理を実行し、フェッチデータ応答をＣＰＵ１１に返す。
【００７６】
図８に示した比較例では、システムボード１０に接続されたＣＰＵ１１がシステムボード１０に接続されたメモリ１５に対してアクセス要求を行なった場合であっても、ローカルスヌープでキャッシュミスするとグローバルスヌープの結果を待ってアクセスを処理することとなる。
【００７７】
一方、図９に示した実施例の動作では、システムコントローラ１７でローカルメモリであるメモリ１５のロック状態を把握しているので、ローカルスヌープ時にロック検査結果を得ることができる。そのため、グローバルスヌープを実行する他と無くメモリ１５に対するアクセスを開始することができ、処理時間を短縮できる。具体的には、図９に示した実施例のキャッシュミスケースでは、図７に示した比較例のキャッシュヒットケースと同等の処理時間でアクセスを処理可能である。
【００７８】
図１０は、本実施例におけるローカルメモリへのアクセス競合について説明する説明図である。図１０の例ではＣＰＵ１１によるフェッチ要求と、いずれかのＩＯからのストア要求とが競合しているものとする。図１０に示した例では、システムボード１０に搭載されたＣＰＵ１１がシステムコントローラ１７にフェッチ要求（ＦＣＨ）を発行すると、まずシステムコントローラ１７がローカルスヌープする。本実施例では、システムコントローラ１７がローカルメモリのアドレスロック状態を把握しているため、システムコントローラ１７はローカルスヌープの結果から、ＩＯからのストア要求によってフェッチ要求の宛先アドレスがロックされており、ロック検査結果はＮＧとなると判断することができる。そのため、システムコントローラ１７は、ローカルスヌープではローカルメモリへのアクセスを処理しない。
【００７９】
その後、グローバルスヌープの実行タイミングにおいてＩＯストアが終了したものとすると、システムコントローラ１７に設定されたアドレスロック状態が解除される。従って、グローバルスヌープを実行しているときにはロック検査の結果がＯＫとなり、システムコントローラ１７，２５は、ＣＰＵ１１からのフェッチ要求を実行可能であると判定する。
【００８０】
そして、フェッチ要求の発行元であるシステムボード１０のシステムコントローラ１７が、メモリ１５に対してリード処理を実行し、フェッチデータ応答をＣＰＵ１１に返す。
【００８１】
このように、本実施例に開示するシステムコントローラ１７では、従来方式に比してローカルスヌープで処理可能なケースを増やすことができる。図１１は、ローカルで解決可能なケースの増加について説明する説明図である。
【００８２】
図１１に示したように、従来の方式では、リクエストが共有型フェッチであれば、ローカルでキャッシュヒットした場合にローカルスヌープで解決できるが、キャッシュミスケースではローカルスヌープのみでは解決できなかった。また、リクエストが排他型フェッチであれば、排他キャッシュが存在する場合のみローカルスヌープで解決でき、キャッシュミスケースと共有型キャッシュが存在するケースではローカルスヌープのみでの解決はできなかった。
【００８３】
本実施例の方式では、従来方式でローカルスヌープで解決可能なケースに加え、ローカルメモリに対するアクセスのキャッシュミスケースは、リクエストが共有型フェッチであっても排他型フェッチであっても、ローカルスヌープのみでも解決可能である。また、リクエストが排他型フェッチで、共有型のキャッシュかヒットしたケースについてもローカルスヌープで解決可能である。
【００８４】
したがって、本実施例の方式では、リモートメモリ、すなわち他のシステムボードに接続された記憶装置に対するアクセスのキャッシュミスケース以外はローカルスヌープで解決可能となる。
【００８５】
さて、図２に示した情報処理システム１は、キャッシュを有するアクセス元装置が搭載されたシステムボード１０と、キャッシュを有するアクセス元装置を搭載しないシステムボード２０とが１つずつ有する構成であった。他の構成例として、図１２に示すように、キャッシュを有するアクセス元装置を搭載しないシステムボードの数を増やすこともできる。図１２に示した情報処理システム２では、システムボード２０と同様の構成を有するシステムボード２０＿１〜２０＿３と、アクセス元装置を搭載したシステムボード１０とを相互に接続している。かかる構成では、各々のシステムボードに搭載されたブロードキャスト出力部は接続された全てのシステムボードにアクセス要求を転送し、ブロードキャスト受付部３５は全てのシステムボードからアクセス要求を受信する。そして、各々のシステムボードに搭載されたグローバルスヌープ制御部は、アドレスロックの検索結果を接続された全てのシステムボードに送信し、全てのシステムボードから検索結果を受けて、いずれかの検索結果にアクセス要求の宛先アドレスがアドレスロック中であることが示された場合にはアクセス要求の実行は不可能と判定する。
【００８６】
なお、図１２に示した構成では、システムボード２０＿１〜２０＿３のメモリの数とＩＯ数も同一であるが、キャッシュを有するアクセス元装置を搭載しない限り、各メモリの数とＩＯの数は任意であり、メモリやＩＯを搭載しなくともよい。
【００８７】
すなわち、キャッシュを有するアクセス元装置が単一のボードに搭載されていれば、他の構成適宜変更可能である。また、キャッシュを有するアクセス元装置をいずれかのボードに搭載した情報処理システムでは、その他のキャッシュを有するアクセス元装置を持たないボードにおいてローカルスヌープ制御は不要である。これは、キャッシュを有するアクセス元装置を搭載していないために自ボードでキャッシュヒットすることがなく、かつ他のボードでキャッシュされている可能性からグローバルスヌープが必要であるためである。
【００８８】
上述してきたように、本実施例１では、複数ボードで構成される情報処理システムにおいて、メモリへのストアアクセスのためのアドレスロックをターゲットメモリのあるボード内のシステムコントローラで設定し、そのロックレジスタ番号を要求元装置のあるボード内のシステムコントローラに通信する機構と、他システムコントローラのスヌープ結果を参照せずにメモリリクエストを実行する。
【００８９】
かかる方式ではＣＰＵからのフェッチアクセスが同一ボード内のメモリ宛の場合に、同一アドレスへのストアアクセスが自身で検査可能となるため、全ボード内システムコントローラでのスヌープ処理の完了を待つ必要がなく、フェッチアクセス時間が短縮できる。すなわち、従来機種よりもローカルスヌープの成功ケースを追加され、メモリアクセスの高速化が実現できる。
【符号の説明】
【００９０】
１，２  情報処理システム
１０，２０，２１＿１〜２０＿３  システムボード
１１，１２    ＣＰＵ
１３，１４，２１，２２  ＩＯ
１５，１６，２３，２４  メモリ
１７，２５    システムコントローラ
３１    ブロードキャスト出力部
３２    ローカルスヌープ制御部
３２ａ，３４ａ  ローカルメモリロック処理部
３３    アドレスロック制御部
３４    グローバルスヌープ制御部
３５    ブロードキャスト受付部
３６    メモリアクセス処理部
【図１】
2010238191.tif 000003
【図２】
2010238191.tif 000004
【図３】
2010238191.tif 000005
【図４】
2010238191.tif 000006
【図５】
2010238191.tif 000007
【図６】
2010238191.tif 000008
【図７】
2010238191.tif 000009
【図８】
2010238191.tif 000010
【図９】
2010238191.tif 000011
【図１０】
2010238191.tif 000012
【図１１】
2010238191.tif 000013
【図１２】
2010238191.tif 000014