(57)【要約】【課題】不必要なトランザクションを防止できるキャッシュ一貫性管理装置を提供する。【解決手段】キャッシュ一貫性管理装置は、複数のプロセッサの間から発生されるピンポンマイグレーションシーケンスをモニタリングするピンポンモニタリング部１１０、モニタリング結果に応じてピンポンマイグレーションシーケンスの連続発生回数をカウントするカウンティング部１３０、カウント結果を基にしてマイグレーションリクエストを非マイグラトーリシェアリング方式のリクエストに変更するリクエスト変更部１５０を含む。【選択図】図５
2011108233.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサの間で発生するピンポンマイグレーションシーケンスをモニタリングするピンポンモニタリング部と、
前記モニタリング結果に応じて前記ピンポンマイグレーションシーケンスの連続発生回数をカウントするカウンティング部と、
前記カウント結果を基にしてマイグレーションリクエストを非マイグラトーリシェアリング方式のリクエストに変更するリクエスト変更部を含むことを特徴とするキャッシュ一貫性管理装置。
【請求項２】
前記ピンポンモニタリング部は、前記モニタリング結果に応じて前記複数のプロセッサに適用される一貫性管理モードを変更することを特徴とする請求項１に記載のキャッシュ一貫性管理装置。
【請求項３】
前記一貫性管理モードは、マイグラトーリシェアリング方式が選択的に適用されることを特徴とする請求項２に記載のキャッシュ一貫性管理装置。
【請求項４】
前記非マイグラトーリシェアリング方式のリクエストは、共有リクエストを含むことを特徴とする請求項１から３のいずれかに記載のキャッシュ一貫性管理装置。
【請求項５】
前記カウンティング部は、
前記複数のプロセッサのそれぞれのタグラムに対応する複数のカウンタと、
所定の臨界値を貯蔵するレジスタと、
前記複数のカウンタからカウンティングされた結果が前記臨界値に達したか否かを判別する第１判別回路を含むことを特徴とする請求項１から４のいずれかに記載のキャッシュ一貫性管理装置。
【請求項６】
前記リクエスト変更部は、
前記複数のプロセッサから現在入力されたリクエストが前記マイグレーションリクエストであるか否かを判別する第２判別回路と、
前記第１判別回路の判別結果と前記第２判別回路の判別結果に応じて選択信号を発生する論理回路と、
前記選択信号に応じて前記現在入力されたマイグレーションリクエスト及び前記非マイグラトーリシェアリング方式のリクエストの中で１つを出力するリクエスト出力部を含むことを特徴とする請求項５に記載のキャッシュ一貫性管理装置。
【請求項７】
前記リクエスト出力部は、前記カウント結果が前記臨界値に達し、前記現在入力されたリクエストが前記マイグレーションリクエストである場合、前記非マイグラトーリシェアリング方式のリクエストを出力することを特徴とする請求項６に記載のキャッシュ一貫性管理装置。
【請求項８】
１つ以上のキャッシュをそれぞれ備えた複数のプロセッサと、
前記複数のプロセッサの間に発生されるピンポンマイグレーションシーケンスの連続発生回数をカウントし、前記カウント結果を基にして前記複数のプロセッサに対する一貫性管理モードを可変させるキャッシュ一貫性管理装置を含むことを特徴とする多重プロセッサ。
【請求項９】
複数のプロセッサの間に発生されるピンポンマイグレーションシーケンスの連続発生回数をカウントする段階と、
前記カウント結果を基にしてマイグレーションリクエストを非マイグラトーリシェアリング方式のリクエストに変更して対応するプロセッサに提供する段階を含むことを特徴とするキャッシュ一貫性管理方法。
【請求項１０】
前記カウント結果を基にして前記複数のプロセッサに適用される一貫性管理モードを変更する段階をさらに含むことを特徴とする請求項９に記載のキャッシュ一貫性管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピューティングシステムに関し、さらに詳しくは複数のコアを備えた多重プロセッサ用のキャッシュ一貫性管理装置及び方法に関する。
【背景技術】
【０００２】
多重プロセッサ（ｍｕｌｔｉ−ｐｒｏｃｅｓｓｏｒ）は並列プログラム等を処理する際、多く使用されるシステムの１つである。多重プロセッサに備えられた複数のプロセッサには、速度の速いプロセッサと速度の遅い主メモリ（ｍａｉｎ  ｍｅｍｏｒｙ）との間の実行速度の差を緩和させるためにキャッシュメモリ（ｃａｃｈｅ  ｍｅｍｏｒｙ）が使用される。
【０００３】
それぞれのプロセッサが固有のローカルキャッシュを有すると共に他のプロセッサ等とメモリを共有している場合、キャッシュの更新によるデータ不一致の問題が発生する。例えば、変数Ｘに対して二人のクライアントが変数Ｘを共有し、変数Ｘの値が０であると仮定する。このとき、第１プロセッサがＸに１を記入し、第２プロセッサが変数Ｘを読み込むと、第２プロセッサは第１プロセッサにより修正された１の値を有する変数Ｘを読み出してくるのではなく、現在自分の固有ローカルキャッシュにある０の値を有する変数Ｘを読み出してくる。従って、第１プロセッサに備えられた第１キャッシュと、第２プロセッサに備えられた第２キャッシュは同じ変数Ｘに対して互いに異なる値を有するので、第１及び第２プロセッサ間のデータ不一致（ｄａｔａ  ｉｎｃｏｎｓｉｓｔｅｎｃｙ）の問題が発生する。このようなデータ不一致の問題を解決するために、データ一貫性プロトコル（ｄａｔａ  ｃｏｈｅｒｅｎｃｅ  ｐｒｏｔｏｃｏｌ）が適用される。
【０００４】
特に、共有メモリを使用する多重プロセッサシステムにおいては、キャッシュメモリ等の間にデータ一貫性（ｄａｔａ  ｃｏｈｅｒｅｎｃｅ）の維持が必要である。多重プロセッサシステムに備えられた各プロセッサの動作を改善するためには、プロセッサの不必要な待機時間及びバストラフィックを減らし、キャッシュメモリの間にデータ一貫性を効率的に維持させる手法が要求される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第５，７１３，００４号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、多重プロセッサに適用されるキャッシュ一貫性管理動作の際、不必要なトランザクションを防止できるキャッシュ一貫性管理装置及び方法を提供することである。
【０００７】
本発明の他の目的は、異なるプロセッサの待機時間及びバストラフィックを減らして、多重プロセッサの動作性能を改善するキャッシュ一貫性管理装置及び方法を提供することである。
【課題を解決するための手段】
【０００８】
前記課題を解決するための本発明によるキャッシュ一貫性管理装置は、複数のプロセッサの間から発生されるピンポンマイグレーションシーケンスをモニタリングするピンポンモニタリング部と、前記モニタリング結果に応じて前記ピンポンマイグレーションシーケンスの連続発生回数をカウントするカウンティング部と、前記カウント結果を基にしてマイグレーションリクエストを非マイグラトーリシェアリング方式のリクエストに変更するリクエスト変更部を含む。
【０００９】
この実施形態において、前記ピンポンモニタリング部は前記モニタリング結果に応じて前記複数のプロセッサに適用される一貫性管理モードを変更する。
【００１０】
この実施形態において、前記一貫性管理モードは修正状態、排他的状態、共有状態及び無効状態を含むＭＥＳＩプロトコルを基にして構成される。
【００１１】
この実施形態において、前記一貫性管理モードはマイグラトーリシェアリング方式が選択的に適用される。
【００１２】
この実施形態において、前記リクエスト変更部は、前記カウント結果が所定の臨界値より大きい又は同じである場合、前記マイグレーションリクエストを前記非マイグラトーリシェアリング方式のリクエストに変更する。
【００１３】
この実施形態において、前記非マイグラトーリシェアリング方式のリクエストは共有リクエストを含む。
【００１４】
この実施形態において、前記ピンポンマイグレーションシーケンスは前記複数のプロセッサから提供されたリクエスト等によって行われる３段階の状態遷移を含む。
【００１５】
この実施形態において、前記カウンティング部は前記複数のプロセッサのそれぞれのタグラムに対応する複数のカウンタと、所定の臨界値を貯蔵するレジスタと、前記複数のカウンタからカウンティングされた結果が前記臨界値に達したか否かを判別する第１判別回路を含む。
【００１６】
この実施形態において、前記リクエスト変更部は前記複数のプロセッサから現在入力されたリクエストが前記マイグレーションリクエストであるか否かを判別する第２判別回路と、前記第１判別回路の判別結果と前記第２判別回路の判別結果に応じて選択信号を発生する論理回路と、前記選択信号に応じて前記現在入力されたマイグレーションリクエスト及び前記非マイグラトーリシェアリング方式のリクエストの中の１つを出力するリクエスト出力部を含む。
【００１７】
この実施形態において、前記リクエスト出力部は、前記カウント結果が前記臨界値に達し、前記現在入力されたリクエストが前記マイグレーションリクエストである場合、前記非マイグラトーリシェアリング方式のリクエストを出力する。
【００１８】
前記課題を解決するための本発明による多重プロセッサは、１つ以上のキャッシュをそれぞれ備えた複数のプロセッサと、前記複数のプロセッサの間に発生されるピンポンマイグレーションシーケンスの連続発生回数をカウントし、前記カウント結果を基にして前記複数のプロセッサに対する一貫性管理モードを可変するキャッシュ一貫性管理装置を含む。
【００１９】
この実施形態において、前記キャッシュ一貫性管理装置は、スヌープバスを通じて前記複数のプロセッサに接続される。
【００２０】
この実施形態において、前記ピンポンマイグレーションシーケンスは前記複数のプロセッサから提供されたリクエスト等によって行われる３段階の状態遷移を含む。
【００２１】
この実施形態において、前記一貫性管理モードはマイグラトーリシェアリング方式が選択的に適用される。
【００２２】
前記課題を解決するための本発明によるキャッシュ一貫性管理方法は、複数のプロセッサの間に発生されるピンポンマイグレーションシーケンスの連続発生回数をカウントする段階と、前記カウント結果を基にしてマイグレーションリクエストを非マイグラトーリシェアリング方式のリクエストに変更して対応するプロセッサに提供する段階を含む。
【００２３】
この実施形態において、前記カウント結果を基にして前記複数のプロセッサに適用される一貫性管理モードを変更する段階をさらに含む。
【００２４】
この実施形態において、前記一貫性管理モードはマイグラトーリシェアリング方式が選択的に適用される。
【００２５】
この実施形態において、前記ピンポンマイグレーションシーケンスは前記複数のプロセッサから提供されたリクエスト等によって３段階の状態遷移が１回行われたことに対応する。
【００２６】
この実施形態において、前記マイグレーションリクエストは、前記カウント結果が所定の臨界値より大きい又は同じである場合、前記非マイグラトーリシェアリング方式のリクエストに変更される。
【００２７】
この実施形態において、前記非マイグラトーリシェアリング方式のリクエストは共有リクエストを含む。
【発明の効果】
【００２８】
本発明によると、多重プロセッサのキャッシュ一貫性管理動作の際、プロセッサ等の間に不必要なトランザクションが発生しない。その結果、プロセッサの不必要な待機時間及びバストラフィックが減少して、多重プロセッサの動作特性が向上される。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施形態による多重プロセッサシステムを示すブロック図である。
【図２】一貫性管理プロトコルの１つであるＭＥＳＩプロトコルの状態遷移を示す図である。
【図３】多重プロセッサシステムの一貫性管理に非マイグラトーリシェアリング方式が適用されるときの状態遷移と、マイグラトーリシェアリング方式が適用されるときの状態遷移を示す図である。
【図４】多重プロセッサシステムの一貫性管理にマイグラトーリシェアリング方式が適用されるときと、非マイグラトーリシェアリング方式が適用されるときに発生するピンポン現象を説明するためのブロック図である。
【図５】本発明の実施形態によるＦＭＳＣの構成を示すブロック図である。
【図６】図１及び図５に示されたＦＭＳＣの詳細構成図である。
【図７】本発明の実施形態による一貫性管理方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００３０】
本発明は実施形態及び図面を参考にして、以下に、詳しく説明される。しかし、本発明の半導体ディスク装置の回路構成及び動作は一例にすぎないので、本発明の技術範囲内で様々に変形できるだろう。
【００３１】
本発明のキャッシュ一貫性管理装置はプロセッサ等の間から発生されるピンポン（ｐｉｎｇ−ｐｏｎｇ）現象をモニタリングし、モニタリングされた結果を基にして多重プロセッサに適用されるキャッシュ一貫性管理モードを可変させる。この技術構成によるとキャッシュ一貫性管理動作の際、プロセッサ等の間に不必要なトランザクションが発生しない。その結果、プロセッサの待機時間及びバストラフィックが減少され、多重プロセッサの動作特性が向上される。
【００３２】
図１は本発明の実施形態による多重プロセッサシステムの概略的な構成を示すブロック図である。
【００３３】
図１を参考にすると、多重プロセッサシステムは複数のプロセッサＰ０、Ｐ１を含む。プロセッサ等Ｐ０、Ｐ１はそれぞれ多重プロセッサシステム内でノードを形成する。図１には２個のプロセッサＰ０、Ｐ１が示されているが、これは本発明を説明するための一例であり、多重プロセッサシステムに備えられるプロセッサ等の個数（即ち、ノードの個数）は様々に構成できる。
【００３４】
それぞれのプロセッサＰｉ（ｉは正数）は中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ;ＣＰＵ）の機能を行なうコアＣｏｒｅｉ（ｉは正数）と、少なくとも１つ以上のキャッシュメモリＣａｃｈｅｉ（ｉは正数）を含む。キャッシュメモリＣａｃｈｅｉは、それぞれのプロセッサＰｉ内で階層構造（ｃａｃｈｅ  ｈｉｅｒａｃｈｙ）を有するように構成される。例えば、それぞれのプロセッサＰｉ内に具備されるキャッシュメモリＣａｃｈｅｉは、第１レベルキャッシュ（Ｌ１  ｃａｃhｅ）、第２レベルキャッシュ（Ｌ２  ｃａｃhｅ）、又は第３レベルキャッシュ（Ｌ３  ｃａｃhｅ）のような複数のキャッシュが階層的に構成される。後に説明される本発明のデータ一貫性（ｄａｔａ  ｃｏｈｅｒｅｎｃｅ）管理方法は、特定階層のキャッシュメモリだけでなく、様々な形態及び階層のキャッシュメモリのデータ一貫性管理に適用される。
【００３５】
複数のプロセッサＰ０、Ｐ１は内部バス（例えば、スヌープバス（ｓｎｏｏｐ  ｂｕｓ））を通じて一貫性管理部（ｃｏｈｅｒｅｎｃｅ  ｍａｎａｇｉｎｇ  ｕｎｉｔ;２００）と接続される。一貫性管理部２００は複数のプロセッサＰ０、Ｐ１に備えられている複数のキャッシュメモリＣａｃｈｅ０、Ｃａｃｈｅ１に対するデータ一貫性管理を行なう。一貫性管理部２００はスヌープバスを通じて複数のプロセッサＰ０、Ｐ１と共通に接続又はそれぞれのプロセッサＰ０、Ｐ１毎に備えられる。そして、一貫性管理部２００は共有バス（図示せず）を通じてメインメモリ及びＩ／Ｏ装置等と接続される。一貫性管理部２００の構成は特定形態に限らず様々に変更及び変形できる。
【００３６】
ＳＭＰ（Ｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉ−Ｐｒｏｃｅｓｓｏｒｓ）のような多重プロセッサでは、共有されたキャッシュメモリを１つのコアＣｏｒｅ０又はＣｏｒｅ１からだけ読み込んだり書き込んだりする方式が適用される。これをマイグラトーリオブジェクション（ｍｉｇｒａｔｏｒｙ  ｏｂｊｅｃｔｉｏｎ）方式又はマイグレーション（ｍｉｇｒａｔｉｏｎ）方式という。
【００３７】
マイグラトーリシェアリング方式又はマイグレーション方式が適用される場合、一貫性管理部２００とコア等Ｃｏｒｅ０、Ｃｏｒｅ１の間にマイグレーションリクエストが要求される。マイグレーションリクエストが要求されると、１つのコアＣｏｒｅ０から異なる１つのコアＣｏｒｅ１にデータを伝送するとき、元のデータを持っていたコアＣｏｒｅ０又はＣｏｒｅ１のキャッシュライン（ｃａｃhｅ  lｉｎｅ）を無効化（ｉｎｖａｌｉｄ）させる動作を行う。
【００３８】
マイグラトーリシェアリング方式は、ＭＳＩ基盤の一貫性制御手法（ＭＳＩ  ｂａsｅｄ  ｃｏｈｅｒｅｎｃｅ  ｐｏｌｉｃｙ）に従うプロトコルから頻繁に発生する記録無効化リクエスト（ｗｒｉｔｅ  ｉｎｖａｌｉｄ  ｒｅｑｕｅｓｔ）を減らすために提案された方式である。マイグラトーリシェアリング方式が適用される際、マイグラトーリシェアリング（mｉgｒａｔoｒy  ｓｈａｒｉｎｇ）ではないデータに対する接近（例えば、読み出し動作）が連続的に行なわれる場合、キャッシュミス（ｃａｃhｅ  ｍｉｓｓ）とトランザクション（例えば、マイグラトーリトランザクション（mｉgｒａｔoｒy  ｔｒａｎsａｃｔｉoｎ）等）が頻繁に発生してシステムの性能が低下する。このように、複数のプロセッサの間で不必要なトランザクション等が交互に発生される現象をピンポン（ｐｉｎｇ−ｐｏｎｇ）現象と言う。
【００３９】
本発明ではこのような問題を解決するために、一貫性管理部２００にＦＭＳＣ（Ｆａｌｓｅ  Ｍｉｇｒａｔｏｒｙ  Ｓｈａｒｉｎｇ  Ｃｏｎｔｒｏｌｌｅｒ;１００）を具備する。ＦＭＳＣ１００は一貫性管理部２００によって行なわれるキャッシュ一貫性管理動作の際、多重プロセッサ等に対する一貫性管理動作にマイグレーション（ｍｉｇｒａｔｉｏｎ）方式（即ち、マイグラトーリシェアリング方式）が選択的に適用されるように制御される。実施形態において、本発明のＦＭＳＣ１００はプロセッサ等の間から発生されるピンポン現象をモニタリングし、モニタリングされた結果を基にしてマイグレーションリクエストを非マイグラトーリシェアリング方式のリクエスト（例えば、共有リクエスト）に移行させる。このような技術構成によると、キャッシュ一貫性管理動作の際、プロセッサ等の間に不必要なトランザクションが発生しない。その結果、プロセッサの待機時間及びバストラフィックを減らすことができ、多重プロセッサの動作性能が効果的に向上される。
【００４０】
図２は一貫性管理プロトコルの中の１つであるＭＥＳＩプロトコルの状態遷移を示す図面である。
【００４１】
図２を参考にすると、ＭＥＳＩプロトコルは４個のキャッシュ状態を有する。例えば、修正（ｍｏｄｉｆｉｅｄ;Ｍ）状態、排他的（ｅｘｃｌｕｓｉｖｅ;Ｅ）状態、共有（ｓｈａｒｅｄ;Ｓ）状態及び無効（ｉｎｖａｌｉｄ;Ｉ）状態を有する。
【００４２】
修正状態Ｍは該当キャッシュから行なった書き込み（ｗｒｉｔｅ）動作により、キャッシュメモリに貯蔵されていたデータが修正されたことを意味する。排他的状態Ｅは該当キャッシュ内のデータだけ有効にし、異なるキャッシュのデータは有効ではないことを意味する。共有状態Ｓはデータが２つ以上のプロセッサのキャッシュ等に貯蔵されていることを意味する。キャッシュラインが共有状態Ｓにあると、該当キャッシュのデータと、前記データを共有する異なるキャッシュのデータも全部有効である。無効状態Ｉは該当キャッシュのデータが有効ではないことを意味する。例えば、共有状態Ｓにある２つのキャッシュの中の１つのキャッシュでデータが修正された場合、修正されてない他のキャッシュのデータは無効状態Ｉに進んで該当データが無効化される。
【００４３】
ＭＥＳＩプロトコルはＭＳＩプロトコルを基にする。ＭＳＩプロトコルを基にする一貫性管理プロトコルはＭＥＳＩ、ＭＯＳＩ、ＭＯＳＥＩ等がある。後で詳しく説明されるが、本発明ではＭＥＳＩプロトコルにマイグラトーリシェアリング方式が追加された一貫性管理プロトコルが適用され、前記マイグラトーリシェアリング方式はプロセッサ等の間に発生されるトランザクションの回数によって選択的に適用される。実施形態において、マイグラトーリシェアリング方式はＭＥＳＩプロトコル以外に異なる種類のプロトコルも適用可能である。
【００４４】
図３は多重プロセッサシステムの一貫性管理に非マイグラトーリシェアリング方式が適用されたときの状態遷移と、マイグラトーリシェアリング方式が適用されたときの状態遷移を示す図面である。図３にはＭＥＳＩプロトコルにマイグラトーリシェアリング方式が適用された場合と、マイグラトーリシェアリング方式が適用されていない場合（即ち、非マイグラトーリシェアリング方式）が例示されている。
【００４５】
先に、一貫性管理に非マイグラトーリシェアリング方式（例えば、マイグラトーリシェアリング方式が適用されないＭＥＳＩプロトコル）の場合、‘ａｂｃｄ’のデータが貯蔵された第１プロセッサＰ０のキャッシュは排他的状態Ｅになる。そして、有効データが貯蔵されていない第２プロセッサＰ１のキャッシュは無効状態Ｉになる。第２プロセッサＰ１が第１プロセッサＰ０のキャッシュからデータを読み出してくる場合、第２プロセッサＰ１は第１プロセッサＰ０に読み出しリクエスト（Ｒｅａｄ  Ｒｅｑｕｅｓｔ）を要求する（矢印丸１参照）。その後、第１プロセッサＰ０のキャッシュから‘ａｂｃｄ’のデータを読み出してくる（矢印丸２参照）。第１及び第２プロセッサＰ０、Ｐ１の間から行なわれる読み出しリクエスト動作はスヌープバスを通じて行なわれる。一貫性管理部２００はスヌープバスを通じて要求された読み出しリクエストを感知し、感知結果を基にして読み出し動作が行なわれた第２プロセッサＰ１のキャッシュを無効状態Ｉから共有状態Ｓに変更する。そして、データが読み出された第１プロセッサＰ０のキャッシュを排他的状態Ｅから共有状態Ｓに変更する。
【００４６】
第１及び第２プロセッサＰ０、Ｐ１のキャッシュが共有された状態で第２プロセッサＰ１のキャッシュに貯蔵されたデータを‘ａｂｃｄ’から‘ｅｆｇｈ’に修正しようとする場合、第２プロセッサＰ１はまずスヌープバスを通じて第１プロセッサＰ０に無効化リクエスト（Ｉｎｖａｌｉｄ  Ｒｅｑｕｅｓｔ）を伝送する（矢印丸３参照）。一貫性管理部２００はスヌープバスを通じて要求された無効化リクエストを感知し、感知結果を基にして第１プロセッサＰ０のキャッシュを共有状態Ｓから無効状態Ｉに変更する。第２プロセッサＰ１のキャッシュは、第１プロセッサＰ０のキャッシュが無効状態Ｉに変更された後、第２プロセッサＰ１のキャッシュに貯蔵されたデータを‘ａｂｃｄ’から‘ｅｆｇｈ’に修正する。その後、第２プロセッサＰ１のキャッシュの状態は一貫性管理部２００の制御によって共有状態Ｓから修正状態Ｍに変更される。仮に、このような状態で第２プロセッサＰ１のキャッシュに貯蔵されたデータを異なる値に再修正する場合、第２プロセッサＰ１のキャッシュの状態は修正状態Ｍをそのまま維持しながらデータ値だけを修正する。
【００４７】
続いて、マイグラトーリシェアリング方式の場合、‘ａｂｃｄ’のデータが貯蔵された第１プロセッサＰ０のキャッシュは排他的状態Ｅになる。そして、有効データが貯蔵されていない第２プロセッサＰ１のキャッシュは無効状態Ｉになる。第２プロセッサＰ１が第１プロセッサＰ０のキャッシュからデータを読み出してくる場合、第２プロセッサＰ１は第１プロセッサＰ０にマイグレーションリクエスト（Ｍｉｇｒａｔｉｏｎ  Ｒｅｑｕｅｓｔ）を要求する（矢印丸４参照）。その後、第１プロセッサＰ０のキャッシュから‘ａｂｃｄ’のデータを読み出してくる（矢印丸５参照）。第１及び第２プロセッサＰ０、Ｐ１の間で行なわれる読み出しリクエスト動作はスヌープバスを通じて行なわれる。一貫性管理部２００はスヌープバスを通じて要求されたマイグレーションリクエストを感知し、感知結果を基にしてデータが読み出された第１プロセッサＰ０のキャッシュを排他的状態Ｅから無効状態Ｉに変更する。そして、データを読み出してきた第２プロセッサＰ１のキャッシュを無効状態Ｉから排他的状態Ｅに変更する。
【００４８】
この状態で、第２プロセッサＰ１のキャッシュに貯蔵されたデータを‘ａｂｃｄ’から‘ｅｆｇｈ’に修正しようとする場合、第２プロセッサＰ１は何のリクエストも発生させなく、データを直接‘ａｂｃｄ’から‘ｅｆｇｈ’に修正する。この場合、第２プロセッサＰ１のキャッシュの状態は一貫性管理部２００の制御によって排他的状態Ｅから修正状態Ｍに変更される。仮に、このような状態で、第２プロセッサＰ１のキャッシュに貯蔵されたデータを異なる値に再修正する場合、第２プロセッサＰ１のキャッシュの状態は修正状態Ｍをそのまま維持しながらデータ値だけを修正する。
【００４９】
図３に示されたように、マイグラトーリシェアリング方式が適用された場合、キャッシュに対する書き込み動作から発生される無効化リクエスト（Ｉｎｖａｌｉｄ  Ｒｅｑｕｅｓｔ）（即ち、記録無効化リクエスト（ｗｒｉｔｅ  ｉｎｖａｌｉｄ  ｒｅｑｕｅｓｔ））が要らない。記録無効化リクエストの減少はプロセッサの不必要な待機時間及びバストラフィックを減らす効果がある。しかし、一貫性管理にマイグラトーリシェアリング方式が適用される場合、マイグラトーリシェアリング（mｉgｒａｔoｒy  ｓｈａｒｉｎｇ）ではないデータに対する接近（例えば、読み出し動作）が連続的に行なわれるときには、不必要なトランザクション（例えば、マイグラトーリトランザクション等）によるピンポン現象が発生する。
【００５０】
図４は多重プロセッサシステムの一貫性管理にマイグラトーリシェアリング方式が適用されたときと、非マイグラトーリシェアリング方式が適用されたときに発生できるピンポン現象を説明するための図面である。図４にはＭＥＳＩプロトコルにマイグラトーリシェアリング方式が適用される場合と、マイグラトーリシェアリング方式が適用されない場合（即ち、非マイグラトーリシェアリング方式）が例示されている。
【００５１】
初期状態の第１プロセッサＰ０のキャッシュには‘ａｂｃｄ’のデータが貯蔵されていて、第２プロセッサＰ１のキャッシュには無効のデータ‘ｘｘｘｘ’が貯蔵されているものと仮定する。この場合、‘ａｂｃｄ’のデータが貯蔵された第１プロセッサＰ０のキャッシュは排他的状態Ｅになる。そして、有効データが貯蔵されていない第２プロセッサＰ１のキャッシュは無効状態Ｉになる。
【００５２】
先に、マイグラトーリシェアリング方式が適用される場合について説明する。第２プロセッサＰ１が第１プロセッサＰ０のキャッシュからデータを読み出してくる場合、第２プロセッサＰ１は第１プロセッサＰ０にマイグレーションリクエスト（Ｍｉｇｒａｔｉｏｎ  Ｒｅｑｕｅｓｔ）を要求する（矢印丸６参照）。その後、第１プロセッサＰ０のキャッシュから‘ａｂｃｄ’のデータを読み出してくる。第１及び第２プロセッサＰ０、Ｐ１の間で行なわれる読み出しリクエスト動作はスヌープバスを通じて行なわれる。一貫性管理部２００はスヌープバスを通じて要求されたマイグレーションリクエストを感知し、感知結果を基にしてデータが読み出された第１プロセッサＰ０のキャッシュを排他的状態Ｅから無効状態Ｉに変更する。そして、データを読み出してきた第２プロセッサＰ１のキャッシュを無効状態Ｉから排他的状態Ｅに変更する。
【００５３】
この状態で、第１プロセッサＰ０が第２プロセッサＰ１のキャッシュからデータを読み出してくる場合、第１プロセッサＰ０は第２プロセッサＰ１に共有リクエスト（Ｓｈａｒｅｄ  Ｒｅｑｕｅｓｔ）を要求する（矢印丸７参照）。その後、第２プロセッサＰ１のキャッシュから‘ａｂｃｄ’のデータを読み出してくる。第１及び第２プロセッサＰ０、Ｐ１の間で行なわれる読み出しリクエスト動作はスヌープバスを通じて行なわれる。一貫性管理部２００はスヌープバスを通じて要求されたシェアリングリクエストを感知し、感知結果を基にしてデータが読み出された第２プロセッサＰ１のキャッシュを排他的状態Ｅから共有状態Ｓに変更する。そして、データを読み出してきた第１プロセッサＰ０のキャッシュを無効状態Ｉから共有状態Ｓに変更する。
【００５４】
第１及び第２プロセッサＰ０、Ｐ１のキャッシュのデータが共有された状態で第１プロセッサＰ０のキャッシュに貯蔵されたデータを‘ａｂｃｄ’から‘ｅｆｇｈ’に修正しようとする場合、第１プロセッサＰ０はまずスヌープバスを通じて第２プロセッサＰ１に無効化リクエスト（Ｉｎｖａｌｉｄ  Ｒｅｑｕｅｓｔ）を伝送する（矢印丸８参照）。一貫性管理部２００はスヌープバスを通じて要求された無効化リクエストを感知し、感知結果を基にして第２プロセッサＰ１のキャッシュを共有状態Ｓから無効状態Ｉに変更する。第１プロセッサＰ０のキャッシュは、第２プロセッサＰ１のキャッシュが無効状態Ｉに変更された後、第１プロセッサＰ０のキャッシュに貯蔵されたデータを‘ａｂｃｄ’から‘ｅｆｇｈ’に修正する。その後、第１プロセッサＰ０のキャッシュの状態は一貫性管理部２００の制御によって共有状態Ｓから修正状態Ｍに変更される。
【００５５】
続いて、多重プロセッサシステムの一貫性管理に非マイグラトーリシェアリング方式が適用される場合について説明する。
【００５６】
同じ初期状態で、‘ａｂｃｄ’のデータが貯蔵された第１プロセッサＰ０のキャッシュは排他的状態Ｅになる。そして、有効データが貯蔵されていない第２プロセッサＰ１のキャッシュは無効状態Ｉになる。この状態で、第２プロセッサＰ１が第１プロセッサＰ０のキャッシュからデータを読み出してくる場合、第２プロセッサＰ１は第１プロセッサＰ０に読み出しリクエスト（Ｒｅａｄ  Ｒｅｑｕｅｓｔ）を要求する（矢印丸９参照）。その後、第１プロセッサＰ０のキャッシュから‘ａｂｃｄ’のデータを読み出してくる。第１及び第２プロセッサＰ０、Ｐ１の間で行なわれる読み出しリクエスト動作はスヌープバスを通じて行なわれる。一貫性管理部２００はスヌープバスを通じて要求された読み出しリクエストを感知し、感知結果を基にして読み出し動作が行なわれた第２プロセッサＰ１のキャッシュを無効状態Ｉから共有状態Ｓに変更する。そして、データが読み出された第１プロセッサＰ０のキャッシュを排他的状態Ｅから共有状態Ｓに変更する。
【００５７】
第１及び第２プロセッサＰ０、Ｐ１のキャッシュが共有された状態で第１プロセッサＰ０が第２プロセッサＰ１のキャッシュからデータを読み出してくる場合、第１プロセッサＰ０は何のリクエストも発生させないで第２プロセッサＰ１のキャッシュから‘ａｂｃｄ’のデータを読み出してくる。この場合、第１及び第２プロセッサＰ０、Ｐ１は共有状態Ｓをそのまま維持する。
【００５８】
第１及び第２プロセッサＰ０、Ｐ１のキャッシュが共有された状態で第１プロセッサＰ０のキャッシュに貯蔵されたデータを‘ａｂｃｄ’から‘ｅｆｇｈ’に修正しようとする場合、第１プロセッサＰ０はまずスヌープバスを通じて第２プロセッサＰ１に無効化リクエスト（Ｉｎｖａｌｉｄ  Ｒｅｑｕｅｓｔ）を伝送する（矢印丸１０参照）。一貫性管理部２００はスヌープバスを通じて要求された無効化リクエストを感知し、感知結果を基にして第２プロセッサＰ１のキャッシュを共有状態Ｓから無効状態Ｉに変更する。第１プロセッサＰ０のキャッシュは、第２プロセッサＰ１のキャッシュが無効状態Ｉに変更された後、第１プロセッサＰ０のキャッシュに貯蔵されたデータを‘ａｂｃｄ’から‘ｅｆｇｈ’に修正する。その後、第１プロセッサＰ０のキャッシュの状態は一貫性管理部２００の制御によって共有状態Ｓから修正状態Ｍに変更される。
【００５９】
図４に示されたように、一貫性管理にマイグラトーリシェアリング方式が適用される場合、マイグラトーリシェアリング（ｍｉｇｒａｔｏｒｙ  ｓｈａｒｉｎｇ）ではないデータ（例えば、図４の矢印丸６参照）に対する接近（例えば、読み出し動作）が行なわれるときには、不必要なトランザクション等によってピンポン現象が発生する。マイグラトーリシェアリング方式が適用される際、発生される不必要なトランザクションはＦＭＴ（ｆａｌｓｅ  ｍｉｇｒａｔｏｒｙ  ｔｒａｎｓａｃｔｉｏｎ）と呼ばれる。
【００６０】
本発明では不必要なトランザクションが連続して発生される問題を解決するために、一種類の一貫性管理方式又はプロトコルを固定して適用しないで、少なくとも２つの一貫性管理方式等（例えば、マイグラトーリシェアリング方式が適用されるものと、適用されないもの）を選択的に用いる構成を有する。このために、本発明のＦＭＳＣ１００はキャッシュ一貫性管理動作の際、プロセッサ等の間から発生されるピンポン現象をモニタリングし、モニタリングされた結果を基にしてマイグレーションリクエストを異なるリクエスト（例えば、共有リクエスト）に可変させる。これはキャッシュメモリ等の一貫性管理にマイグレーション（ｍｉｇｒａｔｉｏｎ）方式（即ち、マイグラトーリシェアリング方式）が選択的に適用されるように一貫性管理部２００の一貫性管理モードを変更することを意味する。
【００６１】
図５は本発明の実施形態によるＦＭＳＣ１００の構成を示すブロック図である。
【００６２】
図５を参考にすると、ＦＭＳＣ１００はピンポンモニタリング部（ｐｉｎｇ−ｐｏｎｇ  ｍｏｎｉｔｏｒｉｎｇ  ｕｎｉｔ;１１０）、カウンティング部（ｃｏｕｎｔｉｎｇ  ｕｎｉｔ;１３０）及びリクエスト変更部（ｒｅｑｕｅｓｔ  ｍｏｄｉｆｙｉｎｇ  ｕｎｉｔ;１５０）から構成される。
【００６３】
ピンポンモニタリング部１１０は複数のプロセッサＰ０、Ｐ１に備えられている複数のコア等Ｃｏｒｅ０、Ｃｏｒｅ１から繰り返して発生されるトランザクションによるピンポン現象をモニタリングする。ピンポン現象はピンポンマイグレーションシーケンスの発生を感知することによってモニタリングできる。ピンポンモニタリング部１１０はピンポンマイグレーションシーケンスの感知結果によって一貫性管理部２００の一貫性管理モードを変更する。実施形態において、ピンポンモニタリング部１１０から行なわれたモニタリング結果によって、多重プロセッサに適用される一貫性管理モードにマイグラトーリシェアリング方式が選択的に適用される。
【００６４】
なお、ピンポンモニタリング部１１０は、ピンポンマイグレーションシーケンスの感知結果に応じてカウンティング部１３０のカウンティング動作を制御する。例えば、ピンポンモニタリング部１１０は、ピンポンマイグレーションシーケンスが連続して発生しない場合、カウンティング部１３０のカウンティング動作を初期化する。カウンティング部１３０はピンポンモニタリング部１１０から発生されたカウントアップ制御信号に応じて、ピンポンマイグレーションシーケンスの発生回数をカウントする。カウンティング部１３０のカウント結果はリクエスト変更部１５０に提供される。カウンティング部１３０のカウンティング値はピンポンモニタリング部１１０の制御によって初期化される。ピンポンモニタリング部１１０はカウンティング部１３０のカウンティング値を初期化する動作の他に、カウンティング部１３０のカウンティング値を増加又は減少させる制御信号（例えば、カウントアップ制御信号、カウントダウン制御信号）を発生する。このような構成によると、ピンポンモニタリング部１１０の制御によってカウンティング部１３０のカウンティング値が調節される。
【００６５】
リクエスト変更部１５０は、複数のプロセッサＰ０、Ｐ１から提供されたリクエストとカウンティング部１３０のカウント結果に応じて、現在入力されたマイグレーションリクエストを異なる種類のリクエスト（例えば、共有リクエスト）に選択的に切り替え（ｒｅｐｌａｃｅ）又は変更（ｍｏｄｉｆｙ）させる。リクエスト変更部１５０によって選択的に切り替え又は変更されたリクエストはスヌープバスを通じてプロセッサ等に提供される。例えば、リクエスト変更部１５０はカウンティング部１３０のカウント結果が所定の臨界値ＴＨ以上である場合、現在入力されたマイグレーションリクエストを非マイグラトーリシェアリング方式のリクエストに切り替え又は変更して、前記リクエストに対応されるプロセッサに提供する。そして、リクエスト変更部１５０はカウンティング部１３０のカウント結果が所定の臨界値ＴＨより小さい場合は、現在入力されたマイグレーションリクエストをそのまま対応するプロセッサに提供する。即ち、リクエスト変更部１５０から出力されるリクエストは、複数のプロセッサの中で少なくとも１つから提供された元のリクエスト又はリクエスト変更部１５０から切り替えられたリクエストである。
【００６６】
図６は図１及び図５に示された本発明の実施形態によるＦＭＳＣ１００の詳細構成図である。
【００６７】
図６を参考にすると、ピンポンモニタリング部１１０は複数のプロセッサＰ０、Ｐ１から要求されたリクエスト（例えば、マイグレーションリクエスト、読み出し共有リクエスト等）に応じて、ピンポンマイグレーションシーケンスを感知する。１つのピンポンマイグレーションシーケンスは３個の状態からなる。ピンポンモニタリング部１１０から管理される３個の状態に対する遷移が順に行なわれた後に、始めて１個のピンポンマイグレーションシーケンスが発生されたことを認識する。ピンポンモニタリング部１１０は１個のピンポンマイグレーションシーケンスが発生される毎にカウンティング部１３０にカウントアップ制御信号を発生させる。ピンポンマイグレーションシーケンスを構成する３個の状態等と、これを制御するピンポンモニタリング部１１０の動作を続いて説明する。
【００６８】
実施形態において、第１状態ＳｔａｔｅIはピンポンマイグレーションシーケンスの初期状態を意味する。第１状態ＳｔａｔｅIから、リクエスト変更部１５０を通じてマイグレーションリクエストが入力されると、ピンポンモニタリング部１１０はピンポンマイグレーションシーケンスの状態を第１状態ＳｔａｔｅIから第２状態ＳｔａｔｅIIに変更する。一方、第１状態ＳｔａｔｅIから、リクエスト変更部１５０を通じてマイグレーションリクエスト以外のリクエストが入力されると、ピンポンモニタリング部１１０はカウンティング部１３０のカウント結果をリセットする。この場合、ピンポンマイグレーションシーケンスの状態は第１状態ＳｔａｔｅIに維持される。また、ピンポンモニタリング部１１０は連続して発生されるピンポンマイグレーションシーケンスの個数をカウントするようにカウンティング部１３０のカウンティング動作を制御する。
【００６９】
第２状態ＳｔａｔｅIIで、リクエスト変更部１５０を通じて共有リクエスト（Ｓｈａｒｅｄ  Ｒｅｑｕｅｓｔ）が入力されると、ピンポンモニタリング部１１０はピンポンマイグレーションシーケンスの状態を第２状態ＳｔａｔｅIIから第３状態ＳｔａｔｅIIIに変更する。第２状態ＳｔａｔｅIIで、リクエスト変更部１５０を通じてマイグレーションリクエスト以外のリクエストが入力されると、ピンポンモニタリング部１１０はカウンティング部１３０のカウント結果をリセットし、ピンポンマイグレーションシーケンスの状態を第２状態ＳｔａｔｅIIから第１状態ＳｔａｔｅIに変更する。
【００７０】
第３状態ＳｔａｔｅIIIで、リクエスト変更部１５０を通じて無効化リクエスト（Ｉｎｖａｌｉｄａｔｅ  Ｒｅｑｕｅｓｔ）が入力されると、ピンポンモニタリング部１１０はカウントアップ制御信号を発生してカウンティング部１３０のカウント結果を増加（ｃｏｕｎｔｉｎｇ  ｕｐ）させ、ピンポンマイグレーションシーケンスの状態を第３状態ＳｔａｔｅIIIから第１状態ＳｔａｔｅIに変更する。そして、第３状態ＳｔａｔｅIIIで、リクエスト変更部１５０を通じてマイグレーションリクエスト以外のリクエストが入力された場合は、ピンポンモニタリング部１１０はカウンティング部１３０のカウント結果をリセットし、ピンポンマイグレーションシーケンスの状態を第３状態ＳｔａｔｅIIIから第１状態ＳｔａｔｅIに変更する。先に説明したように、本発明の実施形態によるピンポンマイグレーションシーケンスは、初期状態である第１状態から順に第２状態及び第３状態を経て再び第１状態に戻る。このような３段階の状態遷移は１個のピンポンマイグレーションシーケンスを構成する。
【００７１】
カウンティング部１３０は複数のカウンタ１３１と、レジスタ１３３、そして、第１判別回路１３５を含む。実施形態において、それぞれのカウンタ等１３１はそれぞれのプロセッサＰｉ（ｉは正数）に備えられたキャッシュＣａｃｈｅｉのタグラム（ｔａｇ  ＲＡＭ）に各々対応される。カウンタ等１３１はサチュレーションカウンタ（ｓａｔｕｒａｔｉｏｎ  ｃｏｕｎｔｅｒ）から構成され、ピンポンマイグレーションシーケンスの連続発生回数をカウントする。カウンタからカウントされるデータ及びカウンティングされた結果のビット数は様々に構成可能である。
【００７２】
レジスタ１３３にはカウンタ等１３１からカウンティングされた値と比較される所定の臨界値ＴＨが貯蔵される。実施形態において、臨界値ＴＨはアプリケーション（Ａｐｐｌｉｃａｔｉｏｎ）又はオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ;ＯＳ）によって設定される。臨界値ＴＨは一貫性管理モードの変更基準（例えば、マイグラトーリシェアリング方式の適用可否の基準）になる値として、許容可能なピンポンマイグレーションシーケンスの連続発生回数が貯蔵される。前記臨界値ＴＨは特定値に限定されず、多重プロセッサシステムの動作特性によって様々な値に設定及び変更可能である。
【００７３】
第１判別回路１３５はカウンタ等１３１からカウンティングされた値が所定値（即ち、臨界値ＴＨ）に達したか否かを判別するよう構成される。実施形態において、第１判別回路１３５は、レジスタ１３３に貯蔵されている臨界値ＴＨとカウンタ等１３１からカウンティングされた値を比較して比較結果をリクエスト変更部１５０に提供する。第１判別回路１３５はカウンタ等１３１からカウンティングされた値がレジスタ１３３に貯蔵されている臨界値ＴＨと同じである場合（又は大きかったり同じである場合）、第１論理値を有する制御信号をリクエスト変更部１５０に提供する。そして、第１判別回路１３５はカウンタ等１３１からカウンティングされた値がレジスタ１３３に貯蔵されている臨界値ＴＨと同じではない場合（又は臨界値より小さい場合）、第２論理値を有する制御信号をリクエスト変更部１５０に提供する。
【００７４】
一方、本発明のＦＭＳＣ１００は一貫性管理部２００内に備えられる。従って、ＦＭＳＣ１００に提供されるリクエスト及びデータ等は一貫性管理部２００の内部回路（例えば、リクエスト入力部２０１、タグ判別部２０３）を通じて提供されるように構成される。リクエスト入力部２０１及びタグ判別部２０３の構成は特定形態に限らず様々に変更できる。実施形態において、図６に示されたリクエスト入力部２０１及びタグ判別部２０３は一貫性管理部２００内に備えられても良いし、ＦＭＳＣ１００内に備えられても良い。
【００７５】
リクエスト入力部２０１は複数のプロセッサの中で少なくとも１つから提供されるリクエストを受け入れて、これをピンポンモニタリング部１１０及びリクエスト変更部１５０に提供する。
【００７６】
実施形態において、リクエスト入力部２０１はマルチプレクサから構成される。リクエスト入力部２０１の出力は一貫性管理部２００に備えられたタグ判別部２０３から発生された選択信号によって制御される。タグ判別部２０３は複数のプロセッサの中で少なくとも１つから入力されたリクエストに対応するタグの値と、それぞれのプロセッサのキャッシュに対応するタグラムアレイに貯蔵されているタグ値を比較する。タグ判別部２０３はタグラムアレイに貯蔵されているタグ値と、入力されたリクエストに対応するタグの値が一致する場合、リクエスト入力部２０１がプロセッサから入力されたリクエストをピンポンモニタリング部１１０及びリクエスト変更部１５０に出力するよう選択信号を活性化する。タグ判別部２０３から出力される選択信号はピンポンモニタリング部１１０にも提供されて、リクエストが入力されたことを知らせる。
【００７７】
リクエスト変更部１５０は第２判別回路１５１、論理回路１５３、及びリクエスト出力部１５５を含む。第２判別回路１５１はリクエスト入力部２０１から提供されたリクエストがマイグレーションリクエストであるか否かを判別する。論理回路１５３は第１判別回路１３５の判別結果と第２判別回路１５１の判別結果に対する論理演算（例えば、論理ＡＮＤ演算等）を行なう。論理回路１５３から行なわれた論理演算結果はリクエスト出力部１５５に選択信号として提供される。
【００７８】
リクエスト出力部１５５は、論理回路１５３から提供された選択信号に応じて、リクエスト入力部２０１を通じて入力されたリクエストと共有リクエスト（Ｓｈａｒｅｄ  Ｒｅｑｕｅｓｔ）の中で何れか１つを前記リクエストに対応するプロセッサに出力する。実施形態において、リクエスト出力部１５５はマルチプレクサから構成される。リクエスト出力部１５５の出力は、論理回路１５３から発生された選択信号によって制御される。例えば、カウンタ１３１からカウンティングされた結果が所定の臨界値ＴＨに達した状態でマイグレーションリクエストが入力された場合、リクエスト出力部１５５は論理回路１５３から発生された選択信号に応じてプロセッサから入力されたマイグレーションリクエストの代わりに共有リクエスト（Ｓｈａｒｅｄ  Ｒｅｑｕｅｓｔ）を出力する。
【００７９】
その他の場合、リクエスト出力部１５５は論理回路１５３から発生された選択信号に応じてリクエスト入力部２０１から提供されたリクエストを対応するプロセッサに出力する。
【００８０】
このような構成によると、多重プロセッサ等の間から発生されるピンポン現象のモニタリング結果によってキャッシュ一貫性管理モードが可変されるだけでなく、これに対応するリクエストまたは可変された一貫性管理モードに対応するよう可変される。本発明の一貫性管理モードの可変によると、マイグラトーリシェアリング方式を選択的に用いるので、多重プロセッサ等の間に不必要なトランザクションが発生し難い。従って、プロセッサの待機時間及びバストラフィックが減少される。バストラフィックの減少はバス利用度（ｂｕｓ  ｕｔｉｌｉｚａｔｉｏｎ）を向上できる。従って、多重プロセッサの動作性能が改善される。
【００８１】
一方、本発明の実施形態において、一貫性管理モードの変換に利用される臨界値ＴＨはいつでも修正可能であるよう構成される。従って、アプリケーションが変更されても前記臨界値ＴＨは自由に変更できる。以上、説明した本発明のＦＭＳＣ１００はハードウェアから構成できる。しかし、これは本発明が適用される１つの例であり、本発明のＦＭＳＣ１００の少なくとも一部はファームウェア又はミドルウェアから構成しても良い。
【００８２】
図７は本発明の実施形態による一貫性管理方法を説明するためのフローチャート図である。
【００８３】
図７を参考にすると、本発明の一貫性管理方法はピンポンモニタリング部１１０を通じて複数のプロセッサＰ０、Ｐ１に備えられている複数のコア等Ｃｏｒｅ０、Ｃｏｒｅ１から発生されるピンポンマイグレーションシーケンスの発生様態を連続的にモニタリングする（Ｓ１１００段階）。連続的なピンポンマイグレーションシーケンスのモニタリングを通じてプロセッサ等の間から発生される連続的なトランザクション、即ち、ピンポン現象がモニタリングされる。本発明の実施形態において、ピンポンマイグレーションシーケンスは３個の状態から構成される。本発明では３段階の状態等に対する遷移が１回行なわれることをピンポンマイグレーションシーケンスが１回発生することと定義する。
【００８４】
Ｓ１１００段階で行なわれたモニタリング結果によって、多重プロセッサに適用される一貫性管理モードにマイグラトーリシェアリング方式が選択的に適用される。一貫性管理モードの変更はピンポンモニタリング部１１０の制御によって行なわれる。
【００８５】
連続的なピンポンマイグレーションシーケンスの発生回数はカウンティング部１３０を通じてカウントされる（Ｓ１３００段階）。カウンティング部１３０のカウンティング動作はピンポンモニタリング部１１０によって制御される。カウンティング部１３０を通じてカウントされた結果は所定の臨界値ＴＨより大きい又は同じであるか否かを判別する（Ｓ１４００段階）。Ｓ１４００段階の判別結果、カウンティング部１３０のカウント結果が所定の臨界値ＴＨより大きい又は同じである場合、プロセッサから提供されたマイグレーションリクエストはリクエスト変更部１５０によって非マイグラトーリリクエスト、例えば、共有リクエストに切り替え（ｒｅｐｌａｃｅ）又は変更（ｍｏｄｉｆｙ）される（Ｓ１５００段階）。この場合、リクエスト変更部１５０は、プロセッサから入力されたマイグレーションリクエストの代わりにＳ１５００段階で切り替え又は変更されたリクエストを対応するプロセッサに提供する。マイグレーションリクエストを非マイグラトーリリクエストに変更又は切り替えることは、一貫性管理モードにマイグラトーリシェアリング方式が適用されないよう制御することを意味する。一方、Ｓ１４００段階の判別結果、カウンティング部１３０のカウント結果が所定の臨界値ＴＨより小さい場合、プロセッサから提供されたリクエストは切り替え又は変更されないまま終了される。この場合、リクエスト変更部１５０はプロセッサから入力されたマイグレーションリクエストを切り替え又は変更しないまま対応するプロセッサに提供する。これは、一貫性管理モードにマイグラトーリシェアリング方式が適用されるように制御することを意味する。
【００８６】
前記説明から分かるように、本発明の一貫性管理方法は、ピンポンマイグレーションシーケンスの発生をモニタリングし、前記モニタリング結果を基にして一貫性管理モードを変更する。その結果、多重プロセッサ等の間に不必要なトランザクションが発生しなくなり、プロセッサの待機時間及びバストラフィックが減少する。バストラフィックの減少はバス利用度（ｂｕｓ  ｕｔｉｌｉｚａｔｉｏｎ）を向上させる。従って、多重プロセッサの動作性能が効果的に改善される。
【００８７】
以上、前記説明された実施形態等は本発明の範囲を限定するものではない。また、本発明の技術分野で通常の知識を持つ者であれば、本発明の実施形態等を様々に変形して実施できるだろう。
【００８８】
従って、本発明の範囲は明細書に記載された請求範囲によって決められるべきである。
【符号の説明】
【００８９】
１００  ＦＭＳＣ、
１１０  ピンポンモニタリング部、
１３０  カウンティング部、
１３５  第１判別回路、
１５０  リクエスト変更部、
１５１  第２判別回路、
１５５  リクエスト出力部、
２００  一貫性管理部、
２０１  リクエスト入力部、
２０３  タグ判別部。
【図１】
2011108233.tif 000003
【図２】
2011108233.tif 000004
【図３】
2011108233.tif 000005
【図４】
2011108233.tif 000006
【図５】
2011108233.tif 000007
【図６】
2011108233.tif 000008
【図７】
2011108233.tif 000009