(57)【要約】      （修正有）【課題】リード要求に対する処理性能を一層向上可能なマルチプロセッサ構成の情報処理装置を提供する。【解決手段】システムコントローラは、キャッシュメモリに格納されるタグ情報のコピーを持つタグコピー部と、ライト要求を格納する複数のライトキューと、複数のライトキューに格納される複数のライト要求のアービトレーション結果が格納されるストアバッファとを備え、複数のプロセッサ装置のうち、一のプロセッサ装置によるリード要求が入力されるとき、キャッシュメモリに含まれるタグ情報とタグコピー部に含まれるタグ情報とが非同期である場合、一のプロセッサ装置と異なる他のプロセッサ装置により、リード要求に対応するアドレスに対するライト要求が入力されているかを複数のライトキューを検索し、複数のライトキューのいずれかに入力されていれば、リード要求に対応するアドレスに対するライト要求に含まれるデータを応答する。【選択図】図４
2006260159.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサ装置と、
前記複数のプロセッサ装置がそれぞれ主記憶から読み出したデータを、前記格納されるデータの状態を示すタグ情報と合わせて一時的に格納する、前記複数のプロセッサ装置に対応する複数のキャッシュメモリと、
前記複数のプロセッサ装置による前記主記憶へのアクセスを制御するシステムコントローラとを有し、
前記システムコントローラは、前記キャッシュメモリに格納されるタグ情報のコピーを持つタグコピー部と、前記複数のプロセッサ装置がそれぞれ出力するライト要求を格納する、前記複数のプロセッサ装置に対応する複数のライトキューと、前記複数のライトキューに格納される複数のライト要求のアービトレーション結果が格納されるストアバッファとを備え、
前記システムコントローラは、前記複数のプロセッサ装置のうち、一のプロセッサ装置によるリード要求が入力されるとき、前記キャッシュメモリに含まれる前記タグ情報と前記タグコピー部に含まれる前記タグ情報とが非同期である場合、前記一のプロセッサ装置と異なる他のプロセッサ装置により、前記リード要求に対応するアドレスに対するライト要求が入力されているかを前記複数のライトキューを検索し、前記複数のライトキューのいずれかに入力されていれば、前記リード要求に対応するアドレスに対するライト要求に含まれるデータを応答することを特徴とする情報処理装置。
【請求項２】
請求項１において、
前記システムコントローラは、前記リード要求に対応するアドレスに対する前記ライト要求を破棄することを特徴とする情報処理装置。
【請求項３】
請求項１において、
前記複数のプロセッサは、複数のグループに分割され、
前記システムコントローラは、前記グループ毎に存在しており、
前記複数のグループのうち、一のグループに対応する第１のシステムコントローラは、前記第１のシステムコントローラと異なる第２のシステムコントローラによるリード参照要求が入力されるとき、前記第１のシステムコントローラのキャッシュメモリに含まれる前記タグ情報と前記第１のシステムコントローラのタグコピー部に含まれる前記タグ情報とが非同期である場合、前記リード参照要求に対応するアドレスに対するライト要求が入力されているかを前記第１のシステムコントローラに備えられる前記複数のライトキューを検索し、前記複数のライトキューのいずれかに入力されていれば、該対応するライト要求に含まれるデータを応答することを特徴とする情報処理装置。
【請求項４】
請求項３において、
前記第１のシステムコントローラは、前記リード参照要求に対応するアドレスに対するライト要求を破棄することを特徴とする情報処理装置。
【請求項５】
請求項４において、
前記第２のシステムコントローラは、前記リード参照要求に対応するアドレスに、該リード参照要求に対して応答されたデータを書き込むライト要求を、前記第２のシステムコントローラのライトキューに追加することを特徴とする情報処理装置。
【請求項６】
請求項１において、
前記システムコントローラは、前記複数のライトキューに含まれるいずれかのライト要求に対応するアドレスに対して、別のライト要求が後続する場合、先行する前記ライト要求を破棄することを特徴とする情報処理装置。
【請求項７】
複数のプロセッサ装置と、前記複数のプロセッサ装置がそれぞれ主記憶から読み出したデータを、前記格納されるデータの状態を示すタグ情報と合わせて一時的に格納する、前記複数のプロセッサ装置に対応する複数のキャッシュメモリと、前記複数のプロセッサ装置による前記主記憶へのアクセスを制御するシステムコントローラとを有し、前記システムコントローラは、前記キャッシュメモリに格納されるタグ情報のコピーを持つタグコピー部と、前記複数のプロセッサ装置がそれぞれ出力するライト要求を格納する、前記複数のプロセッサ装置に対応する複数のライトキューと、前記複数のライトキューに格納される複数のライト要求のアービトレーション結果が格納されるストアバッファとを備える情報処理装置におけるデータ制御方法であって、
前記情報処理装置は、前記複数のプロセッサ装置のうち、一のプロセッサ装置によるリード要求が入力されるとき、前記キャッシュメモリに含まれる前記タグ情報と前記タグコピー部に含まれる前記タグ情報とが非同期かを確認し、
前記情報処理装置は、非同期である場合、前記一のプロセッサ装置と異なる他のプロセッサ装置により、前記リード要求に対応するアドレスに対するライト要求が入力されているかを前記複数のライトキューを検索し、
前記情報処理装置は、前記リード要求に対応するアドレスに対するライト要求が前記複数のライトキューのいずれかに入力されていれば、前記リード要求に対応するアドレスに対するライト要求に含まれるデータを応答することを特徴とするデータ制御方法。
【請求項８】
請求項７において、
前記情報処理装置が、更に、前記リード要求に対応するアドレスに対する前記ライト要求を破棄することを特徴とするデータ制御方法。
【請求項９】
請求項７において、
前記複数のプロセッサは、複数のグループに分割され、
前記システムコントローラは、前記グループ毎に存在しており、
前記情報処理装置が、更に、前記複数のグループのうち、一のグループに対応する第１のシステムコントローラと異なる第２のシステムコントローラによるリード参照要求が入力されるとき、前記第１のシステムコントローラのキャッシュメモリに含まれる前記タグ情報と前記第１のシステムコントローラのタグコピー部に含まれる前記タグ情報とが非同期かを確認し、
前記情報処理装置が、非同期である場合、前記リード参照要求に対応するアドレスに対するライト要求が入力されているかを前記第１のシステムコントローラに備えられる前記複数のライトキューを検索し、
前記情報処理装置が、前記リード要求に対応するアドレスに対するライト要求が前記複数のライトキューのいずれかに入力されていれば、該対応するライト要求に含まれるデータを応答することを特徴とするデータ制御方法。
【請求項１０】
請求項９において、
前記情報処理装置が、更に、前記リード参照要求に対応するアドレスに対するライト要求を前記第１のシステムコントローラの前記ライトキューから破棄することを特徴とするデータ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ装置を複数備える情報処理装置及び情報処理装置におけるデータ制御方法に関する。
【背景技術】
【０００２】
近年、サーバ等の情報処理装置が各種分野で広く利用されている。１日何百万ものアクセスを処理するWebサーバや、金融機関や通信会社などで使用されるトランザクションサーバが代表的なサーバである。
【０００３】
こうした情報処理装置においては、高い処理能力が要求されるため、１つの情報処理装置に複数のプロセッサ装置(CPU(Central Processing Unit)、MPU(Micro Processing Unit)等)を搭載するマルチプロセッサ構成が多い。マルチプロセッサ構成の情報処理装置では、各プロセッサ装置が主記憶に独自にアクセスするため、主記憶や各プロセッサ装置に備えられるキャッシュに格納されるデータの一貫性（メモリコンシステンシ、キャッシュコヒーレンシ）を保つ制御が必要になる。
【０００４】
マルチプロセッサ構成の情報処理装置においては、上記一貫性を、主記憶と各プロセッサ装置の仲介処理を行うシステムコントローラで制御することが多い。そして、一貫性を保つ制御として、例えば、システムコントローラが主記憶に書き込むデータ（ライトデータ）を持っている間に、同一アドレスに対する読み出し要求（リード要求）が発生した場合、システムコントローラは、ライトデータの主記憶への書き込みが完了するのを待った後にリード要求を処理する。
【０００５】
すると、リード要求の処理に要する実行時間が大きくなり、情報処理装置の処理性能を低下させてしまう。そこで、従来技術として、主記憶又はキャッシュメモリに書き込まれる直前のデータを一時的に格納するストアバッファを利用して、情報処理装置のリード要求に対する処理性能を向上させる技術が提案される（特許文献１、２）。
【特許文献１】特開平６−３０１６００号公報
【特許文献２】特開平３−２８８２４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ストアバッファに格納されるデータは、その前段に備えられるリードキューかライトキューに格納される各プロセッサ装置からのリード要求とライト要求に対するアービトレーション（調停）の結果として格納されるものであるため、ストアバッファ（とそこに格納されるデータ）を利用するには、アービトレーションを待たなければならないという課題を有していた。
【０００７】
そこで、本発明の目的は、ストアバッファに対するアービトレーションを待つこと無くリード要求を処理可能なマルチプロセッサ構成の情報処理装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的は、本発明の第一の側面として、複数のプロセッサ装置と、前記複数のプロセッサ装置がそれぞれ主記憶から読み出したデータを一時的に格納する、前記複数のプロセッサ装置に対応する複数のキャッシュメモリと、前記複数のプロセッサ装置による前記主記憶へのアクセスを制御するシステムコントローラとを有し、前記システムコントローラは、前記キャッシュメモリに含まれるタグ情報とデータとのうち、前記タグ情報を持つタグコピー部と、前記複数のプロセッサ装置がそれぞれ出力するライト要求を格納する、前記複数のプロセッサ装置に対応する複数のライトキューと、前記複数のライトキューに格納される複数のライト要求のアービトレーション結果が格納されるストアバッファとを備え、前記システムコントローラは、前記複数のプロセッサ装置のうち、一のプロセッサ装置によるリード要求が入力されるとき、前記キャッシュメモリに含まれる前記タグ情報と前記タグコピー部に含まれる前記タグ情報とが非同期である場合、前記一のプロセッサ装置と異なる他のプロセッサ装置により、前記リード要求に対応するアドレスに対するライト要求が入力されているかを前記複数のライトキューを検索し、前記複数のライトキューのいずれかに入力されていれば、前記リード要求に対応するアドレスに対するライト要求に含まれるデータを応答することを特徴とする情報処理装置。
を提供することにより達成される。
【０００９】
上記発明の側面においてより好ましい実施例によれば、前記システムコントローラは、前記リード要求に対応するアドレスに対する前記ライト要求を破棄する。
【００１０】
また、上記発明の側面においてより好ましい実施例によれば、前記複数のプロセッサは、複数のグループに分割され、前記システムコントローラは、前記グループ毎に存在しており、前記複数のグループのうち、一のグループに対応する第１のシステムコントローラは、前記第１のシステムコントローラと異なる第２のシステムコントローラによるリード参照要求が入力されるとき、前記第１のシステムコントローラのキャッシュメモリに含まれる前記タグ情報と前記第１のシステムコントローラのタグコピー部に含まれる前記タグ情報とが非同期である場合、前記リード参照要求に対応するアドレスに対するライト要求が入力されているかを前記第１のシステムコントローラに備えられる前記複数のライトキューを検索し、前記複数のライトキューのいずれかに入力されていれば、該対応するライト要求に含まれるデータを応答する。
【００１１】
また、上記発明の側面においてより好ましい実施例によれば、前記第１のシステムコントローラは、前記リード参照要求に対応するアドレスに対するライト要求を破棄する。
【００１２】
上記発明の側面においてより好ましい実施例によれば、前記第２のシステムコントローラは、前記リード参照要求に対応するアドレスに、該リード参照要求に対して応答されたデータを書き込むライト要求を、前記第２のシステムコントローラのライトキューに追加する。
【００１３】
上記発明の側面においてより好ましい実施例によれば、前記システムコントローラは、前記複数のライトキューに含まれるいずれかのライト要求に対応するアドレスに対して、別のライト要求が後続する場合、先行する前記ライト要求を破棄する。
【００１４】
また、上記目的は、第二の側面として、複数のプロセッサ装置と、前記複数のプロセッサ装置がそれぞれ主記憶から読み出したデータを一時的に格納する、前記複数のプロセッサ装置に対応する複数のキャッシュメモリと、前記複数のプロセッサ装置による前記主記憶へのアクセスを制御するシステムコントローラとを有し、前記システムコントローラは、前記キャッシュメモリに含まれるタグ情報とデータとのうち、前記タグ情報を持つタグコピー部と、前記複数のプロセッサ装置がそれぞれ出力するライト要求を格納する、前記複数のプロセッサ装置に対応する複数のライトキューと、前記複数のライトキューに格納される複数のライト要求のアービトレーション結果が格納されるストアバッファとを備える情報処理装置におけるデータ制御方法であって、前記情報処理装置は、前記複数のプロセッサ装置のうち、一のプロセッサ装置によるリード要求が入力されるとき、前記キャッシュメモリに含まれる前記タグ情報と前記タグコピー部に含まれる前記タグ情報とが非同期かを確認し、前記情報処理装置は、非同期である場合、前記一のプロセッサ装置と異なる他のプロセッサ装置により、前記リード要求に対応するアドレスに対するライト要求が入力されているかを前記複数のライトキューを検索し、前記情報処理装置は、前記リード要求に対応するアドレスに対するライト要求が前記複数のライトキューのいずれかに入力されていれば、前記リード要求に対応するアドレスに対するライト要求に含まれるデータを応答することを特徴とするデータ制御方法を提供することにより達成される。
【発明の効果】
【００１５】
本発明の実施形態によれば、アービトレーションを待つこと無く、リード要求に対する処理性能を一層向上可能なマルチプロセッサ構成の情報処理装置を実施することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態について図面に従って説明する。しかしながら、本発明の技術的範囲はかかる実施の形態に限定されるものではなく、特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
【００１７】
図１は、マルチプロセッサ構成のサーバ１０を説明する図である。図１のサーバ１０には、引き出し可能なトレイ形式で本体に収容可能な複数のボードが搭載される。例えば、CPUメモリボード１１、ハードディスクが搭載されるディスクボード１２、ネットワークインタフェースや、SCSI(Small Computer System Interface)、FC(Fiber Channel)等のインタフェースが搭載されるIOボード１３がある。サーバ１０に搭載される複数のボードは、図示省略されているが、本体内に備えられるクロスバーと呼ばれるバスを介して互いに接続可能である。
【００１８】
本実施形態のCPUメモリボード１１は、複数のCPU１、主記憶３、複数のCPU１による主記憶３へのアクセスを制御するシステムコントローラ２、ボード間のデータ転送を制御するクロスバースイッチ４、クロスバーに接続するためのコネクタ６０を含む。
【００１９】
図２は、本実施形態の情報処理装置の構成ブロック図である。CPU１ａ〜１ｎは、複数のプロセッサ装置であり、それぞれ、主記憶３から読み出されたデータが一時的に格納されるキャッシュメモリ５ａ〜５ｎを持つ。
【００２０】
図３は、キャッシュメモリに格納されるデータを示す図である。キャッシュメモリには、主記憶３における分割サイズに等しい所定長（例えば、図３では、６４バイト）のデータ３３が、１つのラインとして複数格納される。各ラインには、主記憶３におけるアドレスとマッピングするためのアドレスタグ３１と、キャッシュの状態を示すステータスタグ３２が対応付けられている。
【００２１】
マッピングの方式には、例えば、直接マッピング、完全連想マッピング、セット連想マッピング等が知られている。なお、本実施形態の情報処理装置は、マッピングの方式には依存せずに実現することができる。
【００２２】
キャッシュの状態を示すには、例えば、使用可能なデータであるかそうでないかを示す「有効／無効」、他のキャッシュメモリにコピーが含まれるか含まれないかを示す「共有／排他」、データが変更されていないか変更されたかを示す「クリーン／ダーティ」という指標により分類するMESI(Modified/Exclusive/Shred/Invalid)方式などがある。MESI方式において、「Ｍ」は、「有効」＋「排他」＋「ダーティ」であるModifiedを意味し、「Ｅ」は、「有効」＋「排他」＋「クリーン」であるExclusiveを意味し、「Ｓ」は、「有効」＋「共有」＋「クリーン」であるSharedを意味し、「Ｉ」は、「無効」であるInvalidを意味する。
【００２３】
図２に戻り、各CPUは、CPUバス５１を介してシステムコントローラ２に接続される。システムコントローラ２は、アドレスタグ３１とステータスタグ３２（以下、タグ情報３４と呼ぶ）のコピーを格納するタグコピー６ａ〜６ｎを含む。更に、システムコントローラ２は、複数のプロセッサ装置に対応して、各プロセッサ装置により入力されるリード要求を格納するリードキュー７ａ〜７ｎ、各プロセッサ装置により入力されるライト要求を格納するライトキュー８ａ〜８ｎ、キャッシュメモリに含まれる情報のうち、リードキュー７ａ〜７ｎとライトキュー８ａ〜８ｎに格納されるリード要求とライト要求に対するアービトレーションの結果として、例えば、主記憶３に書き込まれる直前のデータが格納されるストアバッファ４２を含む。
【００２４】
システムコントローラ２に含まれるメモリアクセスコントローラ４１は、アービトレーションの結果に応じてストアバッファ４２に格納されたデータを主記憶３に書き込み、主記憶３から読み出したデータをストアバッファ４２に格納する。こうして、システムコントローラ２は、複数のCPU１による主記憶３へのアクセスを制御する。なお、システムコントローラ２は、メモリバス５２を介して主記憶３に接続されており、アドレス、コマンド、データが送受信されている。
【００２５】
本実施形態の情報処理装置は、ストアバッファではなくその前段に備えられるライトキュー８ａ〜８ｎを参照することにより、システムコントローラ２が主記憶３に書き込むデータを持っている間に、同一アドレスに対するリード要求が発生した場合の処理性能の低下を防止する。直接ライトキュー８ａ〜８ｎを参照することにより、本実施形態の情報処理装置は、アービトレーションを待つことなく、高速に処理を進めることができる。以下、その動作例を説明する。
【００２６】
図４は、本実施形態の情報処理装置の動作（その１）を説明する図である。前提として、CPU１ｂがキャッシュメモリ５ｂの２番目のラインに含まれるデータのライト要求を行った結果、キャッシュメモリ５ｂの２番目のラインのステータスが、「Ｍ」から「Ｉ」に変わっている。
【００２７】
しかし、CPU１ｂに対応するタグコピー６ｂには、それが反映されていない状態（キャッシュ５ｂとタグコピー６ｂの非同期状態）を示す。なお、タグコピー６ｂには、図２にて説明したように、アドレスタグ３１とステータスタグ３２からなるタグ情報３４が含まれるが、図４においては、説明のため、データ３３とステータスタグ３２が、タグコピー６ｂの内容として描かれている。
【００２８】
ここで、CPU１ａより、キャッシュメモリ５ｂの２番目のラインに対応するアドレスに対するリード要求がシステムコントローラ２に入力される（Ｍ１）。リード要求を受け、メモリアクセスコントローラ４１は、タグコピー６ａ、６ｂを参照する（Ｍ２）。すると、CPU１ｂに対応するタグコピー６ｂが非同期であることから、リード要求に含まれるアドレスが、CPU１ｂのキャッシュにヒットし、メモリアクセスコントローラ４１は、CPU１ｂに対しデータ要求を出力する（Ｍ３）。
【００２９】
ところが、キャッシュメモリ５ｂにおいて、２番目のラインのステータスは既に「Ｉ」であり、使用可能なデータがないため、CPU１ｂによりデータ不在通知がシステムコントローラ２に入力される（Ｍ４）。続いて、本実施形態の情報処理装置の特徴的な動作として、メモリアクセスコントローラ４１は、CPU１ｂに対応するライトキュー８ｂを参照する（Ｍ５）。
【００３０】
そして、キャッシュメモリ５ｂの２番目のラインに対応するアドレスに対するライト要求を検索し、発見されたライト要求に含まれるライトデータをCPU１ａに出力する（Ｍ６）。こうして、システムコントローラ２が主記憶３に書き込むデータを持っている間に、同一アドレスに対するリード要求が発生した場合でも、ライトキューよりデータが送信され、ストアバッファに対するアービトレーションを待つことなく情報処理装置の処理性能の低下が防止される。
【００３１】
図５は、本実施形態の情報処理装置の動作（その２）を説明する図である。図５は、２枚のCPUメモリボードがクロスバー７０を介して接続されるとき、CPUメモリボード越しに図４に示す動作が生じる場合である。
【００３２】
前提として、図４と同様に、CPU１ｂがキャッシュメモリ５ｂの２番目のラインに含まれるデータのライト要求を行った結果、キャッシュメモリ５ｂの２番目のラインのステータスが、「Ｍ」から「Ｉ」に変わっている。しかし、CPU１ｂに対応するタグコピー６ｂには、それが反映されていない状態（キャッシュ５ｂとタグコピー６ｂの非同期状態）を示す。なお、タグコピー６ｂには、図２にて説明したように、アドレスタグ３１とステータスタグ３２からなるタグ情報３４が含まれるが、図５においては、説明のため、データ３３とステータスタグ３２が、タグコピー６ｂの内容として描かれている。
【００３３】
ここで、CPU１ｃより、キャッシュメモリ５ｂの２番目のラインに対応するアドレスに対するリード要求がシステムコントローラ２２に入力される（Ｆ１）。リード要求を受け、メモリアクセスコントローラ４１２は、タグコピー６ｃ、６ｄを参照する（Ｆ２）。タグコピー６ｃ、６ｄには、リード要求に含まれるアドレスにヒットするキャッシュはなく、データ不在通知がメモリアクセスコントローラ４１２に入力される（Ｆ３）。
【００３４】
すると、メモリアクセスコントローラ４１２は、他のCPUメモリボードにあるタグコピーを参照するためリード参照要求をクロスバー７０に送信する（Ｆ４）。クロスバー７０を介してリード参照要求を受信すると、システムコントローラ２１のメモリアクセスコントローラ４１１は、タグコピー６ａ、６ｂを参照する（Ｆ５）。
【００３５】
すると、CPU１ｂに対応するタグコピー６ｂが非同期であることから、CPU１ｃにより入力されたリード要求に含まれるアドレスが、CPU１ｂのキャッシュにヒットし、メモリアクセスコントローラ４１１は、CPU１ｂに対しデータ要求を出力する（Ｆ６）。
【００３６】
ところが、キャッシュメモリ５ｂにおいて、２番目のラインのステータスは既に「Ｉ」であり、使用可能なデータがないため、CPU１ｂによりデータ不在通知がシステムコントローラ４１１に入力される（Ｆ７）。続いて、本実施形態の情報処理装置の特徴的な動作として、メモリアクセスコントローラ４１１は、CPU１ｂに対応するライトキュー８ｂを参照する（Ｆ８）。
【００３７】
そして、メモリアクセスコントローラ４１１は、キャッシュメモリ５ｂの２番目のラインに対応するアドレスに対するライト要求を検索し、発見されたライト要求に含まれるライトデータをリード参照要求に対する応答としてクロスバー７０に送信する（Ｆ９）。クロスバー７０を介してリード参照要求への応答を受信すると、システムコントローラ２２のメモリアクセスコントローラ４１２は、リード参照要求への応答に含まれるライトデータをCPU１ｃに出力する（Ｆ１０）。最終的に、CPU１ｃのキャッシュメモリ５ｃに、キャッシュメモリ５ｂの２番目のラインに含まれるデータがステータス「Ｅ」で追加される。
【００３８】
こうして、システムコントローラ２が主記憶３に書き込むデータを持っている間に、同一アドレスに対するリード要求がCPUメモリボード越しに発生した場合でも、ライトキューよりデータが送信され、ストアバッファに対するアービトレーションを待つことなく情報処理装置の処理性能の低下が防止される。
【００３９】
更に、図５に示す動作例において、次のような処理が追加されてもよい。１つは、メモリアクセスコントローラ４１１が、ステップＦ９の処理を行う際、ライトキュー８ｂから、キャッシュメモリ５ｂの２番目のラインに対応するアドレスに対するライト要求を破棄する処理（Ｆ１０）である。もう１つは、メモリアクセスコントローラ４１２が、ステップＦ１０の処理を行う際、システムコントローラ２２におけるいずれかのライトキューに、システムコントローラ２２の主記憶３２に対し、リード参照要求への応答に含まれるライトデータを書き込むためのライト要求を生成する処理（Ｆ１１）である。
【００４０】
ライト要求の破棄（Ｆ１０）により、複数のシステムコントローラ２１、２２内にライトデータが重複して複数存在することがなく、一貫性保持のための制御（メモリコンシステンシ、キャッシュコヒーレンシ）が容易になるという効果がある。この場合であっても、CPU１ｃのキャッシュメモリ５ｃに最新データがコピーされており、制御上特に問題はない。
【００４１】
また、ライト要求の生成（Ｆ１１）により、一貫性を保持しつつ、クロスバー７０を介してリード参照要求に対する応答を受信するたび、それを受信したCPUメモリボードにおける主記憶に最新データが格納される。最新データが格納される主記憶が増えることにより、プロセッサバスの負荷を軽減し、情報処理装置の性能向上が見込める。
【００４２】
図６は、本実施形態の情報処理装置の動作（その３）を説明する図である。まず、CPU１ｂより、あるアドレスに対するライト要求がシステムコントローラ２に入力される（Ｔ１）。ライト要求を受け、メモリアクセスコントローラ４１は、CPU１ｂに対応するライトキュー８ｂにライト要求を格納する（Ｔ２）。
【００４３】
続いて、CPU１ａより、その同一アドレスに対するライト要求がシステムコントローラ２に入力される（Ｔ３）。ライト要求を受け、メモリアクセスコントローラ４１は、CPU１ａに対応するライトキュー８ａにライト要求を格納する（Ｔ４）。
【００４４】
そして、同一アドレスに対するライト要求をライトキュー８ａに格納する際、メモリアクセスコントローラ４１は、ライトキュー８ｂに格納される、同一アドレスに対する先行ライト要求を破棄する（Ｔ５）。図６の処理は、図４、５の処理と合わせて実施される。
【００４５】
こうして、複数のシステムコントローラ２１、２２内にライトデータが重複して複数存在することがなく、一貫性保持のための制御（メモリコンシステンシ、キャッシュコヒーレンシ）が容易になるという効果がある。この場合であっても、後続する（最新の）ライト要求がライトキューに残るため、制御上特に問題はない。
【００４６】
以上に説明した実施形態によれば、システムコントローラ２が主記憶３に書き込むデータを持っている間に、同一アドレスに対するリード要求が発生した場合でも、ライトキューよりデータが送信され、ストアバッファに対するアービトレーションを待つことなく情報処理装置の処理性能の低下が防止される。また、複数のシステムコントローラ内にライトデータが重複して複数存在することがなく、一貫性保持のための制御（メモリコンシステンシ、キャッシュコヒーレンシ）が容易になるという効果がある。
【００４７】
以上まとめると付記のようになる。
【００４８】
（付記１）
複数のプロセッサ装置と、
前記複数のプロセッサ装置がそれぞれ主記憶から読み出したデータを、前記格納されるデータの状態を示すタグ情報と合わせて一時的に格納する、前記複数のプロセッサ装置に対応する複数のキャッシュメモリと、
前記複数のプロセッサ装置による前記主記憶へのアクセスを制御するシステムコントローラとを有し、
前記システムコントローラは、前記キャッシュメモリに格納されるタグ情報のコピーを持つタグコピー部と、前記複数のプロセッサ装置がそれぞれ出力するライト要求を格納する、前記複数のプロセッサ装置に対応する複数のライトキューと、前記複数のライトキューに格納される複数のライト要求のアービトレーション結果が格納されるストアバッファとを備え、
前記システムコントローラは、前記複数のプロセッサ装置のうち、一のプロセッサ装置によるリード要求が入力されるとき、前記キャッシュメモリに含まれる前記タグ情報と前記タグコピー部に含まれる前記タグ情報とが非同期である場合、前記一のプロセッサ装置と異なる他のプロセッサ装置により、前記リード要求に対応するアドレスに対するライト要求が入力されているかを前記複数のライトキューを検索し、前記複数のライトキューのいずれかに入力されていれば、前記リード要求に対応するアドレスに対するライト要求に含まれるデータを応答することを特徴とする情報処理装置。
【００４９】
（付記２）
付記１において、
前記システムコントローラは、前記リード要求に対応するアドレスに対する前記ライト要求を破棄することを特徴とする情報処理装置。
【００５０】
（付記３）
付記１において、
前記複数のプロセッサは、複数のグループに分割され、
前記システムコントローラは、前記グループ毎に存在しており、
前記複数のグループのうち、一のグループに対応する第１のシステムコントローラは、前記第１のシステムコントローラと異なる第２のシステムコントローラによるリード参照要求が入力されるとき、前記第１のシステムコントローラのキャッシュメモリに含まれる前記タグ情報と前記第１のシステムコントローラのタグコピー部に含まれる前記タグ情報とが非同期である場合、前記リード参照要求に対応するアドレスに対するライト要求が入力されているかを前記第１のシステムコントローラに備えられる前記複数のライトキューを検索し、前記複数のライトキューのいずれかに入力されていれば、該対応するライト要求に含まれるデータを応答することを特徴とする情報処理装置。
【００５１】
（付記４）
付記３において、
前記第１のシステムコントローラは、前記リード参照要求に対応するアドレスに対するライト要求を破棄することを特徴とする情報処理装置。
【００５２】
（付記５）
付記４において、
前記第２のシステムコントローラは、前記リード参照要求に対応するアドレスに、該リード参照要求に対して応答されたデータを書き込むライト要求を、前記第２のシステムコントローラのライトキューに追加することを特徴とする情報処理装置。
【００５３】
（付記６）
付記１において、
前記システムコントローラは、前記複数のライトキューに含まれるいずれかのライト要求に対応するアドレスに対して、別のライト要求が後続する場合、先行する前記ライト要求を破棄することを特徴とする情報処理装置。
【００５４】
（付記７）
複数のプロセッサ装置と、前記複数のプロセッサ装置がそれぞれ主記憶から読み出したデータを、前記格納されるデータの状態を示すタグ情報と合わせて一時的に格納する、前記複数のプロセッサ装置に対応する複数のキャッシュメモリと、前記複数のプロセッサ装置による前記主記憶へのアクセスを制御するシステムコントローラとを有し、前記システムコントローラは、前記キャッシュメモリに格納されるタグ情報のコピーを持つタグコピー部と、前記複数のプロセッサ装置がそれぞれ出力するライト要求を格納する、前記複数のプロセッサ装置に対応する複数のライトキューと、前記複数のライトキューに格納される複数のライト要求のアービトレーション結果が格納されるストアバッファとを備える情報処理装置におけるデータ制御方法であって、
前記情報処理装置は、前記複数のプロセッサ装置のうち、一のプロセッサ装置によるリード要求が入力されるとき、前記キャッシュメモリに含まれる前記タグ情報と前記タグコピー部に含まれる前記タグ情報とが非同期かを確認し、
前記情報処理装置は、非同期である場合、前記一のプロセッサ装置と異なる他のプロセッサ装置により、前記リード要求に対応するアドレスに対するライト要求が入力されているかを前記複数のライトキューを検索し、
前記情報処理装置は、前記リード要求に対応するアドレスに対するライト要求が前記複数のライトキューのいずれかに入力されていれば、前記リード要求に対応するアドレスに対するライト要求に含まれるデータを応答することを特徴とするデータ制御方法。
【００５５】
（付記８）
付記７において、
前記情報処理装置が、更に、前記リード要求に対応するアドレスに対する前記ライト要求を破棄することを特徴とするデータ制御方法。
【００５６】
（付記９）
付記７において、
前記複数のプロセッサは、複数のグループに分割され、
前記システムコントローラは、前記グループ毎に存在しており、
前記情報処理装置が、更に、前記複数のグループのうち、一のグループに対応する第１のシステムコントローラと異なる第２のシステムコントローラによるリード参照要求が入力されるとき、前記第１のシステムコントローラのキャッシュメモリに含まれる前記タグ情報と前記第１のシステムコントローラのタグコピー部に含まれる前記タグ情報とが非同期かを確認し、
前記情報処理装置が、非同期である場合、前記リード参照要求に対応するアドレスに対するライト要求が入力されているかを前記第１のシステムコントローラに備えられる前記複数のライトキューを検索し、
前記情報処理装置が、前記リード要求に対応するアドレスに対するライト要求が前記複数のライトキューのいずれかに入力されていれば、該対応するライト要求に含まれるデータを応答することを特徴とするデータ制御方法。
【００５７】
（付記１０）
付記９において、
前記情報処理装置が、更に、前記リード参照要求に対応するアドレスに対するライト要求を前記第１のシステムコントローラの前記ライトキューから破棄することを特徴とするデータ制御方法。
【００５８】
（付記１１）
付記１０において、
前記情報処理装置が、更に、前記リード参照要求に対応するアドレスに、該リード参照要求に対して応答されたデータを書き込むライト要求を、前記第２のシステムコントローラのライトキューに追加することを特徴とするデータ制御方法。
【００５９】
（付記１２）
付記７において、
前記情報処理装置が、更に、前記複数のライトキューに含まれるいずれかのライト要求に対応するアドレスに対して、別のライト要求が後続する場合、先行する前記ライト要求を破棄することを特徴とするデータ制御方法。
【図面の簡単な説明】
【００６０】
【図１】マルチプロセッサ構成のサーバを説明する図である。
【図２】本実施形態の情報処理装置の構成ブロック図である。
【図３】キャッシュメモリに格納されるデータを示す図である。
【図４】本実施形態の情報処理装置の動作（その１）を説明する図である。
【図５】本実施形態の情報処理装置の動作（その２）を説明する図である
【図６】本実施形態の情報処理装置の動作（その３）を説明する図である
【符号の説明】
【００６１】
１  CPU、２  システムコントローラ、３  メモリ、４  クロスバースイッチ、５  キャッシュ、６  タグコピー、７  リードキュー、８  ライトキュー、１０  サーバ、１１  CPUメモリボード、１２  ディスクボード、１３  IOボード、４１  メモリアクセスコントローラ、４２  ストアバッファ、３１  アドレスタグ、３２  ステータスタグ、３３  データ、３４  タグ情報、５１  CPUバス、５２  メモリバス、６０  コネクタ
【図１】
2006260159.tif 000003
【図２】
2006260159.tif 000004
【図３】
2006260159.tif 000005
【図４】
2006260159.tif 000006
【図５】
2006260159.tif 000007
【図６】
2006260159.tif 000008