(57)【要約】【課題】  コンピュータシステムのシステム・コントローラＬＳＩ等のメモリ制御装置において、複数の記憶装置に分散されたデータへのメモリアクセスを効率良く行うこと。【解決手段】  本発明は、サーバやＰＣ等のチップセットを構成し、メインメモリ及びＣＰＵ内部のキャッシュメモリとの間のデータ共有に関する制御を行うシステム・コントローラＬＳＩ等のメモリ制御装置において、ＣＰＵからのリード要求に対する応答として、自ノード配下のＣＰＵ内部のキャッシュメモリに登録されているデータを管理するＤＴＡＧの他に、対象データが自ノード配下の何れのＣＰＵ内部キャッシュメモリにも保持されていないという無主データ情報を保持するリテンションタグを有することによりＣＰＵ内部のキャッシュミスを契機としたインターコネクトのトラフィックの削減を目的とする。【選択図】図１０
2006202215.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置であって、
前記メインメモリに含まれる特定データが前記何れのキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグを有することを特徴とするメモリ制御装置。
【請求項２】
第１のキャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置であって、
前記メインメモリに含まれるデータを保持する第２のキャッシュメモリと、
前記メインメモリに含まれる特定データが前記何れの第１のキャッシュメモリ及び第２のキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグを有することを特徴とするメモリ制御装置。
【請求項３】
キャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置を複数有する情報処理装置であって、
前記メモリ制御装置は、
前記メインメモリに含まれる特定データが前記何れのキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグを有し、
伝送路を介してお互いに結合されることを特徴とする情報処理装置。
【請求項４】
第１のキャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置を複数有する情報処理装置であって、
前記メモリ制御装置は、
前記メインメモリに含まれるデータを保持する第２のキャッシュメモリと、
前記メインメモリに含まれる特定データが前記何れの第１のキャッシュメモリ及び第２のキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグを有し、
伝送路を介してお互いに結合されることを特徴とする情報処理装置。
【請求項５】
前記第２のキャッシュメモリは、
前記メモリ制御装置に接続される一のメインメモリに含まれるデータのみならず、前記メモリ制御装置に伝送路を介して接続されるメモリ制御装置に接続する他のメインメモリに含まれるデータをも保持することを特徴とする請求項４記載のメモリ制御装置。
【請求項６】
キャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置のメモリ制御方法において、
前記何れかのＣＰＵから発行されるリード要求を受信し、
前記メインメモリに含まれる特定データが前記何れのキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグをアクセスし、
前記リード要求の対象データが前記リテンションタグに含まれる場合には、メインメモリに対してリード要求の発行を行うことを特徴とするメモリ制御方法。
【請求項７】
第１のキャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、前記メインメモリに含まれるデータを保持する第２のキャッシュメモリを有し、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置のメモリ制御方法において、
前記何れかのＣＰＵから発行されるリード要求を受信し、
前記メインメモリに含まれる特定データが前記何れの第１のキャッシュメモリ及び第２のキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグをアクセスし、
前記リード要求の対象データが前記リテンションタグに含まれる場合には、メインメモリに対してリード要求の発行を行うことを特徴とするメモリ制御方法。
【請求項８】
キャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置を複数有する情報処理装置のメモリ制御方法において、
前記何れかのＣＰＵから発行されるリード要求を受信し、
前記メインメモリに含まれる特定データが前記何れのキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグをアクセスし、
前記リード要求の対象データが前記リテンションタグに含まれる場合には、メインメモリに対してリード要求の発行を行うことを特徴とするメモリ制御方法。
【請求項９】
第１のキャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、前記メインメモリに含まれるデータを保持する第２のキャッシュメモリを有し、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置を複数有する情報処理装置のメモリ制御方法において、
前記何れかのＣＰＵから発行されるリード要求を受信し、
前記メインメモリに含まれる特定データが前記何れの第１のキャッシュメモリ及び第２のキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグをアクセスし、
前記リード要求の対象データが前記リテンションタグに含まれる場合には、メインメモリに対してリード要求の発行を行うことを特徴とするメモリ制御方法。
【請求項１０】
前記第２のキャッシュメモリは、
前記メモリ制御装置に接続される一のメインメモリに含まれるデータのみならず、前記メモリ制御装置に伝送路を介して接続されるメモリ制御装置に接続する他のメインメモリに含まれるデータをも保持し、
前記リテンションタグのアクセスにおいて、
前記リード要求の対象データが前記リテンションタグに含まれ、さらに前記他のメインメモリに含まれるデータであると判断される場合には、当該他のメインメモリに対してリード要求の発行を行うことを特徴とする請求項９記載のメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバやＰＣ等のチップセットを構成し、メインメモリ及びＣＰＵ内部のキャッシュメモリとの間のデータ共有に関する制御を自ノード配下のＣＰＵ内部のキャッシュメモリに登録されているデータを管理するデータタグにより行うシステム・コントローラＬＳＩ等のメモリ制御装置において、ＣＰＵからのメモリアクセス要求に対する応答として、自ノード及び他ノードに対するブロードキャストを実行する前に、自ノード配下におけるメインメモリの特定のデータブロックが自ノード配下におけるＣＰＵの２次キャッシュメモリに保持されていないという無主情報を保持する専用のタグメモリであるリテンションタグをアクセスすることにより、マルチプロセサシステムにおけるキャッシュメモリの一貫性の保証を行うメモリ制御装置及び制御方法に関する。
【背景技術】
【０００２】
従来、コンピュータシステムにおいて、ＣＰＵ内部のキャッシュメモリ及びメインメモリを含むメモリ階層構造は、ＣＰＵに内蔵される１次キャッシュメモリ及びＣＰＵ外付けの２次キャッシュメモリ並びにメインメモリの三階層からなる構成が主流であった。
【０００３】
その後、半導体テクノロジの進歩によるＬＳＩの高密度実装が可能になり、ＬＳＩ上に実装できるトランジスタ数が飛躍的に向上し、ＣＰＵに２次キャッシュメモリを内蔵することが可能になるとともに、メモリ制御装置にも自ノード配下のＣＰＵの２次キャッシュメモリに登録されているデータを管理するデータタグ（以下、ＤＴＡＧ）を内蔵することが可能になった。
【０００４】
特に企業における基幹業務など特に高い処理能力を要求されるサーバ等のコンピュータシステムにおいては、大規模ＳＭＰ(Symmetrical Multi-Processor:対称型マルチプロセサ)構成等の高性能コンピュータシステムの実現により、ＤＴＡＧを複数のプロセサからアクセスしてメモリアクセス時間を短縮し、処理能力の向上を図るようになった。
【０００５】
かかる大規模ＳＭＰ構成等の高性能コンピュータシステムにおいて、ＣＰＵやＩ／Ｏ装置からメインメモリに対するメモリアクセス要求が発生した場合には、必ずシステム・コントローラＬＳＩ等のメモリ制御装置間を接続するインターコネクトを経由して前記メモリアクセス要求がブロードキャストされ、次に各システム・コントローラＬＳＩ等のメモリ制御装置において同時に自ノード配下のＣＰＵの２次キャッシュメモリに登録されているＤＴＡＧをスヌープすることにより、グローバルスヌープが実行される。
【０００６】
その後、各ノードにおけるシステム・コントローラＬＳＩ等の各メモリ制御装置が、互いに前記ＤＴＡＧの検索結果を再度インターコネクト経由により送受信して集約することにより、キャッシュステータスのマージを実行する。前記キャッシュステータスのマージの結果により、メインメモリ内データへのリード要求やＣＰＵへの２次キャッシュメモリ内データに対するパージ要求など、前記アクセス要求に対する処理内容が決定される。
【０００７】
従って、システム内におけるノード間の全てのメモリアクセス要求が必ずインターコネクトを経由するために、インターコネクトのスループット又はバンド幅がシステム全体のメモリアクセスの発生量に対して不足している場合には、システム全体の性能低下を引き起こす結果となる。また、インターコネクト上の伝播時間もメモリアクセス時間に対してレイテンシが付加されることにより、システム性能に対して悪影響を与える。
【０００８】
（従来の構成例）
図１に、システムボード（ＳＢ）から構成される各ノードにおけるシステム・コントローラＬＳＩ（ＳＣ）がＤＴＡＧを内蔵する従来の構成において、自ノード配下のＣＰＵからのリクエストに対して、他ノード配下のＣＰＵがデータを応答する場合における動作例を示す。
【０００９】
システムボード−０（ＳＢ−０）１０１は、システム・コントローラＬＳＩ−０（ＳＣ−０）１０３及びＣＰＵ−０  １１１〜ＣＰＵ−３  １１４及びメモリ・コントローラＬＳＩ−０（ＭＡＣ−０）１０５、メインメモリ１０７から構成され、１単位のノードを構成する。
【００１０】
同様に、システムボード−１（ＳＢ−１）１０２は、システム・コントローラＬＳＩ−１（ＳＣ−１）１０４及びＣＰＵ−０  １１５〜ＣＰＵ−３  １１８及びメモリ・コントローラＬＳＩ−１（ＭＡＣ−１）１０６、メインメモリ１０８から構成され、１単位のノードを構成する。
【００１１】
システム・コントローラＬＳＩ−０  １０３（ＳＣ−０  １０３）に直接接続されるＣＰＵ−０  １１１〜ＣＰＵ−３  １１４は、それぞれキャッシュメモリ１２１〜１２４を内蔵し、又、ＳＣ−０に内蔵されるＤＴＡＧ  １３１は、前記キャッシュメモリ１２１〜１２４に登録されているデータの管理を行う。さらに、ＳＣ−０  １０３に接続されるメモリアクセス・コントローラＬＳＩ−０  １０５は、直接接続されるメインメモリ１０７へのアクセスを実行する。なお、ＳＣ−１もＳＣ−０と同様の構成を有し、それぞれインターコネクト１０９を介して相互に接続される。ところで、キャッシュメモリ１２１〜１２８は、各ＣＰＵに内蔵される最も低階層のキャッシュメモリ（最もシステム・コントローラＬＳＩ（ＳＣ）のインタフェースに近いキャッシュメモリ）であり、必ずしも２次キャッシュメモリに限られるものではない。
【００１２】
まず、ＣＰＵ−０  １１１においてメモリアクセス要求が発生し、当該メモリアクセス要求に対して応答すべきデータに対するキャッシュミスがキャッシュメモリ１２１において発生した場合、ＣＰＵ−０  １１１はリード要求１５１をＳＣ−０  １０３に対して発行を行う。前記リード要求１５１を受信したＳＣ−０  １０３は、ブロードキャスト１５２をＳＣ−１  １０４に対してインターコネクト１０９経由により発行するとともに、内蔵するＤＴＡＧ１３１に対してもスヌープ１５３を発行することによりグローバルスヌープを実行する。又、ブロードキャスト１５２を受信したＳＣ−１  １０４も内蔵するＤＴＡＧ１４１に対してスヌープ１５４を発行する。
【００１３】
次に、ＳＣ−０  １０３及びＳＣ−１  １０４はそれぞれ、互いに前記ＤＴＡＧの検索結果をインターコネクト１０９経由により送受信して集約ことにより、キャッシュステータス・マージ１５５を実行する。ここで、前記キャッシュステータス・マージ１５５の結果により、前記リード要求１５１の対象データが自ノード配下のメモリアクセス・コントローラ１０５に直接接続されるメインメモリ１０７に存在することが判明した場合には、ＳＣ−０  １０３は自ノード配下のメモリアクセス・コントローラ１０５に対してリード要求１５７の発行を行う。又は、前記キャッシュステータス・マージ１５５の結果により、前記リード要求１５１の対象データがＳＣ−１  １０４配下のＣＰＵ−２  １１７に内蔵するキャッシュメモリ１２７に存在することが判明した場合には、ＳＣ−１  １０４はＣＰＵ−２  １１７に対してリード要求１５６の発行を行う。
【００１４】
図２は、図１におけるシステム・コントローラＬＳＩ（ＳＣ）の動作例を表すフローチャートである。以下、図２の処理手順を説明する。
【００１５】
まず、ＣＰＵからのリード要求の受信により、システム・コントローラＬＳＩ（ＳＣ）は当該リード要求の処理を開始する（ステップＳ２０１）。次に、前記リード要求を受信したシステム・コントローラＬＳＩ（ＳＣ）は、自ノード内だけではなく他ノードのシステム・コントローラＬＳＩ（ＳＣ）に対しても、前記リード要求の対象となるデータを検索するためにインターコネクト経由によりブロードキャストを行う（ステップＳ２０２）。また、ブロードキャストを行ったシステム・コントローラＬＳＩ（ＳＣ）は、自ノード内のＤＴＡＧに対するスヌープを実行することにより、自ノード内のＤＴＡＧの検索を行うことによりグローバルスヌープを実行する（ステップＳ２０３）。さらに、各ノードのシステム・コントローラＬＳＩ（ＳＣ）はそれぞれ、互いに前記ＤＴＡＧの検索結果をインターコネクト経由により送受信して集約することにより、キャッシュステータス・マージを実行する（ステップＳ２０４）。
【００１６】
ここで、キャッシュステータス・マージを実行したシステム・コントローラＬＳＩ（ＳＣ）は、ＤＴＡＧの検索結果において、ＤＴＡＧがヒットしたかミスしたかの判断を行う（ステップＳ２０５）。前記ＤＴＡＧの検索結果においてＤＴＡＧにヒットした場合には、さらにＤＴＡＧヒットしたデータを有するＣＰＵが自ノードの配下のＣＰＵであるかどうかの判断を行う（ステップＳ２０８）。ＤＴＡＧヒットしたデータを有するＣＰＵが自ノードの配下である場合には、当該ＣＰＵに対して対象データのリード要求の発行を行い（ステップＳ２０９）、対象データの受信後に処理を終了する（ステップＳ２１０）。或いは、ＤＴＡＧヒットしたデータを有するＣＰＵが自ノードの配下にない場合には、処理を終了する（ステップＳ２１０）。
【００１７】
また、前記ＤＴＡＧの検索結果においてＤＴＡＧミスが発生した場合には、さらにＤＴＡＧミスしたアドレスが自ノードの管理しているメインメモリのアドレス範囲内にあるかどうかの判断を行う（ステップＳ２０６）。ＤＴＡＧミスしたアドレスが自ノードの配下であるメインメモリのアドレスの範囲内である場合には、当該メインメモリに対して対象データのリード要求の発行を行い（ステップＳ２０７）、対象データの受信後に処理を終了する（ステップＳ２１０）。或いは、ＤＴＡＧミスしたアドレスが自ノードの配下であるメインメモリのアドレスの範囲外である場合には、処理を終了する（ステップＳ２１０）。
【００１８】
このように、大規模ＳＭＰ構成等の高性能コンピュータシステムにおけるメインメモリ及びＣＰＵ内部のキャッシュメモリとの間のデータ共有に関する制御を、自ノード配下のＣＰＵ内部のキャッシュメモリに登録されているデータを管理するデータタグにより行うシステム・コントローラＬＳＩ（ＳＣ）等のメモリ制御装置及びメモリ制御方法において、ＣＰＵからのメモリアクセス要求に対する各応答処理はインターコネクト経由により行われる。つまり、ＣＰＵからのメモリアクセス要求に対する応答処理として、自ノード配下のＤＴＡＧ及び他ノード配下のＤＴＡＧの検索を行うグローバルスヌープ、また前記ＤＴＡＧ検索の結果を集約するために実行されるキャッシュステータス・マージ、さらに前記ＣＰＵからのメモリアクセス要求の対象データが他ノード配下のＣＰＵ又はメインメモリに存在することが判明した場合におけるデータ読み出し処理等がインターコネクトを経由して実行される。
【００１９】
従って、システム内におけるノード間の全てのメモリアクセス要求は必ずインターコネクトを経由するため、インターコネクトのスループット又はバンド幅がシステム全体のメモリアクセスの発生量に対して不足している場合には、システム全体の性能低下を引き起こすという問題が発生していた。また、インターコネクト上の伝播時間もメモリアクセス時間に対してレイテンシが付加されることにより、システム性能に対して悪影響を与えるという問題があった。従って、従来のシステム・コントローラＬＳＩ（ＳＣ）においては、効率的なキャッシュメモリ制御を行っているとはいえなかった。
【００２０】
特許文献１には、ＣＰＵとキャッシュメモリと主記憶の一部と共有管理部とを備えた複数のプロセッサを共有バスで接続して成る分散共有メモリ型マルチプロセッサシステムにおいて、共有バス上のトラフィックを少なくして、キャッシュの一貫性保持を実現することを目的として、前記共有管理部が、自己の主メモリのアドレスが他のプロセッサのキャッシュメモリ上に存在するか（共有か）否か（非共有か）の情報を記憶する主記憶タグメモリやキャッシュメモリのデータエントリが更新され且つ共有メモリに書き戻されていないか（ダーティ）否か（クリーン）の情報を記憶するキャッシュ状態タグメモリを備え、ＣＰＵが自己の主メモリへの書き込みを行う際に、主記憶タグが共有であれば共有バス上に無効化命令を出してキャッシュの一貫性を保証し、非共有であれば共有バス上には何も出さずに自己のプロセッサ内部だけで処理を行うか、又は、別のプロセッサ・ユニットからのアクセス要求に対し、キャッシュ状態タグがダーティであればこのアクセス要求に介入して一貫性保持を行う技術が開示されている。
【００２１】
しかし、特許文献１が開示しているのは、ノード内におけるキャッシュメモリの一貫性を保証することを目的として、キャッシュ状態タグを使用してキャッシュ・コヒーレンシ制御を行う技術であり、自ノード配下のＣＰＵ内部のキャッシュメモリに登録されているデータを管理するＤＴＡＧの他に、対象データが自ノード配下のどのＣＰＵ内部のキャッシュメモリにも保持されていないという無主情報を保持するリテンションタグ（ＲＴＡＧ）を具備することによりＣＰＵ内部のキャッシュミスを契機としたインターコネクトのトラフィックの削減を目的とするメモリ制御装置及び制御方法を開示する本発明とは異なる。
【００２２】
例えば、特許文献１ではＣＰＵ内部のキャッシュメモリに特定データブロックを排他で保持しているという情報をキャッシュ状態タグに保持することによりキャッシュメモリの一貫性保証に利用しているが、このキャッシュ状態タグは全てのＣＰＵのキャッシュタグを包含するものであるため、各ノードに同一内容のコピーを持つ必要があり、また、各キャッシュメモリの状態が変化したときには全ノードに対して変更を通知する必要がある。それに対して、本発明におけるＲＴＡＧは自ノード配下のメインメモリのデータブロックがＣＰＵ内部のキャッシュメモリに保持されていないという無主情報を保持するものであり、ＣＰＵ内部のキャッシュタグ及び他ノードのキャッシュタグとは排他の関係にあり、さらにＣＰＵ内部のキャッシュタグの状態が変化してもＲＴＡＧの変更は必ずしも必要とはならない点で大きく異なる。
【００２３】
また、特許文献２には、他プロセサノードとのキャッシュ一致制御の頻度を少なくし、システムのメモリアクセススループットを向上させることを目的として、アクセス権メモリ及びアクセス権制御回路をノード制御回路内に設け、自ノードからのメモリアクセス時に、まずアクセス権メモリをチェックし、自ノードが既にアクセス権を持っている場合に他ノードのキャッシュ一致制御を省略し、また、アクセス権メモリの各エントリに、当該ラインが他ノード内のアクセス権メモリに登録されている可能性があることを示すＣＣビットを設けることにより、自ノードのアクセス発行時にアクセス権メモリをチェックした結果、当該ラインがアクセス権メモリに登録されているにも係らず自ノードにアクセス権が存在しない場合、ＣＣビットが１であるノードのみにキャッシュ一致制御要求を発行する技術が開示されている。
【００２４】
しかし、特許文献２が開示しているのは、キャッシュメモリの一貫性を保証することを目的として、アクセス権メモリを使用してキャッシュ・コヒーレンシ制御を行う技術であり、自ノード配下のＣＰＵ内部のキャッシュメモリに登録されているデータを管理するＤＴＡＧの他に、対象データが自ノード配下のどのＣＰＵ内部のキャッシュメモリにも保持されていないという無主情報を保持するリテンションタグ（ＲＴＡＧ）を具備することによりＣＰＵ内部のキャッシュミスを契機としたインターコネクトのトラフィックの削減を目的とするメモリ制御装置及び制御方法を開示する本発明とは異なる。
【００２５】
例えば、特許文献２に開示されている分散共有メモリ型マルチプロセサシステムは、共有メモリ上のあるブロックに対するアクセス権が自ノードに存在することを示すアクセス権エントリを複数登録するが、前記アクセス権状態は、アクセス権無、共有アクセス権有、排他アクセス権有の３状態を有する必要がある。それに対して、本発明におけるＲＴＡＧは自ノード配下のメインメモリのデータブロックがＣＰＵ内部のキャッシュメモリに保持されていないという無主情報を保持するものであり、アクセス権状態として、アクセス権無、共有アクセス権有、排他アクセス権有の３状態を必要とはしない点で大きく異なる。
【００２６】
従って、特許文献１乃至２に開示されている技術的範囲は、ＣＰＵからのメモリアクセス要求に対する応答データの制御方法に関しては、効率的なキャッシュメモリ制御方法を何ら開示していないため、従来技術の域を出ていない。
【特許文献１】特開平６−１１０８４４号公報
【特許文献２】特表２０００−２９８６５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２７】
従来の技術では、サーバやＰＣ等のチップセットを構成し、メインメモリ及びＣＰＵ内部のキャッシュメモリとの間のデータ共有に関する制御を自ノード配下のＣＰＵ内部のキャッシュメモリに登録されているデータを管理するデータタグにより行うシステム・コントローラＬＳＩ（ＳＣ）等のメモリ制御装置において、ＣＰＵからのメモリアクセス要求に対して応答すべきデータに対するキャッシュミスがＣＰＵ内部のキャッシュメモリにおいて発生した場合に、当該ＣＰＵからのメモリアクセス要求に対する応答処理として、自ノード配下のＤＴＡＧ及び他ノード配下のＤＴＡＧの検索を行うグローバルスヌープ、また前記ＤＴＡＧ検索の結果を集約するために実行されるキャッシュステータス・マージ、さらに前記ＣＰＵからのメモリアクセス要求の対象データが他ノード配下のＣＰＵ又はメインメモリに存在することが判明した場合におけるデータ読み出し処理等がインターコネクトを経由して実行される。
【００２８】
また、これらのインターコネクトを経由するアクセスうち、ブロードキャスト及びキャッシュステータス・マージは、一つのインターコネクト上においては同時に一つのみしか処理されないが、ＬＳＩ内部の配線と比較した場合、インターコネクトはバックプレーン・ボード上の配線及び筐体間接続等の物理的な制約が大きいため、インターコネクトを経由するアクセスは転送バンド幅及びレイテンシが性能上のボトルネックとなる。従って、大規模システムになるほど、メモリアクセスの頻度が増加し、多段の接続が必要になるため、これらの性能上のボトルネックが顕在化する傾向となる。
【００２９】
従って、システム内におけるノード間の全てのメモリアクセス要求は必ずインターコネクトを経由するため、インターコネクトのスループット又はバンド幅がシステム全体のメモリアクセスの発生量に対して不足している場合には、システム全体の性能低下を引き起こすという問題が発生していた。また、インターコネクト上の伝播時間もメモリアクセス時間に対してレイテンシが付加されることにより、システム性能に対して悪影響を与えるという問題があった。従って、従来のシステム・コントローラＬＳＩ等のメモリ制御装置においては、効率的なキャッシュメモリ制御を行っているとはいえなかった。
【００３０】
本発明は、サーバやＰＣ等のチップセットを構成し、メインメモリ及びＣＰＵ内部のキャッシュメモリとの間のデータ共有に関する制御を自ノード配下のＣＰＵ内部のキャッシュメモリに登録されているデータを管理するデータタグにより行うシステム・コントローラＬＳＩ等のメモリ制御装置において、ＣＰＵからのメモリアクセス要求に対して応答すべきデータに対するキャッシュミスがＣＰＵ内部のキャッシュメモリにおいて発生した場合において、自ノード配下のＤＴＡＧ及び他ノード配下のＤＴＡＧに対するブロードキャストを実行する前に、自ノード配下におけるメインメモリの特定のデータブロックが自ノード配下におけるＣＰＵの２次キャッシュメモリに保持されていないという無主情報を保持する専用のタグメモリであるリテンションタグ（ＲＴＡＧ）をアクセスすることにより、ブロードキャスト等の不要なインターコネクト経由のアクセスを削減し、メモリアクセスにおけるスループットを向上することができるメモリ制御装置及びメモリ制御方法を提供する。
【課題を解決するための手段】
【００３１】
上記目的を達成するために本発明は、
キャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置であって、
前記メインメモリに含まれる特定データが前記何れのキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグを有することを特徴とするメモリ制御装置であることを特徴とする。
【００３２】
さらに、本発明は、
第１のキャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置であって、
前記メインメモリに含まれるデータを保持する第２のキャッシュメモリと、
前記メインメモリに含まれる特定データが前記何れの第１のキャッシュメモリ及び第２のキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグを有することを特徴とするメモリ制御装置であることを特徴とする。
【００３３】
さらに、本発明は、
キャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置を複数有する情報処理装置であって、
前記メモリ制御装置は、
前記メインメモリに含まれる特定データが前記何れのキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグを有し、
伝送路を介してお互いに結合されることを特徴とする情報処理装置であることを特徴とする。
さらに、本発明は、
第１のキャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置を複数有する情報処理装置であって、
前記メモリ制御装置は、
前記メインメモリに含まれるデータを保持する第２のキャッシュメモリと、
前記メインメモリに含まれる特定データが前記何れの第１のキャッシュメモリ及び第２のキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグを有し、
伝送路を介してお互いに結合されることを特徴とする情報処理装置であることを特徴とする。
さらに、本発明は、
前記第２のキャッシュメモリは、
前記メモリ制御装置に接続される一のメインメモリに含まれるデータのみならず、前記メモリ制御装置に伝送路を介して接続されるメモリ制御装置に接続する他のメインメモリに含まれるデータをも保持することを特徴とする前記メモリ制御装置であることを特徴とする。
【００３４】
さらに、本発明は、
キャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置のメモリ制御方法において、
前記何れかのＣＰＵから発行されるリード要求を受信し、
前記メインメモリに含まれる特定データが前記何れのキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグをアクセスし、
前記リード要求の対象データが前記リテンションタグに含まれる場合には、メインメモリに対してリード要求の発行を行うことを特徴とするメモリ制御方法であることを特徴とする。
【００３５】
さらに、本発明は、
第１のキャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、前記メインメモリに含まれるデータを保持する第２のキャッシュメモリを有し、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置のメモリ制御方法において、
前記何れかのＣＰＵから発行されるリード要求を受信し、
前記メインメモリに含まれる特定データが前記何れの第１のキャッシュメモリ及び第２のキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグをアクセスし、
前記リード要求の対象データが前記リテンションタグに含まれる場合には、メインメモリに対してリード要求の発行を行うことを特徴とするメモリ制御方法であることを特徴とする。
【００３６】
さらに、本発明は、
キャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置を複数有する情報処理装置のメモリ制御方法において、
前記何れかのＣＰＵから発行されるリード要求を受信し、
前記メインメモリに含まれる特定データが前記何れのキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグをアクセスし、
前記リード要求の対象データが前記リテンションタグに含まれる場合には、メインメモリに対してリード要求の発行を行うことを特徴とするメモリ制御方法であることを特徴とする。
【００３７】
さらに、本発明は、
第１のキャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、前記メインメモリに含まれるデータを保持する第２のキャッシュメモリを有し、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置を複数有する情報処理装置のメモリ制御方法において、
前記何れかのＣＰＵから発行されるリード要求を受信し、
前記メインメモリに含まれる特定データが前記何れの第１のキャッシュメモリ及び第２のキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグをアクセスし、
前記リード要求の対象データが前記リテンションタグに含まれる場合には、メインメモリに対してリード要求の発行を行うことを特徴とするメモリ制御方法であることを特徴とする。
【００３８】
さらに、本発明は、
前記第２のキャッシュメモリは、
前記メモリ制御装置に接続される一のメインメモリに含まれるデータのみならず、前記メモリ制御装置に伝送路を介して接続されるメモリ制御装置に接続する他のメインメモリに含まれるデータをも保持し、
前記リテンションタグのアクセスにおいて、
前記リード要求の対象データが前記リテンションタグに含まれ、さらに前記他のメインメモリに含まれるデータであると判断される場合には、当該他のメインメモリに対してリード要求の発行を行うことを特徴とする前記メモリ制御方法であることを特Ｋ長とする。
（本発明の実施の形態）
図３に本発明における適用製品分野となるクロスバ・スイッチＬＳＩ（ＸＢ）及びシステム・コントローラＬＳＩ（ＳＣ）を使用したコンピュータシステムの全体ハードウェア構成の一例を示す。
【００３９】
バックプレーン（ＢＰ）３０１は、複数個のクロスバ・スイッチＬＳＩ（ＸＢ）３１１〜３１４を実装しており、コネクタ３６１〜３６４を経由して、システムボード（ＳＢ）３０２〜３０５とのインタフェースを有することにより、システム全体の接続を制御する。システムボード（ＳＢ）３０２〜３０５は、それぞれ複数個のシステム・コントローラＬＳＩ（ＳＣ）３２１〜３２４、３３１〜３３４、３４１〜３４４、３５１〜３５４及び複数個のＣＰＵ及びメインメモリを制御するメモリ・コントローラＬＳＩ（ＭＡＣ）を実装する（図中ではＣＰＵ及びメモリ・コントローラＬＳＩ（ＭＡＣ）等のＬＳＩを省略している）。前記システム・コントローラＬＳＩ（ＳＣ）は、システムボード（ＳＢ）上に実装された他のシステム・コントローラＬＳＩ（ＳＣ）及び複数のＣＰＵ及びメモリ・コントローラＬＳＩ（ＭＡＣ）とのインタフェースを有する（詳細は後述する）。従って、システムボード（ＳＢ）３０２〜３０５は、当該コンピュータシステムにおける処理能力の増設単位となるものである。
【００４０】
また、図４に本発明における適用製品分野となるシステム・コントローラＬＳＩ（ＳＣ）を使用したコンピュータシステムの全体ハードウェア構成の別の一例を示す。
【００４１】
バックプレーン（ＢＰ）４０１は、複数個のトランシーバ４１１〜４１４を実装しており、コネクタ４５１〜４５４を経由して、システムボード（ＳＢ）４０２、４０３とのインタフェースを有することにより、システム全体の接続を制御する。システムボード（ＳＢ）４０２、４０３は、それぞれ複数個のシステム・コントローラＬＳＩ（ＳＣ）４２１〜４２４、４３１〜４３４及び複数個のＣＰＵ及びメインメモリを制御するメモリ・コントローラＬＳＩ（ＭＡＣ）を実装する（図中ではＣＰＵ及びメモリ・コントローラＬＳＩ（ＭＡＣ）等のＬＳＩを省略している）。前記システム・コントローラＬＳＩ（ＳＣ）は、システムボード（ＳＢ）上に実装された他のシステム・コントローラＬＳＩ（ＳＣ）及び複数のＣＰＵ及びメモリ・コントローラＬＳＩ（ＭＡＣ）とのインタフェースを有する（詳細は後述する）。従って、システムボード（ＳＢ）４０２、４０３は、当該コンピュータシステムにおける処理能力の増設単位となるものである。
【００４２】
図５に本発明におけるシステム・コントローラＬＳＩ（ＳＣ）を実装するシステムボード（ＳＢ）のハードウェア構成の一例を示す。
【００４３】
システムボード（ＳＢ）５０１は、複数個のシステム・コントローラＬＳＩ（ＳＣ）５１１〜５１４、複数個のＣＰＵ５２１〜５２４、複数個のメモリ・コントローラＬＳＩ（ＭＡＣ）５３１〜５３４、複数個のメモリ・モジュール（ＤＩＭＭ）５４１〜５４４及び複数個のコネクタ５５１〜５５４を実装している。
【００４４】
ここで、システム・コントローラＬＳＩ（ＳＣ）５１１を例に説明を行う。システム・コントローラＬＳＩ（ＳＣ）５１１は、他のシステム・コントローラＬＳＩ（ＳＣ）５１２〜５１４及び複数のＣＰＵ５２１〜５２４及び複数のメモリ・コントローラＬＳＩ（ＭＡＣ）５３１、５３２と接続される。また、システム・コントローラＬＳＩ（ＳＣ）５１１は、自ノードの配下であり直接接続されるＣＰＵ５２１〜５２４の２次キャッシュメモリに登録されているデータを管理するデータタグ（ＤＴＡＧ）及び自ノード配下におけるＣＰＵ５２１〜５２４の２次キャッシュメモリに保持されていないという無主情報を保持する専用のタグメモリであるリテンションタグ（ＲＴＡＧ）を内蔵する。さらに、システム・コントローラＬＳＩ（ＳＣ）５１１は、コネクタ５５１を通して、バックプレーンに実装されたクロスバ・スイッチＬＳＩ（ＸＢ）ともインタフェースを有する。従って、システム・コントローラＬＳＩ（ＳＣ）５１１は複数のインタフェースを有することにより、システム・コントローラＬＳＩ（ＳＣ）に接続されたＣＰＵ及びメモリ・コントローラＬＳＩ（ＭＡＣ）との間のデータの送受信を行う。
【００４５】
システム・コントローラＬＳＩ（ＳＣ）５１１とＣＰＵ５２１〜５２４との間は、ＣＰＵローカルバス形式のインタフェースにより接続され、メモリ・コントローラＬＳＩ（ＭＡＣ）５３１、５３２との間は、メモリ・バス形式のインタフェースにより接続され、システム・コントローラＬＳＩ（ＳＣ）５１１と他のシステム・コントローラＬＳＩ（ＳＣ）５１２〜５１４との間は、インターコネクト形式のインタフェースにより接続される。さらに、システム・コントローラＬＳＩ（ＳＣ）５１１とクロスバ・スイッチＬＳＩ（ＸＢ）との間も、インターコネクト形式のインタフェースにより接続され、一般にはシステム・コントローラＬＳＩ（ＳＣ）間のインターコネクトと同様のインタフェースにより接続される。
【００４６】
また、図６に本発明におけるＲＴＡＧの概要ブロック図を示す。システム・コントローラＬＳＩ（ＳＣ）に内蔵されるＲＴＡＧは、自ノード配下のメインメモリ内の特定データブロックがどのＣＰＵキャッシュにも保持されていないという無主情報を保持するタグ本体部（ＴＡＧ）６４１と、ＣＰＵキャッシュのリプレース又はＣＰＵキャッシュの無効化等による自ノード配下のメインメモリへの書込み（ＭＥＭＯＲＹ−ＷＲＩＴＥ  ＲＥＱＵＥＳＴ）を検出し、タグ本体部（ＴＡＧ）６４１に当該情報の書込み（ＲＴＡＧ−ＷＴ）を行う書込み検出部（ＭＥＭＯＲＹ  ＷＲＩＴＥ  ＤＥＴＥＣＴ）６１１と、ＴＡＧへの登録要求を発行する登録要求発行部（ＲＴＡＧ  ＲＥＧＩＳＴＥＲ  ＲＥＱＵＥＳＴ  ＢＬＯＣＫ）６６１と、前記発行された登録要求に対してシステム内の全ＤＴＡＧの検索を行った結果、どのＣＰＵキャッシュ内にもメモリアクセスの対象データが保持されていないときにタグ本体部（ＴＡＧ）に当該情報の書込み（ＲＴＡＧ−ＷＴ）を実行するＤＴＡＧ検索部（ＤＴＡＧ  ＳＥＡＲＣＨ）６２１と、メモリリード要求（ＭＥＭＯＲＹ−ＲＥＡＤ  ＲＥＱＵＥＳＴ）のラインアドレス（ＬＩＮＥ−ＡＤＤＲＥＳＳ）の上位アドレス（ＩＮＤＥＸ−ＡＤＤＲＥＳＳ）により指定されるタグアドレスの読み出し（ＲＴＡＧ−ＲＤ）を行い、当該読み出された下位アドレスと当該メモリリクエストの下位アドレスとを比較することによりデータブロックがＲＴＡＧに登録されているかの判別を行う一致検出部（ＣＯＭＰＡＲＥ）６５１からなる。
【００４７】
ＲＴＡＧは、書込み検出部（ＭＥＭＯＲＹ  ＷＲＩＴＥ  ＤＥＴＥＣＴ）６５１において自ノード配下のメインメモリへの書込み（ＭＥＭＯＲＹ−ＷＲＩＴＥ  ＲＥＱＵＥＳＴ）を検出すると、タグ内において検出した書込みアドレスの上位アドレスで示されるラインに情報を書込む（ＲＴＡＧ−ＷＴ）。当該ライン内はｎ個のウェイに分割されており、同一ライン内のＬＲＵ情報に基づいてどのウェイに書込むかが選択される。ＲＴＡＧが発行するＲＴＡＧ登録要求に対してもＤＴＡＧ検索の結果、どのＣＰＵキャッシュにも登録されていないことが判明した場合においても、同様の手順でタグ本体部（ＴＡＧ）６４１に情報を書込む（ＲＴＡＧ−ＷＴ）。一方、ＣＰＵからのメモリリード要求（ＭＥＭＯＲＹ−ＲＥＡＤ  ＲＥＱＵＥＳＴ）に対しては、当該メモリアクセス要求（ＭＥＭＯＲＹ−ＲＥＡＤ  ＲＥＱＵＥＳＴ）をインターコネクト経由によりブロードキャストする前にＲＴＡＧを検索する。ここでＲＴＡＧにヒットした場合はどのＣＰＵキャッシュにも登録されていないことが明らかであるため、ブロードキャストを実行する必要はなく、自ノード配下のメインメモリに対してリード要求をだせばよいことが分かる。この結果インターコネクトを経由するアクセスが減少し、さらに、各リクエストについてはブロードキャストを実行した場合におけるレイテンシが削減されるため、スループットが向上する結果となる。
【００４８】
次に、図７に本発明におけるシステム・コントローラＬＳＩ（ＳＣ）内のＲＴＡＧ制御部のハードウェア構成の一例を示す。ステージング・ラッチ７１２〜７１６は、タグ・アクセス・パイプライン（ＴＡＧ−ＰＩＰＥＬＩＮＥ）を構成する。
【００４９】
まず、タグ・アクセス・パイプライン（ＴＡＧ−ＰＩＰＥＬＩＮＥ）の動作を説明する。自システムボード（ＳＢ）上のＣＰＵ０〜３からのメモリアクセス要求である場合には、マルチプレクサ７１１を通過後、タグ・アクセス・パイプライン（ＴＡＧ−ＰＩＰＥＬＩＮＥ）を構成するステージング・ラッチ７１２〜７１６をアクセス・コマンドが流れ、前記コマンドに付随するラインアドレス（ＬＩＮＥ−ＡＤＤＲＥＳＳ）の上位アドレスであるインデックスアドレス（ＩＮＤＥＸ−ＡＤＤＲＥＳＳ）が、それぞれデータタグ（ＤＴＡＧ）７２２及びリテンションタグ（ＲＴＡＧ）７３２のアドレス・ポート７２１及び７３１に入力されることにより、ＤＴＡＧ７２２及びＲＴＡＧ７３２の索引が行われる。それぞれのタグメモリの索引結果である下位アドレスはそれぞれのリード・ポートである出力レジスタ７２４及び７３４に出力され、さらには、タグ・アクセス・パイプライン（ＴＡＧ−ＰＩＰＥＬＩＮＥ）を流れる下位アドレスとの比較を行うことにより、前記メモリアクセス要求の対象であるデータブロックがＤＴＡＧ及びＲＴＡＧに登録されているかどうかの判定を行うための一致検査が行われる。前記一致検査の結果は、それぞれステージング・ラッチ７２６及び７３６を通過後、マージ制御部７２７においてそれぞれの結果が統合され、ステージング・ラッチ７１６に保持され、タグ・アクセス・パイプラインを流れる。
【００５０】
ここで、前記一致検査の結果により、システム・コントローラＬＳＩ（ＳＣ）内における処理が決定される。つまり、前記一致検査の結果により、ＣＰＵからのメモリアクセス要求がＲＴＡＧ７３２にヒットする場合には、ＴＡＧ更新部（ＴＡＧ  ＣＯＮＴＲＯＬ）７４５により、ＲＴＡＧ７３２の当該エントリの無効化が実行されるとともに、メモリリクエスト発行部（ＭＥＭ  ＲＥＱＵＥＳＴ  ＣＯＮＴＲＯＬ）７４３からメインメモリに対して、メモリアクセス要求が発行される。また、前記一致検査の結果により、ＣＰＵからのメモリアクセス要求がＤＴＡＧ７２２及びＲＴＡＧ７３２の両方においてミスが発生した場合には、プリフェッチ・リクエスト発行部（ＰＲＥＦＥＴＣＨ  ＲＥＱＵＥＳＴ  ＣＯＮＴＲＯＬ）７４４より、プリフェッチをタグ・アクセス・パイプライン（ＴＡＧ  ＰＩＰＥＬＩＮＥ）に投入し、ＤＴＡＧ７２２及びＲＴＡＧ７３２の検索の結果、ともにミスが発生した場合には、ＴＡＧ更新部（ＴＡＧ  ＣＯＮＴＲＯＬ）７４５から、ＲＴＡＧ７３２に対して当該プリフェッチ要求の対象アドレスの登録が行われる。さらに、キャッシュの吐き出し及びブロックライト等のストア要求が発生した場合には、ＴＡＧ更新部（ＴＡＧ  ＣＯＮＴＲＯＬ）７４５から、ＲＴＡＧ７３２に対して当該ストア要求の対象アドレスの登録が行われるとともに、ＣＰＵリクエスト発行部（ＣＰＵ  ＲＥＱＵＥＳＴ  ＣＯＮＴＲＯＬ）７４２から、当該アクセス対象のＣＰＵに対してストア要求が発行される。
【００５１】
図８に本発明におけるｍ個のウェイに分割されて構成されるｍウェイのリテンションタグ（ＲＴＡＧ）のデータ構造の一例を示す。メモリアクセス要求の対象アドレスは、インデックスアドレス（ＩＮＤＥＸ  ＡＤＤＲＥＳＳ）８０１及びラインアドレス（ＬＩＮＥ  ＡＤＤＲＥＳＳ）８０２から構成されるものであり、インデックスアドレス（ＩＮＤＥＸ  ＡＤＤＲＥＳＳ）はタグメモリのインデックスとしてタグ検索に使用され、又、ラインアドレス（ＬＩＮＥ  ＡＤＤＲＥＳＳ）はそれぞれ、ＬＲＵ(Least Recently Used)フィールドで保持されるＬＲＵ情報であるウェイ番号に従って、０ウェイにおけるラインアドレスのエントリ（ＬＩＮＥ−ＡＤＲＳ−Ｗ（０））８１４〜（ｍ−１）ウェイにおけるラインアドレスのエントリ（ＬＩＮＥ−ＡＤＲＳ−Ｗ（ｍ−１））８２４のうちのいずれかに保持される。
【００５２】
また、各エントリに対応するメモリキャッシュ・アドレスが、０ウェイにおけるメモリキャッシュ・アドレス（ＭＣ−ＡＤＲＳ−Ｗ（０））８１３〜（ｍ−１）ウェイにおけるメモリキャッシュ・アドレス８２３として保持される。
【００５３】
さらに、各エントリの有効フラグが、０ウェイにおける有効フラグ（ＶＡＬ−Ｗ（０））８１１〜（ｍ−１）ウェイにおける有効フラグ（ＶＡＬ−Ｗ（ｍ−１））８２１として保持され、各メモリキャッシュ・アドレスのエントリに対する有効フラグが、０ウェイにおけるメモリキャッシュ・アドレスにおける有効フラグ（ＭＣ−ＶＡＬ−Ｗ（０））８１２〜（ｍ−１）ウェイにおけるメモリキャッシュ・アドレスにおける有効フラグ（ＭＣ−ＶＡＬ−Ｗ（ｍ−１））８２２として保持される。
【００５４】
（本発明の実施例その１におけるハードウェア構成例）
図９に、本発明における実施例その１において２単位のノードを構成するシステムハードウェアの基本構成を示す。
【００５５】
システムボード−０（ＳＢ−０）９０１は、システム・コントローラＬＳＩ−０（ＳＣ−０）９０３及びＣＰＵ−０  ９１１〜ＣＰＵ−３  ９１４及びメモリ・コントローラＬＳＩ−０（ＭＡＣ−０）９０５、メインメモリ（ＭＡＩＮ  ＭＥＭＯＲＹ）９０７から構成され、１単位のノードを構成する。
【００５６】
同様に、システムボード−１（ＳＢ−１）９０２は、システム・コントローラＬＳＩ−１（ＳＣ−１）９０４及びＣＰＵ−０  ９１５〜ＣＰＵ−３  ９１８及びメモリ・コントローラＬＳＩ−１（ＭＡＣ−１）９０６、メインメモリ（ＭＡＩＮ  ＭＥＭＯＲＹ）９０８から構成され、１単位のノードを構成する。
【００５７】
ＳＣ−０  ９０３に直接接続されるＣＰＵ−０  ９１１〜ＣＰＵ−３  ９１４は、それぞれキャッシュメモリ９２１〜９２４を内蔵し、又、ＳＣ−０に内蔵されるＤＴＡＧ  ９３１は、前記キャッシュメモリ９２１〜９２４に登録されているデータの管理を行い、ＳＣ−０に内蔵されるＲＴＡＧ９３２は自ノード配下のメインメモリ９０７のデータブロックが前記キャッシュメモリ９２１〜９２４のいずれにも保持されていないという無主情報を保持するものである。
【００５８】
さらに、ＳＣ−０  ９０３に接続されるメモリアクセス・コントローラＬＳＩ−０  ９０５は、直接接続されるメインメモリ９０７へのアクセスを実行する。なお、ＳＣ−１もＳＣ−０と同様の構成を有し、それぞれインターコネクト９０９を介して相互に接続される。ところで、キャッシュメモリ９２１〜９２８は、各ＣＰＵに内蔵される最も低階層のキャッシュメモリ（最もシステム・コントローラＬＳＩ（ＳＣ）のインタフェースに近いキャッシュメモリ）であり、必ずしも２次キャッシュメモリに限られるものではない。
【００５９】
（本発明の実施例その１においてＲＴＡＧをミスした場合の第１の動作例）
図１０に、図９における本発明の実施例その１においてＲＴＡＧをミスした場合の第１の動作例を示す。
【００６０】
まず、ＣＰＵ−０  １０１１においてメモリアクセス要求が発生し、当該メモリアクセス要求に対して応答すべきデータに対するキャッシュミスがキャッシュメモリ１０２１において発生した場合、ＣＰＵ−０  １０１１はリード要求１０５１をＳＣ−０  １００３に対して発行を行う。前記リード要求１０５１を受信したＳＣ−０  １００３は、ブロードキャストを実行する前に、まずＲＴＡＧ１０３２のローカルスヌープ１０５４を実行する。ここで、ＲＴＡＧ１０３２のローカルスヌープ１０５４においてミスが発生した場合にのみ、ブロードキャスト１０５２をＳＣ−１  １００４に対してインターコネクト１００９経由により発行するとともに、内蔵するＤＴＡＧ１０３１に対してもスヌープ１０５３を発行することによりグローバルスヌープを実行する。又、ブロードキャスト１０５２を受信したＳＣ−１  １００４も内蔵するＤＴＡＧ１０４１に対してスヌープ１０５５を発行することによりグローバルスヌープを実行する。
【００６１】
次に、ＳＣ−０  １００３及びＳＣ−１  １００４はそれぞれ、互いに前記ＤＴＡＧの検索結果をインターコネクト１００９経由により送受信して集約ことにより、キャッシュステータス・マージ１０５７を実行する。ここで、前記キャッシュステータス・マージ１０５７の結果により、前記リード要求１０５１の対象データが自ノード配下のメモリアクセス・コントローラ１００５に直接接続されるメインメモリ１００７に存在することが判明した場合には、ＳＣ−０  １００３は自ノード配下のメモリアクセス・コントローラ１００５に対してリード要求１０５８の発行を行う。又は、前記キャッシュステータス・マージ１０５７の結果により、前記リード要求１０５１の対象データがＳＣ−１  １００４配下のＣＰＵ−２  １０１７に内蔵するキャッシュメモリ１０２７に存在することが判明した場合には、ＳＣ−１  １００４はＣＰＵ−２  １０１７に対してリード要求１０５６の発行を行う。
【００６２】
（本発明の実施例その１においてＲＴＡＧにヒットした場合の第１の動作例）
図１１に、図９における本発明の実施例その１においてＲＴＡＧにヒットした場合の第１の動作例を示す。
【００６３】
まず、ＣＰＵ−０  １１１１においてメモリアクセス要求が発生し、当該メモリアクセス要求に対して応答すべきデータに対するキャッシュミスがキャッシュメモリ１１２１において発生した場合、ＣＰＵ−０  １１１１はリード要求１１５１をＳＣ−０  １１０３に対して発行を行う。前記リード要求１１５１を受信したＳＣ−０  １１０３は、ブロードキャストを実行する前に、まずＲＴＡＧ１１３２のローカルスヌープ１１５２を実行する。ここで、ローカルスヌープ１１５２がＲＴＡＧ１１３２にヒットした場合には、メモリアクセス要求の対象データが自ノード配下のメインメモリ１１０７に存在することが明らかであるため、メインメモリ１１０７に接続されるＭＡＣ−０  １１０５に対してリード要求１１５３を発行することにより、自ノード内でローカル解決を図ることができる。従って、インター−コネクト１１０９を経由したブロードキャスト及びキャッシュステータス・マージの実行の必要はなくなるため、インターコネクトのスループット又はバンド幅が消費されないため、システム全体の性能に影響を与えない結果となる。
【００６４】
（本発明の実施例その１における第１の動作例を表すフローチャートの説明）
図１２は、図１０又は図１１の本発明におけるシステム・コントローラＬＳＩ（ＳＣ）の第１の動作例を表すフローチャートである。以下、図１２の処理手順を説明する。
【００６５】
まず、ＣＰＵからのリード要求の受信により、システム・コントローラＬＳＩ（ＳＣ）は当該リード要求の処理を開始する（ステップＳ１２０１）。次に、前記リード要求を受信したシステム・コントローラＬＳＩ（ＳＣ）は、ブロードキャストを実行する前に、まずＲＴＡＧのローカルスヌープを実行する（ステップＳ１２０２）。
【００６６】
ここで、ローカルスヌープの結果によりＲＴＡＧにヒットした場合には、メモリアクセス要求の対象データが自ノード配下のメインメモリに存在することが明らかであるため、メインメモリに対してリード要求を発行することにより、自ノード内でローカル解決を図ることができる（ステップＳ１２０３）。さらに、ＲＴＡＧの当該リード要求にかかるタグ・インデックスの無効化（ステップＳ１２０４）を行った後に、処理を終了する（ステップＳ１２１１）。
【００６７】
次に、ローカルスヌープの結果によりＲＴＡＧにミスした場合には、メモリアクセス要求の対象データが自ノード配下のメインメモリに存在しないことが明らかであるため、前記リード要求を受信したシステム・コントローラＬＳＩ（ＳＣ）は、自ノード内だけではなく他ノードのシステム・コントローラＬＳＩ（ＳＣ）に対しても、前記リード要求の対象となるデータを検索するためにインターコネクト経由によりブロードキャストを行う（ステップＳ１２０５）。また、ブロードキャストを行ったシステム・コントローラＬＳＩ（ＳＣ）は、自ノード内のＤＴＡＧに対するスヌープを実行することにより、自ノード内のＤＴＡＧの検索を行うことによりグローバルスヌープを実行する（ステップＳ１２０６）。さらに、各ノードのシステム・コントローラＬＳＩ（ＳＣ）はそれぞれ、互いに前記ＤＴＡＧの検索結果をインターコネクト経由により送受信して集約することにより、キャッシュステータス・マージを実行する（ステップＳ１２０７）。
【００６８】
ここで、キャッシュステータス・マージを実行したシステム・コントローラＬＳＩ（ＳＣ）は、ＤＴＡＧの検索結果において、ＤＴＡＧがヒットしたかミスしたかの判断を行う（ステップＳ１２０８）。前記ＤＴＡＧの検索結果においてＤＴＡＧにヒットした場合には、さらにＤＴＡＧヒットしたデータを有するＣＰＵが自ノードの配下のＣＰＵであるかどうかの判断を行う（ステップＳ１２１２）。ＤＴＡＧヒットしたデータを有するＣＰＵが自ノードの配下である場合には、当該ＣＰＵに対して対象データのリード要求の発行を行い（ステップＳ１２１３）、対象データの受信後に処理を終了する（ステップＳ１２１１）。或いは、ＤＴＡＧヒットしたデータを有するＣＰＵが自ノードの配下にない場合には、処理を終了する（ステップＳ１２１１）。
【００６９】
また、前記ＤＴＡＧの検索結果においてＤＴＡＧミスが発生した場合には、さらにＤＴＡＧミスしたアドレスが自ノードの管理しているメインメモリのアドレス範囲内にあるかどうかの判断を行う（ステップＳ１２０９）。ＤＴＡＧミスしたアドレスが自ノードの配下であるメインメモリのアドレスの範囲内である場合には、当該メインメモリに対して対象データのリード要求の発行を行い（ステップＳ１２１０）、対象データの受信後に処理を終了する（ステップＳ１２１１）。或いは、ＤＴＡＧミスしたアドレスが自ノードの配下であるメインメモリのアドレスの範囲外である場合には、処理を終了する（ステップＳ１２１１）。
【００７０】
（本発明の実施例その１において他ノード配下のＲＴＡＧにヒットした場合の第２の動作例）
図１３に、図９における本発明の実施例その１において他ノード配下のＲＴＡＧにヒットした場合の第２の動作例を示す。
【００７１】
まず、ＣＰＵ−０  １３１１においてメモリアクセス要求が発生し、当該メモリアクセス要求に対して応答すべきデータに対するキャッシュミスがキャッシュメモリ１３２１において発生した場合、ＣＰＵ−０  １３１１はリード要求１３５１をＳＣ−０  １３０３に対して発行を行う。前記リード要求１３５１を受信したＳＣ−０  １３０３は、ブロードキャスト１３５２をＳＣ−１  １３０４に対してインターコネクト１３０９経由により発行するとともに、内蔵するＤＴＡＧ１３３１及びＲＴＡＧ１３３２に対してもスヌープ１３５３及びスヌープ１３５４を発行することによりグローバルスヌープを実行する。又、ブロードキャスト１３５２を受信したＳＣ−１  １３０４も内蔵するＤＴＡＧ１３４１及びＲＴＡＧ１３４２に対してスヌープ１３５５及びスヌープ１３５６を発行することによりグローバルスヌープを実行する。
【００７２】
ここで、スヌープ１３５６がＲＴＡＧ１３４２にヒットした場合には、メモリアクセス要求の対象データがＳＣ−１  １３０４のノード配下のメインメモリ１３０８に存在することが明らかであるため、メインメモリ１３０８に接続されるＭＡＣ−１  １３０６に対してリード要求１３５８を発行の発行を行う。従って、キャッシュステータス・マージの実行の必要はなくなるため、キャッシュステータス・マージの実行に要する時間を短縮することが可能となり、システムのスループットが向上する結果となる。
【００７３】
（本発明の実施例その１において自ノード配下のＲＴＡＧにヒットした場合の第２の動作例）
図１４に、図９における本発明の実施例その１において自ノード配下のＲＴＡＧにヒットした場合の第２の動作例を示す。
【００７４】
まず、ＣＰＵ−０  １４１１においてメモリアクセス要求が発生し、当該メモリアクセス要求に対して応答すべきデータに対するキャッシュミスがキャッシュメモリ１４２１において発生した場合、ＣＰＵ−０  １４１１はリード要求１４５１をＳＣ−０  １４０３に対して発行を行う。前記リード要求１４５１を受信したＳＣ−０  １４０３は、ブロードキャスト１４５２をＳＣ−１  １４０４に対してインターコネクト１４０９経由により発行するとともに、内蔵するＤＴＡＧ１４３１及びＲＴＡＧ１４３２に対してもスヌープ１４５３及びスヌープ１４５４を発行することによりグローバルスヌープを実行する。又、ブロードキャスト１４５２を受信したＳＣ−１  １４０４も内蔵するＤＴＡＧ１４４１及びＲＴＡＧ１４４２に対してスヌープ１４５５及びスヌープ１４５６を発行することによりグローバルスヌープを実行する。
【００７５】
ここで、スヌープ１４５４がＲＴＡＧ１３３２にヒットした場合には、メモリアクセス要求の対象データが自ノード配下のメインメモリ１４０７に存在することが明らかであるため、メインメモリ１４０７に接続されるＭＡＣ−０  １４０５に対してリード要求１４５８を発行の発行を行う。従って、キャッシュステータス・マージの実行の必要はなくなるため、キャッシュステータス・マージの実行に要する時間を短縮することが可能となり、システムのスループットが向上する結果となる。
【００７６】
（本発明の実施例その１における第２の動作例を表すフローチャートの説明）
図１５は、図１３又は図１４におけるシステム・コントローラＬＳＩ（ＳＣ）１３０３又は１４０３の第２の動作例を表すフローチャートである。以下、図１５の処理手順を説明する。
【００７７】
まず、ＣＰＵからのリード要求の受信により、システム・コントローラＬＳＩ（ＳＣ）は当該リード要求の処理を開始する（ステップＳ１５０１）。次に、前記リード要求を受信したシステム・コントローラＬＳＩ（ＳＣ）は、まずブロードキャストを実行する（ステップＳ１５０２）。前記ブロードキャストの結果により、全システム・コントローラＬＳＩ（ＳＣ）におけるＤＴＡＧ及びＲＴＡＧのスヌープを実行する（ステップＳ１５０３）。
【００７８】
ここで、前記スヌープの結果により何れかのノード配下のＲＴＡＧにヒットした場合には、メモリアクセス要求の対象データが当該ノード配下のメインメモリに存在することが明らかであるため、当該ノード配下のメインメモリに対してリード要求を発行することにより、自ノード内でローカル解決を図ることができる（ステップＳ１５０５）。さらに、ＲＴＡＧの当該リード要求にかかるタグ・インデックスの無効化（ステップＳ１５０６）を行った後に、処理を終了する（ステップＳ１５１１）。
【００７９】
次に、前記スヌープの結果により全てのノード配下のＲＴＡＧにミスした場合には、各ノードのシステム・コントローラＬＳＩ（ＳＣ）はそれぞれ、互いに前記ＤＴＡＧの検索結果をインターコネクト経由により送受信して集約することにより、キャッシュステータス・マージを実行する（ステップＳ１５０７）。
【００８０】
ここで、キャッシュステータス・マージを実行したシステム・コントローラＬＳＩ（ＳＣ）は、ＤＴＡＧの検索結果において、ＤＴＡＧがヒットしたかミスしたかの判断を行う（ステップＳ１５０８）。前記ＤＴＡＧの検索結果においてＤＴＡＧにヒットした場合には、さらにＤＴＡＧヒットしたデータを有するＣＰＵが自ノードの配下のＣＰＵであるかどうかの判断を行う（ステップＳ１５１２）。ＤＴＡＧヒットしたデータを有するＣＰＵが自ノードの配下である場合には、当該ＣＰＵに対して対象データのリード要求の発行を行い（ステップＳ１５１３）、対象データの受信後に処理を終了する（ステップＳ１５１１）。或いは、ＤＴＡＧヒットしたデータを有するＣＰＵが自ノードの配下にない場合には、処理を終了する（ステップＳ１５１１）。
【００８１】
また、前記ＤＴＡＧの検索結果においてＤＴＡＧミスが発生した場合には、さらにＤＴＡＧミスしたアドレスが自ノードの管理しているメインメモリのアドレス範囲内にあるかどうかの判断を行う（ステップＳ１５０９）。ＤＴＡＧミスしたアドレスが自ノードの配下であるメインメモリのアドレスの範囲内である場合には、当該メインメモリに対して対象データのリード要求の発行を行い（ステップＳ１５１０）、対象データの受信後に処理を終了する（ステップＳ１５１１）。或いは、ＤＴＡＧミスしたアドレスが自ノードの配下であるメインメモリのアドレスの範囲外である場合には、処理を終了する（ステップＳ１５１１）。
【００８２】
（本発明の実施例その２においてＲＴＡＧをミスした場合の動作例）
図１６に、本発明の実施例その２においてＲＴＡＧをミスした場合の第１の動作例を示す。図１６は、本発明の実施例その２における２単位のノードを構成するシステムハードウェアの基本構成として、図９で示された本発明の実施例その１におけるシステムハードウェアの基本構成にメモリキャッシュを加えたものである。
【００８３】
メモリキャッシュ１６３３及び１６４３は、自ノード配下のメインメモリのデータブロックだけでなく、他ノード配下のデータブロックも保持することにより、メモリアクセス要求のローカル解決の確率をさらに高めることができ、メモリアクセスのレイテンシに関してもメインメモリよりも早くデータを読み出すことが可能になるため、さらなるスループットの改善を可能とするものである。例えば、メモリキャッシュ１６３３は自ノード配下のメインメモリ１６０７内のデータブロックだけでなく、他ノード配下のメインメモリ１６０８内のデータブロックも保持し、メモリキャッシュ１６３４は自ノード配下のメインメモリ１６０８内のデータブロックだけでなく、他ノード配下のメインメモリ１６０７内のデータブロックも保持することにより、メモリアクセス要求のミスの発生を少なくし、メモリリクエストのレイテンシを低減することにより、スループット向上を実現する。
【００８４】
まず、ＣＰＵ−０  １６１１においてメモリアクセス要求が発生し、当該メモリアクセス要求に対して応答すべきデータに対するキャッシュミスがキャッシュメモリ１６２１において発生した場合、ＣＰＵ−０  １６１１はリード要求１６５１をＳＣ−０  １６０３に対して発行を行う。前記リード要求１６５１を受信したＳＣ−０  １６０３は、ブロードキャストを実行する前に、まずＲＴＡＧ１６３２のローカルスヌープ１６５４を実行する。ここで、ＲＴＡＧ１６３２のローカルスヌープ１６５４においてミスが発生した場合にのみ、ブロードキャスト１６５２をＳＣ−１  １６０４に対してインターコネクト１６０９経由により発行するとともに、内蔵するＤＴＡＧ１６３１に対してもスヌープ１６５３を発行することによりグローバルスヌープを実行する。又、ブロードキャスト１６５２を受信したＳＣ−１  １６０４も内蔵するＤＴＡＧ１６４１に対してスヌープ１６５５を発行することによりグローバルスヌープを実行する。
【００８５】
次に、ＳＣ−０  １６０３及びＳＣ−１  １６０４はそれぞれ、互いに前記ＤＴＡＧの検索結果をインターコネクト１６０９経由により送受信して集約ことにより、キャッシュステータス・マージ１６５７を実行する。ここで、前記キャッシュステータス・マージ１６５７の結果により、前記リード要求１６５１の対象データが自ノード配下のメモリアクセス・コントローラ１６０５に直接接続されるメインメモリ１６０７に存在することが判明した場合には、ＳＣ−０  １６０３は自ノード配下のメモリアクセス・コントローラ１６０５に対してリード要求１６５８の発行を行う。又は、前記キャッシュステータス・マージ１６５７の結果により、前記リード要求１６５１の対象データがＳＣ−１  １６０４配下のＣＰＵ−２  １６１７に内蔵するキャッシュメモリ１６２７に存在することが判明した場合には、ＳＣ−１  １６０４はＣＰＵ−２  １６１７に対してリード要求１６５６の発行を行う。
【００８６】
（本発明の実施例その２においてＲＴＡＧにヒットした場合の第1の動作例）
図１７に、本発明の実施例その２においてＲＴＡＧにヒットした場合の第１の動作例を示す。
【００８７】
まず、ＣＰＵ−０  １７１１においてメモリアクセス要求が発生し、当該メモリアクセス要求に対して応答すべきデータに対するキャッシュミスがキャッシュメモリ１７２１において発生した場合、ＣＰＵ−０  １７１１はリード要求１７５１をＳＣ−０  １７０３に対して発行を行う。前記リード要求１７５１を受信したＳＣ−０  １７０３は、ブロードキャストを実行する前に、まずＲＴＡＧ１７３２のローカルスヌープ１７５２を実行する。ここで、ローカルスヌープ１７５２がメモリキャッシュ１７３３に存在するものとしてＲＴＡＧ１７３２にヒットした場合には、メモリアクセス要求の対象データが自ノード配下のメモリキャッシュ１７３３に存在することが明らかであるため、メモリキャッシュ１７３３に対してリード要求１７５３を発行することにより、自ノード内でローカル解決を図ることができる。従って、インター−コネクト１７０９を経由したブロードキャスト及びキャッシュステータス・マージの実行の必要はなくなるため、インターコネクトのスループット又はバンド幅が消費されないため、システム全体の性能に影響を与えない結果となる。
【００８８】
（本発明の実施例その２においてＲＴＡＧにヒットした場合の第２の動作例）
図１８に、本発明の実施例その２においてＲＴＡＧにヒットした場合の第２の動作例を示す。
【００８９】
まず、ＣＰＵ−０  １８１１においてメモリアクセス要求が発生し、当該メモリアクセス要求に対して応答すべきデータに対するキャッシュミスがキャッシュメモリ１８２１において発生した場合、ＣＰＵ−０  １８１１はリード要求１８５１をＳＣ−０  １８０３に対して発行を行う。前記リード要求１８５１を受信したＳＣ−０  １８０３は、ブロードキャストを実行する前に、まずＲＴＡＧ１８３２のローカルスヌープ１８５２を実行する。ここで、ローカルスヌープ１８５２がメインメモリ１８０７に存在するものとしてＲＴＡＧ１８３２にヒットした場合には、メモリアクセス要求の対象データが自ノード配下のメインメモリ１８０７に存在することが明らかであるため、メインメモリ１８０７に接続されるＭＡＣ−０  １８０５に対してリード要求１８５３を発行することにより、自ノード内でローカル解決を図ることができる。従って、インター−コネクト１８０９を経由したブロードキャスト及びキャッシュステータス・マージの実行の必要はなくなるため、インターコネクトのスループット又はバンド幅が消費されないため、システム全体の性能に影響を与えない結果となる。
【００９０】
（本発明の実施例その２における第１及び第２の動作例を表すフローチャートの説明）
図１９は、それぞれ図１７におけるシステム・コントローラＬＳＩ（ＳＣ）１７０３の第１の動作例及び図１８におけるシステム・コントローラＬＳＩ（ＳＣ）１８０３の第２の動作例を表すフローチャートである。以下、図１９の処理手順を説明する。
【００９１】
まず、ＣＰＵからのリード要求の受信により、システム・コントローラＬＳＩ（ＳＣ）は当該リード要求の処理を開始する（ステップＳ１９０１）。次に、前記リード要求を受信したシステム・コントローラＬＳＩ（ＳＣ）は、ブロードキャストを実行する前に、まずＲＴＡＧのローカルスヌープを実行する（ステップＳ１９０２）。
【００９２】
ここで、ローカルスヌープの結果によりＲＴＡＧにヒットした場合には、さらに、メモリアクセス要求の対象データがメモリキャッシュにヒットしたかどうかの判断を行う（ステップＳ１９０４）。当該判断において、メモリキャッシュにヒットした場合には、メモリキャッシュに対してリード要求を発行することにより、自ノード内でローカル解決を図ることができる（ステップＳ１９０５）。又、当該判断において、メモリキャッシュにヒットしなかった場合には、自ノード配下のメインメモリに存在することが明らかであるため、メインメモリに対してリード要求を発行することにより、自ノード内でローカル解決を図ることができる（ステップＳ１９０６）。メモリキャッシュにヒットした場合もヒットしなかった場合も、ＲＴＡＧの当該リード要求にかかるタグ・インデックスの無効化（ステップＳ１９０７）を行った後に、処理を終了する（ステップＳ１９１４）。
【００９３】
次に、ローカルスヌープの結果によりＲＴＡＧにミスした場合には、メモリアクセス要求の対象データが自ノード配下のメインメモリに存在しないことが明らかであるため、前記リード要求を受信したシステム・コントローラＬＳＩ（ＳＣ）は、自ノード内だけではなく他ノードのシステム・コントローラＬＳＩ（ＳＣ）に対しても、前記リード要求の対象となるデータを検索するためにインターコネクト経由によりブロードキャストを行う（ステップＳ１９０８）。また、ブロードキャストを行ったシステム・コントローラＬＳＩ（ＳＣ）は、自ノード内のＤＴＡＧに対するスヌープを実行することにより、自ノード内のＤＴＡＧの検索を行うことによりグローバルスヌープを実行する（ステップＳ１９０９）。さらに、各ノードのシステム・コントローラＬＳＩ（ＳＣ）はそれぞれ、互いに前記ＤＴＡＧの検索結果をインターコネクト経由により送受信して集約することにより、キャッシュステータス・マージを実行する（ステップＳ１９１０）。
【００９４】
ここで、キャッシュステータス・マージを実行したシステム・コントローラＬＳＩ（ＳＣ）は、ＤＴＡＧの検索結果において、ＤＴＡＧがヒットしたかミスしたかの判断を行う（ステップＳ１９１１）。前記ＤＴＡＧの検索結果においてＤＴＡＧにヒットした場合には、さらにＤＴＡＧヒットしたデータを有するＣＰＵが自ノードの配下のＣＰＵであるかどうかの判断を行う（ステップＳ１９１５）。ＤＴＡＧヒットしたデータを有するＣＰＵが自ノードの配下である場合には、当該ＣＰＵに対して対象データのリード要求の発行を行い（ステップＳ１９１６）、対象データの受信後に処理を終了する（ステップＳ１９１４）。或いは、ＤＴＡＧヒットしたデータを有するＣＰＵが自ノードの配下にない場合には、処理を終了する（ステップＳ１９１４）。
【００９５】
また、前記ＤＴＡＧの検索結果においてＤＴＡＧミスが発生した場合には、さらにＤＴＡＧミスしたアドレスが自ノードの管理しているメインメモリのアドレス範囲内にあるかどうかの判断を行う（ステップＳ１９１２）。ＤＴＡＧミスしたアドレスが自ノードの配下であるメインメモリのアドレスの範囲内である場合には、当該メインメモリに対して対象データのリード要求の発行を行い（ステップＳ１９１３）、対象データの受信後に処理を終了する（ステップＳ１９１４）。或いは、ＤＴＡＧミスしたアドレスが自ノードの配下であるメインメモリのアドレスの範囲外である場合には、処理を終了する（ステップＳ１９１４）。
【００９６】
以上、図３乃至図１９の説明により、リテンションタグ（ＲＴＡＧ）を内蔵するメモリ制御装置において、ＣＰＵから自システムボード（ＳＢ）内のシステム・コントローラＬＳＩ（ＳＣ）に発行したリード要求に対する応答データがメインメモリ（ＭＥＭ）及び他のシステムボード（ＳＢ）上のシステム・コントローラＬＳＩ（ＳＣ）内の３次キャッシュメモリ（Ｌ３−ＣＡＣＨＥ）等に分散して存在している場合に、ＣＰＵからのリード要求に対する応答として、３次キャッシュメモリ（Ｌ３−ＣＡＣＨＥ）及びメインメモリ等の複数の記憶装置からデータを同時に受信してマージすることにより、一度のアクセスで必要なデータをＣＰＵの2次キャッシュメモリに格納を行うことができ、無駄なアクセスが発生しないことが明確である。
【００９７】
以上、本発明にかかる実施の形態及びその動作について図面を参照して説明して詳述してきたが、具体的な構成例はこれら実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
【００９８】
以下に本発明を付記する。
【００９９】
（付記１）
キャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置であって、
前記メインメモリに含まれる特定データが前記何れのキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグを有することを特徴とするメモリ制御装置。
【０１００】
（付記２）
第１のキャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置であって、
前記メインメモリに含まれるデータを保持する第２のキャッシュメモリと、
前記メインメモリに含まれる特定データが前記何れの第１のキャッシュメモリ及び第２のキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグを有することを特徴とするメモリ制御装置。
【０１０１】
（付記３）
キャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置を複数有する情報処理装置であって、
前記メモリ制御装置は、
前記メインメモリに含まれる特定データが前記何れのキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグを有し、
伝送路を介してお互いに結合されることを特徴とする情報処理装置。
【０１０２】
（付記４）
第１のキャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置を複数有する情報処理装置であって、
前記メモリ制御装置は、
前記メインメモリに含まれるデータを保持する第２のキャッシュメモリと、
前記メインメモリに含まれる特定データが前記何れの第１のキャッシュメモリ及び第２のキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグを有し、
伝送路を介してお互いに結合されることを特徴とする情報処理装置。
【０１０３】
（付記５）
前記第２のキャッシュメモリは、
前記メモリ制御装置に接続される一のメインメモリに含まれるデータのみならず、前記メモリ制御装置に伝送路を介して接続されるメモリ制御装置に接続する他のメインメモリに含まれるデータをも保持することを特徴とする付記４記載のメモリ制御装置。
【０１０４】
（付記６）
キャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置のメモリ制御方法において、
前記何れかのＣＰＵから発行されるリード要求を受信し、
前記メインメモリに含まれる特定データが前記何れのキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグをアクセスし、
前記リード要求の対象データが前記リテンションタグに含まれる場合には、メインメモリに対してリード要求の発行を行うことを特徴とするメモリ制御方法。
【０１０５】
（付記７）
第１のキャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、前記メインメモリに含まれるデータを保持する第２のキャッシュメモリを有し、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置のメモリ制御方法において、
前記何れかのＣＰＵから発行されるリード要求を受信し、
前記メインメモリに含まれる特定データが前記何れの第１のキャッシュメモリ及び第２のキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグをアクセスし、
前記リード要求の対象データが前記リテンションタグに含まれる場合には、メインメモリに対してリード要求の発行を行うことを特徴とするメモリ制御方法。
【０１０６】
（付記８）
キャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置を複数有する情報処理装置のメモリ制御方法において、
前記何れかのＣＰＵから発行されるリード要求を受信し、
前記メインメモリに含まれる特定データが前記何れのキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグをアクセスし、
前記リード要求の対象データが前記リテンションタグに含まれる場合には、メインメモリに対してリード要求の発行を行うことを特徴とするメモリ制御方法。
【０１０７】
（付記９）
第１のキャッシュメモリを有する少なくとも１つのＣＰＵと、メインメモリとに接続され、前記メインメモリに含まれるデータを保持する第２のキャッシュメモリを有し、何れかのＣＰＵからのリード要求に対するデータ応答処理を行うメモリ制御装置を複数有する情報処理装置のメモリ制御方法において、
前記何れかのＣＰＵから発行されるリード要求を受信し、
前記メインメモリに含まれる特定データが前記何れの第１のキャッシュメモリ及び第２のキャッシュメモリにも含まれないという無主データ情報を保持するリテンションタグをアクセスし、
前記リード要求の対象データが前記リテンションタグに含まれる場合には、メインメモリに対してリード要求の発行を行うことを特徴とするメモリ制御方法。
【０１０８】
（付記１０）
前記第２のキャッシュメモリは、
前記メモリ制御装置に接続される一のメインメモリに含まれるデータのみならず、前記メモリ制御装置に伝送路を介して接続されるメモリ制御装置に接続する他のメインメモリに含まれるデータをも保持し、
前記リテンションタグのアクセスにおいて、
前記リード要求の対象データが前記リテンションタグに含まれ、さらに前記他のメインメモリに含まれるデータであると判断される場合には、当該他のメインメモリに対してリード要求の発行を行うことを特徴とする付記９記載のメモリ制御方法。
【図面の簡単な説明】
【０１０９】
【図１】図１は、従来の構成における動作例を示す図である。
【図２】図２は、図１の従来の構成におけるシステム・コントローラＬＳＩ（ＳＣ）の動作例を表すフローチャートである。
【図３】図３は、本発明におけるコンピュータシステムの全体ハードウェア構成の一例を示す図である。
【図４】図４は、本発明におけるコンピュータシステムの全体ハードウェア構成の別の一例を示す図である。
【図５】図５は、本発明におけるシステムボード（ＳＢ）のハードウェア構成の一例を示す図である。
【図６】図６は、本発明におけるリテンションタグ（ＲＴＡＧ）の概要ブロック図である。
【図７】図７は、本発明におけるシステム・コントローラＬＳＩ（ＳＣ）内のＲＴＡＧ制御部に係るハードウェア構成の一例を示す図である。
【図８】図８は、本発明におけるｍウェイのリテンションタグ（ＲＴＡＧ）のデータ構造の一例を示す図である。
【図９】図９は、本発明における実施例その１において２単位のノードを構成するシステムハードウェアの基本構成を示す図である。
【図１０】図１０は、本発明の実施例その１においてＲＴＡＧをミスした場合の第１の動作例を示す図である。
【図１１】図１１は、本発明の実施例その１においてＲＴＡＧにヒットした場合の第１の動作例を示す図である。
【図１２】図１２は、図１０又は図１１の本発明の実施例その１におけるシステム・コントローラＬＳＩの第１の動作例を表すフローチャートである。
【図１３】図１３は、本発明の実施例その１において他ノード配下のＲＴＡＧにヒットした場合の第２の動作例を示す図である。
【図１４】図１４は、本発明の実施例その１において自ノード配下のＲＴＡＧにヒットした場合の第２の動作例を示す図である。
【図１５】図１５は、図１３又は図１４の本発明の実施例その１におけるシステム・コントローラＬＳＩ（ＳＣ）の第２の動作例を表すフローチャートである。
【図１６】図１６は、本発明の実施例その２においてＲＴＡＧをミスした場合の第１の動作例を示す図である。
【図１７】図１７は、本発明の実施例その２においてＲＴＡＧにヒットした場合の第１の動作例を示す図である。
【図１８】図１８は、本発明の実施例その２においてＲＴＡＧにヒットした場合の第２の動作例を示す図である。
【図１９】図１９は、図１７におけるシステム・コントローラＬＳＩ（ＳＣ）の第１の動作例及び図１８におけるシステム・コントローラＬＳＩ（ＳＣ）の第２の動作例を表すフローチャートである。
【符号の説明】
【０１１０】
１０１  キャッシュメモリエントリ
１０２  アドレスブロック
１０３  ６４ＢｙｔｅデータブロックのタグＶＡＬＩＤ
２０１  ＣＰＵ−０
２０５  システム・コントローラＬＳＩ−０（ＳＣ−０）
２０７  メインメモリ（ＭＥＭ）
２１１  ２次キャッシュメモリ（Ｌ２−ＣＡＣＨＥ）
２１２  ２５６ＢｙｔｅデータエントリのタグＶＡＬＩＤ（リード要求実行前）
２１３  ２５６ＢｙｔｅデータエントリのタグＶＡＬＩＤ（リード要求実行後）
２５１  データ応答制御部
２９１  ＣＰＵ発行のリード要求
２９３  システム・コントローラＬＳＩ（ＳＣ）発行のリード要求
２９４  メインメモリ（ＭＥＭ）送出の応答データ
２９５  システム・コントローラＬＳＩ（ＳＣ）送出の応答データ
５０１  バックプレーン（ＢＰ）
５０２  システムボード（ＳＢ）
５０４  Ｉ／Ｏボード（ＩＯＢ）
５１１  クロスバ・スイッチＬＳＩ（ＸＢ）
５２１  システム・コントローラＬＳＩ（ＳＣ）
５４１  Ｉ／Ｏシステム・コントローラＬＳＩ（ＩＯＳＣ）
５６１  コネクタ
６２１  ＣＰＵ
６３１  メモリ・コントローラＬＳＩ（ＭＡＣ）
６４１  メモリ・モジュール（ＤＩＭＭ）
７０２  データ応答制御部
７１１  リクエスト・ポート−０（ＲＱＰＴ−０）
７１５  マルチプレクサ
７１６  システムボード・ポート−０（ＳＢＰＴ−０）
７２１  クロスバ・リクエスト・バッファ（ＸＢＲＱ）
７２２  ローカル・アクセス・パイプライン（ＬＯＣＡＬ−ＰＩＰＥＬＩＮＥ）
７２１  ２次キャッシュ・タグメモリのコピー（ＴＡＧ）
７２４  ３次キャッシュ・タグメモリ（Ｌ３−ＴＡＧ）
７２５  グローバル・アクセス・パイプライン（ＧＬＯＢＡＬ−ＰＩＰＥＬＩＮＥ）
７３１  オーダ・キュー−０（ＯＤＲＱ−０）
７３５  ロード・キュー（ＬＯＡＤＱ）
７４１  メモリ・ストレージ・キュー−０（ＭＳＱ−０）
７５１  リード・ポート（ＲＤＰＴ）
７５２  ３次キャッシュメモリ・パイプライン（Ｌ３ＤＴ−ＰＩＰＥ）
７５４  ３次キャッシュメモリ
７５６  ムーブ・イン・データ・キュー（ＭＩＤＱ）
８１１  ステージング・ラッチ
８２２  リード・ポート（ＲＤ−ＰＯＲＴ）
８２４  ライト・ポート（ＷＲ−ＰＯＲＴ）
８２５  出力レジスタ
８２７  コンパレータ（ＣＯＭＰＡＲＥ）
８２９  デコーダ（ＤＥＣＯＤＥ）
８４１  ＣＰＵリクエスト制御部（ＣＰＵ  ＲＥＱＵＥＳＴ  ＣＯＮＴＲＯＬ）
８４２  メモリリクエスト制御部（ＭＥＭ  ＲＥＱＵＥＳＴ  ＣＯＮＴＲＯＬ）
８４３  タグメモリ制御部
９５１  ３次キャッシュメモリ（Ｌ３−ＣＡＣＨＥ）
１０９２  ３次キャッシュメモリ送出の応答データ
【図１】
2006202215.tif 000003
【図２】
2006202215.tif 000004
【図３】
2006202215.tif 000005
【図４】
2006202215.tif 000006
【図５】
2006202215.tif 000007
【図６】
2006202215.tif 000008
【図７】
2006202215.tif 000009
【図８】
2006202215.tif 000010
【図９】
2006202215.tif 000011
【図１０】
2006202215.tif 000012
【図１１】
2006202215.tif 000013
【図１２】
2006202215.tif 000014
【図１３】
2006202215.tif 000015
【図１４】
2006202215.tif 000016
【図１５】
2006202215.tif 000017
【図１６】
2006202215.tif 000018
【図１７】
2006202215.tif 000019
【図１８】
2006202215.tif 000020
【図１９】
2006202215.tif 000021